J'ai implémenté une commande de remplacement de type Vim dans Slackbot #Python

Vim est bon!

Utilisez-vous Vim les gars? Vous utilisez Vim, non? Vous ne pouvez pas utiliser Vim, non? Je l'utilise.

Alors, Vimmer, connaissez-vous la communauté japonaise de Vim? La communauté japonaise de Vim est principalement active sur Lingr. Donc, c'est une salle de chat ici, mais il y a pas mal de robots en cours d'exécution, et il y a beaucoup de fonctions très utiles. Dans de telles circonstances, voici la fonction que je pensais être la meilleure. Screen Shot 2017-05-21 at 10.04.22.png N'est-ce pas étonnant? Lorsque vous appuyez sur la commande Vim replace, le bot vous enverra immédiatement une version modifiée du texte. (Parce que tous les programmeurs partent du principe qu'ils sont des Vimmers, je n'expliquerai pas la commande de remplacement de Vim, car ils sont tous des Vimmers, non?)

J'y ai toujours pensé. ** "Ceci, je suis fou de moi et de ce Slack" ** Mais je n'aimais pas Slackbot parce que j'avais abandonné dans le passé. "Peut-être que je peux le faire maintenant?" J'ai eu l'idée.

C'est pourquoi je vais y arriver.

La source sera placée dans ko ↑ ko ↓.

Les sites auxquels j'ai fait référence sont les suivants.

Comment faire

Préparation

Cette fois, j'ai fait référence à cet article. Tout d'abord, [cette zone](http://qiita.com/sukesuke/items/1ac92251def87357fdf6#slackbot%E3%81%AE%E5%88%9D%E6%9C%9F%E8%A8%AD%E5% Veuillez préparer jusqu'à AE% 9A). Une fois que cela est fait, j'aimerais créer cette commande de remplacement.

Remplacer la commande

Tout d'abord, créez un fichier appelé bot_listen.py dans le répertoire plugin.

Le contenu est comme ça.

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]) + 'Je voulais dire')
    else:
        message.send('Dans la phrase précédente "' + before[0] + 'N'est pas inclu?')

Ce que je fais c'est

Ce n'est pas grave si vous pouvez utiliser des expressions régulières.

Tâche

Recommended Posts

J'ai implémenté une commande de remplacement de type Vim dans Slackbot #Python
Appuyez sur une commande en Python (Windows)
Un client HTTP simple implémenté en Python
J'ai fait un programme de gestion de la paie en Python!
J'ai essayé d'implémenter la régression logistique de Cousera en Python
Notes J'ai recherché la création d'outils de ligne de commande en Python
J'ai essayé d'implémenter le filtre anti-spam bayésien de Robinson avec python
Je veux créer une fenêtre avec Python
J'ai essayé de jouer à un jeu de frappe avec Python
J'ai écrit une classe en Python3 et Java
J'ai essayé d'implémenter la fonction gamma inverse en python
J'ai essayé d'ajouter un module Python 3 en C
J'ai créé un programme cryptographique César en Python.
Implémentation de SimRank en Python
Implémentation de Shiritori en Python
Développement Slackbot en Python
J'ai essayé d'implémenter la recherche de priorité de largeur avec python (file d'attente, dessin personnalisé)
Je souhaite intégrer une variable dans une chaîne Python
Je veux facilement implémenter le délai d'expiration en python
Spécifiez une sous-commande comme argument de ligne de commande en Python
Je veux écrire en Python! (2) Écrivons un test
Créez un Slackbot simple avec un bouton interactif en python
J'ai essayé d'implémenter un pseudo pachislot en Python
Je veux échantillonner au hasard un fichier avec Python
Je veux travailler avec un robot en python.
Comment exécuter une commande à l'aide d'un sous-processus en Python
Prendre une capture d'écran en Python
J'ai écrit python en japonais
Créer une fonction en Python
Créer un dictionnaire en Python
Exécuter des commandes externes avec python
Créer un bookmarklet en Python
Implémentation de Supreme Solver dans Python 3
J'ai fait un texte Python
Exécution de commandes externes en Python
Je comprends Python en japonais!
Dessinez un cœur en Python
Ce que j'ai appris en Python
J'ai fait un jeu de frappe simple avec tkinter de Python
Un programme polyvalent qui formate les chaînes de commande Linux avec python
J'ai essayé d'implémenter un automate cellulaire unidimensionnel en Python
J'ai créé un lecteur de flux rapide en utilisant feedparser en Python
J'ai fait une commande pour générer un commentaire pour une table dans Django
J'ai essayé "un programme qui supprime les déclarations en double en Python"
J'ai essayé "Comment obtenir une méthode décorée en Python"
[MQTT / Python] Implémentation d'une classe qui fait Pub / Sub de MQTT en Python
[python] Gérer les fonctions en les mettant dans un dictionnaire (table de commande, table de fonction, pointeur de fonction)
J'ai créé une classe en Python et essayé de taper du canard
J'ai fait un jeu de puzzle (comme) avec Tkinter of Python
J'ai fait un chronomètre en utilisant tkinter avec python
J'ai essayé d'implémenter l'algorithme de calcul séquentiel non biaisé de Donald Knuth en Python
Je veux ajouter un joli complément à input () en python
J'obtiens un UnicodeDecodeError avec mecab-python3
Probablement dans un serpent Nishiki (Titre original: Peut-être en Python)
Ecrire une dichotomie en Python
[python] Gérer les fonctions dans une liste
Implémentation de la segmentation d'image en python (Union-Find)