概要
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管理人 昨日言及したこのサービス。ひとまずMastodon APIだけですが作ってみました。
MisskeyやTwitterにも対応したいです。引用が手間だったのと、書式が気に入らなかったのです。
Social Citer https://socialciter.gnusocial.jp/
https://gnusocial.jp/notice/2178418
現在対応しているのは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をサイトに掲載すると以下のように表示されます。
senooken@mstdn.jp|senooken@mstdn.jp|2022-12-31T08:58:22.038Zreplying to senooken@mstdn.jp|senookencw
添付ファイルつき返信テスト。
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」にお寄せください。
2023-06-24T21:20+09:00 Sat追記。なお、このツールの作成前に発生した「告知: Misskey.ioからのドメインブロック | GNU social JP」や一連のgnusocial.jpのドメインブロックの動きは、GNU socialのEmbedNoticeプラグインによる、自サーバーのリモート投稿の埋込回避が主な目的だったように感じます。
ぐぬ管 (GNU social JP管理人)|gnusocialjp@gnusocial.jp@riq0h こういう細かい行き違いにその場で即座に返信できるから通話がいいのです。わかってほしいです… わかってますよ。ちゃんと読んでますよ。あなたが最初の方に回答したとおり、私のサイトに引用されるのが不名誉だとあなたはいいたいんでしょう。ただ、それは不快の気持ちの話で物理的、金銭的な実害はないのだからデメリットではないというのがこちらの話です。引用の話に戻りますけど、ただのお気持ちを過大評価しすぎです。 ドメインブロック、サーバーミュートは気持ちの他に会話不能という物理的な実害があります。見るだけならノーダメージです。当初はこの視点しかありませんでした。 当初は引用のことしか考えてなくて、自分のサーバーと通信しないと引用の埋め込みができなかったんです。その後ツールを作って、引用はサーバー通信不要になりました。当初の私のサイトへのドメインブロック騒動はこの埋め込み引用回避が主目的だったように感じます。 その後、反論、会話ができないというのが後で問題に私が感じました。 あなたが答えなかった私の最初の重要な質問は、「不快だから服従しろ。こんな論理が通ると思いますか?」です。あなたはなんだかんだ理由をつけてこれが通ると回答するのだと思います。一般的なことはもちろんだめでも、いくつかあては思いつきますが、難癖をつけて私の関与したケースはだめというのだと思います。過去に別人がそんな論理でした。 あなたとの会話はこういう細かい応答、言葉のあや、揚げ足取りのような応酬が大量に起こるので通話が早くてお互いの負担が軽くていいというのをわかってほしいです…あなたはこういう重箱の隅をつつきたいから、文字のやり取りが都合がいいのだと思います。私からしたら、本筋から外れるささいな内容で時間の無駄なんです。全部回答できますけど、私の負担が大きいのです。 一連のぼろくそに批判したのも含めて、私はあなたの論理を全部理解できてるつもりです。あなたが私を理解しきれていないだけの話です。だからあなたから私への質問ばかりになるのです。 議事録を双方の合意で作って公開するとか相互の信頼があるならなんとでもなります。時間が浪費されるのです…通話ならせいぜい1時間で十分議論しつくせます。返信だと何日もかかります。あなたのサーバーからはミュートされてますし。 私はあなたに配慮してレスバに何時間もかけて付き合っているのだから、私のことも少しは配慮してほしいです…。私のことが鬱陶しいなら、無視すればいいですし、関わらなきゃいいです。私のサイトの記事もみなけりゃいいです。問題あるなら提訴すればいいです。 気になったので余談でした。
このツール作成により、引用回避のためのドメインブロックは無意味になりました。上記の投稿でそのことに気づき、この投稿は意外と重要に感じたのでカテゴリーを付与しました。
詳細プロフィール。SNS: X Twitter/GS=gnusocialjp@gnusocial.jp/WP=gnusocialjp@web.gnusocial.jp。2022-07-17からgnusocial.jpとweb.gnusocial.jpのサイトを運営しています。WordPressで分散SNSに参加しています。このアカウントの投稿に返信すると、サイトのコメント欄にも反映されます。
Comments
This Article was mentioned on web.gnusocial.jp
This Article was mentioned on web.gnusocial.jp
This Article was mentioned on web.gnusocial.jp
This Article was mentioned on web.gnusocial.jp