メインコンテンツへスキップ
  1. ブログ/

Misskeyのアンテナワードには1MiBの制限がある話

はじめに #

エゴサってあるじゃないですか。そう、エゴサ。

周りの人から呼ばれる自分の名前やあだ名などを検索して自分に対する言及などを拾う行為のこと。

サンセットが普段いるSNSのMisskeyにはそれを自動で行い、該当する投稿を収集する「アンテナ」という機能があるのですが、今回はこの「アンテナ」の設定で少し躓いた話です。

今回は内容薄いですよ。

サンセットはMisskeyのサーバーを自分で運営しており、そこで動作確認をしています。
公開サーバーなどで大容量のテキストをアンテナに設定するなどの行為をすると、サーバー本体や運営に負荷をかけてしまう恐れがありますのでやめましょう。

ことの発端 #

ただ検索するだけで何を躓いたのか。

サンセットは何故か周りの人に様々な呼ばれ方をすることがあり、それに対応するうちに特殊文字などを使った悪質なエゴサ回避が蔓延るようになりました。
特殊文字にも対応していくうちに万単位のエゴサワードを保持する異常状態になっていたというわけです。

ただ検索するだけならMisskeyのアンテナの機能で単語ごとに改行して設定していくだけです。

…が、ここで問題が1つ。
Misskeyのアンテナでは正規表現が利用できない(普通はいらない)ので、想定されるパターンをすべて列挙しなければなりません。

ここで私はPythonを利用して想定されるエゴサパターンを生成するスクリプトを作成し、これをアンテナの設定画面に貼り付けることで解決しようとしました。

こうして生成されたエゴサワードは100万行超えで25MBの怪物で、これなら悪質エゴサ回避撲滅間違いなしの超大作でした。

ここで事件は発生します。

買ったばかりのMacBook Pro(M3)でもフリーズするブラウザ、最後まで文字列が入らない入力欄、押しても保存できない保存ボタン…

あぁ、お前もこうやってサンセットのエゴサを邪魔するんだな。

制限その1 #

まず困ったのが入力欄に文字列が入らない問題。

データ量の問題の可能性もありますが、試したところ888744行までしか入力できなかったのです。

これでは100万行超えのエゴサワードを設定できません。困りました。

仕方なくワード生成アルゴリズムの変更と使用文字の厳選を行い、行数は減らしましたが、今度は保存ができない問題が発生しました。

ここでのデータサイズは9.3MB。さっきの半分以下なのに…

制限その2 #

調べていくうちに、Misskeyのアンテナには1MiBの制限があることが判明しました。(出典)
調べてくれたさいばれ先生に大感謝です。

さて困りました。これでは多くの文字を削らないとエゴサをすることができません。

厳選に厳選を重ねた結果、最終的には700KB程度に抑えたエゴサワードを作成し、今回の事件は終幕を迎えました。

Misskeyでエゴサをする方へ #

容量制限には気をつけような。特に5万行を超える場合はね。

おわりに #

「Misskeyにそんな制限があるなんて聞いたことない」という話が最初は出ていましたが、実際は大容量のリクエストを弾くためなのか制限がされていました。

Misskeyがこういったところまでちゃんと実装されていることを感じるとともに、エゴサのために正規表現を実装してほしいなという感情が湧きました。

こんなことになったのはお前ら(ここではサンセットのFFのことを指す)のせいだからな。

それでは、また次回。