fahstats.inc.php

名称Folding@home情報表示プラグイン
ファイルfahstats.inc.php
バージョン1.11
対象サーバーPukiWiki 1.5.3 / PHP 7.4 / UTF-8
対象ブラウザーFirefox, Chrome, Safari, Edge 各最新版
ライセンスGPLv3

Folding@homeの統計情報を表示するPukiWiki用プラグイン。

ユーザー(ドナー)個人統計とチーム統計の2種類を表示できます。

統計情報は公式APIから取得します。負荷軽減のためと、API側の情報更新頻度が低いうえ応答を返さないこともあるため、結果はキャッシュして一定時間使い回します。

インストール

fahstats.inc.php
6.9KB | 2020-05-29

fahstats.inc.phpPukiWikipluginディレクトリに配置してください。

使い方

&fahstats(userName|teamID);
  • userName … ユーザー名
  • teamID … チームID

使用例

&fahstats(FahstatsSample);
DonorFahstatsSample
Date of last Work Unit2020-04-04 20:17:39
Total score20,403,714
Total WUs272
Overall rank (if points are combined)16,076 of 2,506,022
Active clients (within 50 days)2
Active clients (within 7 days)2
&fahstats(999999);
TeamFahstatsSampleTeam
Date of last Work Unit2020-04-04 23:21:25
Active CPUs within 50 days18,791
Team ID999999
Grand score1,066,046,605,865
Work Unit count18,246,554
Team ranking1 of 248,004

設定

コード内の下記の定数で動作を制御することができます。

定数名既定値意味
PLUGIN_FAHSTATS_API_INTERVAL数値(4 * 60 * 60)APIアクセス間隔(秒)※短くしすぎてサーバーに負荷をかけないよう注意
PLUGIN_FAHSTATS_API_TIMEOUT数値30APIタイムアウト時間(秒)
PLUGIN_FAHSTATS_RECURSIVE0 or 101:入れ子の情報を再帰的に走査する。テキスト引数でより詳細な情報を表示したいときに使う

高度な使い方:表形式ではなく、任意の文字列で表示

&fahstats(userName | teamId){text};
  • text … 表示する文字列。文字列内の「%キー名%」が対応する値に置換される。主なキー/値は下表の通り。
キー
name名前
creditポイント
wusワークユニット数
last最終処理日時
rank順位
active_50過去50日間の使用クライアント数
active_7過去7日間の使用クライアント数
teamチームID
total_users総ユーザー数
total_teams総チーム数

※ドナー統計時のみ有効、チーム統計時のみ有効な値もあります。他のキー/値など、詳しくは本プラグイン実行後に生成されるキャッシュファイル cache/fahstats.*.dat 内を参照してください。

使用例・出力例

&fahstats(FahstatsSample){%name%さんのポイントは%credit%、処理したワークユニット数は%wus%です。};

FahstatsSampleさんのポイントは20,403,714、処理したワークユニット数は272です。

&fahstats(999999){%name%チームのポイントは%credit%、処理したワークユニット数は%wus%です。};

FahstatsSampleTeamチームのポイントは1,066,046,605,865、処理したワークユニット数は18,246,554です。

default.ini.phpへの設定

本プラグインの定数設定(ファイル内の下記のような行)は、PukiWikiルートディレクトリにある標準設定ファイルdefault.ini.phpにも記述することができます。本プラグインの定数設定行をdefault.ini.phpの末尾にそのままコピーしてください。default.ini.php側の設定値が優先されます。

/////////////////////////////////////////////////
// ○○プラグイン設定(○○.inc.php)
if (!defined('PLUGIN_○○_×××)) define('PLUGIN_○○_×××', △);

設定をdefault.ini.phpに記述することで、プラグインをアップデート(ファイル上書き)するたびに値を書き直す必要がなくなります。また、設定がdefault.ini.phpに集中することで、運用中の設定管理も楽になります。

凡例

プラグインの引数は下記の書式で表現しています。

  • [] … 省略でき必要に応じて記述します
  • | … |で区切られた項目のうち1つを記述します
  • {} … 中カッコ内の引数は任意の順序で記述できます