Torrents/Prowlarr/config/Definitions/torrentcontrol.yml
2026-02-02 13:54:24 -06:00

127 lines
3.1 KiB
YAML

---
id: torrentcontrol
name: TorrentControl (API)
description: "TorrentControl (API) is a Public Torrent Tracker for MOVIES / TV / ANIME"
language: en-US
type: public
encoding: UTF-8
requestDelay: 2
links:
- https://torrentcontrol.pw/
caps:
categorymappings:
- {id: movie, cat: Movies, desc: Movies, default: true}
- {id: series, cat: TV, desc: Series, default: true}
- {id: anime, cat: TV/Anime, desc: Anime, default: true}
modes:
search: [q]
movie-search: [q]
tv-search: [q, season, ep]
settings: []
search:
# docs: https://torrentcontrol.pw/en/api-docs
paths:
# since per_page is only 20 we needs to query all 3 cats separately to ensure we get hits for keywordless
- path: "api/v1/torrents?type=movie&search={{ .Keywords }}"
response:
type: json
categories: [movie]
- path: "api/v1/torrents?type=series&search={{ .Keywords }}"
response:
type: json
categories: [series]
- path: "api/v1/torrents?type=anime&search={{ .Keywords }}"
response:
type: json
categories: [anime]
rows:
selector: data
fields:
category:
selector: type
_id:
selector: content_id
details:
text: "contents/{{ .Result._id }}"
_language:
selector: language
case:
fr: French
es: Spanish
it: Italian
latino: Latino
ru: Russian
"*": ""
title_default:
selector: title
title_file_name:
selector: file_name
optional: true
title_magnet:
selector: magnet_uri:contains(&dn=)
optional: true
filters:
- name: htmldecode
- name: querystring
args: dn
title:
text: "{{ if or .Result.title_file_name .Result.title_magnet }}{{ or .Result.title_file_name .Result.title_magnet }}{{ else }}{{ .Result.title_default }}{{ end }}"
filters:
- name: append
args: "{{ if .Result._language }} {{ .Result._language }}{{ else }}{{ end }}"
magnet:
selector: magnet_uri
filters:
- name: htmldecode
poster:
selector: poster_url
imdbid:
selector: imdb_id
tmdbid:
selector: tmdb_id
seeders_zero:
selector: seeders
seeders:
selector: seeders
filters:
- name: append
args: "{{ if eq .Result.seeders_zero \"0\" }}1{{ else }}{{ end }}"
leechers_zero:
selector: leechers
leechers:
selector: leechers
filters:
- name: append
args: "{{ if eq .Result.leechers_zero \"0\" }}1{{ else }}{{ end }}"
date:
# 2025-10-12T21:59:04.000000Z
selector: created_at
size_default:
selector: type
case:
movie: 9GB
series: 2GB
size_in_mb:
selector: size_in_mb
optional: true
size:
text: "{{ if .Result.size_in_mb }}{{ .Result.size_in_mb }}MB{{ else }}{{ .Result.size_default }}{{ end }}"
description:
selector: provider
filters:
- name: prepend
args: "provider: "
downloadvolumefactor:
text: 0
uploadvolumefactor:
text: 1
# json api v1