noellabo's tech blog

@noellaboの技術ブログ

ローカルタイムラインを無くす

Fedibirdで採用している、ローカルタイムラインを取り除くコードを独立させたものを用意しました。Mastodon v3.3.0用になっています。

変更内容はGithubの該当コミットを参照してください。 github.com

cherry-pickの仕方

git fetch https://github.com/fedibird/mastodon.git remove-local-timeline
git cherry-pick 71584f2

あなたの作業環境またはサーバ上で、gitによりコミットを取得し、cherry-pickでパッチをあてます。

Fedibirdの全ソースコードは不要なので、Mastodon v3.3.0に、今回のローカルタイムライン削除用のコミットだけを含むremove-local-timelineブランチだけをfetchし、コミットID 71584f2 を指定してcherry-pickします。

効果

  • ローカルタイムラインに関連するコードは取り除かれます
  • メニューなどから、ローカルタイムラインの項目が削除されます
  • APIでローカルタイムラインを取得しようとすると、空の内容を返します
  • ハッシュタグをローカルのみで絞り込む機能も取り除かれます

Instance APIが、Fedibird拡張'timeline_no_local'を返す

ローカルタイムラインを無くす変更はFedibirdの拡張として広く認知されているため[要出典]、Instance APIで、Fedibirdと同じ値を返すことで、クライアントアプリなどが、ローカルタイムラインが無いサーバであることを認識してくれるかもしれません。

そこで、/api/v1/instanceの返すjsonに、下記の値が追加されるように変更しています。

"fedibird_capabilities": [
  "timeline_no_local"
],