PSN から画像を拾ってくる方法を見つけたので、スクリプトをチョロッと書いて、おもむろに MySQL を立ち上げ格納
ゲームメモのページもついでだから PSN のトロフィーアイコンに変えた。
いま MySQL のデータベースにあるのは804タイトル分。
ps3trophies.org にあるタイトルが1200件ぐらいみたいなので、たぶん全部ではない。
おまけに、ユーザーが殆ど持っていないようなソフトは手動でデータを探してきて挿入する必要があったりする。
表示に関するクエリ結果はファイルに保存してるので、2回目移行の表示は速いはず。
トロフィーランク上位の人のデータを拝借すれば、抜けの分もある程度は簡単に集まるかな。
bg20 と bg30 の応答時間を計測したもの。

bg30 の安定した応答時間に対して bg20 は最大60.11秒という、とてつもない格差があった。
bg20 は深夜1時頃を過ぎると処理が落ち着き、その後アクセスが増えて転送量が増加している模様。
昼の12時頃から応答に時間が掛かるようになるのは、なにか別の処理でも走っているのだろうか?謎は深まるばかり。
JAN コードを入れたのは、ちょっと賑やかしが欲しかったからなんだけど、どうせならバーコードも付けちゃおうかと。
以前、QR コードを作ろうと思ったときは、仕様書の PDF を見た瞬間に飽きらめたのだけれど
MAG をやりながら、JAN コードの解説をしているページを読んでみたら、結構簡単な構造だった。
ちなみに、数字のフォントには、OCR-B という専用のフォントがあるらしい。
ググると、それらしきものが某時計店のページからダウンロード出来るとかなんとか。
色を #404040 にして、数字も付けるとそれっぽくなる。

ポピュラーな PHP-Barcode というライブラリもあるわけだけど、バーコードがなにやってるかも気になるもんね。
使えれば良いやぐらいにしか考えていないから汚いけど、一応ソースも付けておこう。
http://blog.yuhisa.com/wp-content/phps/class_BarCode.phps
パパパッと書き終わり、データも全部入れ終えたので、ひとまずは完成。
主要な画像は ASIN を頼りに Amazon から引っ張り、PSN のダウンロードゲーは PlayStation 公式サイト内の
ソフトウェア検索から画像を参照 (人力で) するようにして、北米も大体同様にした。
ASIN を画像オプションに与えることで、画像をゲーム情報に使う ASIN ではない他のソフトに替えることも可能。
それより、Back to the Karkand が来たので、そっちをボチボチ始めないと。
煩雑な理由の多くを占めているのが、情報を属性値にしている事なので、コンテンツ領域に書くことにする。
コンテンツ領域には、情報の書式を適当にでっち上げて、それで代用しよう。
さらに、Amazon のタイトルをそのまま使うと、余計な情報がついてきたり、シリーズで表記が違うなど
何となく気持ちが悪いのでタイトル名だけは、自分で入力する方式にする。
これで、管理も容易になって一石二鳥。
ASIN は自動的に調べる方法も考えたけど、前者の問題があって検索に引っかからない事があるので
こちらも妥協して、自分で調べて入力する事にする。
Amazon から引っ張れる情報は Large 指定にしているから、JAN (EAN) コードでも、発売日でも持ってこれる。
画像も複数持って来ることができるけど、劣化が少ない png の画像が欲しいので、画像情報は使わない。
あとは、必要になったらその都度情報を追加できるように、データ領域とコンテンツ領域を分けておいて
とりあえずの書式は、これで良いかな。
[cc lang="css"][ami]{{{ASIN|画像オプション|タイトル}}}コンテンツ領域[/ami][/cc]
ゲームのジャケット画像ひっぱって来たいなぁと思って、Wordpress プラグインを作ったものの
記述を簡略化しすぎて逆に作業が増えているという悪循環である。
具体的には、下記のようなコードを書くと自動変換して、Amazon なんちゃら API にアクセスし情報を取得
Wordpress で簡単に使用できるように成形して出力する。
{ami asin=”B003DSGZBY” trophy=”plat” memo=”トトリ”}
これがこうなる↓

そこまでは良いんだけど、情報取得に頼りまくった結果、肝心のタイトルがコード状態のときにパッと分からないわけで
これが情報を整理するとき、すごいめんどくさい事に気づいてしまった。
苦し紛れに memo という項目を作ってみたものの、ここに入力するのも面倒くさい。
それ以前に、ソフトの ASIN を調べてコードに書く事が自体が面倒くさい。
作ってみたのは良いものの、これはとてつもなく無駄な作業だったような気がする。
作る時間は大して掛からなかったから、もっとスマートな方法を考えよう。
ちなみに trophy 属性は plat で左端が青っぽく、gold で金色っぽくなる、これまた無駄機能である。
あれをあーして、あれすると 1 分半で 100 件回る
てことは 20,000 件回すには・・・5時間?そいつは実にヘビーな話だなぁ。
5 プロセス回したとしても 1 時間かぁ
# 2011/10/19 追記
1 分半から 5 秒に縮めたった。
これで 20,000 件が 16 分だ!
DL 版に替えてから MAGらんきんぐぼーどで更新されなくなってしまったので
海外のランキングボードからスクレイピングしてデータを自分で記録しておくようにスクリプトを組んだ。
出てくるデータはこんな感じで、まぁ隊長職は滅多にやらないので記録しなくてもいいかなと
一応、6時間に一回更新して、1日のデータを出す仕組み。
[cc]28021XP 6勝3負 0MVP 474キル 270デス(KDR算出) 88HS 83ナイフキル K/D 1.75365[/cc]
PHP Simple HTML DOM Parser を使ったのだけれど、これはなかなか使い勝手が良い。
データは、SQLite に放り込んでいて、週間・月間データを出すのもチョコッと SQL 書いて呼び出すだけなので楽ちん。
なんとか、 subject.txt から スレッドキーを取り出して、dat をダウンロードさせることに成功。
大きな進歩だ。
int main
(void) {
struct foo bar;
foo(&bar);
return 0;
}
void foo (struct foo *bar) {
baz(&*bar);
}
void baz (struct foo *bar) {
}
こんなんで良いのかな…?