このスクリプト一式は、ウィキペディアにおける http://ja.wikipedia.org/wiki/Wikipedia:全言語版の統計 のページの更新を支援します。
このスクリプト一式についての、バグ報告、改良要望、感想などがありましたら、開発者までお知らせください。 このスクリプト一式は、GNU 一般公衆利用許諾契約書 (GNU General Public License, GPL) により 許諾されるフリーソフトウェアです。 ですので改良を望む方は、自分でGPLにしたがってこのスクリプト一式を自由に改良することもできます。
次の4つのスクリプトを、Rubyインタプリタで実行することができます。
次の2つは、上記のスクリプトから使われるライブラリです。
スケジューラにより定められた日時に正確にスクリプトを実行したい場合、統計情報を取得した正確な日時を 得たい場合は、あらかじめ、スクリプトを実行するコンピュータの時計を Network Time Protocol (NTP) により NTPサーバと同期させておくなどの対応が必要です。
Ruby 1.8.x 、1.9.1 および JRuby 1.3.1 、1.4.0 の環境で動作することが確認されています。
Rubyスクリプトの一般的な起動方法は、次のようになります。
このスクリプト一式の運用方法の例を記します。 なお、ウィキペディアの各言語版のサイトから統計情報を取得して更新用ウィキテキストを作成するのに 要する時間は、1分前後です。
初めてスクリプトを実行する場合は、設定ファイル config.xml をテキストエディタで開いて、 ウィキペディアの利用者名やパスワードおよびコンソールエンコーディングなどを適切に設定してください。 利用者名とパスワードが適切に設定されていないと、ボットによるログインに失敗します。 コンソールエンコーディングが適切に設定されていないと、コンソール出力が文字化けします。 リソースファイル resource.xml をテキストエディタで開いて、内容を確認してください。
更新用ウィキテキストを作成し、自分の目で内容を確認した後に、Wikipedia:全言語版の統計 を 更新する場合の運用例を次に記します。
更新用ウィキテキストの作成と Wikipedia:全言語版の統計 の更新を一括して行う場合の運用例を次に記します。
現在の統計ページをもとにしてリソースファイル resource.xml のlanguage要素をファイルに出力する場合の 運用例を次に記します。
定めた日時に自動的にスクリプトを動かしたい場合は、スケジューラを使う方法があります。 例えば、Unix系システムではcron、Windowsではタスクスケジューラを、使うことができます。 また、Unix系システムとWindowsではそれぞれ、atという名前のコマンドがあり、使うことができます。 各スクリプトは、終了ステータスとして、正常に実行終了したときには 0 を、 正常に実行できなかった場合は 0 以外を、返します。
languages-statistics-updater.rb あるいは languages-statistics-driver.rb を実行してページの更新を行う場合、 既定の動作では、スクリプト運用者に、(要約欄の内容などを表示した上で) 実際に更新を行うかどうかの問い合わせ (プロンプト) を、表示します。 スケジューラを使って languages-statistics-updater.rb あるいは languages-statistics-driver.rb を自動実行する 運用をする場合は、スクリプト起動の引数に -f あるいは --force を指定することで、この問い合わせを省略し、 問い合わせを経ずにそのまま実更新を行うことができます ( -f あるいは --force を指定せずにスケジューラで 運用すると、動作が途中で停止します) 。 -f あるいは --force を指定する場合の起動方法の例を、次に示します。
Ruby 1.8.x 、1.9.1 および JRuby 1.3.1 、1.4.0 の環境で動作することが確認されています。
Rubyは、クロスプラットフォームのオブジェクト指向スクリプト言語です。 システムのデフォルトの環境で導入されていない場合は、システムの種類によっては (Debian GNU/Linux など) オプショナルパッケージとして導入できる場合があります。 Rubyの実行環境は、Rubyコミュニティのサイト ( http://www.ruby-lang.org/ ) から ダウンロードすることができます。 JRubyの実行環境は、JRubyのサイト ( http://jruby.codehaus.org/ ) から ダウンロードすることができます。 JRuby を使う場合は、Javaの実行環境が必要です。 JRuby 1.1 以降を使う場合は、Java実行環境 (Java SE JRE) のバージョンは 5.0 以降である必要があります。
Rubyの実行環境ごとの動作確認状況を以下に記述します。 なお、languages-statistics-taker.rb あるいは languages-statistics-driver.rb を実行すると、 オプショナルの機能として、更新用ウィキテキストをテキストエディタなどを自動起動して表示することが できます (この機能は、必要がなければ設定ファイルにより無効にすることができます) 。 環境によっては、テキストエディタなどの自動起動を行うことは、できません。
このスクリプト一式の開発者が動作確認を行った限りでは、安定して動作するのは、Ruby 1.8.7/Linux と Ruby 1.9.1/Linux 、JRuby 1.3.1 、JRuby 1.4.0 、ActiveScriptRuby 1.8.7 with-winsock2 でした。 おおむね動作すると言えそうなものは、Ruby 1.8.5/mswin32 と Ruby 1.8.4/cygwin ですが、 ときに異常終了することがありました。 このバージョン (0.8.5) では、IronRuby 1.0 でも動作することが確認されましたが、実行途中に動作が停止することがあることが、確認されています。
Ruby 1.8.5/mswin32 を使う場合は、このRuby実行環境の他に、スクリプト一式を動作させるためには、 zlib.dllとiconv.dllを別途に入手して導入する必要があります。 Ruby 1.8.4/cygwin を使う場合は、このRuby実行環境の他に、cygwin1.dll 別途に入手して 導入する必要があります。 cygwin1.dllは、Cygwin が導入されているのであれば、すでに導入されています。 Cygwinを導入しない場合は、Cygwinのセットアッププログラムでコンポーネントのダウンロードだけして、 ダウンロードされたファイル群からcygwin1.dllだけをとりだす方法があります。
参考までに、このスクリプト一式のRDocドキュメントを提供しています。
このスクリプト一式のテストを行う場合は、実際のウィキペディアプロジェクトのウィキペディアサイトを 利用して行うことになるでしょう。 別の方法として、自分のパーソナルコンピュータにローカルで複数言語のMediaWikiウィキを構築して テストすることについては、難しいと思われます。 理由は、このスクリプト一式が、特別:Sitematrixの機能を必要としており、かつ特別:Sitematrixは MediaWikiに標準で含まれる機能ではなく拡張機能であり、またウィキメディア財団が運営するウィキでなければ、 特別:Sitematrix拡張機能はおそらく正しく動かないからです。 http://www.mediawiki.org/wiki/Extension:SiteMatrixのページの冒頭に、 "Note: This extension is made for Wikimedia wikis, and will probably not work on any other wiki." と述べられています。
いずれの方法のテストを行うにしても、設定ファイル config.xmlを、 あらかじめ編集し適切に設定しておくことが必要となります。 すくなくとも、利用者名とパスワードは、ご自身のアカウントに応じて編集しておく必要があります。
実際のウィキペディアプロジェクトのウィキペディアサイトを利用して行うテストについて、 languages-statistics-taker.rb および languages-resource-printer.rb のテストについては、 ウィキペディアサイトを参照するのみであり、更新は行わないため、 あまり神経を使うようなことはないでしょう。 languages-statistics-updater.rb と languages-statistics-driver.rb のテストについては、 ウィキペディアサイトの更新を行います。 このスクリプト一式が目的とする「Wikipedia:全言語版の統計」の更新を行うのですが、 その代わりに、設定ファイルを編集することにより、更新対象ページを、サンドボックスページなど ほかのページとすることも可能です。
テストのためにサンドボックスページを更新対象とする場合は、config.xmlに次の記述を追加する 必要があります。
<editTargetPage>&sandbox-header;</editTargetPage>
上記の記述が省略された場合は、スクリプトは「Wikipedia:全言語版の統計」ページの更新を行います。
Copyright (c) 2009 AutumnSnow ( http://sourceforge.jp/users/autumn-snow/ )
このスクリプト一式は、フリーソフトウェアです。 このスクリプト一式の利用者は、GNU 一般公衆利用許諾契約書 (GNU General Public License) の下で、 このスクリプト一式を、頒布および/あるいは改変することができます。 この利用許諾契約書の複製物は、COPYING.txt の名前のファイルで提供されています。 このスクリプト一式の最新版は、 http://wikimedia-tools.sourceforge.jp で提供されています。
Copyright (c) 2009 AutumnSnow ( http://sourceforge.jp/users/autumn-snow/ )
この文書を、フリーソフトウェア財団 (The Free Software Foundation) が発行した GNU フリー文書利用許諾契約書バージョン 1.2 (GNU Free Documentation License, Version 1.2; GFDL 1.2) もしくはそれ以降のバージョン、 あるいは クリエイティブ・コモンズ 表示-継承 3.0 非移植 (Creative Commons Attribution-ShareAlike 3.0 Unported; CC-BY-SA 3.0) の下で、 複製、頒布および/あるいは改変することを、許可します。 変更不可部分は指定しません。表カバーテキストは指定しません。裏カバーテキストは指定しません。 GNU フリー文書利用許諾契約書バージョン 1.2 の複製物は、``GNU Free Documentation License'' ( http://www.gnu.org/licenses/old-licenses/fdl-1.2.html ) という章に 含まれています。 クリエイティブ・コモンズ 表示-継承 3.0 非移植 の詳細は、http://creativecommons.org/licenses/by-sa/3.0/deed.ja および http://creativecommons.org/licenses/by-sa/3.0/legalcode を参照してください。