タグ別アーカイブ: Mastodon

WordPressの記事投稿をMastodonに反映するプラグインをちょっと修正してプルリクエストしてみた


Mastodonが話題になり始めたころ、こんなことを書きました。

WordPressの記事投稿をMastodonに反映してみる  (今日の気分はバリいくつ?)

この記事で紹介した「Mastodon For WordPress」を利用すると、難しいことを考えずにWordPressの投稿をMastodonに反映できます。非常にありがたく使わせていただいていますが、一度書いた記事を修正するたびに何度も反映されてしまうのが、ちょっと使いづらいと感じていました。

そこで、フォークしてちょこっと直してみました。

https://github.com/edo-bari-ikutsu/mastodon-for-wp

ポイントは2点。

  1. 記事が公開されるタイミングだけでトゥート投稿を行うようにしました。公開後の再編集では通知されません。
  2. 前回記事で話題としたトゥート文言の変更(記事タイトルを含める)を改めて反映しました。

上記の修正は本家リポジトリにプルリクエスト中ですが、とりあえず「20170916_for_bari_ikutsu」というブランチにすべての修正を反映したものを置いておきます(本家に受け入れられたら予告なく削除させていただきます)。

【Mastodon】ブーストされたトゥートが削除されないのは不具合らしい


Boost and toot deletion interaction problem (GitHub)

この記事で言及した「ブーストされたトゥートが削除されない」事象は、一応不具合として認識されています。削除通知を送信する範囲の問題のようで、分散型のシステムはいろいろと難しいところがありそうですね。

【Mastodon】トゥートの削除はリモートへのブーストに注意


Mastodonのタイムラインで、こんな情報が流れてきました。

第2回 マストドンで,いごこちのよいタイムラインをつくろう (gihyo.jp)

まず,いったん投稿したトゥートは削除できるものの,それが消えるのはあなたが属しているインスタンス内の話です。他のインスタンスのユーザーがあなたをリモートフォローしている場合,そこまで届いたトゥートは消えないのです。

間違ったトゥートをしてしまった場合のリスクは,むしろマストドンのほうが重大だということを理解しておきましょう。

他のインスタンスのユーザーに向けて送信したダイレクトな投稿や,次回解説する「ブースト」と呼ばれる投稿の拡散も,あなたが属しているインスタンスの外側では削除や取り消しはできません。

いくら何でもそれでは「削除」機能自体の意味がないのではと思い、自分でインスタンスを2つ立ててリモートフォロー関係のユーザーを作り、試してみたところ、以下のような挙動でした。

1)トゥートの削除はリモートフォロー先にも伝搬して削除される(他インスタンスユーザーへの@トゥートも同様)
2)ブーストの取り消しは「~さんにブーストされました」という表示だけが消え、トゥート自体は残る

とりあえず自分が試した範囲では、リモートフォロー先でもトゥートが消えるのを確認できました。ブーストに関しては「誰が」ブーストしたかという情報だけは消えるので、最低限のプライバシーは確保できそうです。

ただし、削除やブーストの取り消しは、インスタンス間のネットワーク通信で成立するので、通信失敗によりうまく削除できない可能性はあります。リモートフォロー先のインスタンス停止→トゥート削除→インスタンス再開などして試した限り、ある程度の再送機能は備えているようです。

なお、「ブーストされた元トゥートを削除しても、ブーストでリモートに伝搬されたトゥートは消えない」ようです(ローカルの範囲では消える)。むしろこっちが問題なんじゃないかと……。元記事が警告しているリスクは、大きな意味では間違っていないのかもしれません。

【Mastodon】連合タイムラインに表示されるトゥート


今一つ理解していなかったのですが、このあたりを見てわかりました。

【図解】マストドンの連合タイムラインとは何?わかりやすく解説!
Mastodonの連合タイムラインって何?「ローカルユーザ」と「リモートユーザ」の違い

トゥートする立場で言うと、自分が公開設定で行われたトゥートは

1)自分と同じインスタンスの全ユーザー
2)自分をリモートフォローしているユーザー
3)2)のユーザーが属するインスタンスの全ユーザー

の連合タイムラインに表示されるということですね。個人的に1)2)だけだと勝手に思っていました。

WordPressの記事投稿をMastodonに反映してみる


ブログに記事を投稿するとTwitterに更新通知をツイートするというのをMastodonでもやりたくて、いろいろ情報を探したところ、以下の記事がヒット。

MastodonとWordPressをとりあえず連携してみる (LINKBAL Engineer’s Blog)

ソースコードがGitHubに公開されているので、記事に書かれている通りに設定して、更新通知をMastodonにトゥートできました。

ただ、5/5現在のソースコードでは「新しい記事が公開されました!」という固定文言が更新されるようです。個人的には記事のタイトルが投稿されるとうれしいので、mastodon-for-wp.phpをちょっとだけ調整。 もともとこうなっていた記述を

$t->PostStatuses("新しい記事が公開されました!\n"
.get_permalink($post_id));

こうしてみました。

$t->PostStatuses(get_the_title($post_id)."\n"
.get_permalink($post_id));

タイトルを投稿しないようにしたのは何かの理由があるかもしれないので、ご利用は自己責任でお願いいたします。