Add dislike counts to Mastodon API Statuses in FriendicaExtension

This commit is contained in:
Hank Grabowski 2023-02-20 15:31:15 -05:00
parent 5f56918d3e
commit 3a8929be1f
4 changed files with 26 additions and 9 deletions

View file

@ -144,10 +144,18 @@ class Status extends BaseFactory
'deleted' => false
]);
$count_dislike = Post::countPosts([
'thr-parent-id' => $uriId,
'gravity' => Item::GRAVITY_ACTIVITY,
'vid' => Verb::getID(Activity::DISLIKE),
'deleted' => false
]);
$counts = new \Friendica\Object\Api\Mastodon\Status\Counts(
Post::countPosts(['thr-parent-id' => $uriId, 'gravity' => Item::GRAVITY_COMMENT, 'deleted' => false], []),
$count_announce,
$count_like
$count_like,
$count_dislike
);
$origin_like = ($count_like == 0) ? false : Post::exists([
@ -323,7 +331,7 @@ class Status extends BaseFactory
$replies = $this->dba->count('mail', ['thr-parent-id' => $item['uri-id'], 'reply' => true]);
$counts = new \Friendica\Object\Api\Mastodon\Status\Counts($replies, 0, 0);
$counts = new \Friendica\Object\Api\Mastodon\Status\Counts($replies, 0, 0, 0);
$userAttributes = new \Friendica\Object\Api\Mastodon\Status\UserAttributes(false, false, false, false, false);

View file

@ -151,7 +151,7 @@ class Status extends BaseDataTransferObject
$this->emojis = [];
$this->card = $card->toArray() ?: null;
$this->poll = $poll;
$this->friendica = new FriendicaExtension($item['title']);
$this->friendica = new FriendicaExtension($item['title'], $counts->dislikes);
}
/**

View file

@ -35,6 +35,9 @@ class Counts
/** @var int */
protected $favourites;
/** @var int */
protected $dislikes;
/**
* Creates a status count object
*
@ -43,14 +46,16 @@ class Counts
* @param int $favourites
* @throws \Friendica\Network\HTTPException\InternalServerErrorException
*/
public function __construct(int $replies, int $reblogs, int $favourites)
public function __construct(int $replies, int $reblogs, int $favourites, int $dislikes)
{
$this->replies = $replies;
$this->reblogs = $reblogs;
$this->replies = $replies;
$this->reblogs = $reblogs;
$this->favourites = $favourites;
$this->dislikes = $dislikes;
}
public function __get($name) {
public function __get($name)
{
return $this->$name;
}
}

View file

@ -35,14 +35,18 @@ class FriendicaExtension extends BaseDataTransferObject
/** @var string */
protected $title;
/** @var int */
protected $dislikes_count;
/**
* Creates a status count object
*
* @param string $title
* @throws \Friendica\Network\HTTPException\InternalServerErrorException
*/
public function __construct(string $title)
public function __construct(string $title, int $dislikes_count)
{
$this->title = $title;
$this->title = $title;
$this->dislikes_count = $dislikes_count;
}
}