Merge pull request #11012 from annando/api-relations

Fix followers/following for the Mastodon API
This commit is contained in:
Hypolite Petovan 2021-11-21 10:14:07 -05:00 committed by GitHub
commit e9b3a9426a
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 24 additions and 19 deletions

View file

@ -51,6 +51,7 @@ class Followers extends BaseApi
$request = self::getRequest([
'max_id' => 0, // Return results older 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.
]);
@ -66,20 +67,20 @@ class Followers extends BaseApi
$condition = DBA::mergeConditions($condition, ["`relation-cid` > ?", $request['since_id']]);
}
if (!empty($min_id)) {
$condition = DBA::mergeConditions($condition, ["`relation-cid` > ?", $min_id]);
if (!empty($request['min_id'])) {
$condition = DBA::mergeConditions($condition, ["`relation-cid` > ?", $request['min_id']]);
$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)) {
self::setBoundaries($follower['relation-cid']);
$accounts[] = DI::mstdnAccount()->createFromContactId($follower['relation-cid'], $uid);
}
DBA::close($followers);
if (!empty($min_id)) {
if (!empty($request['min_id'])) {
array_reverse($accounts);
}

View file

@ -51,6 +51,7 @@ class Following extends BaseApi
$request = self::getRequest([
'max_id' => 0, // Return results older 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.
]);
@ -66,20 +67,20 @@ class Following extends BaseApi
$condition = DBA::mergeConditions($condition, ["`cid` > ?", $request['since_id']]);
}
if (!empty($min_id)) {
$condition = DBA::mergeConditions($condition, ["`cid` > ?", $min_id]);
if (!empty($request['min_id'])) {
$condition = DBA::mergeConditions($condition, ["`cid` > ?", $request['min_id']]);
$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)) {
self::setBoundaries($follower['cid']);
$accounts[] = DI::mstdnAccount()->createFromContactId($follower['cid'], $uid);
}
DBA::close($followers);
if (!empty($min_id)) {
if (!empty($request['min_id'])) {
array_reverse($accounts);
}

View file

@ -51,6 +51,7 @@ class Blocks extends BaseApi
$request = self::getRequest([
'max_id' => 0, // Return results older 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.
]);
@ -66,20 +67,20 @@ class Blocks extends BaseApi
$condition = DBA::mergeConditions($condition, ["`cid` > ?", $request['since_id']]);
}
if (!empty($min_id)) {
$condition = DBA::mergeConditions($condition, ["`cid` > ?", $min_id]);
if (!empty($request['min_id'])) {
$condition = DBA::mergeConditions($condition, ["`cid` > ?", $request['min_id']]);
$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)) {
self::setBoundaries($follower['cid']);
$accounts[] = DI::mstdnAccount()->createFromContactId($follower['cid'], $uid);
}
DBA::close($followers);
if (!empty($min_id)) {
if (!empty($request['min_id'])) {
array_reverse($accounts);
}

View file

@ -65,6 +65,7 @@ class Accounts extends BaseApi
$request = self::getRequest([
'max_id' => 0, // Return results older 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.
]);
@ -84,8 +85,8 @@ class Accounts extends BaseApi
$condition = DBA::mergeConditions($condition, ["`contact-id` > ?", $request['since_id']]);
}
if (!empty($min_id)) {
$condition = DBA::mergeConditions($condition, ["`contact-id` > ?", $min_id]);
if (!empty($request['min_id'])) {
$condition = DBA::mergeConditions($condition, ["`contact-id` > ?", $request['min_id']]);
$params['order'] = ['contact-id'];
}
@ -99,7 +100,7 @@ class Accounts extends BaseApi
}
DBA::close($members);
if (!empty($min_id)) {
if (!empty($request['min_id'])) {
array_reverse($accounts);
}

View file

@ -51,6 +51,7 @@ class Mutes extends BaseApi
$request = self::getRequest([
'max_id' => 0, // Return results older 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.
]);
@ -66,20 +67,20 @@ class Mutes extends BaseApi
$condition = DBA::mergeConditions($condition, ["`cid` > ?", $request['since_id']]);
}
if (!empty($min_id)) {
$condition = DBA::mergeConditions($condition, ["`cid` > ?", $min_id]);
if (!empty($request['min_id'])) {
$condition = DBA::mergeConditions($condition, ["`cid` > ?", $request['min_id']]);
$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)) {
self::setBoundaries($follower['cid']);
$accounts[] = DI::mstdnAccount()->createFromContactId($follower['cid'], $uid);
}
DBA::close($followers);
if (!empty($min_id)) {
if (!empty($request['min_id'])) {
array_reverse($accounts);
}