プロジェクト(金岡グループ)
Python による開発
金岡 晃
Python による開発
slackbot ライブラリ
ボットが実行されるフォルダの設定を行う
(teratermによるサーバ上の作業)
• 実施コマンド
• mkdir <フォルダ名>
• cd <フォルダ名>
• touch slackbot_settings.py
• touch run.py
• mkdir plugins
• touch plugins/__init__.py botkitを使うための初期化
Python による開発
2017/6/9 プロジェクト
2
slackbot ライブラリ
slackbot_settings.pyの編集
API_TOKEN = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
default_reply = “I could not understand that...“
PLUGINS = [
‘plugins’, ]
APIトークン
デフォルトのリプライ
teratermで作業
ローカルで作成してWinSCP でアップロード
ボットが実行される フォルダ
Python による開発
slackbot ライブラリ
run.pyの編集
from slackbot.bot import Bot def main():
bot = Bot() bot.run()
if __name__ == "__main__":
main()
teratermで作業
ローカルで作成してWinSCP でアップロード
ボットが実行される フォルダ
Python による開発
2017/6/9 プロジェクト
4
slackbot ライブラリ
好きなファイル(***.py)の編集
teratermで作業
ローカルで作成してWinSCP でアップロード
ボットが実行される フォルダの下のplugin フォルダ
Python による開発
slackbot ライブラリ
ボットの実行
( teratermによるサーバ上の作業)
• 実施コマンド
• python run.py
Python による開発:簡単な例
2017/6/9 プロジェクト
6
slackbot ライブラリ
mention.pyの編集
from slackbot.bot import respond_to
@respond_to('tired')
@respond_to('zzz') def cheer(message):
message.reply('You can make it!')
teratermで作業
ローカルで作成してWinSCP でアップロード
ボットが実行されるフォル ダの下のpluginフォルダ
“tired”か”zzz”をボット 宛につぶやくと反応す る
“You can make it!”と レスする
Python による開発:簡単な例
slackbot ライブラリ
mention.pyの編集
from slackbot.bot import respond_to
@respond_to('tired')
@respond_to('zzz') def cheer(message):
message.reply('You can make it!')
teratermで作業
ローカルで作成してWinSCP でアップロード
ボットが実行されるフォル ダの下のpluginフォルダ
“tired”か”zzz”をボット 宛につぶやくと反応す る
2017/6/9 プロジェクト 8
Python による開発:軽い応用
何か Bot あてにつぶやかれたら、登録してある複数の文言から ランダムに選択して返信する
やること
• 複数文言を登録してあるテキストファイル(1行に1文言)
を用意
• テキストファイルの行数を読み込み、何行目を呼び出すか をランダムに決める
• 決められた行の文言をメッセージとして返す
Python による開発:軽い応用
2017/6/9 プロジェクト
10
from slackbot.bot import respond_to
@respond_to('wei')
def getrandcomment(message):
import random
f = open('comments.txt','r') list = f.readlines()
num = len(list)
randnum = random.randint(0,num-1) message.reply(list[randnum])
randomcom.py
“wei”というメッセージに反応 する
文言ファイル
(comments.txt)を開く 行数をカウント
レスする文言をランダムに 選んで、その行をレスする