파이썬으로 slackbot으로 주가 확인
1. slackbot 만들기
2. python 라이브러리 설치
$ pip install slackbot
$ pip install jsm
3. slackbot용 디렉토리 만들기
slackbot # プログラムをまとめるディレクトリ。名前はなんでも良い
├─ run.py # このプログラムを実行することで、ボットを起動する
├─ slackbot_settings.py # botに関する設定を書くファイル
└─ plugins # botの機能はこのディレクトリに追加する
├─ __init__.py # モジュールを示すためのファイル。空で良い
└─ my_mention.py # 機能を各ファイル。任意の名前で良い
$ touch run.py slackbot_settings.py
$ mkdir plugins
$ cd plugins
$ touch __init__.py my_mention.py
4. 스크립트 작성
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
# botアカウントのトークンを指定
API_TOKEN = "xxxx-xxxxxxxxxxx-xxxxxxxxxxxxxxxxxxxxxxxx"
# このbot宛のメッセージで、どの応答にも当てはまらない場合の応答文字列
DEFAULT_REPLY = "あっ、あっ、、。"
# プラグインスクリプトを置いてあるサブディレクトリ名のリスト
PLUGINS = ['plugins']
my_mention.py
# coding: utf-8
from slackbot.bot import respond_to # @botname: で反応するデコーダ
from slackbot.bot import listen_to # チャネル内発言で反応するデコーダ
from slackbot.bot import default_reply # 該当する応答がない場合に反応するデコーダ
# @respond_to('string') bot宛のメッセージ
# stringは正規表現が可能 「r'string'」
# @listen_to('string') チャンネル内のbot宛以外の投稿
# @botname: では反応しないことに注意
# 他の人へのメンションでは反応する
# 正規表現可能
# @default_reply() DEFAULT_REPLY と同じ働き
# 正規表現を指定すると、他のデコーダにヒットせず、
# 正規表現にマッチするときに反応
# ・・・なのだが、正規表現を指定するとエラーになる?
# message.reply('string') @発言者名: string でメッセージを送信
# message.send('string') string を送信
# message.react('icon_emoji') 発言者のメッセージにリアクション(スタンプ)する
# 文字列中に':'はいらない
@respond_to('おつかれ')
def mention_func(message):
message.reply('おつだよ') # メンション
message.react('+1')
@listen_to('python')
def listen_func(message):
message.send('pythonしゅき') # ただの投稿
@listen_to('mac')
def listen_func(message):
message.send('macはいいぞ〜') # ただの投稿
@listen_to('win')
def listen_func(message):
message.send('windowsきらい') # ただの投稿
@respond_to('古河')
def listen_func(message):
import jsm
q = jsm.Quotes()
price = q.get_price(5801).close # furukawa
message.send("株価は "+str(price)+"円だよ")
@respond_to('株価')
def listen_func(message):
import jsm
q = jsm.Quotes()
price = q.get_price(5801).close
message.send("古河電工 {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("新日鉄住金 {0} ({1})".format(price, price-2633))
price = q.get_price(6643).close
message.send("戸上電機 {0} ({1})".format(price, price-459))
price = q.get_price(7203).close
message.send("トヨタ自 {0} ({1})".format(price, price-6239))
price = q.get_price(8306).close
message.send("三菱UFJ {0} ({1:.1f})".format(price, price-702.4))
price = q.get_price(9022).close
message.send("JR東海 {0} ({1})".format(price, price-17781))
price = q.get_price(9437).close
message.send("NTTドコモ {0} ({1:.1f})".format(price, price-2600))
price = q.get_price(9613).close
message.send("NTTデータ {0} ({1})".format(price, price-1215))
price = q.get_price(9501).close
message.send("東京電力 {0} ({1})".format(price, price-472))
현재 주가와 취득 단가와 비교한 값을 표시하도록 했습니다.
5. 실행
$ python run.py
(추가) 라즈파이에서 slackbot을 데몬으로 이동
(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 #APIキーを書き換え
$ nohup python3 run.py &
$ exit
nohup에 대한 자세한 내용은 이전 기사을 참조하십시오.
Reference
이 문제에 관하여(파이썬으로 slackbot으로 주가 확인), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/msrks/items/722bc2dc034fe5388861텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)