botdesumastodon bot

联合创作 · 2023-09-30 01:28

ボットデスくん


私がボットデス


ポケモンマストドン「ポケマス」のさらに一部界隈で有名な、pythonで動くマストドンのマルコフ連鎖botです。
あとなんか画像を検索したりする。


概要


おれはしゅうまい君が作りたかったんだよ…


新機能「画像検索して貼る」


ボットデスくんにメンション飛ばして「○○の画像くれ」とか「△△の絵ちょうだい」とか言ってみよう。たぶんエロいのは持ってこないと思うけど。


名言



  • 「ねぇやだスプラやめる!?!!」

  • 「おは​​花粉症っぷ?」

  • 「キャンドゥーのドレッシング?キャンドゥーのは無理あるじゃろう?おれとしては」

  • 「タオルとマステ買ったのにいつも足りない」

  • 「今日はエンニュートだ!!!!!!」

  • 「大船渡線だよあ」

  • 「アブソルアイコンの動画見てるだけか?」

  • 「それちんこですよ」


など


ここがすごいぞボットデス


エラーで止まっても自分でそれを把握して勝手に再起動する



  • ホストドン側でエラーが出ることが多いので導入しました


画像検索で結構違う結果を持ってくる



  • いや、いっぱい拾ってランダムで上げてるだけなんですけどね


使い方(下準備)



  • python3

    • まあpythonで動きますし。3.8.5で動いてるけどたぶん3.9.1でも動く。


  • MeCab

    • インストール必須。mecab-ipadic-NEologdあたりの辞書を用意すると良いです。


  • botをユーザー登録するためのマストドンアカウント

    • そりゃ必要ですわな。その後アカウント→開発から mastodon-api の client_id access_token client_secret あたりがないと動かないですよ。


  • 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ファイルをコピーするしかない。


気になる点



  • やっぱなんかソースきれいではない

  • 422エラーが返ってきたときにどうすればいいのかまだわからん

  • きりぼっとが超参考になった


更新履歴


[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



  • テキスト全消しのタイミング調整

浏览 8
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报