From 87084a3e854b72290fcc49e66fd0ccdf737672ee Mon Sep 17 00:00:00 2001 From: Michael Date: Sun, 21 Nov 2021 14:47:18 +0000 Subject: [PATCH] Fix followers/following for the Mastodon API --- src/Module/Api/Mastodon/Accounts/Followers.php | 9 +++++---- src/Module/Api/Mastodon/Accounts/Following.php | 9 +++++---- src/Module/Api/Mastodon/Blocks.php | 9 +++++---- src/Module/Api/Mastodon/Lists/Accounts.php | 7 ++++--- src/Module/Api/Mastodon/Mutes.php | 9 +++++---- 5 files changed, 24 insertions(+), 19 deletions(-) diff --git a/src/Module/Api/Mastodon/Accounts/Followers.php b/src/Module/Api/Mastodon/Accounts/Followers.php index 981d2c715..4c1a6429c 100644 --- a/src/Module/Api/Mastodon/Accounts/Followers.php +++ b/src/Module/Api/Mastodon/Accounts/Followers.php @@ -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); } diff --git a/src/Module/Api/Mastodon/Accounts/Following.php b/src/Module/Api/Mastodon/Accounts/Following.php index 41352ddaf..4b67c9700 100644 --- a/src/Module/Api/Mastodon/Accounts/Following.php +++ b/src/Module/Api/Mastodon/Accounts/Following.php @@ -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); } diff --git a/src/Module/Api/Mastodon/Blocks.php b/src/Module/Api/Mastodon/Blocks.php index b6a26d973..1f8b7ae6a 100644 --- a/src/Module/Api/Mastodon/Blocks.php +++ b/src/Module/Api/Mastodon/Blocks.php @@ -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); } diff --git a/src/Module/Api/Mastodon/Lists/Accounts.php b/src/Module/Api/Mastodon/Lists/Accounts.php index c70e20349..feb670b27 100644 --- a/src/Module/Api/Mastodon/Lists/Accounts.php +++ b/src/Module/Api/Mastodon/Lists/Accounts.php @@ -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); } diff --git a/src/Module/Api/Mastodon/Mutes.php b/src/Module/Api/Mastodon/Mutes.php index 3c24071f0..191a2d607 100644 --- a/src/Module/Api/Mastodon/Mutes.php +++ b/src/Module/Api/Mastodon/Mutes.php @@ -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); }