GNU socialのプラグインの有効化

分散SNSのGNU socialのプラグインの有効化の方法を記す。

概要

分散SNSのGNU socialにはプラグイン機能が採用されている。

プラグインを使うことで,本体のソースコードを修正しなくても,ユーザー側でプラグインを設置して設定を編集することで,機能を追加できる。

同じ分散SNSで人気のMastodonやPleromaにはプラグイン機能が採用されておらず,ソースコードを修正するしか拡張の余地がない

そういう意味では,プラグインはGNU socialの特徴的な機能だ。

公式マニュアルにもプラグイン機能について説明があるが,ここで改めてこの機能の使い方を整理しておく。

手順

GNU socialのプラグインの有効化については「DOCUMENTATION/SYSTEM_ADMINISTRATORS/PLUGINS.md」に書かれている。

これを整理すると以下の手順となる。

GNU socialのプラグインの有効化手順
  1. プラグインを入手し,local/plugins/ディレクトリー配下に格納する。
  2. config.phpaddPlugin('プラグイン名'); を追加する。

GNU socialに同梱されているプラグインの場合,手順1は省略され,手順2のconfig.phpの修正のみで済む。

プラグインはplugins/, local/, local/plugins/ディレクトリーが検索対象となる。ただし,これらの内pluginsはGNU socialの同梱プラグインの格納ディレクトリーであるため,基本的にlocal/pluginsに配置すればよい

addPluginの第一引数のプラグイン名に対して,検索対象ディレクトリーから'プラグイン名Plugin.php'または'プラグイン名/プラグイン名Plugin.php'を読み込む。

プラグインのマニュアルなどで記載があれば,以下のようにaddPluginの第2引数にパラメーターを連想配列の形式で追加する。

addPlugin('Example', ['param1' => 'value1', 'param2' => 'value2']);

プラグインの仕組みとしては,WordPressと同じように,GNU socialのイベントに関数を登録して,機能を実現している。

具体例

実際に外部からプラグインをダウンロードして有効化する手順を解説する。

なお,最新安定版のv1.20.9releaseで確認した。開発中のnightlyブランチではプラグインの仕組みが代わり,そのままでは動作しなかった。

GNU socialのプラグインは有志が個別で開発している。今回はお気に入りされた投稿を一覧表示できる「ReverseFavs」プラグインを例として用いる。

  1. まず「ReverseFavs」にアクセスし,[Clone or download] を選択してzipファイル (gs-reverseFavs-master.zip) をダウンロードする。
  2. ダウンロードしたzipファイルをlocal/plugins/ (例: /var/www/html/gnusocial/local/plugins/)に移動させ解凍する。デフォルトでは,local/pluginsディレクトリーは存在しないので,作成しておく。
  3. 解凍後のディレクトリー名をgs-reverseFavs-master からReverseFavsに変更する。
  4. config.phpaddPlugin('ReverseFavs');を追加する。

これで以下の画像のように,サイドバーに [REVERSE FAVS] のメニューが追加される。

[ReverseFavs] プラグインの確認

プラグインを無効化する場合,config.phpに追加したaddPlugin('ReverseFavs');の行を削除するかコメントアウトすればよい。

結論

GNU socialの特徴的な機能であるプラグインの有効化方法について解説した。

GNU socialは10年以上の歴史のある分散SNSの実装であり,同梱されているプラグインも数多くある。さらに,他の人が開発したプラグインを使うこともできるし,気に入らなければ自作することもできる。

プラグインにより,より自分好みの分散SNSを実現していこう。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です