Originally, I intended to write this post as my first contribution in the Suggestion Club to suggest a bookmark function and to read your opinions. However, since the post has been repeatedly delayed, and I've already implemented a few things, it has become more technical. That's why it's now appearing in this community.
Nevertheless, I'm still very interested in the opinions of non-developers.
The title of the post says it all. What do you think about being able to bookmark posts?
The idea is not so new. As far as I know, bookmarks are already available in two apps:
But as I understand it, these functions are designed so that they only work within the respective app universe. So bookmarks that are created in UPVU cannot be used with ppebak and vice versa. Please correct me if I am wrong here.
Originally, the idea came from my desire to receive a notification when another user responds to a post where I've already written a comment. I am often very interested in knowing what other users have to say about the topic I commented on.
The solution so far is to save it in the back of my head... with the known advantages and disadvantages ;-)
I would therefore like to have a bookmark function for Steemit that can also be used by other apps.
So after a little code review, I got to work...
The frontend itself must offer the option of setting and removing bookmarks. There also needs to be a list of bookmarked posts.
With the Steemit frontend, I have almost finished the functionality. I would add the list of saved bookmarks to the profile page with an additional link in the header menu:
To set or remove a bookmark, the bookmark symbol appears both in the post list and under the open post.
Click to set the bookmark and the icon will turn green. Click again to remove the bookmark and the icon will be displayed unfilled again. Here you can see the result:
I created the following custom_json
operations for storage and processing on the blockchain, in Hivemind and other apps:
Change the operations due to findings during implementation:
add field action
, add optional field category
Setting the bookmark:
{
"required_auths": [],
"required_posting_auths": [
"moecki.tests"
],
"id": "follow",
"json": "[
'bookmark', {
'account': 'moecki.tests',
'author': 'michelangelo3',
'permlink': 'bauernproteste-was-kommt-auf-uns-zu',
'action': 'add',
'category':''
}
]"
}
Removing the bookmark:
{
"required_auths": [],
"required_posting_auths": [
"moecki.tests"
],
"id": "follow",
"json": "[
'bookmark', {
'account': 'moecki.tests',
'author': 'michelangelo3',
'permlink': 'bauernproteste-was-kommt-auf-uns-zu',
'action': 'remove',
'category':''
}
]"
}
The operations are based on the already known follower operations.
It would be nice if @steemchiller could integrate this into its SDS. Other developers will also be able to process the operations for their apps in the future.
As the 'bookmark' operation does not yet exist until the function is activated, it would not be necessary to rescan the blockchain.
In order for the bookmarks to work on Steemit, the logic still needs to be built into Hivemind. That is my next task.
After an initial analysis, a new table should be necessary in the database. I still have to think about which fields and indices the table needs. Any ideas are very welcome.
To complete the international texts for the functionality in the frontend, I still need various translations of the labels. I'm only looking at the languages that already exist in Steemit.
Perhaps users from the respective countries could help here in the comments. I'll mention the users whom I assume can contribute. Of course, other users are also welcome to make suggestions.
Labels to be translated:
Languages | User |
---|---|
Spanish | @peppermint24 |
French | @quentindeschamps @motez |
Italian | @stefano.massari @italygame |
Japanese | @tomoyan @yasu.witness |
Korean | @steem-agora @etainclub |
Polish | @pl-travelfeed |
Russian | @apnigrich |
Let me know what you think ... DUBby will show his appreciation :-)
The prerequisite for activating the function on Steemit is, of course, that the Steemit team accepts the new function at all. I would also be very interested in a statement here. If not, I can always consider running my own version again. In that case, I'll have to talk to @o1eh to see if he can organise a server outside the EU for me :-)
If you want to see what other users think, you'll have to check back later - still without bookmarks ;-)