この記事はMisskey Advent Calendar 2024 21日目の記事です
Media Proxy for Misskeyやsummalyをいろんな言語で再実装してみてる話です。駄文ですが許してください
もともとはAPIラッパーの話をしようと思ってたんですが、色々問題が起こりすぎて間に合いそうになかったので変えました
何で作ったのか#
特に理由はなかったりします ただ作ってみたかったからっていうのが理由です (ちなみにsummaly-pyは初期はsummergoを無理矢理Pythonで動かすだけのお遊び的な実装でした)
ちなみにsummalyとMedia Proxyだとsummalyの方が実装が面倒でした
media-proxy-goはGoの勉強のために作ってみました (微妙なので使うのはおすすめしません)
発生した問題など#
summaly-py#
最初から殆ど問題はなかったかもしれません 強いて言えばcontent_length_limitがNone (null)な場合にエラーが返ってくるくらいです
media-proxy#
media-proxyは初期に使ってたライブラリのPillowだと大きな画像を処理できずにエラーを返してくる問題がありました。 (#1)
結局本家で使われているSharpと同じlibvipsを使うpyvipsを使うようにしたら解決して少し早くなったような気がします。
GIFがおかしくなる問題は結局GIFはそのまま返すようにして無理矢理解決しました。
media-proxy-go#
多すぎて覚えてない 横長の画像をリサイズすると押し潰される
作ってみた感想#
- summaly-pyは使ったことのないXPathを書いていて少しだけ大変だった
- media-proxyは最初は大きいメディアを処理できなかったり問題が多かった (改善済み)
- GIFは未だにバグるので処理できない
- media-proxy-goはWindowsでは使えない
ゴミみたいな感想ですね
最後に#
記事を書いてたら足の力がだんだん入らなくなってきました。助けてください
記事を書くのって大変ですね