Introducing @checky, a bot looking for wrong mentions in your posts

in #utopian-io6 years ago (edited)

checky.png

Click here to get redirected to the GitHub repository of this project.

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.

Proof of Work Done

https://github.com/RagePeanut/

Sort:  

Hey! I just saw the bot and I like the idea of @cheky. What I think will be the game changer is to suggest possible similar names after correcting a user.
Eg ...The username @choky doesn't exist on the blockchain, did you mean @chukky?

Hey @nairadaddy! That would be awesome and I'll try to make that happen one day. I need to find a way to make that possible though aha. I also need to wait a bit for @checky to gather enough usernames so that its suggestions aren't too far from the wrong usernames. Also, I'm currently monitoring @checky's comments to find bugs or rares scenarios that I hadn't thought about while coding so that's some more time that I have to spend before working on that idea. So yeah, I'm definitely going to try to make that happen but not so soon :P

Thanks for the suggestion, really cool idea!

good luck with your project. I think it will be useful to many...

Thanks for the support and thanks for recommending me to use @dustsweeper !

C'est énorme ton truc :D

Merci ! :D
Reste à espérer qu'il ne se fasse pas flagger... Bon après si il se fait flagger, pour limiter la casse j'ai fait en sorte que ça fasse la même chose que la commande !mode off donc ça devrait aller.

Cool tool! Nice to see people developing tools and growing the steem ecosystem

Thanks ! Hopefully it will be useful to you one day ! :)

Really nice idea, just caught a typo for me, so really appreciate the effort, thank you!

Cg

Thanks! I'm glad it was useful to you!

I love you @checky

Thank you for your contribution. Is it necessary to check the case of operation[0] for like delegate_vesting_shares, etc and add it in the UsersList. You can always query the username on the Steem Blockchain to find out the user exists or not.

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? Write a ticket on https://support.utopian.io/.
Chat with us on Discord.
[utopian-moderator]

Here is how I see it. Those operations get streamed anyway so I might as well make use of them. Plus it drastically decreases the amount of requests made to the API.

Thanks for the evaluation !

will delegate some power to show my support and add to it over time

Thanks! Not sure what I could do with it yet but I'm sure I'll find something ^^

How can I better support this? :)

Hi @ragepeanut, I'm @checky ! While checking the mentions made in this post I found out that @parragepeanut and @mutliple-words don't exist on Steem. Maybe you made some typos ?

If you found this comment useful, consider upvoting it to help keep this bot running. You can see a list of all available commands by replying with !help.

Here are all the available commands:

  • !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.
  • !off - shortcut for !mode off.
  • !on - shortcut for !mode on.
  • !state - gives the state of your account (regular, advanced or off).
  • !switch [regular-advanced-off] - same as !mode.
  • !unignore username1 username2 - tells the bot to unignore some usernames mentioned in your posts.
Any idea on how to improve this bot ? Please contact @ragepeanut on any of his posts or send him a direct message on discord (RagePeanut#8078).
If you found this comment useful, consider upvoting it to help keep this bot running. You can see a list of all available commands by replying with !help.

If you put your spam on my posts - be sure of a flag from me.

Right back at you!

Chill man, this isn't spam, and you can turn it off... anyways peace my brother.

Cg

Coin Marketplace

STEEM 0.21
TRX 0.20
JST 0.034
BTC 98997.25
ETH 3299.74
USDT 1.00
SBD 3.03