コンテンツにスキップ

英文维基 | 中文维基 | 日文维基 | 草榴社区

利用者:あおボ/作業方法

あおボ実際に行なっている作業の技術的な方法についての概略です。

開発はMicrosoft Visual C# 2008 Express Editionを使ってC# 3.0 with .NET Framework 3.5で行なってます。 大まかには「編集を行なう抽象クラス」があって、そのサブクラスで各作業を実装しています。 もしより細かい仕様が必要であれば、飼い主に直接ご連絡ください。 人に見せるように作っていないのでソースは公開してませんが、特に隠すつもりはないので必要であれば公開します。

共通作業

[編集]

ページのキャッシュ破棄

[編集]
  1. action=purgeのリクエストを送る。

テンプレート引数の取得

[編集]
  1. {{を探して、そこから半角スペースを無視した次がテンプレート名であれば、探しているテンプレート本体であると判断する。
  2. 半角スペースを無視して進む。
  3. =が、{{}}[[より手前にあれば、引数名ありとして=の前の文字列を取得(半角スペースは無視。
  4. 値のほうへ進んでいって、{{[[が現れたら括弧の数を増やし、}}]]が現れたら括弧の数を減らす。括弧の数がゼロでかつ|の時、そこまでの値とする。
  5. 全引数について調べていって、終わる。

個別作業

[編集]

GNの目次更新

[編集]
  1. Wikipedia:お知らせ/ウィキメディア共通/目次の内容を取得。
  2. |」と「]]」の間にある文字列を取得してリスト化、古いの目次とする。
  3. Wikipedia:お知らせ/ウィキメディア共通の内容を取得
  4. | title = 」付近のスペースを除去して、全て「|title=」の形にする
  5. |title=」と「改行+|」の間にある文字列を取得してリスト化、新しい目次とする。
  6. 両者を比べて、違いがあれば新しく更新。同じだったら何もしない。

検証依頼のサブページ読み込み更新

[編集]

各レベルのページに対して以下の作業を行っています。

  1. ページの中身を取得。
  2. {{検証依頼|」と「}}」の間にある文字列を取得してリスト化、現在読み込まれているサブページのリストとする。
  3. 各依頼サブページが読み込まれていたら、そのサブページの最新版を取得。
  4. サブページに「現在進行=」が含まれておらず、かつ最新版から5日経過してたら、最初に取得したレベルごとページから{{検証依頼|○○○}}の記述を除去。
  5. 全サブページについてチェックして、最初に取得した内容と除去していった内容の長さが違えば、新しいものに更新。

PRODLISTの更新

[編集]
  1. Category:削除が提案されている記事にある全ての記事の最新版を取得。
  2. 全ての記事について{{dated prod}}の引数を取得
  3. その記事が{{dated prod}}を含んでいれば、各引数の値を取得してデータを作成。
  4. 提案日時順に並び替えて、古いものから順にデータを並べてWP:PRODLISTに反映。

Oldprodfullテンプレートの貼り付け

[編集]
  1. #PRODLISTの更新の2まで同じ
  2. その記事のノートが{{Oldprodfull}}を含んでいれば、提案日時と提案理由を引数に指定して、ノートの最上部に追加。