1
0
mirror of https://github.com/Prowlarr/Indexers.git synced 2026-02-15 07:25:47 +00:00
This commit is contained in:
Qstick
2022-08-18 22:24:33 -05:00
parent e2d2cfecde
commit 7b436f0ce0
506 changed files with 9 additions and 2878 deletions

View File

@@ -34,12 +34,6 @@ To test the definition:
## Active Versions
- [V4 Indexers](https://github.com/Prowlarr/Prowlarr/pull/828) - Dev 0.2.0.1678
- Prowlarr Cardigann v4 includes several changes such as
- TMDBId
- Genre
- TraktID
- CategoryDescr
- [V5 Indexers](https://github.com/Prowlarr/Prowlarr/commit/76afb70b01f4a670d8e402d9a3de05c09611b7ab) - Dev 0.2.0.1678
- Prowlarr Cardigann v5 includes several changes such as
- Allow JSON Filters
@@ -78,3 +72,10 @@ To test the definition:
- Makes `Description` an optional by default
- All new Indexers using APIs shall be in v3 as of 2021-10-21
- Indexers utilizing CategoryDescr or any v4 features MUST be in v4
### [V4 Indexers](https://github.com/Prowlarr/Prowlarr/pull/828) - Dev 0.2.0.1678
- Prowlarr Cardigann v4 includes several changes such as
- TMDBId
- Genre
- TraktID
- CategoryDescr

View File

@@ -1,153 +0,0 @@
---
id: aither-api
name: Aither (API)
description: "Aither is a Private Torrent Tracker for HD MOVIES / TV"
language: en-US
type: private
encoding: UTF-8
links:
- https://aither.cc/
caps:
categorymappings:
- {id: 1, cat: Movies, desc: "Movie"}
- {id: 9, cat: TV/Sport, desc: "Sport"}
- {id: 2, cat: TV, desc: "TV"}
- {id: 3, cat: Audio, desc: "Music"}
- {id: 4, cat: Console, desc: "Games"}
- {id: 10, cat: PC, desc: "Software & Apps"}
- {id: 11, cat: Books, desc: "Ebooks & Magazines"}
- {id: 14, cat: Audio/Audiobook, desc: "Audiobooks"}
- {id: 15, cat: Other, desc: "Education"}
- {id: 6, cat: XXX, desc: "XXX"}
modes:
search: [q]
tv-search: [q, season, ep, imdbid, tvdbid]
movie-search: [q, imdbid, tmdbid]
music-search: [q]
book-search: [q]
settings:
- name: apikey
type: text
label: APIKey
- name: info_key
type: info
label: About your API key
default: "Find or Generate a new API Token by accessing your <a href=\"https://aither.cc/\" target =_blank>Aither</a> account <i>My Security</i> page and clicking on the <b>API Token</b> tab."
- name: freeleech
type: checkbox
label: Search freeleech only
default: false
- name: sort
type: select
label: Sort requested from site
default: created_at
options:
created_at: created
seeders: seeders
size: size
name: title
- name: type
type: select
label: Order requested from site
default: desc
options:
desc: desc
asc: asc
login:
path: /api/torrents
method: get
inputs:
api_token: "{{ .Config.apikey }}"
error:
- selector: a[href*="/login"]
message:
text: "The API key was not accepted by {{ .Config.sitelink }}."
search:
paths:
# https://hdinnovations.github.io/UNIT3D-Community-Edition-Docs/api_endpoints.html
# https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php
- path: "/api/torrents/filter"
response:
type: json
attribute: attributes
inputs:
# if we have an id based search, add Season and Episode as query in name for UNIT3D < v6. Else pass S/E Params for UNIT3D >= v6
api_token: "{{ .Config.apikey }}"
name: "{{ .Keywords }}"
$raw: "{{ if .Query.Season }}&seasonNumber={{ .Query.Season }}{{ else }}{{ end }}{{ if .Query.Ep }}&episodeNumber={{ .Query.Ep }}{{ else }}{{ end }}{{ if .Query.TMDBID }}&tmdbId={{ .Query.TMDBID }}{{ else }}{{ end }}{{ if .Query.IMDBIDShort }}&imdbId={{ .Query.IMDBIDShort }}{{ else }}{{ end }}{{ if .Query.TVDBID }}&tvdbId={{ .Query.TVDBID }}{{ else }}{{ end }}{{ range .Categories }}&categories[]={{.}}{{end}}{{ if .Config.freeleech }}&free=1{{ else }}{{ end }}"
sortField: "{{ .Config.sort }}"
sortDirection: "{{ .Config.type }}"
perPage: 100
page: 1
keywordsfilters:
- name: re_replace
args: ["\\.", " "]
rows:
selector: data
count:
selector: meta.total
fields:
categorydesc:
selector: category
title:
selector: name
details:
selector: details_link
download:
selector: download_link
poster:
selector: poster
filters:
- name: replace
args: ["https://via.placeholder.com/90x135", ""]
imdbid:
selector: imdb_id
tmdbid:
selector: tmdb_id
tvdbid:
selector: tvdb_id
files:
selector: num_file
seeders:
selector: seeders
leechers:
selector: leechers
grabs:
selector: times_completed
date:
# 2021-10-18T00:34:50.000000Z"
selector: created_at
size:
selector: size
downloadvolumefactor:
# api returns 0%, 25%, 50%, 75%, 100%
selector: freeleech
case:
0%: 1 # not free
25%: 0.75
50%: 0.5
75%: 0.25
100%: 0 # freeleech
"*": 0 # catch errors
uploadvolumefactor:
# api returns 0=false, 1=true
selector: double_upload
case:
0: 1 # normal
1: 2 # double
# global MR is 0.4 but torrents must be seeded for 5 days regardless of ratio
# minimumratio:
# text: 0.4
minimumseedtime:
# 5 days (as seconds = 3 x 24 x 60 x 60)
text: 432000
# json UNIT3D 6.2.1

View File

@@ -1,85 +0,0 @@
---
id: anilibria
name: AniLibria
description: "AniLibria is a Public torrent tracker for anime, voiced on russian by AniLibria team"
language: ru-RU
type: public
encoding: UTF-8
links:
- https://www.anilibria.tv/
caps:
categorymappings:
- {id: 1, cat: TV/Anime, desc: Anime}
modes:
search: [q]
tv-search: [q, season, ep]
settings: []
search:
paths:
# https://github.com/anilibria/docs/blob/master/api_v2.md
- path: "https://api.anilibria.tv/v2/{{ if .Keywords }}searchTitles?filter=names,poster.url,code,torrents.list,season.year&limit=100&search={{ .Keywords }}{{ else }}getUpdates?filter=names,poster.url,code,torrents.list,season.year&limit=100{{ end }}"
response:
type: json
attribute: torrents.list
multiple: true
keywordsfilters:
# strip season and ep
- name: re_replace
args: ["(?i)(?:[SE]?\\d{1,4}){1,2}$", ""]
rows:
selector: $
fields:
category:
text: 1
title_ru:
selector: ..names.ru
title_en:
selector: ..names.en
title_alternative:
selector: ..names.alternative
optional: true
_year:
selector: ..season.year
_quality:
selector: quality.string
_series:
selector: series.string
title:
text: "{{ .Result.title_ru }} / {{ .Result.title_en }}{{ if .Result.title_alternative }} / {{ .Result.title_alternative }}{{ else }}{{ end }} [{{ .Result._quality }}] - {{ .Result._series }}"
_code:
selector: ..code
details:
text: "{{ .Config.sitelink }}release/{{ .Result._code }}.html"
download:
selector: url
filters:
- name: prepend
args: "{{ .Config.sitelink }}"
poster:
selector: ..poster.url
filters:
- name: prepend
args: "https://static.anilibria.tv/"
seeders:
selector: seeders
leechers:
selector: leechers
grabs:
selector: downloads
date:
# unix
selector: uploaded_timestamp
size:
selector: total_size
downloadvolumefactor:
text: 0
uploadvolumefactor:
text: 1
# json api v2

View File

@@ -1,151 +0,0 @@
---
id: animeworld-api
name: AnimeWorld (API)
description: "AnimeWorld (AW) is a GERMAN Private site for ANIME / MANGA / HENTAI"
language: de-DE
type: private
encoding: UTF-8
links:
- https://animeworld.cx/
caps:
categorymappings:
- {id: 1, cat: Movies/Other, desc: "Anime Filme"}
- {id: 2, cat: TV/Anime, desc: "Anime Serien"}
- {id: 3, cat: Audio, desc: "Anime Musik / OSTs"}
- {id: 4, cat: PC/Games, desc: "Anime Spiele"}
- {id: 5, cat: XXX, desc: "Anime Hentai"}
- {id: 6, cat: PC, desc: "Software"}
- {id: 7, cat: Other, desc: "Sonstiges"}
- {id: 8, cat: Movies, desc: "Filme"}
- {id: 9, cat: TV, desc: "Serien"}
- {id: 10, cat: PC/Games, desc: "Spiele"}
- {id: 11, cat: Audio, desc: "Musik"}
- {id: 12, cat: Books, desc: "Manga"}
- {id: 13, cat: Movies, desc: "Cartoon Filme"}
- {id: 14, cat: TV, desc: "Cartoon Serie"}
- {id: 15, cat: XXX, desc: "H-Manga / Doujinshi"}
modes:
search: [q]
tv-search: [q, season, ep, imdbid, tvdbid]
movie-search: [q, imdbid, tmdbid]
music-search: [q]
book-search: [q]
settings:
- name: apikey
type: text
label: APIKey
- name: info_key
type: info
label: About your API key
default: "Find or Generate a new API Token by accessing your <a href=\"https://animeworld.cx/\" target =_blank>AnimeWorld</a> account <i>My Security</i> page and clicking on the <b>API Token</b> tab."
- name: freeleech
type: checkbox
label: Search freeleech only
default: false
- name: sort
type: select
label: Sort requested from site
default: created_at
options:
created_at: created
seeders: seeders
size: size
name: title
- name: type
type: select
label: Order requested from site
default: desc
options:
desc: desc
asc: asc
login:
path: /api/torrents
method: get
inputs:
api_token: "{{ .Config.apikey }}"
error:
- selector: a[href*="/login"]
message:
text: "The API key was not accepted by {{ .Config.sitelink }}."
search:
paths:
# https://hdinnovations.github.io/UNIT3D-Community-Edition-Docs/api_endpoints.html
# https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php
- path: "/api/torrents/filter"
response:
type: json
attribute: attributes
inputs:
# if we have an id based search, add Season and Episode as query in name for UNIT3D < v6. Else pass S/E Params for UNIT3D >= v6
api_token: "{{ .Config.apikey }}"
name: "{{ .Keywords }}"
$raw: "{{ if .Query.Season }}&seasonNumber={{ .Query.Season }}{{ else }}{{ end }}{{ if .Query.Ep }}&episodeNumber={{ .Query.Ep }}{{ else }}{{ end }}{{ if .Query.TMDBID }}&tmdbId={{ .Query.TMDBID }}{{ else }}{{ end }}{{ if .Query.IMDBIDShort }}&imdbId={{ .Query.IMDBIDShort }}{{ else }}{{ end }}{{ if .Query.TVDBID }}&tvdbId={{ .Query.TVDBID }}{{ else }}{{ end }}{{ range .Categories }}&categories[]={{.}}{{end}}{{ if .Config.freeleech }}&free=1{{ else }}{{ end }}"
sortField: "{{ .Config.sort }}"
sortDirection: "{{ .Config.type }}"
perPage: 100
page: 1
rows:
selector: data
count:
selector: meta.total
fields:
categorydesc:
selector: category
title:
selector: name
details:
selector: details_link
download:
selector: download_link
poster:
selector: poster
filters:
- name: replace
args: ["https://via.placeholder.com/90x135", ""]
imdbid:
selector: imdb_id
tmdbid:
selector: tmdb_id
tvdbid:
selector: tvdb_id
files:
selector: num_file
seeders:
selector: seeders
leechers:
selector: leechers
grabs:
selector: times_completed
date:
# 2021-10-18T00:34:50.000000Z"
selector: created_at
size:
selector: size
downloadvolumefactor:
# api returns 0%, 25%, 50%, 75%, 100%
selector: freeleech
case:
0%: 1 # not free
25%: 0.75
50%: 0.5
75%: 0.25
100%: 0 # freeleech
"*": 0 # catch errors
uploadvolumefactor:
# api returns 0=false, 1=true
selector: double_upload
case:
0: 1 # normal
1: 2 # double
minimumseedtime:
# 7 day (as seconds = 7 x 24 x 60 x 60)
text: 604800
# json UNIT3D 6.0.0

View File

@@ -1,147 +0,0 @@
---
id: blutopia-api
name: Blutopia (API)
description: "Blutopia (BLU) is a Private Torrent Tracker for HD MOVIES / TV"
language: en-US
type: private
encoding: UTF-8
links:
- https://blutopia.xyz/
caps:
categorymappings:
- {id: 1, cat: Movies, desc: "Movie"}
- {id: 2, cat: TV, desc: "TV Show"}
- {id: 3, cat: Movies/Other, desc: "FANRES"}
- {id: 5, cat: Movies/Other, desc: "Trailer"}
modes:
search: [q]
tv-search: [q, season, ep, imdbid, tvdbid]
movie-search: [q, imdbid, tmdbid]
settings:
- name: apikey
type: text
label: APIKey
- name: info_key
type: info
label: About your API key
default: "Find or Generate a new API Token by accessing your <a href=\"https://blutopia.xyz/\" target =_blank>Blutopia</a> account <i>My Security</i> page and clicking on the <b>API Token</b> tab."
- name: freeleech
type: checkbox
label: Search freeleech only
default: false
- name: sort
type: select
label: Sort requested from site
default: created_at
options:
created_at: created
seeders: seeders
size: size
name: title
- name: type
type: select
label: Order requested from site
default: desc
options:
desc: desc
asc: asc
login:
path: /api/torrents
method: get
inputs:
api_token: "{{ .Config.apikey }}"
error:
- selector: a[href*="/login"]
message:
text: "The API key was not accepted by {{ .Config.sitelink }}."
search:
paths:
# https://hdinnovations.github.io/UNIT3D-Community-Edition-Docs/api_endpoints.html
# https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php
- path: "/api/torrents/filter"
response:
type: json
inputs:
# if we have an id based search, add Season and Episode as query in name for UNIT3D < v6. Else pass S/E Params for UNIT3D >= v6
api_token: "{{ .Config.apikey }}"
name: "{{ .Keywords }}"
$raw: "{{ if .Query.Season }}&seasonNumber={{ .Query.Season }}{{ else }}{{ end }}{{ if .Query.Ep }}&episodeNumber={{ .Query.Ep }}{{ else }}{{ end }}{{ if .Query.TMDBID }}&tmdbId={{ .Query.TMDBID }}{{ else }}{{ end }}{{ if .Query.IMDBIDShort }}&imdbId={{ .Query.IMDBIDShort }}{{ else }}{{ end }}{{ if .Query.TVDBID }}&tvdbId={{ .Query.TVDBID }}{{ else }}{{ end }}{{ range .Categories }}&categories[]={{.}}{{end}}{{ if .Config.freeleech }}&free=1{{ else }}{{ end }}"
sortField: "{{ .Config.sort }}"
sortDirection: "{{ .Config.type }}"
perPage: 100
page: 1
keywordsfilters:
- name: re_replace
args: ["\\.", " "]
rows:
selector: data
attribute: attributes
count:
selector: meta.total
fields:
category:
selector: category_id
title:
selector: name
details:
selector: details_link
download:
selector: download_link
infohash:
selector: info_hash
poster:
selector: meta.poster
filters:
- name: replace
args: ["https://via.placeholder.com/90x135", ""]
imdbid:
selector: imdb_id
tmdbid:
selector: tmdb_id
tvdbid:
selector: tvdb_id
files:
selector: num_file
seeders:
selector: seeders
leechers:
selector: leechers
grabs:
selector: times_completed
date:
# 2021-10-18T00:34:50.000000Z"
selector: created_at
size:
selector: size
downloadvolumefactor:
# api returns 0%, 25%, 50%, 75%, 100%
selector: freeleech
case:
0%: 1 # not free
25%: 0.75
50%: 0.5
75%: 0.25
100%: 0 # freeleech
"*": 0 # catch errors
uploadvolumefactor:
# api returns 0=false, 1=true
selector: double_upload
case:
0: 1 # normal
1: 2 # double
# global MR is 0.4 but torrents must be seeded for 7 days regardless of ratio
# minimumratio:
# text: 0.4
minimumseedtime:
# 7 day (as seconds = 7 x 24 x 60 x 60)
text: 604800
# json UNIT3D 6.4.0b

View File

@@ -1,133 +0,0 @@
---
id: brsociety-api
name: BrSociety (API)
description: "BrSociety (SemeandoCC) is a BRAZILIAN Private Torrent Tracker for E-LEARNING"
language: pt-BR
type: private
encoding: UTF-8
links:
- https://brsociety.club/
caps:
categorymappings:
- {id: 1, cat: TV, desc: "Cursos"}
- {id: 2, cat: Books/EBook, desc: "eBooks"}
- {id: 5, cat: Books/Mags, desc: "Revistas"}
- {id: 3, cat: Audio/Audiobook, desc: "Audiobooks"}
- {id: 4, cat: Other, desc: "Arquivos de Auxilio"}
- {id: 6, cat: Other, desc: "Graduação"}
modes:
search: [q]
tv-search: [q]
book-search: [q]
settings:
- name: apikey
type: text
label: APIKey
- name: info_key
type: info
label: About your API key
default: "Find or Generate a new API Token by accessing your <a href=\"https://brsociety.club/\" target =_blank>BrSociety</a> account <i>My Security</i> page and clicking on the <b>API Token</b> tab."
- name: freeleech
type: checkbox
label: Search freeleech only
default: false
- name: sort
type: select
label: Sort requested from site
default: created_at
options:
created_at: created
seeders: seeders
size: size
name: title
- name: type
type: select
label: Order requested from site
default: desc
options:
desc: desc
asc: asc
login:
path: /api/torrents
method: get
inputs:
api_token: "{{ .Config.apikey }}"
error:
- selector: a[href*="/login"]
message:
text: "The API key was not accepted by {{ .Config.sitelink }}."
search:
paths:
# https://hdinnovations.github.io/UNIT3D-Community-Edition-Docs/api_endpoints.html
# https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php
- path: "/api/torrents/filter?api_token={{ .Config.apikey }}&name={{ if .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}{{ if .Query.TMDBID }}&tmdbId={{ .Query.TMDBID }}{{ else }}{{ end }}{{ if .Query.IMDBIDShort }}&imdbId={{ .Query.IMDBIDShort }}{{ else }}{{ end }}{{ if .Query.TVDBID }}&tvdbId={{ .Query.TVDBID }}{{ else }}{{ end }}&sortField={{ .Config.sort }}&sortDirection={{ .Config.type }}&perPage=100&page=1{{ range .Categories }}&categories[]={{.}}{{end}}{{ if .Config.freeleech }}&free=1{{ else }}{{ end }}"
response:
type: json
attribute: attributes
rows:
selector: data
count:
selector: meta.total
fields:
categorydesc:
selector: category
title:
selector: name
details:
selector: details_link
download:
selector: download_link
size:
selector: size
magnet:
selector: magnet_link
optional: true
poster:
selector: poster
filters:
- name: replace
args: ["https://via.placeholder.com/90x135", ""]
- name: replace
args: ["https://via.placeholder.com/400x600", ""]
imdbid:
selector: imdb_id
tmdbid:
selector: tmdb_id
tvdbid:
selector: tvdb_id
files:
selector: num_file
seeders:
selector: seeders
leechers:
selector: leechers
grabs:
selector: times_completed
date:
# 2021-10-18T00:34:50.000000Z"
selector: created_at
downloadvolumefactor:
# api returns 0=false, 1=true
selector: freeleech
case:
0: 1 # not free
1: 0 # freeleech
uploadvolumefactor:
# api returns 0=false, 1=true
selector: double_upload
case:
0: 1 # normal
1: 2 # double
minimumratio:
text: 1.0
minimumseedtime:
# 5 days (as seconds = 5 x 24 x 60 x 60)
text: 432000
# json UNIT3D 5.3.0

View File

@@ -1,154 +0,0 @@
---
id: datascene-api
name: DataScene (API)
description: "DataScene (DS) is a ROMANIAN Private Torrent Tracker for MOVIES / TV / GENERAL"
language: en-US
type: private
encoding: UTF-8
links:
- https://datascene.xyz/
legacylinks:
- http://datascene.net/
- https://datascene.net/
caps:
categorymappings:
- {id: 1, cat: Movies, desc: "Movie"}
- {id: 2, cat: TV, desc: "TV"}
- {id: 3, cat: Audio, desc: "Music"}
- {id: 4, cat: PC/Games, desc: "Game"}
- {id: 5, cat: PC/0day, desc: "Application"}
- {id: 6, cat: XXX, desc: "XXX"}
- {id: 7, cat: PC/Mobile-Other, desc: "Mobile"}
- {id: 8, cat: Books/EBook, desc: "E-Book"}
modes:
search: [q]
tv-search: [q, season, ep, imdbid, tvdbid]
movie-search: [q, imdbid, tmdbid]
music-search: [q]
book-search: [q]
settings:
- name: apikey
type: text
label: APIKey
- name: info_key
type: info
label: About your API key
default: "Find or Generate a new API Token by accessing your <a href=\"https://datascene.xyz/\" target =_blank>DataScene</a> account <i>My Security</i> page and clicking on the <b>API Token</b> tab."
- name: freeleech
type: checkbox
label: Search freeleech only
default: false
- name: sort
type: select
label: Sort requested from site
default: created_at
options:
created_at: created
seeders: seeders
size: size
name: title
- name: type
type: select
label: Order requested from site
default: desc
options:
desc: desc
asc: asc
login:
path: /api/torrents
method: get
inputs:
api_token: "{{ .Config.apikey }}"
error:
- selector: a[href*="/login"]
message:
text: "The API key was not accepted by {{ .Config.sitelink }}."
search:
paths:
# https://hdinnovations.github.io/UNIT3D-Community-Edition-Docs/api_endpoints.html
# https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php
- path: "/api/torrents/filter"
response:
type: json
inputs:
# if we have an id based search, add Season and Episode as query in name for UNIT3D < v6. Else pass S/E Params for UNIT3D >= v6
api_token: "{{ .Config.apikey }}"
name: "{{ .Keywords }}"
$raw: "{{ if .Query.Season }}&seasonNumber={{ .Query.Season }}{{ else }}{{ end }}{{ if .Query.Ep }}&episodeNumber={{ .Query.Ep }}{{ else }}{{ end }}{{ if .Query.TMDBID }}&tmdbId={{ .Query.TMDBID }}{{ else }}{{ end }}{{ if .Query.IMDBIDShort }}&imdbId={{ .Query.IMDBIDShort }}{{ else }}{{ end }}{{ if .Query.TVDBID }}&tvdbId={{ .Query.TVDBID }}{{ else }}{{ end }}{{ range .Categories }}&categories[]={{.}}{{end}}{{ if .Config.freeleech }}&free=1{{ else }}{{ end }}"
sortField: "{{ .Config.sort }}"
sortDirection: "{{ .Config.type }}"
perPage: 100
page: 1
keywordsfilters:
- name: re_replace
args: ["\\.", " "]
rows:
selector: data
attribute: attributes
count:
selector: meta.total
fields:
category:
selector: category_id
title:
selector: name
details:
selector: details_link
download:
selector: download_link
poster:
selector: poster
filters:
- name: replace
args: ["https://via.placeholder.com/90x135", ""]
imdbid:
selector: imdb_id
tmdbid:
selector: tmdb_id
tvdbid:
selector: tvdb_id
files:
selector: num_file
seeders:
selector: seeders
leechers:
selector: leechers
grabs:
selector: times_completed
date:
# 2021-10-18T00:34:50.000000Z"
selector: created_at
size:
selector: size
downloadvolumefactor:
# api returns 0%, 25%, 50%, 75%, 100%
selector: freeleech
case:
0%: 1 # not free
25%: 0.75
50%: 0.5
75%: 0.25
100%: 0 # freeleech
"*": 0 # catch errors
uploadvolumefactor:
# api returns 0=false, 1=true
selector: double_upload
case:
0: 1 # normal
1: 2 # double
# global MR is 0.4 but torrents must be seeded for 7 days regardless of ratio
# minimumratio:
# text: 0.4
minimumseedtime:
# 2 days (as seconds = 2 x 24 x 60 x 60)
text: 172800
# json UNIT3D 6.3.0

View File

@@ -1,131 +0,0 @@
---
id: desitorrents-api
name: DesiTorrents (API)
description: "Desitorrents is a Private Torrent Tracker for BOLLYWOOD / TOLLYWOOD / MUSIC"
language: en-US
type: private
encoding: UTF-8
links:
- https://desitorrents.tv/
- https://desitorrents.rocks/
caps:
categorymappings:
- {id: 1, cat: Movies, desc: "Movies"}
- {id: 2, cat: TV, desc: "TV"}
- {id: 3, cat: Audio, desc: "Music"}
modes:
search: [q]
tv-search: [q, season, ep, imdbid, tvdbid]
movie-search: [q, imdbid, tmdbid]
music-search: [q]
settings:
- name: apikey
type: text
label: APIKey
- name: info_key
type: info
label: About your API key
default: "Find or Generate a new API Token by accessing your <a href=\"https://desitorrents.tv/\" target =_blank>DesiTorrents</a> account <i>My Security</i> page and clicking on the <b>API Token</b> tab."
- name: freeleech
type: checkbox
label: Search freeleech only
default: false
- name: sort
type: select
label: Sort requested from site
default: created_at
options:
created_at: created
seeders: seeders
size: size
name: title
- name: type
type: select
label: Order requested from site
default: desc
options:
desc: desc
asc: asc
login:
path: /api/torrents
method: get
inputs:
api_token: "{{ .Config.apikey }}"
error:
- selector: a[href*="/login"]
message:
text: "The API key was not accepted by {{ .Config.sitelink }}."
search:
paths:
# https://hdinnovations.github.io/UNIT3D-Community-Edition-Docs/api_endpoints.html
# https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php
- path: "/api/torrents/filter?api_token={{ .Config.apikey }}&name={{ if .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}{{ if .Query.TMDBID }}&tmdbId={{ .Query.TMDBID }}{{ else }}{{ end }}{{ if .Query.IMDBIDShort }}&imdbId={{ .Query.IMDBIDShort }}{{ else }}{{ end }}{{ if .Query.TVDBID }}&tvdbId={{ .Query.TVDBID }}{{ else }}{{ end }}&sortField={{ .Config.sort }}&sortDirection={{ .Config.type }}&perPage=100&page=1{{ range .Categories }}&categories[]={{.}}{{end}}{{ if .Config.freeleech }}&free=1{{ else }}{{ end }}"
response:
type: json
attribute: attributes
keywordsfilters:
- name: re_replace
args: [^$, "%"]
rows:
selector: data
count:
selector: meta.total
fields:
categorydesc:
selector: category
title:
selector: name
details:
selector: details_link
download:
selector: download_link
poster:
selector: poster
filters:
- name: replace
args: ["https://via.placeholder.com/90x135", ""]
imdbid:
selector: imdb_id
tmdbid:
selector: tmdb_id
tvdbid:
selector: tvdb_id
files:
selector: num_file
seeders:
selector: seeders
leechers:
selector: leechers
grabs:
selector: times_completed
date:
# 2021-10-18T00:34:50.000000Z"
selector: created_at
size:
selector: size
downloadvolumefactor:
# api returns 0=false, 1=true
selector: freeleech
case:
0: 1 # not free
1: 0 # freeleech
uploadvolumefactor:
# api returns 0=false, 1=true
selector: double_upload
case:
0: 1 # normal
1: 2 # double
minimumratio:
text: 1.0
minimumseedtime:
# 7 day (as seconds = 7 x 24 x 60 x 60)
text: 604800
# json UNIT3D 5.3.0 (custom)

View File

@@ -1,173 +0,0 @@
---
id: generationfree-api
name: Generation-Free (API)
description: "Generation-Free (GF-Free) is a FRENCH Private Torrent Tracker for MOVIES / TV / GENERAL"
language: fr-FR
type: private
encoding: UTF-8
links:
- https://generation-free.org/
legacylinks:
- https://generation-free.biz/
caps:
categorymappings:
- {id: 1, cat: Movies, desc: "Film"}
- {id: 2, cat: TV, desc: "Série"}
- {id: 3, cat: Audio, desc: "Musique"}
- {id: 4, cat: Console, desc: "Jeux"}
- {id: 5, cat: PC, desc: "Logiciel"}
- {id: 6, cat: Books, desc: "Ebook"}
modes:
search: [q]
tv-search: [q, season, ep, imdbid, tvdbid]
movie-search: [q, imdbid, tmdbid]
music-search: [q]
book-search: [q]
settings:
- name: apikey
type: text
label: APIKey
- name: info_key
type: info
label: About your API key
default: "Find or Generate a new API Token by accessing your <a href=\"https://generation-free.org/\" target =_blank>Generation-Free</a> account <i>My Security</i> page and clicking on the <b>API Token</b> tab."
- name: freeleech
type: checkbox
label: Search freeleech only
default: false
- name: vfq
type: checkbox
label: Replace VFQ with FRENCH in release name
default: false
- name: multilang
type: checkbox
label: Replace MULTI by another language in release name
default: false
- name: multilanguage
type: select
label: Replace MULTI by this language
default: VOSTFR
options:
FRENCH: FRENCH
"MULTI FRENCH": "MULTI FRENCH"
ENGLISH: ENGLISH
"MULTI ENGLISH": "MULTI ENGLISH"
VOSTFR: VOSTFR
"MULTI VOSTFR": "MULTI VOSTFR"
- name: sort
type: select
label: Sort requested from site
default: created_at
options:
created_at: created
seeders: seeders
size: size
name: title
- name: type
type: select
label: Order requested from site
default: desc
options:
desc: desc
asc: asc
login:
path: /api/torrents
method: get
inputs:
api_token: "{{ .Config.apikey }}"
error:
- selector: a[href*="/login"]
message:
text: "The API key was not accepted by {{ .Config.sitelink }}."
search:
paths:
# https://hdinnovations.github.io/UNIT3D-Community-Edition-Docs/api_endpoints.html
# https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php
- path: "/api/torrents/filter?api_token={{ .Config.apikey }}&name={{ if .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}{{ if .Query.TMDBID }}&tmdbId={{ .Query.TMDBID }}{{ else }}{{ end }}{{ if .Query.IMDBIDShort }}&imdbId={{ .Query.IMDBIDShort }}{{ else }}{{ end }}{{ if .Query.TVDBID }}&tvdbId={{ .Query.TVDBID }}{{ else }}{{ end }}&sortField={{ .Config.sort }}&sortDirection={{ .Config.type }}&perPage=100&page=1{{ range .Categories }}&categories[]={{.}}{{end}}{{ if .Config.freeleech }}&free=1{{ else }}{{ end }}"
response:
type: json
attribute: attributes
rows:
selector: data
count:
selector: meta.total
fields:
categorydesc:
selector: category
title_original:
selector: name
filters:
- name: replace
args: [".", " "]
title_vfq:
text: "{{ .Result.title_original }}"
filters:
- name: re_replace
args: ["(?i)(\\sVFQ\\s)", " FRENCH "]
title_step2:
text: "{{ if .Config.vfq }}{{ .Result.title_vfq }}{{ else }}{{ .Result.title_original }}{{ end }}"
title_multilang:
text: "{{ .Result.title_step2 }}"
filters:
- name: re_replace
args: ["(?i)(\\sMULTI\\s)", " {{ .Config.multilanguage }} "]
title:
text: "{{ if .Config.multilang }}{{ .Result.title_multilang }}{{ else }}{{ .Result.title_step2 }}{{ end }}"
details:
selector: details_link
download:
selector: download_link
magnet:
selector: magnet_link
optional: true
poster:
selector: poster
filters:
- name: replace
args: ["https://via.placeholder.com/90x135", ""]
imdbid:
selector: imdb_id
tmdbid:
selector: tmdb_id
tvdbid:
selector: tvdb_id
files:
selector: num_file
seeders:
selector: seeders
leechers:
selector: leechers
grabs:
selector: times_completed
date:
# 2021-10-18T00:34:50.000000Z"
selector: created_at
size:
selector: size
downloadvolumefactor:
# api returns 0%, 25%, 50%, 75%, 100%
selector: freeleech
case:
0%: 1 # not free
25%: 0.75
50%: 0.5
75%: 0.25
100%: 0 # freeleech
"*": 0 # catch errors
uploadvolumefactor:
# api returns 0=false, 1=true
selector: double_upload
case:
0: 1 # normal
1: 2 # double
minimumseedtime:
# 2 days (as seconds = 2 x 24 x 60 x 60)
text: 172800
# json UNIT3D 6.2.2

View File

@@ -1,124 +0,0 @@
---
id: hawke-uno
name: hawke-uno
description: "hawke-uno is a Private Torrent Tracker for (X265 / HEVC) MOVIES / TV"
language: en-US
type: private
encoding: UTF-8
links:
- https://www.hawke.uno/
caps:
categorymappings:
- {id: 1, cat: Movies, desc: "Movie"}
- {id: 2, cat: TV, desc: "TV"}
modes:
search: [q]
tv-search: [q, season, ep, imdbid, tvdbid]
movie-search: [q, imdbid, tmdbid]
settings:
- name: apikey
type: text
label: APIKey
- name: info_key
type: info
label: About your API key
default: "Find or Generate a new API Token by accessing your <a href=\"https://www.hawke.uno/\" target =_blank>hawke-uno</a> account <i>My Security</i> page and clicking on the <b>API Token</b> tab."
- name: freeleech
type: checkbox
label: Search freeleech only
default: false
- name: sort
type: select
label: Sort requested from site
default: created_at
options:
created_at: created
seeders: seeders
size: size
name: title
- name: type
type: select
label: Order requested from site
default: desc
options:
desc: desc
asc: asc
login:
path: /api/torrents
method: get
inputs:
api_token: "{{ .Config.apikey }}"
error:
- selector: a[href*="/login"]
message:
text: "The API key was not accepted by {{ .Config.sitelink }}."
search:
paths:
# https://hdinnovations.github.io/UNIT3D-Community-Edition-Docs/api_endpoints.html
# https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php
- path: "/api/torrents/filter?api_token={{ .Config.apikey }}&name={{ if .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}{{ if .Query.TMDBID }}&tmdbId={{ .Query.TMDBID }}{{ else }}{{ end }}{{ if .Query.IMDBIDShort }}&imdbId={{ .Query.IMDBIDShort }}{{ else }}{{ end }}{{ if .Query.TVDBID }}&tvdbId={{ .Query.TVDBID }}{{ else }}{{ end }}&sortField={{ .Config.sort }}&sortDirection={{ .Config.type }}&perPage=100&page=1{{ range .Categories }}&categories[]={{.}}{{end}}{{ if .Config.freeleech }}&free=1{{ else }}{{ end }}"
response:
type: json
attribute: attributes
rows:
selector: data
count:
selector: meta.total
fields:
categorydesc:
selector: category
title:
selector: name
details:
selector: details_link
download:
selector: download_link
poster:
selector: poster
filters:
- name: replace
args: ["https://via.placeholder.com/90x135", ""]
imdbid:
selector: imdb_id
tmdbid:
selector: tmdb_id
tvdbid:
selector: tvdb_id
files:
selector: num_file
seeders:
selector: seeders
leechers:
selector: leechers
grabs:
selector: times_completed
date:
# 2021-10-18T00:34:50.000000Z"
selector: created_at
size:
selector: size
downloadvolumefactor:
# api returns 0=false, 1=true
selector: freeleech
case:
0: 1 # not free
1: 0 # freeleech
uploadvolumefactor:
# api returns 0=false, 1=true
selector: double_upload
case:
0: 1 # normal
1: 2 # double
# minimumratio:
# text: 0.4
# minimumseedtime:
# 5 days (as seconds = 5 x 24 x 60 x 60)
# text: 432000
# json UNIT3D 5.3.0

View File

@@ -1,181 +0,0 @@
---
id: hdolimpo-api
name: HD-Olimpo (API)
description: "HD-Olimpo is a SPANISH site for HD content"
language: es-ES
type: private
encoding: UTF-8
links:
- https://hd-olimpo.club/
legacylinks:
- https://hdolimpo.co/
caps:
categorymappings:
- {id: 1, cat: Movies, desc: "Películas"}
- {id: 2, cat: TV, desc: "Series"}
- {id: 3, cat: Audio, desc: "Música"}
- {id: 4, cat: TV/Documentary, desc: "Documentales"}
modes:
search: [q]
tv-search: [q, season, ep, imdbid, tvdbid]
movie-search: [q, imdbid, tmdbid]
music-search: [q]
book-search: [q]
settings:
- name: apikey
type: text
label: APIKey
- name: info_key
type: info
label: About your API key
default: "Find or Generate a new API Token by accessing your account <i>My configuration / Mi configuración => Secutiy / Seguridad</i> page and clicking on the <b>API Token</b> tab."
- name: freeleech
type: checkbox
label: Search freeleech only
default: false
- name: sort
type: select
label: Sort requested from site
default: created_at
options:
created_at: created
seeders: seeders
size: size
name: title
- name: type
type: select
label: Order requested from site
default: desc
options:
desc: desc
asc: asc
login:
path: /api/torrents
method: get
inputs:
api_token: "{{ .Config.apikey }}"
error:
- selector: a[href*="/login"]
search:
paths:
# https://hdinnovations.github.io/UNIT3D-Community-Edition-Docs/api_endpoints.html
# https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php
- path: "/api/torrents/filter?api_token={{ .Config.apikey }}&name={{ if .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}{{ if .Query.TMDBID }}&tmdbId={{ .Query.TMDBID }}{{ else }}{{ end }}{{ if .Query.IMDBIDShort }}&imdbId={{ .Query.IMDBIDShort }}{{ else }}{{ end }}{{ if .Query.TVDBID }}&tvdbId={{ .Query.TVDBID }}{{ else }}{{ end }}&sortField={{ .Config.sort }}&sortDirection={{ .Config.type }}&perPage=100&page=1{{ range .Categories }}&categories[]={{.}}{{end}}{{ if .Config.freeleech }}&free=1{{ else }}{{ end }}"
response:
type: json
attribute: attributes
rows:
selector: data
count:
selector: meta.total
fields:
categorydesc:
selector: category
title:
selector: name
filters:
- name: re_replace
args: ["\\[", " "]
- name: re_replace
args: ["\\]", " "]
- name: re_replace
args: ["(?i)(full(bluray)?)", "BRDISK"] # FULL(BR/UHD) -> BRDISK
- name: replace
args: ["HDOlimpo", ""] # Delete HDOlimpo
- name: replace
args: ["HD-Olimpo", ""] # Delete HD-Olimpo
- name: replace
args: ["E-AC-3", "EAC3"]
- name: re_replace
args: ["[ -](?i)español[ -]", " SPANiSH "]
- name: re_replace
args: ["[ -](?i)castellano[ -]", " SPANiSH "]
- name: re_replace
args: ["[ -](?i)spa[ -]", " SPANiSH "]
- name: re_replace
args: ["[ -](?i)esp[ -]", " SPANiSH "]
- name: re_replace
args: [" ES ", " SPANiSH "]
- name: re_replace
args: ["[ -](?i)ingl[eé]s[ -]", " English "]
- name: re_replace
args: ["[ -](?i)[ei]ng[ -]", " English "]
- name: re_replace
args: ["[ -](?i)cat[ -]", " Catalan "]
- name: re_replace
args: ["[ -](?i)vas[ -]", " Basque "]
- name: re_replace
args: ["[ -](?i)fr[ae][ -]", " French "]
- name: re_replace
args: ["[ -](?i)jap[ -]", " Japanese "]
- name: re_replace
args: ["[ -](?i)ita[ -]", " Italian "]
- name: re_replace
args: ["[ -](?i)rus[ -]", " Russian "]
- name: re_replace
args: ["[ -](?i)ger[ -]", " German "]
- name: re_replace
args: ["(?i)(triaudio)", "MULTi SPANiSH English"]
- name: re_replace
args: ["(?i)(dual)", " MULTi SPANiSH "]
- name: re_replace
args: ["(?i)(es-en)", " MULTi SPANiSH "]
- name: re_replace
args: ["(?i)(en-es)", " MULTi SPANiSH "]
- name: re_replace
args: ["\\.+", "."] # More than 1 dot -> .
- name: re_replace
args: ["^\\.", ""] # Delete first dot
- name: re_replace
args: ["\\s+", " "] # More than 1 space to 1 space
details:
selector: details_link
download:
selector: download_link
poster:
selector: poster
filters:
- name: replace
args: ["https://via.placeholder.com/90x135", ""]
imdbid:
selector: imdb_id
tmdbid:
selector: tmdb_id
tvdbid:
selector: tvdb_id
files:
selector: num_file
seeders:
selector: seeders
leechers:
selector: leechers
grabs:
selector: times_completed
date:
# 2021-10-18T00:34:50.000000Z"
selector: created_at
size:
selector: size
downloadvolumefactor:
# api returns 0=false, 1=true
selector: freeleech
case:
0: 1 # not free
1: 0 # freeleech
uploadvolumefactor:
# api returns 0=false, 1=true
selector: double_upload
case:
0: 1 # normal
1: 2 # double
minimumseedtime:
# 4 days (as seconds = 4 x 24 x 60 x 60)
text: 345600
# json UNIT3D ???

View File

@@ -1,325 +0,0 @@
---
id: hdonly
name: HD-Only
description: "HD-Only (HD-O) is a FRENCH Private Torrent Tracker for HD MOVIES / TV"
language: fr-FR
type: private
encoding: UTF-8
links:
- https://hd-only.org/
caps:
categorymappings:
- {id: 1, cat: Movies, desc: "Film"}
- {id: 3, cat: TV/Anime, desc: "Dessin animé"}
- {id: 4, cat: Movies, desc: "Concert"}
- {id: 5, cat: TV, desc: "Série"}
- {id: 6, cat: TV/Anime, desc: "Série anim"}
- {id: 7, cat: Movies/Other, desc: "Film d'animation"}
- {id: 9, cat: Audio/Video, desc: "Concert"}
- {id: 11, cat: TV/Documentary, desc: "Documentaire"}
- {id: 13, cat: Movies/Other, desc: "Court-métrage"}
- {id: 14, cat: Movies/Other, desc: "Clip"}
- {id: 15, cat: Movies/Other, desc: "Démonstration"}
- {id: 16, cat: Movies/Other, desc: "Bonus de BD"}
- {id: 21, cat: Other, desc: "Autre"}
modes:
search: [q]
tv-search: [q]
movie-search: [q]
settings:
- name: username
type: text
label: Username
- name: password
type: password
label: Password
- name: freeleech
type: checkbox
label: Search freeleech only
default: false
- name: multilang
type: checkbox
label: Replace MULTI by another language in release name
default: false
- name: multilanguage
type: select
label: Replace MULTI by this language
default: FRENCH
options:
FRENCH: FRENCH
MULTI.FRENCH: MULTI.FRENCH
ENGLISH: ENGLISH
MULTI.ENGLISH: MULTI.ENGLISH
VOSTFR: VOSTFR
MULTI.VOSTFR: MULTI.VOSTFR
- name: vostfr
type: checkbox
label: Replace VOSTFR with ENGLISH
default: false
- name: sort
type: select
label: Sort requested from site
default: time
options:
time: created
seeders: seeders
size: size
- name: type
type: select
label: Order requested from site
default: desc
options:
desc: desc
asc: asc
- name: info_radarr
type: info
label: About Radarr
default: The HD-Only web site cannot find movies if you use the release year in a title search. When you define your Radarr v3 Indexer remember to tick the <i>Remove year from search string</i> checkbox.
login:
path: login.php
method: post
inputs:
username: "{{ .Config.username }}"
password: "{{ .Config.password }}"
keeplogged: 1
error:
- selector: form#loginform > span.warning
test:
path: torrents.php
selector: a[href^="logout.php?auth="]
search:
# https://hd-only.org/torrents.php?groupname=blood&freetorrent=1&order_by=time&order_way=desc&action=advanced&searchsubmit=1
path: torrents.php
inputs:
# does not support categories, uses releasetype for single filter so we canot do multi releasetype filtering either.
# $raw: "{{ range .Categories }}filter_cat[{{.}}]=1&{{end}}"
groupname: "{{ .Keywords }}"
order_by: "{{ .Config.sort }}"
order_way: "{{ .Config.type }}"
action: advanced
searchsubmit: 1
# 1 freeleech, 2 neutral, 3 both, 0 normal
freetorrent: "{{ if .Config.freeleech }}1{{ else }}{{ end }}"
# site does not support imdbid search or display imdb links in results
rows:
selector: table#torrent_table > tbody > tr.torrent
fields:
download:
selector: a[href^="torrents.php?action=download&"]
attribute: href
title_phase1:
selector: div.group_info
remove: span:nth-child(1), div.tags
filters:
- name: replace
args: ["\n", ""]
- name: re_replace
args: ["^(.+) (.+)", "$2-$1"]
- name: replace
args: [" ", " "]
- name: replace
args: ["Blu-Ray Original", "Complete.BluRay"]
- name: replace
args: ["Blu-Ray Remux", "Remux"]
- name: replace
args: ["Blu-Ray Rip", "BluRay.Rip"]
- name: replace
args: ["mHD", "mHD.BluRay.Rip"]
- name: replace
args: ["/ DC", "/ Directors.Cut"]
- name: replace
args: ["/ VL", "/ Extended"]
- name: replace
args: ["/ RM", "/ Remastered"]
- name: replace
args: ["/ UC", "/ Uncut"]
- name: replace
args: ["/ ES", "/ Special.Edition"]
- name: replace
args: [" / Cust_sub", ""]
- name: replace
args: [" / Cust", ""]
- name: replace
args: ["/ UN", "/ Unrated"]
- name: replace
args: [" / Crit", ""]
- name: replace
args: [" / WAC", ""]
- name: replace
args: [" / MoC", ""]
- name: replace
args: [" / BFI", ""]
- name: replace
args: [" / MUET", ""]
- name: replace
args: ["/ Exc NF", "/ NF"]
- name: replace
args: ["/ Exc AMZ", "/ AMZ"]
- name: replace
args: ["/ Exc YOU", "/ YT"]
- name: replace
args: [" / Freeleech!", ""]
- name: replace
args: [" / Complété!", ""]
- name: replace
args: [" / ", "."]
- name: trim
- name: replace
args: [".VFF.VFQ.stFR.MULTI", ".MULTI.VFF.VFQ"]
- name: replace
args: [".VFF.VFQ.VO.stFR.MULTI", ".MULTI.VFF.VFQ"]
- name: replace
args: [".VFF.VFQ.VO.stFR", ".MULTI.VFF.VFQ"]
- name: replace
args: [".VFQ.VO.stFR", ".MULTI.VFQ"]
- name: replace
args: [".VO.VFI.stFR", ".MULTI"]
- name: replace
args: [".VO.VF?.stFR", ".MULTI"]
- name: replace
args: [".VFF.VO.stFR", ".MULTI.VFF"]
- name: replace
args: [".VOF.stFR", ".FRENCH"]
- name: replace
args: [".VFQ.stFR", ".FRENCH"]
- name: replace
args: [".VFF.stFR.MULTI", ".MULTI.VFF"]
- name: replace
args: [".VFF.stFR", ".FRENCH"]
- name: replace
args: [".VFI.MULTI", ".MULTI"]
- name: replace
args: [".VO.stFR", ".VOSTFR"]
- name: replace
args: [".VFQ.VO", ".MULTI.VFQ"]
- name: replace
args: [".VFF.VO", ".MULTI.VFF"]
- name: replace
args: [".VO.VF?.stFR", ".MULTI"]
- name: replace
args: [".VFI.stFR", ".FRENCH"]
- name: replace
args: [".VOF.MULTI", ".MULTI.FRENCH"]
- name: replace
args: [".VOF", ".FRENCH"]
- name: replace
args: [".VFQ.MULTI", ".MULTI.VFQ"]
- name: replace
args: ["[Film]", ""]
- name: replace
args: ["[Dessin animé]", ""]
- name: replace
args: ["[Film d'animation]", ""]
- name: replace
args: ["[Concert]", ""]
- name: replace
args: ["[Documentaire]", ""]
- name: replace
args: ["[Court-métrage]", ""]
- name: replace
args: ["[Clip]", ""]
- name: replace
args: ["[Démonstration]", ""]
- name: replace
args: ["[Bonus de BD]", ""]
- name: replace
args: ["[Autre]", ""]
- name: replace
args: ["[Série Animée]", ""]
- name: replace
args: ["[Série]", ""]
- name: re_replace
args: ["\\[(\\d{4})\\]", "$1"]
title_multilang:
text: "{{ .Result.title_phase1 }}"
filters:
- name: re_replace
args: ["(?i)([\\s|\\.|-]*multi[\\s|\\.|-]*)", ".{{ .Config.multilanguage }}."]
title_phase2:
text: "{{ if .Config.multilang }}{{ .Result.title_multilang }}{{ else }}{{ .Result.title_phase1 }}{{ end }}"
title_vostfr:
text: "{{ .Result.title_phase2 }}"
filters:
- name: re_replace
args: ["(?i)([\\s|\\.|-]*vostfr[\\s|\\.|-]*)", ".ENGLISH."]
- name: re_replace
args: ["(?i)([\\s|\\.|-]*subfrench[\\s|\\.|-]*)", ".ENGLISH."]
title:
text: "{{ if .Config.vostfr }}{{ .Result.title_vostfr }}{{ else }}{{ .Result.title_phase2 }}{{ end }}"
description:
selector: div.group_info
poster:
selector: div.group_image img
attribute: src
details:
selector: a[href^="torrents.php?id="]
attribute: href
files:
selector: td:nth-child(3)
date:
selector: td:nth-child(4)
filters:
- name: replace
args: ["heures", "hours"]
- name: replace
args: ["heure", "hour"]
- name: replace
args: ["jours", "days"]
- name: replace
args: ["jour", "day"]
- name: replace
args: ["semaines", "weeks"]
- name: replace
args: ["semaine", "week"]
- name: replace
args: ["mois", "months"]
- name: replace
args: ["ans", "years"]
- name: replace
args: ["an", "year"]
- name: append
args: " ago"
size:
selector: td:nth-child(5)
grabs:
selector: td:nth-child(6)
seeders:
selector: td:nth-child(7)
leechers:
selector: td:nth-child(8)
downloadvolumefactor:
case:
"div.group_info:contains(\"/ Freeleech!\")": 0
"*": 1
uploadvolumefactor:
text: 1
category:
selector: div.group_info
remove: span, div, a
case:
":contains(\"[Film]\")": 1
":contains(\"[Dessin animé]\")": 3
":contains(\"[Série]\")": 5
":contains(\"[Série Animée]\")": 6
":contains(\"[Film d'animation]\")": 7
":contains(\"[Concert]\")": 9
":contains(\"[Documentaire]\")": 11
":contains(\"[Court-métrage]\")": 13
":contains(\"[Clip]\")": 14
":contains(\"[Démonstration]\")": 15
":contains(\"[Bonus de BD]\")": 16
":contains(\"[Autre]\")": 21
"*": 5
minimumratio:
text: 1.0
minimumseedtime:
# 3 days (as seconds = 3 x 24 x 60 x 60)
text: 259200
# Gazelle

View File

@@ -1,172 +0,0 @@
---
id: racing4everyone-api
name: Racing4Everyone (API)
description: "Racing4Everyone (R4E) is a Private Torrent Tracker for RACING"
language: en-US
type: private
encoding: UTF-8
links:
- https://racing4everyone.eu/
legacylinks:
- https://racing4everyone.jp/
caps:
categorymappings:
- {id: 1, cat: TV/Sport, desc: "BTCC"}
- {id: 2, cat: TV/Sport, desc: "TV-Documentaries"}
- {id: 3, cat: TV/Sport, desc: "DTM"}
- {id: 22, cat: TV/Sport, desc: "Formula 2"}
- {id: 23, cat: TV/Sport, desc: "Formula E"}
- {id: 24, cat: TV/Sport, desc: "Misc"}
- {id: 25, cat: TV/Sport, desc: "Other Bikes"}
- {id: 26, cat: TV/Sport, desc: "MotoGP-2-3-E"}
- {id: 31, cat: TV/Sport, desc: "Nascar"}
- {id: 32, cat: TV/Sport, desc: "Stock Car Brazil"}
- {id: 50, cat: TV/Sport, desc: "WRC"}
- {id: 55, cat: TV/Sport, desc: "Season Reviews"}
- {id: 56, cat: TV/Sport, desc: "WRX"}
- {id: 57, cat: TV/Sport, desc: "WEC"}
- {id: 58, cat: TV/Sport, desc: "W Series"}
- {id: 60, cat: TV/Sport, desc: "Drag Racing"}
- {id: 61, cat: TV/Sport, desc: "ERC"}
- {id: 62, cat: TV/Sport, desc: "Indycar Series"}
- {id: 63, cat: TV/Sport, desc: "Supercars"}
- {id: 66, cat: TV/Sport, desc: "Documentaries"}
- {id: 67, cat: TV/Sport, desc: "Formula 1"}
- {id: 68, cat: TV/Sport, desc: "Formula 3"}
- {id: 69, cat: TV/Sport, desc: "Other Cars"}
- {id: 70, cat: TV/Sport, desc: "Motorsport Movies"}
- {id: 71, cat: TV/Sport, desc: "WSBK"}
- {id: 72, cat: TV/Sport, desc: "AMA Pro Motocross"}
- {id: 73, cat: TV/Sport, desc: "AMA Supercross"}
- {id: 74, cat: TV/Sport, desc: "WTCR"}
- {id: 76, cat: TV/Sport, desc: "ARCA"}
- {id: 77, cat: TV/Sport, desc: "Blancpain GT"}
- {id: 78, cat: TV/Sport, desc: "Porsche Supercup"}
- {id: 79, cat: TV/Sport, desc: "TV Series"}
- {id: 80, cat: TV/Sport, desc: "Touring Cars"}
- {id: 81, cat: TV/Sport, desc: "Extreme E"}
modes:
search: [q]
tv-search: [q, season, ep, imdbid, tvdbid]
settings:
- name: apikey
type: text
label: APIKey
- name: info_key
type: info
label: About your API key
default: "Find or Generate a new API Token by accessing your <a href=\"https://racing4everyone.eu/\" target =_blank>Racing4Everyone</a> account <i>My Security</i> page and clicking on the <b>API Token</b> tab."
- name: freeleech
type: checkbox
label: Search freeleech only
default: false
- name: sort
type: select
label: Sort requested from site
default: created_at
options:
created_at: created
seeders: seeders
size: size
name: title
- name: type
type: select
label: Order requested from site
default: desc
options:
desc: desc
asc: asc
login:
path: /api/torrents
method: get
inputs:
api_token: "{{ .Config.apikey }}"
error:
- selector: a[href*="/login"]
message:
text: "The API key was not accepted by {{ .Config.sitelink }}."
search:
paths:
# https://hdinnovations.github.io/UNIT3D-Community-Edition-Docs/api_endpoints.html
# https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php
- path: "/api/torrents/filter"
response:
type: json
attribute: attributes
inputs:
# if we have an id based search, add Season and Episode as query in name for UNIT3D < v6. Else pass S/E Params for UNIT3D >= v6
api_token: "{{ .Config.apikey }}"
name: "{{ .Keywords }}"
$raw: "{{ if .Query.Season }}&seasonNumber={{ .Query.Season }}{{ else }}{{ end }}{{ if .Query.Ep }}&episodeNumber={{ .Query.Ep }}{{ else }}{{ end }}{{ if .Query.TMDBID }}&tmdbId={{ .Query.TMDBID }}{{ else }}{{ end }}{{ if .Query.IMDBIDShort }}&imdbId={{ .Query.IMDBIDShort }}{{ else }}{{ end }}{{ if .Query.TVDBID }}&tvdbId={{ .Query.TVDBID }}{{ else }}{{ end }}{{ range .Categories }}&categories[]={{.}}{{end}}{{ if .Config.freeleech }}&free=1{{ else }}{{ end }}"
sortField: "{{ .Config.sort }}"
sortDirection: "{{ .Config.type }}"
perPage: 100
page: 1
keywordsfilters:
- name: re_replace
args: ["\\.", " "]
rows:
selector: data
count:
selector: meta.total
fields:
categorydesc:
selector: category
title:
selector: name
details:
selector: details_link
download:
selector: download_link
poster:
selector: poster
filters:
- name: replace
args: ["https://via.placeholder.com/90x135", ""]
imdbid:
selector: imdb_id
tmdbid:
selector: tmdb_id
tvdbid:
selector: tvdb_id
files:
selector: num_file
seeders:
selector: seeders
leechers:
selector: leechers
grabs:
selector: times_completed
date:
# 2021-10-18T00:34:50.000000Z"
selector: created_at
size:
selector: size
downloadvolumefactor:
# api returns 0%, 25%, 50%, 75%, 100%
selector: freeleech
case:
0%: 1 # not free
25%: 0.75
50%: 0.5
75%: 0.25
100%: 0 # freeleech
"*": 0 # catch errors
uploadvolumefactor:
# api returns 0=false, 1=true
selector: double_upload
case:
0: 1 # normal
1: 2 # double
minimumratio:
text: 1.0
# json UNIT3D 6.0.0

View File

@@ -1,142 +0,0 @@
---
id: reelflix-api
name: ReelFLiX (API)
description: "ReelFLiX (HD4Free,LegacyHD) is a Private Torrent Tracker for HD MOVIES"
language: en-US
type: private
encoding: UTF-8
links:
- https://reelflix.xyz/
legacylinks:
- https://legacyhd.org/
caps:
categorymappings:
- {id: 1, cat: Movies, desc: "Movie"}
modes:
search: [q]
tv-search: [q, season, ep, imdbid, tvdbid]
movie-search: [q, imdbid, tmdbid]
music-search: [q]
book-search: [q]
settings:
- name: apikey
type: text
label: APIKey
- name: info_key
type: info
label: About your API key
default: "Find or Generate a new API Token by accessing your <a href=\"https://reelflix.xyz/\" target =_blank>ReelFlix</a> account <i>My Security</i> page and clicking on the <b>API Token</b> tab."
- name: freeleech
type: checkbox
label: Search freeleech only
default: false
- name: sort
type: select
label: Sort requested from site
default: created_at
options:
created_at: created
seeders: seeders
size: size
name: title
- name: type
type: select
label: Order requested from site
default: desc
options:
desc: desc
asc: asc
login:
path: /api/torrents
method: get
inputs:
api_token: "{{ .Config.apikey }}"
error:
- selector: a[href*="/login"]
message:
text: "The API key was not accepted by {{ .Config.sitelink }}."
search:
paths:
# https://hdinnovations.github.io/UNIT3D-Community-Edition-Docs/api_endpoints.html
# https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php
- path: "/api/torrents/filter"
response:
type: json
attribute: attributes
inputs:
# if we have an id based search, add Season and Episode as query in name for UNIT3D < v6. Else pass S/E Params for UNIT3D >= v6
api_token: "{{ .Config.apikey }}"
name: "{{ .Keywords }}"
$raw: "{{ if .Query.Season }}&seasonNumber={{ .Query.Season }}{{ else }}{{ end }}{{ if .Query.Ep }}&episodeNumber={{ .Query.Ep }}{{ else }}{{ end }}{{ if .Query.TMDBID }}&tmdbId={{ .Query.TMDBID }}{{ else }}{{ end }}{{ if .Query.IMDBIDShort }}&imdbId={{ .Query.IMDBIDShort }}{{ else }}{{ end }}{{ if .Query.TVDBID }}&tvdbId={{ .Query.TVDBID }}{{ else }}{{ end }}{{ range .Categories }}&categories[]={{.}}{{end}}{{ if .Config.freeleech }}&free=1{{ else }}{{ end }}"
sortField: "{{ .Config.sort }}"
sortDirection: "{{ .Config.type }}"
perPage: 100
page: 1
keywordsfilters:
- name: re_replace
args: ["\\.", " "]
rows:
selector: data
count:
selector: meta.total
fields:
category:
selector: category_id
title:
selector: name
details:
selector: details_link
download:
selector: download_link
poster:
selector: poster
filters:
- name: replace
args: ["https://via.placeholder.com/90x135", ""]
imdbid:
selector: imdb_id
tmdbid:
selector: tmdb_id
tvdbid:
selector: tvdb_id
files:
selector: num_file
seeders:
selector: seeders
leechers:
selector: leechers
grabs:
selector: times_completed
date:
# 2021-10-18T00:34:50.000000Z"
selector: created_at
size:
selector: size
downloadvolumefactor:
# api returns 0%, 25%, 50%, 75%, 100%
selector: freeleech
case:
0%: 1 # not free
25%: 0.75
50%: 0.5
75%: 0.25
100%: 0 # freeleech
"*": 0 # catch errors
uploadvolumefactor:
# api returns 0=false, 1=true
selector: double_upload
case:
0: 1 # normal
1: 2 # double
minimumratio:
text: 1.0
# json UNIT3D 6.0.6

View File

@@ -1,182 +0,0 @@
---
id: shareisland-api
name: Shareisland (API)
description: "A general italian tracker"
language: it-IT
type: private
encoding: UTF-8
links:
- https://shareisland.org/
legacylinks:
- http://shareisland.org/
- http://www.shareisland.org/
caps:
categorymappings:
- {id: 1, cat: Movies, desc: "Movie"}
- {id: 2, cat: TV, desc: "Serie TV"}
- {id: 15, cat: Books/EBook, desc: "Ebook"}
- {id: 17, cat: Books/Mags, desc: "Riviste e Giornali"}
- {id: 19, cat: XXX, desc: "XXX"}
- {id: 3, cat: Audio, desc: "Music"}
- {id: 7, cat: PC/Games, desc: "Games"}
- {id: 23, cat: PC, desc: "Software"}
modes:
search: [q]
tv-search: [q, season, ep, imdbid, tvdbid]
movie-search: [q, imdbid, tmdbid]
music-search: [q]
book-search: [q]
settings:
- name: apikey
type: text
label: APIKey
- name: info_key
type: info
label: About your API key
default: "Find or Generate a new API Token by accessing your <a href=\"https://shareisland.org/\" target =_blank>Shareisland</a> account <i>My Security</i> page and clicking on the <b>API Token</b> tab."
- name: freeleech
type: checkbox
label: Search freeleech only
default: false
- name: sort
type: select
label: Sort requested from site
default: created_at
options:
created_at: created
seeders: seeders
size: size
name: title
- name: type
type: select
label: Order requested from site
default: desc
options:
desc: desc
asc: asc
login:
path: /api/torrents
method: get
inputs:
api_token: "{{ .Config.apikey }}"
error:
- selector: a[href*="/login"]
message:
text: "The API key was not accepted by {{ .Config.sitelink }}."
search:
paths:
# https://hdinnovations.github.io/UNIT3D-Community-Edition-Docs/api_endpoints.html
# https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php
- path: "/api/torrents/filter"
response:
type: json
attribute: attributes
inputs:
# if we have an id based search, add Season and Episode as query in name for UNIT3D < v6. Else pass S/E Params for UNIT3D >= v6
api_token: "{{ .Config.apikey }}"
name: "{{ .Keywords }}"
$raw: "{{ if .Query.Season }}&seasonNumber={{ .Query.Season }}{{ else }}{{ end }}{{ if .Query.Ep }}&episodeNumber={{ .Query.Ep }}{{ else }}{{ end }}{{ if .Query.TMDBID }}&tmdbId={{ .Query.TMDBID }}{{ else }}{{ end }}{{ if .Query.IMDBIDShort }}&imdbId={{ .Query.IMDBIDShort }}{{ else }}{{ end }}{{ if .Query.TVDBID }}&tvdbId={{ .Query.TVDBID }}{{ else }}{{ end }}{{ range .Categories }}&categories[]={{.}}{{end}}{{ if .Config.freeleech }}&free=1{{ else }}{{ end }}"
sortField: "{{ .Config.sort }}"
sortDirection: "{{ .Config.type }}"
perPage: 100
page: 1
keywordsfilters:
- name: diacritics
args: replace
- name: re_replace # S01 to 1
args: ["(?i)\\bS0*(\\d+)\\b", "$1"]
- name: re_replace # S01E01 to 1 1
args: ["(?i)\\bS0*(\\d+)E0*(\\d+)\\b", "$1 $2"]
rows:
selector: data
count:
selector: meta.total
fields:
categorydesc:
selector: category
title:
selector: name
filters:
- name: re_replace # replace special characters with " " (space)
args: ["[\\[!\"#$%&'()*+,\\-.\\/:;<=>?@[\\]^_`{|}~]", " "]
- name: diacritics
args: replace
- name: re_replace # replace multiple spaces
args: ["[ ]{2,}", " "]
# normalize to SXXEYY format
- name: re_replace # S01 E01 to S01E01
args: ["(?i)\\bS(\\d+)\\sE(\\d+)\\b", "S$1E$2"]
- name: re_replace # 01x01 to S01E01
args: ["(?i)(\\d{2})x(\\d+)", "S$1E$2"]
- name: re_replace # 1x01 to S01E01
args: ["(?i)\\b(\\d{1})x(\\d+)", "S0$1E$2"]
- name: re_replace # Stagione X --> S0X
args: ["(?i)\\bStagion[ei]\\s?(\\d{1})\\b|\\bSeason'?s?\\s?(\\d{1})\\b", "S0$1$2"]
- name: re_replace # Stagione XX --> SXX
args: ["(?i)\\bStagion[ei]\\s?(\\d{2,})\\b|\\bSeason'?s?\\s?(\\d{2,})\\b", "S$1$2"]
- name: re_replace # Episodio 4 to E4
args: ["(?i)\\b(?:[\\/\\|]?Episodio\\s?(\\d+)|Puntata\\s?(\\d+))", "E$1$2"]
- name: re_replace # Episodi 4 5 to E04-05
args: ["(?i)\\b(?:Puntate\\s*)(\\d+)\\s?(\\d+)", "E0$1-0$2"]
- name: re_replace # rimozioni varie
args: ["(?i)(Serie completa|Completat?a?|in pausa)", ""]
details:
selector: details_link
download:
selector: download_link
poster:
selector: poster
filters:
- name: replace
args: ["https://via.placeholder.com/90x135", ""]
imdbid:
selector: imdb_id
tmdbid:
selector: tmdb_id
tvdbid:
selector: tvdb_id
files:
selector: num_file
seeders:
selector: seeders
leechers:
selector: leechers
grabs:
selector: times_completed
date:
# 2021-10-18T00:34:50.000000Z"
selector: created_at
size:
selector: size
downloadvolumefactor:
# api returns 0%, 25%, 50%, 75%, 100%
selector: freeleech
case:
0%: 1 # not free
25%: 0.75
50%: 0.5
75%: 0.25
100%: 0 # freeleech
"*": 0 # catch errors
uploadvolumefactor:
# api returns 0=false, 1=true
selector: double_upload
case:
0: 1 # normal
1: 2 # double
# global MR is 0.4 but torrents must be seeded for 7 days regardless of ratio
# minimumratio:
# text: 0.4
minimumseedtime:
# 7 day (as seconds = 7 x 24 x 60 x 60)
text: 604800
# json UNIT3D 6.2.1

View File

@@ -1,63 +0,0 @@
---
id: showrss-yml
name: showRSS
description: "showRSS is a service that allows you to keep track of your favorite TV shows"
language: en-US
type: public
encoding: UTF-8
links:
- https://showrss.info/
caps:
# dont forget to update the case block in the search fields category
categorymappings:
- {id: 1, cat: TV/SD}
- {id: 2, cat: TV/HD}
modes:
search: [q]
tv-search: [q, season, ep]
settings: []
search:
paths:
- path: /other/all.rss
response:
type: xml
rows:
selector: rss > channel > item
filters:
- name: andmatch
fields:
category:
selector: raw_title
case:
":contains(\"720p\")": 2
":contains(\"1080p\")": 2
"*": 1
title:
selector: raw_title
details:
text: "{{ .Config.sitelink }}"
date:
selector: pubDate
download:
selector: link
description:
selector: description
infohash:
selector: info_hash
size:
text: "512 MB"
seeders:
text: 1
leechers:
text: 1
downloadvolumefactor:
text: 0
uploadvolumefactor:
text: 1
# engine n/a

View File

@@ -1,139 +0,0 @@
---
id: skipthecommercials-api
name: SkipTheCommercials (API)
description: "SkipTheCommercials (STC) is a Private Torrent Tracker for TV"
language: en-US
type: private
encoding: UTF-8
links:
- https://skipthecommericals.xyz/
caps:
categorymappings:
- {id: 2, cat: TV, desc: "TV Show"}
modes:
search: [q]
tv-search: [q, season, ep, imdbid, tvdbid]
movie-search: [q, imdbid, tmdbid]
settings:
- name: apikey
type: text
label: APIKey
- name: info_key
type: info
label: About your API key
default: "Find or Generate a new API Token by accessing your <a href=\"https://skipthecommericals.xyz/\" target =_blank>SkipTheCommercials</a> account <i>My Security</i> page and clicking on the <b>API Token</b> tab."
- name: freeleech
type: checkbox
label: Search freeleech only
default: false
- name: sort
type: select
label: Sort requested from site
default: created_at
options:
created_at: created
seeders: seeders
size: size
name: title
- name: type
type: select
label: Order requested from site
default: desc
options:
desc: desc
asc: asc
login:
path: /api/torrents
method: get
inputs:
api_token: "{{ .Config.apikey }}"
error:
- selector: a[href*="/login"]
message:
text: "The API key was not accepted by {{ .Config.sitelink }}."
search:
paths:
# https://hdinnovations.github.io/UNIT3D-Community-Edition-Docs/api_endpoints.html
# https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php
- path: "/api/torrents/filter"
response:
type: json
attribute: attributes
inputs:
# if we have an id based search, add Season and Episode as query in name for UNIT3D < v6. Else pass S/E Params for UNIT3D >= v6
api_token: "{{ .Config.apikey }}"
name: "{{ .Keywords }}"
$raw: "{{ if .Query.Season }}&seasonNumber={{ .Query.Season }}{{ else }}{{ end }}{{ if .Query.Ep }}&episodeNumber={{ .Query.Ep }}{{ else }}{{ end }}{{ if .Query.TMDBID }}&tmdbId={{ .Query.TMDBID }}{{ else }}{{ end }}{{ if .Query.IMDBIDShort }}&imdbId={{ .Query.IMDBIDShort }}{{ else }}{{ end }}{{ if .Query.TVDBID }}&tvdbId={{ .Query.TVDBID }}{{ else }}{{ end }}{{ range .Categories }}&categories[]={{.}}{{end}}{{ if .Config.freeleech }}&free=1{{ else }}{{ end }}"
sortField: "{{ .Config.sort }}"
sortDirection: "{{ .Config.type }}"
perPage: 100
page: 1
keywordsfilters:
- name: re_replace
args: ["\\.", " "]
rows:
selector: data
count:
selector: meta.total
fields:
categorydesc:
selector: category
title:
selector: name
details:
selector: details_link
download:
selector: download_link
poster:
selector: poster
filters:
- name: replace
args: ["https://via.placeholder.com/90x135", ""]
imdbid:
selector: imdb_id
tmdbid:
selector: tmdb_id
tvdbid:
selector: tvdb_id
files:
selector: num_file
seeders:
selector: seeders
leechers:
selector: leechers
grabs:
selector: times_completed
date:
# 2021-10-18T00:34:50.000000Z"
selector: created_at
size:
selector: size
downloadvolumefactor:
# api returns 0%, 25%, 50%, 75%, 100%
selector: freeleech
case:
0%: 1 # not free
25%: 0.75
50%: 0.5
75%: 0.25
100%: 0 # freeleech
"*": 0 # catch errors
uploadvolumefactor:
# api returns 0=false, 1=true
selector: double_upload
case:
0: 1 # normal
1: 2 # double
minimumseedtime:
# 7 days (as seconds = 7 x 24 x 60 x 60)
text: 604800
# json UNIT3D 6.0.0

View File

@@ -1,143 +0,0 @@
---
id: skipthetrailers
name: SkipTheTrailers
description: "SkipTheTrailers (STT) is a Private Torrent Tracker for MOVIES"
language: en-US
type: private
encoding: UTF-8
links:
- https://skipthetrailers.xyz/
caps:
categorymappings:
- {id: 1, cat: Movies, desc: "Movies"}
modes:
search: [q]
tv-search: [q, season, ep, imdbid, tvdbid]
movie-search: [q, imdbid, tmdbid]
music-search: [q]
book-search: [q]
settings:
- name: apikey
type: text
label: APIKey
- name: info_key
type: info
label: About your API key
default: "Find or Generate a new API Token by accessing your <a href=\"https://skipthetrailers.xyz/\" target =_blank>SkipTheTrailers</a> account <i>My Security</i> page and clicking on the <b>API Token</b> tab."
- name: freeleech
type: checkbox
label: Search freeleech only
default: false
- name: sort
type: select
label: Sort requested from site
default: created_at
options:
created_at: created
seeders: seeders
size: size
name: title
- name: type
type: select
label: Order requested from site
default: desc
options:
desc: desc
asc: asc
login:
path: /api/torrents
method: get
inputs:
api_token: "{{ .Config.apikey }}"
error:
- selector: a[href*="/login"]
message:
text: "The API key was not accepted by {{ .Config.sitelink }}."
search:
paths:
# https://hdinnovations.github.io/UNIT3D-Community-Edition-Docs/api_endpoints.html
# https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php
- path: "/api/torrents/filter"
response:
type: json
inputs:
# if we have an id based search, add Season and Episode as query in name for UNIT3D < v6. Else pass S/E Params for UNIT3D >= v6
api_token: "{{ .Config.apikey }}"
name: "{{ .Keywords }}"
$raw: "{{ if .Query.Season }}&seasonNumber={{ .Query.Season }}{{ else }}{{ end }}{{ if .Query.Ep }}&episodeNumber={{ .Query.Ep }}{{ else }}{{ end }}{{ if .Query.TMDBID }}&tmdbId={{ .Query.TMDBID }}{{ else }}{{ end }}{{ if .Query.IMDBIDShort }}&imdbId={{ .Query.IMDBIDShort }}{{ else }}{{ end }}{{ if .Query.TVDBID }}&tvdbId={{ .Query.TVDBID }}{{ else }}{{ end }}{{ range .Categories }}&categories[]={{.}}{{end}}{{ if .Config.freeleech }}&free=1{{ else }}{{ end }}"
sortField: "{{ .Config.sort }}"
sortDirection: "{{ .Config.type }}"
perPage: 100
page: 1
keywordsfilters:
- name: re_replace
args: ["\\.", " "]
rows:
selector: data
attribute: attributes
count:
selector: meta.total
fields:
category:
selector: category_id
title:
selector: name
details:
selector: details_link
download:
selector: download_link
poster:
selector: poster
filters:
- name: replace
args: ["https://via.placeholder.com/90x135", ""]
imdbid:
selector: imdb_id
tmdbid:
selector: tmdb_id
tvdbid:
selector: tvdb_id
files:
selector: num_file
seeders:
selector: seeders
leechers:
selector: leechers
grabs:
selector: times_completed
date:
# 2021-10-18T00:34:50.000000Z"
selector: created_at
size:
selector: size
downloadvolumefactor:
# api returns 0%, 25%, 50%, 75%, 100%
selector: freeleech
case:
0%: 1 # not free
25%: 0.75
50%: 0.5
75%: 0.25
100%: 0 # freeleech
"*": 0 # catch errors
uploadvolumefactor:
# api returns 0=false, 1=true
selector: double_upload
case:
0: 1 # normal
1: 2 # double
minimumratio:
text: 1.0
minimumseedtime:
# 7 days (as seconds = 2 x 24 x 60 x 60)
text: 172800
# json UNIT3D 6.0.8

View File

@@ -1,138 +0,0 @@
---
id: torrentseeds-api
name: TorrentSeeds (API)
description: "TorrentSeeds is a Private Torrent Tracker for MOVIES / TV / MUSIC / GENERAL"
language: en-US
type: private
encoding: UTF-8
links:
- https://torrentseeds.org/
caps:
categorymappings:
- {id: 1, cat: PC/0day, desc: "Apps"}
- {id: 2, cat: PC/Games, desc: "Games"}
- {id: 3, cat: Movies, desc: "Movies"}
- {id: 4, cat: Audio, desc: "Music"}
- {id: 5, cat: TV/Anime, desc: "Anime"}
- {id: 6, cat: XXX, desc: "Porn"}
- {id: 7, cat: TV/Sport, desc: "Sport"}
- {id: 8, cat: Movies, desc: "Movies/Packs"}
- {id: 3205, cat: TV, desc: "TV"}
- {id: 3206, cat: TV/Foreign, desc: "TV/Foreign"}
- {id: 3207, cat: Movies/Foreign, desc: "Movies/Foreign"}
- {id: 3208, cat: Books/EBook, desc: "E-Books"}
- {id: 3209, cat: TV, desc: "TV/Packs"}
modes:
search: [q]
tv-search: [q, season, ep, imdbid, tvdbid]
movie-search: [q, imdbid, tmdbid]
music-search: [q]
book-search: [q]
settings:
- name: apikey
type: text
label: APIKey
- name: info_key
type: info
label: About your API key
default: "Find or Generate a new API Token by accessing your <a href=\"https://torrentseeds.org/\" target =_blank>TorrentSeeds</a> account <i>My Security</i> page and clicking on the <b>API Token</b> tab."
- name: freeleech
type: checkbox
label: Search freeleech only
default: false
- name: sort
type: select
label: Sort requested from site
default: created_at
options:
created_at: created
seeders: seeders
size: size
name: title
- name: type
type: select
label: Order requested from site
default: desc
options:
desc: desc
asc: asc
login:
path: /api/torrents
method: get
inputs:
api_token: "{{ .Config.apikey }}"
error:
- selector: a[href*="/login"]
message:
text: "The API key was not accepted by {{ .Config.sitelink }}."
search:
paths:
# https://hdinnovations.github.io/UNIT3D-Community-Edition-Docs/api_endpoints.html
# https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php
- path: "/api/torrents/filter?api_token={{ .Config.apikey }}&name={{ if .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}{{ if .Query.TMDBID }}&tmdbId={{ .Query.TMDBID }}{{ else }}{{ end }}{{ if .Query.IMDBIDShort }}&imdbId={{ .Query.IMDBIDShort }}{{ else }}{{ end }}{{ if .Query.TVDBID }}&tvdbId={{ .Query.TVDBID }}{{ else }}{{ end }}&sortField={{ .Config.sort }}&sortDirection={{ .Config.type }}&perPage=100&page=1{{ range .Categories }}&categories[]={{.}}{{end}}{{ if .Config.freeleech }}&free=1{{ else }}{{ end }}"
response:
type: json
attribute: attributes
rows:
selector: data
count:
selector: meta.total
fields:
categorydesc:
selector: category
title:
selector: name
details:
selector: details_link
download:
selector: download_link
poster:
selector: poster
filters:
- name: replace
args: ["https://via.placeholder.com/90x135", ""]
imdbid:
selector: imdb_id
tmdbid:
selector: tmdb_id
tvdbid:
selector: tvdb_id
files:
selector: num_file
seeders:
selector: seeders
leechers:
selector: leechers
grabs:
selector: times_completed
date:
# 2021-10-18T00:34:50.000000Z"
selector: created_at
size:
selector: size
downloadvolumefactor:
# api returns 0=false, 1=true
selector: freeleech
case:
0: 1 # not free
1: 0 # freeleech
uploadvolumefactor:
# api returns 0=false, 1=true
selector: double_upload
case:
0: 1 # normal
1: 2 # double
# global MR is 0.5 but torrents must be seeded for 5 days regardless of ratio
# minimumratio:
# text: 0.5
minimumseedtime:
# 5 days (as seconds = 5 x 24 x 60 x 60)
text: 432000
# json UNIT3D 5.3.0

View File

@@ -1,135 +0,0 @@
---
id: yts
name: YTS
description: "YTS is a Public torrent site specialising in HD movies of small size"
language: en-US
type: public
encoding: UTF-8
requestDelay: 2.5 # 2.5 requests per second (2 causes problems)
links:
# dont forget to update the details, download and poster replace args
- https://yts.mx/
- https://yts.unblockit.bet/
- https://yts.unblockninja.com/
- https://yts.nocensor.world/
legacylinks:
- https://yts.ag/
- https://yts.am/
- https://yts.lt/
- https://yts.unblockit.uno/
- https://yts.unblockit.ch/
- https://yts.unblockit.li/
- https://yts.unblockit.ws/
- https://yts.nocensor.space/
- https://yts.nocensor.work/
- https://yts.unblockit.kim/
- https://yts.unblockit.bz/
- https://yts.unblockit.tv/
- https://yts.unblockit.how/
- https://yts.unblockit.cam/
- https://yts.nocensor.biz/
- https://yts.unblockit.day/
- https://yts.unblockit.llc/
- https://yts.unblockit.blue/
- https://yts.unblockit.name/
- https://yts.nocensor.sbs/
- https://yts.unblockit.ist/
caps:
categorymappings:
# note: the API does not support searching with categories, so these are dummy ones for torznab compatibility
# we map these newznab cats with the returned quality value in the releases routine.
- {id: 45, cat: Movies/HD, desc: "Movies/x264/720p"}
- {id: 44, cat: Movies/HD, desc: "Movies/x264/1080p"}
- {id: 46, cat: Movies/UHD, desc: "Movies/x264/2160p"}
- {id: 47, cat: Movies/3D, desc: "Movies/x264/3D"}
modes:
search: [q]
movie-search: [q, imdbid]
settings: []
search:
paths:
- path: api/v2/list_movies.json
response:
type: json
inputs:
# ignore ' (e.g. search for america's Next Top Model)
query_term: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ re_replace .Keywords \"[']\" \"\" }}{{ end }}"
# without this the API sometimes returns nothing
limit: 50
sort: date_added
rows:
selector: data.movies
attribute: torrents
count:
selector: data.movie_count
fields:
_quality:
selector: quality
category:
selector: quality
case:
"720p": 45
"1080p": 44
"2160p": 46
"3D": 47
"*": 45
_type:
selector: type
_year:
selector: ..year
title:
selector: ..title
filters:
- name: replace
args: [":", ""]
- name: replace
args: [" ", "."]
# append type: BRRip or WEBRip, resolves #3558 via #4577
- name: append
args: ".{{ .Result._year }}.{{ .Result._quality }}.{{ if eq .Result._type \"web\" }}WEBRip{{ else }}BRRip{{ end }}-YTS"
_sitelink_trimmed:
text: "{{ .Config.sitelink }}"
filters:
- name: replace
args: ["https://", ""]
- name: replace
args: ["/", ""]
details:
selector: ..url
filters:
- name: replace
args: ["yts.mx", "{{ .Result._sitelink_trimmed }}"] # fix for 12494
download:
selector: url
filters:
- name: replace
args: ["yts.mx", "{{ .Result._sitelink_trimmed }}"] # fix for 12494
infohash:
selector: hash
poster:
selector: ..large_cover_image
filters:
- name: replace
args: ["yts.mx", "{{ .Result._sitelink_trimmed }}"] # fix for 12494
imdbid:
selector: ..imdb_code
date:
selector: date_uploaded_unix
size:
selector: size_bytes
seeders:
selector: seeds
leechers:
selector: peers
downloadvolumefactor:
text: 0
uploadvolumefactor:
text: 1
# json api v2

Some files were not shown because too many files have changed in this diff Show More