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

  • テキスト全消しのタイミング調整
浏览 3
点赞
评论
收藏
分享

手机扫一扫分享

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

手机扫一扫分享

编辑 分享
举报