Likes Extension
The Likes extension adds support for users to like and dislike notes.
Implementations should make sure that users cannot like and dislike the same note at the same time. If a user dislikes a note they have already liked, the like should be removed, and vice versa.
Likes
Likes are a way for users to show appreciation for a note, like Twitter's "heart" button or Reddit's "upvote".
Entity Definition
Example Like
{
"id": "3e7e4750-afd4-4d99-a256-02f0710a0520",
"type": "pub.versia:likes/Like",
"created_at": "2021-01-01T00:00:00.000Z",
"author": "https://example.com/users/6e0204a2-746c-4972-8602-c4f37fc63bbe",
"uri": "https://example.com/likes/3e7e4750-afd4-4d99-a256-02f0710a0520",
"liked": "https://otherexample.org/notes/fmKZ763jzIU8"
}
Dislikes
Dislikes are a way for users to show disapproval for a note, like YouTube's "dislikes" or Reddit's "downvotes".
Entity Definition
Example Dislike
{
"id": "3e7e4750-afd4-4d99-a256-02f0710a0520",
"type": "pub.versia:likes/Dislike",
"created_at": "2021-01-01T00:00:00.000Z",
"author": "https://example.com/users/6e0204a2-746c-4972-8602-c4f37fc63bbe",
"uri": "https://example.com/dislikes/3e7e4750-afd4-4d99-a256-02f0710a0520",
"disliked": "https://otherexample.org/notes/fmKZ763jzIU8"
}
Undoing Likes and Dislikes
To undo a like or dislike, a Delete entity should be used. The deleted
property of the Delete entity should link to the Like or Dislike entity to be removed.
User Collections
The Likes extension adds the following collections to the User entity:
likes
: A Collection of all the notes the user has liked.dislikes
: A Collection of all the notes the user has disliked.
{
"type": "User",
...
"collections": {
...
"pub.versia:likes/Likes": "https://example.com/users/6e0204a2-746c-4972-8602-c4f37fc63bbe/likes",
"pub.versia:likes/Dislikes": "https://example.com/users/6e0204a2-746c-4972-8602-c4f37fc63bbe/dislikes"
}
}