Wikipedia:Bot作業依頼/『Wikipedia:お知らせ/ウィキメディア共通』の見出しリスト定期更新

『Wikipedia:お知らせ/ウィキメディア共通』の見出しリスト定期更新 編集

  失効依頼者によって取り下げられました。--iwaim 2009年1月29日 (木) 09:30 (UTC)[返信]

Wikipedia‐ノート:お知らせ#Wikimedia notification systemのインクルード提案にて、先日導入されたGlobal notification(Wikipedia:お知らせ/ウィキメディア共通)のWikipedia:お知らせへのインクルードを行ないましたが、インクルード時には「見出しのリストだけ」ということとなっています。見出しのリスト更新は現在手動で行なっていますが、あるbot使いの方にお聞きしたところ「bot作業可能だろうと思う」とのご意見をいただきましたので、botによるリストの定期更新をお願いいたします。具体的には

といった内容です。現状の形が維持されればよいですので、よろしくお願いいたします。--青子守歌会話/履歴 2008年11月9日 (日) 11:18 (UTC)運用法の変更などによって合わないところがあるので修正--青子守歌会話/履歴 2008年12月19日 (金) 23:45 (UTC)[返信]

update-global-notifications-toc.pyとして作成しました。利用者:Iwai.masaharu/tmp/目次みたいな感じになります。こんなんでOKでしょうか? --iwaim 2008年12月16日 (火) 17:59 (UTC)[返信]
ありがとうございます。更新としてはそんな感じでよいかと思います。実は私自身ここに依頼していたことをすっかり忘れていまして、先日作った自分のボット(利用者:あおボ)で作業させてしまっていました(現在ちょっとコードをリファクタリング中につき休止していますが)。ですが、複数のBotが見張っていて悪いことはないと思いますし、私のほうはまだまだ安定して動作させられていないので、そちらのほうもそのまま走らせておいていただければと思います。--青子守歌会話/履歴 2008年12月17日 (水) 08:48 (UTC)[返信]
ええと、実はまだ運用に載せる段階ではないので、今は走らせていません。今の実装は結構乱暴なので、いくつか確認することがあるのです。
  • 抜き出す処理が結構乱暴。実際に正規表現部分をみていただければ解ると思いますが、今のだと誤動作を起こすような可能性があります。
  • 更新処理が結構乱暴。現在のWikipedia:お知らせ/ウィキメディア共通/目次との相違については、Bot側ではなく、(何かの更新しないと変更が記録されないというMediaWikiの現在の実装を期待して) MediaWiki側に任せています。ですから、複数の実装系のものを走らせる場合は、出力結果を合わせる必要があります。
結局のところは、どこまで実装するのかという話なんですけど。思いつくところでは他には、Wikipedia:お知らせ/ウィキメディア共通が壊れていた場合にどうするのかとかも検討事項にはなると思います。--iwaim 2008年12月19日 (金) 18:48 (UTC)[返信]
うーん・・・。私のほうでは、抜き出す部分は単純に、本体の文書から半角スペースを全部抜いて、|topic=から次の|までのテキストを上から順に並べて配列に入れて、目次のほうも同様に[[から次の|までのコードを抜き出してこれも配列に入れて、両者の要素を比較してるだけなのですけど。。まぁ、Python(あるいはPywikipediabot)だとやりづらい作業なのでしょうか・・・?(Python触ったことないので分かりませんが。とりあえずあおボが今週末にはリファクタリングを終えて走らせることができそうですし、そんなに緊急性が高い案件でもありませんので、難しそうであれば中断してもらってかまいません(だめだったら手作業でやればいいだけですし)。--青子守歌会話/履歴 2008年12月19日 (金) 23:45 (UTC)[返信]
いや、抜き出す方法は大体似たようなものですが、例えば青子守歌さんの方法だとtitleが最後に来て、後ろに「|」が無かった場合はダメですよね? あと、コメントアウト内やテンプレート外にあってもダメ。だから、そのあたりを検討して (Wikipedia:お知らせ/ウィキメディア共通に人間が書く場合の書式も含めて) ルール化しておかないとダメだな、という印象です。まあ、当然ながらMediaWikiと同じぐらいの実装 (コメントアウトを除去してテンプレートとかもパースして……) は可能ですが、そこまでやらんでいいだろ、と。差分比較は私が単に手抜きしているだけです。ただ、そこも順序まで比較するのか順不同なのかとか、一応検討するところはあるわけでして。--iwaim 2008年12月20日 (土) 03:22 (UTC)[返信]

(インデント戻し)あーなるほど、例外機構のお話なのですね。コメントはとりあえず除去すればいい(というかしてます)ので問題ないでしょう。あと「テンプレート外」というのがどういう状況か分かりませんが、現状ではWikipedia:お知らせ/ウィキメディア共通/テンプレート(のtitle引数を)使って書くようになってますし、それ以外に今の形と変わることがあれば、それはもう「Botではどうしようもない」ことかと思いますw。抜き出す方法も、|だけではなく}}も対象とすればいいんじゃないかとか、まぁ、いくつかには対応できるでしょうが、それこそ色々な可能性を考えてしまえば処理がクラスPじゃなくなったり、最悪フレームワーク問題で計算が止まらなくなる、みたいな状況にするわけにもいきません。Botで自動更新していることを知ってい(てそのアルゴリズムまで分かってい)ればそれに合わないような例外(title引数を最後に持ってくるとか)を作ることは可能ですが、素直に使えば順番はWikipedia:お知らせ/ウィキメディア共通のコメント中で書かれてるテンプレートをコピペしたり前例を改変するだけでしょう。例外ケース時には例外を吐いて処理を中断すればいいですし、もしおかしな更新をしてしまっても自分あるいは他の人が手動で差し戻せばよいだけではないかと思いますので、素直な実装でよいのではないでしょうか。なお、一応「目次」ですから、目次としての役割を考えれば順序も一致させるべきでしょうが、順序が違っていてもリンクが正常に働いていれば別に問題もないと思います。--青子守歌会話/履歴 2008年12月20日 (土) 07:13 (UTC)[返信]

それなりのところまで実装すればいいというのには同意します。で、複数の実装系を走らせる場合に問題が生じる可能性があるということです。一例だと、順序を保持する実装のBotと、dateの値をみていい感じに順番を入れ替える実装のBotが走っていると、その2つで編集合戦が発生しますよね。ですから、どの程度まで実装するのかの仕様を纏めていただいた方がいいかな、と思います。あるいは、私の方で纏めても構いません。別解としては、Botでの更新は青子守歌さんに全部お願いするというのもあるかと思います。どうしましょうか? --iwaim 2008年12月20日 (土) 07:28 (UTC)[返信]
すいません、すっかりここのことを忘れておりました。利用者:あおボのページに書いてあるとおり、すでにこちらでbotを走らせていますので、一応依頼は取り下げとさせていただきます。--青子守歌会話/履歴 2009年1月29日 (木) 09:07 (UTC)[返信]