Files
arr_suite/prowlarr/config/Definitions/animetosho-xyz.yml
T

161 lines
5.3 KiB
YAML
Raw Normal View History

2026-06-18 02:51:20 +00:00
---
id: animetosho-xyz
name: Anime Tosho
description: "Anime Tosho is a Semi-Private Torrent Tracker for ANIME"
language: en-US
type: semi-private
encoding: UTF-8
links:
- https://animetosho.xyz/
caps:
categorymappings:
- {id: Anime, cat: TV/Anime, desc: "Anime"}
# all results are currently returned as both 5070 & 2020
# # from https://animetosho.xyz/api/torznab?apikey=YOUR-API-KEY&t=caps
# - {id: 5070, cat: TV/Anime, desc: "Anime (TV)"}
# - {id: 2020, cat: Movies/Other, desc: "Anime (Movies)"}
modes:
search: [q]
tv-search: [q, season, ep]
movie-search: [q]
settings:
- name: apikey
type: text
label: API Key
- name: info_key
type: info
label: About your API key
default: "You can find or generate a new API Key by accessing the <a href=\"https://animetosho.xyz/profile\" target=\"_blank\">Anime Tosho profile</a> page."
- name: sonarr_compatibility
type: checkbox
label: Improve Sonarr compatibility by trying to add Season information into Release Titles
default: false
- name: strip_s01
type: checkbox
label: Remove first season keywords (S1/S01/Season 1), as some results do not include this for first/single season releases
default: false
- name: radarr_compatibility
type: checkbox
label: Improve Radarr compatibility by removing year information from keywords and adding it to Release Titles
default: false
login:
# returns "401 Unauthorized, check your credentials" if apikey is invalid
path: api/torznab
method: get
inputs:
apikey: "{{ .Config.apikey }}"
t: search
limit: 1
search:
paths:
- path: api/torznab
response:
type: xml
inputs:
apikey: "{{ .Config.apikey }}"
t: "{{ .Query.Type }}"
q: "{{ .Keywords }}"
# all results are currently returned as both 5070 & 2020
# cat: "{{ join .Categories \",\" }}"
season: "{{ .Query.Season }}"
ep: "{{ .Query.Ep }}"
limit: 100
keywordsfilters:
- name: re_replace
args: [" *\\b((?:19|20)\\d{2})\\b", "{{ if .Config.radarr_compatibility }}{{ else }} $1{{ end }}"]
- name: re_replace
args: ["(?i) *\\b(S(?:0|eason *)?1)\\b", "{{ if .Config.strip_s01 }}{{ else }} $1{{ end }}"]
rows:
selector: rss > channel > item
fields:
category:
text: Anime
title_keyword_year:
text: "{{ .Query.Keywords }}"
filters:
- name: regexp
args: "\\b((19|20)\\d{2})\\b"
title_default:
selector: title
filters:
- name: re_replace
args: ["^(\\[.+?\\] ?)?(\\[.+?\\] ?)?(.+?)(\\[)", "$1$2$3{{ if and (.Config.radarr_compatibility) (.Result.title_keyword_year) }} {{ .Result.title_keyword_year }} $4{{ else }}$4{{ end }}"]
title_has_season:
text: "{{ .Result.title_default }}"
filters:
- name: regexp
args: "(?i)(S\\d{1,3}([Ev]\\d+)?)"
- name: append
args: "NULL"
title_has_episode:
text: "{{ .Result.title_default }}"
filters:
- name: regexp
args: "\\b(.+? - ?)(\\d+([-v]\\d+)?) ([\\[\\(])\\b"
- name: append
args: "NULL"
title_has_movie_ova:
text: "{{ .Result.title_default }}"
filters:
- name: regexp
args: "(?i)(?<![A-Za-z0-9])(Movies?|OVA|OAV)(?![A-Za-z0-9])"
- name: re_replace
args: ["(?i)(Movies?|OVA|OAV)", "YES"]
title_optional:
text: "{{ .Result.title_default }}"
filters:
- name: re_replace
args: ["^(\\[.+?].+?)\\s*(?<![\\]\\)])((?:\\[|\\(| - ).+)", "{{ if and (ne .Result.title_has_movie_ova \"YES\") (and (eq .Result.title_has_season \"NULL\") (eq .Result.title_has_episode \"NULL\")) }}$1 S01 $2{{ else }}$1 $2{{ end }}"]
title_live_action:
text: "{{ .Result.title_optional }}"
filters:
# Insert S01 after year for Live Action titles without season/episode info
# e.g. Hotel.del.Luna.2019.1080p... -> Hotel.del.Luna.2019.S01.1080p...
- name: re_replace
args: ["^(.+?)([\\. ])((?:19|20)\\d{2})([\\. ])(.+)$", "{{ if and (eq .Result.title_has_season \"NULL\") (eq .Result.title_has_episode \"NULL\") }}$1$2$3$4S01$4$5{{ else }}$1$2$3$4$5{{ end }}"]
# Insert S01 before resolution for Live Action titles without year or season info
# e.g. Hotel Del Luna 720p HDTV... -> Hotel Del Luna S01 720p HDTV...
- name: re_replace
args: ["^(?!.*(?:19|20)\\d{2})(.+?)([\\. ])((?:480|720|1080|2160)[pi])(.*)$", "{{ if and (eq .Result.title_has_season \"NULL\") (eq .Result.title_has_episode \"NULL\") }}$1$2S01$2$3$4{{ else }}$1$2$3$4{{ end }}"]
title:
text: "{{ if .Config.sonarr_compatibility }}{{ .Result.title_live_action }}{{ else }}{{ .Result.title_default }}{{ end }}"
details:
selector: link
download:
selector: enclosure
attribute: url
infohash:
selector: "[name=infohash]"
attribute: value
date:
# Sun, 18 Jan 2026 04:05:41 +0000
selector: pubDate
filters:
- name: dateparse
args: "ddd, dd MMM yyyy HH:mm:ss zzz"
size:
selector: "[name=size]"
attribute: value
seeders:
selector: "[name=seeders]"
attribute: value
leechers:
selector: "[name=leechers]"
attribute: value
downloadvolumefactor:
text: 0
uploadvolumefactor:
text: 1
description:
selector: title
# torznab xml