Steem Twitter Bot, un bot pour interagir avec la blockchain Steem par messages privés

in #steemdev6 years ago (edited)

header.png

Cliquez ici pour tester ce bot.

Vous êtes-vous déjà demandé ce que ça donnerait si on pouvait interagir avec la blockchain Steem par le biais de messages privés sur Twitter ? Non ? Et bien, moi non plus jusqu'à il y a peu ! Cette idée un peu farfelue m'est venue en tête la semaine passée et j'ai tout de suite su que je devais la rendre réelle. Il y a quelques mois, j'ai réalisé que créer un bot Twitter n'était vraiment pas difficile grâce à Twit, un package simplifiant la connexion à l'API de Twitter. Depuis, je n'ai pas arrêté de réfléchir au genre de bot que je pourrais créer qui serait intéressant à coder mais qui me serait aussi utile. C'est donc il y a une semaine que j'ai enfin trouvé ce que ce bot allait être. J'étais dans le train pour l'école et je regardais mon fil d'actualité sur Busy comme d'habitude. Je me suis soudainement retrouvé bloqué par mon fournisseur de 4G me faisant comprendre que j'avais utilisé toute ma 4G (oups). Cependant, mon abonnement me permet un accès illimité à Facebook et Twitter. J'ai donc décidé d'ouvrir Twitter pour jeter un œil à mon fil d'actualité. Et c'est là que ça m'a frappé, puisque j'avais un accès illimité à Twitter, pourquoi ne pas créer un bot qui interagirait avec la blockchain Steem ? De cette manière je pourrais continuer à lire des articles de Steem mais via Twitter, et ce sans utiliser ma 4G ! C'est donc de cette idée folle qu'est né Steem Twitter Bot (je sais, le nom est pas top !).

Qu'est-ce que Steem Twitter Bot ?

Comme dit plus haut, Steem Twitter Bot est un bot Twitter open source qui vous permet d'interagir avec la blockchain Steem par le biais de messages privés. Pour le tester, vous pouvez cliquer sur le lien disponible au début de ce post et envoyer au compte un message privé. Pour l'instant, il est très limité et ne peut que vous renvoyer des listes de posts et les ouvrir.

Commandes disponibles:

  • help: renvoie une liste de commandes disponibles. Vous pouvez spécifier une commande pour obtenir une description plus détaillée de son utilisation.
  • blog: renvoie les 10 derniers posts du blog d'un utilisateur spécifié. Vous pouvez aussi spécifier la quantité de posts à afficher.
  • feed: renvoie les 10 derniers posts du fil d'actualité d'un utilisateur spécifié. Vous pouvez aussi spécifier la quantité de posts à afficher.
  • created: renvoie les 10 posts les plus récents. Vous pouvez aussi spécifier un tag et la quantité de posts à afficher.
  • hot: renvoie les 10 posts les plus "chauds". Vous pouvez aussi spécifier un tag et la quantité de posts à afficher.
  • trending: renvoie les 10 posts les plus en vogue. Vous pouvez aussi spécifier un tag et la quantité de posts à afficher.

Sous-commandes disponibles (sauf pour "help"):

  • open: ouvre un post à partir d'une liste de posts précédemment obtenue. Si aucun post n'est spécifié, ouvre le premier post de la liste.
  • next: ouvre le post suivant le post ouvert dans une liste de posts précédemment obtenue.
  • close: ferme un post ouvert en renvoyant une liste de posts précédemment obtenue.

À venir

  • Formatage de posts

Pour l'instant, les posts sont affichés comme ils ont été écrit. Je vais travailler sur une manière de les afficher le plus correctement possible en prenant en compte les limites que les messages privés imposent.

  • Lier votre compte

Vous pourrez lier votre compte en écrivant une commande comme "set account ragepeanut". Ça vous servira à simplement écrire "feed" au lieu de "feed ragepeanut" si vous voulez jeter un œil à votre fil d'actualité.

  • Formatage de posts personnalisé

Ce point est en rapport au premier. Il se pourrait fort que mes décisions de formatage ne vous plaisent pas. Je compte donc vous donner la possibilité de créer vos propres règles de formatage. Ça fonctionnerait de la même manière que la liaison de compte, à travers une commande comme "set line -----".

  • Plus d'informations sur les posts

Pour l'instant, les posts n'affichent que leurs titre et leur contenu. Ils afficheront bientôt plus d'informations comme leurs commentaires, leurs upvotes/downvotes et leurs valeurs.

  • Commentaires et réponses

Un aspect important qui manque encore à Steem Twitter Bot est la possibilité de jeter un œil à ses commentaires et réponses. Ceci sera possible dès que j'aurai trouvé une base de données gratuite pour Steem.

  • Intégration de SteemConnect V2

Partie la plus ambitieuse de ce projet, je compte bien utiliser SteemConnect V2 pour permettre aux utilisateurs de voter et commenter sur Steem. J'ai dans l'idée une page web sur laquelle les utilisateurs devront lier leur compte Twitter à leur compte Steem pour avoir accès à ces fonctionnalités. Ça risque de prendre du temps avant de voir le jour par contre.

  • Une idée ?

Si vous avez une idée quant à ce projet, partagez-là dans les commentaires ou, si c'est une idée conséquente, n'hésitez pas à en faire un post.


Contributions

Si vous voulez contribuer à ce projet ou m'avertir d'un de ses problèmes, n'hésitez pas à visiter sa page GitHub. Vous pouvez aussi le cloner et suivre les instructions disponibles sur GitHub pour le faire tourner correctement. Mes réseaux sociaux sont listés à la fin du fichier README.md si vous voulez me contacter. Si vous m'ajoutez sur Steam, veuillez expliquer la raison de votre ajout sur mon mur, je risque de vous refuser dans le cas contraire (c'est devenu une habitude à cause des bots).

Langage et packages utilisés

Ce bot est complètement écrit à l'aide de Node.js. Pour l'instant, il n'est dépendant que de deux packages pour fonctionner. Le premier est steem.js qui lui permet d'interagir avec la blockchain Steem. Le second est Twit qui lui permet d'interagir avec l'API de Twitter. Ce projet n'aurait pas vu le jour sans ces deux packages, si vous êtes un développeur et que vous cherchez à entreprendre un projet lié à Steem ou Twitter, allez y jeter un œil !


Footer

Si vous avez aimé ce post et souhaitez en voir davantage, n'oubliez pas d'upvote, de me follow et de me resteem !

Sort:  

Mais naaaaaaaaaan !!! Moi aussi je bosse depuis un moment sur un bot Twitter/Steem !!!!!!! Bon vu que tu es dessus et que j'ai pas le temps du tout de m'y remettre pour le moment, je te donne la fonctionnalité à laquelle j'ai pensé et fais moi signe si tu arrives à mettre ça en place. ça ne devrait pas être bien compliqué.

Alors moi je voyais un truc qui permettrait au non Steemians de communiquer avec les steemians. Ne serait-ce qu'avec les réponses reçues sur un tweet.


Exemple: je retweet un de mes articles, et chaque réponse que je reçois s'affiche également sur mon article. Le plus simple serait de créer un compte genre @SteemTwitterBot qui se chargerait de faire passer le message.


SteemTwitterBot : @planetenamek vous a laissé un commentaire --> .... Le com's ...
Pour répondre commencez votre réponse par $steemtwitterbot (ou $stb) suivi de votre message avec (max caractères ou pas)


Pour la réponse au com's twitter, pareil un compte twitter qui dirait --> Vous avez reçu une réponse de @... (un petit aperçu du message s'il est trop long) et un lien vers le re-.... (le permlink de la réponse) steemit/busy.


Et voilà on peut communiquer entre twitter et Steemit/Busy. Dis moi si tu veux en savoir plus sur ma vision de la fonctionnalité, j'y ai pensé pendant un moment et j'ai identifié quelques barrières, mais rien d'insurmontable surtout pour le lancement.

Et l'avantage c'est que si tu arrives à mettre ça en place, pourquoi pas l'adapter en mode plugin WP également.

En tout cas c'est vraiment top, je vais tenter de tester tout ça et je te ferais un retour dès que possible et bien évidemment je Resteem pcq ;-) !!!

Aaaaaahhhhhhhhhh !!!! Mais c'est incroyable comme idée ! :D

Donc, prenons une situation avec deux utilisateurs. @user1 possède un compte Steem et un compte Twitter. @user2 ne possède pas de compte Steem mais a un compte Twitter.

  1. @user1 partage un lien vers son post sur Twitter (en mentionnant @SteemTwitterBot)
  2. @user2 commente le tweet de @user1 via Twitter
  3. @SteemTwitterBot commente le post Steem de @user1 avec le contenu du commentaire Twitter de @user2
  4. @user1 voit le commentaire de @SteemTwitterBot et y répond via Steem
  5. @SteemTwitterBot répond au commentaire Twitter de @user2 avec le contenu de la réponse Steem de @user1

C'est bien ça l'idée non ? Dis moi si j'ai loupé quelque chose en dehors des formatages de commentaires/réponses que j'ai pas pris en compte dans l'exemple. Et si il y a moyen de lier Steem à Twitter, l'@user1 pourrait peut-être directement répondre avec son compte Twitter sans devoir passer par Twitter ! Mais là je m'emporte peut-être un peu ^^'

Je viens de me rendre compte que ce qui est encore plus génial, c'est que tant que @SteemTwitterBot est mentionné, l'utilisateur ayant partagé sur Twitter à la première étape pourrait très bien être quelqu'un d'autre que @user1 !

Mais clairement oui, je veux en savoir plus ! Pourquoi je ne voudrais pas ?! :P
Pour le plugin WordPress je sais pas trop quoi dire, j'ai jamais fait ça de ma vie mais ce serait hyper intéressant aussi. Mais bon, il faut bien un début à tout !

Alors déjà pour WP ne t'inquiète pas pour ça, créer un plugin c'est hyper simple, surtout si tu as déjà tout le code et que ça tourne parfaitement, tu y reviendras plus tard.

Mais oui l'idée c'est exactement ça, tu as tout compris :-) ! Sympa non ? Pour les réponses sur Twitter c'est aussi exactement ça, tant qu'on est dans l'environnement du tweet de base toutes les réponses pourraient être envoyés sur Steemit/Busy. Pas grave si ce n'est plus @user1 qui répond ou si c'est @userX qui répond à @user1 sur le tweet de @user2, au contraire comme tu dis c'est génial ça permet de suivre le fil des commentaires directement sur Steemit et pour répondre pas besoin d'aller sur Twitter on reste là où on est, Busy, Steemit, Utopian peut importe :-) !

Globalement c'est vraiment ce à quoi je pensais, on est ok ! Après comme tu dis aussi, pour le formatage et le contenu des commentaires que ça soit sur Steem ou sur Twitter ça relève vraiment du détail. Tu pourras y intégrer tout ce qui semble nécessaire facilement.

Tu vois ça permet de relier les communautés et ça favorise un peu les intéractions, connecter les communautés déjà existante c'est vraiment dans ma tête depuis un moment. En échangeant platoniquement, petit à petit je suis sûre que nos plateformes préférés deviendront les leurs également.

Donc ça ferait un plus vraiment non négligeable, car en plus de prêcher pour notre paroisse en faisant la promo de Steem/Busy on aurait un autre canal de communication qui lui susciterait la curiosité des utilisateurs en le faisant naviguer sur Steemit/Busy :-) !

Je suis contente que l'idée te plaise en tous cas :-) ! J'espère que tu pourras faire ça sans trop de difficultés, au début ça ne pose pas de problème je pense, mais si l'outil a du succès et est utilisé à haute fréquence, il va falloir penser au limites des API Twitter et Steem.

Mais je pense que le mieux est déjà de lancer le truc à petite échelle et ensuite pour la scalabilité, dès que le truc est en place, commencer à bosser dessus à fond. Si tu peux même préparer le terrain en amont en te renseignant sur les différentes limites, bien évidement ce serait judicieux :-) !

Hésite pas si tu veux en savoir plus sur ma vision de la chose, mais maintenant tu as de la matière pour faire même mille fois mieux ;-) !

Cool ! Bon travail !

Moi j' aimerais le même en bot discord ;-)

Merci ! J'avais en idée de faire une version Discord aussi mais plus tard dans l'avancement ^^

Il me semblait que @planetenamek s'occupait déjà de créer un bot de la sorte pour ton Discord non ?

Yep il est prêt mais faut juste que j'arrive à trouver le temps de le configurer pour les 44 salons dispo sur francopartages :-D !

Félicitations ! Votre post à été séléctionné de part sa qualité et upvoté par le trail de curation de @aidefr !

La catégorie du jour était : #dev


Si vous voulez aider le projet, vous pouvez rejoindre le trail de curation ici !

Bonne continuation !

Merci beaucoup ! Ça me fait chaud au cœur d'être le premier deuxième sélectionné d'une, j'espère, longue liste d'auteurs à venir !

De rien ! Merci d' avoir rejoins le trail ;-)

trop génial ! bravo ! steemtwitterbot.PNG

Merci beaucoup ! Ce n'est que le début, tu as du constater que c'était très limité pour l'instant. Je compte bien rendre ce bot de plus en plus utile avec le temps ! :D

Coin Marketplace

STEEM 0.17
TRX 0.13
JST 0.028
BTC 56240.84
ETH 2996.70
USDT 1.00
SBD 2.21