1
0
mirror of https://github.com/Prowlarr/Indexers.git synced 2026-05-08 08:58:39 +01:00

jackett recon 20220418 - v5 api have json attributes

This commit is contained in:
bakerboy448
2022-04-18 07:21:51 -05:00
parent ae0453bb6b
commit 56a63bf560
8 changed files with 1239 additions and 208 deletions
+240
View File
@@ -0,0 +1,240 @@
---
id: Bittorrentfiles
name: Bittorrentfiles
description: "Bittorrentfiles is a Private GERMAN tracker"
language: de-DE
type: private
encoding: UTF-8
links:
- https://bittorrentfiles.me/
legacylinks:
- https://www.Bittorrentfiles.me/
caps:
categorymappings:
# Movie
- {id: 48, cat: Movies/HD, desc: "Movie 1080p"}
- {id: 31, cat: Movies/3D, desc: "Movie 3D"}
- {id: 21, cat: Movies/HD, desc: "Movie 720p"}
- {id: 28, cat: Movies/SD, desc: "Movie AVI"}
- {id: 20, cat: Movies/DVD, desc: "Movie DVD-R"}
- {id: 40, cat: Movies/HD, desc: Movie "h264/x264"}
- {id: 30, cat: Movies/HD, desc: "Movie HD/BD"}
- {id: 49, cat: Movies/Foreign, desc: "Movie International"}
- {id: 78, cat: Movies/UHD, desc: "Movie UHD"}
- {id: 85, cat: Movies/HD, desc: "Movie x265"}
# Serien
- {id: 79, cat: TV/HD, desc: "Staffeln HD"}
- {id: 56, cat: TV/SD, desc: "Staffeln SD"}
- {id: 88, cat: TV/UHD, desc: "Staffeln UHD"}
- {id: 86, cat: TV/UHD, desc: "Folgen UHD"}
- {id: 54, cat: TV/HD, desc: "Folgen HD"}
- {id: 80, cat: TV/HD, desc: "Folgen HD/BD"}
- {id: 7, cat: TV/SD, desc: "Folgen SD"}
- {id: 55, cat: TV/Foreign, desc: "Folgen International"}
# Doku
- {id: 91, cat: TV/Documentary, desc: "Doku UHD"}
- {id: 64, cat: TV/Documentary, desc: "Doku HD"}
- {id: 36, cat: TV/Documentary, desc: "Doku SD"}
- {id: 81, cat: TV/Documentary, desc: "Doku 3D"}
- {id: 82, cat: TV/Documentary, desc: "Doku Packs"}
# Spiele
- {id: 4, cat: PC/Games, desc: "Spiele Windows"}
- {id: 92, cat: PC/Mac, desc: "Spiele Mac"}
- {id: 93, cat: PC, desc: "Spiele Linux"}
- {id: 97, cat: Console/XBox, desc: "Spiele XBOX"}
- {id: 94, cat: PC/Mobile-Other, desc: "Spiele Mobile"}
- {id: 95, cat: Console/NDS, desc: "Spiele Nintendo"}
- {id: 96, cat: Console/PSP, desc: "Spiele Playstation"}
- {id: 42, cat: Console/Other, desc: "Spiele Andere"}
# Musik
- {id: 66, cat: Audio, desc: "Musik Alben"}
- {id: 75, cat: Audio, desc: "Musik Singles"}
- {id: 50, cat: Audio, desc: "Musik Charts"}
- {id: 52, cat: Audio, desc: "Musik Packs"}
- {id: 53, cat: Audio/Video, desc: "Musik Video"}
- {id: 61, cat: Audio/Video, desc: "Musik DVD-R"}
- {id: 83, cat: Audio/Lossless, desc: "Musik Flac"}
- {id: 68, cat: Audio, desc: "Musik Live"}
- {id: 6, cat: Audio, desc: "Musik Misc"}
- {id: 51, cat: Audio, desc: "Musik OST"}
- {id: 67, cat: Audio, desc: "Musik Sampler"}
# App
- {id: 98, cat: PC/0day, desc: "App Windows"}
- {id: 62, cat: PC/Mac, desc: "App Mac OS"}
- {id: 63, cat: PC/0day, desc: "App Linux"}
- {id: 34, cat: PC, desc: "App Andere"}
# Sport
- {id: 74, cat: TV/Sport, desc: "Sport HD"}
- {id: 39, cat: TV/Sport, desc: "Sport SD"}
# Sonstiges
- {id: 41, cat: Audio/Audiobook, desc: "Sonstiges A-Book"}
- {id: 33, cat: TV/Anime, desc: "Sonstiges Anime"}
- {id: 35, cat: Books/EBook, desc: "Sonstiges e-Book-DE"}
- {id: 90, cat: Books/EBook, desc: "Sonstiges e-Book-INT"}
- {id: 65, cat: Other, desc: "Sonstiges E-Learning"}
- {id: 37, cat: PC, desc: "Sonstiges Mobile"}
- {id: 87, cat: Books/Mags, desc: "Sonstiges E-Paper"}
- {id: 38, cat: Other, desc: "Sonstiges Kids"}
- {id: 47, cat: Other, desc: "Sonstiges Line"}
- {id: 9, cat: Other, desc: "Sonstiges Andere"}
# XXX
- {id: 58, cat: XXX/x264, desc: "XXX HD"}
- {id: 46, cat: XXX, desc: "XXX Hentai"}
- {id: 59, cat: XXX/Pack, desc: "XXX Pack"}
- {id: 27, cat: XXX/SD, desc: "XXX SD"}
- {id: 76, cat: XXX, desc: "XXX Andere"}
modes:
search: [q]
tv-search: [q, season, ep, imdbid]
movie-search: [q, imdbid]
music-search: [q]
book-search: [q]
settings:
- name: user
type: text
label: Username
- name: pass
type: password
label: Password
- name: freeleech
type: checkbox
label: Search freeleech only
default: false
- name: sort
type: select
label: Sort requested from site
default: added
options:
added: created
seeds: seeders
size: size
name: title
- name: type
type: select
label: Order requested from site
default: desc
options:
desc: desc
asc: asc
- name: info_account
type: info
label: Account Settings
default: In order to see the correct date and size in the torrent rows, change the <b>Torrentliste:</b> setting to <b>Modern</b> on your account profile.
- name: info_tpp
type: info
label: Results Per Page
default: For best results, change the <b>Torrents per page:</b> setting to <b>100</b> on your account profile.
login:
path: signin.php
method: form
form: form
inputs:
user: "{{ .Config.user }}"
pass: "{{ .Config.pass }}"
error:
- selector: .error
test:
path: browse.php
search:
path: browse.php
inputs:
$raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}"
# 0=title, 1=descr, 2=nfo, 3=all, 4=imdb
search_where: "{{ if .Query.IMDBID }}3{{ else }}0{{ end }}"
# 0=active, 1=all, 2=onlydead, 4=only upload, 5=doubleup, 6=halfdown, 7=highlight, 8=request
status: "{{ if .Config.freeleech }}4{{ else }}1{{ end }}"
orderby: "{{ .Config.sort }}"
sort: "{{ .Config.type }}"
rows:
selector: table.tableinborder > tbody > tr:has(a[href^="/download.php"])
fields:
title:
selector: a[href^="details.php"]
attribute: title
category:
selector: a[href^="/browse.php?cat="]
attribute: href
filters:
- name: querystring
args: cat
details:
selector: a[href^="details.php"]
attribute: href
download:
selector: a[href^="/download.php"]
attribute: href
grabs_optional:
selector: a[title="Snatcher"]
optional: true
grabs:
text: "{{ if .Result.grabs_optional }}{{ .Result.grabs_optional }}{{ else }}0{{ end }}"
files_optional:
selector: a[title="Files"]
optional: true
files:
text: "{{ if .Result.files_optional }}{{ .Result.files_optional }}{{ else }}0{{ end }}"
size:
selector: td:nth-child(6)
seeders_optional:
selector: a[title="Seeder"]
optional: true
seeders:
text: "{{ if .Result.seeders_optional }}{{ .Result.seeders_optional }}{{ else }}0{{ end }}"
leechers_optional:
selector: a[title="Leecher"]
optional: true
leechers:
text: "{{ if .Result.leechers_optional }}{{ .Result.leechers_optional }}{{ else }}0{{ end }}"
# 2 flavours of dates
date_day:
# Heute 13:30:04
# Gestern 09:10:10
selector: td:nth-child(10):contains("Heute"), td:nth-child(10):contains("Gestern")
optional: true
filters:
- name: split
args: ["b", 0]
- name: replace
args: ["Heute", "Today"]
- name: replace
args: ["Gestern", "Yesterday"]
- name: append
args: " +01:00" # CET
date_year:
# 30.02.2018 23:12:50
selector: td:nth-child(10):contains("."):contains(":")
optional: true
filters:
- name: split
args: ["b", 0]
- name: append
args: " +01:00" # CET
- name: dateparse
args: "02.01.2006 15:04:05 -07:00"
date:
text: "{{ if or .Result.date_year .Result.date_day }}{{ or .Result.date_year .Result.date_day }}{{ else }}now{{ end }}"
downloadvolumefactor:
case:
img[alt="OU"]: 0
img[alt="D/2"]: 0.5
img[alt="D / 2"]: 0.5
"*": 1
uploadvolumefactor:
case:
img[alt="2xU"]: 2
"*": 1
minimumratio:
text: 0.8
minimumseedtime:
# 60 hours (as seconds = 60 x 60 x 60)
text: 216000
# engine n/a
+172
View File
@@ -0,0 +1,172 @@
---
id: arabp2p
name: ArabP2P
description: "ArabP2P is an ARABIC Private Torrent Tracker for MOVIES / TV / GENERAL"
language: ar-AR
type: private
encoding: UTF-8
links:
- https://www.arabp2p.com/
legacylinks:
- http://www.arabp2p.com/
settings:
- name: username
type: text
label: Username
- name: password
type: password
label: Password
- name: sort
type: select
label: Sort requested from site
default: 3
options:
3: created
5: seeders
4: size
2: title
- name: type
type: select
label: Order requested from site
default: 2
options:
2: desc
1: asc
caps:
categorymappings:
# المرئيات العربية Arabic Movies
- {id: 14, cat: Movies, desc: "اسلامي (Islamic)"}
- {id: 19, cat: TV/Documentary, desc: "وثائقي (Documentary)"}
- {id: 70, cat: TV, desc: "تعليمي (Educational)"}
- {id: 41, cat: Movies, desc: "افلام عربيه (Arabic Movies)"}
- {id: 88, cat: Movies, desc: "افلام مدبلجه عربي (Arabic Dubbed Movies)"}
- {id: 44, cat: TV, desc: "مسلسلات عربية (Arabic Series)"}
- {id: 89, cat: TV, desc: "مسلسلات عربية كامله (Full Arabic Series)"}
- {id: 52, cat: TV, desc: "مسرحيات (Plays)"}
- {id: 71, cat: TV, desc: "مسلسلات مدبلجه عربي (Arabic Dubbed Series)"}
- {id: 90, cat: TV, desc: "برامج ومسابقات (Shows)"}
- {id: 111, cat: TV, desc: "2022 رمضان (2022 Ramadan)"}
# المرئيات الاجنبية Foreign Movies
- {id: 92, cat: TV/Foreign, desc: "تعليمي (Educational)"}
- {id: 93, cat: TV/Documentary, desc: "وثائقي (Documentary)"}
- {id: 45, cat: TV/Foreign, desc: "مسلسلات وبرامج اجنبيه (Serials)"}
- {id: 57, cat: TV/Foreign, desc: "مسلسلات آسيوية (Asian Series)"}
- {id: 42, cat: Movies/Foreign, desc: "افلام اجنبيه (Foreign)"}
- {id: 76, cat: Movies/3D, desc: "&ثلاثي الابعاد 3D (3D)"}
- {id: 74, cat: Movies/HD, desc: "جودة عالية HD"}
- {id: 59, cat: Movies/Foreign, desc: "افلام آسيوية (Asian Movies)"}
- {id: 86, cat: Movies/Foreign, desc: "افلام هنديه (Indian Movies)"}
# انمي مدبلج عربي Anime Arabic dubbed
- {id: 98, cat: TV/Anime, desc: "افلام (Movies)"}
- {id: 100, cat: TV/Anime, desc: "مسلسلات (Series)"}
- {id: 102, cat: TV/Anime, desc: "حلقات (Episdoes)"}
# انمي مترجم عربي Anime Arabic translator
- {id: 99, cat: TV/Anime, desc: "افلام (Movies)"}
- {id: 101, cat: TV/Anime, desc: "مسلسلات (Series)"}
- {id: 103, cat: TV/Anime, desc: "حلقات (Episodes)"}
- {id: 85, cat: TV/Anime, desc: "الكارتون الصامت والكلاسيكي (Cartoons)"}
# صوتيات Audio
- {id: 25, cat: Audio, desc: "القران الكريم (The Holy Quran)"}
- {id: 27, cat: Audio, desc: "محاضرات (Lectures)"}
- {id: 26, cat: Audio, desc: "اناشيد (Chants)"}
# برامج Software
- {id: 22, cat: PC, desc: "برامج عربية (Arabic Software)"}
- {id: 23, cat: PC, desc: "برامج عامه (Public Software)"}
- {id: 78, cat: PC/Mobile-iOS, desc: "iPad/iPhone"}
- {id: 79, cat: PC/Mobile-Android, desc: "android"}
# العاب Games
- {id: 30, cat: PC/Games, desc: "PC"}
- {id: 31, cat: Console/PS3, desc: "PS2"}
- {id: 53, cat: Console/Wii, desc: "wii"}
- {id: 55, cat: Console/PSP, desc: "PSP"}
- {id: 63, cat: Console/XBox, desc: "XBOX"}
- {id: 64, cat: Console/PS3, desc: "PS3"}
# اخرى Other
- {id: 17, cat: Books, desc: "كتب (Books)"}
- {id: 65, cat: Other, desc: "صور (Images)"}
- {id: 56, cat: Other, desc: "رياضي (Sport)"}
- {id: 46, cat: Other, desc: "منوع (Misc)"}
modes:
search: [q]
tv-search: [q, season, ep]
movie-search: [q]
music-search: [q]
book-search: [q]
login:
path: index.php?page=login
method: form
form: form[action^="index.php?page=login"]
inputs:
uid: "{{ .Config.username }}"
pwd: "{{ .Config.password }}"
error:
- selector: tr td span[style="color:#FF0000;"]
test:
path: index.php
selector: a[href^="logout.php?t="]
search:
paths:
# https://www.arabp2p.com/index.php?page=torrents&search=&category=0&active=0&internel=0
- path: index.php
inputs:
page: torrents
search: "{{ .Keywords }}"
category: "{{ if .Categories }}{{ range .Categories }}{{.}};{{end}}{{ else }}0{{ end }}"
# 0 all 1 activeonly 2 deadonly
active: 0
# 0 all 1 internal 2 external
internel: 0
order: "{{ .Config.sort }}"
by: "{{ .Config.type }}"
# does not support imdbid search or provide imdb link in results
rows:
selector: table.torrent tr.torrent
filters:
- name: andmatch
fields:
category:
selector: td a[href^="index.php?page=torrents&category="]
attribute: href
filters:
- name: querystring
args: category
title:
selector: td a[href^="index.php?page=torrent-details"]
details:
selector: td a[href^="index.php?page=torrent-details"]
attribute: href
download:
selector: td a[href^="download.php"]
attribute: href
date:
selector: td:nth-child(4) span
attribute: title
filters:
- name: append
args: " +00:00" # auto adjusted by site account profile
- name: dateparse
args: "2006-01-02 15:04:05 -07:00"
seeders:
selector: td:nth-child(5)
leechers:
selector: td:nth-child(6)
size:
selector: td:nth-child(7)
downloadvolumefactor:
case:
span.free: 0
"*": 1
uploadvolumefactor:
text: 1
minimumratio:
text: 0.8
minimumseedtime:
text: 259200 # 3 days
# xbtit
+133
View File
@@ -0,0 +1,133 @@
---
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
rows:
selector: data
attribute: attributes
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
+163 -131
View File
@@ -5,19 +5,16 @@ description: "HD-Only (HD-O) is a FRENCH Private Torrent Tracker for HD MOVIES /
language: fr-FR
type: private
encoding: UTF-8
followredirect: false
allowdownloadredirect: false
protocol: torrent
testlinktorrent: true
links:
- https://hd-only.org/
caps:
categorymappings:
- {id: 1, cat: Movies, desc: "Film", default: true}
- {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: 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"}
@@ -39,74 +36,17 @@ settings:
- name: password
type: password
label: Password
- name: info_search
type: info
label: Search Tweak
default: You can tweak the search query by using the following parameters.
- name: scene
type: checkbox
label: Scene Release only
default: false
- name: bitrate
type: select
label: Bitrate
default: all
options:
all: all
4320p: 4320p
2160p: 2160p
1440p: 1440p
1080p: 1080p
1080i: 1080i
720p: 720p
- name: format
type: select
label: Format
default: all
options:
all: all
x264: x264
VC-1: VC-1
AVC: AVC
MPEG-2: MPEG-2
x265: x265
HEVC: HEVC
VP9: VP9
Autre: others
- name: sort
type: select
label: Sort by
default: time
options:
time: created
year: year
size: size
snatched: snatched
seeders: seeders
leechers: leechers
random: random
- name: type
type: select
label: Order type
default: desc
options:
desc: descendant
asc: ascendant
- name: freeleech
type: checkbox
label: Freeleech only
label: Search freeleech only
default: false
- name: info_replacement
type: info
label: Replacements
default: You can replace some values by using the following parameters.
- name: multilang
type: checkbox
label: Replace MULTI in release name
label: Replace MULTI by another language in release name
default: false
- name: multilanguage
type: select
label: ... by this language
label: Replace MULTI by this language
default: FRENCH
options:
FRENCH: FRENCH
@@ -119,6 +59,25 @@ settings:
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
@@ -134,18 +93,19 @@ login:
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:
searchstr: "{{ .Keywords }}"
# 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 }}"
group_results: 0
encoding: "{{ if ne .Config.bitrate \"all\" }}{{ .Config.bitrate }}{{ else }}{{ end }}"
format: "{{ if ne .Config.format \"all\" }}{{ .Config.format }}{{ else }}{{ end }}"
freetorrent: "{{ if .Config.freeleech }}1{{ else }}{{ end }}"
scene: "{{ if .Config.scene }}1{{ else }}0{{ end }}"
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
@@ -154,73 +114,145 @@ search:
download:
selector: a[href^="torrents.php?action=download&"]
attribute: href
# title > step 1 - grab orginal title and normalize
title_result:
selector: div.group_info > a
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: ["\\s:\\s", " "]
- name: re_replace
args: ["\\s", "."]
- name: append
args: "."
# title > step 2 - grab movie year
title_year:
selector: div.group_info.clear
args: ["\\[(\\d{4})\\]", "$1"]
title_multilang:
text: "{{ .Result.title_phase1 }}"
filters:
- name: regexp
args: "\\s\\[(\\d{4})\\]\\s"
- name: append
args: "."
# title > step 3 - grab release group
title_group:
selector: div.group_info.clear > div.torrent_info > strong:last-child
attribute: title
# title > step 4 - grab release infos and normalize
title_infos:
selector: div.group_info.clear > div.torrent_info
remove: strong
- 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: toupper
- name: re_replace
args: ["\\sBLU-RAY\\s(ORIGINAL|4K|HD)\\s", "COMPLETE.BLURAY"]
args: ["(?i)([\\s|\\.|-]*vostfr[\\s|\\.|-]*)", ".ENGLISH."]
- name: re_replace
args: ["\\sBLU-RAY\\sREMUX\\s(4K|HD)\\s", "BLURAY.REMUX"]
- name: re_replace
args: ["\\sBLU-RAY\\sRIP\\s(4K|HD)\\s", "BLURAY"]
- name: re_replace
args: ["\\sWEB-DL/RIP\\s(4K|HD)\\s", "WEBDL"]
- name: re_replace
args: ["\\s(CUST_SUB|CUST|CRIT|WAC|MOC|BFI|MUET|EXC\\sNF|EXC\\sAMZ|EXC\\sYOU)\\s", ""]
- name: re_replace
args: ["\\s(VOF|STFR)\\s", ""]
- name: re_replace
args: ["\\sVO\\s", "MULTI"]
- name: re_replace
args: ["\\s(UN)\\s", "UNRATED"]
- name: re_replace
args: ["\\s(ES)\\s", "SPECIAL.EDITION"]
- name: re_replace
args: ["\\s(UC)\\s", "UNCUT"]
- name: re_replace
args: ["\\s(RM)\\s", "REMASTERED"]
- name: re_replace
args: ["\\s(VL)\\s", "EXTENDED"]
- name: re_replace
args: ["\\s(DC)\\s", "DIRECTORS.CUT"]
- name: re_replace
args: ["\\s+", ""]
- name: re_replace
args: ["\/+", "."]
- name: trim
args: "."
- name: re_replace
args: ["VFF.VFQ", "VFF"]
# title > step 5 - finale concatenation
args: ["(?i)([\\s|\\.|-]*subfrench[\\s|\\.|-]*)", ".ENGLISH."]
title:
text: "{{ .Result.title_result }}{{ .Result.title_year }}{{ .Result.title_infos }}{{ if .Result.title_group }}-{{ .Result.title_group }}{{ else }}-HDO{{ end }}"
### NEXT
text: "{{ if .Config.vostfr }}{{ .Result.title_vostfr }}{{ else }}{{ .Result.title_phase2 }}{{ end }}"
description:
selector: div.group_info
poster:
+169
View File
@@ -0,0 +1,169 @@
---
id: lat-team-api
name: Lat-Team (API)
description: "Lat-Team is a SPANISH Private Torrent Tracker for MOVIES / TV"
language: es-ES
type: private
encoding: UTF-8
links:
- https://lat-team.com/
caps:
categorymappings:
- {id: 1, cat: Movies, desc: "Peliculas"}
- {id: 2, cat: TV, desc: "TV Series"}
- {id: 3, cat: Audio, desc: "Musica"}
- {id: 4, cat: Console, desc: "Juegos"}
- {id: 5, cat: TV/Anime, desc: "Anime"}
- {id: 6, cat: Movies/Other, desc: "Retro Pelicula"}
- {id: 7, cat: TV/Other, desc: "Retro Serie TV"}
- {id: 8, cat: TV/Foreign, desc: "Telenovelas y Teleseries"}
- {id: 9, cat: Audio/Video, desc: "Conciertos"}
- {id: 10, cat: TV/Documentary, desc: "Documentales"}
- {id: 11, cat: Other, desc: "Videotutoriales y Educativo"}
- {id: 12, cat: XXX, desc: "XXX"}
- {id: 16, cat: TV/Sport, desc: "Deportes"}
- {id: 17, cat: PC, desc: "Sistemas Operativos"}
- {id: 18, cat: Books, desc: "E-Books"}
- {id: 19, cat: Audio/Audiobook, desc: "Audiolibros"}
- {id: 20, cat: Movies/Other, desc: "Películas Oscars"}
- {id: 21, cat: Audio/Video, desc: "VideoMixes"}
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://lat-team.com/\" target =_blank>Lat-Team</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
keywordsfilters:
- name: re_replace
args: ["(?i)\\bS(\\d+)", "T$1"]
rows:
selector: data
attribute: attributes
count:
selector: meta.total
fields:
categorydesc:
selector: category
title_vose:
selector: name:contains(VOSE)
optional: true
filters:
- name: re_replace
args: ["^ *\\[[^\\]]*\\] *", ""] # Remove prefix tags
- name: re_replace
args: ["(?i)\\bT(\\d+)", "S$1"]
- name: re_replace
args: ["UHDRip", "BDRip"] # Fix for Radarr
- name: append
args: " ENGLiSH"
title_notvose:
selector: name:not(:contains(VOSE))
optional: true
filters:
- name: re_replace
args: ["^ *\\[[^\\]]*\\] *", ""] # Remove prefix tags
- name: re_replace
args: ["(?i)\\bT(\\d+)", "S$1"]
- name: re_replace
args: ["UHDRip", "BDRip"] # Fix for Radarr
- name: append
args: " SPANiSH"
title:
text: "{{ if .Result.title_vose }}{{ .Result.title_vose }}{{ else }}{{ .Result.title_notvose }}{{ end }}"
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:
# 4 days (as seconds = 4 x 24 x 60 x 60)
text: 345600
# json UNIT3D 5.3.0
+142
View File
@@ -0,0 +1,142 @@
---
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
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
# json UNIT3D 6.0.6
+143
View File
@@ -0,0 +1,143 @@
---
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.6
+77 -77
View File
@@ -7,95 +7,96 @@ type: private
encoding: windows-1252
requestDelay: 2.5
links:
- https://xthor.tk
- https://xthor.tk/
legacylinks:
- https://xthor.to
- https://xthor.bz/
- https://xthor.to/
caps:
categorymappings:
# Movies / Films
- { id: 118, cat: Movies/BluRay, desc: "Films/2160p/Bluray" }
- { id: 119, cat: Movies/UHD, desc: "Films/2160p/Remux" }
- { id: 107, cat: Movies/UHD, desc: "Films/2160p/x265" }
- { id: 1, cat: Movies/BluRay, desc: "Films/1080p/BluRay" }
- { id: 2, cat: Movies/HD, desc: "Films/1080p/Remux" }
- { id: 100, cat: Movies/HD, desc: "Films/1080p/x265" }
- { id: 4, cat: Movies/HD, desc: "Films/1080p/x264" }
- { id: 5, cat: Movies/HD, desc: "Films/720p/x264" }
- { id: 7, cat: Movies/SD, desc: "Films/SD/x264" }
- { id: 3, cat: Movies/3D, desc: "Films/3D" }
- { id: 6, cat: Movies/SD, desc: "Films/XviD" }
- { id: 8, cat: Movies/DVD, desc: "Films/DVD" }
- { id: 122, cat: Movies/HD, desc: "Films/HDTV" }
- { id: 94, cat: Movies/WEB-DL, desc: "Films/WEBDL" }
- { id: 95, cat: Movies/WEB-DL, desc: "Films/WEBRiP" }
- { id: 12, cat: TV/Documentary, desc: "Films/Documentaire" }
- { id: 31, cat: Movies/Other, desc: "Films/Animation" }
- { id: 33, cat: Movies/Other, desc: "Films/Spectacle" }
- { id: 125, cat: TV/Sport, desc: "Films/Sports" }
- { id: 20, cat: Audio/Video, desc: "Films/Concerts, Clips" }
- { id: 9, cat: Movies/Other, desc: "Films/VOSTFR" }
- {id: 118, cat: Movies/BluRay, desc: "Films/2160p/Bluray"}
- {id: 119, cat: Movies/UHD, desc: "Films/2160p/Remux"}
- {id: 107, cat: Movies/UHD, desc: "Films/2160p/x265"}
- {id: 1, cat: Movies/BluRay, desc: "Films/1080p/BluRay"}
- {id: 2, cat: Movies/HD, desc: "Films/1080p/Remux"}
- {id: 100, cat: Movies/HD, desc: "Films/1080p/x265"}
- {id: 4, cat: Movies/HD, desc: "Films/1080p/x264"}
- {id: 5, cat: Movies/HD, desc: "Films/720p/x264"}
- {id: 7, cat: Movies/SD, desc: "Films/SD/x264"}
- {id: 3, cat: Movies/3D, desc: "Films/3D"}
- {id: 6, cat: Movies/SD, desc: "Films/XviD"}
- {id: 8, cat: Movies/DVD, desc: "Films/DVD"}
- {id: 122, cat: Movies/HD, desc: "Films/HDTV"}
- {id: 94, cat: Movies/WEB-DL, desc: "Films/WEBDL"}
- {id: 95, cat: Movies/WEB-DL, desc: "Films/WEBRiP"}
- {id: 12, cat: TV/Documentary, desc: "Films/Documentaire"}
- {id: 31, cat: Movies/Other, desc: "Films/Animation"}
- {id: 33, cat: Movies/Other, desc: "Films/Spectacle"}
- {id: 125, cat: TV/Sport, desc: "Films/Sports"}
- {id: 20, cat: Audio/Video, desc: "Films/Concerts, Clips"}
- {id: 9, cat: Movies/Other, desc: "Films/VOSTFR"}
# TV Series / Series TV
- { id: 104, cat: TV/Other, desc: "Series/BluRay" }
- { id: 13, cat: TV, desc: "Series/Pack VF" }
- { id: 15, cat: TV/HD, desc: "Series/HD VF" }
- { id: 14, cat: TV/SD, desc: "Series/SD VF" }
- { id: 98, cat: TV/Other, desc: "Series/Pack VOSTFR" }
- { id: 17, cat: TV/HD, desc: "Series/HD VOSTFR" }
- { id: 16, cat: TV/SD, desc: "Series/SD VOSTFR" }
- { id: 101, cat: TV/Anime, desc: "Series/Packs Anime" }
- { id: 32, cat: TV/Anime, desc: "Series/Animes" }
- { id: 110, cat: TV/Anime, desc: "Series/Anime VOSTFR" }
- { id: 123, cat: TV/Other, desc: "Series/Animation" }
- { id: 109, cat: TV/Documentary, desc: "Series/DOC" }
- { id: 34, cat: TV/Sport, desc: "Series/Sport" }
- { id: 30, cat: TV/Other, desc: "Series/Emission TV" }
- {id: 104, cat: TV/Other, desc: "Series/BluRay"}
- {id: 13, cat: TV, desc: "Series/Pack VF"}
- {id: 15, cat: TV/HD, desc: "Series/HD VF"}
- {id: 14, cat: TV/SD, desc: "Series/SD VF"}
- {id: 98, cat: TV/Other, desc: "Series/Pack VOSTFR"}
- {id: 17, cat: TV/HD, desc: "Series/HD VOSTFR"}
- {id: 16, cat: TV/SD, desc: "Series/SD VOSTFR"}
- {id: 101, cat: TV/Anime, desc: "Series/Packs Anime"}
- {id: 32, cat: TV/Anime, desc: "Series/Animes"}
- {id: 110, cat: TV/Anime, desc: "Series/Anime VOSTFR"}
- {id: 123, cat: TV/Other, desc: "Series/Animation"}
- {id: 109, cat: TV/Documentary, desc: "Series/DOC"}
- {id: 34, cat: TV/Sport, desc: "Series/Sport"}
- {id: 30, cat: TV/Other, desc: "Series/Emission TV"}
# Porn / XxX
- { id: 36, cat: XXX, desc: "MISC/XxX/Films" }
- { id: 105, cat: XXX, desc: "MISC/XxX/Séries" }
- { id: 114, cat: XXX, desc: "MISC/XxX/Lesbiennes" }
- { id: 115, cat: XXX, desc: "MISC/XxX/Gays" }
- { id: 113, cat: XXX, desc: "MISC/XxX/Hentai" }
- { id: 120, cat: XXX, desc: "MISC/XxX/Magazines" }
- {id: 36, cat: XXX, desc: "MISC/XxX/Films"}
- {id: 105, cat: XXX, desc: "MISC/XxX/Séries"}
- {id: 114, cat: XXX, desc: "MISC/XxX/Lesbiennes"}
- {id: 115, cat: XXX, desc: "MISC/XxX/Gays"}
- {id: 113, cat: XXX, desc: "MISC/XxX/Hentai"}
- {id: 120, cat: XXX, desc: "MISC/XxX/Magazines"}
# Books / Livres
- { id: 24, cat: Books/EBook, desc: "Livres/Romans" }
- { id: 124, cat: Audio/Audiobook, desc: "Livres/Audio Books" }
- { id: 96, cat: Books/Mags, desc: "Livres/Magazines" }
- { id: 99, cat: Books/Other, desc: "Livres/Bandes dessinées" }
- { id: 116, cat: Books/EBook, desc: "Livres/Romans Jeunesse" }
- { id: 102, cat: Books/Comics, desc: "Livres/Comics" }
- { id: 103, cat: Books/Other, desc: "Livres/Mangas" }
- {id: 24, cat: Books/EBook, desc: "Livres/Romans"}
- {id: 124, cat: Audio/Audiobook, desc: "Livres/Audio Books"}
- {id: 96, cat: Books/Mags, desc: "Livres/Magazines"}
- {id: 99, cat: Books/Other, desc: "Livres/Bandes dessinées"}
- {id: 116, cat: Books/EBook, desc: "Livres/Romans Jeunesse"}
- {id: 102, cat: Books/Comics, desc: "Livres/Comics"}
- {id: 103, cat: Books/Other, desc: "Livres/Mangas"}
# Softwares / Logiciels
- { id: 25, cat: PC/Games, desc: "Logiciels/Jeux PC" }
- { id: 27, cat: Console/PS3, desc: "Logiciels/Playstation" }
- { id: 111, cat: PC/Mac, desc: "Logiciels/Jeux MAC" }
- { id: 26, cat: Console/XBox 360, desc: "Logiciels/XboX" }
- { id: 112, cat: PC, desc: "Logiciels/Jeux Linux" }
- { id: 28, cat: Console/Wii, desc: "Logiciels/Nintendo" }
- { id: 29, cat: Console/NDS, desc: "Logiciels/NDS" }
- { id: 117, cat: PC, desc: "Logiciels/ROM" }
- { id: 21, cat: PC, desc: "Logiciels/Applis PC" }
- { id: 22, cat: PC/Mac, desc: "Logiciels/Applis Mac" }
- { id: 23, cat: PC/Mobile-Android, desc: "Logiciels/Smartphone" }
- {id: 25, cat: PC/Games, desc: "Logiciels/Jeux PC"}
- {id: 27, cat: Console/PS3, desc: "Logiciels/Playstation"}
- {id: 111, cat: PC/Mac, desc: "Logiciels/Jeux MAC"}
- {id: 26, cat: Console/XBox 360, desc: "Logiciels/XboX"}
- {id: 112, cat: PC, desc: "Logiciels/Jeux Linux"}
- {id: 28, cat: Console/Wii, desc: "Logiciels/Nintendo"}
- {id: 29, cat: Console/NDS, desc: "Logiciels/NDS"}
- {id: 117, cat: PC, desc: "Logiciels/ROM"}
- {id: 21, cat: PC, desc: "Logiciels/Applis PC"}
- {id: 22, cat: PC/Mac, desc: "Logiciels/Applis Mac"}
- {id: 23, cat: PC/Mobile-Android, desc: "Logiciels/Smartphone"}
modes:
search: [ q ]
movie-search: [ q, tmdbid ]
tv-search: [ q, season, ep ]
book-search: [ q ]
search: [q]
movie-search: [q, tmdbid]
tv-search: [q, season, ep]
book-search: [q]
settings:
- name: apikey
- name: passkey
type: text
label: PassKey
label: Passkey
- name: info_key
type: info
label: About your Passkey
default: "Find your PassKey on <a href=\"https://xthor.tk/api_doc.php\" target =_blank>Xthor > API page</a>."
default: "Find your Passkey on <a href=\"https://xthor.tk/api_doc.php\" target =_blank>Xthor > API page</a>."
- name: freeleech
type: checkbox
label: Search freeleech only
@@ -107,14 +108,14 @@ settings:
- name: subfrench
type: text
label: Replace "VOSTFR/SUBFRENCH" by
default:
default: ""
search:
paths:
# https://api.xthor.tk/?passkey=<redacted>&search=&category=&freeleech=&tmdbid=&size=&accent=&price=&page=
- path: "https://api.xthor.tk/"
inputs:
passkey: "{{ .Config.apikey }}"
passkey: "{{ .Config.passkey }}"
category: "{{ if .Categories }}{{ range .Categories }}{{.}}+{{end}}{{ else }}{{ end }}"
search: "{{ if .Query.TMDBID }}{{ else }}{{ .Keywords }}{{ end }}"
tmdbid: "{{ .Query.TMDBID }}"
@@ -138,27 +139,27 @@ search:
text: "{{ .Result.title_original }}"
filters:
- name: re_replace
args: [ "(?i)[\\.\\s\\[\\-]multi[\\.\\s\\]\\-]", ".{{ .Config.multilanguage }}." ]
args: ["(?i)[\\.\\s\\[\\-]multi[\\.\\s\\]\\-]", ".{{ .Config.multilanguage }}."]
title_multi_out:
text: "{{ if .Config.multilanguage }}{{ .Result.title_multi }}{{ else }}{{ .Result.title_original }}{{ end }}"
title_vostfr:
text: "{{ .Result.title_multi_out }}"
filters:
- name: re_replace
args: [ "(?i)[\\.\\s\\[\\-]vostfr[\\.\\s\\]\\-]", ".{{ .Config.subfrench }}." ]
args: ["(?i)[\\.\\s\\[\\-]vostfr[\\.\\s\\]\\-]", ".{{ .Config.subfrench }}."]
- name: re_replace
args: [ "(?i)[\\.\\s\\[\\-]subfrench[\\.\\s\\]\\-]", ".{{ .Config.subfrench }}." ]
args: ["(?i)[\\.\\s\\[\\-]subfrench[\\.\\s\\]\\-]", ".{{ .Config.subfrench }}."]
title:
text: "{{ if .Config.subfrench }}{{ .Result.title_vostfr }}{{ else }}{{ .Result.title_multi_out }}{{ end }}"
details:
text: "{{ .Config.sitelink }}/details.php?id={{ .Result.id }}"
text: "{{ .Config.sitelink }}details.php?id={{ .Result.id }}"
download:
selector: download_link
poster:
selector: descr
filters:
- name: regexp
args: ["({{ .Config.sitelink }}/info_images\\/allocine\\/covers\\/film\\/small_\\d+?\\.jpg)"]
args: ["({{ .Config.sitelink }}info_images\\/allocine\\/covers\\/film\\/small_\\d+?\\.jpg)"]
tmdbid:
selector: tmdb_id
files:
@@ -179,13 +180,12 @@ search:
case:
0: 1 # not free
1: 0 # freeleech
text: 0
uploadvolumefactor:
text: 1
minimumseedtime:
# 24 hours (as seconds = 1 x 24 x 60 x 60)
text: 86400
minimumratio:
# minimum ratio per torrent is 0.8
# minimum ratio per torrent is 0.8
text: 0.8
# json api