feat(animetosho): swap backend to TsukiHime API (animetosho successor)

Animetosho stops updating May 2026; TsukiHime mirrors its index and
attachment storage. Internal identifiers, IPC channels, settings keys,
and the openAnimetosho shortcut keep the legacy name so user configs
stay valid; user-facing labels now say TsukiHime.

- API base https://api.tsukihime.org/v1 (/search/torrents, /torrents/{id})
- attachment type is numeric (1 = subtitle); sizes are no longer reported
- storage URLs split: native /attach/ vs /tosho/attach/ for imported
  entries (flagged animetosho: true or id >= 1e9)
- download redirect allowlist covers *.tsukihime.org and *.animetosho.org
  (the /tosho/ mirror currently 302s to storage.animetosho.org)
- search results now expose sublangs; modal shows them per release
This commit is contained in:
2026-07-13 00:27:00 -07:00
parent 0ab840b362
commit 30d6741d7c
17 changed files with 286 additions and 115 deletions
+1
View File
@@ -238,6 +238,7 @@ SubMiner builds on the work of these open-source projects:
| [jellyfin-mpv-shim](https://github.com/jellyfin/jellyfin-mpv-shim) | Jellyfin integration |
| [Jimaku.cc](https://jimaku.cc) | Japanese subtitle search and downloads |
| [Renji's Texthooker Page](https://github.com/Renji-XD/texthooker-ui) | Base for the WebSocket texthooker integration |
| [TsukiHime](https://tsukihime.org) | Release-track subtitle search and downloads (Animetosho successor) |
| [Yomitan](https://github.com/yomidevs/yomitan) | Dictionary engine powering all lookups and the morphological parser |
| [yomitan-jlpt-vocab](https://github.com/stephenmk/yomitan-jlpt-vocab) | JLPT level tags for vocabulary |