TravelFeed dApp: Introducing a Menu for Curators

JPPhotography @jpphotographyApril 2019 · 2 min read

Until recently, the TravelFeed curation team was using our own Discord bot to curate posts. This involved looking through posts on a Steem frontend like and then pasting them to Discord and adding reactions or chat commands to perform curation actions. With curation moving to our dApp and the existing solution having some problems, the demand for a new curation solution within our dApp came up. With the new solution, logged in curators can curate posts directly from using a menu only visible for curators!

Screenshot 20190416 at 22.36.50.png


New Features

PR #41

A "star" indicator displays the curation status of a post. Unlike before, posts that have received an honourable upvote are now indicated by a half-filled star in the top right:

Screenshot 20190416 at 22.32.55.png

If the username in the cookie matches one of our curator's usernames, a click on the "star" icon opens the curation menu:

Screenshot 20190416 at 22.10.13.png

The curator can select between five different curation actions and is then asked to confirm. The menu and confirmation dialogue both use elements from the Material UI React framework.

Screenshot 20190416 at 22.09.57.png

Upon confirmation, a custom_json operation is broadcasted to the blockchain through Steemconnect from the curator's account:

Screenshot 20190416 at 22.14.43.png

Python script

This python script streams the blockchain for valid custom_json operations by authorised curators and perform the selected action with the @travelfeed account, e.g. leaving a comment or resteeming, upvoting and commenting on the post:

Screenshot 20190416 at 22.15.03.png

As with our Discord bot before, the script also checks the blockchain stream for posts tagged with "travelfeed" and leaves a comment if they don't meet our criteria (min. 250 words in English).

Planned features

Currently, the curator status is determined from the username returned by Steemconnect and saved in a cookie. As soon as our API is integrated into the frontend, the user role will be obtained from our database upon login and saved into a json web token returned to the user and saved as cookie. Instead of defining curators manually within the code, users with the role "curator" in the JWT will then see the curator menu.
Eventually, instead of using custom_json operations, curation actions will be performed directly through the API, but this is not a priority at the moment.

GitHub Account

Share this post


Looks like travelfeed is getting great development iterations.

Regarding the curation script, it might be good to check if the post is already voted. From my experience, you may need to process same blocks from time to time, and there is a chance that the bot may upvote the post even if it's already voted.

Your contribution has been evaluated according to Utopian policies and guidelines, as well as a predefined set of questions pertaining to the category.

To view those questions and the relevant answers related to your post, click here.

Need help? Chat with us on Discord.



Thanks for the review! Duplicate resteems or upvotes are not an issue since an exception is thrown which is handled if there already is a resteem or vote with the same percentage, the script checks for duplicate comments though.


Thank you for your review, @emrebeyler! Keep up the good work!


I had a problem in the past that every time I posted a blog with more than 250 words I received that comment to use a minimum of 250 words. I don´t know why it does not work anymore. Also, I asked to review it again I never got any answer.

Is it because I always write in 2 columns in 2 languages?


With the new system it's no longer necessary to reply with !review, all posts that have at least 250 words upon review will be reviewed automatically, including posts that received a comment about needing 250 words in English. If your post appears on, we will consider it.
The language of the post is detected automatically, e.g. if there are 500 words and the detected probability of them being in English is under 50%, the post would receive a comment. This works fine with languages like Chinese, but not with German since it is too similar to English. Receiving a comment about needing at least 250 words in English does not have an effect on the posts being reviewed as long as the post has over 250 words in total (in any language).


cool, thanks so much for the quick answer!


Nice! There might be quite a few curation groups who’d love to use something similar :-)


We already received a request by another community to build on our code base, it's all open source :)


Thank you so much for this Julian, this makes the life of a curator much easier.


Hey, @jpphotography!

Thanks for contributing on Utopian.
We’re already looking forward to your next contribution!

Get higher incentives and support!
Simply set as a 5% (or higher) payout beneficiary on your contribution post (via SteemPlus or Steeditor).

Want to chat? Join us on Discord

Vote for Utopian Witness!