Repository
https://github.com/mcfarhat/actifit-bot
Introduction
In our continuous work on improving and developing features for Actifit, we provide another update as a result of the recent work done on our backend bot portion of Actifit, which handles aspects such as voting, rewarding, storing and retrieving data.
As usual, this update includes some new developed features, particularly a much updated and a large scope API that helps us further fetch and display data related to Actifit, adjustments and fixes to the actifit voting and scoring bot, a dynamic switch to the banned users list, and the much anticipated user rank system, as well as several other changes some of which are related to HF20 as depicted below.
Technology Stack
The bot is scripted using Node.js, and connects to a MongoDB instance for storing values.
Work Done
Extended API End Points: Commit Link
- In preparation for expanding the scope of Actifit, allowing further access to information being used and stored, and in relation to the new reward and rank system, we created a set of API end points that provide information pertaining:
- Delegation payments on a specific date
- Top delegators list sorted by delegated amount
- User's last recorded delegation amount
- Current actifit moderators list
- Current actifit ambassadors list
- Top AFIT token holders
- Actifit banned users
- Number of reblogs, upvotes, and rewarded posts on a specific day (each a separate API call)
User Rank Implementation: Commit Link
- We implemented a first version of the new user rank system, which also required additional API end points such as rewarded post count per user, and a refactoring of user token count and user delegation amount end points.
HF20 Voting Mana Calculation: Commit Link
- Due to HF20 and the change from VP to VM (Mana), we implemented a change to the bot so as it fetched the correct VM, and starts the reward process accordingly.
Dynamic Banned Users List & Other Changes: Commit Link Commit Link
- In this set of features, we implemented the following modifications:
- Implement dynamic banned users list fetched from DB
- Adding support for encrypted values in JSON data
- Changing max post date to a configurable value
- Decreasing inter-post-comment waiting time to 3 seconds instead of 10 (HF20)
- Implementing JSON meta on comment level in preparation for new reward system
- Skip self votes from reward
- Fix for improper activity count valuation
- Adding limit on max acceptable activity count
Steem Only Delegator Rewards: Commit Link
- In this set of changes relating to delegator rewards, we implemented the following
- Adding option for Steem-only rewards run mode
- Storing delegation payments on local file
- Adding option for skipping (or not) opt out users from specific reward types
Roadmap
Further continuous improvements will be done on top of the bot, particularly as we continue to work on the new reward system and as we further build functionalities required for improving Actifit and the needed APIs for smooth work.
How to contribute?
You can chat to us on the official actifit discord, or to me in discord private #6013.
Contributions are accepted as pull requests to the official github repo.
We are having continuous tasks assigned to different contributors to our project. More official tasks are continuously announced :)