14:30:58
2024-11-30 14:06:44 Posting のえる noellabo@fedibird.com
icon

Mastodonの画像処理についてちょっと書いておきましょうか。

まず、Mastodonは、サーバのユーザーが投稿しようとしている画像、リモートからやってきた投稿などについてくるリモート画像を、添付ファイルの保存場所に保存します。

ファイルの取得がエラーになったり、ファイル種別と拡張子がウソだったり、サイズが大きすぎたり、未対応の形式だった場合、

投稿の場合はWebUIやクライアントにエラーを返し、

リモート画像の場合はURLだけ保存して、ファイル未取得の添付ファイルとしてデータベースに記録を保存します。

添付ファイルは通常、APIから取得した場合、様々なメタデータを取得できますが、未取得・エラーの場合はそれを提供できないので、ほとんどがデータなし、ファイル種別は不明になります。

リモートのURLだけは教えてくれるので、クライアントアプリの実装側で、これを直接参照して、うまくいけば画像表示することは可能です。

ただし、Mastodonが通常行う、不正なデータを拒否し、サイズを調整し、必要なら読める形式に画像変換するなど、安全に対する対策が効かなくなります。

そのために直接参照ではなく取得したデータを提供しているので、安直にリモートURLへフォールバックすることはお勧めしません。

14:31:32
icon

この利用できない添付ファイルを開こうとするとリダイレクトする挙動、ローカルのWeb UIで開くつもりがリモートのURLを踏むことになりがちで個人的に困るのだよな。ランダムなサーバに不用意に接続したくないので……(過敏)

20:08:48
icon

atproto-browser.vercel.app/at/
> Gift links or Gift Articles - paywall bypassing links to major publications.
こういうことをされるとパブリッシャーとしては困ったりしないのだろうか。
記事のギフト機能というのがどういう想定で運用されているのかよく知らないのであれだけど

20:26:28
2024-11-30 10:22:37 Posting GENKI nibushibu@vivaldi.net
icon

This account is not set to public on notestock.

20:27:22
icon

FeedBurner、フィードにXSLTを付けてそのままブラウザに表示させていた面白サイト(?)という印象がある

20:35:04
icon

YouTubeが中々しぶとくAtomフィードを提供し続けている(なんとPubSubHubbub/WebSubにも対応している)ので、Googleは一応まだ最大手のフィードのパブリッシャーの一つではあるのではとは思う

20:41:47
icon

まあHTMLページには`<link rel="alternate" type="application/rss+xml">`とあるのに中身がRSSでなくAtomだったり、Atomフィードからの`<link rel="hub">`がなかったり、というか通常のプル型のリクエストに使えるフィードのURLとWebSubのトピックとしてのURIが何故か異なったり、WebSubのトピックの`<link rel="self">`が正しくないURIを指していたりと、色々と相互運用性が怪しい部分が多いけど

20:44:13
icon

フィードの例:<youtube.com/feeds/videos.xml?c>(`<link rel="hub">`がない)
対応するWebSubトピック:<youtube.com/xml/feeds/videos.x>(`<link rel="self">`の方からは`channel_id`パラメータが欠けている、`<entry>`がないのでプルには使えない)
cf. <developers.google.com/youtube/>

Web site image
Subscribe to Push Notifications | YouTube Data API | Google for Developers
20:46:20
icon

> <!-- This is a static file. The corresponding feed (identified in the <link rel="self"/> tag) should be used as a topic on the pubsubhubbub.appspot.com hub to subscribe to video updates. -->
じゃあないんだよなあ。そもそもその`<link rel="self"/>`が間違っているわけで……

20:51:46
icon

これの何が嬉しくないかというと、WebSubの規格に従ってトピックURIを`rel="self"`に正規化する(<w3.org/TR/websub/#subscriber-s>)購読者側の実装が壊れる

20:56:27
icon

YouTubeのWebSub周りの仕様については実体験として苦しめられたので早口で語れる(?)

21:06:00
icon

まあ、変な実装でもそもそも何もないよりはマシではある……(embrace, extend, and extinguishの場合は除く……と言っても、そもそもPuSHを作ったのがGoogleなのだったっけ)。
PubSubHubbubなんて他に実装しているところもろくに見かけないしなあ。あってもBloggerとか、Amebaブログとかくらい……って、BloggerもGoogleたったか

21:17:11
icon

あとWordPress.comとかもWordPressのWebSubプラグインを有効にしているのだっけか。セルフホストのWordPressではあまり利用例を見かけないけど