publier sur vim → Python → Slack

Publier sur Slack depuis VIM via Python

«J'ai été influencé par les articles suivants.

――Ce que je voulais faire

--Préparation

python.py


import sys
import requests
import json
import re


class SlackApiWrapper:
    def __init__(self, proxy_flg=None):
        '''
        proxy_flg:True:Utiliser un proxy
                  False:Non-Proxy
        '''
        # Your infomation
        self.token = '<your token>'
        self.postWebhookUrl = '<your webhookurl>'

        # Post infomation
        self.postSlackUrl = 'https://slack.com/api/chat.postMessage'
        self.channel = '#general'
        self.username = 'vim_python'

        # if proxy
        if proxy_flg is None:
            self.proxy_flg = False
        else:
            self.proxy_flg = proxy_flg
            self.proxy_info = {
                "http": "http://hogehoge:8080",
                "https": "http://hogehoge:8080"
            }

    def post_api(self, text):
        json_data = {
            'token': self.token,
            'channel': self.channel,
            'text': text,
            'username': self.username,
            'unfurl_links': 'false',
            'pretty': 1

        }
        if self.proxy_flg:
            r = requests.post(self.postSlackUrl, params=json_data, proxies=self.proxy_info)
        else:
            r = requests.post(self.postSlackUrl, params=json_data)
        print(r.text)

    def post_webhook(self, text):
        json_data = {
            'text': text,
            'username': self.username,
            'link_names': 1
        }
        if self.proxy_flg:
            r = requests.post(self.postWebhookUrl, data=json.dumps(json_data), proxies=self.proxy_info)
        else:
            r = requests.post(self.postWebhookUrl, data=json.dumps(json_data))
        print(r.text)


def main(args):
    filename = None
    if args:
        filename = str(args[0])

    data = None
    if filename is None:
        data = ["test"]
    else:
        try:
            with open(filename, mode="r", encoding='utf-8') as fh:
                data = fh.readlines()
        except Exception as ex:
            raise ex
    
    #Concaténer les sauts de ligne vim
    # data = "".join(data)
    # data = re.sub(r"\n", "", data)

    # None Proxy
    # sl = SlackApiWrapper(False)

    # Proxy
    sl = SlackApiWrapper(True)

    #Publier des sauts de ligne en continu
    for text in data:
        #Soit
        sl.post_webhook(text)
        sl.post_api(text)


if __name__ == "__main__":
    main(sys.argv[1:])

_vimrc.local


"slack"{{{
function! s:post_slack_vim()"
    let s:file = tempname()
    let s:py_script = "<DL Python.py CHEMIN>"
    silent execute ":write " . s:file
    silent execute '!python' . ' ' . s:py_script . ' ' . s:file
    call delete(s:file)
    unlet! s:file
    unlet! s:py_script
endfunction augroup END"
command! -nargs=0 PSlack call s:post_slack_vim()
"}}}

Recommended Posts

publier sur vim → Python → Slack
Publier de Python vers Slack
Publiez sur Slack avec Python 3
Publier sur Slack en Python
Texte de l'image et publication sur slack (python slackbot)
Publier sur Slack via un abonné
Publier sur Twitter en utilisant Python
POSTER des messages de python vers Slack via un webhook entrant
Publier la sortie de la console Jenkins sur Slack
Publication de Python sur la chronologie Facebook
[Lambda] [Python] Publier sur Twitter depuis Lambda!
Publier une image de Python sur Tumblr
Publiez facilement sur Twitter avec Python 3
[Nanonets] Comment publier un mémo [Python]
Mis à jour vers Python 2.7.9
Publier un message d'IBM Cloud Functions sur Slack en Python
Connectez-vous à Slack à l'aide de requêtes en Python
"Backport" vers python 2
Envoyer un message de Slack à un serveur Python
[Premier message] Question ・ Comment balayer python
Publiez le titre en plein essor de YouTube sur Twitter avec python3
Autoriser vim quickfix à accéder aux messages d'erreur Python
Exemple de notification Slack avec python lambda
[Python] Lancer un message sur le canal Slack
[Python] Mention à plusieurs personnes avec l'API de Slack
Flux pour terminer l'authentification Slack avec Flask (Python)
Comment installer Python
Changements de Python 3.0 à Python 3.5
Changements de Python 2 à Python 3.0
Réécrire le code Python2 en Python3 (2to3)
Comment installer python
Introduction au langage Python
Introduction à OpenCV (python) - (2)
Création de chatbot Slack Python
Remarque pour faire de python un démon
Introduction de Python 2.7 à CentOS 6.6
Connectez python à mysql
Créer un plugin pour exécuter Python Doctest sur Vim (2)
Créez un plug-in pour exécuter Python Doctest avec Vim (1)
Pour ceux qui veulent écrire Python avec vim
Essayez d'utiliser le Python On-box de Junos #Bonus 1 Quelque chose comme ChatOps / Commit et publiez sur Slack
Publié en tant que pièce jointe à Slack sur AWS Lambda (Python)
Sélénium et python pour ouvrir Google
Connectez-vous à BigQuery avec Python
[2020.8 dernière] Comment installer Python
[python] Convertir la date en chaîne
Comment installer Python [Windows]
Introduction à Python Django (2) Win
Pour vider stdout en Python
Convertir numpy int64 en python int
python3: Comment utiliser la bouteille (2)
[Python] Convertir la liste en Pandas [Pandas]
Flirter de PHP à Python
Une route vers Python intermédiaire
POST json avec le script Python 3
Essayez de comprendre Python soi