Ich habe einen Vim-ähnlichen Ersetzungsbefehl in Slackbot #Python implementiert

Vim ist gut!

Benutzt ihr Vim? Du benutzt Vim, richtig? Sie können Vim nicht verwenden, oder? Ich benutze es.

Also, Vimmer, kennst du die japanische Community von Vim? Die japanische Community von Vim ist hauptsächlich auf Lingr aktiv. Es ist also ein Chatroom hier, aber es laufen einige Bots und es gibt viele sehr nützliche Funktionen. Unter solchen Umständen ist hier die Funktion, die ich für die beste hielt. Screen Shot 2017-05-21 at 10.04.22.png Ist das nicht erstaunlich? Wenn Sie den Befehl Vim ersetzen drücken, sendet Ihnen der Bot sofort eine geänderte Version des Textes. (Da alle Programmierer davon ausgehen, dass sie Vimmer sind, werde ich den Ersetzungsbefehl von Vim nicht erklären, da sie alle Vimmer sind, oder?)

Ich habe immer darüber nachgedacht. ** "Das, ich bin verrückt nach mir und diesem Slack" ** Aber ich mochte Slackbot nicht, weil ich in der Vergangenheit aufgegeben hatte. "Vielleicht kann ich es jetzt tun?" Ich kam auf die Idee.

Deshalb werde ich es schaffen.

Die Quelle wird unter ko ↑ ko ↓ abgelegt.

Die Seiten, auf die ich mich bezog, sind wie folgt.

Wie man ... macht

Vorbereitung

Dieses Mal habe ich auf [diesen Artikel] verwiesen (http://qiita.com/sukesuke/items/1ac92251def87357fdf6). Zunächst [dieser Bereich](http://qiita.com/sukesuke/items/1ac92251def87357fdf6#slackbot%E3%81%AE%E5%88%9D%E6%9C%9F%E8%A8%AD%E5% Bitte bereiten Sie bis zu AE% 9A) vor. Sobald dies erledigt ist, möchte ich diesen Ersatzbefehl erstellen.

Befehl ersetzen

Erstellen Sie zunächst eine Datei mit dem Namen "bot_listen.py" im Verzeichnis "plugin".

Der Inhalt ist so.

bot_listen.py


from slackbot.bot import listen_to
import re

pastmsg = ''
pastmsg2 = ''

@listen_to(r'.+')
def savemsg(message):
    global pastmsg2
    global pastmsg
    pastmsg2 = pastmsg
    pastmsg = message.body['text']

@listen_to(r'^s/+\S+/+\S+/$')
def replace(message):
    before = re.findall(r'^s/(.*)/+\S+/', pastmsg)
    after = re.findall(r'^s/+\S+/(.*)/', pastmsg)
    if before[0] in pastmsg2:
        message.send('「' + pastmsg2.replace(before[0], after[0]) + 'ich wollte sagen')
    else:
        message.send('Im vorigen Satz "' + before[0] + 'Ist nicht enthalten?')

Was ich tue ist

Es ist keine große Sache, wenn Sie reguläre Ausdrücke verwenden können.

Aufgabe

Recommended Posts

Ich habe einen Vim-ähnlichen Ersetzungsbefehl in Slackbot #Python implementiert
Drücken Sie einen Befehl in Python (Windows)
Ein einfacher HTTP-Client, der in Python implementiert ist
Ich habe ein Pay-Management-Programm in Python erstellt!
Ich habe versucht, Couseras logistische Regression in Python zu implementieren
Hinweise Ich habe nachgeschlagen, um Befehlszeilentools in Python zu erstellen
Ich habe versucht, Robinsons Bayesian Spam Filter mit Python zu implementieren
Ich möchte mit Python ein Fenster erstellen
Ich habe versucht, mit Python ein Tippspiel zu spielen
Ich habe eine Klasse in Python3 und Java geschrieben
Ich habe versucht, die inverse Gammafunktion in Python zu implementieren
Ich habe versucht, ein Python 3-Modul in C hinzuzufügen
Ich habe ein Caesar-Kryptografieprogramm in Python erstellt.
SimRank in Python implementiert
Shiritori in Python implementiert
Slackbot-Entwicklung in Python
Ich habe versucht, die Suche nach Breitenpriorität mit Python zu implementieren (Warteschlange, selbst erstelltes Zeichnen).
Ich möchte eine Variable in einen Python-String einbetten
Ich möchte Timeout einfach in Python implementieren
Geben Sie in Python einen Unterbefehl als Befehlszeilenargument an
Ich möchte in Python schreiben! (2) Schreiben wir einen Test
Erstellen Sie einen einfachen Slackbot mit einer interaktiven Schaltfläche in Python
Ich habe versucht, einen Pseudo-Pachislot in Python zu implementieren
Ich möchte eine Datei mit Python zufällig testen
Ich möchte mit einem Roboter in Python arbeiten.
So führen Sie einen Befehl mit einem Unterprozess in Python aus
Machen Sie einen Screenshot in Python
Ich habe Python auf Japanisch geschrieben
Erstellen Sie eine Funktion in Python
Erstellen Sie ein Wörterbuch in Python
Führen Sie externe Befehle mit Python aus
Erstellen Sie ein Lesezeichen in Python
Implementierte Supreme Solver in Python 3
Ich habe einen Python-Text gemacht
Externe Befehlsausführung in Python
Ich verstehe Python auf Japanisch!
Zeichne ein Herz in Python
Was ich in Python gelernt habe
Ich habe ein einfaches Tippspiel mit tkinter of Python gemacht
Ein Allzweckprogramm, das Linux-Befehlszeichenfolgen mit Python formatiert
Ich habe versucht, einen eindimensionalen Zellautomaten in Python zu implementieren
Ich habe einen schnellen Feed-Reader mit Feedparser in Python erstellt
Ich habe einen Befehl zum Generieren eines Kommentars für eine Tabelle in Django eingegeben
Ich habe versucht, "ein Programm, das doppelte Anweisungen in Python entfernt"
Ich habe versucht "Wie man eine Methode in Python dekoriert"
[MQTT / Python] Implementierte eine Klasse, die Pub / Sub von MQTT in Python ausführt
[Python] Verwalten Sie Funktionen, indem Sie sie in ein Wörterbuch einfügen (Befehlstabelle, Funktionstabelle, Funktionszeiger).
Ich habe eine Klasse in Python erstellt und versucht, Enten zu tippen
Ich habe mit Tkinter of Python ein Puzzlespiel (wie) gemacht
Ich habe eine Stoppuhr mit tkinter mit Python gemacht
Ich habe versucht, Donald Knuths unvoreingenommenen sequentiellen Berechnungsalgorithmus in Python zu implementieren
Ich möchte eine schöne Ergänzung zu input () in Python hinzufügen
Ich bekomme einen UnicodeDecodeError mit mecab-python3
Wahrscheinlich in einer Nishiki-Schlange (Originaltitel: Vielleicht in Python)
Schreiben Sie eine Dichotomie in Python
[Python] Verwalten Sie Funktionen in einer Liste
Implementierte Bildsegmentierung in Python (Union-Find)