Bot Twitter pour promouvoir la communauté

Un membre m’a suggéré d’avoir un bot Twitter partageant de nouveaux sujets. Quelqu’un a-t-il déjà fait cela ?

Utilisez dlvr.it et il partagera les nouveaux sujets et réponses.

divlrt.it fonctionne-t-il avec Discourse sans configuration préalable ?

Vous pouvez également envisager d’utiliser Zapier pour cela. Il existe un modèle Zapier préconçu pour publier des messages Discourse sur Twitter. Si vous souhaitez un contrôle plus précis des messages publiés, vous pouvez créer votre propre Zap. Pour plus de détails, consultez :

Zapier ne prend malheureusement pas en charge les @mentions, bien que les directives de Twitter les autorisent dans des cas d’usage spécifiques, et il ne prend pas encore en charge la nouvelle fonctionnalité de miniatures dans Core.

Je développe donc ma propre solution en Python en utilisant :

Les tests et le débogage sont en cours sur un instance Discourse en démarrage (pas très active).
Je serais ravi d’accueillir des bénévoles pour les tests.

Tous les problèmes bloquants sont résolus, à ma connaissance, donc

D’après le README :

Destiné à s’exécuter en tant que démon sur l’hôte exécutant Discourse, le bot interroge les derniers sujets de Discourse (latest.json), puis diffuse sur votre fil Twitter enregistré les nouveaux sujets correspondant à vos critères (voir les personnalisations ci-dessous).

Prochaine modification : limiter les tweets aux sujets publiés uniquement par une liste spécifiée d’utilisateurs de Discourse.

Le bot a été refactorisé, une file d’attente de tweets a été ajoutée et l’en-tête git a été réinitialisé (en raison de certains éléments spécifiques au site qui avaient été laissés). Si vous avez effectué un pull depuis ce dépôt, effacez-le et refaites un pull (en conservant votre fichier settings.ini).

Pour utiliser une vignette Discourse comme média inclus dans un tweet, lorsque le bot détecte un nouveau sujet, il attend un TOPIC_REFRESH_INTERVAL, puis actualise le sujet le plus récent de sa file d’attente avant de tweeter.