SNSの投稿引用整形サービスSocial Citer

product
概要

2022-12-31に SatにSNSの投稿を引用用に整形するWebサービスのSocial Citerを開発して公開したので紹介します。

Social Citer」で公開しています。リポジトリ―は「gnusocialjp/SocialCiter: Format social post for citation (https://socialciter.gnusocial.jp). – NotABug.org: Free code hosting」です。

以下の投稿で告知しました。

GNU social JP管理人 (gnusocialjp@gnusocial.jp)’s status on Saturday, 31-Dec-2022 21:25:25 JSTGNU social JP管理人GNU social JP管理人

現在対応しているのはMastodon APIのみです。

方法

使い方を簡単に説明します。まず、サイト「Social Citer」を表示します。

Mastodon APIを採用している分散SNSの投稿パーマリンクを [Input] に入力して [Go&Copy] を選びます (例: https://mstdn.jp/@senooken/109607459358722821)。

すると、[Output] 欄に引用用に整形されたHTMLのコード (以下が例) が表示され、[View] に該当HTMLの描画イメージが表示されます。そして、クリップボードにHTMLがコピーされた状態になります。

<blockquote><article><header><div style="float:left;width:3.5em"><img style="width:3em" alt="avatar" src="//mstdn.jp/avatars/original/missing.png"></div><div>senooken@mstdn.jp|<a href="https://mstdn.jp/@senooken">senooken@mstdn.jp</a><a href="https://mstdn.jp/@senooken/109607459358722821">|2022-12-31T08:58:22.038Z</a></div><div><a href="https://mstdn.jp/@senooken/109600428389433315">replying to</a>
      senooken@mstdn.jp|<a href="https://mstdn.jp/@senooken">senooken</a></div></header><main style="clear:both"><p>cw</p><p>添付ファイルつき返信テスト。</p></main><footer><img src="//media.mstdn.jp/media_attachments/files/109/607/457/339/007/439/original/9c1858fb1c5788e0.png"></footer></article></blockquote>

HTMLをサイトに掲載すると以下のように表示されます。

SNSの投稿のWebサイト上での引用をスムーズに行えます。

ユーザー情報、投稿日時、返信先の情報やContents Warning、添付ファイルなど引用時に必要な情報を一通り網羅できたと思っています。なお、ローカルで通信が発生してほしくなかったので、画像とメディアのURLのスキーム (http:) を削除しています。

背景

開発は私の記事作成の作業効率化が目的でした。

分散SNSでの報道を紹介する際には、一次情報や反響などを取り上げることが重要だと考えており、ユーザー投稿の引用が大事だと思っており、日常的に引用していました。ただ、この引用作業が非常に手間のかかる面倒な作業でした。これを改善することを目的に開発しました。

まず、Mastodon/Misskey/Pleromaなどの分散SNSの各ソフトウェアの投稿の引用機能が不十分で気に入りませんでした。例えば、Mastodonであれば、埋込コードはMastodonにログインしている状態でないとそもそも取得できません。そして、取得できたとしてもiframe要素を用いたコードになっており、余計な外部通信が発生しますし、元記事が削除されると見れなくなります。

Misskeyに関しては、埋込用コードの提供がそもそもなく、リンクと内容のコピーしかありません。

そのため、これまではGNU socialのEmbedNoticeプラグインを使って、引用していました。しかし、この操作がかなり面倒なものでした。冒頭の私の投稿の引用はEmbedNoticeプラグインでの引用です。

連合先から自分のサイトに流れてきている投稿にだけ適用できるので、一度自分のサイトに取り込んで、検索で見つける必要がありました。連合していなかったり、通信エラーで取得できていないことがあるので、投稿元ユーザーのプロフィールと自サイトのリモートプロフィールのタイムラインの2種類を両方確認する必要がありました。しかも、添付ファイルは埋込表示できなかったり、HTMLのマークアップが汚く、一部手作業で修正を加えて取り込んでおり、問題だらけでした。

また、ドメインブロックなどで自サイトに取り込めない投稿は、結局コピーペーストで引用するしかなく、かなり手間のかかるものでした。

引用の見た目の形式もばらばらで、非常に手間のかかるものでした。今後も何度も繰り返すため、作業時間効率化のためにどこかで、自分好みの引用整形サービスが必要で、ニッチすぎてないようなので自分で作ることにしました。

現在はMastodon APIしか対応できていません。将来的にはMisskey/Twitter/GNU social/Facebookなど、既存SNSは全て網羅できるようにしたいところです。分散SNSではMastodon APIに対応しているものが多く、これだけでもかなり楽になるので、一旦これで公開しました。後は、自分で使いながら適宜開発していきます。

サービス名のSocial Citerは「SNSの投稿の引用者」という意味です。Citerという英単語は存在しないので造語です。

Webのフロントエンドの開発は久しぶりで、調べながらで苦戦しました。記事の目次生成に使っている、私が作った「GenerateTOC: Generator for Table of Contents from HTML Headings – Kenchant」と似たようなシングルページのフォームアプリケーションにしました。HTMLとJavaScriptだけで動作する簡単なものなので、ライセンスはCC0にしました。誰でも使えるようにWebサイトで公開していますが、ローカルでも動作します。

結論

SNSの投稿引用整形サービスのSocial Citerの紹介でした。サイトを始めてから初の自社ソフトになりました。

現状、Mastodon APIだけしか対応していませんが、Mastodon APIのユーザーは多いので、これだけでも私はかなり楽になります。

自分の作業効率化のための、自分のためのソフトですが、他の人の役にも立てば幸いです。今後は、MisskeyやTwitterへの対応、その他ソフトごとに背景色を変えるなどの開発を考えています。

問題や機能要望があれば、対応できるかどうかはわかりませんが、「課題 – NotABug.org: Free code hosting」にお寄せください。

コメント

タイトルとURLをコピーしました