161 lines
5.3 KiB
YAML
161 lines
5.3 KiB
YAML
---
|
|
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
|