Ever since my arrival on Steem, I have noticed that many authors fail to write other steemians' usernames correctly. I remember being mentioned as @parragepeanut more than once in the past, luckily it was by an author that I follow so it didn't make much difference. However, it becomes an issue when authors mention other users that don't follow them in their posts. Let's take a hypothetical case in which A is the author of a post, R is someone reading that post and M is the user mentioned in that post. If A fails to mention M correctly, M won't have any way of knowing that he got mentioned but also R won't have any way to access M's account through the post. That's where @checky comes in handy ! @checky's only purpose is to check if the steemians mentioned in a post exist and, if not, to indicate to authors that they may have made some typos while mentioning those steemians. It achieves that by analyzing all the new posts posted on the blockchain and by leaving a comment under the posts containing wrong mentions. Here is an example of what you may see under your post if you happen to wrongly mention someone (as you can see it also works with comments if you set the bot to advanced, more on that later).
If there is one thing that I've learned from following the activity of @grammarnazi (an amazing bot that is really underappreciated), it's that some users just don't like bots trying to help them. Some steemians even go as far as flagging those kinds of bots. Because of that, I've seen @grammarnazi go all the way down to a reputation of 9 despite trying to help authors with their posts. In order to prevent such a scenario from happening with @checky, I've added some commands to the bot including
!mode off
which requests @checky to stop analyzing your posts. Let's get more in depth with the commands available in order to change @checky's behavior when encountering your posts. Those commands have to be written as replies to @checky's posts or comments, otherwise they won't work. Since I've mentioned @parragepeanut in this post, it should reply in the comments below so feel free to play around with it !- !help - gives a list of commands and their explanations.
- !ignore username1 username2 - tells the bot to ignore some usernames mentioned in your posts (useful to avoid the bot mistaking other social network accounts for Steem accounts).
- !mode [regular-advanced-off] - sets the mentions checking to regular (only posts), advanced (posts and comments) or off (no checking). Alternatively, you can write normal or on instead of regular. You can also write plus instead of advanced.
- !state - gives the state of your account (regular, advanced or off) and a list of the usernames you told it to ignore.
- !switch [regular-advanced-off] - same as !mode.
- !unignore username1 username2 - tells the bot to unignore some usernames mentioned in your posts.
What's coming next ?
- A support for all the posts: the bot only works with posts from apps setting the users array right now.
- A support for some languages: the bot could detect a post's language and write its comment in that language if supported. At first it will just be made into a language setting though.
- Ignoring end of posts behaviors: some users write their username differently on purpose at the end of a post (for example @multiple-words would become @multiple), @checky shouldn't treat that as a wrong mention.
- Any idea ? Make sure to tell me what you've got in mind by commenting this post !
Contributions
If you want to contribute to this project or talk about an issue it has, feel free to visit its GitHub page. You can also clone it and follow the instructions written there to get it running (although not recommended since @checky already runs the script). My social medias are listed at the end of the README file. If you add me on Steam, tell me the reason why on my wall, otherwise I won't accept your friend request.
Technology Stack
@checky is written in JavaScript using Node.js. Steem.js is used in order to stream and interact with the blockchain. @checky also uses fs (which is installed by default with Node.js) to manage files and Lodash to make array manipulations easier.