Manual:Pywikibot/Compat/の廃止予定
Pywikibot compat は廃止予定になりました。まだ compat を使用している利用者は core に移行すべきです。
背景
Pywikibot (当時の名称は「Pywikipediabot」) の開始は2002年からです。 当時、MediaWiki にはapi がなく、pywikibot は MediaWiki とのやり取りにscreen scraping を使っていました。 2007年の(当時の名称はrewrite、現行 core) 分岐では(導入直後の) MediaWiki api を使用して新規に書き起こしています。 やがて core は拡張を重ねてほとんどのスクリプトの移行が進みました。 2013年に改訂数で core は compat を超越しました。 2015年に Pywikibot 開発者は Pywikibot の compat 版を終了しメンテの停止を決めています (phab:T99365 と phab:T101214をご参照ください)。 MediaWiki 1.27 は compat 分岐のサポート版の最終リリースです (phab:T150613をご参照ください。)
スクリプトの使用
Pywikibot スクリプトを単体で使用している場合は、対処は Pywikibot core をインストールすれば終わります。 スクリプトの大部分は問題なく移行します。 Pywikibot core はラッパーを用いてスクリプトを走らせます。 標準のスクリプトを使う場合 (例:redirect.py)、pwb.py を当てて core で走らせます。サンプルを示します。 例:
$ python pwb.py redirect # instead of python redirect.py
コードの移行
compat で書いたスクリプトは core にあるコンバージョンを使って移行します。 compat によるスクリプトを coreに自動で読み込むスクリプト も用意されています。
コード変換が難しい場合はお手伝いしますので、連絡してください。
既知の問題点
接頭辞'_p' を付与するにはpywikibot.Site().dbName()
が使えなくなったため、財団の WMF Labs データベースに接続するときに MySQL ライブラリを使う場合は、接続先のデータベース名に続けて必ず手入力で接頭辞'_p' を 書きます。サンプルです。
mysqldb.connect("testwiki.labsdb", db = pywikibot.Site().dbName() + "_p", user = config.db_username, passwd = config.db_password)
ブロックのバグ
core でスクリプトを走らせようとするとブロックを受けるバグに気づいたら、バグ報告を Phabricator (に未掲載の場合のみ) に投稿して、phab:T99365にもあげてください。