MediaWikiAPIにハマる

ある箇所に手を加えた時、
このタイミングで別箇所の不具合を見つける。
焦ります。

副作用なのか、元々なのか。
今回『戦国CAST』のクイズ機能を微調整。
影響が出たとしてもクイズ周り。
それでもアプリをアップロードする前には
全体を一通り見回るように動きを確認。

すぐにGooglePlayにアップロードするつもりでしたが
不具合を発見。クイズ周りではない場所。
副作用?
Wikipediaのページから概要を引用表示している部分で
文字化けどころか一文字も表示されなくなっている。
影響するわけがないと思いつつ、とりあえず元に戻してみる。
以前まで問題なかった部分を下手に弄るより、戻した方が楽だから。
戻しても直らない。
となると、Wikipedia側の問題も考えられる?


都度MediaWikiAPIを介して概要を取得しています。
武将や俳優の名前からwikiページを検索。
2バイト文字なのでURLエンコード。
『明智光秀』の場合だったら
titles=%E6%98%8E%E6%99%BA%E5%85%89%E7%A7%80
ところが、光秀のページにたどり着いていない。
前のバージョンのソースと比較しても
今回無意識に手を加えているなんてことはない。

「おいっ、MediaWiki」

さらにURLエンコードされている!?ダブルエンコード!!
これが原因でした。しかし何故!?いつから!?
試しにエンコードせずに渡しても、目的のページにたどり着かない。。。
wiki様は、普段は結構気を使ってくださるんですけどね。(転送してくれたり)
ダブルエンコードは余計なお世話かな。
でも、pageidならそんなことにはならないでしょうということで
『光秀』のページなら
pageids=17262
この変更だけで終わらそうと思いましたが、
せっかくだから保留にしていたことまで手を入れてしまおうと。

wikiから取得している概要、
いつ取得しても内容はあまり変わらない。
アプリ内で扱う分だけであれば、そんなにサイズは大きくならない。
ということで、概要はすべてアプリに持たせるよう変更。
現在このアプリで扱う武将数は159
一気に取得するのはよろしくないので
ちょっと時間をかけながらじっくり取得。

ちなみに、いつもMediaWikiに関して参考にしているのは
コチラ↓
MediaWiki APIを使ってWikipediaの情報を取得

そして戦国CASTでのこの修正は
兄弟アプリ(類似アプリ)である「幕末CAST」にも反映。
パッと終わる予定が意外とハマって手間取って
バタバタした数日間でした。。。

戦国CAST
開発元:HA823
価格:無料
戦国CAST

幕末CAST
開発元:HA823
価格:無料
幕末CAST

0 件のコメント:

コメントを投稿