SilentBot starting to take shape.

in HiveDevs3 years ago (edited)

In a little over two months I'm hoping to pick up my old Silent Bob curation initiative again on #creativecoin. By that time three delegations of CCC will expire, and I will once again have some CCC voting power, that I'll be delegating to a little bot account : @silentbot.

The code

The code is just a quick and dirty piece of code right now. Lots of cleanup to do and some functionalities to add, including making the bot usable for other curation projects. I did put the code on github, together with a Dockerfile. Currently the bot does one thing. It watches the blockchain for comments made by curators that mention it.

The bot currently understands only one command, and only responds to configured curators (right now, that's just me). That command is the star command.

star

By giving the star command, posting a reply to a HIVE post like this:

@silentbot star 3

the @silentbot bot is asked to do two things:

  1. Comment on the HIVE post itself with a Silent Bob icon image containing the apropriate amount of stars.
  2. Add an entry to it's upvote queues.

The upvote percentage is set according to the below table, depending on both the star count designated by the curator, and wether or not the HIVE post was done in 100% power-up mode:

stars100% power up50%/50%
15%1%
220%10%
345%25%
460%50%
5100%90%

The bot is run with at least one posting key (that of the @silentbot right now) and with one or more additional posting keys, currently my main account @pibara.

Moved from beempy to lighthive

The old SilentBob code ran as a little private frontend written in Python 2 using the my own (now discontinued) old async steem python library combined with a beempy commandline tool. When I looked at Beempy, an oldfashioned synchonous python library I soon concluded it would be better to just make a simple bot. Then, trying to use beempy to actually do transactions, I ran into this problem. I couldn't figure out how to use beempy in a docker container without having to store my keys in some actual wallet file, what arguably is a bad idea when running in docker. So instead I ended up using lighthive by @emrebeyler, a much leaner Python HIVE library that is a much better fit for this little bot.

Running the bot

I'm currently running the bot off and on on my desktop PC in docker using the following command line:

docker run -e SILENTBOT_WIF -e PIBARA_WIF -e SILENTBOT_DATA_DIR='/mnt' --mount type=bind,source="$(pwd)"/store,target=/mnt -it pibara/silentbot:alpha python /application/silentbot.py silentbot pibara

Where PIBARA_WIF and SILENTBOT_WIF are environment variables I've temporaraly set in my shell. This command lets the bot run commenting with the @silentbot account and upvoting with both the @silentbot and the @pibara account.

Most of the settings for the bot are currently taken from the file lookup.json, but not enough yet to make the bot 100% generic and usable for other curation initiatives. I'm hoping to fix this so others can use my code to run similar assistant bots.

When the bot is completely tested and has all the functionality it needs, I'll be moving the bot to my NAS.

TODO

Things I still need to fix before next February:

  • Make the curated tag combinations a setting.
  • Let the bot respond once to non-curators, telling them in a friendly way to bugger off.
  • Let the bot respond to unrecognized commands by curators.
  • Let the bot respond to recognized commands on posts that lack the needed tag combinations for curation.
  • Fully support curator blacklists and respond to star commands relating to posts by blacklisted authors.
  • Support 3th party blacklists
  • Support tag-abuse commands with downvotes
  • Support spam commands with downvotes
  • Support blacklist command to let the bot add abusers to the actual on-chain blacklist.
  • Support a whitelist
  • Install and run on my NAS

So there are still quite a few things to do, but not so much that it should be a problem getting them done before February.

Spanish Language curator ?

A lot of great content in the #creativecoin #fiction / #poetry / #bookreview space, and my own knowledge of Spanish is minimal. So if anyone is interested in getting curator access to @silentbot in order to curate the Spanish posts using these tags, please drop me a message. I'm especialy interested in joining forces with existing Spanish language curation in this space. Drop me a comment if you are interested.

Sort:  

This looks like a lot of work, but it really is going to make a huge difference! Thank you for doing this for Hive :) Will it be able to curate anywhere on Hive?

Hi Pibara, I'm not very sure how this works and the meaning of what you are saying (sorry is not my environment even less in English).
But I'm going to mention some people that maybe can help you with this.

@enrique89
@votovzla
@lacolmena

cool!

@jesuspsoto , would you maybe be interested in curator access to @silentbot ? Or @marylucy, do you know anyone on HIVE/CreativeCoin who might be interested?

I don't know if Jesustiano would be interested, but I see him posting and engaging a lot, and his posts tend to have an English translation included. I don't know him too well, but he's definitely active :)

I sent @jesuspsoto a link through Discord. I'm not sure if he saw the post.