Merge pull request #12950 from mkljczk/dislikes
Return `disliked` in Mastodon API
This commit is contained in:
commit
368234f5e0
|
@ -839,7 +839,8 @@ A Mastodon [Status Entity](https://docs.joinmastodon.org/entities/Status/)
|
||||||
"poll": null,
|
"poll": null,
|
||||||
"friendica": {
|
"friendica": {
|
||||||
"title": "",
|
"title": "",
|
||||||
"dislikes_count": 1
|
"dislikes_count": 1,
|
||||||
|
"disliked": true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
@ -886,7 +887,7 @@ Removes the dislike mark (if it exists) on this status for this user
|
||||||
A Mastodon [Status Entity](https://docs.joinmastodon.org/entities/Status/)
|
A Mastodon [Status Entity](https://docs.joinmastodon.org/entities/Status/)
|
||||||
|
|
||||||
#### Example:
|
#### Example:
|
||||||
`https://<server_name>/api/friendica/statuses/341/dislike`
|
`https://<server_name>/api/friendica/statuses/341/undislike`
|
||||||
|
|
||||||
```json
|
```json
|
||||||
{
|
{
|
||||||
|
@ -913,7 +914,8 @@ A Mastodon [Status Entity](https://docs.joinmastodon.org/entities/Status/)
|
||||||
"poll": null,
|
"poll": null,
|
||||||
"friendica": {
|
"friendica": {
|
||||||
"title": "",
|
"title": "",
|
||||||
"dislikes_count": 0
|
"dislikes_count": 0,
|
||||||
|
"disliked": false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
|
@ -68,6 +68,7 @@ Extensions to the [Mastodon Status Entities](https://docs.joinmastodon.org/entit
|
||||||
* `delivery_queue_done`: Total number of remote servers that have successfully been federated to so far.
|
* `delivery_queue_done`: Total number of remote servers that have successfully been federated to so far.
|
||||||
* `delivery_queue_failed`: Total number of remote servers that have we failed to federate to so far.
|
* `delivery_queue_failed`: Total number of remote servers that have we failed to federate to so far.
|
||||||
* `dislikes_count`: The number of dislikes that a status has accumulated according to the server.
|
* `dislikes_count`: The number of dislikes that a status has accumulated according to the server.
|
||||||
|
* `disliked`: Whether the API user disliked the status.
|
||||||
|
|
||||||
Example:
|
Example:
|
||||||
```json
|
```json
|
||||||
|
|
|
@ -177,6 +177,14 @@ class Status extends BaseFactory
|
||||||
'vid' => Verb::getID(Activity::LIKE),
|
'vid' => Verb::getID(Activity::LIKE),
|
||||||
'deleted' => false
|
'deleted' => false
|
||||||
]);
|
]);
|
||||||
|
$origin_dislike = ($count_dislike == 0) ? false : Post::exists([
|
||||||
|
'thr-parent-id' => $uriId,
|
||||||
|
'uid' => $uid,
|
||||||
|
'origin' => true,
|
||||||
|
'gravity' => Item::GRAVITY_ACTIVITY,
|
||||||
|
'vid' => Verb::getID(Activity::DISLIKE),
|
||||||
|
'deleted' => false
|
||||||
|
]);
|
||||||
$origin_announce = ($count_announce == 0) ? false : Post::exists([
|
$origin_announce = ($count_announce == 0) ? false : Post::exists([
|
||||||
'thr-parent-id' => $uriId,
|
'thr-parent-id' => $uriId,
|
||||||
'uid' => $uid,
|
'uid' => $uid,
|
||||||
|
@ -295,7 +303,7 @@ class Status extends BaseFactory
|
||||||
$aclFormatter = DI::aclFormatter();
|
$aclFormatter = DI::aclFormatter();
|
||||||
$delivery_data = $uid != $item['uid'] ? null : new FriendicaDeliveryData($item['delivery_queue_count'], $item['delivery_queue_done'], $item['delivery_queue_failed']);
|
$delivery_data = $uid != $item['uid'] ? null : new FriendicaDeliveryData($item['delivery_queue_count'], $item['delivery_queue_done'], $item['delivery_queue_failed']);
|
||||||
$visibility_data = $uid != $item['uid'] ? null : new FriendicaVisibility($aclFormatter->expand($item['allow_cid']), $aclFormatter->expand($item['deny_cid']), $aclFormatter->expand($item['allow_gid']), $aclFormatter->expand($item['deny_gid']));
|
$visibility_data = $uid != $item['uid'] ? null : new FriendicaVisibility($aclFormatter->expand($item['allow_cid']), $aclFormatter->expand($item['deny_cid']), $aclFormatter->expand($item['allow_gid']), $aclFormatter->expand($item['deny_gid']));
|
||||||
$friendica = new FriendicaExtension($item['title'], $item['changed'], $item['commented'], $item['received'], $counts->dislikes, $delivery_data, $visibility_data);
|
$friendica = new FriendicaExtension($item['title'], $item['changed'], $item['commented'], $item['received'], $counts->dislikes, $origin_dislike, $delivery_data, $visibility_data);
|
||||||
|
|
||||||
return new \Friendica\Object\Api\Mastodon\Status($item, $account, $counts, $userAttributes, $sensitive, $application, $mentions, $tags, $card, $attachments, $in_reply, $reshare, $friendica, $quote, $poll);
|
return new \Friendica\Object\Api\Mastodon\Status($item, $account, $counts, $userAttributes, $sensitive, $application, $mentions, $tags, $card, $attachments, $in_reply, $reshare, $friendica, $quote, $poll);
|
||||||
}
|
}
|
||||||
|
@ -361,7 +369,7 @@ class Status extends BaseFactory
|
||||||
$attachments = [];
|
$attachments = [];
|
||||||
$in_reply = [];
|
$in_reply = [];
|
||||||
$reshare = [];
|
$reshare = [];
|
||||||
$friendica = new FriendicaExtension('', null, null, null, 0, null, null);
|
$friendica = new FriendicaExtension('', null, null, null, 0, false, null, null);
|
||||||
|
|
||||||
return new \Friendica\Object\Api\Mastodon\Status($item, $account, $counts, $userAttributes, $sensitive, $application, $mentions, $tags, $card, $attachments, $in_reply, $reshare, $friendica);
|
return new \Friendica\Object\Api\Mastodon\Status($item, $account, $counts, $userAttributes, $sensitive, $application, $mentions, $tags, $card, $attachments, $in_reply, $reshare, $friendica);
|
||||||
}
|
}
|
||||||
|
|
|
@ -47,14 +47,18 @@ class FriendicaExtension extends BaseDataTransferObject
|
||||||
|
|
||||||
/** @var FriendicaDeliveryData|null */
|
/** @var FriendicaDeliveryData|null */
|
||||||
protected $delivery_data;
|
protected $delivery_data;
|
||||||
|
|
||||||
/** @var int */
|
/** @var int */
|
||||||
protected $dislikes_count;
|
protected $dislikes_count;
|
||||||
|
|
||||||
|
/** @var bool */
|
||||||
|
protected $disliked = false;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @var FriendicaVisibility|null
|
* @var FriendicaVisibility|null
|
||||||
*/
|
*/
|
||||||
protected $visibility;
|
protected $visibility;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Creates a FriendicaExtension object
|
* Creates a FriendicaExtension object
|
||||||
*
|
*
|
||||||
|
@ -64,6 +68,7 @@ class FriendicaExtension extends BaseDataTransferObject
|
||||||
* @param string|null $edited_at
|
* @param string|null $edited_at
|
||||||
* @param string|null $received_at
|
* @param string|null $received_at
|
||||||
* @param int $dislikes_count
|
* @param int $dislikes_count
|
||||||
|
* @param bool $disliked
|
||||||
* @param FriendicaDeliveryData|null $delivery_data
|
* @param FriendicaDeliveryData|null $delivery_data
|
||||||
* @param FriendicaVisibility|null $visibility
|
* @param FriendicaVisibility|null $visibility
|
||||||
*/
|
*/
|
||||||
|
@ -73,6 +78,7 @@ class FriendicaExtension extends BaseDataTransferObject
|
||||||
?string $commented_at,
|
?string $commented_at,
|
||||||
?string $received_at,
|
?string $received_at,
|
||||||
int $dislikes_count,
|
int $dislikes_count,
|
||||||
|
bool $disliked,
|
||||||
?FriendicaDeliveryData $delivery_data,
|
?FriendicaDeliveryData $delivery_data,
|
||||||
?FriendicaVisibility $visibility
|
?FriendicaVisibility $visibility
|
||||||
) {
|
) {
|
||||||
|
@ -82,6 +88,7 @@ class FriendicaExtension extends BaseDataTransferObject
|
||||||
$this->received_at = $received_at ? DateTimeFormat::utc($received_at, DateTimeFormat::JSON) : null;
|
$this->received_at = $received_at ? DateTimeFormat::utc($received_at, DateTimeFormat::JSON) : null;
|
||||||
$this->delivery_data = $delivery_data;
|
$this->delivery_data = $delivery_data;
|
||||||
$this->dislikes_count = $dislikes_count;
|
$this->dislikes_count = $dislikes_count;
|
||||||
|
$this->disliked = $disliked;
|
||||||
$this->visibility = $visibility;
|
$this->visibility = $visibility;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue