Vérifiez les cours des actions avec Slackbot en utilisant Python

Vérifiez le prix de l'action avec mou. C'est très pratique. (Here était très utile)

スクリーンショット 2017-08-16 15.19.35.png ## 1.Faire un slackbot

https://my.slack.com/services/new/bot

2. Installez la bibliothèque python

$ pip install slackbot
$ pip install jsm

3. Créez un répertoire pour slackbot

slackbot         #Un annuaire qui organise les programmes. N'importe quel nom va bien
├─ run.py        #Démarrez le bot en exécutant ce programme
├─ slackbot_settings.py   #Fichier pour écrire les paramètres liés au bot
└─ plugins                #Ajouter une fonctionnalité de bot à ce répertoire
   ├─ __init__.py         #Un fichier pour indiquer le module. Vider c'est bien
   └─ my_mention.py       #Présente chaque fichier. N'importe quel nom va bien
$ touch run.py slackbot_settings.py
$ mkdir plugins
$ cd plugins
$ touch __init__.py my_mention.py

4. Créez un script

run.py


# coding: utf-8

from slackbot.bot import Bot

def main():
    bot = Bot()
    bot.run()

if __name__ == "__main__":
    print('start slackbot')
    main()

slackbot_settings.py


# coding: utf-8

#Spécifier le jeton pour le compte de bot
API_TOKEN = "xxxx-xxxxxxxxxxx-xxxxxxxxxxxxxxxxxxxxxxxx"

#Chaîne de réponse lorsqu'un message adressé à ce bot ne s'applique à aucune réponse
DEFAULT_REPLY = "Ah ah ..."

#Liste des noms de sous-répertoires où se trouve le script de plug-in
PLUGINS = ['plugins']

my_mention.py


# coding: utf-8

from slackbot.bot import respond_to     # @botname:Décodeur qui réagit avec
from slackbot.bot import listen_to      #Décodeur qui répond aux remarques dans le canal
from slackbot.bot import default_reply  #Décodeur qui réagit lorsqu'il n'y a pas de réponse correspondante

# @respond_to('string')Message au bot
#la chaîne peut être une expression régulière "r'string'」
# @listen_to('string')Messages autres que pour bot dans la chaîne
#                           @botname:Notez qu'il ne réagit pas
#Réagissez lorsque vous en parlez aux autres
#Peut être exprimé normalement
# @default_reply()          DEFAULT_Même fonction que REPLY
#Si vous spécifiez une expression régulière, elle n'atteindra pas les autres décodeurs
#Réagir lors de la mise en correspondance d'une expression régulière
#... Mais est-ce une erreur si je spécifie une expression régulière?

# message.reply('string')   @Nom du haut-parleur:Envoyer un message avec une chaîne
# message.send('string')Envoyer la chaîne
# message.react('icon_emoji')Réaction au message de l'orateur(timbre)Faire
#Dans la chaîne':'Je n'ai pas besoin
@respond_to('bon travail')
def mention_func(message):
    message.reply('C'est Otsu') #Mention
    message.react('+1')

@listen_to('python')
def listen_func(message):
    message.send('python shuki')      #Juste un post

@listen_to('mac')
def listen_func(message):
    message.send('mac est bon ~')      #Juste un post

@listen_to('win')
def listen_func(message):
    message.send('Je déteste les fenêtres')      #Juste un post

@respond_to('Furukawa')
def listen_func(message):
    import jsm
    q = jsm.Quotes()
    price = q.get_price(5801).close # furukawa
    message.send("Le cours de l'action est"+str(price)+"C'est un cercle")

@respond_to('Prix de l'action')
def listen_func(message):
    import jsm
    q = jsm.Quotes()
    price = q.get_price(5801).close
    message.send("Furukawa électrique{0} ({1})".format(price, price-2990))
    price = q.get_price(3382).close
    message.send("7&iHD {0} ({1})".format(price, price-4450))
    price = q.get_price(5401).close
    message.send("Nippon Steel et Sumitomo Metal{0} ({1})".format(price, price-2633))
    price = q.get_price(6643).close
    message.send("Togami électrique{0} ({1})".format(price, price-459))
    price = q.get_price(7203).close
    message.send("Toyota possède{0} ({1})".format(price, price-6239))
    price = q.get_price(8306).close
    message.send("Mitsubishi UFJ{0} ({1:.1f})".format(price, price-702.4))
    price = q.get_price(9022).close
    message.send("JR Tokai{0} ({1})".format(price, price-17781))
    price = q.get_price(9437).close
    message.send("NTT Docomo{0} ({1:.1f})".format(price, price-2600))
    price = q.get_price(9613).close
    message.send("Données NTT{0} ({1})".format(price, price-1215))
    price = q.get_price(9501).close
    message.send("TEPCO{0} ({1})".format(price, price-472))

Le cours actuel de l'action et la valeur par rapport au prix unitaire d'acquisition sont affichés.

5. Exécuter

$ python run.py
スクリーンショット 2017-08-16 15.26.21.png スクリーンショット 2017-08-16 15.26.33.png

(Ajout) Exécutez slackbot en tant que démon sur Raspeye

(mac)$ ssh [email protected]

$ sudo apt-get install python3-pip
$ pip3 install slackbot
$ pip3 install jsm
$ git clone https://github.com/msrks/slackbot.git
$ cd slackbot/
$ ls
README.md  plugins  run.py  slackbot_settings.py
$ nano slackbot_settings.py #Réécrire la clé API
$ nohup python3 run.py &
$ exit

Voir Article précédent pour nohup

Recommended Posts

Vérifiez les cours des actions avec Slackbot en utilisant Python
Collecte automatique des cours boursiers à l'aide de python
Vérification de domaine avec Python
Vérifier la version avec python
Vérifiez la couverture de python avec pytest-cov
Utilisation de Quaternion avec Python ~ numpy-quaternion ~
[Python] Utilisation d'OpenCV avec Python (basique)
Obtenez des stocks avec Python
Utiliser OpenCV avec Python @Mac
Envoyer en utilisant Python avec Gmail
Usurpation d'adresse IP à l'aide de tor sur macOS et vérification avec python
Compléter python avec emacs en utilisant company-jedi
Moyenne harmonique par Python (en utilisant SciPy)
Utilisation de Rstan de Python avec PypeR
[Python] Utilisation d'OpenCV avec Python (transformation d'image)
[Python] Utilisation d'OpenCV avec Python (détection des bords)
[Python] Générer un mot de passe avec Slackbot
Vérifiez le style de code python à l'aide de pep8
Notes sur l'utilisation de rstrip avec python.
Lors de l'utilisation de MeCab avec python dans virtualenv
Précautions lors de l'utilisation de six avec Python 2.5
[AWS] Utilisation de fichiers ini avec Lambda [Python]
[Python] Vérification simple du type d'argument avec la classe de données
Essayez une formule utilisant Σ avec python
Derrière le flyer: utiliser Docker avec Python
Utilisation de Python et MeCab avec Azure Databricks
Vérifier l'existence du fichier avec python
Téléchargez les données de cours des actions japonaises avec Python
Essayez d'utiliser Python avec Google Cloud Functions
Travailler avec OpenStack à l'aide du SDK Python
Conseils pour utiliser python + caffe avec TSUBAME
J'utilise tox et Python 3.3 avec Travis-CI
[Personal memo] julia --Utiliser la bibliothèque Python avec Julia en utilisant PyCall
FizzBuzz en Python3
Classement des numéros de stock par balise Qiita avec python
Grattage avec Python
Lire les données avec python / netCDF> nc.variables [] / Vérifier la taille des données
Vérifier automatiquement les scripts Python avec GitHub + Travis-CI + pycodestyle
vérification de la grammaire python
Grattage avec Python
Python avec Go
Twilio avec Python
Intégrer avec Python
Commencez à utiliser Python
Obtenez des données sur le cours de l'action avec l'API Quandl [Python]
Vérifiez la date du devoir de drapeau avec Python
Jouez avec 2016-Python
J'ai essayé d'utiliser mecab avec python2.7, ruby2.3, php7
AES256 avec python
Testé avec Python
python commence par ()
avec syntaxe (Python)
Création récente de classement à l'aide de l'API Qiita avec Python
Bingo avec python
Zundokokiyoshi avec python
Web scraping avec Python (cours de l'action)
Scraping à l'aide de Python
Excel avec Python
Micro-ordinateur avec Python