Tagbot - An upvote bot to reward specific tags

View this thread on: d.buzz | hive.blog | peakd.com | ecency.com
·@emrebeyler·
0.000 HBD
Tagbot - An upvote bot to reward specific tags
Tagbot is an upvote bot, upvotes posts with a specific tag based on pre-defined parameters. It has a couple use cases, for example:

- Voting for photography tag to support photographers
- Voting for local tags (tr, deutsch, etc.) to support local content creators
- Voting for the "utopian-io" tag to support developers

etc. 

**Flow**

Every time the bot is executed,

- Checks for minimum VP rule, if it's suitable, starts voting round.
- Fetches 100 posts from the specific tag (order by created)
- Shuffles that 100 posts, and filters them if needed. (Minimum author rep, etc.)
- Upvotes them based on the VOTE_COUNT. (Number of votes casted in each round, set in the configuration.)

Currently, this bot operates at [@dshot-io](http://steem.rocks/@dshot-io) account with a minimal SP for testing purposes. (rewards photography tag.)

#### Installation

```
$ (sudo) pip install steem_tagbot
```

Do that in a python3.6 virtual environment and it will install all the requirements.

#### Running

```
$ POSTING_KEY=private_posting_key tagbot /path/to/config.json
```

Configuration is stored in JSON files. You can find an example in the repository.

|        Option       | Value                                                |
|:-------------------:|------------------------------------------------------|
| NODES               |  A list of steem nodes to connect                    |
| BOT\_ACCOUNT         | Bot account to vote                                  |
| TAG                 | Target tag to upvote posts                           |
| MINIMUM\_VP\_TO\_START | Bot should sleep until this VP is generated          |
| VOTE\_WEIGHT         | Vote weight for every upvote (in percent)            |
| VOTE\_COUNT          | How many votes should be casted in each voting round |
| MINIMUM\_AUTHOR\_REP  | Ignore authors with low reputation                   |
| BLACKLIST           | A list of authors to ignore                          |

Note: tagbot runs on voting rounds to preserve the VP. You need to set a crontab entry to run the bot periodically.

For example, to run tagbot in every 15 minutes:

```
*/15 * * * * /var/bots/run-tagbot > /tmp/tagbot 2>&1
```

#### Technology Stack

Python 3.6 and greater.

#### Roadmap

Bot works very well at the moment and meet the needs of mine. However, I have a couple of additional features in my mind:

- Tag blacklist
- Smarter upvote weight algorithm based on a couple of params

#### How to Contribute

Use github issues or find me at Discord. (emre#9263) for any feature requests or bugs, bug-fixes.



<br /><hr/><em>Posted on <a href="https://utopian.io/utopian-io/@emrebeyler/tagbot-an-upvote-bot-to-reward-specific-tags">Utopian.io -  Rewarding Open Source Contributors</a></em><hr/>
👍 , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,