J'ai un bot dans node.js et je me demande quelle logique je devrais utiliser pour une fonction .tell
. Le but de la fonction sera de donner un message aux utilisateurs qui sont hors ligne. Donc, si john
était hors ligne sur freenode.net/#foo et j'ai tapé .tell john your mother was great last night
, je veux que le bot stocke ce message et l'affiche chaque fois que john
rejoint le canal.Ma logique pour une fonction .tell (notification) sur mon son bot IRC?
Si john
est déjà dans le canal, je veux que le bot affiche immédiatement le message.
J'utilise déjà mongodb
comme base de données pour stocker des informations, donc je peux probablement y stocker tous mes messages. Voici la logique que j'avais à l'esprit à ce jour:
1. Après l'utilisateur A types .tell john your mother was great
, un auditeur pick-up le modèle /\.tell ([\w-]+) (.*)/
et stocker une variable pour le message (var msg
, l'utilisateur qui a posté le message (var from
) et le nom de l'utilisateur à messaged (var to
) Je vais aussi avoir une variable globale qui signifie le nom du canal et réseau du serveur
2. Je vais stocker une ligne dans MongoDB tels que..:
to from message network channel delivered time
--------------------------------------------------------------------------------
john meder your mother was great freenode.net #foobar 0 (TS)
last night
3. Installation d'un écouteur pour quiconque se joindre à un canal depuis le bot peut vivre dans des canaux multiples sous un réseau et détecter s'il des messages qui ne sont pas remis et s'il y a, tentative de faire correspondre les to
et network
et channel
aux messages stockés, et si des lignes sont trouvées, affichez-les.
Cela sonne bien, mais quelqu'un peut-il l'examiner et peut-être offrir des conseils? Je serai obligé d'avoir un auditeur à l'écoute de toute personne entrant dans une chaîne, non? Il n'y a pas d'alternative à cela?
En fait, au lieu de 'offline' Je veux dire dans le canal. Ils doivent être dans le canal. –