昨日はすでに公開されているDockerイメージを使ってOPEN NSFW APIのようなものを作ってみました。
しかし、このイメージは2016年のものなので現在の最新状況にはそぐわない点がいくつか出ています。
- SSLの最新状況に追いついていない
- UserAgentが設定されていないため画像が取得できないケースがある
そこで、すこし改良をしてみます。もとのソースはこちらから。
github.com
まず、Dockerfileに手を入れます。Pythonのバージョンが古いため、SSL関係の最新状況に対応できていません。そこで、Ubuntuの最新版を取ってくるようにします。また、その際timezoneの選択をしないで済むように、以下のサイトを参考に改良します。
qiita.com
改造したものがこちら。
gist.github.com
一部取得するパッケージなどを入れ替えています。これはOPEN NSFWの最新版を取得した場合になぜかうまく動かなくなったのを修正したものです(元ネタは忘れました)。
次に、UserAgentですが、こちらはApp.pyに手を入れます。参考にしたサイトはこちらなど。
codeday.me
手を入れたバージョンはこちらになります。
gist.github.com
これをもとに、Dockerイメージをつくることで、現在公開しているAPI相当のものができるようになります。
https://socialapi.app/api/nsfw?image_url=https://s3.fedibird.com/media_attachments/files/000/544/209/original/74448fb23f63d78a.jpeg
ひとまずここまで。