Merge pull request #11012 from annando/api-relations
Fix followers/following for the Mastodon API
This commit is contained in:
commit
e9b3a9426a
|
@ -51,6 +51,7 @@ class Followers extends BaseApi
|
||||||
$request = self::getRequest([
|
$request = self::getRequest([
|
||||||
'max_id' => 0, // Return results older than this id
|
'max_id' => 0, // Return results older than this id
|
||||||
'since_id' => 0, // Return results newer than this id
|
'since_id' => 0, // Return results newer than this id
|
||||||
|
'min_id' => 0, // Return results immediately newer than id
|
||||||
'limit' => 40, // Maximum number of results to return. Defaults to 40.
|
'limit' => 40, // Maximum number of results to return. Defaults to 40.
|
||||||
]);
|
]);
|
||||||
|
|
||||||
|
@ -66,20 +67,20 @@ class Followers extends BaseApi
|
||||||
$condition = DBA::mergeConditions($condition, ["`relation-cid` > ?", $request['since_id']]);
|
$condition = DBA::mergeConditions($condition, ["`relation-cid` > ?", $request['since_id']]);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!empty($min_id)) {
|
if (!empty($request['min_id'])) {
|
||||||
$condition = DBA::mergeConditions($condition, ["`relation-cid` > ?", $min_id]);
|
$condition = DBA::mergeConditions($condition, ["`relation-cid` > ?", $request['min_id']]);
|
||||||
|
|
||||||
$params['order'] = ['cid'];
|
$params['order'] = ['cid'];
|
||||||
}
|
}
|
||||||
|
|
||||||
$followers = DBA::select('contact-relation', ['relation-cid'], $condition, $this->parameters);
|
$followers = DBA::select('contact-relation', ['relation-cid'], $condition, $params);
|
||||||
while ($follower = DBA::fetch($followers)) {
|
while ($follower = DBA::fetch($followers)) {
|
||||||
self::setBoundaries($follower['relation-cid']);
|
self::setBoundaries($follower['relation-cid']);
|
||||||
$accounts[] = DI::mstdnAccount()->createFromContactId($follower['relation-cid'], $uid);
|
$accounts[] = DI::mstdnAccount()->createFromContactId($follower['relation-cid'], $uid);
|
||||||
}
|
}
|
||||||
DBA::close($followers);
|
DBA::close($followers);
|
||||||
|
|
||||||
if (!empty($min_id)) {
|
if (!empty($request['min_id'])) {
|
||||||
array_reverse($accounts);
|
array_reverse($accounts);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -51,6 +51,7 @@ class Following extends BaseApi
|
||||||
$request = self::getRequest([
|
$request = self::getRequest([
|
||||||
'max_id' => 0, // Return results older than this id
|
'max_id' => 0, // Return results older than this id
|
||||||
'since_id' => 0, // Return results newer than this id
|
'since_id' => 0, // Return results newer than this id
|
||||||
|
'min_id' => 0, // Return results immediately newer than id
|
||||||
'limit' => 40, // Maximum number of results to return. Defaults to 40.
|
'limit' => 40, // Maximum number of results to return. Defaults to 40.
|
||||||
]);
|
]);
|
||||||
|
|
||||||
|
@ -66,20 +67,20 @@ class Following extends BaseApi
|
||||||
$condition = DBA::mergeConditions($condition, ["`cid` > ?", $request['since_id']]);
|
$condition = DBA::mergeConditions($condition, ["`cid` > ?", $request['since_id']]);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!empty($min_id)) {
|
if (!empty($request['min_id'])) {
|
||||||
$condition = DBA::mergeConditions($condition, ["`cid` > ?", $min_id]);
|
$condition = DBA::mergeConditions($condition, ["`cid` > ?", $request['min_id']]);
|
||||||
|
|
||||||
$params['order'] = ['cid'];
|
$params['order'] = ['cid'];
|
||||||
}
|
}
|
||||||
|
|
||||||
$followers = DBA::select('contact-relation', ['cid'], $condition, $this->parameters);
|
$followers = DBA::select('contact-relation', ['cid'], $condition, $params);
|
||||||
while ($follower = DBA::fetch($followers)) {
|
while ($follower = DBA::fetch($followers)) {
|
||||||
self::setBoundaries($follower['cid']);
|
self::setBoundaries($follower['cid']);
|
||||||
$accounts[] = DI::mstdnAccount()->createFromContactId($follower['cid'], $uid);
|
$accounts[] = DI::mstdnAccount()->createFromContactId($follower['cid'], $uid);
|
||||||
}
|
}
|
||||||
DBA::close($followers);
|
DBA::close($followers);
|
||||||
|
|
||||||
if (!empty($min_id)) {
|
if (!empty($request['min_id'])) {
|
||||||
array_reverse($accounts);
|
array_reverse($accounts);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -51,6 +51,7 @@ class Blocks extends BaseApi
|
||||||
$request = self::getRequest([
|
$request = self::getRequest([
|
||||||
'max_id' => 0, // Return results older than this id
|
'max_id' => 0, // Return results older than this id
|
||||||
'since_id' => 0, // Return results newer than this id
|
'since_id' => 0, // Return results newer than this id
|
||||||
|
'min_id' => 0, // Return results immediately newer than id
|
||||||
'limit' => 40, // Maximum number of results. Defaults to 40.
|
'limit' => 40, // Maximum number of results. Defaults to 40.
|
||||||
]);
|
]);
|
||||||
|
|
||||||
|
@ -66,20 +67,20 @@ class Blocks extends BaseApi
|
||||||
$condition = DBA::mergeConditions($condition, ["`cid` > ?", $request['since_id']]);
|
$condition = DBA::mergeConditions($condition, ["`cid` > ?", $request['since_id']]);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!empty($min_id)) {
|
if (!empty($request['min_id'])) {
|
||||||
$condition = DBA::mergeConditions($condition, ["`cid` > ?", $min_id]);
|
$condition = DBA::mergeConditions($condition, ["`cid` > ?", $request['min_id']]);
|
||||||
|
|
||||||
$params['order'] = ['cid'];
|
$params['order'] = ['cid'];
|
||||||
}
|
}
|
||||||
|
|
||||||
$followers = DBA::select('user-contact', ['cid'], $condition, $this->parameters);
|
$followers = DBA::select('user-contact', ['cid'], $condition, $params);
|
||||||
while ($follower = DBA::fetch($followers)) {
|
while ($follower = DBA::fetch($followers)) {
|
||||||
self::setBoundaries($follower['cid']);
|
self::setBoundaries($follower['cid']);
|
||||||
$accounts[] = DI::mstdnAccount()->createFromContactId($follower['cid'], $uid);
|
$accounts[] = DI::mstdnAccount()->createFromContactId($follower['cid'], $uid);
|
||||||
}
|
}
|
||||||
DBA::close($followers);
|
DBA::close($followers);
|
||||||
|
|
||||||
if (!empty($min_id)) {
|
if (!empty($request['min_id'])) {
|
||||||
array_reverse($accounts);
|
array_reverse($accounts);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -65,6 +65,7 @@ class Accounts extends BaseApi
|
||||||
$request = self::getRequest([
|
$request = self::getRequest([
|
||||||
'max_id' => 0, // Return results older than this id
|
'max_id' => 0, // Return results older than this id
|
||||||
'since_id' => 0, // Return results newer than this id
|
'since_id' => 0, // Return results newer than this id
|
||||||
|
'min_id' => 0, // Return results immediately newer than id
|
||||||
'limit' => 40, // Maximum number of results. Defaults to 40. Max 40. Set to 0 in order to get all accounts without pagination.
|
'limit' => 40, // Maximum number of results. Defaults to 40. Max 40. Set to 0 in order to get all accounts without pagination.
|
||||||
]);
|
]);
|
||||||
|
|
||||||
|
@ -84,8 +85,8 @@ class Accounts extends BaseApi
|
||||||
$condition = DBA::mergeConditions($condition, ["`contact-id` > ?", $request['since_id']]);
|
$condition = DBA::mergeConditions($condition, ["`contact-id` > ?", $request['since_id']]);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!empty($min_id)) {
|
if (!empty($request['min_id'])) {
|
||||||
$condition = DBA::mergeConditions($condition, ["`contact-id` > ?", $min_id]);
|
$condition = DBA::mergeConditions($condition, ["`contact-id` > ?", $request['min_id']]);
|
||||||
|
|
||||||
$params['order'] = ['contact-id'];
|
$params['order'] = ['contact-id'];
|
||||||
}
|
}
|
||||||
|
@ -99,7 +100,7 @@ class Accounts extends BaseApi
|
||||||
}
|
}
|
||||||
DBA::close($members);
|
DBA::close($members);
|
||||||
|
|
||||||
if (!empty($min_id)) {
|
if (!empty($request['min_id'])) {
|
||||||
array_reverse($accounts);
|
array_reverse($accounts);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -51,6 +51,7 @@ class Mutes extends BaseApi
|
||||||
$request = self::getRequest([
|
$request = self::getRequest([
|
||||||
'max_id' => 0, // Return results older than this id
|
'max_id' => 0, // Return results older than this id
|
||||||
'since_id' => 0, // Return results newer than this id
|
'since_id' => 0, // Return results newer than this id
|
||||||
|
'min_id' => 0, // Return results immediately newer than id
|
||||||
'limit' => 40, // Maximum number of results. Defaults to 40.
|
'limit' => 40, // Maximum number of results. Defaults to 40.
|
||||||
]);
|
]);
|
||||||
|
|
||||||
|
@ -66,20 +67,20 @@ class Mutes extends BaseApi
|
||||||
$condition = DBA::mergeConditions($condition, ["`cid` > ?", $request['since_id']]);
|
$condition = DBA::mergeConditions($condition, ["`cid` > ?", $request['since_id']]);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!empty($min_id)) {
|
if (!empty($request['min_id'])) {
|
||||||
$condition = DBA::mergeConditions($condition, ["`cid` > ?", $min_id]);
|
$condition = DBA::mergeConditions($condition, ["`cid` > ?", $request['min_id']]);
|
||||||
|
|
||||||
$params['order'] = ['cid'];
|
$params['order'] = ['cid'];
|
||||||
}
|
}
|
||||||
|
|
||||||
$followers = DBA::select('user-contact', ['cid'], $condition, $this->parameters);
|
$followers = DBA::select('user-contact', ['cid'], $condition, $params);
|
||||||
while ($follower = DBA::fetch($followers)) {
|
while ($follower = DBA::fetch($followers)) {
|
||||||
self::setBoundaries($follower['cid']);
|
self::setBoundaries($follower['cid']);
|
||||||
$accounts[] = DI::mstdnAccount()->createFromContactId($follower['cid'], $uid);
|
$accounts[] = DI::mstdnAccount()->createFromContactId($follower['cid'], $uid);
|
||||||
}
|
}
|
||||||
DBA::close($followers);
|
DBA::close($followers);
|
||||||
|
|
||||||
if (!empty($min_id)) {
|
if (!empty($request['min_id'])) {
|
||||||
array_reverse($accounts);
|
array_reverse($accounts);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user