b-shock. Fortress

mulukhiya-toot-proxy 1.2

しばらく間が空いたが、気にせず進行する流れw
一応、月ごとのアーカイブを途切れさせたくないとは思ってる。

書きたいネタはそれなりにあるのだけどね。
需要があるかはあんまり気にしてない。このブログの継続的な読者は多分いないのはわかってて、 たまたま同じことで困ってる人の問題解決を手伝えればよいという程度のもの。

本題。
拙作ツール mulukhiya-toot-proxyには ちょくちょく修正を加えており、先日1.2系という新バージョンをリリースした。

新バージョン事実上唯一の機能は、Mastodonでのトゥートにamazonの商品URLが含まれていた場合に、 商品画像を添付すること。
よって、Amazon Product APIへの対応を行う必要がある。

Amazon Product API

主にこちらを参考にした。

[Ruby] Amazon Product APIで商品検索してみた

特にトークンの取得等の手順が簡潔に説明されており、大いに助かった。感謝。

但し、今回必要なのは、事前にわかってるASINから商品画像のURLを引く機能。 記事の通りではなく若干アレンジが必要。

以下、要点のみ抜粋。

例外捕捉をしているのは、amazon側が割と頻繁に503を返すから。

この問題への対応は、単純にやり直すだけで問題なしと思ってる。 但し、このまんまじゃ無限ループになりかねないからw、回数の上限等を設ける必要は当然ある。
参考にしてる人がもしいたらw、各自対応よろしくです。

マルチパートなアップロード

Mastodonに画像をアップする際、マルチパート対応なHTTPクライアントが必要。 RubyではHTTPartyを好んで使ってましたが。 ひょっとして対応してないんじゃないですか?(調べが足りないだけかも)
HTTMultiPartyなるラッパーもあったが、最近メンテナンスされてないようだ。 普通に動きそうではあったけど、試してない。
メンテナンスされてないことを承知で使いたいひとはググってください。簡単に見つかるから。

結局、該当部分だけREST Clientなる クライアントで実装しました。
要点抜粋するとこんな感じ。

HTTPartyとREST Clientを意味もなく使い分けるのもアレだし、HTTPartyで実装された箇所をあとで REST Clientで書き直すかも。

以上、モロヘイヤにはこんな技術(というほど大層ではない)が使われているのでございます。