Awesome
ボットデスくん
ポケモンマストドン「ポケマス」のさらに一部界隈で有名な、pythonで動くマストドンのマルコフ連鎖botです。
あとなんか画像を検索したりする。
概要
おれはしゅうまい君が作りたかったんだよ…
新機能「画像検索して貼る」
ボットデスくんにメンション飛ばして「○○の画像くれ」とか「△△の絵ちょうだい」とか言ってみよう。たぶんエロいのは持ってこないと思うけど。
名言
- 「ねぇやだスプラやめる!?!!」
- 「おは花粉症っぷ?」
- 「キャンドゥーのドレッシング?キャンドゥーのは無理あるじゃろう?おれとしては」
- 「タオルとマステ買ったのにいつも足りない」
- 「今日はエンニュートだ!!!!!!」
- 「大船渡線だよあ」
- 「アブソルアイコンの動画見てるだけか?」
- 「それちんこですよ」
など
ここがすごいぞボットデス
エラーで止まっても自分でそれを把握して勝手に再起動する
- ホストドン側でエラーが出ることが多いので導入しました
画像検索で結構違う結果を持ってくる
- いや、いっぱい拾ってランダムで上げてるだけなんですけどね
使い方(下準備)
- python3
- まあpythonで動きますし。3.8.5で動いてるけどたぶん3.9.1でも動く。
- MeCab
- インストール必須。mecab-ipadic-NEologdあたりの辞書を用意すると良いです。
- botをユーザー登録するためのマストドンアカウント
- そりゃ必要ですわな。その後アカウント→開発から mastodon-api の
client_id
access_token
client_secret
あたりがないと動かないですよ。
- そりゃ必要ですわな。その後アカウント→開発から mastodon-api の
- configファイルの設定
- マストドンでbotを動かすための設定を書くファイルです。プログラム内に直接書くのは気がひけるので分けました。
- config_sample.pyからconfig.pyにコピー&リネームして使ってください。
- .envはめんどいのでやめました。
使い方(Python編)
- 以下をpythonで使えるようにpip3とか使ってなんとかする。
- mecab-python3
- Mastodon.py
- requests
- requests_oauthlib
- beautifulsoup4
- apscheduler
まあこんな感じ(コピペ用)
pip3 install mecab-python3 Mastodon.py requests requests_oauthlib beautifulsoup4 apscheduler
- 他なにか足りなければ動かしたときに「おいこれがねえぞ」ってエラーが出るのでそれ見て適宜導入してください。
さあ動かすぞ
基本的にubuntuのpython3.8で動かしてますのでそれ以外の環境はわかりませんが
bash run
以上。
インストール時につまづく点
辞書定義ファイルの場所がなぜかへんなところを指定される(21/05/12追記)
何が悪いのかわかりません。コレに関しては、指定された場所へmecabrcファイルをコピーするしかない。 mecab-ipadic-NEologd のページにも書いてありました。
気になる点
- やっぱなんかソースきれいではない
- 422エラーが返ってきたときにどうすればいいのかまだわからん
- きりぼっとが超参考になった
更新履歴
[2022/12/27] v0.15.0
- 画像を探せるようにした。
[2021/12/12] v0.14.11
- 誰が画像検索したのかメンション飛ばすようにした。
[2020/12/28] v0.14.10
- 画像拾ってこれても「検索しすぎて怒られた」とか言うバグ修正。
[2020/12/27] v0.14.9
- 検索しすぎて怒られても検索するバグを修正。
[2020/12/27] v0.14.8
- 構文間違ってたかも
[2020/12/26] v0.14.7
- ムラッけがバグっていたので修正。
[2020/12/26] v0.14.6
- ボットデスくんの画像検索機能にムラッけ追加。
[2020/12/23] v0.14.5
- 不適切画像フィルタ強化。
- ついでに画像が見つからなかったときの処理追加。
[2020/12/20] v0.14.4
- 変数がおかしかった
[2020/12/20] v0.14.3
- どうにもできないので力業を行使
- toot.txtがおかしくなったら削除するという暴挙。
[2020/12/20] v0.14.2
- toot.txtがちょっとおかしくても何とか動くように修正
[2020/12/19] v0.14.1
- 画像検索する前に検索しすぎてたら検索しないようにした
[2020/12/19] v0.14.0
- APIエラー処理で発言できなかったときにの再起動をmain.pyの中に納めた
- ので botdesu.sh廃止。
[2020/12/18] v0.13.20
- イライラ度計算でエラーが出ることがあるの修正
[2020/12/18] v0.13.19
- トゥートしなくなっていたバグを修正
[2020/12/17] v0.13.18
- 今度は上がりすぎたので調整
[2020/12/17] v0.13.17
- イライラ度が上がらなさすぎるので調整
[2020/12/17] v0.13.16
- イライラ度が100%を超えても黙ってるので修正
[2020/12/17] v0.13.15
- 画像検索でエラーが出たときも返事をしてくれるように改良
- 発言間隔調整
[2020/12/17] v0.13.14
- 発言間隔調整
[2020/12/17] v0.13.13
- 拾ってきた画像全部貼り付けようとして怒られていたので修正
[2020/12/17] v0.13.12
- 画像トゥートできないのが直った気がする
[2020/12/17] v0.13.11
- そうかglobal変数は外部から変更できないのか
[2020/12/17] v0.13.10
- いやわからんわ
[2020/12/17] v0.13.9
- わかったぞ!わかったぞ!わかっ…
[2020/12/17] v0.13.8
- イライラ定義をconfigから戻した
[2020/12/17] v0.13.7
- 変数の読み込み方を知らなかった。
[2020/12/17] v0.13.6
- なんか怒られるので修正
[2020/12/17] v0.13.5
- イライラ定義をconfigに移した
[2020/12/16] v0.13.4
- なんか画像がダウンロードできないのを修正したい
[2020/12/16] v0.13.3
- 発言拾いすぎなのでタイミング調整
- yahooが怒るのでヘッダを偽装
[2020/12/16] v0.13.2
- なんでVSCodeくんエラー出してくれんのやろ。
[2020/12/16] v0.13.1
- 未定義の変数使ってたので修正。なんでVSCodeくんエラー出してくれんのやろ。
[2020/12/16] v0.13.0
- 画像のクロールの方法を変えた。
- googleからyahooに変えた。
- イライラ度管理を見つめ直した。
[2020/12/15] v0.12.6
- ちょっとわかる
[2020/12/15] v0.12.5
- いや、わからん
[2020/12/15] v0.12.4
- 誤字っていた
[2020/12/15] v0.12.3
- 変数超わかんない。
[2020/12/15] v0.12.2
- なんか動かない気がしてきたけど頑張る
[2020/12/15] v0.12.1
シェルスクリプトをミスっていた
[2020/12/15] v0.12.0
- けっこうすごく作り直した。
[2020/12/15] v0.11.12
- 止まるって言うか動いてない気がしたので_resをバックグラウンドで実行するようにしてみた。
- 起動中のメッセージの変更
[2020/12/15] v0.11.11
- なんか止まるのでファイルを分けた
[2020/12/15] v0.11.10
- ディレクトリ名が間違っていた
[2020/12/15] v0.11.9
- ファイルを消すタイミングを間違えていたの修正
[2020/12/15] v0.11.8
- 参考にしていた正規表現のサイトが間違っていた。なんてこった。
[2020/12/15] v0.11.7
- バグなおれよ!!!
[2020/12/15] v0.11.6
- 私はアホでした
[2020/12/15] v0.11.5
- おれは正規表現がわかっていなかった。
[2020/12/14] v0.11.4
- 二次元配列がわかった気がする。
[2020/12/14] v0.11.3
- がんばった。
- あと改行コードを変えた
[2020/12/14] v0.11.2
- 検索もバグってた
[2020/12/14] v0.11.1
- 配列がバグってた
[2020/12/14] v0.11.0
- 画像検索機能をつけてみた。
[2020/12/14] v0.9.26
- ファイルは作成されてたんや… 空っぽの時の例外処理がなかったんや…
- なので分離して追加
[2020/12/14] v0.9.25
- やっぱりファイルが作成されないので手法を変えた
[2020/12/14] v0.9.24
- なんでか動かないと思ってたら変数がかぶってたので修正
[2020/12/14] v0.9.23
- 初回起動時にtoot.txtがないとエラーが出るので修正
- トゥートできなかったときにイライラ度が減ることもあるように修正
- readme整理
[2020/12/13] v0.9.22
- なんか計算をミスってたので修正
[2020/12/13] v0.9.21
- ボットデスくんのイライラ度をコンソール見たらわかるようにした
- コード整理
[2020/12/12] v0.9.20
- bashわからんすぎるのでpythonをがんばるほうにもどした
[2020/12/12] v0.10.2
- bashまじでわからん
[2020/12/12] v0.10.1
- bashわからん
[2020/12/12] v0.10.0
- 思ったように動かないのでファイルを分割してみた
[2020/12/12] v0.9.18
- 変数が未定義で怒られて止まるので修正
- コンソールにデバック用のいろいろが見えるようにした
[2020/12/12] v0.9.17
- やっぱり喋らないのでよく見たら変数が変数しすぎてた
[2020/12/12] v0.9.16
- おいこいつちっとも喋らねえぞの修正
[2020/12/12] v0.9.15
- scheduleなんていらんかったんや!
[2020/12/12] v0.9.14
- 発言頻度が高すぎてびびったので修正
[2020/12/12] v0.9.13
- 不機嫌にした
[2020/12/07] v0.9.12
- 再起動時に発言するようにした
[2020/12/07] v0.9.11
- ソースの不要な部分を削除
[2020/12/07] v0.9.10
- タイミングをミスっていたので修正
[2020/12/07] v0.9.9
- テキスト全消しのタイミング調整