Mediawikiの設定/bot
投資データをいちいち調査して書き込むのがきっとめんどくさくなると思いボットを入れてみることにした
意外にハマってしまったのでメモ
botのインストールの前段
まず wiki でbot のアカウント作成。Special:利用者権限で、権限はbotをつける
Special:BotPasswordsでBot password を作成する(ここを参照)
user-password.pyを作成
botnameには、wikiで作成したbotアカウント名。my-botpassword-nameは、Special:BotPasswordsで設定したパスワード。mysupersecretbotpasswordは、Special:BotPasswordsで生成されたシークレットパスワードを設定
ここを見てPythonが使えるbotが良さそうだったのでPywikibotを使うことにした。
このページをインストールを始めたが、
python3 pwb.py generate_user_files の段階でエラーが..
ググっているとどうもlibffi-devel というライブラリが足りないらしい。レンタルサーバでroot持っておらず、パッケージインストールできなかったので、ソースからビルドする。
ここからソースファイルをダウンロードし、解凍後
make
make install
/home/xxxxxx/local/lib64 にライブラリが入っているので、/home/xxxxxx/local/lib にも各ライブラリのシンボリックリンクを貼っておいた
ライブラリパスが通っている状態でPython を再度コンパイルしmakeで
_ctypes
というエラーが出ていなければctypes が組み込まれているので成功
bot の設定
改めて
いくつか質問聞かれたがよくわからない。自分で立ち上げたwikiはどれを選んだらよいのやら、、とりあえずwikipediaを選んで後から設定を変更することに。
ここを参考に、user-config.pyを修正
mylang = 'ja' →ここも LocalSettings.php の $wgLanguageCode の値を設定(他のでも大丈夫な気がするが)
username['sitename']['ja'] = u'botname' →sitenameは、familyで設定した名称 botname はwikiで作成したbotアカウント名
password_file = "user-password.py"
今度は、family file の設定
Please insert URL to wiki: →URLを設定
Please insert a short name →sitenmaeを設定
pywikibot/families 配下に'sitename'-family.py を確認
class Family(family.Family): # noqa: D101
name = 'sitename' →自分のwiki のsitename
langs = {
'ja': 'URL', →自分のwiki のドメイン名
}
def scriptpath(self, code):
return {
'ja': '/w',
}[code]
def protocol(self, code):
return {
'ja': 'https',
}[code]
でログインできれば成功。ここまで来て疲れてスクリプト作成はまた今度。。