2016-04-30 9 views
0

Ich gebe Hubot einen ersten Versuch, und ich mache ein Dialog-Skript für grundlegende Konversation. Ich habe eine ganze Reihe von Möglichkeiten abgeschlossen (ich habe viele Fragen und Schlüsselwörter, die funktionieren), aber wenn der Benutzer etwas fragt oder sagt, was Hubot nicht erkennt, ist es totenstill.Gibt es eine Möglichkeit, Hubot auf alle Nachrichten antworten zu lassen, die keine Befehle sind?

Ich möchte einen Standardsatz von Antworten für Hubot hinzufügen, wenn es nicht einen existierenden Befehl oder Worte finden (vage Antworten wie „Das ist interessant“ oder „Sag mir mehr“.)

Gibt es eine Möglichkeit, dies per Skript zu tun? Etwas wie:

robot.respond/* /, (msg) -> 
    msg.send ArrayOfVagueReplies 

wo * ist "alles andere". "Wenn Befehle ... sonst ..."?

Antwort

1

Referenz Da robot.respond Methode des hubot einen regulären Ausdruck kommt, sollten Sie in der Lage sein, nur /.*/ als regex zu liefern, und sie haben alles passen.

So müssten Sie:

module.exports = (robot) -> 
     robot.respond /.*/i, (msg) -> 
      doSomething(msg) 
+0

ehrfürchtig. Wissen Sie zufällig, wo ich eine Liste von Ausdrücken finden kann, die ich verwenden kann, um kompliziertere Matchings zu erstellen? Zum Beispiel verwende ich "()" und "|" aber ich weiß nicht, ob es mehr gibt oder wie man sie genau findet:/(w | W) ho bist du | (w | W) hat (ist | ist) dein Name/ – Yisela

+1

Es gibt viele gute Regex-Tutorials online . Versuchen Sie, Google nach 'coffeescript regex' für bestimmte Codebeispiele zu suchen, aber jeder Regex sollte zwischen den beiden Vorwärtsstrichen arbeiten '// – TonyH

+1

BTW, check out https://regex101.com/ Es ist nicht das beste Tutorial, aber ausgezeichnet für Testen und erklären, wie Ihre Regex funktionieren. – TonyH

Verwandte Themen