みろりHP


緑色さんの多目的ブログ
みろりえいちぴー
ごゆるりとおくつろぎあさーせ。
<< サルトル『嘔吐』 | main | 舞城王太郎『阿修羅ガール』 >>
| カテゴリ:プログラミング |
Python ダイスロール用SkypeBot0.1 api不使用

2016.10.30.追記 ---
これの改良版をアップ。
http://guild-elf.jugem.jp/?eid=823
---



みろりHPのファイル置き場

今週ひさびさに仲間とSkypeでTRPGやってんだけど、やっぱりSkype上でダイスロールができないと不便なんでSkypeBot作った。せっかくなので公開する。コンパイルしてあるんでpython環境がなくても使えるはず。ただちょっと、初期設定が面倒だと思うのでその解説を今回は書く。


こういう感じのBOTだよ。



必要なもの
  • windows。
  • skype for windows。ふつうにデスクトップで開くアレ。
  • skype for web。ブラウザで開くskype。初期設定に必要。
  • sqlite3の中身が見れるツール。DB browser for SQLiteなど。

設定項目(skypeBot.conf)はこんな感じ。
test
これはみどりんが作ってる最中に必要だった項目なんで気にしなくてよい。デフォルトの'False'のままでOK。
dbPath
skype for windowsのデータが保存されてるファイルのパスを書くとこ。たぶん'C:/Users/ユーザ名/AppData/Roaming/Skype/スカイプid/main.db'だと思う。main.dbがあるのを確認し、スラッシュがバックスラッシュになってないか確認。
roomId
めんどくさい項目その1。このBotを適用したいskypeチャットルームのidを書くとこ。これは上のmain.dbに記録されてるんで、まずそれをDB browser for SQLiteとかで開く。そしたらBrowse Dataというタブを開いて、TableのコンボボックスからMessagesなるテーブルを選ぶ。すると全ログの記録が出てくると思うんで、そこからBotを適用したいチャットルームの発言記録を探して、その記録のconvo_idの値を書く。適用したいチャットでなんか適当に発言すればこのリストの一番下に追加されるから、そうやって見つけたらラクと思う。
interval
ぶっちゃけこのプログラムはこのmain.dbをずーっと監視するつくりなんだけど、何秒ごとに監視するか決めるのがここ。
key
Botが反応する文字列を書くとこ。もしここを'xxx'という値にしたら、Botは'xxx 'から始まる発言に反応する。たとえば'xxx 1d100'と言えば1d100の結果を返してくれる。
url
めんどくさい項目その2。ぶっちゃけこのプログラムはダイスロールの結果をウェブ版のskypeに投げるつくりになってんだけど、その投げる宛先を書くのがここ。俺はchromeを使ってるんでchromeでの見かたを書く。まずskype for webを開いてログインして、Botを適用したいチャットルームを開く。そしたらF12を押してDeveloper Toolsを起動して、Networkっていうタブを開く。真ん中らへんに、pollとか?qsp=なんちゃらとかそういうなにがしかが並んでるはず。そこでブラウザ上のチャットルームに戻って、なんでもいいのでなんか発言する。するとすぐNetworkのタブにmessagesという何かがゾゾゾっといくつか増えるんで、それの……たぶん一番下のやつをクリックするとHeadersが開く。そのHeadersからRequest URL(たぶん一番上)の値を探して、書く。
token
いま開いてるHeadersの中からRegistrationToken(たぶん下の方)を探して書く。ここまで書いたらもうskype for webは閉じてよいと思う。

こいつが受け付けるダイスロールの書式は以下
ふつーにダイスロールがしたい
'xxx 1d100'みたいに書く。dは大文字でもいいよ。
足し算がしたい
'xxx 1d10 5'みたいに書く。プラス記号は使わず半角スペースを入れてね。
引き算がしたい
'xxx 1d10 -5'みたいに書く。
Botを終了したい
起動するとコマンドプロンプトが開くのだけど、それを閉じればいい。あるいは'xxx end'と入力しても終了する。

注意点としては、上述したとおりコイツはログを指定秒ごとにチェックするんで、たとえば2秒設定のとき、2秒以内に別の発言が来たらその前のダイスロールは無視される。誰かがロールしたら、譲りあいの心で数秒沈黙するのをおすすめ。あと5桁以上の数値は使えないように設定してある。これは試運転で仲間とのチャットで使ってみたら、某Wちゃんがむちゃなロールをさせてフリーズさせやがったことに対応した結果。

まあ、なんかおかしいなフリーズかなって思ったら問答無用でコマンドプロンプトを終了させて開き直せばいいと思う。



公開は上達の一歩ってことで、DLファイルにはpythonソースも同梱してある。気が向いたら、以上のようなこの非常にメンドロくさい設定項目を自動で埋めてくれるような改良をするかもしんない。やり方はなんとなく思いつくんだけど、仲間と遊ぶとき俺が使えりゃいーやってテンションで作ってたんでそういった親切機能に乏しいんだよねー。

| 緑色 | プログラミング | comments(0) |
| カテゴリ:- |
スポンサーサイト
| スポンサードリンク | - | - |









 123456
78910111213
14151617181920
21222324252627
28293031   
<< May 2017 >>
+ みろりHP内検索
+ 閲覧記事
+ カテゴリ
+ 年月選択
  • 2017年 05月 (6)
  • 2017年 04月 (8)
  • 2017年 03月 (7)
  • 2017年 02月 (10)
  • 2017年 01月 (6)
  • 2016年 12月 (8)
  • 2016年 11月 (8)
  • 2016年 10月 (5)
  • 2016年 09月 (5)
  • 2016年 08月 (7)
  • 2016年 07月 (9)
  • 2016年 06月 (6)
  • 2016年 05月 (8)
  • 2016年 04月 (10)
  • 2016年 03月 (10)
  • 2016年 02月 (8)
  • 2016年 01月 (9)
  • 2015年 12月 (9)
  • 2015年 11月 (6)
  • 2015年 10月 (5)
  • 2015年 09月 (4)
  • 2015年 08月 (8)
  • 2015年 07月 (5)
  • 2015年 06月 (3)
  • 2015年 05月 (7)
  • 2015年 04月 (8)
  • 2015年 03月 (12)
  • 2015年 02月 (8)
  • 2015年 01月 (4)
  • 2014年 12月 (5)
  • 2014年 11月 (5)
  • 2014年 10月 (7)
  • 2014年 09月 (4)
  • 2014年 08月 (7)
  • 2014年 07月 (6)
  • 2014年 06月 (4)
  • 2014年 05月 (12)
  • 2014年 04月 (9)
  • 2014年 03月 (6)
  • 2014年 02月 (6)
  • 2014年 01月 (8)
  • 2013年 12月 (7)
  • 2013年 11月 (10)
  • 2013年 10月 (10)
  • 2013年 09月 (9)
  • 2013年 08月 (11)
  • 2013年 07月 (10)
  • 2013年 06月 (9)
  • 2013年 05月 (15)
  • 2013年 04月 (11)
  • 2013年 03月 (5)
  • 2013年 02月 (7)
  • 2013年 01月 (6)
  • 2012年 12月 (9)
  • 2012年 11月 (10)
  • 2012年 10月 (10)
  • 2012年 09月 (4)
  • 2012年 08月 (2)
  • 2012年 07月 (7)
  • 2012年 06月 (13)
  • 2012年 05月 (13)
  • 2012年 04月 (15)
  • 2012年 03月 (4)
  • 2012年 02月 (12)
  • 2012年 01月 (9)
  • 2011年 12月 (5)
  • 2011年 11月 (13)
  • 2011年 10月 (2)
  • 2011年 09月 (2)
  • 2011年 08月 (1)
  • 2011年 06月 (1)
  • 2011年 05月 (4)
  • 2011年 04月 (10)
  • 2011年 03月 (8)
  • 2011年 02月 (11)
  • 2011年 01月 (14)
  • 2010年 12月 (14)
  • 2010年 11月 (17)
  • 2010年 10月 (17)
  • 2010年 09月 (19)
  • 2010年 08月 (22)
  • 2010年 07月 (18)
  • 2010年 06月 (16)
  • 2010年 05月 (19)
  • 2010年 04月 (15)
  • 2010年 03月 (22)
  • 2010年 02月 (18)
  • 2010年 01月 (18)
  • 2009年 06月 (2)
  • 2009年 04月 (1)
  • 2007年 12月 (10)
  • 2007年 11月 (7)
  • 2007年 10月 (9)
  • 2007年 09月 (4)
  • 2007年 07月 (5)
  • 2007年 06月 (11)
  • 2007年 05月 (6)
  • 2007年 04月 (4)
  • + ブックマーク
    + 最近のコメント
    + アクセスカウンター
    全体(since 2010.02.03.)
    今日… 昨日…