自分の投稿にあるタグの使用回数を知りたかったのでMastodonの本番DBを見る方法を調べた記録。
確認環境
Mastodon v4.5.4
やり方
postgresになってmastodon_productionを開くと見れる。
sudo su - postgres
psql mastodon_production
テーブル一覧は恐らくhttps://mstdn.example.com/pghero/で見れるものがそれだと思う。
DBスキーマ
有志が公開しているMastodonのER図を参考にさせてもらった。
今回打ったクエリ
自分が投稿しているタグの総数が知りたかったので、こんな感じにしてみた。たぶん自インスタンスのdomainはnullと思われる。適当なので知らんけど。
SELECT
tags.name
,COUNT(*) as post_count
FROM statuses
INNER JOIN statuses_tags
ON statuses.id = statuses_tags.status_id
INNER JOIN tags
ON statuses_tags.tag_id = tags.id
WHERE
statuses.account_id = (SELECT id FROM accounts WHERE username = 'Lycolia' AND domain IS NULL)
GROUP BY
tags.name
ORDER BY
post_count DESC;
クエリの結果
ゾンビランドサガと三宮に対する言及がめちゃくちゃ多いことがよく分かった。
| タグ名 | 使用回数 |
|---|---|
| ゾンビランドサガ | 225 |
| 三宮 | 205 |
| 神戸 | 123 |
| 兵庫 | 101 |
| 自炊 | 93 |
| 兵庫食材 | 72 |
| 交通 | 64 |
| サイト運営 | 32 |
| 神戸食材 | 25 |
| 鉄道 | 22 |
| 映画 | 15 |
| 映画館 | 14 |
| 買い物 | 9 |
| 姫路 | 7 |
| 災害 | 5 |
| 夜景 | 4 |
| 経県値 | 4 |
| lastfm | 3 |
| markov | 3 |
| web | 3 |
| 御影 | 2 |
| 明石 | 2 |
| 尼崎 | 2 |
| カメラ | 2 |
| ai | 2 |
| ui | 2 |
| せちまなと打って性格がわかるらしい | 1 |
| しなちくシステム無料ガチャ | 1 |
| 加古川 | 1 |
| 回線 | 1 |
| 眼鏡っ娘を見るとストレスが減るらしい | 1 |
| 気動車 | 1 |
| このタグをみた人は好きな天ぷらを答える | 1 |
| 阪神 | 1 |
| 山歩しよう | 1 |
| 児島 | 1 |
| shindanmaker | 1 |
| page42 | 1 |
| notestocklogincode | 1 |
| notestock | 1 |
| 土産 | 1 |
| 飯屋 | 1 |
| last | 1 |
| fediverseプロフ帳 | 1 |
| 無事下山 | 1 |
| ガルクラ | 1 |
| ガジェット | 1 |
| ガルクラタイプ診断 | 1 |
| ガルクラ総集編 | 1 |
| ソンビランドサガ | 1 |
| インターネット | 1 |
| ネットワーク | 1 |
| プロフィール帳 | 1 |
| プロフ帳 | 1 |
| ライフハック | 1 |
参考
投稿日:
この記事はadiary改造シリーズ三本目である。
今回はadiaryの私的改造版であるadiary-extendsを0.11.5から0.12.0にバージョンアップした。
何をしたかというと、adiaryを採用したいが…で導入検討以来ずっと懸念事項だったMarkdownの脚注書式に対応した。なんと二年越し。なおまともな動作確認はしていないので、ちゃんと動くかは不明だ。とはいえ、軽く見た感じとりあえず動いてそうなので、いったん対応したということにしておく。
現状では脚注に書いたMarkdownはパースされないのでそのまま出てくるが、今のところ仕様。そのうち直す。多分。
2026-02-13
Version 0.16.0で脚注記法のMarkdownをHTML展開する対応を行った。
この対応はOpus 4.6に書かせた。
何故やったか?
ミンゲイインターネットの紹介を書くにあたり、古のサイト探究~駄文同盟のID上位100サイトを巡り、今までのネット人生や自サイトの過去を振り返ってみるをリンクしたかったのだが、この記事には破綻した脚注記法が使われており、まさか他のサイトの紹介記事を書くのにこんな状態があってはならないだろうと思い着手した。
どうやったか?
Claude Opus 4.5に9割書いてもらった。
というのもadiaryのコードはPerlで実装されてあり、私はPerlに疎い部分もあるし、パーサー系のコードの理解が難しいためだ。
過去にGPT4やClaude Sonnet 3.5などにトライさせたことはあるのだが、余りにも出てくるコードが使い物にならず、当時は諦めていた。しかしOpus 4.5は極めて性能がいいので、ひょっとしたら今なら行けるのでは!?と思い試してみたところ、大まかには上手くいったので、実装することが出来た。
勿論コピペ実装できる代物ではなかったので、細かいところは手直ししている。
Opus 4.5に任せた流れ
キャプチャでアレだが、こんな感じで出してもらった。最初投げつけてるのはlib/Satsuki/TextParser/Markdown.pmそのものを渡している。
行が破綻していたり、前後の行にあるコードが正しくなく、リンク処理に[]が食われた後に脚注の[]をしようとして失敗したり、正規表現が微妙に間違っていたり、余計なフラグがあったりしたので、そういうのは適当に直している。
あとがき
GitHubのWikiに改造内容をまとめているが、割とそこそこ改造したと思う。
素のadiaryより格段に使いやすくなった。とはいえ、まだ足りないところは多いし、adiaryを保守するのも大変なので、そのうちフルスクラッチで作り直したいところだ。こうやってadiaryに手入れしている現状、その日がいつ来るのかは謎だが…。
ついでにロゴもSVGとPNGで作ってみた。adiaryのオリジナルロゴの改変だが、SVGの書式をMDNで引いて細かいことはOpus 4.5に聞きつつ、手書きしたものだ。
GitHubのリンクは消えるかもしれないので、現時点の版も置いておく。
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" width="64" height="64">
<rect x="0" y="0" width="64" height="64" rx="12" ry="12" fill="#899aff"></rect>
<text x="18" y="52" transform="rotate(-10, 25, 62)" font-family="Meiryo, serif" font-size="64" font-weight="bold" fill="#fff">
a
</text>
<text x="25" y="55" transform="rotate(-30, 50, 50)" font-family="Meiryo, serif" font-size="32" font-weight="bold" fill="#001382">
ex
</text>
</svg>
SVGをPNGに落とすのにはSVG to PNG / ものおきを利用させていただいた。縁のアンチエイリアスや透過情報がきちんと保たれていて、非常に便利だった。
関連記事
過去のadiary改造シリーズの記事。
- CMSをadiaryに変えてよかったこと
- コピペによる画像添付に対応した話
- adiaryを地味に改修している話
- 去年やった改造の全般的な話

