キャラ倉庫とアンパンマンDB
キャラ倉庫
とりあえず、統計用のリクエストは問題なく記録されている模様。
AIとも検索ともつかないよくわからないロボットが徘徊しているけど、統計への影響はないし、Metaみたいに狂った大暴れをしないのでひとまずは放置。
そろそろちゃんと記事の更新をして、統計をする意味がある状態を作っていきたいなァ。
アンパンマンDB(みんなのタグ)
なんかまたおかしなのが増えてきている模様。
本当はユーザー側で自主的にどうにかしてほしいけど、なんかまた対策考えるかなぁ。
アンパンマンDBの、主に開発に関する日記。
とりあえず、統計用のリクエストは問題なく記録されている模様。
AIとも検索ともつかないよくわからないロボットが徘徊しているけど、統計への影響はないし、Metaみたいに狂った大暴れをしないのでひとまずは放置。
そろそろちゃんと記事の更新をして、統計をする意味がある状態を作っていきたいなァ。
なんかまたおかしなのが増えてきている模様。
本当はユーザー側で自主的にどうにかしてほしいけど、なんかまた対策考えるかなぁ。
来週の放送情報。
そうめん…残暑だからまだ季節か。
Bot対策しつつアクセスログから人気のページを集計するための仕組み、作ってみました。
mw.hook('wikipage.content').add(function () {
const id = mw.config.get('wgArticleId');
if (id === 0) {
return;
}
const d = new Date().getTime();
setTimeout(async () => {
try {
const url = '/a.md?' + id + '-' + d + '-' + (new Date().getTime());
await fetch(url, { method: 'HEAD' });
} catch (error) {
}
}, 5000);
});グローバルスクリプトのMediaWiki:Common.jsに処理を書くことで対応しています。
このスクリプトでやるのは、集計に使えるリクエストをサーバーに送ってアクセスログに残させるところまでです。
実際の集計は、後日、これとは別に作ります。
まず前提として、ここではJavaScriptを使って行います。
私の個人的なこだわりとして、JavaScriptを使わずに済むなら使わずに済ませたいのですが、MediaWikiの時点でJavaScript使いまくっているので、相対的にデメリットは少ないかなと。
そして、Botはページ本文だけ見に来て、JavaScriptの実行まではしないことがほとんどですからね。
mw.hook('wikipage.content')は、コンテンツロード後に関数が発動するする仕組みです。
で、最初にページIDを取って、有効なページのときだけ処理を進めるようにしています。
特別ページなど、記事じゃないページを集計しても仕方ないですからね。
ちなみに、このMediaWiki:Common.jsのページも記事IDを持つ立派な記事なので、みんながこのスクリプトを見に行くと、スクリプトが人気ページになります。
まあ、これは今後実際に集計する仕組みを作るときに除外すればいいだけの話かな。
処理が進んだら、時刻を記録してタイムアウトを仕込んで、サーバーにリクエストを送ります。
このときのリクエスト先URLは、できるだけ短い名前にした静的ファイルのa.mdに、パラメータでページIDとタイムアウト前後の時間を加えています。
URLに時刻を含めることで、リクエストせずキャッシュからレスポンスが返るのを防ぎつつ、URLと実際のリクエスト時刻を照合してリクエストの整合性を検証できるようにしています。
タイムアウト仕込む前とタイムアウト後の時刻両方を含むので、ちゃんと待ったかどうかの検証もできます。
Botが昔見つけたURLをもう一度叩いても期限切れなので意味がないというわけですね。
もちろん、人間のアクセスでも、ちゃんと読まずに一瞬で通り過ぎた場合は集計対象になりません。
なお、ただのタイムスタンプなので明確な悪意があれば偽装は容易ですが、そんなことする意味もないので、偽装するやつはいないという想定です。
ちなみに、わざわざ有効な静的ファイルを用意しているのは、MediaWikiの手を煩わせないためです。
静的ファイルがあればそれを直接読むように設定してあります。
もしファイルを置かなければ、MediaWikiに処理が渡り、a.mdというありもしない記事を探した挙句、本来必要のないエラーログを残して404エラーを出すことでしょう。
そうさせないための、静的ファイルです。
そして、サーバーへリクエストを送る際は、HEADメソッドで送ります。
目的はあくまでも「リクエストを送ること」までなので、レスポンスは要らないし、ましてやリクエスト先のコンテンツなんかも全く必要ありません。
なので、コンテンツを返さないHEADメソッドが無駄がなくてよいということになります。
厳密に言うと、レスポンスヘッダは返ってきますが、不要なので受け取らずに捨てています。
Botはむしろリクエスト先の中身が欲しいので、GETメソッドでリクエストするでしょうが、HEADメソッドではないので集計対象にはしませんし、もちろんリクエスト先のa.mdの中身は無意味なものしか入っていません。
一応、a.mdの中身は下記リンクから見えるようにしておきますが、本当に意味のないことしか書いていませんし、これを読んだところで人気ページ集計には寄与しません。
a.md
というわけで、まとめると、こうなります。
なんかPCが一挙手一投足ごとにタスク切り替えだのゲーム起動画面だのが出てきておかしいなと思ったら、ゲームコントローラが誤作動していました。
USBケーブル差しなおしたら改善したので、どうやら繋ぎっぱなしだったケーブルが外れかけて接触不良を起こしていたようです。
はい、前回のを正式な情報に修正して、最新DVDの情報も入れました。
秋号はたぶんイレギュラーないかと。
Robots meta タグ、data-nosnippet、X-Robots-Tag の設定 | Google 検索セントラル | Documentation | Google for Developers
X-Robots-Tag ヘッダー - HTTP | MDN
最近キャラ倉庫やらDQPEの関係で外部からアクセスしてくるロボットの挙動を制御する必要が出てきて、調べていたら出てきた概念がこれ。
HTTPヘッダにX-Robots-Tagを付けて返すことで、HTMLのMETAタグに頼らずロボットの挙動を指示できるというやつです。
もちろん、METAタグと同様に、無視するロボットは無視しますし、なんなら比較的新顔で、標準化すらされていないので、METAタグより強制力は劣るものとみられます。
しかし、METAタグの書けない非HTMLコンテンツにも付けられますし、robots.txtより個別に細かく指定できます。
今からすぐに対応する必然性はなさそうですが、ちょっと存在だけは覚えておこうかと。
来週の放送情報。
これは終始楽しい夏まつりになりそう。
ここもロボットが変なアクセスしがちなので、キャラ倉庫ほどじゃないけど、統計が程よくなるような調整を準備中。
今のところ、調整で変なバグが発生しないようにテストを整えたところです。
開発また滞っていますが、また改善したい部分が。
検索してから実行すると、次に画面を開いたときも検索結果が出るのですが、一度実行したものを何度も連続で実行することは少ないし、そもそも仕組み上、実行した項目は上に上がってくるから検索の必然性は減るし、画面を開くときは表示状態を毎回リセットしたほうがいいかなって感じました。
前作はこの辺の仕様どうだったかな…。
なんか面白そうなバイキンメカ見かけたので。
とりあえず、例の行儀悪いbotはCloudflareのブロック機能で弾いても来るのやめないので、あえてrobots.txtだけ許可して、どこも見るなって名指しの指示だけ見えるようにしておきました。
# 行儀の悪いbotは拒否
SetEnvIfNoCase User-Agent "meta-externalagent" bad_ua=on
RewriteCond %{ENV:bad_ua} on
RewriteCond %{REQUEST_URI} !^/robots\.txt$
RewriteRule ^(.*)$ - [F,L]User-agent: meta-externalagent
Disallow: /さて、普通に書いたrobots.txtを無視しやがるあいつが従ってくれるか…。
来週の放送情報。
再放送ですな。
バトマスクエ完了。
写真は道中に落ちてたやつで、クエストとは関係ありません。

再戦セインズ君。
昨日と同じノリで舐めプしてたら地味にダメージが蓄積してきたんで、最後は一気に倒しました。

黒幕さんの愛玩動物ブランドンビーストちゃん。
あんまり舐めプできるような余裕もなさそうなので、即座に殴りました。
まあ、レベル差もあるんで、普通に戦えば、普通に一方的。
他の写真は以下から。
写真置き場「2026/08/14」

新しい血液検体ゲット!
他に特に進展はないです。
そろそろストーリー進めたいな。
レクイエムの弾量産できるようになったからボス戦は近いと思うけど。
音声の録音は、設定調整などしたので、だいぶ聞こえやすくなりました。
まあ、その分私自身の活舌の悪さもクリアに聞こえるようになっちゃいましたが。
他の写真は以下から。
バイオハザード レクイエム(2026/08/14)の画面写真集
最近の放送に出てたので。
今日はこっちも行ってました。姫路の手柄山温室植物園。 pic.twitter.com/i7ZBgKvEU3
— 📛松田美文 (@matsuda323) August 13, 2026
4年近くも放置していたバトマスクエ、進めました。
バトリンピックの選手たち、全員一撃で沈んでいった…。
敵のバトマスは今でもすてみ使うのね。
本当はバトマスクエ最後まで終わらせるつもりでしたが、持ち物がいっぱいになってしまったため中断です。
他の写真は以下から。
写真置き場「2026/08/13」
様子見ながら記事いくつか更新。
修正が必要ない記事なら「移行作業中」カテゴリを外すだけなので、今後はもっと早く多く修正できると思います。
一応こうやって更新情報は列挙できるけど、一度に多くに記事を修正することになるし、一つ一つの細かい報告はしないほうがよさそうですね。
とりあえず、軽めだけど見た目の印象が大きく変わる2件を対応。
完了を待たずに閉じる件は、以下のように、明示的にHideしてから、投げっぱなしasyncしています。
private void OnContextRunAsAdminClicked(object? sender, RoutedEventArgs e)
{
if (GetSelectedItem() is { } item && DataContext is MainViewModel mainVm)
{
Hide();
mainVm.ExecuteItemAsync(item, runas: true);
}
}internal async void ExecuteItemAsync(Item item, bool runas = false)
{
await Task.Run(() => ExecuteItemCore(item, runas));
}
private void ExecuteItemCore(Item item, bool runas = false)
{
// 省略
}スクロールのほうは、単純にScrollViewerで囲っているだけです。
<ScrollViewer VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Disabled" AllowAutoHide="False">
<!-- 省略 -->
</ScrollViewer>来週の放送情報。
公式サイトは「フルーツのしま」名義だったけど、前例や放送された次回予告からすると、「フルーツ島」のほうが正しいはず。
確実な正解は次週を待て!
リンクにげんき100ばい!マーケットを追加しました。
公式のオンラインショップです。
DVDとかの円盤系はなくて、ぬいぐるみや雑貨とかのグッズ系が中心ですね。
絵本もあるけど原作はなくて、書籍目的なら書店のほうが良さげ。

第25回アストルティア★ハッピーくじ「アストルティア14周年お祝いくじ」 (2026/8/3更新)|目覚めし冒険者の広場
くじの結果が出たので、商品引き換えしてきました!
今回の参加賞は、水やりのしぐさです。
カメラが近付くとじょうろだけ消えるので、何か悪いことに使えそう。
他の写真は以下から。
写真置き場「2026/08/03」
ifという制御構造が入る以上、プログラミングなわけで、Wikiのマークアップ言語ではなくプログラミング言語のLuaで書くのが正攻法だったのです。
そうすれば、Wikiルールの余計なものが入るのも防げるのです。
…という方向で、修正中。
共有ボタン、表示するようにしました。
こんな感じのHTMLになっています。
<a class="cp" href="javascript:navigator.clipboard.writeText('2026年8月3日の日記 https://tgws.plus/diary/20260803');" title="タイトルとURLをコピー">コピー</a>まあ、昔ながらの、hrefに「javascript:」入れるやつです。
もっときれいにやる方法はもちろんあるんですが、機能しなくても困らないおまけみたいなボタンなんで、あんまりこだわる必要はないかなーと。
同じ日に登場した2人追加。
ミフミンも海イベント行って、これで全員分完了!

最初タコメットで行ってたんだけどタコメット被りすぎてグダグダになってしまいました。
周回はだいおうキッズで行くとスムーズでした。
他の写真は以下から。人間だと変態になってしまう…。
写真置き場「2026/08/01」
このあと14周年もあるけど、それは明日の日記で。
来週の放送情報。
可愛い組み合わせと神秘の組み合わせですな。
しろいコキンも無事クリア。
うーんセクシー…?

バトルはいろんなモンスターを試してみました。
前回のヒトデのほうがやりやすかったなーと思ったり。
他の写真は以下から。
写真置き場「2026/07/31」
ひとまずWordPressにあるデータはすべて移行できるようになりました。
ただ、ここからカテゴリ自動登録とかの仕組みも作っていきたいので、実際の移行までにはもうちょっとかかりそうです。
土日にできたらいいなァ。
謎に広い間が開く件については原因が分かったのでセクションを改めて。
HTMLのtable要素の中でMediaWikiのifを使うと、trタグを生成しなかったときに、何もない空行ではなく、「何もない」がある有効行として扱われ、何も表示しないパラグラフを生成してしまっていたのでした。
<table class="wikitable">
{{#if:{{{正式名称|}}}|
<tr><th>正式名称</th><td>{{{正式名称|}}}</td></tr>
}}<!-- 正式名称がないとき、<p><br></p>が生成される -->
</table>で、table要素の中に直接パラグラフがあるのは違反だから、外に追い出されて謎の空白を生み出していたというわけです。
とりあえずtableタグも含めて全部1行に押し込めると行うんぬんの話が根本から消滅するので一応は解決なのですが、それじゃ読みにくくてしゃーないんですよね。
もっといい解決法考えたいものです。
情報提供の反映など。
画像インポートの仕組み作った!
もちろんMediaWiki自体にもインポート機能はあるんだけど、WordPressの作る画像データをMediaWikiに入れやすい形式に整えてやるというのをやっとかないと、いらん画像が増えますからね。
で、インポートはうまくいったんですが、記事に画像が表示されません。
なんか間違ってんのか…。
来週の放送情報。
SLマンとコキンちゃんは昔順序逆のやつがあったらしい。

[DQXショップ] おきがえリポちゃん ~ あぶない浴衣 ~ (2026/7/22)|目覚めし冒険者の広場
いつもの月例貸衣装。
浴衣の片側が大きくはだけてインナーが丸出しになっている服。
ちなみに男はインナーなしなので片乳丸出しです。
他の写真は以下から。
写真置き場「2026/07/24」
モジュールを読み込んでくれない問題、XMLからモジュールをインポートしてたんですが、そこでのモデルとフォーマットの指定が通常の記事と同じだったので、モジュールじゃなくて記事扱いされていたのでした。
移行用プログラムを修正してScribuntoとして取り込まれるように修正しました。
そしてもう一つ、Luaの実行用バイナリに実行権限がついていなかったのも一因でした。
Windowsめぇ…。
とりあえず、致命的な問題はなさそうなので、PHP8.4に上げてみました。
うーん、事前調査で出なかったDEPRECATEDがいっぱい出てたぞ…。
解説・感想のネタバレ部分追記。
映画館で直接観て書くのはこれでいったん区切りとします。
あとはDVD発売後かなー。
過去作もDVD発売後に追記とかできてないのがあるし、そっちのケアもしたほうがいいかな?



7月20日(海の日)は「ウェディの日」! (2026/7/13)|目覚めし冒険者の広場
昨年もやってましたが、ウェディ無料変身。
来週の放送情報。
データ移行の一環で記事追加。
オカルト研究室はPukiWikiにもなかった完全新規ですが、設定は定まっていません。
これで進捗98%!
残りは文面も調整しないといけないやつ!
MediaWiki用コンバータも作成中。
動画アップしました。
新商品の情報が出てたので。
来週の放送情報。
映画のテレビ放送後編です。
Amazon.co.jpにて『ドラゴンクエストX 時空の迷い子たち オンライン』をご予約いただいた方へ
昨日の件、どうやらKonozama(Amazonがokじゃない現象)だったようで、Amazonにお問い合わせしたらアイテムコード送ってもらえました。
このお知らせは逆の現象のことだったみたいですけどね。
ということで…
特典アイテム、貰えました。

毎月10日はDQXで遊ぼう! ~みんな一緒に福の神まつり~ (2026/7/3)|目覚めし冒険者の広場
そして今日はテンの日!
福の神メダルいっぱいもらえたので行ってきました!
なのになぜ写真が福の神じゃなくてデスマシーンなのかって?
福の神終えて香水が余ったから適当なコインボスでもと思って……福の神倒すことしか考えてなかった低レベルの職で…………行っちゃったんですよねぇ。
まあ前回のデスマシーン特化サポが残っていたから実質3人討伐でどうにかなったんですけどね。
他の写真は以下から。
写真置き場「2026/07/10」
「#映画アンパンマンあるある」を追加しました。
バイオ9以外のページにも画像の新システム入れました。
余計なタグが付いちゃってたとか、たまにキャッシュ生成失敗してずっとエラーファイル返し続けるみたいな問題を見つけたので、そのあたりは修正しています。
登場キャラとか確認してきたので。
解説側も書き足したいけど文章が全然まとまらない。

今回は動画の音量バランステストも兼ねて軽く…と思ったけど、新たに行ける場所があったので行ってみたら別のでかいやつに襲われました。
ん?これはネタバレエリアに畳まなくてよかったかな?まあストーリー関連じゃないしいいか。
他の写真は以下から。今回から昨日完成させたシステムに入れ替えてるよ。
バイオハザード レクイエム(2026/07/05)の画面写真集
今日は動画投稿間に合ったので見てね。