アンパンマンDB
クロスサイトスクリプティング脆弱性が残っていたのが判明したので修正。
POST投稿かつエラーを起こさないと発現しないパターンだったので見落としていました。
アンパンマンDBの、主に開発に関する日記。
クロスサイトスクリプティング脆弱性が残っていたのが判明したので修正。
POST投稿かつエラーを起こさないと発現しないパターンだったので見落としていました。
Nintendo Switch版、キャンペーンを使って無料ダウンロードしました。
画像はとてもきれい。音が全体的に小さくて、一部異様に大きい。
最新版公開しました。
マニュアルとかルールとかの整備が間に合っていないですが、コメントによる情報提供の扱いを変えることにしました。
原則として、情報提供にはお返事をします。
検索構文が結構いろいろあるんだけどあんまりちゃんとした解説がなかったので、ヘルプのページに記載中…。
ついでに、ヘルプページ自体の整理中…。
TGWS_WikiをアンパンマンDBにも適合するように修正して適用しました。
見た目にはあまり変わっていませんが、内部的には改行を連続していた部分を、適宜パラグラフに分けて、スタイルを適用するようにしました。
今はメール以外にほとんど使っていなくて忘れかけてたけど、以前のtgws.fromc.jpサーバーのレンタル料支払って契約延長しました。危ない危ない。
アンパンマンDBのトラックバック機能を廃止しました。
理由は昨日説明した通り。
アクセス解析していたら、トラックバックスパムにすらトラックバックURLを無視されていることが判明したので、アンパンマンDBからトラックバック機能を外します。
内部動作を中心に、もっと具体的に言うと、表示モード関連でいろいろ手を加えました。
まず、表向きには一つしか選択肢がなく実質無意味だった「表示モード」オプションの非表示化。
本来はPCモードと携帯モードを切り替えるつもりで作ったオプションだったのですが、テンプレートを別々に作るのが大変すぎたのと、ワンソースで両対応できたので、切り替える意味がなくなりました。
では他に何の意味があったのかというと、隠しオプションで、JSON形式やXML形式に切り替えることができるようになっていたのでした。
隠しオプション用に存在している以上、オプション自体を廃止することはできませんが、ユーザーが使う意味はないので、非表示化したのです。
2つ目が、表示モード切替オプションの指定方法の追加。
実は、表示モードの隠しオプションは、URLに指定することで有効化可能でした。
それが、若干回りくどい書き方だったので、拡張子と同じ形式で指定できるようにしました。
リクエストの処理の段階で昔の方式に書き換えることで実装しているので、昔の方式もまだ有効です。
3つ目が、アンパネイターのAPIのURL変更。
上記の表示モード切替オプションを最も積極的に使っているのがアンパネイターで、データをJSON形式で要求するリクエストを送っていたのでした。
これが、若干回りくどかったので、わかりやすい形にしたというわけです。
4つ目が、表示モードに応じて適切なContent-Typeを送信するようにしたこと。
元々の目的が表示の切り替えだったので、全部text/htmlで送信しちゃってたんですね。
でも、JSONやXMLはtext/htmlじゃないわけです。
JSONはJSONの、XMLはXMLのContent-Typeを送信するようにしました。
表示モードと関わらない部分では、検索キャッシュ機構の無効化。
今の仕組みじゃやっぱりキャッシュヒット率悪すぎなので、当面は使わないことにしました。
あと、キャッシュを使うかどうかの判定部分にバグがあったので、今となっては無意味ですが、直しておきました。
アンパンマンDB向けに、browserconfig.xmlも簡易対応。
本当は更新通知とかもできるみたいですが、とりあえずはアイコンだけの対応。
favicon新調とかapple-touch-icon作成とか。
faviconは今どきの解像度に全然あっていなかったから高解像度版の追加。
apple-touch-iconは、404エラーが鬱陶しかったので作成。
今のところ、これを反映しているのはアンパンマンDBだけです。
TGWSルートを先に作ってしまうと、アンパンマンDBをブックマークした人がTGWSロゴを見ることになってしまうためです。
browserconfig.xmlも404エラーが出ているので、適当に作っておくつもりです。
映像・音楽以外も充実させようかと考え中。
アンパンマンの原点と言える絵本情報や、主力商品となるぬいぐるみ・おもちゃ等の情報です。
あと、デフォルトの並び順も見直したいところですね。50音順が必ずしも正しいかどうか…。
キャッシュ機構作ってみました。
検索条件と検索結果を記憶しておいて、過去にしたことのある検索は、実際の検索処理を行うことなく結果を出すのです。
で、出来上がったものは確かに問題なく動いたんですけどね、えっと、効果は微妙でした。
キャッシュが更新されず古い情報が表示されるリスクとか、あまりキャッシュヒットしなくて結局速くならない可能性などを考えると、まだ一般に御披露目するレベルではないかなと思っています。
一覧系の検索をページ名でできるようにしました。
URLの一番最後の部分、みみせんせいのページ(https://tgws.plus/anpandb/mimisensei)なら、mimisenseiの部分を使って、「キャラ:mimisensei」みたいにして検索できます。
これの何が嬉しいのか、「キャラ:みみせんせい」と何が違うのかというと、ページ名による検索だと、みみせんせいのページに記載されている別の呼び方も使って、より強力な検索が行われます。「キャラ:みみせんせい」での検索だと「ミミ先生」名義で記載されているページは検索できませんが、「キャラ:mimisensei」だと「ミミ先生」名義のページも検索できます。
ユーザーがこの機能を意識的に使うことはないかと思いますが、キャラDBの検索ボタンはこの新仕様にいち早く合わせています。
ちなみに、同等の機能は昔からあったのですが、ページIDを使った「キャラ:35」みたいな構文で、わかりやすいとはお世辞にも言えないものでした。今回もそれほどすごくわかりやすいってわけではないのですが、より納得感のある構文になったと思います。
ホワイトアイス4面のページを更新。リッパー戦ですね。
実はこれと言って新情報はないのですが、一応新しいデザインにしたし、写真とかも取り入れたので、攻略情報一新という扱いにしています。
レッドマウンテンの情報も作成中。
ページのリニューアル方針はホワイトアイスと同じですが、ステージ一つ一つで個別に更新していたら、あわただしい印象になってしまうので、今後はワールドごとにまとめて更新しようと思います。
レッドマウンテン3面は複雑な構造をしていて私も忘れている部分があるので、自分で攻略して思い出しながら書くことになりそうです。
どわこ集会行ってきました。
まあ、細かいことは冒険日誌のほうで。
ぽすれんのURLから商品情報を作る機能を修正しました。
画像URLが変更になったことによる修正と、カテゴリの扱いを変更したことに伴う修正です。
とりあえず、今回は見送ることにしました。
ドラクエ11やりたいというのが一つの理由だったのですが、ドラクエ11は3DS版が発売直後に盛り上がりそうで機を逃したくなくて、それならPS4版と3DS版を同時進行する必要があるけど、果たしてそこまでする根性が私にあるかというと、ないわけで。時事的要素がなければPS4版を手っ取り早く進めてから3DS版をゆっくり楽しむという選択肢もあったのですが。
また、ドラクエ11以外にもいくつかやろうとは思っていたのですが…ソフトも結構…高いんですよね…。本体価格がPS3などと比べてお求め安くなっている分、ソフトの高さがちょっと気になってしまいます。Switch買ってからそんなに経っていなくてゲームにかける金はある程度抑えたくて…。
あと、やる時間ですね。ゲームやる時間が取れない(他の趣味に消える)ので、今あるゲームもやりつくせていないのです。Switchのゲームもいくつかほしいのがあるけど我慢している状態なのです。ハードを増やすとまた我慢する数が増えてしまう…!
永劫に買わないと決めたわけじゃないです。また機会と、いろんな余裕があれば…。
新カテゴリ。
問題点も大体解消してきたので、日付が変わったあたりでリリースしようかと思います。

季節イベント。
ァォィョッュだけですがクリアしました。お題は選べるので近場で済みそうなのを選んで近場で済ませました。
で、もらったのがこれ。昔もらった太鼓の仕草とよく合います。
あと、同じくァォィョッュでバズズにも挑戦したのですが、こっちはダメでした。
バズズカードはまだまだたくさん余っていたので、全部プチバズズに替えて、さっさと叩いときました。さすがに弱いァォィョッュと言えども、プチならば敵ではありませんでした。
新カテゴリ。
保存処理も出来上がりました。もうちょっとテストしたら一般公開できそうです。
管理画面のサジェスト機能はまだ新方式に対応していませんが、そもそも作り直そうと思っていたので、あとでまた考えます。
テンの日。
リポちゃんがその辺をうろついていたらしいですが、報酬要らないのでそれはほっといて、いつものテンの日のイベントだけこなしました。

新カテゴリ。
一般客からの見た目はこんな風になっています。重要なのは太字で上のほうに、些末なものはうっすらと下のほうに。
管理画面も見た目だけは作りましたが、保存処理ができていないので、保存ボタンを押すとカテゴリが消えてしまいます。
新カテゴリ。
スコア0を表示しない機能は、当初は表示側のロジックでどうにかしようと思いましたが、データベース処理の時点で判定するようにしました。
さらに、これは表示しないスコアの基準値を定めて判断しているので、「当てはまるとして登録されているけど重要じゃないから表示しない」という判定も可能になりました。表示領域の限られている一覧画面で特に威力を発揮すると思います。
体験版やってました。
キャラクターはかわいい、音楽もいい、システムはよくできている、でも、何か達成したときとかに出てくるあの文字がカラフル過ぎるのが気に入らないかも…。
新カテゴリ。
スコア(重要度)0で、「当てはまらない」を明示可能に。
そして、親カテゴリの自動追加と手動カテゴリ登録が被ったときは、手動のほうを優先するように。
この2つにより、パンは食べ物だけど、食べられないパンがあったらどうすんの?みたいな親子関係のイレギュラーにも対応できるようになります。
まあ、表示がまだスコアに対応していないので、スコア0でも「登録がある」扱いで表示しちゃうんですけどね。
あと、これを愚直に実装したらすごく重くなったので、速くなるような細工を少し入れておきました。

昔のHNと同じ名前の防具が出ておもしろかったので買いました。
まあ、錬金失敗品なんで今のところ使い物にならないんですけどね。
黄の錬金石集めなきゃ…。
登録カテゴリを、親カテゴリもろとも、重要度情報付きでデータベースから引っ張ってくる機能を実装。
これで、表画面にしろ管理画面にしろ、いろいろ作り込めるようになったわけです。
子カテゴリから芋づる式に引っ張ってこられた親カテゴリは、今のところ、非重要として扱われます。
バージョン3.5後期。
私のストーリーは3.2で止まっているので最終決戦は全然関係ないのですが、新防具とかはほしいのがありますね。
検索語句解析の部分を修正しました。
エラーが起きないようにしたのと、検索解析対象の増加と、ささやかな高速化です。
しばらく自分で使ってみて、問題がなければ来週あたりを目途に新バージョンとして公開しようと思います。
カテゴリの重要度の実装中。
ユーザーからの見た目は今までと大差ない予定ですが、内部実装と管理画面は大きく変わる見込みです。