new stuff
This commit is contained in:
parent
5566054794
commit
fd77c332fb
218
config/prowlarr/Definitions/0daykiev.yml
Normal file
218
config/prowlarr/Definitions/0daykiev.yml
Normal file
|
@ -0,0 +1,218 @@
|
|||
---
|
||||
id: 0daykiev
|
||||
name: 0day.kiev
|
||||
description: "0day.kiev.ua is a UKRAINIAN Private Torrent Tracker for MOVIES / TV / GENERAL"
|
||||
language: uk-UA
|
||||
type: private
|
||||
encoding: windows-1251
|
||||
links:
|
||||
- https://tracker.0day.community/
|
||||
legacylinks:
|
||||
- https://tracker.0day.kiev.ua/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 10, cat: Movies, desc: "Фильмы (Movies)"}
|
||||
- {id: 16, cat: Movies/HD, desc: "HD / Фильмы (HD / Movies)"}
|
||||
- {id: 30, cat: TV/HD, desc: "HD / Сериалы (HD / TV Shows)"}
|
||||
- {id: 27, cat: Movies/HD, desc: "HD / Мультфильмы (HD / Cartoons)"}
|
||||
- {id: 17, cat: PC/Games, desc: "Игры / ПК (Games / PC)"}
|
||||
- {id: 14, cat: Audio, desc: "Музыка / Аудио (Music / Audio)"}
|
||||
- {id: 29, cat: TV, desc: "Мультсериалы (TV Series)"}
|
||||
- {id: 11, cat: Movies, desc: "Мультфильмы (Cartoons)"}
|
||||
- {id: 28, cat: TV/Documentary, desc: "HD / Документальное (HD / Documentary)"}
|
||||
- {id: 18, cat: PC/0day, desc: "Софт / Windows (Software / Windows)"}
|
||||
- {id: 19, cat: TV, desc: "TV / Сериалы (TV shows)"}
|
||||
- {id: 31, cat: Other, desc: "Прочее (Other)"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
music-search: [q]
|
||||
|
||||
settings:
|
||||
- name: username
|
||||
type: text
|
||||
label: Username
|
||||
- name: password
|
||||
type: password
|
||||
label: Password
|
||||
- name: stripcyrillic
|
||||
type: checkbox
|
||||
label: Strip Cyrillic Letters
|
||||
default: true
|
||||
- name: freeleech
|
||||
type: checkbox
|
||||
label: Search freeleech only
|
||||
default: false
|
||||
- name: sort
|
||||
type: select
|
||||
label: Sort requested from site
|
||||
default: 4
|
||||
options:
|
||||
4: created
|
||||
7: seeders
|
||||
5: size
|
||||
1: title
|
||||
- name: type
|
||||
type: select
|
||||
label: Order requested from site
|
||||
default: desc
|
||||
options:
|
||||
desc: desc
|
||||
asc: asc
|
||||
- name: info_activity
|
||||
type: info
|
||||
label: Account Inactivity
|
||||
default: "The tracker has a system for deleting inactive accounts after 6 months from your last visit to the tracker."
|
||||
|
||||
login:
|
||||
path: takelogin.php
|
||||
method: post
|
||||
inputs:
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
returnto: "/browse.php"
|
||||
error:
|
||||
- selector: div.maintitle:contains("Ошибка")
|
||||
message:
|
||||
selector: div.borderwrap table.embedded
|
||||
test:
|
||||
path: browse.php
|
||||
selector: a[href="/logout.php"]
|
||||
|
||||
search:
|
||||
paths:
|
||||
# https://tracker.0day.kiev.ua/browse.php?c10=1&c27=1&search=endgame&incldead=1&where=0
|
||||
- path: browse.php
|
||||
inputs:
|
||||
$raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
|
||||
search: "{{ .Keywords }}"
|
||||
# 0 active, 1 incldead, 2 onlydead, 3 gold, 4 noseed, 5 silver
|
||||
incldead: "{{ if .Config.freeleech }}3{{ else }}1{{ end }}"
|
||||
# 0 title, 1 title and descr
|
||||
where: 0
|
||||
sort: "{{ .Config.sort }}"
|
||||
type: "{{ .Config.type }}"
|
||||
|
||||
keywordsfilters:
|
||||
- name: diacritics
|
||||
args: replace
|
||||
- name: re_replace # S01 to сезон 1
|
||||
args: ["(?i)\\bS0*(\\d+)\\b", "сезон $1"]
|
||||
- name: re_replace # E01 to сері 1
|
||||
args: ["(?i)\\bE0*(\\d+)\\b", "сері $1"]
|
||||
- name: re_replace # S01E01 to сезон 1 сері 1
|
||||
args: ["(?i)\\bS0*(\\d+)E0*(\\d+)\\b", "сезон $1 сері $2"]
|
||||
|
||||
rows:
|
||||
selector: table > tbody > tr.rowtorrentinfo
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: a[href^="browse.php?cat="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: cat
|
||||
title:
|
||||
selector: a[href^="details.php?id="]
|
||||
filters:
|
||||
# normalize to SXXEYY format
|
||||
- name: re_replace
|
||||
args: ["(?i)[CС]езони?[\\s:]*(\\d+(?:-\\d+)?).+?(?:[CС]ері[їяй]|Епізоди?)[\\s:]*(\\d+(?:-\\d+)?)\\s*з\\s*(\\w?)", "S$1E$2 of $3"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(\\d+(?:-\\d+)?)\\s*[CС]езони?.+?(\\d+(?:-\\d+)?)\\s*з\\s*(\\w?)(?:\\s*(?:[CС]ері[їяй]|Епізоди?))?", "S$1E$2 of $3"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(\\d+(?:-\\d+)?)\\s*[CС]езони?.+?(\\d+(?:-\\d+)?)\\s*(?:[CС]ері[їяй]|Епізоди?)\\s+з\\s*(\\w?)", "S$1E$2 of $3"]
|
||||
- name: re_replace
|
||||
args: ["(?i)[CС]езони?[\\s:]*(\\d+(?:-\\d+)?).+?(\\d+(?:-\\d+)?)\\s*з\\s*(\\w?)(?:\\s*(?:[CС]ері[їяй]|Епізоди?))?", "S$1E$2 of $3"]
|
||||
- name: re_replace
|
||||
args: ["(?i)[CС]езони?[\\s:]*(\\d+(?:-\\d+)?).+?(\\d+(?:-\\d+)?)\\s*(?:[CС]ері[їяй]|Епізоди?)\\s+з\\s*(\\w?)", "S$1E$2 of $3"]
|
||||
- name: re_replace
|
||||
args: ["(?i)[CС]езони?[\\s:]*(\\d+(?:-\\d+)?).+?(?:[CС]ері[їяй]|Епізоди?)[\\s:]*(\\d+(?:-\\d+)?)", "S$1E$2"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(\\d+(?:-\\d+)?)\\s*[CС]езони?.+?(\\d+(?:-\\d+)?)(?:\\s*(?:[CС]ері[їяй]|Епізоди?))", "S$1E$2"]
|
||||
- name: re_replace
|
||||
args: ["(?i)[CС]езони?[\\s:]*(\\d+(?:-\\d+)?).+?(\\d+(?:-\\d+)?)(?:\\s*(?:[CС]ері[їяй]|Епізоди?))", "S$1E$2"]
|
||||
- name: re_replace
|
||||
args: ["(?i)[CС]езони?[\\s:]*(\\d+(?:-\\d+)?)", "S$1"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(\\d+(?:-\\d+)?)\\s+[CС]езони?", "S$1"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(?:[CС]ері[їяй]|Епізоди?)[\\s:]*(\\d+(?:-\\d+)?)\\s*з\\s*(\\w?)", "E$1 of $2"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(\\d+(?:-\\d+)?)\\s*з\\s*(\\w?)(?:\\s*(?:[CС]ері[їяй]|Епізоди?))", "E$1 of $2"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(\\d+(?:-\\d+)?)\\s+(?:[CС]ері[їяй]|Епізоди?)\\s+з\\s*(\\w?)", "E$1 of $2"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(?:[CС]ері[їяй]|Епізоди?)[\\s:]*(\\d+(?:-\\d+)?)", "E$1"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(\\d+(?:-\\d+)?)\\s+(?:[CС]ері[їяй]|Епізоди?)", "E$1"]
|
||||
- name: re_replace
|
||||
args: ["(\\([\\p{IsCyrillic}\\W]+\\))|(^[\\p{IsCyrillic}\\W\\d]+\\/ )|([\\p{IsCyrillic} \\-]+,+)|([\\p{IsCyrillic}]+)", "{{ if .Config.stripcyrillic }}{{ else }}$1$2$3$4{{ end }}"]
|
||||
- name: re_replace
|
||||
args: ["(?i)\\bHDTV\\s?Rip\\b", "HDTV"]
|
||||
- name: re_replace
|
||||
args: ["(?i)\\bSAT\\s?Rip\\b", "HDTV"]
|
||||
- name: re_replace
|
||||
args: ["(?i)\\bWEB\\s?DL\\s?Rip\\b", "WEBDL"]
|
||||
- name: re_replace
|
||||
args: ["(?i)\\bWEB Rip\\b", "WEBRip"]
|
||||
- name: re_replace
|
||||
args: ["(?i)\\bWEB DL\\b", "WEBDL"]
|
||||
- name: re_replace
|
||||
args: ["[\\[\\(\\{<«][\\s\\W]*[\\]\\)\\}>»]", ""]
|
||||
- name: re_replace
|
||||
args: ["^[\\s&,\\.!\\?\\+\\-_\\|\\/':]+", ""]
|
||||
- name: re_replace
|
||||
args: ["(?i)^\\(\\s*([SE]\\d+.*?)\\s*\\)[\\s\\/\\|]*(.+)", "$2 $1"]
|
||||
details:
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href^="download.php?id="]
|
||||
attribute: href
|
||||
date:
|
||||
selector: td:nth-child(2) i
|
||||
filters:
|
||||
- name: append
|
||||
args: " +02:00" # EET
|
||||
- name: dateparse
|
||||
args: "yyyy-MM-dd HH:mm:ss zzz"
|
||||
size:
|
||||
selector: td:nth-child(4)
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["ТБ", "TB"]
|
||||
- name: replace
|
||||
args: ["ГБ", "GB"]
|
||||
- name: replace
|
||||
args: ["МБ", "MB"]
|
||||
- name: replace
|
||||
args: ["КБ", "KB"]
|
||||
grabs:
|
||||
selector: td:nth-child(5)
|
||||
seeders:
|
||||
selector: td:nth-child(6)
|
||||
filters:
|
||||
- name: split
|
||||
args: ["|", 0]
|
||||
leechers:
|
||||
selector: td:nth-child(6)
|
||||
filters:
|
||||
- name: split
|
||||
args: ["|", 1]
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
img[src="pic/freedownload.gif"]: 0
|
||||
img[src="pic/silverdownload.gif"]: 0.5
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
minimumratio:
|
||||
text: 0.2
|
||||
description:
|
||||
selector: a[href^="details.php?id="]
|
||||
# engine n/a
|
76
config/prowlarr/Definitions/0magnet.yml
Normal file
76
config/prowlarr/Definitions/0magnet.yml
Normal file
|
@ -0,0 +1,76 @@
|
|||
---
|
||||
id: 0magnet
|
||||
name: 0Magnet
|
||||
description: "ØMagnet is a CHINESE Public tracker for Asian 3X (JAV)"
|
||||
language: en-US
|
||||
type: public
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://0magnet.co/
|
||||
- https://13mag.net/
|
||||
- https://16mag.net/
|
||||
legacylinks:
|
||||
- https://0magnet.com/
|
||||
- https://9mag.net/
|
||||
|
||||
caps:
|
||||
categories:
|
||||
XXX: XXX
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
|
||||
settings: []
|
||||
|
||||
download:
|
||||
infohash:
|
||||
hash:
|
||||
selector: a[href^="magnet:?xt"]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: regexp
|
||||
args: ([A-F|a-f|0-9]{40})
|
||||
title:
|
||||
selector: a[href^="magnet:?xt"]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "&dn=(.+?)&"
|
||||
- name: validfilename
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: search
|
||||
inputs:
|
||||
q: "{{ if .Keywords }}{{ .Keywords }}{{ else }}{{ .Today.Year }}{{ end }}"
|
||||
|
||||
rows:
|
||||
selector: table > tbody > tr:has(td)
|
||||
filters:
|
||||
- name: andmatch
|
||||
|
||||
fields:
|
||||
category:
|
||||
text: XXX
|
||||
title:
|
||||
selector: a
|
||||
remove: p
|
||||
details:
|
||||
selector: a
|
||||
attribute: href
|
||||
download:
|
||||
selector: a
|
||||
attribute: href
|
||||
date:
|
||||
text: now
|
||||
size:
|
||||
selector: td.td-size
|
||||
seeders:
|
||||
text: 1
|
||||
leechers:
|
||||
text: 1
|
||||
downloadvolumefactor:
|
||||
text: 0
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
# engine n/a
|
295
config/prowlarr/Definitions/1337x.yml
Normal file
295
config/prowlarr/Definitions/1337x.yml
Normal file
|
@ -0,0 +1,295 @@
|
|||
---
|
||||
id: 1337x
|
||||
name: 1337x
|
||||
description: "1337X is a Public torrent site that offers verified torrent downloads"
|
||||
language: en-US
|
||||
type: public
|
||||
encoding: UTF-8
|
||||
requestDelay: 2
|
||||
links:
|
||||
- https://1337x.to/
|
||||
- https://1337x.st/
|
||||
- https://x1337x.ws/
|
||||
- https://x1337x.eu/
|
||||
- https://x1337x.se/
|
||||
- https://1337x.so/
|
||||
- https://1337x.unblockit.africa/
|
||||
- https://1337x.unblockninja.com/
|
||||
- https://1337x.ninjaproxy1.com/
|
||||
- https://1337x.proxyninja.org/
|
||||
- https://1337x.torrentbay.st/
|
||||
legacylinks:
|
||||
- https://1337x.is/
|
||||
- https://1337x.gd/
|
||||
- https://1337x.nocensor.lol/
|
||||
- https://1337x.unblockit.ink/
|
||||
- https://1337x.nocensor.art/
|
||||
- https://1337x.unblockit.bio/
|
||||
- https://1337x.unblockit.boo/
|
||||
- https://1337x.mrunblock.guru/
|
||||
- https://1337x.mrunblock.life/
|
||||
- https://1337x.unblockit.click/
|
||||
- https://1337x.unblockit.asia/
|
||||
- https://1337x.unblockit.mov/
|
||||
- https://1337x.unblockit.rsvp/
|
||||
- https://1337x.unblockit.vegas/
|
||||
- https://1337x.unblockit.esq/
|
||||
- https://1337x.unblockit.zip/
|
||||
- https://1337x.unblockit.foo/
|
||||
- https://1337x.unblockit.ing/
|
||||
- https://1337x.mrunblock.bond/
|
||||
- https://1337x.unblockit.date/
|
||||
- https://1337x.unblockit.dad/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
# Anime
|
||||
- {id: 28, cat: TV/Anime, desc: "Anime/Anime"}
|
||||
- {id: 78, cat: TV/Anime, desc: "Anime/Dual Audio"}
|
||||
- {id: 79, cat: TV/Anime, desc: "Anime/Dubbed"}
|
||||
- {id: 80, cat: TV/Anime, desc: "Anime/Subbed"}
|
||||
- {id: 81, cat: TV/Anime, desc: "Anime/Raw"}
|
||||
# Audio
|
||||
- {id: 22, cat: Audio/MP3, desc: "Music/MP3"}
|
||||
- {id: 23, cat: Audio/Lossless, desc: "Music/Lossless"}
|
||||
- {id: 24, cat: Audio, desc: "Music/DVD"}
|
||||
- {id: 25, cat: Audio/Video, desc: "Music/Video"}
|
||||
- {id: 26, cat: Audio, desc: "Music/Radio"}
|
||||
- {id: 27, cat: Audio/Other, desc: "Music/Other"}
|
||||
- {id: 53, cat: Audio, desc: "Music/Album"}
|
||||
- {id: 58, cat: Audio, desc: "Music/Box set"}
|
||||
- {id: 59, cat: Audio, desc: "Music/Discography"}
|
||||
- {id: 60, cat: Audio, desc: "Music/Single"}
|
||||
- {id: 68, cat: Audio, desc: "Music/Concerts"}
|
||||
- {id: 69, cat: Audio, desc: "Music/AAC"}
|
||||
# Movies
|
||||
- {id: 1, cat: Movies/DVD, desc: "Movies/DVD"}
|
||||
- {id: 2, cat: Movies/SD, desc: "Movies/Divx/Xvid"}
|
||||
- {id: 3, cat: Movies, desc: "Movies/SVCD/VCD"}
|
||||
- {id: 4, cat: Movies/Foreign, desc: "Movies/Dubs/Dual Audio"}
|
||||
- {id: 42, cat: Movies/HD, desc: "Movies/HD"}
|
||||
- {id: 54, cat: Movies/HD, desc: "Movies/h.264/x264"}
|
||||
- {id: 55, cat: Movies, desc: "Movies/Mp4"}
|
||||
- {id: 66, cat: Movies/3D, desc: "Movies/3D"}
|
||||
- {id: 70, cat: Movies/HD, desc: "Movies/HEVC/x265"}
|
||||
- {id: 73, cat: Movies, desc: "Movies/Bollywood"}
|
||||
- {id: 76, cat: Movies/UHD, desc: "Movies/UHD"}
|
||||
# TV
|
||||
- {id: 5, cat: TV, desc: "TV/DVD"}
|
||||
- {id: 6, cat: TV, desc: "TV/Divx/Xvid"}
|
||||
- {id: 7, cat: TV, desc: "TV/SVCD/VCD"}
|
||||
- {id: 41, cat: TV/HD, desc: "TV/HD"}
|
||||
- {id: 71, cat: TV, desc: "TV/HEVC/x265"}
|
||||
- {id: 74, cat: TV, desc: "TV/Cartoons"}
|
||||
- {id: 75, cat: TV/SD, desc: "TV/SD"}
|
||||
- {id: 9, cat: TV/Documentary, desc: "TV/Documentary"}
|
||||
# Apps
|
||||
- {id: 18, cat: PC, desc: "Apps/PC Software"}
|
||||
- {id: 19, cat: PC/Mac, desc: "Apps/Mac"}
|
||||
- {id: 20, cat: PC, desc: "Apps/Linux"}
|
||||
- {id: 21, cat: PC, desc: "Apps/Other"}
|
||||
- {id: 56, cat: PC/Mobile-Android, desc: "Apps/Android"}
|
||||
- {id: 57, cat: PC/Mobile-iOS, desc: "Apps/iOS"}
|
||||
# Games
|
||||
- {id: 10, cat: PC/Games, desc: "Games/PC Game"}
|
||||
- {id: 11, cat: Console/PS3, desc: "Games/PS2"}
|
||||
- {id: 12, cat: Console/PSP, desc: "Games/PSP"}
|
||||
- {id: 13, cat: Console/XBox, desc: "Games/Xbox"}
|
||||
- {id: 14, cat: Console/XBox 360, desc: "Games/Xbox360"}
|
||||
- {id: 15, cat: Console/PS3, desc: "Games/PS1"}
|
||||
- {id: 16, cat: Console/Other, desc: "Games/Dreamcast"}
|
||||
- {id: 17, cat: PC/Mobile-Other, desc: "Games/Other"}
|
||||
- {id: 43, cat: Console/PS3, desc: "Games/PS3"}
|
||||
- {id: 44, cat: Console/Wii, desc: "Games/Wii"}
|
||||
- {id: 45, cat: Console/NDS, desc: "Games/DS"}
|
||||
- {id: 46, cat: Console/Other, desc: "Games/GameCube"}
|
||||
- {id: 72, cat: Console/3DS, desc: "Games/3DS"}
|
||||
- {id: 77, cat: Console/PS4, desc: "Games/PS4"}
|
||||
- {id: 82, cat: Console/Other, desc: "Games/Switch"}
|
||||
# XXX
|
||||
- {id: 48, cat: XXX/DVD, desc: "XXX/Video"}
|
||||
- {id: 49, cat: XXX/ImageSet, desc: "XXX/Picture"}
|
||||
- {id: 50, cat: XXX, desc: "XXX/Magazine"}
|
||||
- {id: 51, cat: XXX, desc: "XXX/Hentai"}
|
||||
- {id: 67, cat: XXX, desc: "XXX/Games"}
|
||||
# Other
|
||||
- {id: 33, cat: Other, desc: "Other/Emulation"}
|
||||
- {id: 34, cat: Books, desc: "Other/Tutorial"}
|
||||
- {id: 35, cat: Other, desc: "Other/Sounds"}
|
||||
- {id: 36, cat: Books/EBook, desc: "Other/E-books"}
|
||||
- {id: 37, cat: Other, desc: "Other/Images"}
|
||||
- {id: 38, cat: Other, desc: "Other/Mobile Phone"}
|
||||
- {id: 39, cat: Books/Comics, desc: "Other/Comics"}
|
||||
- {id: 40, cat: Other/Misc, desc: "Other/Other"}
|
||||
- {id: 47, cat: Other, desc: "Other/Nulled Script"}
|
||||
- {id: 52, cat: Audio/Audiobook, desc: "Other/Audiobook"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
music-search: [q, album, artist]
|
||||
book-search: [q]
|
||||
allowrawsearch: true
|
||||
|
||||
settings:
|
||||
- name: flaresolverr
|
||||
type: info
|
||||
label: FlareSolverr
|
||||
default: This site may use Cloudflare DDoS Protection, therefore Prowlarr requires <a href="https://wiki.servarr.com/prowlarr/faq#can-i-use-flaresolverr-indexers" target="_blank" rel="noreferrer">FlareSolverr</a> to access it.
|
||||
- name: downloadlink
|
||||
type: select
|
||||
label: Download link
|
||||
default: "http://itorrents.org/"
|
||||
options:
|
||||
"http://itorrents.org/": iTorrents.org
|
||||
"magnet:": magnet
|
||||
- name: downloadlink2
|
||||
type: select
|
||||
label: Download link (fallback)
|
||||
default: "magnet:"
|
||||
options:
|
||||
"http://itorrents.org/": iTorrents.org
|
||||
"magnet:": magnet
|
||||
- name: info_download
|
||||
type: info
|
||||
label: About the Download links
|
||||
default: As the iTorrents .torrent download link on this site is known to fail from time to time, we suggest using the magnet link as a fallback. The BTCache and Torrage services are not supported because they require additional user interaction (a captcha for BTCache and a download button on Torrage.)
|
||||
- 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
|
||||
|
||||
download:
|
||||
# the .torrent URL and magnet URI are on the details page
|
||||
selectors:
|
||||
- selector: ul li a[href^="{{ .Config.downloadlink }}"]
|
||||
attribute: href
|
||||
- selector: ul li a[href^="{{ .Config.downloadlink2 }}"]
|
||||
attribute: href
|
||||
|
||||
search:
|
||||
paths:
|
||||
# present first page of movies tv and music results if there are no search parms supplied (20 hits per page)
|
||||
- path: "{{ if or .Query.Album .Query.Artist .Keywords }}sort-search{{ else }}cat/Movies{{ end }}{{ if or .Query.Album .Query.Artist }}/{{ or .Query.Album .Query.Artist }}{{ else }}/{{ .Keywords }}{{ end }}{{ if or .Query.Album .Query.Artist .Keywords }}/{{ else }}{{ end }}{{ .Config.sort }}/{{ .Config.type }}/1/"
|
||||
- path: "{{ if or .Query.Album .Query.Artist .Keywords }}sort-search{{ else }}cat/TV{{ end }}{{ if or .Query.Album .Query.Artist }}/{{ or .Query.Album .Query.Artist }}{{ else }}/{{ .Keywords }}{{ end }}{{ if or .Query.Album .Query.Artist .Keywords }}/{{ else }}{{ end }}{{ .Config.sort }}/{{ .Config.type }}/{{ if or .Query.Album .Query.Artist .Keywords }}2{{ else }}1{{ end }}/"
|
||||
- path: "{{ if or .Query.Album .Query.Artist .Keywords }}sort-search{{ else }}cat/Music{{ end }}{{ if or .Query.Album .Query.Artist }}/{{ or .Query.Album .Query.Artist }}{{ else }}/{{ .Keywords }}{{ end }}{{ if or .Query.Album .Query.Artist .Keywords }}/{{ else }}{{ end }}{{ .Config.sort }}/{{ .Config.type }}/{{ if or .Query.Album .Query.Artist .Keywords }}3{{ else }}1{{ end }}/"
|
||||
- path: "{{ if or .Query.Album .Query.Artist .Keywords }}sort-search{{ else }}cat/Other{{ end }}{{ if or .Query.Album .Query.Artist }}/{{ or .Query.Album .Query.Artist }}{{ else }}/{{ .Keywords }}{{ end }}{{ if or .Query.Album .Query.Artist .Keywords }}/{{ else }}{{ end }}{{ .Config.sort }}/{{ .Config.type }}/{{ if or .Query.Album .Query.Artist .Keywords }}4{{ else }}1{{ end }}/"
|
||||
|
||||
keywordsfilters:
|
||||
- name: re_replace # daily standard S2023 > 2023
|
||||
args: ["\\bS(20\\d{2})\\b", "$1"]
|
||||
|
||||
rows:
|
||||
selector: tr:has(a[href^="/torrent/"])
|
||||
|
||||
fields:
|
||||
title_default:
|
||||
# the movies, tv and music pages abbreviate the title
|
||||
selector: td[class^="coll-1"] a[href^="/torrent/"]
|
||||
title_optional:
|
||||
# the movies, tv and music pages abbreviate the title so we process the href instead. #8137
|
||||
optional: true
|
||||
selector: td[class^="coll-1"] a[href^="/torrent/"]:contains("...")
|
||||
attribute: href
|
||||
filters:
|
||||
- name: urldecode
|
||||
- name: split
|
||||
args: ["/", 3]
|
||||
title:
|
||||
# title_optional can be empty so use the title_default instead #8586
|
||||
text: "{{ if .Result.title_optional }}{{ .Result.title_optional }}{{ else }}{{ .Result.title_default }}{{ end }}"
|
||||
filters:
|
||||
- name: re_replace
|
||||
args: ["-([\\w]+(?:[\\[\\]\\(\\)\\w]+)?)$", "~$1"]
|
||||
- name: replace
|
||||
args: ["-", " "]
|
||||
- name: re_replace
|
||||
args: ["~([\\w]+(?:[\\[\\]\\(\\)\\w]+)?)$", "-$1"]
|
||||
- name: replace
|
||||
args: ["\u000f", ""] # get rid of unwanted character #6582
|
||||
# cleanup for Sonarr
|
||||
- name: re_replace # EP 3 4 to E3-4
|
||||
args: ["(?i)\\sEP\\s(\\d{1,2})\\s(E?\\s?\\d{1,2})\\s", " E$1-$2 "]
|
||||
- name: re_replace # S02E04 05 to S02E04-05
|
||||
args: ["(?i)\\sS(\\d{1,2})\\s?E\\s?(\\d{1,2})\\s(E?\\s?\\d{1,2})\\s", " S$1E$2-$3 "]
|
||||
- name: re_replace
|
||||
args: ["(?i)AC3\\s?(\\d)\\s(\\d)", "AC3 $1.$2"]
|
||||
- name: re_replace
|
||||
args: ["(?i) DD\\s?(\\d)\\s(\\d)", " DD $1.$2"]
|
||||
- name: re_replace
|
||||
args: ["(?i) DDP\\s?(\\d)\\s(\\d)", " DDP $1.$2"]
|
||||
- name: re_replace
|
||||
args: ["(?i)\\sE\\s?AC3", " EAC3"]
|
||||
- name: re_replace
|
||||
args: ["(?i)WEB\\sDL", "WEB-DL"]
|
||||
- name: re_replace
|
||||
args: ["(?i)HDTVRIP", "HDTV"]
|
||||
category_optional:
|
||||
optional: true
|
||||
selector: td[class^="coll-1"] a[href^="/sub/"]
|
||||
attribute: href
|
||||
filters:
|
||||
# extract the third part
|
||||
- name: split
|
||||
args: ["/", 2]
|
||||
category:
|
||||
text: "{{ if .Result.category_optional }}{{ .Result.category_optional }}{{ else }}40{{ end }}"
|
||||
details:
|
||||
selector: td[class^="coll-1"] a[href^="/torrent/"]
|
||||
attribute: href
|
||||
download:
|
||||
# .torrent link is on the details page
|
||||
selector: td[class^="coll-1"] a[href^="/torrent/"]
|
||||
attribute: href
|
||||
# dates come in three flavours:
|
||||
date_year:
|
||||
# (within this year) 7am Sep. 14th
|
||||
optional: true
|
||||
selector: td[class^="coll-date"]:not(:contains(":")):not(:contains("'"))
|
||||
filters:
|
||||
- name: re_replace
|
||||
args: ["st|nd|rd|th", ""]
|
||||
- name: dateparse
|
||||
args: "htt MMM. d"
|
||||
date_years:
|
||||
# (more than a year ago) Apr. 18th '11
|
||||
optional: true
|
||||
selector: td[class^="coll-date"]:contains("'")
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["'", ""]
|
||||
- name: re_replace
|
||||
args: ["st|nd|rd|th", ""]
|
||||
- name: dateparse
|
||||
args: "MMM. d yy"
|
||||
date_today:
|
||||
# (today) 12:25am
|
||||
optional: true
|
||||
selector: td[class^="coll-date"]:contains(":")
|
||||
filters:
|
||||
- name: fuzzytime
|
||||
date:
|
||||
text: "{{ if or .Result.date_year .Result.date_years .Result.date_today }}{{ or .Result.date_year .Result.date_years .Result.date_today }}{{ else }}now{{ end }}"
|
||||
size:
|
||||
selector: td[class^="coll-4"]
|
||||
seeders:
|
||||
selector: td[class^="coll-2"]
|
||||
leechers:
|
||||
selector: td[class^="coll-3"]
|
||||
downloadvolumefactor:
|
||||
text: 0
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
# engine n/a
|
196
config/prowlarr/Definitions/1ptbar.yml
Normal file
196
config/prowlarr/Definitions/1ptbar.yml
Normal file
|
@ -0,0 +1,196 @@
|
|||
---
|
||||
id: 1ptbar
|
||||
name: 1ptbar
|
||||
description: "1ptbar is a CHINESE Private Torrent Tracker for MOVIES / TV / E-LEARNING"
|
||||
language: zh-CN
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://1ptba.com/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 401, cat: Movies, desc: "Movies/电影"}
|
||||
- {id: 404, cat: TV/Documentary, desc: "Documentaries/纪录片"}
|
||||
- {id: 405, cat: TV/Anime, desc: "Animations/动漫"}
|
||||
- {id: 402, cat: TV, desc: "TV Series/电视剧"}
|
||||
- {id: 403, cat: TV, desc: "TV Shows/综艺节目"}
|
||||
- {id: 406, cat: Audio/Video, desc: "Music Videos/音乐MV"}
|
||||
- {id: 407, cat: TV/Sport, desc: "Sports/体育"}
|
||||
- {id: 409, cat: Other, desc: "Misc/其他"}
|
||||
- {id: 408, cat: Audio, desc: "HQ Audio/高品质音频"}
|
||||
- {id: 412, cat: Other, desc: "Edu/教育"}
|
||||
- {id: 411, cat: PC/Games, desc: "Games/游戏"}
|
||||
- {id: 410, cat: PC/0day, desc: "Software/软件"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep, imdbid, doubanid]
|
||||
movie-search: [q, imdbid, doubanid]
|
||||
music-search: [q]
|
||||
|
||||
settings:
|
||||
- name: username
|
||||
type: text
|
||||
label: Username
|
||||
- name: password
|
||||
type: password
|
||||
label: Password
|
||||
- name: 2facode
|
||||
type: text
|
||||
label: 2FA code
|
||||
- name: info_2fa
|
||||
type: info
|
||||
label: "About 2FA code"
|
||||
default: "Only fill in the <b>2FA code</b> box if you have enabled <b>2FA</b> on the 1ptbar Web Site. Otherwise just leave it empty."
|
||||
- name: freeleech
|
||||
type: checkbox
|
||||
label: Search freeleech only
|
||||
default: false
|
||||
- name: sort
|
||||
type: select
|
||||
label: Sort requested from site
|
||||
default: 4
|
||||
options:
|
||||
4: created
|
||||
7: seeders
|
||||
5: size
|
||||
1: title
|
||||
- name: type
|
||||
type: select
|
||||
label: Order requested from site
|
||||
default: desc
|
||||
options:
|
||||
desc: desc
|
||||
asc: asc
|
||||
- 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.
|
||||
- name: info_activity
|
||||
type: info
|
||||
label: Account Inactivity
|
||||
default: "Cherish your user account. Inactive accounts would be deleted based on the following rules:<ol><li>Veteran User or above would never be deleted.</li><li>Elite User or above would never be deleted if parked (at User CP).</li><li>Parked accounts would be deleted if users have not logged in for more than 400 days in a row.</li><li>Unparked accounts would be deleted if users have not logged in for more than 150 days in a row.</li><li>Accounts with both uploaded and downloaded amount being 0 would be deleted if users have not logged in for more than 100 days in a row.</li></ol>"
|
||||
|
||||
login:
|
||||
path: login.php
|
||||
method: form
|
||||
form: form[action="takelogin.php"]
|
||||
captcha:
|
||||
type: image
|
||||
selector: img[alt="CAPTCHA"]
|
||||
input: imagestring
|
||||
inputs:
|
||||
secret: ""
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
two_step_code: "{{ .Config.2facode }}"
|
||||
logout: ""
|
||||
securelogin: ""
|
||||
ssl: yes
|
||||
trackerssl: yes
|
||||
error:
|
||||
- selector: td.embedded:has(h2:contains("失败"))
|
||||
test:
|
||||
path: index.php
|
||||
selector: a[href="logout.php"]
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: torrents.php
|
||||
inputs:
|
||||
$raw: "{{ range .Categories }}cat{{.}}=1&{{end}}"
|
||||
search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ end }}{{ if or .Query.IMDBID .Query.DoubanID }} {{ else }}{{ .Keywords }}{{ end }}{{ if .Query.DoubanID }}{{ .Query.DoubanID }}{{ else }}{{ end }}"
|
||||
# 0 incldead, 1 active, 2 dead
|
||||
incldead: 0
|
||||
# 0 all, 1 normal, 2 free, 3 2x, 4 2xfree, 5 50%, 6 2x50%, 7 30%
|
||||
spstate: "{{ if .Config.freeleech }}2{{ else }}0{{ end }}"
|
||||
# 0 title, 1 descr, 3 uploader, 4 imdburl
|
||||
search_area: "{{ if .Query.IMDBID }}4{{ else }}{{ end }}{{ if .Query.DoubanID }}1{{ else }}{{ end }}{{ if or .Query.IMDBID .Query.DoubanID }}{{ else }}0{{ end }}"
|
||||
# 0 AND, 2 exact
|
||||
search_mode: 0
|
||||
sort: "{{ .Config.sort }}"
|
||||
type: "{{ .Config.type }}"
|
||||
notnewword: 1
|
||||
|
||||
rows:
|
||||
selector: table.torrents > tbody > tr:has(table.torrentname)
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: a[href^="?cat="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: cat
|
||||
title_default:
|
||||
selector: a[href^="details.php?id="]
|
||||
title:
|
||||
selector: a[title][href^="details.php?id="]
|
||||
attribute: title
|
||||
optional: true
|
||||
default: "{{ .Result.title_default }}"
|
||||
details:
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href^="download.php?id="]
|
||||
attribute: href
|
||||
poster:
|
||||
selector: img[data-src]
|
||||
attribute: data-src
|
||||
imdbid:
|
||||
# site currently only has a badge and rating, the id is not present. just in case a future update.
|
||||
selector: a[href*="imdb.com/title/tt"]
|
||||
attribute: href
|
||||
doubanid:
|
||||
# site currently only has a badge and rating, the id is not present. just in case a future update.
|
||||
selector: a[href*="movie.douban.com/subject/"]
|
||||
attribute: href
|
||||
date_elapsed:
|
||||
# time type: time elapsed (default)
|
||||
selector: td.rowfollow:nth-last-of-type(6) > span[title]
|
||||
attribute: title
|
||||
optional: true
|
||||
filters:
|
||||
- name: append
|
||||
args: " +08:00"
|
||||
- name: dateparse
|
||||
args: "yyyy-MM-dd HH:mm:ss zzz"
|
||||
date_added:
|
||||
# time added
|
||||
selector: td.rowfollow:nth-last-of-type(6):not(:has(span))
|
||||
optional: true
|
||||
filters:
|
||||
- name: append
|
||||
args: " +08:00" # CST
|
||||
- name: dateparse
|
||||
args: "yyyy-MM-ddHH:mm:ss zzz"
|
||||
date:
|
||||
text: "{{ if or .Result.date_elapsed .Result.date_added }}{{ or .Result.date_elapsed .Result.date_added }}{{ else }}now{{ end }}"
|
||||
size:
|
||||
selector: td.rowfollow:nth-last-of-type(5)
|
||||
seeders:
|
||||
selector: td.rowfollow:nth-last-of-type(4)
|
||||
leechers:
|
||||
selector: td.rowfollow:nth-last-of-type(3)
|
||||
grabs:
|
||||
selector: td.rowfollow:nth-last-of-type(2)
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
img.pro_free: 0
|
||||
img.pro_free2up: 0
|
||||
img.pro_50pctdown: 0.5
|
||||
img.pro_50pctdown2up: 0.5
|
||||
img.pro_30pctdown: 0.3
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
case:
|
||||
img.pro_50pctdown2up: 2
|
||||
img.pro_free2up: 2
|
||||
img.pro_2up: 2
|
||||
"*": 1
|
||||
description:
|
||||
selector: td:nth-child(2)
|
||||
remove: a, b, font, img, span
|
||||
# NexusPHP v1.8.11 2024-03-27
|
227
config/prowlarr/Definitions/2fast4you.yml
Normal file
227
config/prowlarr/Definitions/2fast4you.yml
Normal file
|
@ -0,0 +1,227 @@
|
|||
---
|
||||
id: 2fast4you
|
||||
name: 2 Fast 4 You
|
||||
description: "2 Fast 4 You is a FRENCH Private site for TV / MOVIES / GENERAL"
|
||||
language: fr-FR
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://2f4y.me/
|
||||
legacylinks:
|
||||
- http://www.2f4y.me/
|
||||
- https://www.2f4y.me/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 10, cat: TV/Anime, desc: "Animation: HD720P"}
|
||||
- {id: 11, cat: TV/Anime, desc: "Animation: HD1080P"}
|
||||
- {id: 56, cat: TV/Anime, desc: "Animation: DVDRip"}
|
||||
- {id: 18, cat: PC/0day, desc: "Applications: PC"}
|
||||
- {id: 16, cat: PC/Games, desc: "Applications: Jeux"}
|
||||
- {id: 19, cat: PC/Mobile-Android, desc: "Applications: Android"}
|
||||
- {id: 17, cat: PC/0day, desc: "Applications: Autres"}
|
||||
- {id: 67, cat: TV, desc: "Autres: Emission TV"}
|
||||
- {id: 68, cat: TV/Sport, desc: "Autres: Sport"}
|
||||
- {id: 40, cat: Other, desc: "Autres: Autres"}
|
||||
- {id: 14, cat: TV/Documentary, desc: "Documentaires: DivX"}
|
||||
- {id: 15, cat: TV/Documentary, desc: "Documentaires: HD"}
|
||||
- {id: 76, cat: TV/Documentary, desc: "Documentaires: TVRip"}
|
||||
- {id: 62, cat: Audio/Audiobook, desc: "E-Books: E-Books Audio"}
|
||||
- {id: 50, cat: Books, desc: "E-Books: Manuel Français"}
|
||||
- {id: 49, cat: Books, desc: "E-Books: Manuel Anglais"}
|
||||
- {id: 36, cat: Books, desc: "E-Books: Livres Français"}
|
||||
- {id: 53, cat: Books, desc: "E-Books: Livre Anglais"}
|
||||
- {id: 52, cat: Books, desc: "E-Books: Revue - Journaux"}
|
||||
- {id: 51, cat: Books, desc: "E-Books: BD"}
|
||||
- {id: 95, cat: Movies, desc: "Films: Film Divx XviD"}
|
||||
- {id: 66, cat: Movies, desc: "Films: VOSTFR"}
|
||||
- {id: 71, cat: Movies/WEB-DL, desc: "Films: WEB-DL"}
|
||||
- {id: 65, cat: Movies, desc: "Films: VO"}
|
||||
- {id: 72, cat: Movies/SD, desc: "Films: TVRip/HDTV"}
|
||||
- {id: 70, cat: Movies/HD, desc: "Films: MHD X265"}
|
||||
- {id: 57, cat: Movies/SD, desc: "Films: TS/CAM"}
|
||||
- {id: 59, cat: Movies, desc: "Films: Spectacle"}
|
||||
- {id: 55, cat: Movies/HD, desc: "Films: MHD 720P"}
|
||||
- {id: 54, cat: Movies/HD, desc: "Films: MHD 1080P"}
|
||||
- {id: 1, cat: Movies/HD, desc: "Films: HD720P"}
|
||||
- {id: 2, cat: Movies/HD, desc: "Films: HD1080P"}
|
||||
- {id: 90, cat: Movies/HD, desc: "Films: HD X265"}
|
||||
- {id: 92, cat: Movies/HD, desc: "Films: 4K"}
|
||||
- {id: 69, cat: Movies/3D, desc: "Films: Film 3D"}
|
||||
- {id: 3, cat: Movies/DVD, desc: "Films: DVDRIP"}
|
||||
- {id: 5, cat: Movies/DVD, desc: "Films: DVD9"}
|
||||
- {id: 91, cat: Movies/HD, desc: "Films: RemuX"}
|
||||
- {id: 89, cat: Movies/HD, desc: "Films: BD/BR Rip"}
|
||||
- {id: 88, cat: Movies/BluRay, desc: "Films: Full BD/BR"}
|
||||
- {id: 97, cat: Movies, desc: "Films: Cours Métrage"}
|
||||
- {id: 79, cat: TV/Anime, desc: "Mangas: HD"}
|
||||
- {id: 81, cat: TV/Anime, desc: "Mangas: HD VOSTFR"}
|
||||
- {id: 85, cat: TV/Anime, desc: "Mangas: Web-DL"}
|
||||
- {id: 86, cat: TV/Anime, desc: "Mangas: TV-RIP"}
|
||||
- {id: 75, cat: Audio, desc: "Musique: Concert TVRip"}
|
||||
- {id: 25, cat: Audio/MP3, desc: "Musique: Single MP3"}
|
||||
- {id: 24, cat: Audio/Lossless, desc: "Musique: Single Flac"}
|
||||
- {id: 22, cat: Audio/MP3, desc: "Musique: Album MP3"}
|
||||
- {id: 23, cat: Audio/Lossless, desc: "Musique: Album Flac"}
|
||||
- {id: 64, cat: Audio, desc: "Musique: Mégamix Maison"}
|
||||
- {id: 96, cat: Audio/MP3, desc: "Musique: PlayList MP3"}
|
||||
- {id: 94, cat: Audio, desc: "Musique: Podcast"}
|
||||
- {id: 58, cat: Audio, desc: "Musique: Concert"}
|
||||
- {id: 93, cat: TV, desc: "Serie TV: Saison VOSTFR"}
|
||||
- {id: 61, cat: TV, desc: "Serie TV: Episode VOSTFR"}
|
||||
- {id: 63, cat: TV, desc: "Serie TV: Episode VO"}
|
||||
- {id: 12, cat: TV/Anime, desc: "Serie TV: Animation"}
|
||||
- {id: 74, cat: TV, desc: "Serie TV: TVRip"}
|
||||
- {id: 73, cat: TV/WEB-DL, desc: "Serie TV: WEB-DL"}
|
||||
- {id: 7, cat: TV, desc: "Serie TV: Episode FR"}
|
||||
- {id: 6, cat: TV, desc: "Serie TV: Saison FR"}
|
||||
- {id: 98, cat: TV/Anime, desc: "Serie TV: Manga VOSTFR"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
music-search: [q]
|
||||
book-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 and SUBFRENCH with ENGLISH
|
||||
default: false
|
||||
- name: sort
|
||||
type: select
|
||||
label: Sort requested from site
|
||||
default: id
|
||||
options:
|
||||
id: created
|
||||
seeders: seeders
|
||||
size: size
|
||||
name: title
|
||||
- name: order
|
||||
type: select
|
||||
label: Order requested from site
|
||||
default: desc
|
||||
options:
|
||||
desc: desc
|
||||
asc: asc
|
||||
|
||||
login:
|
||||
path: account-login.php
|
||||
method: post
|
||||
inputs:
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
error:
|
||||
- selector: form:contains("Erreur")
|
||||
message:
|
||||
selector: form
|
||||
remove: table
|
||||
test:
|
||||
path: torrents-search.php
|
||||
selector: a[href="account-logout.php"]
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: torrents-search.php
|
||||
inputs:
|
||||
$raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
|
||||
search: "{{ .Keywords }}"
|
||||
# 0 active, 1 incldead, 2 onlydead
|
||||
incldead: 1
|
||||
# 0 all, 1 notfree, 2 onlyfree
|
||||
freeleech: "{{ if .Config.freeleech }}2{{ else }}0{{ end }}"
|
||||
# 0 any, 1 French, 2 English, 3 Multi, 4-8 32-41
|
||||
lang: 0
|
||||
sort: "{{ .Config.sort}}"
|
||||
order: "{{ .Config.order}}"
|
||||
keywordsfilters:
|
||||
- name: re_replace
|
||||
args: ["^$", "%"] # replace empty search string with %
|
||||
|
||||
rows:
|
||||
selector: table.ttable_headinner > tbody > tr[class^="t-row"]
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: a[href^="torrents.php?cat="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: cat
|
||||
title_phase1:
|
||||
selector: a[href^="torrents-details.php?id="]
|
||||
filters:
|
||||
- name: replace
|
||||
args: [" - (Nouveau!)", ""]
|
||||
title_vostfr:
|
||||
text: "{{ .Result.title_phase1 }}"
|
||||
filters:
|
||||
- name: re_replace
|
||||
args: ["(?i)\\b(vostfr|subfrench)\\b", "ENGLISH"]
|
||||
title_phase2:
|
||||
text: "{{ if .Config.vostfr }}{{ .Result.title_vostfr }}{{ else }}{{ .Result.title_phase1 }}{{ end }}"
|
||||
title_multilang:
|
||||
text: "{{ .Result.title_phase2 }}"
|
||||
filters:
|
||||
- name: re_replace
|
||||
args: ["(?i)\\b(MULTI(?!.*(?:FRENCH|ENGLISH|VOSTFR)))\\b", "{{ .Config.multilanguage }}"]
|
||||
title:
|
||||
text: "{{ if .Config.multilang }}{{ .Result.title_multilang }}{{ else }}{{ .Result.title_phase2 }}{{ end }}"
|
||||
details:
|
||||
selector: a[href^="torrents-details.php?id="]
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href^="torrents-details.php?id="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["torrents-details.php", "download.php"]
|
||||
poster:
|
||||
selector: img.rounded-img
|
||||
attribute: src
|
||||
size:
|
||||
selector: td:nth-child(5)
|
||||
grabs:
|
||||
selector: td:nth-child(6)
|
||||
seeders:
|
||||
selector: td:nth-child(7)
|
||||
leechers:
|
||||
selector: td:nth-child(8)
|
||||
date:
|
||||
text: now
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
img[title="freeleech"]: 0
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
case:
|
||||
"*": 1
|
||||
minimumratio:
|
||||
text: 0.75
|
||||
# engine n/a
|
203
config/prowlarr/Definitions/2xfree.yml
Normal file
203
config/prowlarr/Definitions/2xfree.yml
Normal file
|
@ -0,0 +1,203 @@
|
|||
---
|
||||
id: 2xfree
|
||||
name: 2xFree
|
||||
description: "2xFree is a CHINESE Private Torrent Tracker for 3D MOVIES / TV"
|
||||
language: zh-CN
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://pt.2xfree.org/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
|
||||
# torrents.php
|
||||
- {id: 526, cat: Movies, desc: "3DMovies(3D电影)"}
|
||||
- {id: 527, cat: TV, desc: "3DSeries(3D剧集)"}
|
||||
- {id: 533, cat: Movies, desc: "VRMovies(VR电影)"}
|
||||
- {id: 534, cat: TV, desc: "VRSeries(VR剧集)"}
|
||||
- {id: 537, cat: TV, desc: "VRShows(VR演出)"}
|
||||
- {id: 530, cat: Console, desc: "VRGame(VR一体机游戏)"}
|
||||
- {id: 531, cat: PC/Games, desc: "PCVRGame(PCVR游戏)"}
|
||||
- {id: 532, cat: Other, desc: "VRTools(VR工具软件)"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep, imdbid, doubanid]
|
||||
movie-search: [q, imdbid, doubanid]
|
||||
|
||||
settings:
|
||||
- name: username
|
||||
type: text
|
||||
label: Username
|
||||
- name: password
|
||||
type: password
|
||||
label: Password
|
||||
- name: 2facode
|
||||
type: text
|
||||
label: 2FA code
|
||||
- name: info_2fa
|
||||
type: info
|
||||
label: "About 2FA code"
|
||||
default: "Only fill in the <b>2FA code</b> box if you have enabled <b>2FA</b> on the 2xFree Web Site. Otherwise just leave it empty."
|
||||
- name: freeleech
|
||||
type: checkbox
|
||||
label: Search freeleech only
|
||||
default: false
|
||||
- name: sort
|
||||
type: select
|
||||
label: Sort requested from site
|
||||
default: 4
|
||||
options:
|
||||
4: created
|
||||
7: seeders
|
||||
5: size
|
||||
1: title
|
||||
- name: type
|
||||
type: select
|
||||
label: Order requested from site
|
||||
default: desc
|
||||
options:
|
||||
desc: desc
|
||||
asc: asc
|
||||
- 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.
|
||||
- name: info_ulslr
|
||||
type: info
|
||||
label: Upload Speed Limit Rule
|
||||
default: The upload bandwidth shall not exceed 120Mbps, that is, the upload speed shall not exceed 15MB/s.
|
||||
- name: flaresolverr
|
||||
type: info
|
||||
label: FlareSolverr
|
||||
default: This site may use Cloudflare DDoS Protection, therefore Prowlarr requires <a href="https://wiki.servarr.com/prowlarr/faq#can-i-use-flaresolverr-indexers" target="_blank" rel="noreferrer">FlareSolverr</a> to access it.
|
||||
- name: info_activity
|
||||
type: info
|
||||
label: Account Inactivity
|
||||
default: "Account retention rules:<ol><li>Veteran User and above will be retained forever</li><li>Elite User and above will not be deleted after parking (in the control panel)</li><li>Users with a parked account will be deleted if they do not log in for 400 consecutive days</li><li>Users with a non-parked account will be deleted if they do not log in for 150 consecutive days</li><li>Users with no traffic (ie, upload/download data are both 0) will be deleted if they do not log in for 100 consecutive days.</li></ol>"
|
||||
|
||||
login:
|
||||
path: login.php
|
||||
method: form
|
||||
form: form[action="takelogin.php"]
|
||||
captcha:
|
||||
type: image
|
||||
selector: img[alt="CAPTCHA"]
|
||||
input: imagestring
|
||||
inputs:
|
||||
secret: ""
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
two_step_code: "{{ .Config.2facode }}"
|
||||
logout: ""
|
||||
securelogin: ""
|
||||
ssl: yes
|
||||
trackerssl: yes
|
||||
error:
|
||||
- selector: td.embedded:has(h2:contains("失败"))
|
||||
test:
|
||||
path: index.php
|
||||
selector: a[href="logout.php"]
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: torrents.php
|
||||
inputs:
|
||||
$raw: "{{ range .Categories }}cat{{.}}=1&{{end}}"
|
||||
search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ end }}{{ if or .Query.IMDBID .Query.DoubanID }} {{ else }}{{ .Keywords }}{{ end }}{{ if .Query.DoubanID }}{{ .Query.DoubanID }}{{ else }}{{ end }}"
|
||||
# 0 incldead, 1 active, 2 dead
|
||||
incldead: 0
|
||||
# 0 all, 1 normal, 2 free, 3 2x, 4 2xfree, 5 50%, 6 2x50%, 7 30%
|
||||
spstate: "{{ if .Config.freeleech }}2{{ else }}0{{ end }}"
|
||||
# 0 title, 1 descr, 3 uploader, 4 imdburl (4 does not appear to work)
|
||||
search_area: "{{ if or .Query.IMDBID .Query.DoubanID }}1{{ else }}0{{ end }}"
|
||||
# 0 AND, 1 OR, 2 exact
|
||||
search_mode: 0
|
||||
sort: "{{ .Config.sort }}"
|
||||
type: "{{ .Config.type }}"
|
||||
notnewword: 1
|
||||
|
||||
rows:
|
||||
selector: table.torrents > tbody > tr:has(a[href^="details.php?id="])
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: a[href^="?cat="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: cat
|
||||
title_default:
|
||||
selector: a[href^="details.php?id="]
|
||||
title:
|
||||
selector: a[title][href^="details.php?id="]
|
||||
attribute: title
|
||||
optional: true
|
||||
default: "{{ .Result.title_default }}"
|
||||
details:
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href^="download.php?id="]
|
||||
attribute: href
|
||||
poster:
|
||||
selector: img[data-src]
|
||||
attribute: data-src
|
||||
imdbid:
|
||||
# site currently only has a badge and rating, the id is not present. just in case a future update.
|
||||
selector: a[href*="imdb.com/title/tt"]
|
||||
attribute: href
|
||||
doubanid:
|
||||
# site currently only has a badge and rating, the id is not present. just in case a future update.
|
||||
selector: a[href*="movie.douban.com/subject/"]
|
||||
attribute: href
|
||||
date_elapsed:
|
||||
# time type: time elapsed (default)
|
||||
selector: td.rowfollow:nth-child(4) > span[title]
|
||||
attribute: title
|
||||
optional: true
|
||||
filters:
|
||||
- name: append
|
||||
args: " +08:00" # CST
|
||||
- name: dateparse
|
||||
args: "yyyy-MM-dd HH:mm:ss zzz"
|
||||
date_added:
|
||||
# time added
|
||||
selector: td.rowfollow:nth-child(4):not(:has(span))
|
||||
optional: true
|
||||
filters:
|
||||
- name: append
|
||||
args: " +08:00" # CST
|
||||
- name: dateparse
|
||||
args: "yyyy-MM-ddHH:mm:ss zzz"
|
||||
date:
|
||||
text: "{{ if or .Result.date_elapsed .Result.date_added }}{{ or .Result.date_elapsed .Result.date_added }}{{ else }}now{{ end }}"
|
||||
size:
|
||||
selector: td.rowfollow:nth-child(5)
|
||||
seeders:
|
||||
selector: td.rowfollow:nth-child(6)
|
||||
leechers:
|
||||
selector: td.rowfollow:nth-child(7)
|
||||
grabs:
|
||||
selector: td.rowfollow:nth-child(8)
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
img.pro_free: 0
|
||||
img.pro_free2up: 0
|
||||
img.pro_50pctdown: 0.5
|
||||
img.pro_50pctdown2up: 0.5
|
||||
img.pro_30pctdown: 0.3
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
case:
|
||||
img.pro_50pctdown2up: 2
|
||||
img.pro_free2up: 2
|
||||
img.pro_2up: 2
|
||||
"*": 1
|
||||
minimumratio:
|
||||
text: 0.8
|
||||
description:
|
||||
selector: td.rowfollow:nth-child(2)
|
||||
remove: a, b, font, img, span
|
||||
# NexusPHP v1.8.6 2023-06-18
|
190
config/prowlarr/Definitions/3changtrai.yml
Normal file
190
config/prowlarr/Definitions/3changtrai.yml
Normal file
|
@ -0,0 +1,190 @@
|
|||
---
|
||||
id: 3changtrai
|
||||
name: 3ChangTrai
|
||||
description: "3ChangTrai (3CT) is a VIETNAMESE Private Torrent Tracker for HD MOVIES / TV / GENERAL"
|
||||
language: vi-VN
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://3changtrai.com/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 401, cat: Movies, desc: "Movies"}
|
||||
- {id: 402, cat: TV, desc: "TV Series"}
|
||||
- {id: 403, cat: TV, desc: "TV Shows"}
|
||||
- {id: 404, cat: TV/Documentary, desc: "Documentaries"}
|
||||
- {id: 405, cat: TV/Anime, desc: "Animations"}
|
||||
- {id: 406, cat: Audio/Video, desc: "Music Videos"}
|
||||
- {id: 407, cat: TV/Sport, desc: "Sports"}
|
||||
- {id: 408, cat: Audio, desc: "HQ Audio"}
|
||||
- {id: 410, cat: PC, desc: "Software"}
|
||||
- {id: 411, cat: Books, desc: "Documents"}
|
||||
- {id: 412, cat: PC/Games, desc: "Games"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep, imdbid]
|
||||
movie-search: [q, imdbid]
|
||||
music-search: [q]
|
||||
book-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: sort
|
||||
type: select
|
||||
label: Sort requested from site
|
||||
default: 4
|
||||
options:
|
||||
4: created
|
||||
7: seeders
|
||||
5: size
|
||||
1: title
|
||||
- name: type
|
||||
type: select
|
||||
label: Order requested from site
|
||||
default: desc
|
||||
options:
|
||||
desc: desc
|
||||
asc: asc
|
||||
- name: flaresolverr
|
||||
type: info
|
||||
label: FlareSolverr
|
||||
default: This site may use Cloudflare DDoS Protection, therefore Jackett requires <a href="https://github.com/Jackett/Jackett#configuring-flaresolverr" target="_blank">FlareSolverr</a> to access it.
|
||||
- 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.
|
||||
- name: info_activity
|
||||
type: info
|
||||
label: Account Inactivity
|
||||
default: "Cherish your account. Inactive accounts will be deleted based on the following provisions:<ol><li>Nexus Master or later will not be deleted account.</li><li>Veteran User or higher will not be deleted if temporarily locked (at User Settings).</li><li>Temporarily locked accounts will be deleted if not logged in within 90 days.</li><li>Accounts that are not temporarily locked will be deleted if they do not log in within 60 days.</li><li>Accounts with no storage for uploads and downloads will be deleted if they do not log in within 30 days or have registered within 14 days.</li></ol>"
|
||||
|
||||
login:
|
||||
path: login.php
|
||||
method: form
|
||||
form: form[action="takelogin.php"]
|
||||
captcha:
|
||||
type: image
|
||||
selector: img[alt="CAPTCHA"]
|
||||
input: imagestring
|
||||
inputs:
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
logout: ""
|
||||
securelogin: ""
|
||||
ssl: yes
|
||||
trackerssl: yes
|
||||
error:
|
||||
- selector: td.embedded:has(h2:contains("Đăng nhập thất bại!")) # Login failed!
|
||||
- selector: td.embedded:has(h2:contains("Thất bại")) # Failure (captcha)
|
||||
test:
|
||||
path: index.php
|
||||
selector: a[href="logout.php"]
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: torrents.php
|
||||
inputs:
|
||||
$raw: "{{ range .Categories }}cat{{.}}=1&{{end}}"
|
||||
search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}"
|
||||
# 0 incldead, 1 active, 2 dead
|
||||
incldead: 0
|
||||
# 0 all, 1 normal, 2 free, 3 2x, 4 2xfree, 5 50%, 6 2x50%, 7 30%
|
||||
spstate: "{{ if .Config.freeleech }}2{{ else }}0{{ end }}"
|
||||
# 0 title, 1 descr, 3 uploader, 4 imdburl
|
||||
search_area: "{{ if .Query.IMDBID }}4{{ else }}0{{ end }}"
|
||||
# 0 AND, 1 OR, 2 exact
|
||||
search_mode: 0
|
||||
sort: "{{ .Config.sort }}"
|
||||
type: "{{ .Config.type }}"
|
||||
notnewword: 1
|
||||
|
||||
rows:
|
||||
selector: table.torrents > tbody > tr:has(table.torrentname)
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: a[href^="?cat="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: cat
|
||||
title_default:
|
||||
selector: a[href^="details.php?id="]
|
||||
title:
|
||||
selector: a[title][href^="details.php?id="]
|
||||
attribute: title
|
||||
optional: true
|
||||
default: "{{ .Result.title_default }}"
|
||||
details:
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href^="download.php?id="]
|
||||
attribute: href
|
||||
poster:
|
||||
selector: img[data-src]
|
||||
attribute: data-src
|
||||
imdbid:
|
||||
selector: a[href*="imdb.com/title/tt"]
|
||||
attribute: href
|
||||
date_elapsed:
|
||||
# time type: time elapsed (default)
|
||||
selector: td.rowfollow:nth-child(5) > span[title]
|
||||
attribute: title
|
||||
optional: true
|
||||
filters:
|
||||
- name: append
|
||||
args: " +07:00" # ICT
|
||||
- name: dateparse
|
||||
args: "yyyy-MM-dd HH:mm:ss zzz"
|
||||
date_added:
|
||||
# time added
|
||||
selector: td.rowfollow:nth-child(5):not(:has(span))
|
||||
optional: true
|
||||
filters:
|
||||
- name: append
|
||||
args: " +07:00" # ICT
|
||||
- name: dateparse
|
||||
args: "yyyy-MM-ddHH:mm:ss zzz"
|
||||
date:
|
||||
text: "{{ if or .Result.date_elapsed .Result.date_added }}{{ or .Result.date_elapsed .Result.date_added }}{{ else }}now{{ end }}"
|
||||
size:
|
||||
selector: td.rowfollow:nth-child(6)
|
||||
seeders:
|
||||
selector: td.rowfollow:nth-child(7)
|
||||
leechers:
|
||||
selector: td.rowfollow:nth-child(8)
|
||||
grabs:
|
||||
selector: td.rowfollow:nth-child(9)
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
img.pro_free: 0
|
||||
img.pro_free2up: 0
|
||||
img.pro_50pctdown: 0.5
|
||||
img.pro_50pctdown2up: 0.5
|
||||
img.pro_30pctdown: 0.3
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
case:
|
||||
img.pro_50pctdown2up: 2
|
||||
img.pro_free2up: 2
|
||||
img.pro_2up: 2
|
||||
"*": 1
|
||||
minimumseedtime:
|
||||
# 3 days (as seconds = 3 x 24 x 60 x 60)
|
||||
text: 259200
|
||||
description:
|
||||
selector: td:nth-child(3)
|
||||
remove: a, b, font, img, span
|
||||
# NexusPHP 3ChangTrai v3.0 2020-04-30
|
164
config/prowlarr/Definitions/3dtorrents.yml
Normal file
164
config/prowlarr/Definitions/3dtorrents.yml
Normal file
|
@ -0,0 +1,164 @@
|
|||
---
|
||||
id: 3dtorrents
|
||||
name: 3D Torrents
|
||||
description: "3D Torrents (3DT) is a Private Torrent Tracker for 3D HD / BLURAY MOVIES"
|
||||
language: en-US
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- http://www.3dtorrents.org/ # site does not support https ERR_CONNECTION_CLOSED
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 14, cat: Movies/SD, desc: "Movies XviD"}
|
||||
- {id: 15, cat: Movies/DVD, desc: "Movies DVD-R"}
|
||||
- {id: 11, cat: Movies/HD, desc: "Movies 720p"}
|
||||
- {id: 13, cat: Movies/HD, desc: "Movies 1080p"}
|
||||
- {id: 16, cat: Movies/3D, desc: "Movies 3DTV"}
|
||||
- {id: 17, cat: Movies/BluRay, desc: "Movies Blu-ray"}
|
||||
- {id: 27, cat: Movies/BluRay, desc: "Movies BD25 Encode"}
|
||||
- {id: 33, cat: Movies/BluRay, desc: "Movies BD9 AVCHD"}
|
||||
- {id: 22, cat: Movies, desc: "Movies 2D to 3D Conv"}
|
||||
- {id: 32, cat: Movies, desc: "Bluray MKV Remux"}
|
||||
- {id: 23, cat: Movies/3D, desc: "Movies Evo 3D"}
|
||||
- {id: 36, cat: Movies/UHD, desc: "Movies 4K UHD Bluray"}
|
||||
- {id: 37, cat: Movies/UHD, desc: "Movies 4K UHD Encode"}
|
||||
- {id: 21, cat: PC, desc: "3D Software"}
|
||||
- {id: 28, cat: XXX, desc: "Adult 720p"}
|
||||
- {id: 29, cat: XXX, desc: "Adult 1080p"}
|
||||
- {id: 30, cat: XXX, desc: "Adult Blu-ray"}
|
||||
- {id: 31, cat: Other, desc: "Misc"}
|
||||
- {id: 19, cat: Audio, desc: "Audio Packs"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
movie-search: [q]
|
||||
music-search: [q]
|
||||
|
||||
settings:
|
||||
- name: username
|
||||
type: text
|
||||
label: Username
|
||||
- name: password
|
||||
type: password
|
||||
label: Password
|
||||
- name: freeleech
|
||||
type: checkbox
|
||||
label: Filter freeleech only
|
||||
default: false
|
||||
- name: sort
|
||||
type: select
|
||||
label: Sort requested from site
|
||||
default: 3
|
||||
options:
|
||||
3: created
|
||||
5: seeders
|
||||
2: title
|
||||
- name: type
|
||||
type: select
|
||||
label: Order requested from site
|
||||
default: 2
|
||||
options:
|
||||
1: desc
|
||||
2: asc
|
||||
- name: info
|
||||
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.
|
||||
- name: info_activity
|
||||
type: info
|
||||
label: Account Inactivity
|
||||
default: "Inactivity grace period is three months which means that if you do not log in to the 3Dtorrents web site for 90 days, your account will be deleted. If you are VIP your will stay until the VIP period is over."
|
||||
|
||||
login:
|
||||
path: index.php?page=login
|
||||
method: form
|
||||
form: form
|
||||
inputs:
|
||||
uid: "{{ .Config.username }}"
|
||||
pwd: "{{ .Config.password }}"
|
||||
captcha:
|
||||
type: image
|
||||
selector: img.captcha
|
||||
input: private_key
|
||||
error:
|
||||
- selector: span.errormsg
|
||||
test:
|
||||
path: index.php
|
||||
selector: a[href="logout.php"]
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: index.php
|
||||
inputs:
|
||||
$raw: "{{ range .Categories }}filter_cat[{{.}}]=1&{{end}}"
|
||||
search: "{{ .Keywords }}"
|
||||
page: torrents
|
||||
category: 0
|
||||
# 0 all, 1 Anaglyph 3D, 2 Side by Side,3 Over Under
|
||||
3dformat: 0
|
||||
# 0 all, 1 active only, 2 dead only
|
||||
active: 0
|
||||
order: "{{ .Config.sort }}"
|
||||
by: "{{ .Config.type }}"
|
||||
|
||||
rows:
|
||||
selector: "table[cellspacing!=\"1\"].lista > tbody > tr:has(a[href^=\"index.php?page=torrents&category=\"]){{ if .Config.freeleech }}:has(img[src=\"images/sign_free.png\"]){{ else }}{{ end }}"
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: a[href^="index.php?page=torrents&category="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: category
|
||||
- name: re_replace
|
||||
args: ["(\\b0\\b)", "31"]
|
||||
title:
|
||||
selector: a[href^="index.php?page=torrent-details&id="]
|
||||
details:
|
||||
selector: a[href^="index.php?page=torrent-details&id="]
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href^="index.php?page=torrent-details&id="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["index.php?page=torrent-details&id=", "download.php?id="]
|
||||
poster:
|
||||
selector: a[href^="index.php?page=torrent-details&id="]
|
||||
attribute: onmouseover
|
||||
filters:
|
||||
- name: regexp
|
||||
args: ",\\'(.+?)\\'"
|
||||
genre:
|
||||
selector: td:nth-child(2) span
|
||||
description:
|
||||
text: "{{ .Result.genre }}"
|
||||
date:
|
||||
selector: td:nth-last-child(5)
|
||||
filters:
|
||||
- name: append
|
||||
args: " -07:00" # PDT
|
||||
- name: dateparse
|
||||
args: "dd/MM/yyyy zzz"
|
||||
size:
|
||||
selector: td:nth-last-child(4)
|
||||
seeders:
|
||||
selector: a[href^="index.php?page=peers"]
|
||||
leechers:
|
||||
selector: td:has(a[href^="index.php?page=peers"]) + td
|
||||
grabs:
|
||||
selector: a[href^="index.php?page=torrent_history"]
|
||||
optional: true
|
||||
default: 0
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
img[src="images/sign_free.png"]: 0
|
||||
img[src="images/50off.png"]: 0.5
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
minimumratio:
|
||||
text: 1.0
|
||||
# xbtit
|
149
config/prowlarr/Definitions/4thd.yml
Normal file
149
config/prowlarr/Definitions/4thd.yml
Normal file
|
@ -0,0 +1,149 @@
|
|||
---
|
||||
id: 4thd
|
||||
name: 4thD
|
||||
description: "4th Dimension is a Private Torrent Tracker for MOVIES / TV / GENERAL"
|
||||
language: en-US
|
||||
encoding: UTF-8
|
||||
type: private
|
||||
links:
|
||||
- https://4thd.xyz/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 38, cat: Movies, desc: "Movie Pack"}
|
||||
- {id: 36, cat: Movies, desc: "Movies/Classic Films"}
|
||||
- {id: 13, cat: Movies, desc: "Movies/Documentary"}
|
||||
- {id: 21, cat: Movies/Foreign, desc: "Movies/Foreign"}
|
||||
- {id: 27, cat: Movies/HD, desc: "MoviesHD"}
|
||||
- {id: 29, cat: Movies/SD, desc: "Movies/SD"}
|
||||
- {id: 26, cat: Movies/SD, desc: "Movies/XviD"}
|
||||
- {id: 45, cat: Movies, desc: "Movies/Kids"}
|
||||
- {id: 41, cat: TV/Foreign, desc: "Foreign tv"}
|
||||
- {id: 40, cat: TV, desc: "Mini-Series"}
|
||||
- {id: 43, cat: TV/HD, desc: "TV H265"}
|
||||
- {id: 42, cat: TV, desc: "TV Movie"}
|
||||
- {id: 4, cat: TV/HD, desc: "TV/HD-x720"}
|
||||
- {id: 14, cat: TV, desc: "TV/Packs"}
|
||||
- {id: 2, cat: TV/SD, desc: "TV/SD MP4/mkv"}
|
||||
- {id: 31, cat: TV/SD, desc: "TV/XviD"}
|
||||
- {id: 18, cat: PC/Games, desc: "Games/PC"}
|
||||
- {id: 44, cat: Audio, desc: "Music/Pack"}
|
||||
- {id: 12, cat: Audio/Lossless, desc: "Music/FLAC"}
|
||||
- {id: 15, cat: Audio/MP3, desc: "Music/MP3"}
|
||||
- {id: 37, cat: Audio, desc: "Radio"}
|
||||
- {id: 9, cat: PC/0day, desc: "Apps/PC"}
|
||||
- {id: 34, cat: Audio/Audiobook, desc: "Audiobooks"}
|
||||
- {id: 25, cat: Books/EBook, desc: "eBooks"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
music-search: [q]
|
||||
book-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: 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
|
||||
|
||||
login:
|
||||
path: login.php
|
||||
method: form
|
||||
form: form#loginform
|
||||
inputs:
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
keeplogged: 1
|
||||
error:
|
||||
- selector: form#loginform .warning
|
||||
test:
|
||||
path: index.php
|
||||
selector: a[href^="logout.php?auth="]
|
||||
|
||||
search:
|
||||
paths:
|
||||
# https://4thd.xyz/torrents.php?order_by=time&order_way=desc&filter_freeleech=1&title=twilight+zone&search_type=1&taglist=&tags_type=0
|
||||
- path: torrents.php
|
||||
inputs:
|
||||
$raw: "{{ range .Categories }}filter_cat[{{.}}]=1&{{end}}"
|
||||
order_by: "{{ .Config.sort }}"
|
||||
order_way: "{{ .Config.type }}"
|
||||
# 0 all, 1 onlyfree
|
||||
filter_freeleech: "{{ if .Config.freeleech }}1{{ else }}0{{ end }}"
|
||||
title: "{{ .Keywords }}"
|
||||
search_type: 1
|
||||
taglist: ""
|
||||
tags_type: 0
|
||||
|
||||
rows:
|
||||
selector: table#torrent_table > tbody > tr.torrent:has(a[href^="torrents.php?action=download&id="])
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: td.cats_col div a
|
||||
attribute: href
|
||||
filters:
|
||||
- name: regexp
|
||||
args: \[(\d+)\]
|
||||
title:
|
||||
selector: a[href^="torrents.php?id="]
|
||||
details:
|
||||
selector: a[href^="torrents.php?id="]
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href^="torrents.php?action=download&id="]
|
||||
attribute: href
|
||||
description:
|
||||
selector: div.tags
|
||||
poster:
|
||||
selector: td:nth-child(2) script
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "src=(.*?)>"
|
||||
- name: re_replace
|
||||
args: ["\\\\", ""]
|
||||
files:
|
||||
selector: td:nth-child(3)
|
||||
date:
|
||||
selector: td:nth-child(5)
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["Never", "99 years ago"]
|
||||
size:
|
||||
selector: td:nth-child(6)
|
||||
grabs:
|
||||
selector: td:nth-child(7)
|
||||
seeders:
|
||||
selector: td:nth-child(8)
|
||||
leechers:
|
||||
selector: td:nth-child(9)
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
img[src$="/freedownload.gif"]: 0
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
# Engine n/a
|
97
config/prowlarr/Definitions/52bt.yml
Normal file
97
config/prowlarr/Definitions/52bt.yml
Normal file
|
@ -0,0 +1,97 @@
|
|||
---
|
||||
id: 52bt
|
||||
name: 52BT
|
||||
description: "52BT is a CHINESE Public tracker for TV / MOVIES / MUSIC / GENERAL"
|
||||
language: zh-CN
|
||||
type: public
|
||||
encoding: UTF-8
|
||||
links:
|
||||
# Send any content to 52btbtbt@gmail.com to get the latest address. or visit https://521.52btbt.cyou/
|
||||
- https://529048.xyz/
|
||||
- https://529049.xyz/
|
||||
- https://www.529052.xyz/
|
||||
legacylinks:
|
||||
- https://529050.xyz/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 影视, cat: TV, desc: 影视}
|
||||
- {id: 影视, cat: Movies, desc: 影视}
|
||||
- {id: 音乐, cat: Audio, desc: 音乐}
|
||||
- {id: 图像, cat: Other, desc: 图像}
|
||||
- {id: 文档书籍, cat: Books, desc: 文档书籍}
|
||||
- {id: 压缩文件, cat: Other, desc: 压缩文件}
|
||||
- {id: 安装包, cat: PC, desc: 安装包}
|
||||
- {id: 其他, cat: Other, desc: 其他}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
music-search: [q]
|
||||
book-search: [q]
|
||||
|
||||
settings:
|
||||
- name: cat-id
|
||||
type: select
|
||||
label: Category
|
||||
default: 0
|
||||
options:
|
||||
0: All categories
|
||||
1: Film and Television
|
||||
2: Music
|
||||
3: Images
|
||||
4: Books
|
||||
5: Zip Files
|
||||
6: Software
|
||||
7: Other
|
||||
- name: sort
|
||||
type: select
|
||||
label: Sort requested from site
|
||||
default: 2
|
||||
options:
|
||||
2: created
|
||||
1: size
|
||||
0: relevance
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: "search-{{ if .Keywords }}{{ .Keywords }}{{ else }}{{ .Today.Year }}{{ end }}-{{ .Config.cat-id }}-{{ .Config.sort }}-1.html"
|
||||
|
||||
rows:
|
||||
selector: div.ssbox
|
||||
|
||||
fields:
|
||||
categorydesc:
|
||||
selector: div.title > h3 > span
|
||||
filters:
|
||||
- name: re_replace
|
||||
args: ["([\\[\\]]+)", ""]
|
||||
title:
|
||||
selector: a[href^="/hash/"]
|
||||
details:
|
||||
selector: a[href^="/hash/"]
|
||||
attribute: href
|
||||
magnet:
|
||||
selector: a[href^="magnet:?xt="]
|
||||
attribute: href
|
||||
date:
|
||||
selector: div.sbar > span:contains("添加时间:")
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["添加时间:", ""]
|
||||
- name: append
|
||||
args: " +08:00" # CST
|
||||
- name: dateparse
|
||||
args: "yyyy-MM-dd zzz"
|
||||
size:
|
||||
selector: div.sbar > span:contains("大小:")
|
||||
seeders:
|
||||
text: 1
|
||||
leechers:
|
||||
text: 1
|
||||
downloadvolumefactor:
|
||||
text: 0
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
# engine n/a
|
183
config/prowlarr/Definitions/52pt.yml
Normal file
183
config/prowlarr/Definitions/52pt.yml
Normal file
|
@ -0,0 +1,183 @@
|
|||
---
|
||||
id: 52pt
|
||||
name: 52PT
|
||||
description: "52PT is a CHINESE Private Torrent Tracker for HD MOVIES / TV"
|
||||
language: zh-CN
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://52pt.site/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 401, cat: Movies, desc: "Movies/电影"}
|
||||
- {id: 404, cat: TV/Documentary, desc: "Documentaries/纪录片"}
|
||||
- {id: 405, cat: TV/Anime, desc: "Animations/动漫"}
|
||||
- {id: 402, cat: TV, desc: "TV Series/剧集"}
|
||||
- {id: 403, cat: TV, desc: "TV Shows/综艺"}
|
||||
- {id: 406, cat: Audio/Video, desc: "MusicVideo/音乐MV"}
|
||||
- {id: 407, cat: TV/Sport, desc: "Sports/运体"}
|
||||
- {id: 409, cat: Other, desc: "Misc/其他"}
|
||||
- {id: 410, cat: Other, desc: "Opera/戏曲 曲艺"}
|
||||
- {id: 408, cat: Audio, desc: "HQ Audio/无损音乐"}
|
||||
- {id: 411, cat: XXX, desc: "Erotic/情色"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep, imdbid, doubanid]
|
||||
movie-search: [q, imdbid, doubanid]
|
||||
music-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: sort
|
||||
type: select
|
||||
label: Sort requested from site
|
||||
default: 4
|
||||
options:
|
||||
4: created
|
||||
7: seeders
|
||||
5: size
|
||||
1: title
|
||||
- name: type
|
||||
type: select
|
||||
label: Order requested from site
|
||||
default: desc
|
||||
options:
|
||||
desc: desc
|
||||
asc: asc
|
||||
- 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.
|
||||
- name: info_activity
|
||||
type: info
|
||||
label: Account Inactivity
|
||||
default: "Account retention rules:<ol><li>Veteran User (junior college) and above will be retained forever</li><li>Elite User (junior high school) and above will not be deleted after parking (in the control panel)</li><li>Users with a parked account who do not log in for 400 consecutive days will be deleted</li><li>Users with non-parked account will be deleted if they do not log in for 150 consecutive days</li><li>Users with no traffic (that is, upload/download data are both 0) will be deleted if they do not log in for 15 consecutive days, or if the registration time reaches 60 days.</li></ol>"
|
||||
|
||||
login:
|
||||
path: login.php
|
||||
method: form
|
||||
form: form[action="takelogin.php"]
|
||||
captcha:
|
||||
type: image
|
||||
selector: img[alt="CAPTCHA"]
|
||||
input: imagestring
|
||||
inputs:
|
||||
secret: ""
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
logout: ""
|
||||
securelogin: ""
|
||||
ssl: yes
|
||||
trackerssl: yes
|
||||
error:
|
||||
- selector: td.embedded:has(h2:contains("失败"))
|
||||
test:
|
||||
path: index.php
|
||||
selector: a[href="usercp.php"]
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: torrents.php
|
||||
inputs:
|
||||
$raw: "{{ range .Categories }}cat{{.}}=1&{{end}}"
|
||||
# currently supports only one query id at one time.
|
||||
search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ end }}{{ if or .Query.IMDBID .Query.DoubanID }} {{ else }}{{ .Keywords }}{{ end }}{{ if .Query.DoubanID }}{{ .Query.DoubanID }}{{ else }}{{ end }}"
|
||||
# 0 incldead, 1 active, 2 dead
|
||||
incldead: 0
|
||||
# 0 all, 1 normal, 2 free, 3 2x, 4 2xfree, 5 50%, 6 2x50%, 7 30%
|
||||
spstate: "{{ if .Config.freeleech }}2{{ else }}0{{ end }}"
|
||||
# 0 title, 1 descr, 3 uploader, 4 imdburl
|
||||
search_area: "{{ if .Query.IMDBID }}4{{ else }}{{ end }}{{ if .Query.DoubanID }}1{{ else }}{{ end }}{{ if or .Query.IMDBID .Query.DoubanID }}{{ else }}0{{ end }}"
|
||||
# 0 AND, 1 OR, 2 exact
|
||||
search_mode: 0
|
||||
sort: "{{ .Config.sort }}"
|
||||
type: "{{ .Config.type }}"
|
||||
notnewword: 1
|
||||
# does not return imdb or doubanid in results
|
||||
|
||||
rows:
|
||||
selector: table.torrents > tbody > tr:has(table.torrentname)
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: a[href^="?cat="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: cat
|
||||
title_default:
|
||||
selector: a[href^="details.php?id="]
|
||||
title:
|
||||
selector: a[title][href^="details.php?id="]
|
||||
attribute: title
|
||||
optional: true
|
||||
default: "{{ .Result.title_default }}"
|
||||
details:
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href^="download.php?id="]
|
||||
attribute: href
|
||||
date_elapsed:
|
||||
# time type: time elapsed (default)
|
||||
selector: td:nth-child(4) > span[title]
|
||||
attribute: title
|
||||
optional: true
|
||||
filters:
|
||||
- name: append
|
||||
args: " +08:00" # CST
|
||||
- name: dateparse
|
||||
args: "yyyy-MM-dd HH:mm:ss zzz"
|
||||
date_added:
|
||||
# time added
|
||||
selector: td:nth-child(4):not(:has(span))
|
||||
optional: true
|
||||
filters:
|
||||
- name: append
|
||||
args: " +08:00" # CST
|
||||
- name: dateparse
|
||||
args: "yyyy-MM-ddHH:mm:ss zzz"
|
||||
date:
|
||||
text: "{{ if or .Result.date_elapsed .Result.date_added }}{{ or .Result.date_elapsed .Result.date_added }}{{ else }}now{{ end }}"
|
||||
size:
|
||||
selector: td:nth-child(5)
|
||||
seeders:
|
||||
selector: td:nth-child(6)
|
||||
leechers:
|
||||
selector: td:nth-child(7)
|
||||
grabs:
|
||||
selector: td:nth-child(8)
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
img.pro_free: 0
|
||||
img.pro_free2up: 0
|
||||
img.pro_50pctdown: 0.5
|
||||
img.pro_50pctdown2up: 0.5
|
||||
img.pro_30pctdown: 0.3
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
case:
|
||||
img.pro_50pctdown2up: 2
|
||||
img.pro_free2up: 2
|
||||
img.pro_2up: 2
|
||||
"*": 1
|
||||
minimumratio:
|
||||
text: 1
|
||||
minimumseedtime:
|
||||
# 1 day (as seconds = 24 x 60 x 60)
|
||||
text: 86400
|
||||
description:
|
||||
selector: td:nth-child(2)
|
||||
remove: a, b, font, img, span
|
||||
# NexusPHP Standard v1.5 Beta 4
|
240
config/prowlarr/Definitions/Bittorrentfiles.yml
Normal file
240
config/prowlarr/Definitions/Bittorrentfiles.yml
Normal 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.
|
||||
- name: info_activity
|
||||
type: info
|
||||
label: Account Inactivity
|
||||
default: "Inactive accounts of users, power users and mega users will be permanently deleted from the database after 125 days! Torrents in your share don't count as activity - only logging in again counts! You can extend this period to 250 days by setting your account to parking. You can find the option to do this under Edit Profile."
|
||||
|
||||
login:
|
||||
path: signin.php
|
||||
method: post
|
||||
inputs:
|
||||
user: "{{ .Config.user }}"
|
||||
pass: "{{ .Config.pass }}"
|
||||
returnto: "%2Fbrowse.php"
|
||||
error:
|
||||
- selector: .error
|
||||
test:
|
||||
path: index.php
|
||||
selector: a[href^="/logout.php?c="]
|
||||
|
||||
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:
|
||||
category:
|
||||
selector: a[href^="/browse.php?cat="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: cat
|
||||
title:
|
||||
selector: a[href^="details.php"]
|
||||
attribute: title
|
||||
details:
|
||||
selector: a[href^="details.php"]
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href^="/download.php"]
|
||||
attribute: href
|
||||
grabs:
|
||||
selector: a[title="Snatcher"]
|
||||
optional: true
|
||||
default: 0
|
||||
files:
|
||||
selector: a[title="Files"]
|
||||
optional: true
|
||||
default: 0
|
||||
size:
|
||||
selector: td:nth-child(6)
|
||||
seeders:
|
||||
selector: a[title="Seeder"]
|
||||
optional: true
|
||||
default: 0
|
||||
leechers:
|
||||
selector: a[title="Leecher"]
|
||||
optional: true
|
||||
default: 0
|
||||
# 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: "dd.MM.yyyy HH:mm:ss zzz"
|
||||
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
|
177
config/prowlarr/Definitions/abnormal.yml
Normal file
177
config/prowlarr/Definitions/abnormal.yml
Normal file
|
@ -0,0 +1,177 @@
|
|||
---
|
||||
id: abnormal
|
||||
name: Abnormal
|
||||
description: "General French Private Tracker"
|
||||
language: fr-FR
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
requestDelay: 2.1
|
||||
links:
|
||||
- https://abn.lol/
|
||||
legacylinks:
|
||||
- https://abnormal.ws
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 1, cat: TV, desc: "Series"}
|
||||
- {id: 2, cat: Movies, desc: "Movies"}
|
||||
- {id: 3, cat: TV/Documentary, desc: "Documentaries"}
|
||||
- {id: 4, cat: TV/Anime, desc: "Anime"}
|
||||
- {id: 5, cat: PC/Games, desc: "Games"}
|
||||
- {id: 6, cat: PC, desc: "Applications"}
|
||||
- {id: 7, cat: Books/EBook, desc: "Ebooks"}
|
||||
- {id: 9, cat: TV, desc: "Emissions"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
book-search: [q]
|
||||
|
||||
settings:
|
||||
- name: username
|
||||
type: text
|
||||
label: Username
|
||||
- name: password
|
||||
type: password
|
||||
label: Password
|
||||
- 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 and SUBFRENCH with ENGLISH
|
||||
default: false
|
||||
- name: freeleech
|
||||
type: checkbox
|
||||
label: Search freeleech only
|
||||
default: false
|
||||
- name: sort
|
||||
type: select
|
||||
label: Sort requested from site
|
||||
default: Created
|
||||
options:
|
||||
Created: created
|
||||
Seeders: seeders
|
||||
Size: size
|
||||
ReleaseName: title
|
||||
- name: type
|
||||
type: select
|
||||
label: Order requested from site
|
||||
default: desc
|
||||
options:
|
||||
desc: desc
|
||||
asc: asc
|
||||
- name: info_activity
|
||||
type: info
|
||||
label: Account Inactivity
|
||||
default: "Accounts are automatically deactivated after 4 months of inactivity (no connection to the site)."
|
||||
|
||||
login:
|
||||
method: form
|
||||
path: Home/Login
|
||||
form: "#account"
|
||||
inputs:
|
||||
Username: "{{ .Config.username }}"
|
||||
Password: "{{ .Config.password }}"
|
||||
RememberMe: true
|
||||
selectorinputs:
|
||||
__RequestVerificationToken:
|
||||
selector: input[name="__RequestVerificationToken"]
|
||||
attribute: value
|
||||
error:
|
||||
- selector: div.validation-summary-errors[data-valmsg-summary="true"]
|
||||
message:
|
||||
text: " - Bad username/password."
|
||||
test:
|
||||
path: /
|
||||
selector: form#logoutForm
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: Torrent
|
||||
inputs:
|
||||
$raw: "{{ range .Categories }}SelectedCats={{.}}&{{end}}"
|
||||
Search: "{{ .Keywords }}"
|
||||
UserId: ""
|
||||
YearOperator: ≥
|
||||
Year: ""
|
||||
RatingOperator: ≥
|
||||
Rating: ""
|
||||
Pending: ""
|
||||
Pack: ""
|
||||
Scene: ""
|
||||
Freeleech: "{{ if .Config.freeleech }}true{{ else }}{{ end }}"
|
||||
SortOn: "{{ .Config.sort }}"
|
||||
SortOrder: "{{ .Config.type }}"
|
||||
|
||||
rows:
|
||||
selector: table.table-rows > tbody > tr:has(a[href^="/Torrent/Download?ReleaseId="])
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: a[href^="/Torrent?SelectedCats="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: SelectedCats
|
||||
title_phase1:
|
||||
selector: td.grid-release-column > a
|
||||
title_vostfr:
|
||||
text: "{{ .Result.title_phase1 }}"
|
||||
filters:
|
||||
- name: re_replace
|
||||
args: ["(?i)\\b(vostfr|subfrench)\\b", "ENGLISH"]
|
||||
title_phase2:
|
||||
text: "{{ if .Config.vostfr }}{{ .Result.title_vostfr }}{{ else }}{{ .Result.title_phase1 }}{{ end }}"
|
||||
title_multilang:
|
||||
text: "{{ .Result.title_phase2 }}"
|
||||
filters:
|
||||
- name: re_replace
|
||||
args: ["(?i)\\b(MULTI(?!.*(?:FRENCH|ENGLISH|VOSTFR)))\\b", "{{ .Config.multilanguage }}"]
|
||||
title:
|
||||
text: "{{ if .Config.multilang }}{{ .Result.title_multilang }}{{ else }}{{ .Result.title_phase2 }}{{ end }}"
|
||||
details:
|
||||
selector: a[href^="/Torrent/Details?ReleaseId="]
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href^="/Torrent/Download?ReleaseId="]
|
||||
attribute: href
|
||||
date:
|
||||
text: now
|
||||
size:
|
||||
selector: td:nth-child(6)
|
||||
filters:
|
||||
- name: re_replace
|
||||
args: [",", "."]
|
||||
- name: replace
|
||||
args: ["o", "B"]
|
||||
seeders:
|
||||
selector: td:nth-child(7)
|
||||
leechers:
|
||||
selector: td:nth-child(8)
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
img[title="Freeleech"]: 0
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
case:
|
||||
"*": 1
|
||||
minimumratio:
|
||||
text: 1.0
|
||||
minimumseedtime:
|
||||
# 4 days (as seconds = 4 x 24 x 60 x 60)
|
||||
text: 345600
|
||||
# Gazelle
|
180
config/prowlarr/Definitions/abtorrents.yml
Normal file
180
config/prowlarr/Definitions/abtorrents.yml
Normal file
|
@ -0,0 +1,180 @@
|
|||
---
|
||||
id: abtorrents
|
||||
name: ABtorrents
|
||||
description: "ABtorrents (ABT) is a Private Torrent Tracker for AUDIOBOOKS"
|
||||
language: en-US
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://abtorrents.me/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 10, cat: Audio/Audiobook, desc: "Action/Adventure"}
|
||||
- {id: 20, cat: Audio/Audiobook, desc: "Biography/Memoirs"}
|
||||
- {id: 30, cat: Audio/Audiobook, desc: "Business "}
|
||||
- {id: 40, cat: Audio/Audiobook, desc: "Childrens"}
|
||||
- {id: 50, cat: Audio/Audiobook, desc: "Humor (Comedy)"}
|
||||
- {id: 60, cat: Audio/Audiobook, desc: "Comics"}
|
||||
- {id: 70, cat: Audio/Audiobook, desc: "Computers "}
|
||||
- {id: 80, cat: Audio/Audiobook, desc: "Adult/Erotica"}
|
||||
- {id: 90, cat: Audio/Audiobook, desc: "Fantasy-General"}
|
||||
- {id: 100, cat: Audio/Audiobook, desc: "Fantasy-Youth"}
|
||||
- {id: 110, cat: Audio/Audiobook, desc: "Files"}
|
||||
- {id: 120, cat: Audio/Audiobook, desc: "Foreign Language"}
|
||||
- {id: 130, cat: Audio/Audiobook, desc: "General Fiction"}
|
||||
- {id: 140, cat: Audio/Audiobook, desc: "Historical Fiction"}
|
||||
- {id: 150, cat: Audio/Audiobook, desc: "History"}
|
||||
- {id: 160, cat: Audio/Audiobook, desc: "Horror"}
|
||||
- {id: 170, cat: Audio/Audiobook, desc: "Literature"}
|
||||
- {id: 175, cat: Audio/Audiobook, desc: "LitRPG"}
|
||||
- {id: 180, cat: Audio/Audiobook, desc: "Mystery "}
|
||||
- {id: 190, cat: Audio/Audiobook, desc: "Non-Fiction"}
|
||||
- {id: 200, cat: Audio/Audiobook, desc: "Radio Drama"}
|
||||
- {id: 210, cat: Audio/Audiobook, desc: "Romance"}
|
||||
- {id: 220, cat: Audio/Audiobook, desc: "Science"}
|
||||
- {id: 230, cat: Audio/Audiobook, desc: "Science Fiction "}
|
||||
- {id: 240, cat: Audio/Audiobook, desc: "Sci-Fi Apocalypse"}
|
||||
- {id: 250, cat: Audio/Audiobook, desc: "Self Improvement"}
|
||||
- {id: 270, cat: Audio/Audiobook, desc: "Suspense"}
|
||||
- {id: 280, cat: Audio/Audiobook, desc: "Talk Radio"}
|
||||
- {id: 260, cat: Audio/Audiobook, desc: "Crime/Thriller/Mystery"}
|
||||
- {id: 290, cat: Audio/Audiobook, desc: "Urban Fantasy"}
|
||||
- {id: 300, cat: Audio/Audiobook, desc: "Western"}
|
||||
- {id: 400, cat: Books/EBook, desc: "[E] Action/Adventure"}
|
||||
- {id: 410, cat: Books/EBook, desc: "[E] Adult / Erotica"}
|
||||
- {id: 420, cat: Books/EBook, desc: "[E] Arts & Crafts (Hobbies)"}
|
||||
- {id: 430, cat: Books/EBook, desc: "[E] Biography/Memoirs"}
|
||||
- {id: 730, cat: Books/EBook, desc: "[E] Collections"}
|
||||
- {id: 440, cat: Books/EBook, desc: "[E] Comic Books"}
|
||||
- {id: 450, cat: Books/EBook, desc: "[E] Computer Learning"}
|
||||
- {id: 460, cat: Books/EBook, desc: "[E] Cookery"}
|
||||
- {id: 470, cat: Books/EBook, desc: "[E] Crime/Thriller/Mystery"}
|
||||
- {id: 480, cat: Books/EBook, desc: "[E] Fantasy"}
|
||||
- {id: 490, cat: Books/EBook, desc: "[E] Forteana"}
|
||||
- {id: 500, cat: Books/EBook, desc: "[E] General Fiction"}
|
||||
- {id: 510, cat: Books/EBook, desc: "[E] Historical Fiction"}
|
||||
- {id: 520, cat: Books/EBook, desc: "[E] History/Documentary"}
|
||||
- {id: 530, cat: Books/EBook, desc: "[E] Horror"}
|
||||
- {id: 540, cat: Books/EBook, desc: "[E] Humor (Comedy)"}
|
||||
- {id: 550, cat: Books/EBook, desc: "[E] LGBT"}
|
||||
- {id: 560, cat: Books/EBook, desc: "[E] Literary Fiction"}
|
||||
- {id: 565, cat: Books/EBook, desc: "[E] LitRPG"}
|
||||
- {id: 570, cat: Books/EBook, desc: "[E] Magazines - all"}
|
||||
- {id: 580, cat: Books/EBook, desc: "[E] Non-Fiction"}
|
||||
- {id: 585, cat: Books/EBook, desc: "[E] Other Languages"}
|
||||
- {id: 590, cat: Books/EBook, desc: "[E] Paranormal Romance"}
|
||||
- {id: 600, cat: Books/EBook, desc: "[E] Reference/Educational"}
|
||||
- {id: 610, cat: Books/EBook, desc: "[E] Religion and Spirituality"}
|
||||
- {id: 620, cat: Books/EBook, desc: "[E] Romance"}
|
||||
- {id: 630, cat: Books/EBook, desc: "[E] Sci-Fi"}
|
||||
- {id: 640, cat: Books/EBook, desc: "[E] Sci-Fi/Apocalyptic"}
|
||||
- {id: 650, cat: Books/EBook, desc: "[E] Self-Help"}
|
||||
- {id: 660, cat: Books/EBook, desc: "[E] Sports/Fitness"}
|
||||
- {id: 670, cat: Books/EBook, desc: "[E] Travel"}
|
||||
- {id: 680, cat: Books/EBook, desc: "[E] Unsorted"}
|
||||
- {id: 690, cat: Books/EBook, desc: "[E] Urban Fantasy/Paranormal"}
|
||||
- {id: 700, cat: Books/EBook, desc: "[E] Western"}
|
||||
- {id: 710, cat: Books/EBook, desc: "[E] Young Adult"}
|
||||
- {id: 720, cat: Books/EBook, desc: "[E] Young Children"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
book-search: [q]
|
||||
|
||||
settings:
|
||||
- name: cookie
|
||||
type: text
|
||||
label: Cookie
|
||||
- name: info
|
||||
type: info
|
||||
label: How to get the Cookie
|
||||
default: "<ol><li>Login to this tracker with your browser</li><li>Open the <b>DevTools</b> panel by pressing <b>F12</b></li><li>Select the <b>Network</b> tab</li><li>Click on the <b>Doc</b> button (Chrome Browser) or <b>HTML</b> button (FireFox)</li><li>Refresh the page by pressing <b>F5</b></li><li>Click on the first row entry</li><li>Select the <b>Headers</b> tab on the Right panel</li><li>Find <b>'cookie:'</b> in the <b>Request Headers</b> section</li><li><b>Select</b> and <b>Copy</b> the whole cookie string <i>(everything after 'cookie: ')</i> and <b>Paste</b> here.</li></ol>"
|
||||
- name: freeleech
|
||||
type: checkbox
|
||||
label: Search freeleech only
|
||||
default: false
|
||||
- name: info_results
|
||||
type: info
|
||||
label: Search results
|
||||
default: "If you are getting the error <b>Login Failed, got redirected</b> then access the site with your browser and <b>mark as read</b> all PMs."
|
||||
- name: info_activity
|
||||
type: info
|
||||
label: Account Inactivity
|
||||
default: "Account retention rules:<ol><li>Any account that has unread PMs older than 14 days or has not logged in for 30 days will be suspended</li><li>Any account that has not been logged into for 90 days is deemed inactive and will thus be purged</li><li>Any account that has not been logged into for 30 days is deemed inactive and will be put on suspension until User logs in again</li><li>User’s stats, points, and history are irrevocably lost when purged</li><li>Logging into the site is the ONLY way to keep an account active</li><li>SEEDING ONLY does NOT constitute site activity.</li></ol>"
|
||||
|
||||
login:
|
||||
method: cookie
|
||||
test:
|
||||
path: index.php
|
||||
selector: a[href*="logout.php?hash_please="]
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: browse.php
|
||||
inputs:
|
||||
$raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
|
||||
search: "{{ .Keywords }}"
|
||||
# title, descr
|
||||
searchin: title
|
||||
# 0 active, 1 incldead, 2 onlydead
|
||||
incldead: 1
|
||||
# 1 onlyfree, null all
|
||||
only_free: "{{ if .Config.freeleech }}1{{ else }}{{ end }}"
|
||||
|
||||
rows:
|
||||
selector: table.table-striped > tbody > tr:has(a[href^="download.php?torrent="])
|
||||
|
||||
fields: # some users (rank specific?) have an extra column (td:nth-child(4)) with bookmark features
|
||||
category:
|
||||
selector: a[href^="browse.php?cat="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: cat
|
||||
title:
|
||||
selector: a[href^="details.php?id="]
|
||||
remove: span
|
||||
details:
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href^="download.php?torrent="]
|
||||
attribute: href
|
||||
files:
|
||||
selector: a[href^="filelist.php?id="]
|
||||
date_day:
|
||||
# auto adjusted by site account profile
|
||||
# Yesterday 6:00 AM
|
||||
selector: td:nth-last-child(2) > div:contains("day")
|
||||
optional: true
|
||||
filters:
|
||||
- name: fuzzytime
|
||||
date_year:
|
||||
# auto adjusted by site account profile
|
||||
# Aug 6 2021 7:25 PM
|
||||
selector: td:nth-last-child(2) > div:not(:contains("day"))
|
||||
optional: true
|
||||
filters:
|
||||
- name: dateparse
|
||||
args: "MMM d yyyyh:mm tt"
|
||||
date:
|
||||
text: "{{ if or .Result.date_day .Result.date_year }}{{ or .Result.date_day .Result.date_year }}{{ else }}now{{ end }}"
|
||||
size:
|
||||
selector: td:nth-last-child(4) div:first-child
|
||||
grabs:
|
||||
selector: a[href^="snatches.php?id="]
|
||||
seeders:
|
||||
selector: td:nth-last-child(3) div:nth-last-child(2)
|
||||
leechers:
|
||||
selector: td:nth-last-child(3) div:last-child
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
tr.freeleech_color: 0
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
minimumseedtime:
|
||||
# 14 days (as seconds = 14 x 24 x 60 x 60)
|
||||
text: 1209600
|
||||
# U-232 V4.5
|
59
config/prowlarr/Definitions/acgrip.yml
Normal file
59
config/prowlarr/Definitions/acgrip.yml
Normal file
|
@ -0,0 +1,59 @@
|
|||
---
|
||||
id: acgrip
|
||||
name: ACG.RIP
|
||||
description: "ACG.RIP is a CHINESE Public torrent tracker for the latest anime and Japanese related torrents"
|
||||
language: zh-CN
|
||||
type: public
|
||||
followredirect: true
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://acg.rip/
|
||||
|
||||
caps:
|
||||
categories:
|
||||
1: TV
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
|
||||
settings: []
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: /
|
||||
inputs:
|
||||
term: "{{ .Keywords }}"
|
||||
|
||||
rows:
|
||||
selector: tbody tr
|
||||
|
||||
fields:
|
||||
title:
|
||||
selector: td.title > span.title a
|
||||
category:
|
||||
text: 1
|
||||
details:
|
||||
selector: td.title > span.title a
|
||||
attribute: href
|
||||
download:
|
||||
selector: td.action a
|
||||
attribute: href
|
||||
size:
|
||||
selector: td.size
|
||||
seeders:
|
||||
selector: td.peers div.seed
|
||||
leechers:
|
||||
selector: td.peers div.leech
|
||||
grabs:
|
||||
selector: td.peers div.done
|
||||
date:
|
||||
selector: td.date time
|
||||
attribute: datetime
|
||||
filters:
|
||||
- name: fuzzytime
|
||||
downloadvolumefactor:
|
||||
text: 0
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
# engine n/a
|
188
config/prowlarr/Definitions/acidlounge.yml
Normal file
188
config/prowlarr/Definitions/acidlounge.yml
Normal file
|
@ -0,0 +1,188 @@
|
|||
---
|
||||
id: acidlounge
|
||||
name: Acid-Lounge
|
||||
description: "Acid Lounge (A-L) is a Private Torrent Tracker for 0DAY / GENERAL"
|
||||
language: en-US
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://www.acid-lounge.org.uk/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 79, cat: PC/Mobile-Android, desc: "Android"}
|
||||
- {id: 61, cat: TV/Anime, desc: "Anime"}
|
||||
- {id: 55, cat: PC/0day, desc: "Appz/0-Day"}
|
||||
- {id: 59, cat: PC/Mac, desc: "Appz/Mac"}
|
||||
- {id: 22, cat: PC, desc: "Appz/Misc"}
|
||||
- {id: 32, cat: PC, desc: "Appz/PC"}
|
||||
- {id: 48, cat: Audio/Audiobook, desc: "Audio/Books"}
|
||||
- {id: 84, cat: Other, desc: "Damaged Torrent"}
|
||||
- {id: 14, cat: Books/EBook, desc: "eBooks"}
|
||||
- {id: 82, cat: Books/Comics, desc: "eBooks/Comics"}
|
||||
- {id: 81, cat: Books/Mags, desc: "eBooks/Mags"}
|
||||
- {id: 60, cat: PC/Mac, desc: "Games/Mac"}
|
||||
- {id: 54, cat: Console/NDS, desc: "Games/NDS"}
|
||||
- {id: 4, cat: PC/Games, desc: "Games/PC"}
|
||||
- {id: 42, cat: Console/PS3, desc: "Games/PS3"}
|
||||
- {id: 56, cat: Console/Wii, desc: "Games/Wii"}
|
||||
- {id: 36, cat: Console/XBox 360, desc: "Games/xbox360"}
|
||||
- {id: 69, cat: Other, desc: "Halloween"}
|
||||
- {id: 80, cat: PC/Mobile-iOS, desc: "iPhone / iPad"}
|
||||
- {id: 46, cat: Other, desc: "Kids"}
|
||||
- {id: 63, cat: PC, desc: "Linux"}
|
||||
- {id: 49, cat: Other, desc: "Misc"}
|
||||
- {id: 77, cat: Movies/3D, desc: "Movies/3D BLURAY"}
|
||||
- {id: 73, cat: Movies/HD, desc: "Movies/Boxsets HD"}
|
||||
- {id: 74, cat: Movies/SD, desc: "Movies/Boxsets SD"}
|
||||
- {id: 25, cat: Movies/DVD, desc: "Movies/DVD-R"}
|
||||
- {id: 51, cat: Movies/HD, desc: "Movies/HD"}
|
||||
- {id: 26, cat: Movies, desc: "Movies/Retro"}
|
||||
- {id: 29, cat: Movies/SD, desc: "Movies/SD"}
|
||||
- {id: 52, cat: Movies/SD, desc: "Movies/WMV"}
|
||||
- {id: 85, cat: Movies/HD, desc: "Movies/X265"}
|
||||
- {id: 66, cat: Audio/Lossless, desc: "Music/Flac"}
|
||||
- {id: 35, cat: Audio/MP3, desc: "Music/MP3"}
|
||||
- {id: 31, cat: Audio/Video, desc: "Music/Videos"}
|
||||
- {id: 72, cat: Movies, desc: "Sci-Fi"}
|
||||
- {id: 83, cat: Movies, desc: "Tribute Packs"}
|
||||
- {id: 30, cat: TV, desc: "TV"}
|
||||
- {id: 50, cat: TV/HD, desc: "TV-HD/X264"}
|
||||
- {id: 71, cat: TV/SD, desc: "TV-SD/X264"}
|
||||
- {id: 75, cat: TV/HD, desc: "TV/Boxsets HD"}
|
||||
- {id: 76, cat: TV/SD, desc: "TV/Boxsets SD"}
|
||||
- {id: 37, cat: XXX, desc: "XXX"}
|
||||
- {id: 68, cat: XXX, desc: "XXX/0-Day"}
|
||||
- {id: 78, cat: XXX, desc: "XXX/3D"}
|
||||
- {id: 67, cat: XXX/ImageSet, desc: "XXX/Imagesets"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
music-search: [q]
|
||||
book-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: sort
|
||||
type: select
|
||||
label: Sort requested from site
|
||||
default: dateAdded
|
||||
options:
|
||||
dateAdded: created
|
||||
seeders: seeders
|
||||
size: size
|
||||
name: title
|
||||
- name: type
|
||||
type: select
|
||||
label: Order requested from site
|
||||
default: desc
|
||||
options:
|
||||
desc: desc
|
||||
asc: asc
|
||||
- name: info_activity
|
||||
type: info
|
||||
label: Account Inactivity
|
||||
default: "Accounts with nothing uploaded/ downloaded will be disabled after 4 weeks."
|
||||
|
||||
login:
|
||||
path: Main/?act=Login
|
||||
method: form
|
||||
form: form#login
|
||||
captcha:
|
||||
type: image
|
||||
selector: img[alt="Security code"]
|
||||
input: code
|
||||
inputs:
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
error:
|
||||
- selector: div.errorWrap
|
||||
test:
|
||||
path: index.php
|
||||
selector: a[href$="logout.php"]
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: browse.php
|
||||
inputs:
|
||||
$raw: "{{ range .Categories }}cat[]={{.}}&{{end}}"
|
||||
search: "{{ .Keywords }}"
|
||||
# alive, aliveanddead, nobot, dead, free, nuked
|
||||
status: "{{ if .Config.freeleech }}free{{ else }}aliveanddead{{ end }}"
|
||||
# title, desc, both
|
||||
search_type: title
|
||||
sort: "{{ .Config.sort }}"
|
||||
order: "{{ .Config.type }}"
|
||||
|
||||
rows:
|
||||
selector: table#browse_torrents_table > tbody > tr[id^="torrent_row_"]
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: a[href^="browse.php?cat[]="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: cat[]
|
||||
title:
|
||||
selector: a.torrent_name
|
||||
attribute: title
|
||||
details:
|
||||
selector: a.torrent_name
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href^="download.php?"]
|
||||
attribute: href
|
||||
description:
|
||||
selector: span.torrent_small_desc
|
||||
genre:
|
||||
selector: span.torrent_small_desc
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "\\[.+?\\] \\[(.+?)\\]"
|
||||
- name: replace
|
||||
args: [" ", "_"]
|
||||
files:
|
||||
selector: td.torrent_table_files
|
||||
date:
|
||||
selector: td.torrent_table_dateAdded
|
||||
filters:
|
||||
- name: append
|
||||
args: " +01:00" # CET
|
||||
- name: dateparse
|
||||
args: "yyyy-MM-dd HH:mm:ss zzz"
|
||||
size:
|
||||
selector: td.torrent_table_size
|
||||
grabs:
|
||||
selector: td.torrent_table_snatched
|
||||
filters:
|
||||
- name: regexp
|
||||
args: (\d+)
|
||||
seeders:
|
||||
selector: td.torrent_table_seeders
|
||||
leechers:
|
||||
selector: td.torrent_table_leechers
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
":root div#notice_ratioBoostingMadness": 0
|
||||
img[src$="images/freedownload.gif"]: 0
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
minimumratio:
|
||||
text: 1.0
|
||||
minimumseedtime:
|
||||
# 5 day (as seconds = 5 x 24 x 60 x 60)
|
||||
text: 432000 # 3 days for torrents under 20GB
|
||||
# engine n/a
|
90
config/prowlarr/Definitions/acrossthetasman.yml
Normal file
90
config/prowlarr/Definitions/acrossthetasman.yml
Normal file
|
@ -0,0 +1,90 @@
|
|||
---
|
||||
id: acrossthetasman
|
||||
name: Across The Tasman
|
||||
description: "ATT is a torrent site for Rugby and other sports played in Australia"
|
||||
language: en-AU
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://acrossthetasman.com/
|
||||
|
||||
caps:
|
||||
categories:
|
||||
1: TV/Sport
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
|
||||
settings:
|
||||
- name: username
|
||||
type: text
|
||||
label: Username
|
||||
- name: password
|
||||
type: password
|
||||
label: Password
|
||||
- name: sort
|
||||
type: select
|
||||
label: Sort requested from site
|
||||
default: date
|
||||
options:
|
||||
date: created
|
||||
filename: title
|
||||
size: size
|
||||
seeders: seeders
|
||||
- name: order
|
||||
type: select
|
||||
label: Order requested from site
|
||||
default: desc
|
||||
options:
|
||||
desc: desc
|
||||
asc: asc
|
||||
|
||||
login:
|
||||
method: post
|
||||
path: login.php
|
||||
inputs:
|
||||
vb_login_username: "{{ .Config.username }}"
|
||||
vb_login_password: "{{ .Config.password }}"
|
||||
cookieuser: 1
|
||||
do: login
|
||||
test:
|
||||
path: torrents.php
|
||||
selector: a[href*="logout.php"]
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: torrents.php
|
||||
inputs:
|
||||
sort: "{{ .Config.sort }}"
|
||||
order: "{{ .Config.order }}"
|
||||
query: "{{ .Keywords }}"
|
||||
|
||||
rows:
|
||||
selector: table[width='100%'][align='center']:not([class]) > tbody > tr
|
||||
|
||||
fields:
|
||||
category:
|
||||
text: 1
|
||||
date:
|
||||
# Feb 12, 2021
|
||||
selector: td:nth-child(1)
|
||||
filters:
|
||||
- name: dateparse
|
||||
args: "MMM dd, yyyy"
|
||||
title:
|
||||
selector: td:nth-child(4) > span:nth-child(1)
|
||||
filters:
|
||||
- name: re_replace
|
||||
args: ["[\\s]+Uploaded.*", ""]
|
||||
download:
|
||||
selector: a[href*="attachment.php?attachmentid="]
|
||||
attribute: href
|
||||
seeders:
|
||||
selector: td:nth-child(5)
|
||||
leechers:
|
||||
selector: td:nth-child(6)
|
||||
grabs:
|
||||
selector: td:nth-child(7)
|
||||
size:
|
||||
selector: td:nth-child(10)
|
||||
# engine n/a
|
186
config/prowlarr/Definitions/aftershock.yml
Normal file
186
config/prowlarr/Definitions/aftershock.yml
Normal file
|
@ -0,0 +1,186 @@
|
|||
---
|
||||
id: aftershock
|
||||
name: Aftershock
|
||||
description: "Aftershock is a HUNGARIAN Private Torrent Tracker for MOVIES / GENERAL"
|
||||
language: hu-HU
|
||||
type: private
|
||||
encoding: iso-8859-1
|
||||
links:
|
||||
- https://aftershock-tracker.net/
|
||||
legacylinks:
|
||||
- https://aftershock-tracker.eu/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 7, cat: Movies/SD, desc: "XvidEng"}
|
||||
- {id: 2, cat: Movies, desc: "AfterShock Release"}
|
||||
- {id: 190, cat: Movies/DVD, desc: "DVD-9Eng"}
|
||||
- {id: 191, cat: Movies/DVD, desc: "DVD-9Hun"}
|
||||
- {id: 1, cat: Movies/DVD, desc: "DVDEng"}
|
||||
- {id: 4, cat: Movies/DVD, desc: "DVDHun"}
|
||||
- {id: 23, cat: Books/EBook, desc: "E-Book"}
|
||||
- {id: 3, cat: Movies, desc: "Film Pack"}
|
||||
- {id: 185, cat: Audio/Lossless, desc: "FLACeng"}
|
||||
- {id: 188, cat: Audio/Lossless, desc: "FLAChu"}
|
||||
- {id: 173, cat: Audio/Audiobook, desc: "Hangoskönyv"}
|
||||
- {id: 34, cat: Movies/HD, desc: "HDEng"}
|
||||
- {id: 33, cat: Movies/HD, desc: "HDHun"}
|
||||
- {id: 182, cat: XXX/x264, desc: "HDXXX"}
|
||||
- {id: 12, cat: PC/Games, desc: "JátékIso"}
|
||||
- {id: 130, cat: Console, desc: "JátékKonzol"}
|
||||
- {id: 38, cat: Console/PSP, desc: "JátékPS2"}
|
||||
- {id: 44, cat: Console, desc: "Jatekrip"}
|
||||
- {id: 131, cat: Console/XBox, desc: "JátékX-box"}
|
||||
- {id: 140, cat: Other, desc: "Képek"}
|
||||
- {id: 141, cat: Other, desc: "Klipek"}
|
||||
- {id: 154, cat: Other, desc: "MeseEng"}
|
||||
- {id: 155, cat: Other, desc: "MeseHun"}
|
||||
- {id: 176, cat: Other, desc: "Mikro HDEng"}
|
||||
- {id: 174, cat: Other, desc: "Mikro HDHun"}
|
||||
- {id: 37, cat: PC/Mobile-Other, desc: "MobilPDA"}
|
||||
- {id: 35, cat: PC, desc: "ProgramEgyéb"}
|
||||
- {id: 170, cat: PC/ISO, desc: "ProgramIso"}
|
||||
- {id: 24, cat: TV, desc: "Sorozat Eng"}
|
||||
- {id: 25, cat: TV, desc: "Sorozat Hun"}
|
||||
- {id: 167, cat: Movies/SD, desc: "Xvid CamEng"}
|
||||
- {id: 166, cat: Movies/SD, desc: "Xvid CamHun"}
|
||||
- {id: 9, cat: Movies/SD, desc: "XvidHun"}
|
||||
- {id: 169, cat: XXX/ImageSet, desc: "XXX Képek"}
|
||||
- {id: 39, cat: XXX, desc: "XXXFilm"}
|
||||
- {id: 28, cat: Audio, desc: "ZeneEng"}
|
||||
- {id: 29, cat: Audio, desc: "ZeneHun"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
music-search: [q]
|
||||
book-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: sort
|
||||
type: select
|
||||
label: Sort requested from site
|
||||
default: 0
|
||||
options:
|
||||
0: created
|
||||
6: seeders
|
||||
4: size
|
||||
1: title
|
||||
- name: type
|
||||
type: select
|
||||
label: Order requested from site
|
||||
default: desc
|
||||
options:
|
||||
desc: desc
|
||||
asc: asc
|
||||
- name: info_activity
|
||||
type: info
|
||||
label: Account Inactivity
|
||||
default: "You will be immediately banned if you have not logged in for more than 6 weeks."
|
||||
|
||||
login:
|
||||
path: takelogin.php
|
||||
method: post
|
||||
inputs:
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
error:
|
||||
- selector: td.text:contains("Hiba")
|
||||
message:
|
||||
selector: td.text
|
||||
test:
|
||||
path: /
|
||||
selector: a[href="/logout.php"]
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: browse.php
|
||||
inputs:
|
||||
$raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
|
||||
search: "{{ .Keywords }}"
|
||||
# 0 active, 1 incldead, 2 onlydead, 3 freeleech, 4 2x, 5 server
|
||||
incldead: "{{ if .Config.freeleech }}3{{ else }}1{{ end }}"
|
||||
sort: "{{ .Config.sort }}"
|
||||
type: "{{ .Config.type }}"
|
||||
|
||||
rows:
|
||||
selector: table tbody#torrent_background tr:has(a.index)
|
||||
filters:
|
||||
- name: andmatch
|
||||
|
||||
fields:
|
||||
title:
|
||||
selector: a.index
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: name
|
||||
- name: urldecode
|
||||
category:
|
||||
selector: td a[href^="/browse.php?cat="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: cat
|
||||
details:
|
||||
selector: a.index
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href^="download.php?id="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: urldecode
|
||||
poster:
|
||||
selector: a[onmouseover]
|
||||
attribute: onmouseover
|
||||
filters:
|
||||
- name: regexp
|
||||
args: src=([^\s]+)
|
||||
imdbid:
|
||||
selector: a[href*="imdb.com/title/tt"]
|
||||
attribute: href
|
||||
genre:
|
||||
selector: span.box
|
||||
description:
|
||||
text: "{{ .Result.genre }}"
|
||||
files:
|
||||
selector: td:nth-last-child(6)
|
||||
size:
|
||||
selector: td:nth-last-child(5)
|
||||
seeders:
|
||||
selector: td:nth-last-child(4)
|
||||
leechers:
|
||||
selector: td:nth-last-child(3)
|
||||
grabs:
|
||||
selector: td:nth-last-child(2)
|
||||
date:
|
||||
selector: td font
|
||||
filters:
|
||||
- name: re_replace
|
||||
args: ["\\s", " "]
|
||||
- name: append
|
||||
args: " +01:00" # CET
|
||||
- name: dateparse
|
||||
args: "yyyy-MM-dd HH:mm:ss zzz"
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
span.icon_gift: 0
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
case:
|
||||
span.icon_upload: 2
|
||||
"*": 1
|
||||
minimumratio:
|
||||
text: 0.31
|
||||
# XBT v3
|
209
config/prowlarr/Definitions/agsvpt.yml
Normal file
209
config/prowlarr/Definitions/agsvpt.yml
Normal file
|
@ -0,0 +1,209 @@
|
|||
---
|
||||
id: agsvpt
|
||||
name: AGSVPT
|
||||
description: "AGSVPT (Arctic Global Seed Vault) is a CHINESE Private Torrent Tracker for MOVIES / TV / GENERAL"
|
||||
language: zh-CN
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
requestDelay: 2
|
||||
links:
|
||||
- https://www.agsvpt.com/
|
||||
- https://abroad.agsvpt.com/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 401, cat: Movies, desc: "Movie(电影)", default: true}
|
||||
- {id: 402, cat: TV, desc: "TV Series(电视剧)", default: true}
|
||||
- {id: 403, cat: TV, desc: "TV Shows(综艺)", default: true}
|
||||
- {id: 405, cat: TV/Anime, desc: "Anime(动漫)", default: true}
|
||||
- {id: 404, cat: TV/Documentary, desc: "Documentaries(纪录片)", default: true}
|
||||
- {id: 419, cat: TV, desc: "Playlet(短剧)", default: true}
|
||||
- {id: 411, cat: Audio, desc: "Music(音乐))", default: true}
|
||||
- {id: 406, cat: Audio/Video, desc: "MV(演唱", default: true}
|
||||
- {id: 407, cat: TV/Sport, desc: "Sports(体育)", default: true}
|
||||
- {id: 408, cat: Audio/Audiobook, desc: "Audio(音频)", default: true}
|
||||
# special
|
||||
- {id: 413, cat: PC/Games, desc: "Game(游戏)", default: false}
|
||||
- {id: 416, cat: Books/Comics, desc: "Comic(漫画)", default: false}
|
||||
- {id: 412, cat: PC/0day, desc: "Software(软件)", default: false}
|
||||
- {id: 418, cat: Other, desc: "Picture(图片)", default: false}
|
||||
- {id: 415, cat: Books/EBook, desc: "E-Book(电子书/有声书)", default: false}
|
||||
- {id: 417, cat: Other, desc: "Education(学习资料)", default: false}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep, imdbid, doubanid]
|
||||
movie-search: [q, imdbid, doubanid]
|
||||
music-search: [q]
|
||||
book-search: [q]
|
||||
|
||||
settings:
|
||||
- name: username
|
||||
type: text
|
||||
label: Username
|
||||
- name: password
|
||||
type: password
|
||||
label: Password
|
||||
- name: 2facode
|
||||
type: text
|
||||
label: 2FA code
|
||||
- name: info_2fa
|
||||
type: info
|
||||
label: "About 2FA code"
|
||||
default: "Only fill in the <b>2FA code</b> box if you have enabled <b>2FA</b> on the AGSVPT Web Site. Otherwise just leave it empty."
|
||||
- name: freeleech
|
||||
type: checkbox
|
||||
label: Search freeleech only
|
||||
default: false
|
||||
- name: sort
|
||||
type: select
|
||||
label: Sort requested from site
|
||||
default: 4
|
||||
options:
|
||||
4: created
|
||||
7: seeders
|
||||
5: size
|
||||
1: title
|
||||
- name: type
|
||||
type: select
|
||||
label: Order requested from site
|
||||
default: desc
|
||||
options:
|
||||
desc: desc
|
||||
asc: asc
|
||||
- name: info_tpp
|
||||
type: info
|
||||
label: Results Per Page
|
||||
default: For best results, change the <b>每页种子数:每页显示</b><i>(Torrents per page:)</i> setting to <b>100</b> on your account profile.
|
||||
- name: info_activity
|
||||
type: info
|
||||
label: Account Inactivity
|
||||
default: "Account retention rules:<ol><li>Elite User and above will not have their account deleted after parking (in the Control Panel)</li><li>Users who do not log in for 400 consecutive days will be disabled.</li><li>Users with a parked account will be disabled if they do not log in for 150 consecutive days</li><li>Users who have no traffic (i.e., uploading/downloading data is 0) within 7 days of new registration will be disabled</li><li>Users with no traffic (i.e. both upload/download data is 0) who do not log in for 30 consecutive days will be disabled.</li></ol>"
|
||||
|
||||
login:
|
||||
path: takelogin.php
|
||||
method: post
|
||||
inputs:
|
||||
secret: ""
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
two_step_code: "{{ .Config.2facode }}"
|
||||
logout: ""
|
||||
securelogin: ""
|
||||
ssl: yes
|
||||
trackerssl: yes
|
||||
error:
|
||||
- selector: td.embedded:has(h2:contains("失败"))
|
||||
message:
|
||||
selector: td.text
|
||||
test:
|
||||
path: index.php
|
||||
selector: a[href="logout.php"]
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: torrents.php
|
||||
categories: [401, 402, 403, 405, 404, 419, 411, 406, 407, 408]
|
||||
- path: special.php
|
||||
categories: [413, 416, 412, 418, 415, 417]
|
||||
inputs:
|
||||
$raw: "{{ range .Categories }}cat{{.}}=1&{{end}}"
|
||||
search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ end }}{{ if or .Query.IMDBID .Query.DoubanID }} {{ else }}{{ .Keywords }}{{ end }}{{ if .Query.DoubanID }}{{ .Query.DoubanID }}{{ else }}{{ end }}"
|
||||
# 0 incldead, 1 active, 2 dead
|
||||
incldead: 0
|
||||
# 0 all, 1 normal, 2 free, 3 2x, 4 2xfree, 5 50%, 6 2x50%, 7 30%
|
||||
spstate: "{{ if .Config.freeleech }}2{{ else }}0{{ end }}"
|
||||
# 0 title, 1 descr, 3 uploader, 4 imdburl
|
||||
search_area: "{{ if .Query.IMDBID }}4{{ else }}{{ end }}{{ if .Query.DoubanID }}1{{ else }}{{ end }}{{ if or .Query.IMDBID .Query.DoubanID }}{{ else }}0{{ end }}"
|
||||
# 0 AND, 2 exact
|
||||
search_mode: 0
|
||||
sort: "{{ .Config.sort }}"
|
||||
type: "{{ .Config.type }}"
|
||||
notnewword: 1
|
||||
|
||||
rows:
|
||||
selector: table.torrents > tbody > tr:has(table.torrentname)
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: a[href^="?cat="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: cat
|
||||
title_default:
|
||||
selector: a[href^="details.php?id="]
|
||||
title:
|
||||
selector: a[title][href^="details.php?id="]
|
||||
attribute: title
|
||||
optional: true
|
||||
default: "{{ .Result.title_default }}"
|
||||
details:
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href^="download.php?id="]
|
||||
attribute: href
|
||||
poster:
|
||||
selector: img[data-src]
|
||||
attribute: data-src
|
||||
date_elapsed:
|
||||
# time type: time elapsed (default)
|
||||
selector: td.rowfollow:nth-child(4) > span[title]
|
||||
attribute: title
|
||||
optional: true
|
||||
filters:
|
||||
- name: append
|
||||
args: " +08:00" # CST
|
||||
- name: dateparse
|
||||
args: "yyyy-MM-dd HH:mm:ss zzz"
|
||||
date_added:
|
||||
# time added
|
||||
selector: td.rowfollow:nth-child(4):not(:has(span))
|
||||
optional: true
|
||||
filters:
|
||||
- name: append
|
||||
args: " +08:00" # CST
|
||||
- name: dateparse
|
||||
args: "yyyy-MM-ddHH:mm:ss zzz"
|
||||
date:
|
||||
text: "{{ if or .Result.date_elapsed .Result.date_added }}{{ or .Result.date_elapsed .Result.date_added }}{{ else }}now{{ end }}"
|
||||
size:
|
||||
selector: td.rowfollow:nth-child(5)
|
||||
seeders:
|
||||
selector: td.rowfollow:nth-child(6)
|
||||
leechers:
|
||||
selector: td.rowfollow:nth-child(7)
|
||||
grabs:
|
||||
selector: td.rowfollow:nth-child(8)
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
img.pro_free: 0
|
||||
img.pro_free2up: 0
|
||||
img.pro_50pctdown: 0.5
|
||||
img.pro_50pctdown2up: 0.5
|
||||
img.pro_30pctdown: 0.3
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
case:
|
||||
img.pro_50pctdown2up: 2
|
||||
img.pro_free2up: 2
|
||||
img.pro_2up: 2
|
||||
"*": 1
|
||||
minimumratio:
|
||||
text: 1.0
|
||||
minimumseedtime:
|
||||
# 3 days (as seconds = 3 x 24 x 60 x 60)
|
||||
text: 259200
|
||||
description_verified:
|
||||
case:
|
||||
span[title="通过"]: "Verified:"
|
||||
span[title="未审"]: "Unverified:"
|
||||
span[title="拒绝"]: "Banned:"
|
||||
description:
|
||||
selector: td.rowfollow:nth-child(2)
|
||||
remove: a, b, font, img, span
|
||||
filters:
|
||||
- name: prepend
|
||||
args: "{{ .Result.description_verified }} "
|
||||
# NexusPHP v1.8.8 2023-09-25
|
133
config/prowlarr/Definitions/aidoruonline.yml
Normal file
133
config/prowlarr/Definitions/aidoruonline.yml
Normal file
|
@ -0,0 +1,133 @@
|
|||
---
|
||||
id: aidoruonline
|
||||
name: Aidoru!Online
|
||||
description: "Aidoru!Online is a Private Torrent Tracker for Female Japanese Idol related files"
|
||||
language: en-US
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://aidoru-online.me/
|
||||
legacylinks:
|
||||
- https://aidoru-online.org/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 1, cat: Movies, desc: "BD/DVDISO"}
|
||||
- {id: 2, cat: Movies, desc: "BD/DVD-RIP"}
|
||||
- {id: 3, cat: TV, desc: "TV"}
|
||||
- {id: 4, cat: TV, desc: "Perf"}
|
||||
- {id: 5, cat: TV, desc: "PV"}
|
||||
- {id: 6, cat: TV, desc: "Webstream"}
|
||||
- {id: 7, cat: Other, desc: "Image"}
|
||||
- {id: 8, cat: Audio, desc: "Audio"}
|
||||
- {id: 9, cat: Audio, desc: "Album"}
|
||||
- {id: 10, cat: Audio, desc: "Single"}
|
||||
- {id: 11, cat: Audio, desc: "Radio"}
|
||||
- {id: 12, cat: Other, desc: "Misc"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
music-search: [q]
|
||||
|
||||
settings:
|
||||
- name: cookie
|
||||
type: text
|
||||
label: Cookie
|
||||
- name: info
|
||||
type: info
|
||||
label: How to get the Cookie
|
||||
default: "<ol><li>Login to this tracker with your browser</li><li>Open the <b>DevTools</b> panel by pressing <b>F12</b></li><li>Select the <b>Network</b> tab</li><li>Click on the <b>Doc</b> button (Chrome Browser) or <b>HTML</b> button (FireFox)</li><li>Refresh the page by pressing <b>F5</b></li><li>Click on the first row entry</li><li>Select the <b>Headers</b> tab on the Right panel</li><li>Find <b>'cookie:'</b> in the <b>Request Headers</b> section</li><li><b>Select</b> and <b>Copy</b> the whole cookie string <i>(everything after 'cookie: ')</i> and <b>Paste</b> here.</li></ol>"
|
||||
- name: freeleech
|
||||
type: checkbox
|
||||
label: Search freeleech only
|
||||
default: false
|
||||
- name: sort
|
||||
type: select
|
||||
label: Sort requested from site
|
||||
default: id
|
||||
options:
|
||||
id: created
|
||||
seeders: seeders
|
||||
size: size
|
||||
name: title
|
||||
- name: type
|
||||
type: select
|
||||
label: Order requested from site
|
||||
default: desc
|
||||
options:
|
||||
desc: desc
|
||||
asc: asc
|
||||
|
||||
login:
|
||||
method: cookie
|
||||
inputs:
|
||||
cookie: "{{ .Config.cookie }}"
|
||||
test:
|
||||
path: /
|
||||
selector: a[href^="torrents-details.php?id="]
|
||||
|
||||
search:
|
||||
paths:
|
||||
# https://aidoru-online.me/get_ttable.php?pcat=Show+All&scat=3%2C4%2C5%2C6&subbed=&fl=&resd=&p=0&searchstr=peace&deadlive=0&sortcol=id&sortorder=desc&startdt=&enddt=
|
||||
- path: get_ttable.php
|
||||
inputs:
|
||||
pcat: "Show+All"
|
||||
scat: "{{ join .Categories \",\" }}"
|
||||
subbed: ""
|
||||
fl: "{{ if .Config.freeleech }}1{{ else }}{{ end }}"
|
||||
resd: ""
|
||||
p: 0
|
||||
searchstr: "{{ .Keywords }}"
|
||||
deadlive: 1
|
||||
sortcol: "{{ .Config.sort }}"
|
||||
sortorder: "{{ .Config.type }}"
|
||||
startdt: ""
|
||||
enddt: ""
|
||||
# does not support imdbid search and does not return imdb link in results
|
||||
|
||||
rows:
|
||||
selector: table.ttable_headinner tr.t-row:has(a[href^="download.php?id="])
|
||||
|
||||
fields:
|
||||
categorydesc:
|
||||
selector: a.category-link
|
||||
filters:
|
||||
- name: split
|
||||
args: [" ", 1]
|
||||
title:
|
||||
selector: a[href^="torrents-details.php?id="]
|
||||
attribute: title
|
||||
details:
|
||||
selector: a[href^="torrents-details.php?id="]
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href^="download.php?id="]
|
||||
attribute: href
|
||||
size:
|
||||
selector: td.ttable_size
|
||||
seeders:
|
||||
selector: td:nth-last-child(4)
|
||||
leechers:
|
||||
selector: td:nth-last-child(3)
|
||||
grabs:
|
||||
selector: td:nth-last-child(2)
|
||||
date:
|
||||
selector: td:last-child
|
||||
# auto adjusted by site account profile
|
||||
filters:
|
||||
- name: dateparse
|
||||
args: "yyMMdd HH:mm:ss"
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
img[src="images/freeleech.png"]: 0 # dl not counted
|
||||
img[src="images/freeleech2.png"]: 0 # dl not counted & upload 2x
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
case:
|
||||
img[src="images/freeleech2.png"]: 2
|
||||
"*": 1
|
||||
minimumratio:
|
||||
text: 0.8
|
||||
# TorrentTrader v2-svn
|
182
config/prowlarr/Definitions/aither-api.yml
Normal file
182
config/prowlarr/Definitions/aither-api.yml
Normal file
|
@ -0,0 +1,182 @@
|
|||
---
|
||||
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"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep, imdbid, tvdbid, tmdbid]
|
||||
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 Settings</i> page and clicking on the <b>API Key</b> tab."
|
||||
- name: freeleech
|
||||
type: checkbox
|
||||
label: Search freeleech only
|
||||
default: false
|
||||
- name: single_file_release_use_filename
|
||||
type: checkbox
|
||||
label: Use filename as title for single file releases
|
||||
default: true
|
||||
- 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
|
||||
- name: info_activity
|
||||
type: info
|
||||
label: Account Inactivity
|
||||
default: "You must log in to the Aither web site with your browser once every 120 days to prevent your account from getting disabled."
|
||||
|
||||
login:
|
||||
path: /api/torrents
|
||||
method: get
|
||||
inputs: {} # TODO: remove in v10
|
||||
error:
|
||||
- selector: a[href*="/login"]
|
||||
message:
|
||||
text: "The API key was not accepted by {{ .Config.sitelink }}."
|
||||
|
||||
search:
|
||||
paths:
|
||||
# https://github.com/HDInnovations/UNIT3D-Community-Edition/wiki/Torrent-API-(UNIT3D-v8.x.x)
|
||||
# https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php#L476
|
||||
- path: "/api/torrents/filter"
|
||||
response:
|
||||
type: json
|
||||
|
||||
headers:
|
||||
Authorization: ["Bearer {{ .Config.apikey }}"]
|
||||
|
||||
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
|
||||
$raw: "{{ range .Categories }}&categories[]={{.}}{{end}}"
|
||||
name: "{{ .Keywords }}"
|
||||
seasonNumber: "{{ .Query.Season }}"
|
||||
episodeNumber: "{{ .Query.Ep }}"
|
||||
imdbId: "{{ .Query.IMDBIDShort }}"
|
||||
tmdbId: "{{ .Query.TMDBID }}"
|
||||
tvdbId: "{{ .Query.TVDBID }}"
|
||||
"free[]": "{{ if .Config.freeleech }}100{{ else }}{{ end }}"
|
||||
sortField: "{{ .Config.sort }}"
|
||||
sortDirection: "{{ .Config.type }}"
|
||||
perPage: 100
|
||||
|
||||
keywordsfilters:
|
||||
- name: re_replace
|
||||
args: ["\\.", " "]
|
||||
|
||||
rows:
|
||||
selector: data
|
||||
attribute: attributes
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: category_id
|
||||
title_optional:
|
||||
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
|
||||
genre:
|
||||
selector: meta.genres
|
||||
filters:
|
||||
- name: re_replace
|
||||
args: ["(?i)(Science Fiction)", "Science_Fiction"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(TV Movie)", "TV_Movie"]
|
||||
- name: replace
|
||||
args: [" & ", "_&_"]
|
||||
description:
|
||||
text: "{{ .Result.genre }}"
|
||||
files:
|
||||
selector: num_file
|
||||
seeders:
|
||||
selector: seeders
|
||||
leechers:
|
||||
selector: leechers
|
||||
grabs:
|
||||
selector: times_completed
|
||||
date:
|
||||
# "created_at": "2021-10-18T00:34:50.000000Z" is returned by Newtonsoft.Json.Linq as 18/10/2021 00:34:50
|
||||
selector: created_at
|
||||
filters:
|
||||
- name: append
|
||||
args: " +00:00" # GMT
|
||||
- name: dateparse
|
||||
args: "MM/dd/yyyy HH:mm:ss zzz"
|
||||
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 False, True
|
||||
selector: double_upload
|
||||
case:
|
||||
False: 1 # normal
|
||||
True: 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 = 5 x 24 x 60 x 60)
|
||||
text: 432000
|
||||
title_filename:
|
||||
selector: "files[0].name"
|
||||
optional: true
|
||||
title:
|
||||
text: "{{ if and (.Config.single_file_release_use_filename) (eq .Result.files \"1\") (.Result.title_filename) }}{{ .Result.title_filename }}{{ else }}{{ .Result.title_optional }}{{ end }}"
|
||||
# json UNIT3D 8.0.2
|
335
config/prowlarr/Definitions/amigosshare.yml
Normal file
335
config/prowlarr/Definitions/amigosshare.yml
Normal file
|
@ -0,0 +1,335 @@
|
|||
---
|
||||
id: amigosshare
|
||||
name: Amigos Share Club
|
||||
description: "Amigos Share Club is a Brazilian Private site for TV / MOVIES / GENERAL"
|
||||
language: pt-BR
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
requestDelay: 2
|
||||
links:
|
||||
- https://cliente.amigos-share.club/
|
||||
legacylinks:
|
||||
- http://amigos-share.club/
|
||||
- https://amigos-share.club/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 107, cat: XXX, desc: "Adultos: Gay"}
|
||||
- {id: 75, cat: XXX, desc: "Adultos: Hentai"}
|
||||
- {id: 108, cat: XXX, desc: "Adultos: Transex/Female"}
|
||||
- {id: 74, cat: XXX, desc: "Adultos: XXX"}
|
||||
- {id: 69, cat: TV/Anime, desc: "Anime: Anime"}
|
||||
- {id: 116, cat: TV/Anime, desc: "Anime: Filmes"}
|
||||
- {id: 118, cat: TV/Anime, desc: "Anime: Séries"}
|
||||
- {id: 23, cat: PC/Mobile-Android, desc: "Aplicativos: Android"}
|
||||
- {id: 27, cat: PC/Mobile-iOS, desc: "Aplicativos: iPad"}
|
||||
- {id: 26, cat: PC/Mobile-iOS, desc: "Aplicativos: iPhone"}
|
||||
- {id: 28, cat: PC/Mobile-iOS, desc: "Aplicativos: iPod"}
|
||||
- {id: 25, cat: PC, desc: "Aplicativos: Linux"}
|
||||
- {id: 22, cat: PC/Mac, desc: "Aplicativos: Mac"}
|
||||
- {id: 21, cat: PC/0day, desc: "Aplicativos: Windows"}
|
||||
- {id: 72, cat: Books, desc: "Apostila: Apostila"}
|
||||
- {id: 71, cat: Books, desc: "Apostila: Cursos"}
|
||||
- {id: 121, cat: Audio/Audiobook, desc: "Ebook: Audio-book"}
|
||||
- {id: 112, cat: Books, desc: "Ebook: HQs"}
|
||||
- {id: 67, cat: Books, desc: "Ebook: Livros"}
|
||||
- {id: 68, cat: Books, desc: "Ebook: Revistas"}
|
||||
- {id: 119, cat: Movies, desc: "Filmes:"}
|
||||
- {id: 70, cat: XXX, desc: "Fotos: XXX"}
|
||||
- {id: 57, cat: Console, desc: "Jogos: Android"}
|
||||
- {id: 52, cat: Console, desc: "Jogos: Dreamcast"}
|
||||
- {id: 109, cat: Console, desc: "Jogos: Emulação"}
|
||||
- {id: 61, cat: Console, desc: "Jogos: Emuladores e Roms"}
|
||||
- {id: 48, cat: PC/Mac, desc: "Jogos: Mac"}
|
||||
- {id: 58, cat: Console/NDS, desc: "Jogos: Nintendo DS"}
|
||||
- {id: 110, cat: Console, desc: "Jogos: Nintendo Switch"}
|
||||
- {id: 47, cat: PC/Games, desc: "Jogos: Pc"}
|
||||
- {id: 49, cat: Console, desc: "Jogos: Ps1"}
|
||||
- {id: 50, cat: Console, desc: "Jogos: Ps2"}
|
||||
- {id: 51, cat: Console/PS3, desc: "Jogos: Ps3"}
|
||||
- {id: 79, cat: Console/PS4, desc: "Jogos: Ps4"}
|
||||
- {id: 82, cat: Console/PSP, desc: "Jogos: PSP"}
|
||||
- {id: 55, cat: Console/Wii, desc: "Jogos: Wii"}
|
||||
- {id: 54, cat: Console/XBox 360, desc: "Jogos: Xbox360"}
|
||||
- {id: 56, cat: Console/XBox, desc: "Jogos: Xbox"}
|
||||
- {id: 78, cat: Console/XBox One, desc: "Jogos: Xbox One"}
|
||||
- {id: 29, cat: Audio, desc: "Musica: Axé"}
|
||||
- {id: 38, cat: Audio, desc: "Musica: Blues"}
|
||||
- {id: 39, cat: Audio, desc: "Musica: Dance"}
|
||||
- {id: 40, cat: Audio, desc: "Musica: Discografia"}
|
||||
- {id: 43, cat: Audio, desc: "Musica: Dubstep"}
|
||||
- {id: 30, cat: Audio, desc: "Musica: Eletronica"}
|
||||
- {id: 41, cat: Audio, desc: "Musica: Erudita"}
|
||||
- {id: 42, cat: Audio, desc: "Musica: Forró"}
|
||||
- {id: 31, cat: Audio, desc: "Musica: Funk"}
|
||||
- {id: 84, cat: Audio, desc: "Musica: Game (OST)"}
|
||||
- {id: 83, cat: Audio, desc: "Musica: Gospel"}
|
||||
- {id: 37, cat: Audio, desc: "Musica: Hard Rock"}
|
||||
- {id: 33, cat: Audio, desc: "Musica: Hip-Hop"}
|
||||
- {id: 114, cat: Audio, desc: "Musica: MPB"}
|
||||
- {id: 77, cat: Audio, desc: "Musica: Outros"}
|
||||
- {id: 32, cat: Audio, desc: "Musica: Pagode"}
|
||||
- {id: 115, cat: Audio, desc: "Musica: POP"}
|
||||
- {id: 34, cat: Audio, desc: "Musica: Rap"}
|
||||
- {id: 76, cat: Audio, desc: "Musica: Reggae"}
|
||||
- {id: 36, cat: Audio, desc: "Musica: Rock"}
|
||||
- {id: 45, cat: Audio, desc: "Musica: Samba"}
|
||||
- {id: 46, cat: Audio, desc: "Musica: Sertanejo"}
|
||||
- {id: 120, cat: TV, desc: "Series:"}
|
||||
- {id: 65, cat: TV, desc: "Shows: Show"}
|
||||
- {id: 63, cat: TV, desc: "Tv: Aberta"}
|
||||
- {id: 62, cat: TV/Sport, desc: "Tv: Esportes"}
|
||||
- {id: 64, cat: TV, desc: "Tv: Fechada"}
|
||||
- {id: 73, cat: TV, desc: "Video Aula: Video Aula"}
|
||||
- {id: 127, cat: Other, desc: "Outros: Add-ons"}
|
||||
- {id: 126, cat: Other, desc: "Outros: Extensões"}
|
||||
- {id: 129, cat: Other, desc: "Outros: Fonts"}
|
||||
- {id: 130, cat: Other, desc: "Outros: MOD"}
|
||||
- {id: 125, cat: Other, desc: "Outros: Pack de Imagens"}
|
||||
- {id: 122, cat: Other, desc: "Outros: Plug-ins"}
|
||||
- {id: 128, cat: Other, desc: "Outros: Scripts"}
|
||||
- {id: 124, cat: Other, desc: "Outros: Vetores"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
music-search: [q]
|
||||
book-search: [q]
|
||||
|
||||
settings:
|
||||
- name: username
|
||||
type: text
|
||||
label: Username
|
||||
- name: password
|
||||
type: password
|
||||
label: Password
|
||||
- name: info_results
|
||||
type: info
|
||||
label: "Search results"
|
||||
default: "Set <b>Exibição De Torrents</b> to <b>Lista</b> in your <b>Minhas Configurações</b>.<br />Using <b>Capas</b> is not supported and will return 0 results."
|
||||
- name: freeleech
|
||||
type: checkbox
|
||||
label: Filter freeleech only
|
||||
default: false
|
||||
- name: sort
|
||||
type: select
|
||||
label: Sort requested from site
|
||||
default: id
|
||||
options:
|
||||
id: created
|
||||
seeders: seeders
|
||||
size: size
|
||||
name: title
|
||||
- name: type
|
||||
type: select
|
||||
label: Order requested from site
|
||||
default: desc
|
||||
options:
|
||||
desc: desc
|
||||
asc: asc
|
||||
- name: info_activity
|
||||
type: info
|
||||
label: Account Inactivity
|
||||
default: "Inactive accounts, that is, without access for 90 days (3 months), will be automatically deleted by the system; with no possibility of reactivation."
|
||||
|
||||
login:
|
||||
path: account-login.php
|
||||
method: post
|
||||
inputs:
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
remember: yes
|
||||
error:
|
||||
- selector: div.alert-error
|
||||
test:
|
||||
path: torrents-search.php
|
||||
selector: a[href="account-logout.php"]
|
||||
|
||||
search:
|
||||
paths:
|
||||
# http://amigos-share.club/torrents-search.php?search=&sort=id&order=desc&page=1
|
||||
- path: torrents-search.php
|
||||
# site displays just 20 results, no profile options found to change this, so we attempt to fetch 5 pages
|
||||
- path: torrents-search.php
|
||||
inputs:
|
||||
page: 1
|
||||
- path: torrents-search.php
|
||||
inputs:
|
||||
page: 2
|
||||
- path: torrents-search.php
|
||||
inputs:
|
||||
page: 3
|
||||
- path: torrents-search.php
|
||||
inputs:
|
||||
page: 4
|
||||
inputs:
|
||||
# note: site does not support multi cat search.
|
||||
# replace spaces with wildcard (percent symbol) as site's default search is exact string.
|
||||
search: "{{ re_replace .Keywords \"[\\s]+\" \"%\" }}"
|
||||
sort: "{{ .Config.sort }}"
|
||||
order: "{{ .Config.type }}"
|
||||
# torrents-search.php does not support imdbid search or return imdb links.
|
||||
keywordsfilters:
|
||||
# drop the year from searches since site titles do not include year
|
||||
- name: re_replace
|
||||
args: ["(19|20[0-9]{2})", ""]
|
||||
|
||||
rows:
|
||||
selector: "div#fancy-list-group ul.list-group li.list-group-item{{ if .Config.freeleech }}:has(span.badge-success:contains(\"FREE\")){{ else }}{{ end }}"
|
||||
|
||||
fields:
|
||||
_quality:
|
||||
selector: div.list-group-item-content p.m-0 span.badge-primary:contains("1080p"), div.list-group-item-content p.m-0 span.badge-primary:contains("720p"), div.list-group-item-content p.m-0 span.badge-primary:contains("4k")
|
||||
optional: true
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["4k", "2160p"]
|
||||
_year:
|
||||
selector: div.list-group-item-content p.m-0 span.badge-primary[style$="#246AB6;"]
|
||||
optional: true
|
||||
_type:
|
||||
selector: div.list-group-item-content p.m-0 span.badge-info:contains("Rip"), div.list-group-item-content p.m-0 span.badge-info:contains("WEB-"), div.list-group-item-content p.m-0 span.badge-info:contains("TV"), div.list-group-item-content p.m-0 span.badge-info:contains("Blu-Ray"), div.list-group-item-content p.m-0 span.badge-info:contains("BD50"), div.list-group-item-content p.m-0 span.badge-info:contains("MUX"), div.list-group-item-content p.m-0 span.badge-info:contains("DVD"), div.list-group-item-content p.m-0 span.badge-info:contains("320"), div.list-group-item-content p.m-0 span.badge-info:contains("CAM"), div.list-group-item-content p.m-0 span.badge-info:contains("rip")
|
||||
optional: true
|
||||
_language:
|
||||
selector: div.list-group-item-content p.m-0 span.badge-primary[style$="#b6249d;"]
|
||||
optional: true
|
||||
genre:
|
||||
selector: div.list-group-item-content p.m-0 span.badge-primary[style$="#1c38c2;"]
|
||||
description:
|
||||
text: "{{ .Result.genre }}"
|
||||
title:
|
||||
selector: a[href*="torrents-details.php?id="], a[href*="details-misc.php?id="]
|
||||
filters:
|
||||
# strip out the non-english title [to the left of the brackets] and drop the brackets enclosing the english title
|
||||
- name: re_replace
|
||||
args: ["^(.*?)[\\(](.*?)[\\)](.*?)$", "$2$3"]
|
||||
# add the year to the title
|
||||
- name: append
|
||||
args: "{{ if .Result._year }} {{ .Result._year }}{{ else }}{{ end }}"
|
||||
# add the quality to the title
|
||||
- name: append
|
||||
args: "{{ if .Result._quality }} {{ .Result._quality }}{{ else }}{{ end }}"
|
||||
# add the type to the title
|
||||
- name: append
|
||||
args: "{{ if .Result._type }} {{ .Result._type }}{{ else }}{{ end }}"
|
||||
# add audio to the title
|
||||
- name: append
|
||||
args: "{{ if .Result._language }} {{ .Result._language }}{{ else }}{{ end }}"
|
||||
- name: re_replace
|
||||
args: ["(Dual|[Nn]acional|[Dd]ublado)", "Brazilian $1"]
|
||||
details:
|
||||
selector: a[href*="torrents-details.php?id="], a[href*="details-misc.php?id="]
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href*="download.php?id="]
|
||||
attribute: href
|
||||
category:
|
||||
selector: div.list-group-item-addon img
|
||||
attribute: src
|
||||
case:
|
||||
# unfortunately the site does not have category numbers on the results page, just a image which can apply to both movies and tv.
|
||||
# therefore I've order the list to favour movies.
|
||||
# also, not all images have been verified as the site has many empty categories. their image names have been extrapolated from the cat desc.
|
||||
"[src$=\"/Adultos.fw.png\"]": 74
|
||||
"[src$=\"/Gay.jpeg\"]": 107
|
||||
"[src$=\"/Trans.jpeg\"]": 108
|
||||
"[src$=\"/Hentai.png\"]": 75
|
||||
"[src$=\"/Anime2.fw.png\"]": 69
|
||||
"[src$=\"/aplicativos.fw.png\"]": 21
|
||||
"[src$=\"/Mac.png\"]": 22
|
||||
"[src$=\"/Android.png\"]": 23
|
||||
"[src$=\"/Linux.png\"]": 25
|
||||
"[src$=\"/iPhone.png\"]": 26
|
||||
"[src$=\"/iPad.png\"]": 27
|
||||
"[src$=\"/iPod.png\"]": 28
|
||||
"[src$=\"/Cursos.png\"]": 71
|
||||
"[src$=\"/Apostila.png\"]": 72
|
||||
"[src$=\"/E-books.png\"]": 67
|
||||
"[src$=\"/Revista.png\"]": 68
|
||||
"[src$=\"/HQ.png\"]": 112
|
||||
"[src$=\"/filmes2.fw.png\"]": 119
|
||||
"[src$=\"/Revistas-XXX.png\"]": 70
|
||||
"[src$=\"/PS4.png\"]": 79
|
||||
"[src$=\"/Jogos-PC.png\"]": 47
|
||||
"[src$=\"/Emulador.png\"]": 61
|
||||
"[src$=\"/Emulacao.png\"]": 109
|
||||
"[src$=\"/Jogos-Mac.png\"]": 48
|
||||
"[src$=\"/Jogos-PS1.png\"]": 49
|
||||
"[src$=\"/Jogos-PS2.png\"]": 50
|
||||
"[src$=\"/Jogos-PS3.png\"]": 51
|
||||
"[src$=\"/Jogos-Dreamcast.png\"]": 52
|
||||
"[src$=\"/Jogos-Xbox360.png\"]": 54
|
||||
"[src$=\"/Jogos-Xbox.png\"]": 56
|
||||
"[src$=\"/Jogos-Wii.png\"]": 55
|
||||
"[src$=\"/Jogos-DS.png\"]": 58
|
||||
"[src$=\"/jogosandroid.png\"]": 57
|
||||
"[src$=\"/PSP.png\"]": 82
|
||||
"[src$=\"/Jogos-NS.png\"]": 110
|
||||
"[src$=\"/Jogos-XboxOne.png\"]": 78
|
||||
"[src$=\"/Axe.png\"]": 29
|
||||
"[src$=\"/Eletronica.png\"]": 30
|
||||
"[src$=\"/Funk.png\"]": 31
|
||||
"[src$=\"/Pagode.png\"]": 32
|
||||
"[src$=\"/HIP_HOP.png\"]": 33
|
||||
"[src$=\"/Rap.png\"]": 34
|
||||
"[src$=\"/Rock.png\"]": 36
|
||||
"[src$=\"/Hard-Rock.png\"]": 37
|
||||
"[src$=\"/Blues.png\"]": 38
|
||||
"[src$=\"/Dance.png\"]": 39
|
||||
"[src$=\"/Discografia.png\"]": 40
|
||||
"[src$=\"/Erudita.png\"]": 41
|
||||
"[src$=\"/Forro.png\"]": 42
|
||||
"[src$=\"/Dubstep.png\"]": 43
|
||||
"[src$=\"/Sertanejo.png\"]": 46
|
||||
"[src$=\"/Samba.png\"]": 45
|
||||
"[src$=\"/Musica-Outros.png\"]": 77
|
||||
"[src$=\"/Reggae.png\"]": 76
|
||||
"[src$=\"/Gospel.png\"]": 83
|
||||
"[src$=\"/POP.png\"]": 115
|
||||
"[src$=\"/MPB.png\"]": 114
|
||||
"[src$=\"/OST.png\"]": 84
|
||||
"[src$=\"/seriados.fw.png\"]": 120
|
||||
"[src$=\"/show.fw.png\"]": 65
|
||||
"[src$=\"/Aberta.png\"]": 63
|
||||
"[src$=\"/Esporte.png\"]": 62
|
||||
"[src$=\"/Fechada.png\"]": 64
|
||||
"[src$=\"/video aula4.fw.png\"]": 73
|
||||
"[src$=\"/Add-ons.png\"]": 127
|
||||
"[src$=\"/Extensões.png\"]": 126
|
||||
"[src$=\"/Fonts.png\"]": 129
|
||||
"[src$=\"/MOD.png\"]": 130
|
||||
"[src$=\"/Imagens.png\"]": 125
|
||||
"[src$=\"/Plug-ins.png\"]": 122
|
||||
"[src$=\"/Scripts.png\"]": 128
|
||||
"[src$=\"/Vetores.png\"]": 124
|
||||
"[src$=\"/outros2.png\"]": 130
|
||||
date:
|
||||
selector: p:contains("Lançado:")
|
||||
# auto adjusted by site account profile
|
||||
optional: true
|
||||
default: now
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "Lançado: (.+?)$"
|
||||
- name: re_replace
|
||||
args: [" (\\d:)", " 0$1"]
|
||||
- name: dateparse
|
||||
args: "dd/MM/yy HH:mm:ss"
|
||||
size:
|
||||
selector: div.list-group-item-content p.m-0 span.badge-info
|
||||
seeders:
|
||||
selector: div.list-group-item-controls a:nth-child(1)
|
||||
leechers:
|
||||
selector: div.list-group-item-controls a:nth-child(2)
|
||||
grabs:
|
||||
selector: div.list-group-item-controls a:nth-child(3)
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
"span.badge-success:contains(\"FREE\")": 0
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
minimumratio:
|
||||
text: 1.0
|
||||
# engine n/a
|
300
config/prowlarr/Definitions/anilibria.yml
Normal file
300
config/prowlarr/Definitions/anilibria.yml
Normal file
|
@ -0,0 +1,300 @@
|
|||
---
|
||||
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:
|
||||
categories:
|
||||
Anime: TV/Anime
|
||||
Movies: Movies/Other
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
|
||||
settings:
|
||||
- name: stripcyrillic
|
||||
type: checkbox
|
||||
label: Strip Cyrillic Letters
|
||||
default: false
|
||||
- name: sonarr_compatibility
|
||||
type: checkbox
|
||||
label: Improve Sonarr compatibility by trying to better parse Season information in release titles.
|
||||
default: false
|
||||
- name: addrussiantotitle
|
||||
type: checkbox
|
||||
label: Add RUS to end of all titles to improve language detection by Sonarr and Radarr. Will cause English-only results to be misidentified.
|
||||
default: false
|
||||
|
||||
search:
|
||||
paths:
|
||||
# https://github.com/anilibria/docs/blob/master/api_v3.md
|
||||
- path: "https://api.anilibria.tv/v3/title/{{ if .Keywords }}search{{ else }}updates{{ end }}"
|
||||
response:
|
||||
type: json
|
||||
|
||||
inputs:
|
||||
search: "{{ .Keywords }}"
|
||||
filter: "names,posters.small.url,code,torrents.list,season.year,description"
|
||||
limit: 100
|
||||
|
||||
keywordsfilters:
|
||||
# strip season and/or ep
|
||||
- name: re_replace
|
||||
args: ["(?i)\\b(?:[SE]\\d{1,4}){1,2}\\b\\s?", ""]
|
||||
|
||||
rows:
|
||||
selector: list
|
||||
attribute: torrents.list
|
||||
multiple: true
|
||||
|
||||
fields:
|
||||
_episodes:
|
||||
selector: episodes.string
|
||||
optional: true
|
||||
category:
|
||||
text: "{{ if eq .Result._episodes \"Фильм\" }}Movies{{ else }}Anime{{ end }}"
|
||||
title_ru:
|
||||
selector: ..names.ru
|
||||
title_en:
|
||||
selector: ..names.en
|
||||
title_en_parsed:
|
||||
selector: ..names.en
|
||||
filters:
|
||||
- name: re_replace
|
||||
args: ["(?i)\\bPart\\s*1\\b", "Part One"]
|
||||
- name: re_replace
|
||||
args: ["(?i)\\bPart\\s*2\\b", "Part Two"]
|
||||
- name: re_replace
|
||||
args: ["(?i)\\bPart\\s*3\\b", "Part Three"]
|
||||
- name: re_replace
|
||||
args: ["(?i)\\bPart\\s*4\\b", "Part Four"]
|
||||
- name: re_replace
|
||||
args: ["(?i)\\bPart\\s*5\\b", "Part Five"]
|
||||
- name: re_replace
|
||||
args: ["(?i)\\bPart\\s*6\\b", "Part Six"]
|
||||
- name: re_replace
|
||||
args: ["(?i)\\bPart\\s*7\\b", "Part Seven"]
|
||||
- name: re_replace
|
||||
args: ["(?i)\\bPart\\s*8\\b", "Part Eight"]
|
||||
- name: re_replace
|
||||
args: ["(?i)\\bPart\\s*9\\b", "Part Nine"]
|
||||
- name: re_replace
|
||||
args: ["(?i)\\bseason\\s*(\\d+)\\b", ""]
|
||||
- name: re_replace
|
||||
args: ["(?i)\\b(\\d+)(st|nd|rd|th)\\s*season[\\s\\.]*", ""]
|
||||
- name: re_replace
|
||||
args: ["(?i)\\b(\\d+)\\s*season\\b[\\s\\.]*", ""]
|
||||
- name: re_replace
|
||||
args: ["(?i)\\bseason\\s*([IVXLCDM]+)\\b", ""]
|
||||
- name: re_replace
|
||||
args: ["\\bI$", ""]
|
||||
- name: re_replace
|
||||
args: ["\\bII$", ""]
|
||||
- name: re_replace
|
||||
args: ["\\bIII$", ""]
|
||||
- name: re_replace
|
||||
args: ["\\bIV$", ""]
|
||||
- name: re_replace
|
||||
args: ["\\bV$", ""]
|
||||
- name: re_replace
|
||||
args: ["\\bVI$", ""]
|
||||
- name: re_replace
|
||||
args: ["\\bVII$", ""]
|
||||
- name: re_replace
|
||||
args: ["\\bVIII$", ""]
|
||||
- name: re_replace
|
||||
args: ["\\bIX$", ""]
|
||||
- name: re_replace
|
||||
args: ["\\bX$", ""]
|
||||
- name: re_replace
|
||||
args: ["(?i)\\b(\\d+)(?:st|nd|rd|th)?\\b", ""]
|
||||
- name: trim
|
||||
title_alternative:
|
||||
selector: ..names.alternative
|
||||
optional: true
|
||||
filters:
|
||||
- name: re_replace
|
||||
args: ["(\\([\\p{IsCyrillic}\\W]+\\))|(^[\\p{IsCyrillic}\\W\\d]+\\/ )|([\\p{IsCyrillic} \\-]+,+)|([\\p{IsCyrillic}]+)", "{{ if .Config.stripcyrillic }}{{ else }}$1$2$3$4{{ end }}"]
|
||||
- name: re_replace
|
||||
args: ["[\\[\\(\\{<«][\\s\\W]*[\\]\\)\\}>»]", ""]
|
||||
- name: re_replace
|
||||
args: ["^[\\s&,\\.!\\?\\+\\-_\\|\\/':]+", ""]
|
||||
- name: re_replace
|
||||
args: ["^OVA$", ""]
|
||||
_season_number_en:
|
||||
selector: ..names.en
|
||||
filters:
|
||||
- name: re_replace
|
||||
args: ["(?i)\\bPart\\s*\\d+\\s*$", ""]
|
||||
- name: re_replace
|
||||
args: ["(?i)(^.*\\bseason\\s*(\\d+)\\b\\s*$)", "S$2"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(^.*\\b(\\d+)(st|nd|rd|th)\\s*season\\b.*$)", "S$2"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(^.*\\b(\\d+)\\s*season\\b.*$)", "S$2"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(^.*\\bseason\\s*([IVXLCDM]+)\\b\\s*$)", "$1"]
|
||||
- name: re_replace
|
||||
args: ["(^.*X$)", "S10"]
|
||||
- name: re_replace
|
||||
args: ["(^.*IX$)", "S9"]
|
||||
- name: re_replace
|
||||
args: ["(^.*VIII$)", "S8"]
|
||||
- name: re_replace
|
||||
args: ["(^.*VII$)", "S7"]
|
||||
- name: re_replace
|
||||
args: ["(^.*VI$)", "S6"]
|
||||
- name: re_replace
|
||||
args: ["(^.*V$)", "S5"]
|
||||
- name: re_replace
|
||||
args: ["(^.*IV$)", "S4"]
|
||||
- name: re_replace
|
||||
args: ["(^.*III$)", "S3"]
|
||||
- name: re_replace
|
||||
args: ["(^.*II$)", "S2"]
|
||||
- name: re_replace
|
||||
args: ["(^.*I$)", "S1"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(^.*\\b(\\d+)(?:st|nd|rd|th)?\\b\\s*$)", "S$2"]
|
||||
- name: re_replace
|
||||
args: ["(?i)^(?!S\\d+).*", ""]
|
||||
_season_number_alternative:
|
||||
selector: ..names.alternative
|
||||
optional: true
|
||||
filters:
|
||||
- name: re_replace
|
||||
args: ["(?i)\\bPart\\s*\\d+\\s*$", ""]
|
||||
- name: re_replace
|
||||
args: ["(?i)(^.*\\bseason\\s*(\\d+)\\b\\s*$)", "S$2"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(^.*\\b(\\d+)(st|nd|rd|th)\\s*season\\b\\s*$)", "S$2"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(^.*\\b(\\d+)\\s*season\\b\\s*$)", "S$2"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(^.*\\bseason\\s*([IVXLCDM]+)\\b\\s*$)", "$1"]
|
||||
- name: re_replace
|
||||
args: ["(^.*X$)", "S10"]
|
||||
- name: re_replace
|
||||
args: ["(^.*IX$)", "S9"]
|
||||
- name: re_replace
|
||||
args: ["(^.*VIII$)", "S8"]
|
||||
- name: re_replace
|
||||
args: ["(^.*VII$)", "S7"]
|
||||
- name: re_replace
|
||||
args: ["(^.*VI$)", "S6"]
|
||||
- name: re_replace
|
||||
args: ["(^.*V$)", "S5"]
|
||||
- name: re_replace
|
||||
args: ["(^.*IV$)", "S4"]
|
||||
- name: re_replace
|
||||
args: ["(^.*III$)", "S3"]
|
||||
- name: re_replace
|
||||
args: ["(^.*II$)", "S2"]
|
||||
- name: re_replace
|
||||
args: ["(^.*I$)", "S1"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(^.*\\b(\\d+)(?:st|nd|rd|th)?\\b\\s*$)", "S$2"]
|
||||
- name: re_replace
|
||||
args: ["(?i)^(?!S\\d+).*", ""]
|
||||
_season_number:
|
||||
text: "{{ .Result._season_number_en }}"
|
||||
filters:
|
||||
- name: append
|
||||
args: "{{ .Result._season_number_alternative }}"
|
||||
- name: re_replace
|
||||
args: ["^S1S1$", "S1"]
|
||||
- name: re_replace
|
||||
args: ["^S1(.+)$", "$1"]
|
||||
- name: re_replace
|
||||
args: ["^(S\\d+).*$", "$1"]
|
||||
- name: re_replace
|
||||
args: ["^$", "S1"]
|
||||
year:
|
||||
selector: ..season.year
|
||||
_quality:
|
||||
selector: quality.string
|
||||
_quality_type:
|
||||
selector: quality.type
|
||||
_quality_resolution:
|
||||
selector: quality.resolution
|
||||
_quality_encoder:
|
||||
selector: quality.encoder
|
||||
filters:
|
||||
- name: re_replace
|
||||
args: ["(?i)^h", "x"]
|
||||
title_parsed:
|
||||
text: "{{ if .Config.stripcyrillic }}{{ else }}{{ .Result.title_ru }} / {{ end }}{{ .Result.title_en_parsed }} {{ .Result._season_number}}E{{ .Result._episodes }} [{{ .Result._quality_type }} {{ .Result._quality_resolution }} {{ .Result._quality_encoder }}]"
|
||||
filters:
|
||||
- name: re_replace
|
||||
args: ["\\bS\\d+EФильм\\b", "({{ .Result.year }}) MOVIE"]
|
||||
- name: re_replace
|
||||
args: ["\\bS\\d+EOVA\\b", "({{ .Result.year }}) OVA"]
|
||||
- name: re_replace
|
||||
args: ["\\bS\\d+EONA\\b", "({{ .Result.year }}) ONA"]
|
||||
- name: re_replace
|
||||
args: ["\\bS\\d+EMovie\\b", "({{ .Result.year }}) MOVIE"]
|
||||
- name: re_replace
|
||||
args: ["\\bS\\d+EП/м фильм\\b", "({{ .Result.year }}) MOVIE"]
|
||||
- name: re_replace
|
||||
args: ["\\bS\\d+EРекап\\b", "({{ .Result.year }}) RECAP"]
|
||||
- name: re_replace
|
||||
args: ["\\bS\\d+ETV-Special\\b", "({{ .Result.year }}) SPECIAL"]
|
||||
- name: append
|
||||
args: "{{ if .Config.addrussiantotitle }} - RUS{{ else }}{{ end }}"
|
||||
title_original:
|
||||
text: "{{ if .Config.stripcyrillic }}{{ else }}{{ .Result.title_ru }} / {{ end }}{{ .Result.title_en }}{{ if .Result.title_alternative }} / AKA {{ .Result.title_alternative }}{{ else }}{{ end }} ({{ .Result.year }}) [{{ .Result._quality }}]{{ if .Result._episodes }} - E{{ .Result._episodes }}{{ else }}{{ end }}"
|
||||
filters:
|
||||
- name: re_replace
|
||||
args: [" - \\bEФильм\\b", " - MOVIE"]
|
||||
- name: re_replace
|
||||
args: [" - \\bEMovie\\b", " - MOVIE"]
|
||||
- name: re_replace
|
||||
args: [" - \\bEП/м фильм\\b", " - MOVIE"]
|
||||
- name: re_replace
|
||||
args: [" - \\bEOVA\\b", " - OVA"]
|
||||
- name: re_replace
|
||||
args: [" - \\bEONA\\b", " - ONA"]
|
||||
- name: append
|
||||
args: "{{ if .Config.addrussiantotitle }} - RUS{{ else }}{{ end }}"
|
||||
title:
|
||||
text: "{{ if .Config.sonarr_compatibility }}{{ .Result.title_parsed }}{{ else }}{{ .Result.title_original }}{{ end }}"
|
||||
_code:
|
||||
selector: ..code
|
||||
details:
|
||||
text: "{{ .Config.sitelink }}release/{{ .Result._code }}.html"
|
||||
download_url:
|
||||
selector: url
|
||||
download:
|
||||
text: "{{ .Config.sitelink }}{{ .Result.download_url }}"
|
||||
magnet:
|
||||
selector: magnet
|
||||
poster:
|
||||
selector: ..posters.small.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
|
||||
description:
|
||||
selector: ..description
|
||||
# json api v3
|
201
config/prowlarr/Definitions/animelayer.yml
Normal file
201
config/prowlarr/Definitions/animelayer.yml
Normal file
|
@ -0,0 +1,201 @@
|
|||
---
|
||||
id: animelayer
|
||||
name: AnimeLayer
|
||||
description: "AnimeLayer is a RUSSIAN Semi-Private Torrent Tracker for ANIME"
|
||||
language: ru-RU
|
||||
type: semi-private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://www.animelayer.ru/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: аниме, cat: TV/Anime, desc: Аниме}
|
||||
- {id: музыка, cat: Audio, desc: Музыка}
|
||||
- {id: манга, cat: Books, desc: Манга}
|
||||
- {id: дорама, cat: TV, desc: Дорама}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
music-search: [q]
|
||||
book-search: [q]
|
||||
|
||||
settings:
|
||||
- name: username
|
||||
type: text
|
||||
label: Username
|
||||
- name: password
|
||||
type: password
|
||||
label: Password
|
||||
- name: category-id
|
||||
type: select
|
||||
label: Category
|
||||
default: anime
|
||||
options:
|
||||
anime: Аниме
|
||||
music: Музыка
|
||||
manga: Манга
|
||||
dorama: Дорама
|
||||
|
||||
login:
|
||||
path: login.php
|
||||
method: form
|
||||
form: form#loginForm
|
||||
inputs:
|
||||
login: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
error:
|
||||
- selector: div.error
|
||||
test:
|
||||
path: /
|
||||
selector: a[href^="/auth/logout/"]
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: "torrents/{{ .Config.category-id }}/"
|
||||
inputs:
|
||||
q: "{{ .Keywords }}"
|
||||
|
||||
rows:
|
||||
selector: ul.torrents-list li.torrent-item:has(a[href^="/torrent/"])
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: label.category
|
||||
_resolution:
|
||||
selector: div.description
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "Разрешение:\\s+\\d{3,4}\\D(\\d{3,4})"
|
||||
title:
|
||||
selector: img
|
||||
attribute: alt
|
||||
filters:
|
||||
- name: append
|
||||
args: "{{ if .Result._resolution }} [{{ .Result._resolution }}p]{{ else }}{{ end }}"
|
||||
details:
|
||||
selector: a[href^="/torrent/"]
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href^="/torrent/"]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: append
|
||||
args: download/
|
||||
poster:
|
||||
selector: img
|
||||
attribute: data-original
|
||||
size:
|
||||
selector: div.info
|
||||
filters:
|
||||
- name: split
|
||||
args: ["|", 2]
|
||||
date_noyear:
|
||||
# <span class="gray">Добавлен:</span> 18 августа в 21:39
|
||||
selector: div.info
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "н:\\s(\\d{1,2} \\D{3,8} в\\s\\d{1,2}:\\d{2})"
|
||||
- name: replace
|
||||
args: ["\xA0", " "]
|
||||
- name: replace
|
||||
args: ["Обновлён:", ""]
|
||||
- name: replace
|
||||
args: ["Добавлен:", ""]
|
||||
- name: replace
|
||||
args: [" в ", " "]
|
||||
- name: replace
|
||||
args: ["января", "January {{ .Today.Year }}"]
|
||||
- name: replace
|
||||
args: ["февраля", "February {{ .Today.Year }}"]
|
||||
- name: replace
|
||||
args: ["марта", "March {{ .Today.Year }}"]
|
||||
- name: replace
|
||||
args: ["апреля", "April {{ .Today.Year }}"]
|
||||
- name: replace
|
||||
args: ["мая", "May {{ .Today.Year }}"]
|
||||
- name: replace
|
||||
args: ["июня", "June {{ .Today.Year }}"]
|
||||
- name: replace
|
||||
args: ["июля", "July {{ .Today.Year }}"]
|
||||
- name: replace
|
||||
args: ["августа", "August {{ .Today.Year }}"]
|
||||
- name: replace
|
||||
args: ["сентября", "September {{ .Today.Year }}"]
|
||||
- name: replace
|
||||
args: ["октября", "October {{ .Today.Year }}"]
|
||||
- name: replace
|
||||
args: ["ноября", "November {{ .Today.Year }}"]
|
||||
- name: replace
|
||||
args: ["декабря", "December {{ .Today.Year }}"]
|
||||
- name: re_replace
|
||||
args: ["\\s(\\d\\:)", " 0$1"]
|
||||
date_year:
|
||||
# <span class="gray">Обновлён:</span> 3 октября 2019 в 6:02
|
||||
selector: div.info
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "н:\\s(\\d{1,2} \\D{3,8} \\d{4} в\\s\\d{1,2}:\\d{2})"
|
||||
- name: replace
|
||||
args: ["\xA0", " "]
|
||||
- name: replace
|
||||
args: ["Обновлён:", ""]
|
||||
- name: replace
|
||||
args: ["Добавлен:", ""]
|
||||
- name: replace
|
||||
args: [" в ", " "]
|
||||
- name: replace
|
||||
args: ["января", "January"]
|
||||
- name: replace
|
||||
args: ["февраля", "February"]
|
||||
- name: replace
|
||||
args: ["марта", "March"]
|
||||
- name: replace
|
||||
args: ["апреля", "April"]
|
||||
- name: replace
|
||||
args: ["мая", "May"]
|
||||
- name: replace
|
||||
args: ["июня", "June"]
|
||||
- name: replace
|
||||
args: ["июля", "July"]
|
||||
- name: replace
|
||||
args: ["августа", "August"]
|
||||
- name: replace
|
||||
args: ["сентября", "September"]
|
||||
- name: replace
|
||||
args: ["октября", "October"]
|
||||
- name: replace
|
||||
args: ["ноября", "November"]
|
||||
- name: replace
|
||||
args: ["декабря", "December"]
|
||||
- name: re_replace
|
||||
args: ["\\s(\\d\\:)", " 0$1"]
|
||||
date:
|
||||
text: "{{ if or .Result.date_year .Result.date_noyear }}{{ or .Result.date_year .Result.date_noyear }}{{ else }}now{{ end }}"
|
||||
seeders:
|
||||
selector: div.info
|
||||
filters:
|
||||
- name: split
|
||||
args: ["|", 0]
|
||||
leechers:
|
||||
selector: div.info
|
||||
filters:
|
||||
- name: split
|
||||
args: ["|", 1]
|
||||
_subtitles:
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "Субтитры:(.+?)\\n"
|
||||
_language:
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "Язык:(.+?)\\n"
|
||||
description:
|
||||
text: "{{ if .Result._subtitles }}Субтитры: {{ .Result._subtitles }}{{ else }}{{ end }} - {{ if .Result._language }}Язык: {{ .Result._language }}{{ else }}{{ end }}"
|
||||
downloadvolumefactor:
|
||||
text: 0
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
# engine n/a
|
81
config/prowlarr/Definitions/animetime.yml
Normal file
81
config/prowlarr/Definitions/animetime.yml
Normal file
|
@ -0,0 +1,81 @@
|
|||
---
|
||||
id: animetime
|
||||
name: Anime Time
|
||||
description: "Anime Time is a PUBLIC torrent tracker for ANIME"
|
||||
language: en-US
|
||||
type: public
|
||||
encoding: UTF-8
|
||||
requestDelay: 2
|
||||
links:
|
||||
- https://animetime.cc/
|
||||
|
||||
caps:
|
||||
categories:
|
||||
anime: TV/Anime
|
||||
books: Books
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
book-search: [q]
|
||||
|
||||
settings: []
|
||||
|
||||
search:
|
||||
paths:
|
||||
# https://animetime.cc/search?query=
|
||||
- path: "{{ if .Keywords }}search{{ else }}{{ end }}"
|
||||
|
||||
inputs:
|
||||
query: "{{ .Keywords }}"
|
||||
|
||||
keywordsfilters:
|
||||
- name: trim
|
||||
- name: re_replace
|
||||
args: ["\\W+", "%"]
|
||||
|
||||
rows:
|
||||
selector: div.flow-root > div.divide-y > div.p-2.space-y-2
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: span.badge.badge-primary
|
||||
title:
|
||||
selector: a[href*="/view/"]
|
||||
details:
|
||||
selector: a[href*="/view/"]
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href*="/download/"]
|
||||
attribute: href
|
||||
magnet:
|
||||
selector: a[href^="magnet:?xt="]
|
||||
attribute: href
|
||||
date:
|
||||
selector: span[data-tip]
|
||||
attribute: data-tip
|
||||
filters:
|
||||
- name: append
|
||||
args: " +02:00" # EET
|
||||
- name: dateparse
|
||||
args: "yyyy-MM-dd HH:mm:ss zzz"
|
||||
size:
|
||||
selector: span.badge.badge-ghost
|
||||
seeders:
|
||||
text: 1
|
||||
leechers:
|
||||
text: 1
|
||||
genre:
|
||||
selector: span.badge.badge-secondary
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["non english", "non_english"]
|
||||
- name: replace
|
||||
args: ["music video", "music_video"]
|
||||
- name: replace
|
||||
args: ["Anime Time", "Anime_Time"]
|
||||
downloadvolumefactor:
|
||||
text: 0
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
# engine n/a
|
157
config/prowlarr/Definitions/animetorrentsro.yml
Normal file
157
config/prowlarr/Definitions/animetorrentsro.yml
Normal file
|
@ -0,0 +1,157 @@
|
|||
---
|
||||
id: animetorrentsro
|
||||
name: AnimeTorrents.ro
|
||||
description: "AnimeTorrents.ro (Anime Torrents Romania) is a ROMANIAN Private Torrent Tracker for ANIME / MANGA"
|
||||
language: ro-RO
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://animetorrents.ro/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 1, cat: TV/Anime, desc: "ANIME"}
|
||||
- {id: 1, cat: Movies/Other, desc: "ANIME"} # for Radarr
|
||||
- {id: 2, cat: Books/Comics, desc: "MANGA"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
book-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: cat-id
|
||||
type: select
|
||||
label: Category
|
||||
default: 0
|
||||
options:
|
||||
0: All categories
|
||||
1: Anime
|
||||
2: Manga
|
||||
- name: sort
|
||||
type: select
|
||||
label: Sort requested from site
|
||||
default: 4
|
||||
options:
|
||||
4: created
|
||||
7: seeders
|
||||
5: size
|
||||
1: title
|
||||
- name: type
|
||||
type: select
|
||||
label: Order requested from site
|
||||
default: desc
|
||||
options:
|
||||
desc: desc
|
||||
asc: asc
|
||||
- name: info
|
||||
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.
|
||||
- name: info_activity
|
||||
type: info
|
||||
label: Account Inactivity
|
||||
default: "Inactive accounts under VIP and without parked are automatically deleted after about a year."
|
||||
|
||||
login:
|
||||
path: takelogin.php
|
||||
method: post
|
||||
inputs:
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
x: 0
|
||||
y: 0
|
||||
referer: /
|
||||
error:
|
||||
- selector: table.main:contains("esuat")
|
||||
test:
|
||||
path: index.php
|
||||
selector: a[href="logout.php"]
|
||||
|
||||
search:
|
||||
paths:
|
||||
# https://animetorrents.ro/browse.php?search=2023&incldead=1&blah=0&cat=0
|
||||
- path: browse.php
|
||||
inputs:
|
||||
search: "{{ .Keywords }}"
|
||||
# 0 active, 1 all, 2 dead, 3 free
|
||||
incldead: "{{ if .Config.freeleech }}3{{ else }}1{{ end }}"
|
||||
# 0 name, 1 genre
|
||||
blah: 0
|
||||
# site does not support multiple cats
|
||||
cat: "{{ .Config.cat-id }}"
|
||||
sort: "{{ .Config.sort }}"
|
||||
type: "{{ .Config.type }}"
|
||||
# does not support imdbid search
|
||||
|
||||
rows:
|
||||
selector: td > table > tbody > tr:has(a[href^="download.php/"])
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: a[href^="browse.php?cat="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: cat
|
||||
title:
|
||||
selector: a[href^="details.php?id="]
|
||||
filters:
|
||||
- name: re_replace
|
||||
args: ["^(\\[.+?\\]).(.+)", "$2.$1"]
|
||||
details:
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href^="download.php/"]
|
||||
attribute: href
|
||||
poster:
|
||||
selector: a[onmouseover]
|
||||
attribute: onmouseover
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "src=(.+?) width"
|
||||
files:
|
||||
selector: td:nth-last-child(8)
|
||||
date:
|
||||
selector: td:nth-last-child(6)
|
||||
filters:
|
||||
- name: append
|
||||
args: " +00:00" # auto adjusted by site account profile
|
||||
- name: dateparse
|
||||
args: "dd-MM-yyyyHH:mm:ss zzz"
|
||||
size:
|
||||
selector: td:nth-last-child(5)
|
||||
grabs:
|
||||
selector: td:nth-last-child(4)
|
||||
seeders:
|
||||
selector: td:nth-last-child(3)
|
||||
leechers:
|
||||
selector: td:nth-last-child(2)
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
img[alt="Free"]: 0
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
genre:
|
||||
selector: a[href^="download.php/"]
|
||||
description:
|
||||
text: "{{ .Result.genre }}"
|
||||
minimumratio:
|
||||
text: 1.0
|
||||
minimumseedtime:
|
||||
# 2 days (as seconds = 2 x 24 x 60 x 60)
|
||||
text: 172800
|
||||
# engine n/a
|
183
config/prowlarr/Definitions/animeworld-api.yml
Normal file
183
config/prowlarr/Definitions/animeworld-api.yml
Normal file
|
@ -0,0 +1,183 @@
|
|||
---
|
||||
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, tvdbid, tmdbid]
|
||||
movie-search: [q, 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
|
||||
- name: info_activity
|
||||
type: info
|
||||
label: Account Inactivity
|
||||
default: "Accounts are set as inactive by the system after 180 days. After 270 days in inactive status, the accounts are automatically deleted from the system."
|
||||
|
||||
login:
|
||||
path: /api/torrents
|
||||
method: get
|
||||
inputs: {} # TODO: remove in v10
|
||||
error:
|
||||
- selector: a[href*="/login"]
|
||||
message:
|
||||
text: "The API key was not accepted by {{ .Config.sitelink }}."
|
||||
|
||||
search:
|
||||
paths:
|
||||
# https://github.com/HDInnovations/UNIT3D-Community-Edition/wiki/Torrent-API-(UNIT3D-v8.x.x)
|
||||
# https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php#L476
|
||||
- path: "/api/torrents/filter"
|
||||
response:
|
||||
type: json
|
||||
|
||||
headers:
|
||||
Authorization: ["Bearer {{ .Config.apikey }}"]
|
||||
|
||||
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
|
||||
$raw: "{{ range .Categories }}&categories[]={{.}}{{end}}"
|
||||
name: "{{ .Keywords }}"
|
||||
seasonNumber: "{{ .Query.Season }}"
|
||||
episodeNumber: "{{ .Query.Ep }}"
|
||||
# imdbId: "{{ .Query.IMDBIDShort }}" # disabled due to #14776
|
||||
tmdbId: "{{ .Query.TMDBID }}"
|
||||
tvdbId: "{{ .Query.TVDBID }}"
|
||||
"free[]": "{{ if .Config.freeleech }}100{{ else }}{{ end }}"
|
||||
sortField: "{{ .Config.sort }}"
|
||||
sortDirection: "{{ .Config.type }}"
|
||||
perPage: 100
|
||||
|
||||
keywordsfilters:
|
||||
- name: re_replace
|
||||
args: ["\\.", " "]
|
||||
|
||||
rows:
|
||||
selector: data
|
||||
attribute: attributes
|
||||
|
||||
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
|
||||
genre:
|
||||
selector: meta.genres
|
||||
filters:
|
||||
- name: re_replace
|
||||
args: ["(?i)^None$", ""]
|
||||
- name: re_replace
|
||||
args: ["(?i)(Cinema TV)", "Cinema_TV"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(Ficção científica)", "Ficção_científica"]
|
||||
- name: replace
|
||||
args: [" & ", "_&_"]
|
||||
description:
|
||||
text: "{{ .Result.genre }}"
|
||||
files:
|
||||
selector: num_file
|
||||
seeders:
|
||||
selector: seeders
|
||||
leechers:
|
||||
selector: leechers
|
||||
grabs:
|
||||
selector: times_completed
|
||||
date:
|
||||
# "created_at": "2021-10-18T00:34:50.000000Z" is returned by Newtonsoft.Json.Linq as 18/10/2021 00:34:50
|
||||
selector: created_at
|
||||
filters:
|
||||
- name: append
|
||||
args: " +00:00" # GMT
|
||||
- name: dateparse
|
||||
args: "MM/dd/yyyy HH:mm:ss zzz"
|
||||
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.5.0
|
89
config/prowlarr/Definitions/anirena.yml
Normal file
89
config/prowlarr/Definitions/anirena.yml
Normal file
|
@ -0,0 +1,89 @@
|
|||
---
|
||||
id: aniRena
|
||||
name: AniRena
|
||||
description: "AniRena is a Public torrent tracker for the latest anime and Japanese related torrents"
|
||||
language: en-US
|
||||
type: public
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://www.anirena.com/
|
||||
|
||||
settings:
|
||||
- name: flaresolverr
|
||||
type: info
|
||||
label: FlareSolverr
|
||||
default: This site may use Cloudflare DDoS Protection, therefore Prowlarr requires <a href="https://wiki.servarr.com/prowlarr/faq#can-i-use-flaresolverr-indexers" target="_blank" rel="noreferrer">FlareSolverr</a> to access it.
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
# Anime
|
||||
- {id: 1, cat: TV/Anime, desc: "Raw Animes"}
|
||||
- {id: 2, cat: TV/Anime, desc: "Anime"}
|
||||
- {id: 3, cat: TV/Anime, desc: "Hentai"}
|
||||
- {id: 4, cat: TV/Anime, desc: "Drama"}
|
||||
- {id: 9, cat: TV/Anime, desc: "Anime Music Videos"}
|
||||
- {id: 10, cat: TV/Anime, desc: "Non-English"}
|
||||
# Software
|
||||
- {id: 5, cat: PC/ISO, desc: "DVD/ISO"}
|
||||
- {id: 6, cat: PC, desc: "Hentai-Game"}
|
||||
# Literature
|
||||
- {id: 7, cat: Books, desc: "Manga"}
|
||||
# Audio
|
||||
- {id: 8, cat: Audio, desc: "Audio"}
|
||||
# Other
|
||||
- {id: 11, cat: Other, desc: "Other"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
music-search: [q]
|
||||
book-search: [q]
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: /
|
||||
inputs:
|
||||
s: "{{ .Keywords }}"
|
||||
|
||||
rows:
|
||||
selector: table tbody tr:has(td.torrents_small_type_data1)
|
||||
|
||||
fields:
|
||||
title:
|
||||
selector: .torrents_small_info_data1 div
|
||||
download:
|
||||
selector: .torrents_small_info_data2 a[title="Download Torrent"]
|
||||
attribute: href
|
||||
magnet:
|
||||
selector: .torrents_small_info_data2 a[title="Magnet Link"]
|
||||
attribute: href
|
||||
date:
|
||||
text: now
|
||||
size:
|
||||
selector: .torrents_small_size_data1
|
||||
seeders:
|
||||
selector: .torrents_small_seeders_data1 b big
|
||||
leechers:
|
||||
selector: .torrents_small_leechers_data1 b big
|
||||
grabs:
|
||||
selector: .torrents_small_downloads_data1
|
||||
category:
|
||||
selector: .torrents_small_type_data1 img
|
||||
attribute: src
|
||||
case:
|
||||
"[src=\"./styles/tracker/imageset/cat_raw_small.png\"]": 1
|
||||
"[src=\"./styles/tracker/imageset/cat_anime_small.png\"]": 2
|
||||
"[src=\"./styles/tracker/imageset/cat_hentai_small.png\"]": 3
|
||||
"[src=\"./styles/tracker/imageset/cat_drama_small.png\"]": 4
|
||||
"[src=\"./styles/tracker/imageset/cat_dvd_small.png\"]": 5
|
||||
"[src=\"./styles/tracker/imageset/cat_hgame2_small.png\"]": 6
|
||||
"[src=\"./styles/tracker/imageset/cat_manga_small.png\"]": 7
|
||||
"[src=\"./styles/tracker/imageset/cat_music_small.png\"]": 8
|
||||
"[src=\"./styles/tracker/imageset/cat_musicvid_small.png\"]": 9
|
||||
"[src=\"./styles/tracker/imageset/cat_noneng_small.png\"]": 10
|
||||
"[src=\"./styles/tracker/imageset/cat_other_small.png\"]": 11
|
||||
downloadvolumefactor:
|
||||
text: 0
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
# engine n/a
|
87
config/prowlarr/Definitions/anisource.yml
Normal file
87
config/prowlarr/Definitions/anisource.yml
Normal file
|
@ -0,0 +1,87 @@
|
|||
---
|
||||
id: anisource
|
||||
name: AniSource
|
||||
description: "AniSource is a Public site for HD Anime raws."
|
||||
language: en-US
|
||||
type: public
|
||||
encoding: UTF-8
|
||||
requestDelay: 5
|
||||
links:
|
||||
- https://asnet.pw/
|
||||
|
||||
settings: []
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 1, cat: TV/Anime, desc: "Raw Animes"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: /
|
||||
- path: /
|
||||
inputs:
|
||||
tpage: 2
|
||||
inputs:
|
||||
search: "{{ .Keywords }}"
|
||||
|
||||
headers:
|
||||
# site blocks Jackett's User-Agents, so slightly alter it here (e.g. Chrome/87.0. > Chrome/97.0.)
|
||||
User-Agent: ["Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4280.88 Safari/537.36"]
|
||||
|
||||
rows:
|
||||
selector: div[class^="item"]
|
||||
|
||||
fields:
|
||||
category:
|
||||
text: 1
|
||||
title:
|
||||
selector: a[href*="/showprofile/"]
|
||||
filters:
|
||||
# move group to the end
|
||||
- name: re_replace
|
||||
args: ["^(\\[.+?\\]) (.+?)$", "$2 $1"]
|
||||
details:
|
||||
selector: a[href*="/showprofile/"]
|
||||
attribute: href
|
||||
infohash:
|
||||
selector: a[href*="/showprofile/"]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: regexp
|
||||
args: ([A-F|a-f|0-9]{40})
|
||||
date:
|
||||
selector: font[color="Black"]
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "Date: (.+?) Central"
|
||||
- name: replace
|
||||
args: [" at ", " "]
|
||||
- name: append
|
||||
args: " -09:00" # CUS
|
||||
- name: dateparse
|
||||
args: "yyyy-MM-dd HH:mm zzz"
|
||||
size:
|
||||
selector: font[color="Black"]
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "Size: (.+?) \\|"
|
||||
- name: replace
|
||||
args: ["b", "B"]
|
||||
files:
|
||||
selector: font[color="Black"]
|
||||
filters:
|
||||
- name: regexp
|
||||
args: (\d+)$
|
||||
seeders:
|
||||
text: 1
|
||||
leechers:
|
||||
text: 1
|
||||
downloadvolumefactor:
|
||||
text: 0
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
# engine n/a
|
170
config/prowlarr/Definitions/anthelion-api.yml
Normal file
170
config/prowlarr/Definitions/anthelion-api.yml
Normal file
|
@ -0,0 +1,170 @@
|
|||
---
|
||||
id: anthelion-api
|
||||
name: Anthelion (API)
|
||||
description: "Anthelion is a Private MOVIES tracker"
|
||||
language: en-US
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://anthelion.me/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 2000, cat: Movies}
|
||||
- {id: 2030, cat: Movies/SD}
|
||||
- {id: 2040, cat: Movies/HD}
|
||||
- {id: 2045, cat: Movies/UHD}
|
||||
- {id: 2050, cat: Movies/BluRay}
|
||||
- {id: 2080, cat: Movies/WEB-DL}
|
||||
- {id: 8000, cat: Other}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
movie-search: [q, imdbid, tmdbid]
|
||||
# note: the api any supports movie search so there is no tv season/episode support.
|
||||
# not using year search because torznab adds it to the q= which results in &q=keyword+2022&year=2022 sent to api !?!
|
||||
|
||||
settings:
|
||||
- name: apikey
|
||||
type: text
|
||||
label: APIKey
|
||||
- name: info_key
|
||||
type: info
|
||||
label: About your API key
|
||||
default: "Find or Generate a new API Key by accessing your <a href=\"https://anthelion.me/\" target=\"_blank\">Anthelion</a> account <i>Settings</i> page and scrolling down to the <b>API Key</b> section.<br>Tick the <b>Search</b> and <b>Download</b> checkboxes and click the <b>save profile</b> button to generate the key."
|
||||
- name: info_activity
|
||||
type: info
|
||||
label: Account Inactivity
|
||||
default: "Activity is defined as actually using your account, including the snatch/grab/seeding of torrents. You are also required to sign-in to the web frontend of Anthelion at least once per 3mo (90 days) (Note, using autodl/ARR does not satisfy this)."
|
||||
|
||||
login:
|
||||
path: api.php
|
||||
method: get
|
||||
inputs:
|
||||
api_key: "{{ .Config.apikey }}"
|
||||
error:
|
||||
- selector: ":root:contains(\"Unrecognized key\")"
|
||||
message:
|
||||
text: "The API key was not accepted by {{ .Config.sitelink }}."
|
||||
- selector: ":root:contains(\"No API_KEY provided\")"
|
||||
message:
|
||||
text: "You did not enter an API key."
|
||||
|
||||
search:
|
||||
paths:
|
||||
# docs: https://anthelion.me/forums.php?action=viewthread&threadid=1026
|
||||
- path: api.php
|
||||
response:
|
||||
type: json
|
||||
|
||||
inputs:
|
||||
api_key: "{{ .Config.apikey }}"
|
||||
o: json
|
||||
t: movie
|
||||
q: "{{ .Keywords }}"
|
||||
tmdb: "{{ .Query.TMDBID }}"
|
||||
imdb: "{{ .Query.IMDBIDShort }}"
|
||||
# category filtering is disabled since it seems to rely on the AND operator that prevents some releases to show on search.
|
||||
# cat: "{{ join .Categories \",\" }}"
|
||||
limit: 100
|
||||
offset: 0
|
||||
|
||||
rows:
|
||||
selector: item
|
||||
count:
|
||||
selector: response.total
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: category
|
||||
filters:
|
||||
- name: split
|
||||
args: [",", -1]
|
||||
year:
|
||||
selector: year
|
||||
optional: true
|
||||
_codec:
|
||||
selector: codec
|
||||
_container:
|
||||
selector: container
|
||||
_media:
|
||||
selector: media
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["WEB", "WEB-DL"]
|
||||
_resolution:
|
||||
selector: resolution
|
||||
_audioFormat:
|
||||
selector: audioFormat
|
||||
_subbing:
|
||||
selector: subbing
|
||||
optional: true
|
||||
_flags:
|
||||
selector: flags
|
||||
optional: true
|
||||
filters:
|
||||
- name: replace
|
||||
args: [",", " "]
|
||||
_language:
|
||||
selector: language
|
||||
optional: true
|
||||
_releaseGroup:
|
||||
selector: releaseGroup
|
||||
optional: true
|
||||
filters:
|
||||
- name: trim
|
||||
title_optional:
|
||||
selector: title
|
||||
filters:
|
||||
- name: htmldecode
|
||||
- name: append
|
||||
args: " {{ .Result.year }} {{ .Result._codec }} {{ .Result._container }} {{ .Result._media }} {{ .Result._resolution }} {{ .Result._audioFormat }}{{ if .Result._subbing }} Subs{{ else }}{{ end }}{{ if .Result._flags }} {{ .Result._flags }}{{ else }}{{ end }}{{ if .Result._language }} {{ .Result._language }}{{ else }}{{ end }}{{ if and (.Result._releaseGroup) (ne .Result._releaseGroup \"NULL\") }}-{{ .Result._releaseGroup }}{{ else }}{{ end }}"
|
||||
details:
|
||||
selector: guid
|
||||
download:
|
||||
selector: link
|
||||
filters:
|
||||
- name: htmldecode
|
||||
infohash:
|
||||
selector: infohash
|
||||
imdbid:
|
||||
selector: imdb
|
||||
tmdbid:
|
||||
selector: tmdb
|
||||
genre:
|
||||
selector: tags
|
||||
filters:
|
||||
- name: replace
|
||||
args: [".", "_"]
|
||||
description:
|
||||
text: "{{ .Result.genre }}"
|
||||
files:
|
||||
selector: fileCount
|
||||
seeders:
|
||||
selector: seeders
|
||||
leechers:
|
||||
selector: leechers
|
||||
grabs:
|
||||
selector: grabs
|
||||
date:
|
||||
# 2022-08-07T20:56:06+0200
|
||||
selector: pubDate
|
||||
size:
|
||||
selector: size
|
||||
downloadvolumefactor:
|
||||
text: 1
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
minimumratio:
|
||||
text: 1.0
|
||||
minimumseedtime:
|
||||
# 3 day (as seconds = 3 x 24 x 60 x 60)
|
||||
text: 259200
|
||||
_filename:
|
||||
selector: "files[0].name"
|
||||
filters:
|
||||
- name: htmldecode
|
||||
optional: true
|
||||
title:
|
||||
text: "{{ if and (eq .Result.files \"1\") (.Result._filename) }}{{ .Result._filename }}{{ else }}{{ .Result.title_optional }}{{ end }}"
|
||||
# json api
|
235
config/prowlarr/Definitions/arabafenice.yml
Normal file
235
config/prowlarr/Definitions/arabafenice.yml
Normal file
|
@ -0,0 +1,235 @@
|
|||
---
|
||||
id: arabafenice
|
||||
name: ArabaFenice
|
||||
description: "Araba Fenice (Phoenix) is an ITALIAN Private site for TV / MOVIES / GENERAL"
|
||||
language: it-IT
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://www.arabafenice.me/
|
||||
legacylinks:
|
||||
- http://www.arabafenice.me/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
# HRS
|
||||
- {id: 34, cat: Movies/HD, desc: "1080p HRS x264"}
|
||||
- {id: 47, cat: Movies/UHD, desc: "2160p 4K UHD HRS"}
|
||||
- {id: 35, cat: TV, desc: "Serie TV HRS"}
|
||||
- {id: 36, cat: Movies/SD, desc: "DVDRip HRS"}
|
||||
- {id: 41, cat: Movies/SD, desc: "BDRip 576p HRS"}
|
||||
- {id: 39, cat: Movies/HD, desc: "1080p HRS x265 HEVC"}
|
||||
# AREA SuperVip
|
||||
- {id: 33, cat: Movies/HD, desc: "[DD] Film 720p MP4"}
|
||||
- {id: 54, cat: Movies/HD, desc: "[DD] 1080p V.U. MKV"}
|
||||
- {id: 55, cat: Movies/BluRay, desc: "[DD] FULL BluRay"}
|
||||
- {id: 57, cat: Movies/UHD, desc: "[DD] 4K FULL BluRay"}
|
||||
- {id: 58, cat: XXX, desc: "[DD] XXX 1080p"}
|
||||
- {id: 59, cat: XXX, desc: "[DD] XXX 4K 2160p"}
|
||||
- {id: 60, cat: XXX, desc: "[DD] XXX 720p"}
|
||||
# VIDEO
|
||||
- {id: 1, cat: Movies, desc: "News Cinema"}
|
||||
- {id: 40, cat: TV/UHD, desc: "4K Video Untouched"}
|
||||
- {id: 2, cat: Movies/SD, desc: "BD-DVDRip"}
|
||||
- {id: 3, cat: Movies/DVD, desc: "DVD 5"}
|
||||
- {id: 50, cat: Movies/UHD, desc: "4K 2160p UHD"}
|
||||
- {id: 6, cat: Movies/BluRay, desc: "BluRay Full"}
|
||||
- {id: 4, cat: Movies/HD, desc: "1080p 3D x264"}
|
||||
- {id: 7, cat: Movies/HD, desc: "1080p x264"}
|
||||
- {id: 46, cat: Movies/HD, desc: "1080p VideoUntouched"}
|
||||
- {id: 44, cat: Movies/HD, desc: "1080p x265 HEVC"}
|
||||
- {id: 5, cat: Movies/DVD, desc: "DVD 9"}
|
||||
- {id: 9, cat: TV/Anime, desc: "Cartoons"}
|
||||
- {id: 8, cat: TV/Anime, desc: "720p x264"}
|
||||
- {id: 12, cat: TV, desc: "Stagioni Concluse"}
|
||||
- {id: 13, cat: TV, desc: "Stagioni in Onda"}
|
||||
- {id: 14, cat: TV, desc: "TV Show"}
|
||||
- {id: 42, cat: TV, desc: "Serie Tv Sub Ita"}
|
||||
- {id: 15, cat: TV/Documentary, desc: "Documentari"}
|
||||
- {id: 53, cat: TV/HD, desc: "VIDEO MP4 720p"}
|
||||
- {id: 38, cat: XXX, desc: "xXx"}
|
||||
- {id: 43, cat: Other, desc: "Araba per il sociale"}
|
||||
# MUSICA
|
||||
- {id: 17, cat: Audio, desc: "Musica Italiana"}
|
||||
- {id: 45, cat: Audio, desc: "Discografie"}
|
||||
- {id: 18, cat: Audio, desc: "MusicaInternazionale"}
|
||||
- {id: 19, cat: Audio, desc: "Compilation"}
|
||||
# PDF
|
||||
- {id: 21, cat: Books, desc: "Ebook"}
|
||||
- {id: 22, cat: Books/Comics, desc: "Comics"}
|
||||
- {id: 23, cat: Books, desc: "Newsstand"}
|
||||
- {id: 56, cat: Books/Mags, desc: "Riviste"}
|
||||
- {id: 48, cat: XXX/Other, desc: "Riviste xXx"}
|
||||
- {id: 49, cat: XXX/Other, desc: "Fumetti xXx"}
|
||||
# GAMES
|
||||
- {id: 25, cat: Console/PS4, desc: "Sony Games"}
|
||||
- {id: 26, cat: Console/XBox, desc: "XboX Games"}
|
||||
- {id: 27, cat: Console/Other, desc: "Nintendo Games"}
|
||||
- {id: 28, cat: PC/Games, desc: "PC Games"}
|
||||
# SOFTWARE
|
||||
- {id: 30, cat: PC/ISO, desc: "Windows APP"}
|
||||
- {id: 31, cat: PC/Mobile-iOS, desc: "Apple APP"}
|
||||
- {id: 32, cat: PC/Mobile-Android, desc: "Android APP"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep, imdbid]
|
||||
movie-search: [q, imdbid]
|
||||
music-search: [q]
|
||||
book-search: [q]
|
||||
|
||||
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
|
||||
- name: info
|
||||
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: index.php?page=login
|
||||
method: post
|
||||
inputs:
|
||||
uid: "{{ .Config.username }}"
|
||||
pwd: "{{ .Config.password }}"
|
||||
error:
|
||||
- selector: body[onLoad^="makeAlert('"]
|
||||
message:
|
||||
selector: body[onLoad^="makeAlert('"]
|
||||
attribute: onLoad
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["makeAlert('Error' , '", ""]
|
||||
- name: replace
|
||||
args: ["');", ""]
|
||||
test:
|
||||
path: index.php
|
||||
selector: a[href="logout.php"]
|
||||
|
||||
download:
|
||||
before:
|
||||
path: thanks.php
|
||||
method: post
|
||||
inputs:
|
||||
infohash: "{{ .DownloadUri.Query.id }}"
|
||||
thanks: 1
|
||||
rndval: "1487013827343"
|
||||
selectors:
|
||||
- selector: a[href^="download.php?id="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "^(.+?)&key="
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: index.php
|
||||
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"]
|
||||
inputs:
|
||||
search: "{{ if .Query.IMDBID }}{{ .Query.IMDBIDShort }}{{ else }}{{ .Keywords }}{{ end }}"
|
||||
page: torrents
|
||||
category: "{{ range .Categories }}{{.}};{{end}}"
|
||||
options: "{{ if .Query.IMDBID }}4{{ else }}0{{ end }}"
|
||||
active: 0
|
||||
order: "{{ .Config.sort }}"
|
||||
by: "{{ .Config.type }}"
|
||||
|
||||
rows:
|
||||
selector: table > tbody > tr > td > table.lista > tbody > tr:has(a[href^="index.php?page=torrent-details&id="])
|
||||
|
||||
fields:
|
||||
download:
|
||||
selector: a[href^="index.php?page=downloadcheck&id="]
|
||||
attribute: href
|
||||
title:
|
||||
selector: a[onmouseover][href^="index.php?page=torrent-details&id="]
|
||||
filters:
|
||||
- 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"]
|
||||
poster:
|
||||
selector: a[onmouseover][href^="index.php?page=torrent-details&id="]
|
||||
attribute: onmouseover
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "src=(.*?) "
|
||||
category:
|
||||
selector: a[href^="index.php?page=torrents&category="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: category
|
||||
details:
|
||||
selector: a[onmouseover][href^="index.php?page=torrent-details&id="]
|
||||
attribute: href
|
||||
size:
|
||||
selector: td:nth-last-child(4)
|
||||
date:
|
||||
selector: td:nth-last-child(9)
|
||||
filters:
|
||||
- name: append
|
||||
args: " +01:00" # CET
|
||||
- name: dateparse
|
||||
args: "dd/MM/yyyy zzz"
|
||||
grabs:
|
||||
selector: td:nth-last-child(6)
|
||||
seeders:
|
||||
selector: td:nth-last-child(8)
|
||||
leechers:
|
||||
selector: td:nth-last-child(7)
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
img[alt="Gold 100% Free"]: 0
|
||||
img[alt="Silver 50% Free"]: 0.5
|
||||
img[alt="Bronze 25% Free"]: 0.75
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
case:
|
||||
img[alt="2x Upload Multiplier"]: 2
|
||||
img[alt="3x Upload Multiplier"]: 3
|
||||
img[alt="4x Upload Multiplier"]: 4
|
||||
img[alt="5x Upload Multiplier"]: 5
|
||||
img[alt="6x Upload Multiplier"]: 6
|
||||
img[alt="7x Upload Multiplier"]: 7
|
||||
img[alt="8x Upload Multiplier"]: 8
|
||||
img[alt="9x Upload Multiplier"]: 9
|
||||
img[alt="10x Upload Multiplier"]: 10
|
||||
"*": 1
|
||||
# xbtitFM v1.16
|
179
config/prowlarr/Definitions/arabp2p.yml
Normal file
179
config/prowlarr/Definitions/arabp2p.yml
Normal file
|
@ -0,0 +1,179 @@
|
|||
---
|
||||
id: arabp2p
|
||||
name: ArabP2P
|
||||
description: "ArabP2P is an ARABIC Private Torrent Tracker for MOVIES / TV / GENERAL"
|
||||
language: ar-AE
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://www.arabp2p.net/
|
||||
legacylinks:
|
||||
- http://www.arabp2p.com/
|
||||
- https://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
|
||||
- name: info_activity
|
||||
type: info
|
||||
label: Account Inactivity
|
||||
default: "You must log in periodically. If the member is absent from the website for a period of 3 months, the account will be deleted without prior warning."
|
||||
|
||||
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: 117, cat: TV, desc: "رمضان 2024 (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: 74, cat: Movies/HD, desc: "جودة عالية HD"}
|
||||
- {id: 113, cat: TV/Foreign, desc: "مسلسلات لاتينية مترجم.مدبلج(Latin Series"}
|
||||
- {id: 59, cat: Movies/Foreign, desc: "افلام آسيوية (Asian Movies)"}
|
||||
- {id: 86, cat: Movies/Foreign, desc: "افلام هنديه (Indian Movies)"}
|
||||
- {id: 114, cat: Movies/Foreign, desc: "افلام لاتينية مترجم.مدبلج (Latin Movies)"}
|
||||
- {id: 115, cat: TV/Foreign, desc: "مسلسلات تركية مترجم.مدبلج (Turkish Series)"}
|
||||
- {id: 116, cat: Movies/Foreign, desc: "افلام تركية مترجم.مدبلج (Turkish 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
|
||||
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
|
||||
# auto adjusted by site account profile
|
||||
filters:
|
||||
- name: dateparse
|
||||
args: "yyyy-MM-dd HH:mm:ss"
|
||||
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
|
221
config/prowlarr/Definitions/arabtorrents.yml
Normal file
221
config/prowlarr/Definitions/arabtorrents.yml
Normal file
|
@ -0,0 +1,221 @@
|
|||
---
|
||||
id: arabtorrents
|
||||
name: ArabTorrents
|
||||
description: "ArabTorrents is an ARABIC Private Torrent Tracker for MOVIES / TV / GENERAL"
|
||||
language: ar-AE
|
||||
type: private
|
||||
encoding: windows-1256
|
||||
requestDelay: 2
|
||||
links:
|
||||
- https://arab-torrents.net/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
# Movies
|
||||
- {id: 36, cat: Movies, desc: "Movies/Dubbed"}
|
||||
- {id: 134, cat: Movies, desc: "HD Section"}
|
||||
- {id: 135, cat: Movies/HD, desc: "Movies/HD Section"}
|
||||
- {id: 204, cat: Movies/HD, desc: "R5/HD Section"}
|
||||
- {id: 119, cat: Movies/SD, desc: "Movies/SD TV"}
|
||||
- {id: 205, cat: Movies/Foreign, desc: "Foreign"}
|
||||
- {id: 208, cat: Movies/Foreign, desc: "Stranger/Foreign"}
|
||||
- {id: 209, cat: Movies/Foreign, desc: "Turkish/Foreign"}
|
||||
- {id: 207, cat: Movies/Foreign, desc: "Indian/Foreign"}
|
||||
- {id: 191, cat: Movies, desc: "Movies/Golden-VIP"}
|
||||
- {id: 190, cat: Movies, desc: "Movies/Super VIP"}
|
||||
- {id: 212, cat: Movies, desc: "Movies/VIP"}
|
||||
- {id: 181, cat: Movies, desc: "Classic Movies/WEB-DL"}
|
||||
- {id: 167, cat: Movies, desc: "Movies/WEB-DL"}
|
||||
# Shows
|
||||
- {id: 186, cat: TV, desc: "Dubbed"}
|
||||
- {id: 166, cat: TV/WEB-DL, desc: "WEB-DL"}
|
||||
- {id: 168, cat: TV/WEB-DL, desc: "Series/WEB-DL"}
|
||||
- {id: 171, cat: TV/WEB-DL, desc: "TV Shows/WEB-DL"}
|
||||
- {id: 180, cat: TV/WEB-DL, desc: "Classic Series/WEB-DL"}
|
||||
- {id: 169, cat: TV/WEB-DL, desc: "Full-Pack/WEB-DL"}
|
||||
- {id: 210, cat: Other, desc: "VIP"}
|
||||
- {id: 211, cat: TV, desc: "TV Shows/VIP"}
|
||||
- {id: 213, cat: TV, desc: "Full-Pack/VIP"}
|
||||
- {id: 94, cat: TV, desc: "Super VIP"}
|
||||
- {id: 189, cat: TV, desc: "TV Shows/Super VIP"}
|
||||
- {id: 201, cat: TV, desc: "Full-Pack/Super VIP"}
|
||||
- {id: 197, cat: TV, desc: "TV Shows/Ramadan 2022"}
|
||||
- {id: 148, cat: TV/Other, desc: "Series/OSN"}
|
||||
- {id: 149, cat: TV/Other, desc: "TV Show/OSN"}
|
||||
- {id: 165, cat: TV, desc: "Golden-VIP"}
|
||||
- {id: 185, cat: TV, desc: "Series/Golden-VIP"}
|
||||
- {id: 200, cat: TV, desc: "Full-Pack/Golden-VIP"}
|
||||
- {id: 26, cat: TV/SD, desc: "SD TV"}
|
||||
- {id: 78, cat: TV/SD, desc: "Series/SD TV"}
|
||||
- {id: 124, cat: TV/SD, desc: "FullPack/SD TV"}
|
||||
- {id: 136, cat: TV/HD, desc: "Series/HD Section"}
|
||||
- {id: 137, cat: TV/HD, desc: "TV Shows/HD Section"}
|
||||
- {id: 182, cat: TV/HD, desc: "Full Pack/HD Section"}
|
||||
- {id: 187, cat: TV/Foreign, desc: "TV Shows/Dubbed"}
|
||||
- {id: 188, cat: TV/Foreign, desc: "Full-Pack/Dubbed"}
|
||||
# Anime
|
||||
- {id: 33, cat: TV/Anime, desc: "Anime"}
|
||||
- {id: 51, cat: TV/Anime, desc: "Series/Anime"}
|
||||
- {id: 129, cat: Movies/BluRay, desc: "Blu-Ray/Anime"}
|
||||
- {id: 125, cat: TV, desc: "Full-Pack/Anime"}
|
||||
- {id: 50, cat: Movies, desc: "Movies/Anime"}
|
||||
# Islamic
|
||||
- {id: 67, cat: Other, desc: "Islamic"}
|
||||
- {id: 126, cat: TV, desc: "Full-Packs/Islamic"}
|
||||
- {id: 91, cat: Audio/MP3, desc: "MP3/Islamic"}
|
||||
- {id: 92, cat: Other, desc: "Video/Islamic"}
|
||||
# Music
|
||||
- {id: 16, cat: Audio, desc: "Music"}
|
||||
- {id: 177, cat: Audio, desc: "Flac/Music"}
|
||||
- {id: 127, cat: Audio, desc: "Full-Packs/Music"}
|
||||
- {id: 17, cat: Audio/MP3, desc: "MP3/Music"}
|
||||
- {id: 19, cat: Audio/Video, desc: "Videos/Music"}
|
||||
# OSN
|
||||
- {id: 146, cat: TV/Other, desc: "OSN"}
|
||||
- {id: 147, cat: TV/Other, desc: "Arabic/OSN"}
|
||||
- {id: 153, cat: TV/Other, desc: "English/OSN"}
|
||||
- {id: 179, cat: TV/Other, desc: "Old/OSN"}
|
||||
# Ramadan 2022
|
||||
- {id: 192, cat: Other, desc: "Ramadan 2022"}
|
||||
- {id: 198, cat: Other, desc: "Full Pack/Ramadan 2022"}
|
||||
- {id: 193, cat: Other, desc: "Ramadan HD/Ramadan 2022"}
|
||||
- {id: 195, cat: Other, desc: "Ramadan Khaliji/Ramadan 2022"}
|
||||
- {id: 194, cat: Other, desc: "Ramadan SD/Ramadan 2022"}
|
||||
- {id: 196, cat: Other, desc: "Ramadan Web/Ramadan 2022"}
|
||||
# Sports
|
||||
- {id: 120, cat: TV/Sport, desc: "Sports"}
|
||||
- {id: 159, cat: TV/Sport, desc: "Full Matches/Sports"}
|
||||
- {id: 155, cat: TV/Sport, desc: "Goals/Sports"}
|
||||
# Rest
|
||||
- {id: 102, cat: TV/Other, desc: "Other/SD TV"}
|
||||
- {id: 202, cat: Other, desc: "AT"}
|
||||
- {id: 203, cat: Other, desc: "AT/AT"}
|
||||
- {id: 34, cat: Other, desc: "Misc"}
|
||||
- {id: 132, cat: PC/Mobile-Android, desc: "Android/Misc"}
|
||||
- {id: 163, cat: TV/Documentary, desc: "Documentary/Misc"}
|
||||
- {id: 122, cat: Other, desc: "Other/Misc"}
|
||||
- {id: 121, cat: Other, desc: "Theater/Misc"}
|
||||
- {id: 214, cat: Other, desc: "Other/VIP"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
music-search: [q]
|
||||
book-search: [q]
|
||||
|
||||
settings:
|
||||
- name: username
|
||||
type: text
|
||||
label: Username
|
||||
- name: password
|
||||
type: password
|
||||
label: Password
|
||||
- name: sort
|
||||
type: select
|
||||
label: Sort requested from site
|
||||
default: added
|
||||
options:
|
||||
added: 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: takelogin.php
|
||||
method: post
|
||||
inputs:
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
error:
|
||||
- selector: table:has(td.thead:contains("حدث خطأ"))
|
||||
test:
|
||||
path: index.php
|
||||
selector: a[href*="logout.php"]
|
||||
|
||||
download:
|
||||
before:
|
||||
path: takethanks.php
|
||||
method: post
|
||||
inputs:
|
||||
torrentid: "{{ re_replace .DownloadUri.PathAndQuery \".*download-torrent-(\\d+).*\" \"$1\"}}"
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: browse.php
|
||||
|
||||
inputs:
|
||||
do: search
|
||||
keywords: "{{ .Keywords }}"
|
||||
# t_name, t_description, t_both, t_uploader, t_genre
|
||||
search_type: t_both
|
||||
# does not support multi category searching so defaulting to all.
|
||||
category: 0
|
||||
include_dead_torrents: yes
|
||||
sort: "{{ .Config.sort }}"
|
||||
order: "{{ .Config.type }}"
|
||||
|
||||
keywordsfilters:
|
||||
- name: re_replace
|
||||
args: ["\\W+", "*"]
|
||||
- name: re_replace
|
||||
args: ["^(.+)$", "*$1*"]
|
||||
|
||||
rows:
|
||||
selector: table#sortabletable > tbody > tr:has(span > a[href*="details.php?id="])
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: td a[href*="/torrent-category-"]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "torrent-category-(\\d+)\/"
|
||||
title:
|
||||
selector: td div.tooltip-target
|
||||
details:
|
||||
selector: span a[href*="/details.php?id="]
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href*="/download-torrent-"]
|
||||
attribute: href
|
||||
date:
|
||||
selector: td:nth-child(2) > div:nth-child(3)
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "(\\d{2}-\\d{2}-\\d{4} \\d{2}:\\d{2})"
|
||||
- name: dateparse
|
||||
args: "dd-MM-yyyy HH:mm"
|
||||
size:
|
||||
selector: td:nth-child(5)
|
||||
grabs:
|
||||
selector: td:nth-child(6)
|
||||
seeders:
|
||||
selector: td:nth-child(7)
|
||||
leechers:
|
||||
selector: td:nth-child(8)
|
||||
poster:
|
||||
selector: div.tooltip-content > img[src*="/torrents/"]
|
||||
attribute: src
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
img[src$="torrent_flags/freedownload.gif"]: 0
|
||||
img[src$="torrent_flags/silverdownload.gif"]: 0.5
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
case:
|
||||
img[src$="torrent_flags/x2.gif"]: 2
|
||||
"*": 1
|
||||
minimumratio:
|
||||
text: 1.05
|
||||
minimumseedtime:
|
||||
# 3 days (as seconds = 3 x 24 x 60 x 60)
|
||||
text: 259200
|
||||
# TS Special Edition v.7.4
|
200
config/prowlarr/Definitions/arenabg.yml
Normal file
200
config/prowlarr/Definitions/arenabg.yml
Normal file
|
@ -0,0 +1,200 @@
|
|||
---
|
||||
id: arenabg
|
||||
name: ArenaBG
|
||||
description: "ArenaBG is a BULGARIAN Semi-Private Torrent Tracker for 0DAY / GENERAL"
|
||||
language: bg-BG
|
||||
type: semi-private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://arenabg.com/
|
||||
legacylinks:
|
||||
- https://arenabg.ch/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 1, cat: Movies, desc: "Movies"}
|
||||
- {id: 8, cat: Movies, desc: "Movies / ArenaBG.TV"}
|
||||
- {id: 9, cat: Movies/SD, desc: "Movies / XviD"}
|
||||
- {id: 10, cat: Movies/DVD, desc: "Movies / DVD-R"}
|
||||
- {id: 11, cat: Movies/HD, desc: "Movies / x264"}
|
||||
- {id: 12, cat: TV/Anime, desc: "Movies / Anime & Manga"}
|
||||
- {id: 13, cat: TV/Documentary, desc: "Movies / Documentaries"}
|
||||
- {id: 14, cat: Movies/BluRay, desc: "Movies / Blu-ray"}
|
||||
- {id: 15, cat: Movies, desc: "Movies / Weekend"}
|
||||
- {id: 16, cat: Movies, desc: "Movies / Boxset"}
|
||||
- {id: 17, cat: Movies/HD, desc: "Movies / x264 Boxset"}
|
||||
- {id: 18, cat: Movies/HD, desc: "Movies / HDTV"}
|
||||
- {id: 19, cat: Movies/3D, desc: "Movies / 3D"}
|
||||
- {id: 20, cat: Movies/HD, desc: "Movies / Movies HD"}
|
||||
- {id: 21, cat: Movies/HD, desc: "Movies / x265"}
|
||||
- {id: 22, cat: Movies/UHD, desc: "Movies / 4K"}
|
||||
- {id: 59, cat: Movies/HD, desc: "Movies / AV1"}
|
||||
- {id: 2, cat: TV, desc: "Series"}
|
||||
- {id: 23, cat: TV/HD, desc: "Series / TV Episodes HD"}
|
||||
- {id: 24, cat: TV, desc: "Series / TV Episodes"}
|
||||
- {id: 25, cat: TV, desc: "Series / TV Boxset"}
|
||||
- {id: 26, cat: TV/HD, desc: "Series / TV Boxset HD"}
|
||||
- {id: 3, cat: Audio, desc: "Music"}
|
||||
- {id: 27, cat: Audio/MP3, desc: "Music / MP3"}
|
||||
- {id: 28, cat: Audio/Video, desc: "Music / Video"}
|
||||
- {id: 29, cat: Audio/Lossless, desc: "Music / FLAC"}
|
||||
- {id: 30, cat: Audio, desc: "Music / DVD"}
|
||||
- {id: 31, cat: Audio/Lossless, desc: "Music / APE"}
|
||||
- {id: 32, cat: Audio, desc: "Music / DTS"}
|
||||
- {id: 33, cat: Audio, desc: "Music / WavePack"}
|
||||
- {id: 34, cat: Audio, desc: "Music / OST"}
|
||||
- {id: 4, cat: PC/Games, desc: "Games"}
|
||||
- {id: 35, cat: PC/Games, desc: "Games / PC ISO"}
|
||||
- {id: 36, cat: PC, desc: "Games / PC RIP"}
|
||||
- {id: 37, cat: Console, desc: "Games / PS2"}
|
||||
- {id: 38, cat: Console/PSP, desc: "Games / PSP"}
|
||||
- {id: 39, cat: Console/XBox, desc: "Games / XBOX"}
|
||||
- {id: 40, cat: Console/XBox 360, desc: "Games / XBOX-360"}
|
||||
- {id: 41, cat: Console/PS3, desc: "Games / PS3"}
|
||||
- {id: 42, cat: Console/Wii, desc: "Games / WII"}
|
||||
- {id: 43, cat: Console/NDS, desc: "Games / NDS"}
|
||||
- {id: 44, cat: Console/PS4, desc: "Games / PS4"}
|
||||
- {id: 5, cat: PC, desc: "Software"}
|
||||
- {id: 45, cat: PC/ISO, desc: "Software / PC ISO"}
|
||||
- {id: 46, cat: PC/Mobile-Other, desc: "Software / Smartphone"}
|
||||
- {id: 47, cat: PC, desc: "Software / Tutorial"}
|
||||
- {id: 48, cat: PC/Mac, desc: "Software / MAC"}
|
||||
- {id: 49, cat: PC/Mobile-Android, desc: "Software / Android"}
|
||||
- {id: 50, cat: PC/Mobile-iOS, desc: "Software / iOS"}
|
||||
- {id: 51, cat: PC/Mobile-Other, desc: "Software / WM7"}
|
||||
- {id: 6, cat: XXX, desc: "XXX"}
|
||||
- {id: 52, cat: XXX, desc: "XXX / Porn"}
|
||||
- {id: 53, cat: XXX, desc: "XXX / XXX HD"}
|
||||
- {id: 7, cat: Other, desc: "Misc"}
|
||||
- {id: 54, cat: Other/Misc, desc: "Misc / Other"}
|
||||
- {id: 55, cat: Books/EBook, desc: "Misc / e-Books"}
|
||||
- {id: 56, cat: Other, desc: "Misc / Banned"}
|
||||
- {id: 57, cat: TV/Sport, desc: "Misc / Sports"}
|
||||
- {id: 58, cat: PC/0day, desc: "Misc / 0-Day"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
music-search: [q]
|
||||
book-search: [q]
|
||||
|
||||
settings:
|
||||
- name: username
|
||||
type: text
|
||||
label: Username
|
||||
- name: password
|
||||
type: password
|
||||
label: Password
|
||||
- name: downloadlink
|
||||
type: select
|
||||
label: Download link
|
||||
default: "magnet:?xt="
|
||||
options:
|
||||
"/en/torrents/download/?key=": ".torrent"
|
||||
"magnet:?xt=": "magnet"
|
||||
- name: downloadlink2
|
||||
type: select
|
||||
label: Download link (fallback)
|
||||
default: "/en/torrents/download/?key="
|
||||
options:
|
||||
"/en/torrents/download/?key=": ".torrent"
|
||||
"magnet:?xt=": "magnet"
|
||||
- name: info_download
|
||||
type: info
|
||||
label: About the Download links
|
||||
default: You can optionally set as a fallback an automatic alternate link, so if the .torrent download link fails your download will still be successful.
|
||||
|
||||
login:
|
||||
path: en/users/signin/
|
||||
method: form
|
||||
form: form[action="/en/users/signin/"]
|
||||
inputs:
|
||||
username_or_email: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
captcha:
|
||||
type: image
|
||||
selector: img[src="/captcha.php"]
|
||||
input: captcha
|
||||
error:
|
||||
- selector: div.row div#container div.alert
|
||||
test:
|
||||
path: en/
|
||||
selector: a[href="/en/users/logout/"]
|
||||
|
||||
download:
|
||||
selectors:
|
||||
- selector: a[href^="{{ .Config.downloadlink }}"]
|
||||
attribute: href
|
||||
- selector: a[href^="{{ .Config.downloadlink2 }}"]
|
||||
attribute: href
|
||||
|
||||
search:
|
||||
paths:
|
||||
# https://arenabg.com/en/torrents/?text=ice+s01e01
|
||||
- path: en/torrents/
|
||||
inputs:
|
||||
text: "{{ .Keywords }}"
|
||||
subtitles: ""
|
||||
audio: ""
|
||||
# does not support multi-cats so defaulting to all
|
||||
category: ""
|
||||
|
||||
rows:
|
||||
selector: tr:has(a[href^="/en/torrents/?category="])
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: td.category a[href^="/en/torrents/?category="]:last-of-type
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: category
|
||||
_english:
|
||||
selector: span[title="English"]
|
||||
attribute: title
|
||||
optional: true
|
||||
_bulgarian:
|
||||
selector: span[title="Bulgarian"]
|
||||
attribute: title
|
||||
optional: true
|
||||
title:
|
||||
selector: td.filename a.title
|
||||
filters:
|
||||
- name: append
|
||||
args: "{{ if .Result._bulgarian }} {{ .Result._bulgarian }}{{ else }}{{ end }}{{ if .Result._english }} {{ .Result._english }}{{ else }}{{ end }}"
|
||||
details:
|
||||
selector: td.filename a.title
|
||||
attribute: href
|
||||
download:
|
||||
selector: td.filename a.title
|
||||
attribute: href
|
||||
poster:
|
||||
selector: td.filename a.title
|
||||
attribute: onmouseover
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "\"(.+?)\""
|
||||
- name: replace
|
||||
args: ["\\", ""]
|
||||
date:
|
||||
# 2 January 2021, Saturday @ 20:46
|
||||
selector: small
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "(.+?, .+? @ [0-9]{2}:[0-9]{2})"
|
||||
- name: append
|
||||
args: " +02:00" # EET
|
||||
- name: dateparse
|
||||
args: "d MMMM yyyy, dddd @ HH:mm zzz"
|
||||
size:
|
||||
selector: td:nth-child(3)
|
||||
seeders:
|
||||
selector: td:nth-child(4)
|
||||
leechers:
|
||||
selector: td:nth-child(5)
|
||||
downloadvolumefactor:
|
||||
text: 0
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
# engine n/a
|
191
config/prowlarr/Definitions/asiancinema.yml
Normal file
191
config/prowlarr/Definitions/asiancinema.yml
Normal file
|
@ -0,0 +1,191 @@
|
|||
---
|
||||
id: asiancinema
|
||||
name: AsianCinema
|
||||
description: "Tracker Movies/TV/Music"
|
||||
language: en-US
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://asiancinema.me/
|
||||
|
||||
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, tmdbid]
|
||||
movie-search: [q, imdbid, tmdbid]
|
||||
music-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: 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
|
||||
- name: info_activity
|
||||
type: info
|
||||
label: Account Inactivity
|
||||
default: "Your account will be automatically deleted from the database after 90 days of inactivity. If you return or visit the site with your account before that amount of time passes, then the inactivity timer will reset and your account will be fine for another 90 days.<br>Keep in mind that 'activity' is considered a visit to any page and that torrent traffic is not counted as account activity. In order to reset the inactivity timer all you have to do is visit a single page while logged in with your account. If your account is deleted for inactivity, please do not ask the site staff to un-delete it for you. The deletion is performed automatically by the server and, as such, your account cannot be recovered after it has been deleted."
|
||||
|
||||
login:
|
||||
path: login
|
||||
method: form
|
||||
form: form[action$="/login"]
|
||||
inputs:
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
remember: on
|
||||
selectorinputs:
|
||||
_token:
|
||||
selector: input[name="_token"]
|
||||
attribute: value
|
||||
error:
|
||||
- selector: div#ERROR_COPY
|
||||
# test:
|
||||
# path: /
|
||||
# selector: a[href$="/logout"]
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: torrents/filter
|
||||
inputs:
|
||||
$raw: "{{ range .Categories }}categories[]={{.}}&{{end}}"
|
||||
search: "{{ if .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}" # for dashboard imdbid search
|
||||
imdb: "{{ .Query.IMDBIDShort }}"
|
||||
tvdb: "{{ .Query.TVDBID }}"
|
||||
tmdb: "{{ .Query.TMDBID }}"
|
||||
sorting: "{{ .Config.sort }}"
|
||||
direction: "{{ .Config.type }}"
|
||||
qty: 100
|
||||
freeleech: "{{ if .Config.freeleech }}1{{ else }}{{ end }}"
|
||||
# can support genre search but you need to know the id. &genre[]=10759 for Action & Adventure
|
||||
# does not have genre in results, they are on the details page.
|
||||
|
||||
rows:
|
||||
selector: table > tbody > tr
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: a[href*="/categories/"]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "/categories/(\\d+)"
|
||||
title:
|
||||
selector: a.view-torrent
|
||||
download:
|
||||
selector: a[href*="/download/"]
|
||||
attribute: href
|
||||
details:
|
||||
selector: a.view-torrent
|
||||
attribute: href
|
||||
poster:
|
||||
selector: div.torrent-poster img
|
||||
attribute: src
|
||||
filters:
|
||||
- name: prepend
|
||||
args: "https://images.weserv.nl/?url=" # for display on dashboard
|
||||
- name: append
|
||||
args: "&w=180&h=270" # for display on dashboard
|
||||
- name: replace
|
||||
args: ["https://images.weserv.nl/?url=https://via.placeholder.com/600x900&w=180&h=270", ""]
|
||||
size:
|
||||
selector: td:nth-last-child(4)
|
||||
seeders:
|
||||
selector: td:nth-last-child(3)
|
||||
leechers:
|
||||
selector: td:nth-last-child(2)
|
||||
grabs:
|
||||
selector: td:nth-last-child(1)
|
||||
imdbid:
|
||||
selector: a[href*="imdb.com/title/tt"]
|
||||
attribute: href
|
||||
tmdbid:
|
||||
selector: a[href*="themoviedb.org/movie/"], a[href*="themoviedb.org/tv/"]
|
||||
attribute: href
|
||||
date:
|
||||
selector: time
|
||||
filters:
|
||||
# translations for Turkish|Estonian|Danish|Italian|Polish|Norwegian|Portuguese|Czech|Russian|Romanian|Spanish|French|German|Bulgarian|Dutch|Chinese|Japanese|Swedish
|
||||
- name: re_replace
|
||||
args: ["(?i)(önce|tagasi|geleden|fa|temu|siden|há|atrás|nazpět|назад|acum|în urmă|hace|il y a|vor|преди|前|sedan)", " ago"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(saniye|sekundit|sekunder|secondi|sekund|segundos|sekundami|секунд|secunde|secondes|Sekunden|секунди|seconden|秒前)", "seconds"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(minutit|minutter|minuti|minuty|minutos|минуты|минут|Minuten|минути|minuten|minuter)", "minutes"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(dakika|minut|minuto|minuta|minutt|минута|Minute|minuut|分钟|分)", " minute"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(tundi|timer|ore|godziny|horas|hodiny|hoden|часа|часов|ore|heures|Stunden|timmar)", "hours"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(saat|tund|time|ora|godzina|hora|hodina|час|oră|heure|Stunde|uur|小时|時間|timme)", " hour"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(päeva|dage|giorni|dni|dias|dny|дня|дней|zile|días|jours|Tagen|дни|dagen|dagar)", "days"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(gün|päev|dag|giorno|dzień|dia|den|день|zi|día|jour|Tag|ден|天|日)", " day"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(nädalat|uger|settimane|tygodnie|uker|semanas|týdny|недели|недель|săptămâni|semaines|Wochen|седмици|weken|veckor)", "weeks"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(hafta|nädal|uge|settimana|tydzień|uke|semana|týden|неделю|săptămână|semaine|Woche|седмица|周|週間|vecka)", " week"]
|
||||
- name: re_replace
|
||||
args: ["(?i) (ay)", "month"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(kuud|måneder|mesi|miesiące|meses|měsíce|месяца|месяцев|luni|meses|mois|Monaten|месеца|maanden|månader)", "months"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(kuu|måned|mese|miesiąc|mês|měsíc|месяц|lună|mes|Monat|месец|maand|个月|ヶ月|månad)", " month"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(aastat|anni|lata|anos|roky|года|ani|años|ans|Jahren|години)", " years"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(yil|aasta|år|anno|rok|ano|год|año|Jahr|година|jaar|年)", " year"]
|
||||
- name: re_replace
|
||||
args: ["(?i) (an)", "year"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(För |und)", ""] # Misc removals
|
||||
- name: timeago
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
i[class*="fa-id-badge text-orange"]: 0 # 24 Hour FreeLeech From BON Store
|
||||
i[class*="fa-trophy text-purple"]: 0 # Special FreeLeech For Certain User Groups
|
||||
i[class*="fa-star text-bold"]: 0 # Freeleech From Token
|
||||
i[class*="fa-coins text-bold"]: 0 # Freeleech From Token
|
||||
i[class*="fa-globe text-blue"]: 0 # Global Freeleech
|
||||
i[class*="fa-star text-gold"]: 0 # Freeleech
|
||||
i[class*="fa-certificate text-pink"]: 0 # Featured Torrent
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
case:
|
||||
i[class*="fa-gem text-green"]: 2 # Single Torrent Double Upload
|
||||
i[class*="fa-globe text-green"]: 2 # Global Double Upload
|
||||
i[class*="fa-certificate text-pink"]: 2 # Featured Torrent
|
||||
"*": 1
|
||||
minimumratio:
|
||||
text: 0.4
|
||||
minimumseedtime:
|
||||
# 7 days (as seconds = 7 x 24 x 60 x 60)
|
||||
text: 604800
|
||||
# UNIT3D 3.0.0
|
162
config/prowlarr/Definitions/asiandvdclub.yml
Normal file
162
config/prowlarr/Definitions/asiandvdclub.yml
Normal file
|
@ -0,0 +1,162 @@
|
|||
---
|
||||
id: asiandvdclub
|
||||
name: AsianDVDClub
|
||||
description: "AsianDVDClub (ADC) is a Private Torrent Tracker for Asian DVD and BluRay"
|
||||
language: en-US
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://asiandvdclub.org/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 1, cat: TV/Anime, desc: "Anime"}
|
||||
- {id: 3, cat: Movies, desc: "Japan"}
|
||||
- {id: 5, cat: Movies, desc: "China"}
|
||||
- {id: 4, cat: Movies, desc: "Korea"}
|
||||
- {id: 2, cat: Movies, desc: "Hong Kong"}
|
||||
- {id: 6, cat: Movies, desc: "Philippines"}
|
||||
- {id: 7, cat: Movies, desc: "Taiwan"}
|
||||
- {id: 8, cat: Movies, desc: "Thailand"}
|
||||
- {id: 9, cat: Movies, desc: "Vietnam"}
|
||||
- {id: 10, cat: Movies, desc: "Malaysia"}
|
||||
- {id: 11, cat: Movies, desc: "Other Asian"}
|
||||
- {id: 12, cat: Other, desc: "Miscellaneous"}
|
||||
- {id: 15, cat: TV, desc: "TV Series"}
|
||||
- {id: 16, cat: Audio, desc: "Music/OST"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
music-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: sort
|
||||
type: select
|
||||
label: Sort requested from site
|
||||
default: added
|
||||
options:
|
||||
added: created
|
||||
up: seeders
|
||||
size: size
|
||||
title: title
|
||||
- name: type
|
||||
type: select
|
||||
label: Order requested from site
|
||||
default: desc
|
||||
options:
|
||||
desc: desc
|
||||
asc: asc
|
||||
- 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.
|
||||
- name: info_activity
|
||||
type: info
|
||||
label: Account Inactivity
|
||||
default: "No special action required for red ribbons and permanent sponsors and above regardless of time, for others after 1 year of zero activity on tracker and/or website account will be closed."
|
||||
|
||||
login:
|
||||
path: login
|
||||
method: post
|
||||
inputs:
|
||||
apple: evil
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
error:
|
||||
- selector: b:contains("Try again")
|
||||
test:
|
||||
path: index.php
|
||||
selector: a[href="/logout"]
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: torrents/
|
||||
inputs:
|
||||
$raw: "{{ range .Categories }}countries[]={{.}}&{{end}}"
|
||||
searchbox: "{{ .Keywords }}"
|
||||
search: Search
|
||||
golden: "{{ if .Config.freeleech }}1{{ else }}{{ end }}"
|
||||
column: "{{ .Config.sort }}"
|
||||
order: "{{ .Config.type }}"
|
||||
|
||||
rows:
|
||||
selector: table.torrenttable_helper > tbody > tr:has(img)
|
||||
|
||||
fields:
|
||||
category_optional:
|
||||
selector: img[class^="cat-"]
|
||||
attribute: class
|
||||
optional: true
|
||||
case:
|
||||
img.cat-anime: 1
|
||||
img.cat-hk: 2
|
||||
img.cat-japan: 3
|
||||
img.cat-korea: 4
|
||||
img.cat-china: 5
|
||||
img.cat-phil: 6
|
||||
img.cat-taiwan: 7
|
||||
img.cat-thai: 8
|
||||
img.cat-viet: 9
|
||||
img.cat-malaysia: 10
|
||||
img.cat-rest: 11
|
||||
img.cat-india: 11
|
||||
img.cat-misc: 12
|
||||
img.cat-pinku: 12
|
||||
img.cat-drama: 15
|
||||
img.cat-ost: 16
|
||||
category:
|
||||
text: "{{ if .Result.category_optional }}{{ .Result.category_optional }}{{ else }}12{{ end }}"
|
||||
title:
|
||||
selector: span[id]
|
||||
details:
|
||||
selector: a[href^="/torrent/"]
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href^="/torrent/"]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["torrent", "download"]
|
||||
poster:
|
||||
selector: span[id]
|
||||
attribute: data-ot
|
||||
filters:
|
||||
- name: regexp
|
||||
args: src='(.+?)'
|
||||
size:
|
||||
selector: td:nth-child(6)
|
||||
seeders:
|
||||
selector: td:nth-child(7)
|
||||
leechers:
|
||||
selector: td:nth-child(8)
|
||||
date:
|
||||
selector: td:nth-child(9) span.small
|
||||
filters:
|
||||
- name: timeago
|
||||
grabs:
|
||||
selector: td:nth-child(10)
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
img[src$="images/golden.gif"]: 0
|
||||
img[src$="images/silver.gif"]: 0.5
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
minimumratio:
|
||||
text: 1.5
|
||||
minimumseedtime:
|
||||
# 45 days (as seconds = 45 x 24 x 60 x 60)
|
||||
text: 3888000
|
||||
# Engine n/a
|
168
config/prowlarr/Definitions/at12project.yml
Normal file
168
config/prowlarr/Definitions/at12project.yml
Normal file
|
@ -0,0 +1,168 @@
|
|||
---
|
||||
id: at12project
|
||||
name: AT-12 Project
|
||||
description: "AT-12 Project is a Private Torrent Tracker for JAPANESE MOVIES / TV"
|
||||
language: en-US
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://at-12project.cc/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 7, cat: Movies, desc: "MOVIE"}
|
||||
- {id: 8, cat: TV, desc: "TV"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep, imdbid, tvdbid, tmdbid]
|
||||
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://at-12project.cc/\" target=\"_blank\">AT-12 Project</a> account <i>My Settings</i> page and clicking on the <b>API Key</b> tab."
|
||||
- name: freeleech
|
||||
type: checkbox
|
||||
label: Search freeleech only
|
||||
default: false
|
||||
- name: single_file_release_use_filename
|
||||
type: checkbox
|
||||
label: Use filename as title for single file releases
|
||||
default: true
|
||||
- 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: {} # TODO: remove in v10
|
||||
error:
|
||||
- selector: a[href*="/login"]
|
||||
message:
|
||||
text: "The API key was not accepted by {{ .Config.sitelink }}."
|
||||
|
||||
search:
|
||||
paths:
|
||||
# https://github.com/HDInnovations/UNIT3D-Community-Edition/wiki/Torrent-API-(UNIT3D-v8.x.x)
|
||||
# https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php#L476
|
||||
- path: "/api/torrents/filter"
|
||||
response:
|
||||
type: json
|
||||
|
||||
headers:
|
||||
Authorization: ["Bearer {{ .Config.apikey }}"]
|
||||
|
||||
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
|
||||
$raw: "{{ range .Categories }}&categories[]={{.}}{{end}}"
|
||||
name: "{{ .Keywords }}"
|
||||
seasonNumber: "{{ .Query.Season }}"
|
||||
episodeNumber: "{{ .Query.Ep }}"
|
||||
imdbId: "{{ .Query.IMDBIDShort }}"
|
||||
tmdbId: "{{ .Query.TMDBID }}"
|
||||
tvdbId: "{{ .Query.TVDBID }}"
|
||||
"free[]": "{{ if .Config.freeleech }}100{{ else }}{{ end }}"
|
||||
sortField: "{{ .Config.sort }}"
|
||||
sortDirection: "{{ .Config.type }}"
|
||||
perPage: 100
|
||||
|
||||
keywordsfilters:
|
||||
- name: re_replace
|
||||
args: ["\\.", " "]
|
||||
|
||||
rows:
|
||||
selector: data
|
||||
attribute: attributes
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: category_id
|
||||
title_optional:
|
||||
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
|
||||
genre:
|
||||
selector: meta.genres
|
||||
filters:
|
||||
- name: re_replace
|
||||
args: ["(?i)(Science Fiction)", "Science_Fiction"]
|
||||
- name: replace
|
||||
args: [" & ", "_&_"]
|
||||
description:
|
||||
text: "{{ .Result.genre }}"
|
||||
files:
|
||||
selector: num_file
|
||||
seeders:
|
||||
selector: seeders
|
||||
leechers:
|
||||
selector: leechers
|
||||
grabs:
|
||||
selector: times_completed
|
||||
date:
|
||||
# "created_at": "2021-10-18T00:34:50.000000Z" is returned by Newtonsoft.Json.Linq as 18/10/2021 00:34:50
|
||||
selector: created_at
|
||||
filters:
|
||||
- name: append
|
||||
args: " +00:00" # GMT
|
||||
- name: dateparse
|
||||
args: "MM/dd/yyyy HH:mm:ss zzz"
|
||||
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 False, True
|
||||
selector: double_upload
|
||||
case:
|
||||
False: 1 # normal
|
||||
True: 2 # double
|
||||
minimumratio:
|
||||
text: 1.0
|
||||
title_filename:
|
||||
selector: "files[0].name"
|
||||
optional: true
|
||||
title:
|
||||
text: "{{ if and (.Config.single_file_release_use_filename) (eq .Result.files \"1\") (.Result.title_filename) }}{{ .Result.title_filename }}{{ else }}{{ .Result.title_optional }}{{ end }}"
|
||||
# json UNIT3D 8.0.1
|
171
config/prowlarr/Definitions/audiences.yml
Normal file
171
config/prowlarr/Definitions/audiences.yml
Normal file
|
@ -0,0 +1,171 @@
|
|||
---
|
||||
id: audiences
|
||||
name: Audiences
|
||||
description: "Audiences is a CHINESE Private Torrent Tracker for MOVIES / TV / GENERAL"
|
||||
language: zh-CN
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://audiences.me/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 401, cat: Movies, desc: "电影/Movies"}
|
||||
- {id: 402, cat: TV, desc: "剧集/TV-Series"}
|
||||
- {id: 403, cat: TV, desc: "综艺/TV-Show"}
|
||||
- {id: 406, cat: TV/Documentary, desc: "纪录片/Documentary"}
|
||||
- {id: 408, cat: Audio, desc: "音乐/Music"}
|
||||
- {id: 404, cat: Audio/Audiobook, desc: "有声书/Audiobook"}
|
||||
- {id: 405, cat: Books, desc: "电子书/Ebook"}
|
||||
- {id: 407, cat: TV/Sport, desc: "体育/Sports"}
|
||||
- {id: 410, cat: PC/Games, desc: "游戏/Game"}
|
||||
- {id: 411, cat: PC/0day, desc: "软件/Software"}
|
||||
- {id: 410, cat: TV, desc: "学习/Study"}
|
||||
- {id: 409, cat: Other, desc: "其他/Other"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep, imdbid, doubanid]
|
||||
movie-search: [q, imdbid, doubanid]
|
||||
music-search: [q]
|
||||
|
||||
settings:
|
||||
- name: cookie
|
||||
type: text
|
||||
label: Cookie
|
||||
- name: info
|
||||
type: info
|
||||
label: How to get the Cookie
|
||||
default: "<ol><li>Login to this tracker with your browser</li><li>Open the <b>DevTools</b> panel by pressing <b>F12</b></li><li>Select the <b>Network</b> tab</li><li>Click on the <b>Doc</b> button (Chrome Browser) or <b>HTML</b> button (FireFox)</li><li>Refresh the page by pressing <b>F5</b></li><li>Click on the first row entry</li><li>Select the <b>Headers</b> tab on the Right panel</li><li>Find <b>'cookie:'</b> in the <b>Request Headers</b> section</li><li><b>Select</b> and <b>Copy</b> the whole cookie string <i>(everything after 'cookie: ')</i> and <b>Paste</b> here.</li></ol>"
|
||||
- name: freeleech
|
||||
type: checkbox
|
||||
label: Search freeleech only
|
||||
default: false
|
||||
- name: sort
|
||||
type: select
|
||||
label: Sort requested from site
|
||||
default: 4
|
||||
options:
|
||||
4: created
|
||||
7: seeders
|
||||
5: size
|
||||
1: title
|
||||
- name: type
|
||||
type: select
|
||||
label: Order requested from site
|
||||
default: desc
|
||||
options:
|
||||
desc: desc
|
||||
asc: asc
|
||||
- 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.
|
||||
- name: info_activity
|
||||
type: info
|
||||
label: Account Inactivity
|
||||
default: "Account retention rules:<ol><li>Users with Extreme User and above will be retained forever</li><li>Starting from 20230701, the non-login ban time will be adjusted to:<ul><li>(Home Alone) User - 40 days</li><li>(Young and vigorous) Power User - 60 days</li><li>(Children of Jianghu) Elite User - 80 days</li><li>(Street Fighter) Crazy User - 100 days</li><li>(non-stop) Insane User - 120 days</li><li>(Outstanding Citizen) Veteran User - 180 days</li></ul></li><li>Users with no traffic (i.e. uploading/downloading data) If it is 0) If you do not log in for 7 consecutive days will be disabled</li><li>'Parked accounts' no longer enjoy the benefits of retaining accounts, and are also subject to the above rules.</li></ol>"
|
||||
|
||||
login:
|
||||
method: cookie
|
||||
inputs:
|
||||
cookie: "{{ .Config.cookie }}"
|
||||
test:
|
||||
path: index.php
|
||||
selector: a[href="logout.php"]
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: torrents.php
|
||||
inputs:
|
||||
$raw: "{{ range .Categories }}cat{{.}}=1&{{end}}"
|
||||
search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ end }}{{ if or .Query.IMDBID .Query.DoubanID }} {{ else }}{{ .Keywords }}{{ end }}{{ if .Query.DoubanID }}{{ .Query.DoubanID }}{{ else }}{{ end }}"
|
||||
# 0 incldead, 1 active, 2 justdead
|
||||
incldead: 0
|
||||
# promotion: 0 all, 1 normal, 2 free, 3 2x, 4 2xfree, 5 50%, 6 2x 50%, 7 30%
|
||||
spstate: "{{ if .Config.freeleech }}2{{ else }}0{{ end }}"
|
||||
# 0 title, 1 descr, 2 title or imdb or douban url, 3 uploader, 4 imdb
|
||||
search_area: "{{ if or .Query.IMDBID .Query.DoubanID }}2{{ else }}0{{ end }}"
|
||||
# 0 AND, 1 OR, 2 exact
|
||||
search_mode: 0
|
||||
sort: "{{ .Config.sort }}"
|
||||
type: "{{ .Config.type }}"
|
||||
notnewword: 1
|
||||
|
||||
rows:
|
||||
selector: table.torrents > tbody > tr:has(table.torrentname)
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: a[href^="?cat="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: cat
|
||||
title:
|
||||
selector: a[title][href^="details.php?id="]
|
||||
attribute: title
|
||||
details:
|
||||
selector: a[title][href^="details.php?id="]
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href^="download.php?id="]
|
||||
attribute: href
|
||||
imdbid:
|
||||
selector: a[href*="imdb.com/title/tt"]
|
||||
attribute: href
|
||||
doubanid:
|
||||
selector: a[href*="movie.douban.com/subject/"]
|
||||
attribute: href
|
||||
date_elapsed:
|
||||
# time type: time elapsed (default)
|
||||
selector: td:nth-child(4) > span[title]
|
||||
attribute: title
|
||||
optional: true
|
||||
filters:
|
||||
- name: append
|
||||
args: " +08:00" # CST
|
||||
- name: dateparse
|
||||
args: "yyyy-MM-dd HH:mm:ss zzz"
|
||||
date_added:
|
||||
# time added
|
||||
selector: td:nth-child(4):not(:has(span))
|
||||
optional: true
|
||||
filters:
|
||||
- name: append
|
||||
args: " +08:00" # CST
|
||||
- name: dateparse
|
||||
args: "yyyy-MM-ddHH:mm:ss zzz"
|
||||
date:
|
||||
text: "{{ if or .Result.date_elapsed .Result.date_added }}{{ or .Result.date_elapsed .Result.date_added }}{{ else }}now{{ end }}"
|
||||
size:
|
||||
selector: td.rowfollow:nth-child(5)
|
||||
seeders:
|
||||
selector: td.rowfollow:nth-child(6)
|
||||
leechers:
|
||||
selector: td.rowfollow:nth-child(7)
|
||||
grabs:
|
||||
selector: td.rowfollow:nth-child(8)
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
img.pro_free: 0
|
||||
img.pro_free2up: 0
|
||||
img.pro_50pctdown: 0.5
|
||||
img.pro_50pctdown2up: 0.5
|
||||
img.pro_30pctdown: 0.3
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
case:
|
||||
img.pro_50pctdown2up: 2
|
||||
img.pro_free2up: 2
|
||||
img.pro_2up: 2
|
||||
"*": 1
|
||||
minimumratio:
|
||||
text: 1.0
|
||||
minimumseedtime:
|
||||
# 2 days (as seconds = 2 x 24 x 60 x 60)
|
||||
text: 172800
|
||||
description:
|
||||
selector: td:nth-child(2)
|
||||
remove: a, img
|
||||
# NexusPHP Standard v1.5 Beta 4
|
334
config/prowlarr/Definitions/audionews.yml
Normal file
334
config/prowlarr/Definitions/audionews.yml
Normal file
|
@ -0,0 +1,334 @@
|
|||
---
|
||||
id: audionews
|
||||
name: AudioNews
|
||||
description: "AudioNews (AN) is a Private Torrent Tracker for AUDIO SOFTWARE / SAMPLES / ETC"
|
||||
language: en-US
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://audionews.org/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 106, cat: PC/Mobile-Other, desc: "Mobile Apps"}
|
||||
- {id: 161, cat: PC/Mobile-iOS, desc: "Mobile Apps iOS"}
|
||||
- {id: 160, cat: PC/Mobile-Android, desc: "Mobile Apps Android"}
|
||||
- {id: 12, cat: PC, desc: "AUDIOAPPS"}
|
||||
- {id: 32, cat: PC, desc: "AUDIOAPPS DAW Apps"}
|
||||
- {id: 175, cat: PC, desc: "AUDIOAPPS Ableton"}
|
||||
- {id: 177, cat: PC, desc: "AUDIOAPPS Cakewalk"}
|
||||
- {id: 176, cat: PC, desc: "AUDIOAPPS REAPER"}
|
||||
- {id: 174, cat: PC, desc: "AUDIOAPPS Steinberg"}
|
||||
- {id: 34, cat: PC, desc: "AUDIOAPPS Mastering &Audio Editor Apps"}
|
||||
- {id: 37, cat: PC, desc: "AUDIOAPPS DJ Apps"}
|
||||
- {id: 13, cat: Audio, desc: "SAMPLE LIBRARIES"}
|
||||
- {id: 62, cat: Audio, desc: "SAMPLE LIBRARIES AMG"}
|
||||
- {id: 117, cat: Audio, desc: "SAMPLE LIBRARIES Bela D Media"}
|
||||
- {id: 118, cat: Audio, desc: "SAMPLE LIBRARIES Beta Monkey Music"}
|
||||
- {id: 51, cat: Audio, desc: "SAMPLE LIBRARIES Best Service"}
|
||||
- {id: 46, cat: Audio, desc: "SAMPLE LIBRARIES Big Fish"}
|
||||
- {id: 66, cat: Audio, desc: "SAMPLE LIBRARIES Bigga Giggas"}
|
||||
- {id: 122, cat: Audio, desc: "SAMPLE LIBRARIES Bluezone Corporation"}
|
||||
- {id: 123, cat: Audio, desc: "SAMPLE LIBRARIES Bunker 8"}
|
||||
- {id: 126, cat: Audio, desc: "SAMPLE LIBRARIES Cinematique Instruments"}
|
||||
- {id: 127, cat: Audio, desc: "SAMPLE LIBRARIES CineSamples"}
|
||||
- {id: 128, cat: Audio, desc: "SAMPLE LIBRARIES ClusterSound"}
|
||||
- {id: 121, cat: Audio, desc: "SAMPLE LIBRARIES Dan Dean"}
|
||||
- {id: 195, cat: Audio, desc: "SAMPLE LIBRARIES Diginoiz"}
|
||||
- {id: 52, cat: Audio, desc: "SAMPLE LIBRARIES Digital Juice"}
|
||||
- {id: 134, cat: Audio, desc: "SAMPLE LIBRARIES Digital-Redux"}
|
||||
- {id: 65, cat: Audio, desc: "SAMPLE LIBRARIES Digital Vision"}
|
||||
- {id: 59, cat: Audio, desc: "SAMPLE LIBRARIES Discovery Firm"}
|
||||
- {id: 61, cat: Audio, desc: "SAMPLE LIBRARIES Drumdrops"}
|
||||
- {id: 40, cat: Audio, desc: "SAMPLE LIBRARIES East West"}
|
||||
- {id: 74, cat: Audio, desc: "SAMPLE LIBRARIES Electronisounds"}
|
||||
- {id: 80, cat: Audio, desc: "SAMPLE LIBRARIES EMU format"}
|
||||
- {id: 82, cat: Audio, desc: "SAMPLE LIBRARIES ENSONIQ format"}
|
||||
- {id: 111, cat: Audio, desc: "SAMPLE LIBRARIES Fatloud"}
|
||||
- {id: 135, cat: Audio, desc: "SAMPLE LIBRARIES Fox Samples"}
|
||||
- {id: 41, cat: Audio, desc: "SAMPLE LIBRARIES FxPansion"}
|
||||
- {id: 130, cat: Audio, desc: "SAMPLE LIBRARIES Goldbaby"}
|
||||
- {id: 54, cat: Audio, desc: "SAMPLE LIBRARIES Hollywood Edge"}
|
||||
- {id: 64, cat: Audio, desc: "SAMPLE LIBRARIES IK Multimedia"}
|
||||
- {id: 75, cat: Audio, desc: "SAMPLE LIBRARIES Ilio"}
|
||||
- {id: 108, cat: Audio, desc: "SAMPLE LIBRARIES Industrial Strength Records"}
|
||||
- {id: 81, cat: Audio, desc: "SAMPLE LIBRARIES KURZWEIL format"}
|
||||
- {id: 91, cat: Audio, desc: "SAMPLE LIBRARIES Loopmasters"}
|
||||
- {id: 92, cat: Audio, desc: "SAMPLE LIBRARIES Masterbits"}
|
||||
- {id: 58, cat: Audio, desc: "SAMPLE LIBRARIES M-Audio"}
|
||||
- {id: 112, cat: Audio, desc: "SAMPLE LIBRARIES Mutekki"}
|
||||
- {id: 137, cat: Audio, desc: "SAMPLE LIBRARIES Mystic Kingz"}
|
||||
- {id: 47, cat: Audio, desc: "SAMPLE LIBRARIES Native Instruments"}
|
||||
- {id: 60, cat: Audio, desc: "SAMPLE LIBRARIES Nine Volt Audio"}
|
||||
- {id: 129, cat: Audio, desc: "SAMPLE LIBRARIES OrangeTree"}
|
||||
- {id: 203, cat: Audio, desc: "SAMPLE LIBRARIES Origin Sound"}
|
||||
- {id: 154, cat: Audio, desc: "SAMPLE LIBRARIES P5Audio"}
|
||||
- {id: 133, cat: Audio, desc: "SAMPLE LIBRARIES Peace Love Productions"}
|
||||
- {id: 140, cat: Audio, desc: "SAMPLE LIBRARIES Pound Audio"}
|
||||
- {id: 110, cat: Audio, desc: "SAMPLE LIBRARIES Prime Loops"}
|
||||
- {id: 180, cat: Audio, desc: "SAMPLE LIBRARIES Producer Loops"}
|
||||
- {id: 50, cat: Audio, desc: "SAMPLE LIBRARIES Prominy"}
|
||||
- {id: 171, cat: Audio, desc: "SAMPLE LIBRARIES Pulsed Records"}
|
||||
- {id: 132, cat: Audio, desc: "SAMPLE LIBRARIES Puremagnetik"}
|
||||
- {id: 49, cat: Audio, desc: "SAMPLE LIBRARIES Refills"}
|
||||
- {id: 99, cat: Audio, desc: "SAMPLE LIBRARIES reFX Nexus"}
|
||||
- {id: 125, cat: Audio, desc: "SAMPLE LIBRARIES Realsamples"}
|
||||
- {id: 83, cat: Audio, desc: "SAMPLE LIBRARIES ROLAND format"}
|
||||
- {id: 109, cat: Audio, desc: "SAMPLE LIBRARIES Sample Magic"}
|
||||
- {id: 136, cat: Audio, desc: "SAMPLE LIBRARIES Samplephonics"}
|
||||
- {id: 43, cat: Audio, desc: "SAMPLE LIBRARIES Sampletekk"}
|
||||
- {id: 48, cat: Audio, desc: "SAMPLE LIBRARIES Scarbee"}
|
||||
- {id: 178, cat: Audio, desc: "SAMPLE LIBRARIES SFX (Sound FX libraries)"}
|
||||
- {id: 90, cat: Audio, desc: "SAMPLE LIBRARIES Smartsound"}
|
||||
- {id: 172, cat: Audio, desc: "SAMPLE LIBRARIES Sonart Audio"}
|
||||
- {id: 116, cat: Audio, desc: "SAMPLE LIBRARIES SonicCouture"}
|
||||
- {id: 42, cat: Audio, desc: "SAMPLE LIBRARIES Sonic Implants"}
|
||||
- {id: 115, cat: Audio, desc: "SAMPLE LIBRARIES Sonic Reality"}
|
||||
- {id: 53, cat: Audio, desc: "SAMPLE LIBRARIES Sound Ideas"}
|
||||
- {id: 56, cat: Audio, desc: "SAMPLE LIBRARIES Sony"}
|
||||
- {id: 139, cat: Audio, desc: "SAMPLE LIBRARIES Sounds To Sample"}
|
||||
- {id: 76, cat: Audio, desc: "SAMPLE LIBRARIES Spectrasonics"}
|
||||
- {id: 162, cat: Audio, desc: "SAMPLE LIBRARIES Spitfire Audio"}
|
||||
- {id: 193, cat: Audio, desc: "SAMPLE LIBRARIES studiolinked"}
|
||||
- {id: 68, cat: Audio, desc: "SAMPLE LIBRARIES Synthogy"}
|
||||
- {id: 179, cat: Audio, desc: "SAMPLE LIBRARIES The Loop Loft"}
|
||||
- {id: 96, cat: Audio, desc: "SAMPLE LIBRARIES Tonehammer, 8dio, SoundIron"}
|
||||
- {id: 67, cat: Audio, desc: "SAMPLE LIBRARIES Toontrack, Drumkit From Hell, DFHS"}
|
||||
- {id: 69, cat: Audio, desc: "SAMPLE LIBRARIES Ueberschall"}
|
||||
- {id: 157, cat: Audio, desc: "SAMPLE LIBRARIES USB Soundscan"}
|
||||
- {id: 120, cat: Audio, desc: "SAMPLE LIBRARIES Valentino Production"}
|
||||
- {id: 173, cat: Audio, desc: "SAMPLE LIBRARIES vandalism sounds"}
|
||||
- {id: 170, cat: Audio, desc: "SAMPLE LIBRARIES Vanilla Groove Studios"}
|
||||
- {id: 119, cat: Audio, desc: "SAMPLE LIBRARIES Vengeance Sound"}
|
||||
- {id: 114, cat: Audio, desc: "SAMPLE LIBRARIES Video Helper"}
|
||||
- {id: 44, cat: Audio, desc: "SAMPLE LIBRARIES Vienna"}
|
||||
- {id: 77, cat: Audio, desc: "SAMPLE LIBRARIES Vipzone"}
|
||||
- {id: 131, cat: Audio, desc: "SAMPLE LIBRARIES Wavesfactory"}
|
||||
- {id: 89, cat: Audio, desc: "SAMPLE LIBRARIES West one"}
|
||||
- {id: 113, cat: Audio, desc: "SAMPLE LIBRARIES Wusik.com"}
|
||||
- {id: 78, cat: Audio, desc: "SAMPLE LIBRARIES Yellowtools"}
|
||||
- {id: 138, cat: Audio, desc: "SAMPLE LIBRARIES YnK.Audio"}
|
||||
- {id: 100, cat: Audio, desc: "SAMPLE LIBRARIES Zenhiser"}
|
||||
- {id: 57, cat: Audio, desc: "SAMPLE LIBRARIES Zero-G"}
|
||||
- {id: 15, cat: PC, desc: "VSTi + FX"}
|
||||
- {id: 72, cat: PC, desc: "VSTi + FX FX"}
|
||||
- {id: 181, cat: PC, desc: "VSTi + FX VSTi"}
|
||||
- {id: 18, cat: PC/Mac, desc: "MAC"}
|
||||
- {id: 186, cat: PC/Mac, desc: "MAC Apps"}
|
||||
- {id: 188, cat: PC/Mac, desc: "MAC FX"}
|
||||
- {id: 189, cat: PC/Mac, desc: "MAC Instruments"}
|
||||
- {id: 190, cat: PC/Mac, desc: "MAC TUTORIAL"}
|
||||
- {id: 187, cat: PC/Mac, desc: "MAC Samples"}
|
||||
- {id: 19, cat: Other, desc: "MISC"}
|
||||
- {id: 185, cat: Other, desc: "MISC Utilities"}
|
||||
- {id: 84, cat: Books, desc: "SHEET MUSIC"}
|
||||
- {id: 87, cat: Books, desc: "SHEET MUSIC Full Score"}
|
||||
- {id: 86, cat: Books, desc: "SHEET MUSIC Guitar"}
|
||||
- {id: 88, cat: Books, desc: "SHEET MUSIC Other instruments"}
|
||||
- {id: 85, cat: Books, desc: "SHEET MUSIC Piano"}
|
||||
- {id: 20, cat: Books, desc: "LEARNING"}
|
||||
- {id: 197, cat: Books, desc: "LEARNING Academy.FM"}
|
||||
- {id: 183, cat: Books, desc: "LEARNING ADSR"}
|
||||
- {id: 141, cat: Books, desc: "LEARNING Alfred"}
|
||||
- {id: 142, cat: Books, desc: "LEARNING Ask Video"}
|
||||
- {id: 27, cat: Books, desc: "LEARNING Books"}
|
||||
- {id: 143, cat: Books, desc: "LEARNING FaderPro"}
|
||||
- {id: 144, cat: Books, desc: "LEARNING Groove3"}
|
||||
- {id: 145, cat: Books, desc: "LEARNING Hal Leonard"}
|
||||
- {id: 105, cat: Books, desc: "LEARNING Hardware manuals"}
|
||||
- {id: 196, cat: Books, desc: "LEARNING Jam Track Central"}
|
||||
- {id: 146, cat: Books, desc: "LEARNING Lick Library"}
|
||||
- {id: 147, cat: Books, desc: "LEARNING Lynda.com"}
|
||||
- {id: 148, cat: Books, desc: "LEARNING MacProVideo"}
|
||||
- {id: 101, cat: Books, desc: "LEARNING Magazines"}
|
||||
- {id: 93, cat: Books, desc: "LEARNING Music Video (Concerts, DVD, DVDrip)"}
|
||||
- {id: 199, cat: Books, desc: "LEARNING PUREMIX"}
|
||||
- {id: 149, cat: Books, desc: "LEARNING Riff Interactive"}
|
||||
- {id: 194, cat: Books, desc: "LEARNING SkillShare"}
|
||||
- {id: 150, cat: Books, desc: "LEARNING Sonic Academy"}
|
||||
- {id: 151, cat: Books, desc: "LEARNING Total training"}
|
||||
- {id: 152, cat: Books, desc: "LEARNING TrueFire"}
|
||||
- {id: 182, cat: Books, desc: "LEARNING Udemy"}
|
||||
- {id: 28, cat: Books, desc: "LEARNING Video"}
|
||||
- {id: 153, cat: Books, desc: "LEARNING VTC"}
|
||||
- {id: 29, cat: Audio/Other, desc: "PRESETS"}
|
||||
- {id: 167, cat: Audio/Other, desc: "PRESETS Ableton Live"}
|
||||
- {id: 184, cat: Audio/Other, desc: "PRESETS Impulse Responses"}
|
||||
- {id: 166, cat: Audio/Other, desc: "PRESETS Massive"}
|
||||
- {id: 163, cat: Audio/Other, desc: "PRESETS Nebula"}
|
||||
- {id: 200, cat: Audio/Other, desc: "PRESETS Omnisphere"}
|
||||
- {id: 165, cat: Audio/Other, desc: "PRESETS Reaktor"}
|
||||
- {id: 201, cat: Audio/Other, desc: "PRESETS Xfer Serum"}
|
||||
- {id: 164, cat: Audio/Other, desc: "PRESETS Sylenth"}
|
||||
- {id: 168, cat: Audio/Other, desc: "PRESETS Toontrack"}
|
||||
- {id: 239, cat: Books, desc: "Service Manuals"}
|
||||
- {id: 21, cat: Other, desc: "UPDATE"}
|
||||
- {id: 222, cat: Other, desc: "GFXNEWS 3D"}
|
||||
- {id: 235, cat: Other, desc: "GFXNEWS APPS ANDROID & IOS"}
|
||||
- {id: 207, cat: Other, desc: "GFXNEWS APPS WIN"}
|
||||
- {id: 215, cat: Other, desc: "GFXNEWS APPS LINUX"}
|
||||
- {id: 214, cat: Other, desc: "GFXNEWS APPS MAC"}
|
||||
- {id: 211, cat: Other, desc: "GFXNEWS BOOKS"}
|
||||
- {id: 224, cat: Other, desc: "GFXNEWS CAD/CAM"}
|
||||
- {id: 237, cat: Other, desc: "GFXNEWS DAZ3D"}
|
||||
- {id: 212, cat: Other, desc: "GFXNEWS FONTS"}
|
||||
- {id: 213, cat: Other, desc: "GFXNEWS FOOTAGE"}
|
||||
- {id: 233, cat: Other, desc: "GFXNEWS GAME DEVELOPMENT"}
|
||||
- {id: 226, cat: Other, desc: "GFXNEWS MAGAZINE"}
|
||||
- {id: 234, cat: Other, desc: "GFXNEWS MATERIAL"}
|
||||
- {id: 243, cat: Other, desc: "GFXNEWS OTHER GRAPHICS"}
|
||||
- {id: 244, cat: Other, desc: "GFXNEWS OTHER GRAPHICS Zbrush, Substance tools"}
|
||||
- {id: 216, cat: Other, desc: "GFXNEWS PHOTOSTOCK"}
|
||||
- {id: 220, cat: Other, desc: "GFXNEWS PHOTOGRAPHY - ART"}
|
||||
- {id: 227, cat: Other, desc: "GFXNEWS 2D Graphics"}
|
||||
- {id: 250, cat: Other, desc: "GFXNEWS 2D Graphics Effects"}
|
||||
- {id: 228, cat: Other, desc: "GFXNEWS 2D Graphics Actions, Pattern & Styles"}
|
||||
- {id: 229, cat: Other, desc: "GFXNEWS 2D Graphics Background & PSD Source"}
|
||||
- {id: 230, cat: Other, desc: "GFXNEWS 2D Graphics Brushes & Gradient"}
|
||||
- {id: 246, cat: Other, desc: "GFXNEWS 2D Graphics Mockup"}
|
||||
- {id: 247, cat: Other, desc: "GFXNEWS 2D Graphics Overlays"}
|
||||
- {id: 249, cat: Other, desc: "GFXNEWS 2D Graphics Preset"}
|
||||
- {id: 231, cat: Other, desc: "GFXNEWS 2D Graphics Toolkits, Papers & Objects"}
|
||||
- {id: 245, cat: Other, desc: "GFXNEWS GFX Plugins"}
|
||||
- {id: 210, cat: Other, desc: "GFXNEWS PLUGINS WIN"}
|
||||
- {id: 223, cat: Other, desc: "GFXNEWS PLUGINS MAC"}
|
||||
- {id: 225, cat: Other, desc: "GFXNEWS PLUGINS LINUX"}
|
||||
- {id: 217, cat: Other, desc: "GFXNEWS SCRIPTS - WEB PROGRAMMING"}
|
||||
- {id: 218, cat: Other, desc: "GFXNEWS TEMPLATES"}
|
||||
- {id: 232, cat: Other, desc: "GFXNEWS TEXTURES"}
|
||||
- {id: 219, cat: Other, desc: "GFXNEWS TUTORIALS"}
|
||||
- {id: 238, cat: Other, desc: "GFXNEWS VECTOR GRAPHICS"}
|
||||
- {id: 221, cat: Other, desc: "GFXNEWS VIDEO PRODUCTION"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
book-search: [q]
|
||||
|
||||
settings:
|
||||
- name: username
|
||||
type: text
|
||||
label: Username
|
||||
- name: password
|
||||
type: password
|
||||
label: Password
|
||||
- name: sort
|
||||
type: select
|
||||
label: Sort requested from site
|
||||
default: 1
|
||||
options:
|
||||
1: created
|
||||
10: seeders
|
||||
7: size
|
||||
2: title
|
||||
- name: type
|
||||
type: select
|
||||
label: Order requested from site
|
||||
default: 2
|
||||
options:
|
||||
2: desc
|
||||
1: asc
|
||||
- name: info_activity
|
||||
type: info
|
||||
label: Account Inactivity
|
||||
default: "You must stay active on the site...<ol><li>Any New users that have no stats for one month will have their account deleted</li><li>Any disabled accounts will be deleted after 6 months</li><li>Any accounts inactive for more than 6 months will be deleted</li><li>Donor accounts will be left untouched.</li></ol>"
|
||||
|
||||
login:
|
||||
path: login.php
|
||||
method: post
|
||||
inputs:
|
||||
"login_username": "{{ .Config.username }}"
|
||||
"login_password": "{{ .Config.password }}"
|
||||
autologin: 1
|
||||
login: "Log in"
|
||||
redirect: "/"
|
||||
error:
|
||||
- selector: table.error
|
||||
message:
|
||||
selector: table.error tr td div.msg
|
||||
test:
|
||||
path: /
|
||||
selector: li a[href^="./login.php?logout=1"]
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: tracker.php
|
||||
method: post
|
||||
inputs:
|
||||
$raw: "{{ if .Categories }}{{ range .Categories }}f[]={{.}}&{{end}}{{ else }}f[]=-1{{ end }}"
|
||||
prev_allw: 1
|
||||
prev_a: 0
|
||||
prev_dla: 0
|
||||
prev_dlc: 0
|
||||
prev_dld: 0
|
||||
prev_dlw: 0
|
||||
prev_my: 0
|
||||
prev_new: 0
|
||||
prev_sd: 0
|
||||
prev_da: 1
|
||||
prev_dc: 0
|
||||
prev_df: 1
|
||||
prev_ds: 0
|
||||
pre_tor_type: 0
|
||||
prev_date_from: ""
|
||||
prev_date_to: ""
|
||||
prev_hide_rereg: 0
|
||||
o: "{{ .Config.sort }}"
|
||||
s: "{{ .Config.type }}"
|
||||
df: 1
|
||||
da: 1
|
||||
nm: "{{ .Keywords }}"
|
||||
pn: ""
|
||||
submit: "Search"
|
||||
|
||||
rows:
|
||||
selector: table.forumline > tbody > tr:has(a[href*="/dl.php?id="])
|
||||
dateheaders:
|
||||
selector: td[colspan="20"] > strong
|
||||
filters:
|
||||
- name: append
|
||||
args: " -07:00" # PDT
|
||||
- name: dateparse
|
||||
args: "MM-dd-yyyy zzz"
|
||||
|
||||
fields:
|
||||
title:
|
||||
selector: td a[href*="/viewtopic.php?t="]
|
||||
details:
|
||||
selector: td a[href*="/viewtopic.php?t="]
|
||||
attribute: href
|
||||
download:
|
||||
selector: td a[href*="/dl.php?id="]
|
||||
attribute: href
|
||||
category:
|
||||
selector: td a[href*="/tracker.php?f="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: f
|
||||
size:
|
||||
selector: td:contains(\00a0GB), td:contains(\00a0MB), td:contains(\00a0KB), td:contains(\00a0B)
|
||||
optional: true
|
||||
default: 0
|
||||
seeders:
|
||||
selector: td[title="Seeders"]
|
||||
optional: true
|
||||
default: 0
|
||||
leechers:
|
||||
selector: td[title="Leechers"]
|
||||
optional: true
|
||||
default: 0
|
||||
grabs:
|
||||
selector: td[title^="Replies:"]
|
||||
optional: true
|
||||
default: 0
|
||||
description:
|
||||
case:
|
||||
span.tor-approved: Verified
|
||||
span.tor-not-approved: Unverified
|
||||
downloadvolumefactor:
|
||||
text: 1
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
minimumratio:
|
||||
text: 0.8
|
||||
# engine n/a
|
92
config/prowlarr/Definitions/aussierules.yml
Normal file
92
config/prowlarr/Definitions/aussierules.yml
Normal file
|
@ -0,0 +1,92 @@
|
|||
---
|
||||
id: aussierules
|
||||
name: Aussierul.es
|
||||
description: "Aussierul.es is a torrent site for Aussie Rules Football played in Australia"
|
||||
language: en-AU
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://aussierul.es/
|
||||
|
||||
caps:
|
||||
categories:
|
||||
1: TV/Sport
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
|
||||
settings:
|
||||
- name: username
|
||||
type: text
|
||||
label: Username
|
||||
- name: password
|
||||
type: password
|
||||
label: Password
|
||||
- name: type
|
||||
label: Search Type
|
||||
type: select
|
||||
default: t_name
|
||||
options:
|
||||
t_name: Torrent Name
|
||||
t_description: Torrent Description
|
||||
t_both: Name & Description
|
||||
t_uploader: Uploader
|
||||
t_genre: IMDB Genre
|
||||
- name: dead
|
||||
label: Include Dead Torrents
|
||||
type: select
|
||||
default: No
|
||||
options:
|
||||
yes: Yes
|
||||
no: No
|
||||
|
||||
login:
|
||||
method: form
|
||||
form: form
|
||||
path: login.php
|
||||
inputs:
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
error:
|
||||
- selector: table:contains("An error has occured!")
|
||||
test:
|
||||
path: browse.php
|
||||
selector: a[href*="logout.php"]
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: browse.php
|
||||
inputs:
|
||||
search_type: "{{ .Config.type }}"
|
||||
include_dead_torrents: "{{ .Config.dead }}"
|
||||
keywords: "{{ .Keywords }}"
|
||||
|
||||
rows:
|
||||
selector: table#sortabletable > tbody > tr:not(:first-child)
|
||||
|
||||
fields:
|
||||
category:
|
||||
text: 1
|
||||
title:
|
||||
selector: td:nth-child(2) > div:nth-child(1) > a > strong
|
||||
details:
|
||||
selector: td:nth-child(2) > div:nth-child(1) > a
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href*="download.php?id="]
|
||||
attribute: href
|
||||
date:
|
||||
# 27-03-2021 18:34
|
||||
selector: td:nth-child(2) > div:nth-child(2)
|
||||
filters:
|
||||
- name: dateparse
|
||||
args: "d-MM-yyyy HH:mm"
|
||||
size:
|
||||
selector: td:nth-child(5)
|
||||
grabs:
|
||||
selector: td:nth-child(6)
|
||||
seeders:
|
||||
selector: td:nth-child(7)
|
||||
leechers:
|
||||
selector: td:nth-child(8)
|
||||
# TS Special Edition v.7.4
|
173
config/prowlarr/Definitions/azusa.yml
Normal file
173
config/prowlarr/Definitions/azusa.yml
Normal file
|
@ -0,0 +1,173 @@
|
|||
---
|
||||
id: azusa
|
||||
name: Azusa (梓喵)
|
||||
description: "Azusa (梓喵) is a CHINESE Private Torrent Tracker focusing on Comics"
|
||||
language: zh-CN
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://azusa.wiki/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 404, cat: PC/Games, desc: "Game"}
|
||||
- {id: 402, cat: Books/Comics, desc: "Comic"}
|
||||
- {id: 403, cat: Books/EBook, desc: "Light Novel"}
|
||||
- {id: 407, cat: Other, desc: "CG"}
|
||||
- {id: 409, cat: Audio, desc: "Music"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
music-search: [q]
|
||||
book-search: [q]
|
||||
|
||||
settings:
|
||||
- name: username
|
||||
type: text
|
||||
label: Username
|
||||
- name: password
|
||||
type: password
|
||||
label: Password
|
||||
- name: 2facode
|
||||
type: text
|
||||
label: 2FA code
|
||||
- name: info_2fa
|
||||
type: info
|
||||
label: "About 2FA code"
|
||||
default: "Only fill in the <b>2FA code</b> box if you have enabled <b>2FA</b> on the Uploads Web Site. Otherwise just leave it empty."
|
||||
- name: freeleech
|
||||
type: checkbox
|
||||
label: Search freeleech only
|
||||
default: false
|
||||
- name: sort
|
||||
type: select
|
||||
label: Sort requested from site
|
||||
default: 4
|
||||
options:
|
||||
4: created
|
||||
7: seeders
|
||||
5: size
|
||||
1: title
|
||||
- name: type
|
||||
type: select
|
||||
label: Order requested from site
|
||||
default: desc
|
||||
options:
|
||||
desc: desc
|
||||
asc: asc
|
||||
- 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: login.php
|
||||
method: form
|
||||
form: form[action="takelogin.php"]
|
||||
captcha:
|
||||
type: image
|
||||
selector: img[alt="CAPTCHA"]
|
||||
input: imagestring
|
||||
inputs:
|
||||
secret: ""
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
two_step_code: "{{ .Config.2facode }}"
|
||||
logout: ""
|
||||
securelogin: ""
|
||||
ssl: yes
|
||||
trackerssl: ""
|
||||
error:
|
||||
- selector: td.embedded:has(h2:contains("失败"))
|
||||
test:
|
||||
path: index.php
|
||||
selector: a[href="logout.php"]
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: torrents.php
|
||||
inputs:
|
||||
$raw: "{{ range .Categories }}cat{{.}}=1&{{end}}"
|
||||
search: "{{ .Keywords }}"
|
||||
# 0 incldead, 1 active, 2 dead
|
||||
incldead: 0
|
||||
# 0 all, 1 normal, 2 free, 3 2x, 4 2xfree, 5 50%, 6 2x50%, 7 30%
|
||||
spstate: "{{ if .Config.freeleech }}2{{ else }}0{{ end }}"
|
||||
# 0 title, 1 descr, 3 uploader, 4 imdburl
|
||||
search_area: 0
|
||||
# 0 AND, 1 OR, 2 exact
|
||||
search_mode: 0
|
||||
sort: "{{ .Config.sort }}"
|
||||
type: "{{ .Config.type }}"
|
||||
notnewword: 1
|
||||
|
||||
rows:
|
||||
selector: table.torrents > tbody > tr:has(table.torrentname)
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: a[href^="?cat="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: cat
|
||||
title_default:
|
||||
selector: a[href^="details.php?id="]
|
||||
title:
|
||||
selector: a[title][href^="details.php?id="]
|
||||
attribute: title
|
||||
optional: true
|
||||
default: "{{ .Result.title_default }}"
|
||||
details:
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href^="download.php?id="]
|
||||
attribute: href
|
||||
date_elapsed:
|
||||
# time type: time elapsed (default)
|
||||
selector: td.rowfollow:nth-child(4) > span[title]
|
||||
attribute: title
|
||||
optional: true
|
||||
filters:
|
||||
- name: append
|
||||
args: " +08:00" # CST
|
||||
- name: dateparse
|
||||
args: "yyyy-MM-dd HH:mm:ss zzz"
|
||||
date_added:
|
||||
# time added
|
||||
selector: td.rowfollow:nth-child(4):not(:has(span))
|
||||
optional: true
|
||||
filters:
|
||||
- name: append
|
||||
args: " +08:00" # CST
|
||||
- name: dateparse
|
||||
args: "yyyy-MM-ddHH:mm:ss zzz"
|
||||
date:
|
||||
text: "{{ if or .Result.date_elapsed .Result.date_added }}{{ or .Result.date_elapsed .Result.date_added }}{{ else }}now{{ end }}"
|
||||
size:
|
||||
selector: td.rowfollow:nth-child(5)
|
||||
seeders:
|
||||
selector: td.rowfollow:nth-child(6)
|
||||
leechers:
|
||||
selector: td.rowfollow:nth-child(7)
|
||||
grabs:
|
||||
selector: td.rowfollow:nth-child(8)
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
img.pro_free: 0
|
||||
img.pro_free2up: 0
|
||||
img.pro_50pctdown: 0.5
|
||||
img.pro_50pctdown2up: 0.5
|
||||
img.pro_30pctdown: 0.3
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
case:
|
||||
img.pro_50pctdown2up: 2
|
||||
img.pro_free2up: 2
|
||||
img.pro_2up: 2
|
||||
"*": 1
|
||||
description:
|
||||
selector: td:nth-child(2)
|
||||
remove: a, b, font, img, span
|
||||
# NexusPHP v1.7.20 2022-08-05
|
173
config/prowlarr/Definitions/backups.yml
Normal file
173
config/prowlarr/Definitions/backups.yml
Normal file
|
@ -0,0 +1,173 @@
|
|||
---
|
||||
id: backups
|
||||
name: Back-ups
|
||||
description: "Back-Ups is a Private Torrent Tracker for MOVIES / TV / GENERAL"
|
||||
language: en-US
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://back-ups.me/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 15, cat: PC/Mobile-Android, desc: "Android"}
|
||||
- {id: 35, cat: TV/Anime, desc: "Anime"}
|
||||
- {id: 51, cat: PC/Mac, desc: "Apple"}
|
||||
- {id: 3, cat: PC, desc: "Apps"}
|
||||
- {id: 64, cat: Audio/Audiobook, desc: "Audiobooks"}
|
||||
- {id: 71, cat: Console, desc: "Batocera"}
|
||||
- {id: 4, cat: Movies/BluRay, desc: "Blu-Ray"}
|
||||
- {id: 22, cat: Console, desc: "CoinOps"}
|
||||
- {id: 42, cat: Console, desc: "CoinOPS Official"}
|
||||
- {id: 65, cat: Console, desc: "CoinOps Unofficial"}
|
||||
- {id: 63, cat: Books/Comics, desc: "Comics"}
|
||||
- {id: 60, cat: Console, desc: "Core"}
|
||||
- {id: 72, cat: Console, desc: "CORE Community"}
|
||||
- {id: 44, cat: Console, desc: "CP78"}
|
||||
- {id: 16, cat: TV/Documentary, desc: "Docu"}
|
||||
- {id: 41, cat: Console, desc: "Dragon"}
|
||||
- {id: 5, cat: Books, desc: "EBooks"}
|
||||
- {id: 61, cat: Console, desc: "emuxtras"}
|
||||
- {id: 69, cat: TV, desc: "Entertainment"}
|
||||
- {id: 34, cat: TV, desc: "Kids"}
|
||||
- {id: 43, cat: Console, desc: "LB No Intro"}
|
||||
- {id: 33, cat: TV/Sport, desc: "MMA/Boxing"}
|
||||
- {id: 32, cat: Movies, desc: "Movie Pack"}
|
||||
- {id: 6, cat: Movies, desc: "Movies/XVID"}
|
||||
- {id: 7, cat: Audio, desc: "Music"}
|
||||
- {id: 31, cat: Console, desc: "Nintendo"}
|
||||
- {id: 59, cat: Console, desc: "P-R-U"}
|
||||
- {id: 8, cat: PC/Games, desc: "PC Games"}
|
||||
- {id: 50, cat: Console, desc: "PlayBox"}
|
||||
- {id: 30, cat: Console, desc: "Playstation"}
|
||||
- {id: 62, cat: Console, desc: "RaspberryPi"}
|
||||
- {id: 56, cat: Console, desc: "Retro Minis"}
|
||||
- {id: 67, cat: Console, desc: "Retrobat"}
|
||||
- {id: 76, cat: Console, desc: "RGS"}
|
||||
- {id: 27, cat: Console, desc: "Roms and Emulators"}
|
||||
- {id: 68, cat: Console, desc: "Schmoomer's"}
|
||||
- {id: 57, cat: Console, desc: "Sega"}
|
||||
- {id: 40, cat: TV, desc: "Soaps"}
|
||||
- {id: 29, cat: TV/Sport, desc: "Sport"}
|
||||
- {id: 9, cat: TV, desc: "TV-Boxsets"}
|
||||
- {id: 11, cat: TV, desc: "TV/x264"}
|
||||
- {id: 10, cat: TV, desc: "TV/Xvid"}
|
||||
- {id: 73, cat: Console, desc: "Wolfanoz"}
|
||||
- {id: 14, cat: TV/Sport, desc: "WWE"}
|
||||
- {id: 26, cat: Console, desc: "Xbox"}
|
||||
- {id: 12, cat: Console, desc: "XBOX360"}
|
||||
- {id: 23, cat: XXX, desc: "xxx18+"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
music-search: [q]
|
||||
book-search: [q]
|
||||
|
||||
settings:
|
||||
- name: username
|
||||
type: text
|
||||
label: Username
|
||||
- name: password
|
||||
type: password
|
||||
label: Password
|
||||
- name: freeleech
|
||||
type: checkbox
|
||||
label: Filter freeleech only
|
||||
default: false
|
||||
- name: info_tpp
|
||||
type: info
|
||||
label: Results Per Page
|
||||
default: For best results, change the <b>Torrents per page:</b> setting to <b>40</b> on your account profile.
|
||||
- name: info_activity
|
||||
type: info
|
||||
label: Account Inactivity
|
||||
default: "To keep records updated regularly, all inactive accounts will be deleted after 60 days of inactivity."
|
||||
|
||||
login:
|
||||
path: takelogin.php
|
||||
method: post
|
||||
inputs:
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
error:
|
||||
- selector: td:contains("remaining tries")
|
||||
test:
|
||||
path: browse.php
|
||||
selector: a[href*="/logout.php"]
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: browse.php
|
||||
keywordsfilters:
|
||||
# remove words <= 3 characters and surrounding special characters
|
||||
- name: re_replace
|
||||
args: ["(?:^|\\s)[_\\+\\/\\.\\-\\(\\)]*[\\S]{0,3}[_\\+\\/\\.\\-\\(\\)]*(?:\\s|$)", " "]
|
||||
inputs:
|
||||
do: search
|
||||
keywords: "{{ .Keywords }}"
|
||||
# t_name, t_description, t_both, t_uploader, t_genre
|
||||
search_type: t_name
|
||||
category: 0 # multi cat search not supported
|
||||
# yes, no
|
||||
include_dead_torrents: yes
|
||||
# sort is done via do=quick_sort, and freeleech sorting is part of that set
|
||||
|
||||
rows:
|
||||
selector: "table#sortabletable > tbody > tr:has(a[href*=\"/details.php?id=\"]){{ if .Config.freeleech }}:has(img[src$=\"freedownload.gif\"]){{ else }}{{ end }}"
|
||||
filters:
|
||||
- name: andmatch
|
||||
args: 66
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: a[href*="/browse.php?category="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: category
|
||||
title_default:
|
||||
selector: a[href*="/details.php?id="]
|
||||
title:
|
||||
selector: div.tooltip-content > div
|
||||
optional: true
|
||||
default: "{{ .Result.title_default }}"
|
||||
details:
|
||||
selector: a[href*="/details.php?id="]
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href*="/download.php?id="]
|
||||
attribute: href
|
||||
magnet:
|
||||
selector: a[href^="magnet:?xt="]
|
||||
attribute: href
|
||||
size:
|
||||
selector: td:nth-child(5)
|
||||
grabs:
|
||||
selector: td:nth-child(6)
|
||||
seeders:
|
||||
selector: td:nth-child(7)
|
||||
leechers:
|
||||
selector: td:nth-child(8)
|
||||
poster:
|
||||
selector: div.tooltip-content > img
|
||||
attribute: src
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
img[src$="freedownload.gif"]: 0
|
||||
img[src$="silverdownload.gif"]: 0.5
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
case:
|
||||
img[src$="x2.gif"]: 2
|
||||
"*": 1
|
||||
date:
|
||||
selector: "td:nth-child(2) > div:has(span[style=\"float: right;\"])"
|
||||
remove: span
|
||||
filters:
|
||||
- name: append
|
||||
args: " +00:00" # GMT
|
||||
- name: dateparse
|
||||
args: "dd-MM-yyyy HH:mm zzz"
|
||||
# TS Special Edition v.8.0
|
108
config/prowlarr/Definitions/badasstorrents.yml
Normal file
108
config/prowlarr/Definitions/badasstorrents.yml
Normal file
|
@ -0,0 +1,108 @@
|
|||
---
|
||||
id: badasstorrents
|
||||
name: Badass Torrents
|
||||
description: "Badass Torrents is a Public torrent site for MOVIES / TV / GENERAL"
|
||||
language: en-US
|
||||
type: public
|
||||
encoding: UTF-8
|
||||
requestDelay: 5
|
||||
links:
|
||||
- https://badasstorrents.com/
|
||||
legacylinks:
|
||||
- https://badasstorrents.nocensor.work/
|
||||
- https://badasstorrents.nocensor.biz/
|
||||
- https://badasstorrents.nocensor.sbs/
|
||||
- https://badasstorrents.nocensor.world/
|
||||
- https://badasstorrents.nocensor.lol/
|
||||
- https://badasstorrents.nocensor.art/
|
||||
- https://badasstorrents.mrunblock.guru/
|
||||
- https://badasstorrents.mrunblock.life/
|
||||
- https://badasstorrents.nocensor.click/
|
||||
- https://badasstorrents.mrunblock.bond/
|
||||
- https://badasstorrents.nocensor.cloud/
|
||||
|
||||
caps:
|
||||
categories:
|
||||
Anime: TV/Anime
|
||||
Apps: PC
|
||||
Books: Books
|
||||
Games: PC/Games
|
||||
Movies: Movies
|
||||
Music: Audio
|
||||
Other: Other
|
||||
TV: TV
|
||||
XXX: XXX
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
music-search: [q, album, artist]
|
||||
book-search: [q]
|
||||
settings:
|
||||
- name: downloadlink
|
||||
type: select
|
||||
label: Download link
|
||||
default: "magnet:?xt="
|
||||
options:
|
||||
"/download/": ".torrent"
|
||||
"magnet:?xt=": "magnet"
|
||||
- name: downloadlink2
|
||||
type: select
|
||||
label: Download link (fallback)
|
||||
default: "/download/"
|
||||
options:
|
||||
"/download/": ".torrent"
|
||||
"magnet:?xt=": "magnet"
|
||||
- name: info_download
|
||||
type: info
|
||||
label: About the Download links
|
||||
default: You can optionally set as a fallback an automatic alternate link, so if the .torrent download link fails your download will still be successful.
|
||||
|
||||
download:
|
||||
selectors:
|
||||
- selector: a[href*="{{ .Config.downloadlink }}"]
|
||||
attribute: href
|
||||
- selector: a[href*="{{ .Config.downloadlink2 }}"]
|
||||
attribute: href
|
||||
|
||||
search:
|
||||
paths:
|
||||
# search has 10 torrents per page, latest has 100 torrents per page.
|
||||
- path: "{{ if .Keywords }}search/{{ .Keywords }}{{ else }}latest.html{{ end }}"
|
||||
- path: "{{ if .Keywords }}/search/{{ .Keywords }}&page=10{{ else }}{{ end }}"
|
||||
keywordsfilters:
|
||||
- name: re_replace
|
||||
args: ["[\\s]+", "-"]
|
||||
|
||||
rows:
|
||||
selector: table.table-hover > tbody > tr:has(a[href*="/torrent/"])
|
||||
filters:
|
||||
- name: andmatch
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: a[href*="/category/"]
|
||||
title:
|
||||
selector: a[href*="/torrent/"]
|
||||
details:
|
||||
selector: a[href*="/torrent/"]
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href*="/torrent/"]
|
||||
attribute: href
|
||||
date:
|
||||
selector: td:nth-child(3)
|
||||
filters:
|
||||
- name: timeago
|
||||
size:
|
||||
selector: td:nth-child(4)
|
||||
seeders:
|
||||
selector: td:nth-child(5)
|
||||
leechers:
|
||||
selector: td:nth-child(6)
|
||||
downloadvolumefactor:
|
||||
text: 0
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
# engine n/a
|
81
config/prowlarr/Definitions/bangumi-moe.yml
Normal file
81
config/prowlarr/Definitions/bangumi-moe.yml
Normal file
|
@ -0,0 +1,81 @@
|
|||
---
|
||||
id: bangumi-moe
|
||||
name: Bangumi Moe
|
||||
description: "Bangumi Moe is a Public torrent site for ANIME"
|
||||
language: en-US
|
||||
type: public
|
||||
encoding: UTF-8
|
||||
requestDelay: 3
|
||||
links:
|
||||
- https://bangumi.moe/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 549ef207fe682f7549f1ea90, cat: TV/Anime, desc: "Anime"}
|
||||
- {id: 54967e14ff43b99e284d0bf7, cat: TV/Anime, desc: "Anime Pack"}
|
||||
- {id: 549cc9369310bc7d04cddf9f, cat: Movies, desc: "Anime Movie"}
|
||||
- {id: 549eef6ffe682f7549f1ea8b, cat: Audio, desc: "Music"}
|
||||
- {id: 549eefebfe682f7549f1ea8c, cat: Books/Comics, desc: "Comic"}
|
||||
- {id: 549ef015fe682f7549f1ea8d, cat: Console, desc: "Game"}
|
||||
- {id: 549ef250fe682f7549f1ea91, cat: Other, desc: "Other"}
|
||||
- {id: 549ff1db30bcfc225bf9e607, cat: Console, desc: "Dorama"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
music-search: [q]
|
||||
book-search: [q]
|
||||
|
||||
settings: []
|
||||
|
||||
search:
|
||||
paths:
|
||||
# https://bangumi.moe/api/torrent/latest
|
||||
# https://bangumi.moe/api/v2/torrent/search
|
||||
- path: "{{ if .Keywords }}api/v2/torrent/search{{ else }}api/torrent/latest{{ end }}"
|
||||
method: "{{ if .Keywords }}post{{ else }}get{{ end }}"
|
||||
response:
|
||||
type: json
|
||||
|
||||
inputs:
|
||||
# $raw: "{{ if .Keywords }}query={{ .Keywords }}{{ else }}{{ end }}"
|
||||
query: "{{ .Keywords }}"
|
||||
|
||||
rows:
|
||||
selector: torrents
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: category_tag_id
|
||||
title:
|
||||
selector: title
|
||||
details:
|
||||
text: /
|
||||
infohash:
|
||||
selector: infoHash
|
||||
poster:
|
||||
selector: introduction
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "src=\\\"(.+?)\\\""
|
||||
description:
|
||||
selector: category_tag.locale.en
|
||||
date:
|
||||
# 2021-10-19T06:10:15.772Z
|
||||
selector: publish_time
|
||||
size:
|
||||
selector: size
|
||||
optional: true
|
||||
default: 0 B
|
||||
grabs:
|
||||
selector: downloads
|
||||
seeders:
|
||||
selector: seeders
|
||||
leechers:
|
||||
selector: leechers
|
||||
downloadvolumefactor:
|
||||
text: 0
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
# json api v2
|
171
config/prowlarr/Definitions/beitai.yml
Normal file
171
config/prowlarr/Definitions/beitai.yml
Normal file
|
@ -0,0 +1,171 @@
|
|||
---
|
||||
id: beitai
|
||||
name: BeiTai (备胎)
|
||||
description: "BeiTai (备胎) is a CHINESE Private Torrent Tracker for HD MOVIES / TV"
|
||||
language: zh-CN
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://www.beitai.pt/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 401, cat: Movies, desc: "Movies/电影"}
|
||||
- {id: 404, cat: TV/Documentary, desc: "Documentaries/纪录片"}
|
||||
- {id: 405, cat: TV/Anime, desc: "Animations/动漫"}
|
||||
- {id: 402, cat: TV, desc: "TV Series/剧集"}
|
||||
- {id: 403, cat: TV, desc: "TV Shows/综艺"}
|
||||
- {id: 406, cat: Audio/Video, desc: "MusicVideo/音乐MV"}
|
||||
- {id: 407, cat: TV/Sport, desc: "Sports/运体"}
|
||||
- {id: 409, cat: Other, desc: "Misc/其他"}
|
||||
- {id: 408, cat: Audio, desc: "HQ Audio/无损音乐"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep, imdbid, doubanid]
|
||||
movie-search: [q, imdbid, doubanid]
|
||||
music-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: sort
|
||||
type: select
|
||||
label: Sort requested from site
|
||||
default: 4
|
||||
options:
|
||||
4: created
|
||||
7: seeders
|
||||
5: size
|
||||
1: title
|
||||
- name: type
|
||||
type: select
|
||||
label: Order requested from site
|
||||
default: desc
|
||||
options:
|
||||
desc: desc
|
||||
asc: asc
|
||||
- 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.
|
||||
- name: info_activity
|
||||
type: info
|
||||
label: Account Inactivity
|
||||
default: "Account retention rules:<ol><li>Veteran User and above will be retained forever</li><li>Elite User and above will not have their account deleted after parking (in the control panel)</li><li>Users with a parked account will be deleted if they do not log in for 400 consecutive days</li><li>Users with a non-parked account be deleted if they do not log in for 150 consecutive days</li><li>Users with no traffic (ie, upload/download data are both 0) will be deleted if they do not log in for 100 consecutive days.</li></ol>"
|
||||
|
||||
login:
|
||||
path: takelogin.php
|
||||
method: post
|
||||
inputs:
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
logout: ""
|
||||
securelogin: ""
|
||||
ssl: yes
|
||||
trackerssl: yes
|
||||
error:
|
||||
- selector: td.embedded:has(h2:contains("失败"))
|
||||
test:
|
||||
path: index.php
|
||||
selector: a[href="logout.php"]
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: torrents.php
|
||||
inputs:
|
||||
$raw: "{{ range .Categories }}cat{{.}}=1&{{end}}"
|
||||
search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ end }}{{ if .Query.DoubanID }}/{{ .Query.DoubanID }}{{ else }}{{ end }}{{ if or .Query.IMDBID .Query.DoubanID }}{{ else }}{{ .Keywords }}{{ end }}"
|
||||
# 0 incldead, 1 active, 2 dead
|
||||
incldead: 0
|
||||
# 0 all, 1 normal, 2 free, 3 2x, 4 2xfree, 5 50%, 6 2x50%, 7 30%
|
||||
spstate: "{{ if .Config.freeleech }}2{{ else }}0{{ end }}"
|
||||
# 0 title, 1 descr, 3 uploader, 4 imdburl (4 does not appear to work).
|
||||
search_area: "{{ if or .Query.IMDBID .Query.DoubanID }}1{{ else }}0{{ end }}"
|
||||
# 0 AND, 1 OR, 2 exact
|
||||
search_mode: 0
|
||||
sort: "{{ .Config.sort }}"
|
||||
type: "{{ .Config.type }}"
|
||||
notnewword: 1
|
||||
|
||||
rows:
|
||||
selector: table.torrents > tbody > tr:has(table.torrentname)
|
||||
|
||||
fields:
|
||||
title_default:
|
||||
selector: a[href^="details.php?id="]
|
||||
title:
|
||||
selector: a[title][href^="details.php?id="]
|
||||
attribute: title
|
||||
optional: true
|
||||
default: "{{ .Result.title_default }}"
|
||||
category:
|
||||
selector: a[href^="?cat="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: cat
|
||||
details:
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href^="download.php?id="]
|
||||
attribute: href
|
||||
imdbid:
|
||||
selector: div.imdb_100 > a
|
||||
attribute: href
|
||||
date_elapsed:
|
||||
# time type: time elapsed (default)
|
||||
selector: td:nth-child(4) > span[title]
|
||||
attribute: title
|
||||
optional: true
|
||||
filters:
|
||||
- name: append
|
||||
args: " +08:00" # CST
|
||||
- name: dateparse
|
||||
args: "yyyy-MM-dd HH:mm:ss zzz"
|
||||
date_added:
|
||||
# time added
|
||||
selector: td:nth-child(4):not(:has(span))
|
||||
optional: true
|
||||
filters:
|
||||
- name: append
|
||||
args: " +08:00" # CST
|
||||
- name: dateparse
|
||||
args: "yyyy-MM-ddHH:mm:ss zzz"
|
||||
date:
|
||||
text: "{{ if or .Result.date_elapsed .Result.date_added }}{{ or .Result.date_elapsed .Result.date_added }}{{ else }}now{{ end }}"
|
||||
size:
|
||||
selector: td:nth-child(5)
|
||||
seeders:
|
||||
selector: td:nth-child(6)
|
||||
leechers:
|
||||
selector: td:nth-child(7)
|
||||
grabs:
|
||||
selector: td:nth-child(8)
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
img.pro_free: 0
|
||||
img.pro_free2up: 0
|
||||
img.pro_50pctdown: 0.5
|
||||
img.pro_50pctdown2up: 0.5
|
||||
img.pro_30pctdown: 0.3
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
case:
|
||||
img.pro_50pctdown2up: 2
|
||||
img.pro_free2up: 2
|
||||
img.pro_2up: 2
|
||||
"*": 1
|
||||
description:
|
||||
selector: td:nth-child(2)
|
||||
remove: a, b, font, img, span
|
||||
# NexusPHP Standard v1.5 Beta 4
|
160
config/prowlarr/Definitions/beload.yml
Normal file
160
config/prowlarr/Definitions/beload.yml
Normal file
|
@ -0,0 +1,160 @@
|
|||
---
|
||||
id: beload
|
||||
name: Beload
|
||||
description: "Beload is a HUNGARIAN Private Torrent Tracker for MOVIES / TV / GENERAL"
|
||||
language: hu-HU
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://beload.org/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 27, cat: Movies/DVD, desc: "Animáció/DVD/Eng"}
|
||||
- {id: 26, cat: Movies/DVD, desc: "Animáció/DVD/Hun"}
|
||||
- {id: 25, cat: Movies/HD, desc: "Animáció/HD/Eng"}
|
||||
- {id: 24, cat: Movies/HD, desc: "Animáció/HD/Hun"}
|
||||
- {id: 28, cat: Movies/SD, desc: "Animáció/SD/Hun"}
|
||||
- {id: 12, cat: Movies/SD, desc: "Film/Cam/Eng"}
|
||||
- {id: 11, cat: Movies/SD, desc: "Film/Cam/Hun"}
|
||||
- {id: 4, cat: Movies/DVD, desc: "Film/DVD-R/Eng"}
|
||||
- {id: 3, cat: Movies/DVD, desc: "Film/DVD-R/Hun"}
|
||||
- {id: 6, cat: Movies/DVD, desc: "Film/DVD9/Eng"}
|
||||
- {id: 5, cat: Movies/DVD, desc: "Film/DVD9/Hun"}
|
||||
- {id: 2, cat: Movies/Foreign, desc: "Film/HD/Eng"}
|
||||
- {id: 1, cat: Movies/HD, desc: "Film/HD/Hun"}
|
||||
- {id: 8, cat: Movies/Foreign, desc: "Film/SD/Eng"}
|
||||
- {id: 7, cat: Movies/SD, desc: "Film/SD/Hun"}
|
||||
- {id: 10, cat: Movies/Foreign, desc: "Film/XviD/Eng"}
|
||||
- {id: 9, cat: Movies/SD, desc: "Film/XviD/Hun"}
|
||||
- {id: 31, cat: Audio/Audiobook, desc: "Hangoskönyv"}
|
||||
- {id: 42, cat: PC/Games, desc: "Játék/ISO"}
|
||||
- {id: 43, cat: PC/Games, desc: "Játék/RIP"}
|
||||
- {id: 30, cat: Books/Foreign, desc: "Könyv/Eng"}
|
||||
- {id: 29, cat: Books/EBook, desc: "Könyv/Hun"}
|
||||
- {id: 44, cat: PC/ISO, desc: "Program/ISO"}
|
||||
- {id: 45, cat: PC, desc: "Program/RIP"}
|
||||
- {id: 14, cat: TV/Foreign, desc: "Sorozat/HD/Eng"}
|
||||
- {id: 13, cat: TV/HD, desc: "Sorozat/HD/Hun"}
|
||||
- {id: 16, cat: TV/Foreign, desc: "Sorozat/SD/Eng"}
|
||||
- {id: 15, cat: TV/SD, desc: "Sorozat/SD/hun"}
|
||||
- {id: 38, cat: XXX/SD, desc: "XXX/HD"}
|
||||
- {id: 41, cat: XXX/ImageSet, desc: "XXX/Kép"}
|
||||
- {id: 40, cat: XXX/SD, desc: "XXX/SD"}
|
||||
- {id: 20, cat: Audio/Foreign, desc: "Zene/Mp3/Eng"}
|
||||
- {id: 19, cat: Audio/MP3, desc: "Zene/Mp3/Hun"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
music-search: [q]
|
||||
book-search: [q]
|
||||
|
||||
settings:
|
||||
- name: cookie
|
||||
type: text
|
||||
label: Cookie
|
||||
- name: info
|
||||
type: info
|
||||
label: How to get the Cookie
|
||||
default: "<ol><li>Login to this tracker with your browser</li><li>Open the <b>DevTools</b> panel by pressing <b>F12</b></li><li>Select the <b>Network</b> tab</li><li>Click on the <b>Doc</b> button (Chrome Browser) or <b>HTML</b> button (FireFox)</li><li>Refresh the page by pressing <b>F5</b></li><li>Click on the first row entry</li><li>Select the <b>Headers</b> tab on the Right panel</li><li>Find <b>'cookie:'</b> in the <b>Request Headers</b> section</li><li><b>Select</b> and <b>Copy</b> the whole cookie string <i>(everything after 'cookie: ')</i> and <b>Paste</b> here.</li></ol>"
|
||||
- name: sort
|
||||
type: select
|
||||
label: Sort requested from site
|
||||
default: 4
|
||||
options:
|
||||
1: title
|
||||
4: created
|
||||
7: seeders
|
||||
5: size
|
||||
- name: type
|
||||
type: select
|
||||
label: Order requested from site
|
||||
default: desc
|
||||
options:
|
||||
desc: desc
|
||||
asc: asc
|
||||
|
||||
login:
|
||||
method: cookie
|
||||
inputs:
|
||||
cookie: "{{ .Config.cookie }}"
|
||||
test:
|
||||
path: index.php
|
||||
selector: a[href="/logout.php"]
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: browse.php
|
||||
|
||||
inputs:
|
||||
$raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
|
||||
search: "{{ .Keywords }}"
|
||||
# 0 active, 1 both, 2 dead, 3 my uploa, 4 waiting for seeds
|
||||
incldead: 1
|
||||
sort: "{{ .Config.sort }}"
|
||||
order: "{{ .Config.type }}"
|
||||
# does not support imdbid searches
|
||||
|
||||
rows:
|
||||
selector: "div.torrents-container > table > tbody > tr > td.text > table > tbody > tr:has(a[href^=\"details.php?id=\"]):not(:has(a[href=\"browse.php?cat=0\"]))"
|
||||
after: 1
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: a[href^="browse.php?cat="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: cat
|
||||
title:
|
||||
selector: a[href^="details.php?id="][title]
|
||||
attribute: title
|
||||
details:
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href^="download.php?torrent="]
|
||||
attribute: href
|
||||
imdbid:
|
||||
selector: a[href*="imdb.com/title/tt"]
|
||||
attribute: href
|
||||
poster:
|
||||
selector: a.preview
|
||||
attribute: href
|
||||
date:
|
||||
selector: td:nth-last-child(6) > a
|
||||
attribute: title
|
||||
filters:
|
||||
- name: append
|
||||
args: " +01:00" # CET
|
||||
- name: dateparse
|
||||
args: "yyyy-MM-dd HH:mm:ss zzz"
|
||||
files:
|
||||
selector: td:nth-last-child(8)
|
||||
size:
|
||||
selector: td:nth-last-child(5) b
|
||||
grabs:
|
||||
selector: td:nth-last-child(4)
|
||||
seeders:
|
||||
selector: td:nth-last-child(3)
|
||||
leechers:
|
||||
selector: td:nth-last-child(2)
|
||||
description:
|
||||
case:
|
||||
i.fa-check: Verified
|
||||
i.fa-question: Unverified
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
"span[style=\"font-size: 10px;\"]:contains(\"0x\")": 0
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
case:
|
||||
"span[style=\"font-size: 10px;\"]:contains(\"2x\")": 2
|
||||
"span[style=\"font-size: 10px;\"]:contains(\"4x\")": 4
|
||||
"*": 1
|
||||
minimumseedtime:
|
||||
# 3 days (as seconds = 3 x 24 x 60 x 60)
|
||||
text: 259200
|
||||
# engine n/a
|
207
config/prowlarr/Definitions/bestcore.yml
Normal file
207
config/prowlarr/Definitions/bestcore.yml
Normal file
|
@ -0,0 +1,207 @@
|
|||
---
|
||||
id: bestcore
|
||||
name: Best-Core
|
||||
description: "Best-Core is a HUNGARIAN Private Tracker for MOVIES / TV"
|
||||
language: hu-HU
|
||||
type: private
|
||||
encoding: ISO-8859-2
|
||||
links:
|
||||
- https://best-core.info/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 81, cat: Movies/3D, desc: "3D"}
|
||||
- {id: 83, cat: Movies/UHD, desc: "4K/UHD"}
|
||||
- {id: 80, cat: Movies/Other, desc: "Best-Core"}
|
||||
- {id: 51, cat: Books/EBook, desc: "E-book"}
|
||||
- {id: 88, cat: Audio/Audiobook, desc: "E-book/Hangoskönyv"}
|
||||
- {id: 77, cat: Movies/HD, desc: "Film/BDRip/Eng"}
|
||||
- {id: 86, cat: Movies/HD, desc: "Film/BDRip/Ger"}
|
||||
- {id: 76, cat: Movies/HD, desc: "Film/BDRip/Hun"}
|
||||
- {id: 75, cat: Movies/BluRay, desc: "Film/Blu-ray/Eng"}
|
||||
- {id: 74, cat: Movies/BluRay, desc: "Film/Blu-ray/Hun"}
|
||||
- {id: 25, cat: Movies/DVD, desc: "Film/DVD/Eng"}
|
||||
- {id: 24, cat: Movies/DVD, desc: "Film/DVD/Hun"}
|
||||
- {id: 85, cat: Movies/DVD, desc: "Film/DVD9"}
|
||||
- {id: 21, cat: Movies/HD, desc: "Film/HD/Eng"}
|
||||
- {id: 53, cat: Movies/HD, desc: "Film/HD/Hun"}
|
||||
- {id: 20, cat: Movies/SD, desc: "Film/XviD/Eng"}
|
||||
- {id: 34, cat: Movies/SD, desc: "Film/XviD/Hun"}
|
||||
- {id: 90, cat: Movies/SD, desc: "Film/XviD/Pack"}
|
||||
- {id: 26, cat: PC/Games, desc: "Játék/ISO"}
|
||||
- {id: 52, cat: PC/Games, desc: "Játék/Rip"}
|
||||
- {id: 89, cat: Movies/SD, desc: "Kamerás/Eng"}
|
||||
- {id: 82, cat: Movies/SD, desc: "Kamerás/Hun"}
|
||||
- {id: 38, cat: Other, desc: "Képek"}
|
||||
- {id: 43, cat: Console/PS3, desc: "Konzol/PS"}
|
||||
- {id: 45, cat: Console/PSP, desc: "Konzol/PSP"}
|
||||
- {id: 44, cat: Console/XBox, desc: "Konzol/Xbox"}
|
||||
- {id: 73, cat: TV/Anime, desc: "Mese/Eng"}
|
||||
- {id: 70, cat: TV/Anime, desc: "Mese/Hun"}
|
||||
- {id: 37, cat: PC/Mobile-Other, desc: "Mobil"}
|
||||
- {id: 1, cat: PC/ISO, desc: "Program/ISO"}
|
||||
- {id: 22, cat: PC/0day, desc: "Program/Rip"}
|
||||
- {id: 54, cat: TV/SD, desc: "Sorozat/DVD/Eng"}
|
||||
- {id: 55, cat: TV/SD, desc: "Sorozat/DVD/Hun"}
|
||||
- {id: 58, cat: TV/SD, desc: "Sorozat/Xvid/Eng"}
|
||||
- {id: 7, cat: TV/SD, desc: "Sorozat/Xvid/Hun"}
|
||||
- {id: 62, cat: Audio/Video, desc: "Videoklip"}
|
||||
- {id: 64, cat: XXX/DVD, desc: "XXX/DVD"}
|
||||
- {id: 48, cat: XXX/ImageSet, desc: "XXX/Képek"}
|
||||
- {id: 9, cat: XXX/XviD, desc: "XXX/Xvid"}
|
||||
- {id: 40, cat: Audio/MP3, desc: "Zene/Eng"}
|
||||
- {id: 6, cat: Audio/MP3, desc: "Zene/Hun"}
|
||||
- {id: 87, cat: Audio/Lossless, desc: "Zene/Lossless"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep, imdbid]
|
||||
movie-search: [q, imdbid]
|
||||
book-search: [q]
|
||||
music-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: sort
|
||||
type: select
|
||||
label: Sort requested from site
|
||||
default: 4
|
||||
options:
|
||||
1: title
|
||||
4: added
|
||||
5: size
|
||||
7: seeders
|
||||
- name: type
|
||||
type: select
|
||||
label: Order requested from site
|
||||
default: desc
|
||||
options:
|
||||
desc: desc
|
||||
asc: asc
|
||||
- name: info_tpp
|
||||
type: info
|
||||
label: Results Per Page
|
||||
default: For best results, change the <b>Torrent oldalankén:</b> setting to <b>100</b> on your account profile.
|
||||
- name: info_login
|
||||
type: info
|
||||
label: About login error
|
||||
default: If you get a <b>Login Failed, got redirected.</b> error during your config <i>save</i> then most likely you have used an incorrect username or password.
|
||||
- name: info_activity
|
||||
type: info
|
||||
label: Account Inactivity
|
||||
default: "<ol><li>Users who have not accessed the site for 180 days will be deleted!</li><li>If the vacation mode is set, the system will not delete the given user for 365 days.</li></ol>"
|
||||
|
||||
login:
|
||||
path: takelogin.php
|
||||
method: post
|
||||
inputs:
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
test:
|
||||
path: index.php
|
||||
selector: a[href^="logout.php?c="]
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: browse.php
|
||||
inputs:
|
||||
$raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
|
||||
search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}" # for dashboard imdbid search
|
||||
# 0 active, 1 all, 2 deadonly, 3 freeleech
|
||||
incldead: "{{ if .Config.freeleech }}3{{ else }}1{{ end }}"
|
||||
sort: "{{ .Config.sort }}"
|
||||
type: "{{ .Config.type }}"
|
||||
|
||||
rows:
|
||||
selector: tr.torrent_h
|
||||
filters:
|
||||
- name: andmatch
|
||||
|
||||
fields:
|
||||
category_optional:
|
||||
selector: a[href^="browse.php?cat="]
|
||||
attribute: href
|
||||
optional: true
|
||||
filters:
|
||||
- name: querystring
|
||||
args: cat
|
||||
category:
|
||||
text: "{{ if .Result.category_optional }}{{ .Result.category_optional }}{{ else }}38{{ end }}"
|
||||
title_default:
|
||||
# can be abbreviated
|
||||
selector: a[href^="details.php?id="]
|
||||
title:
|
||||
# usually full length
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: title
|
||||
optional: true
|
||||
default: "{{ .Result.title_default }}"
|
||||
details:
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: href
|
||||
poster:
|
||||
selector: a[onmouseover]
|
||||
attribute: onmouseover
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "src=(.*?) "
|
||||
- name: replace
|
||||
args: ["https://i.kek.sh/null", ""]
|
||||
download:
|
||||
selector: a[href^="download.php?id="]
|
||||
attribute: href
|
||||
imdbid:
|
||||
selector: a[href*="imdb.com/title/tt"]
|
||||
attribute: href
|
||||
date:
|
||||
selector: td:nth-child(2)
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "(\\d{4}-\\d{2}-\\d{2}\\s\\d{2}:\\d{2}:\\d{2})"
|
||||
- name: append
|
||||
args: " +01:00" # CET
|
||||
- name: replace
|
||||
args: ["\xA0", " "]
|
||||
- name: dateparse
|
||||
args: "yyyy-MM-dd HH:mm:ss zzz"
|
||||
files:
|
||||
selector: td:nth-child(5)
|
||||
size:
|
||||
selector: td:nth-child(7)
|
||||
grabs:
|
||||
selector: td:nth-child(7)
|
||||
filters:
|
||||
- name: regexp
|
||||
args: x \d(\d+) x$
|
||||
seeders:
|
||||
selector: td:nth-child(8)
|
||||
leechers:
|
||||
selector: td:nth-child(9)
|
||||
description:
|
||||
case:
|
||||
img[src="pic/yes.png"]: Verified
|
||||
img[src="pic/nincs.png"]: Unverified
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
img[src="pic/free.png"]: 0
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
selector: td:nth-child(7) b
|
||||
filters:
|
||||
- name: regexp
|
||||
args: (\d+)
|
||||
minimumratio:
|
||||
text: 0.8
|
||||
minimumseedtime:
|
||||
# 3 days (as seconds = 3 x 24 x 60 x 60)
|
||||
text: 259200
|
||||
# custom v3.0
|
141
config/prowlarr/Definitions/bibliotik.yml
Normal file
141
config/prowlarr/Definitions/bibliotik.yml
Normal file
|
@ -0,0 +1,141 @@
|
|||
---
|
||||
id: bibliotik
|
||||
name: Bibliotik
|
||||
description: "Bibliotik is a private site for eBooks and audiobooks"
|
||||
language: en-US
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://bibliotik.me/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 1, cat: PC, desc: "Applications"}
|
||||
- {id: 3, cat: Audio/Audiobook, desc: "Audiobooks"}
|
||||
- {id: 4, cat: Books/Comics, desc: "Comics"}
|
||||
- {id: 5, cat: Books/EBook, desc: "eBooks"}
|
||||
- {id: 7, cat: Books/Mags, desc: "Magazines"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
book-search: [q, title, author]
|
||||
|
||||
settings:
|
||||
- name: username
|
||||
type: text
|
||||
label: Username
|
||||
- name: password
|
||||
type: password
|
||||
label: Password
|
||||
- name: orderby
|
||||
type: select
|
||||
label: Sort requested from site
|
||||
default: added
|
||||
options:
|
||||
"@relevance": relevance
|
||||
title: title
|
||||
size: size
|
||||
added: added
|
||||
seeders: seeders
|
||||
- name: order
|
||||
type: select
|
||||
label: Order requested from site
|
||||
default: DESC
|
||||
options:
|
||||
DESC: desc
|
||||
ASC: asc
|
||||
|
||||
login:
|
||||
path: /
|
||||
method: post
|
||||
inputs:
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
keeplogged: 1
|
||||
login: "Log In!"
|
||||
error:
|
||||
- selector: center:first-of-type
|
||||
test:
|
||||
path: torrents/
|
||||
selector: div#pre_header
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: torrents/
|
||||
inputs:
|
||||
search: "{{ if .Query.Author }} @authors {{ .Query.Author }}{{ else }}{{ end }}{{ if .Query.Title }} @title {{ .Query.Title }}{{ else }}{{ end }}{{ .Keywords }}"
|
||||
$raw: "{{ range .Categories }}cat[]={{.}}&{{end}}"
|
||||
orderby: "{{ .Config.orderby }}"
|
||||
order: "{{ .Config.order }}"
|
||||
|
||||
rows:
|
||||
selector: table#torrents_table > tbody > tr:has(.title)
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: td:first-child
|
||||
case:
|
||||
div[title="Applications"]: 1
|
||||
div[title="Audiobooks"]: 3
|
||||
div[title="Comics"]: 4
|
||||
div[title="Ebooks"]: 5
|
||||
div[title="Magazines"]: 7
|
||||
_editor:
|
||||
selector: .editorLink
|
||||
optional: true
|
||||
author:
|
||||
selector: .authorLink
|
||||
optional: true
|
||||
default: "{{ .Result._editor }}"
|
||||
year:
|
||||
selector: .torYear
|
||||
optional: true
|
||||
_filetype:
|
||||
selector: .torFormat
|
||||
optional: true
|
||||
_retail:
|
||||
selector: .torRetail
|
||||
optional: true
|
||||
booktitle:
|
||||
selector: .title a
|
||||
title:
|
||||
text: "{{ .Result.booktitle }}"
|
||||
filters:
|
||||
- name: append
|
||||
args: "{{ if .Result.author }} by {{ .Result.author }}{{ else }}{{ end }}{{ if .Result.year }} {{ .Result.year }}{{ else }}{{ end }}{{ if .Result._filetype }} {{ .Result._filetype }}{{ else }}{{ end }}{{ if .Result._retail }} {{ .Result._retail }}{{ else }}{{ end }}"
|
||||
details:
|
||||
selector: .title a
|
||||
attribute: href
|
||||
date:
|
||||
selector: .t_files_size_added time
|
||||
attribute: datetime
|
||||
optional: true
|
||||
default: now
|
||||
download:
|
||||
selector: a[title="Download"]
|
||||
attribute: href
|
||||
files:
|
||||
selector: .t_files_size_added
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "^\\s*(\\d+)\\s*file"
|
||||
size:
|
||||
selector: .t_files_size_added span
|
||||
attribute: data-bytecount
|
||||
seeders:
|
||||
selector: .seeders
|
||||
optional: true
|
||||
default: 0
|
||||
leechers:
|
||||
selector: .leechers
|
||||
optional: true
|
||||
default: 0
|
||||
grabs:
|
||||
selector: .snatches
|
||||
optional: true
|
||||
default: 0
|
||||
downloadvolumefactor:
|
||||
text: 1
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
# engine n/a
|
235
config/prowlarr/Definitions/bigfangroup.yml
Normal file
235
config/prowlarr/Definitions/bigfangroup.yml
Normal file
|
@ -0,0 +1,235 @@
|
|||
---
|
||||
id: bigfangroup
|
||||
name: BigFANGroup
|
||||
description: "BigFANGroup is a RUSSIAN Public Torrent Tracker for MOVIES / TV"
|
||||
language: ru-RU
|
||||
type: public
|
||||
encoding: windows-1251
|
||||
links:
|
||||
- https://bigfangroup.org/
|
||||
- https://www.freebfg.org/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 51, cat: Movies/3D, desc: "3D"}
|
||||
- {id: 12, cat: TV, desc: "Анимация"}
|
||||
- {id: 35, cat: Audio/Audiobook, desc: "Аудио-книги"}
|
||||
- {id: 13, cat: Movies, desc: "Боевик"}
|
||||
- {id: 52, cat: Movies, desc: "Биография"}
|
||||
- {id: 33, cat: Movies, desc: "Военный"}
|
||||
- {id: 45, cat: Audio/Video, desc: "Видеоклипы"}
|
||||
- {id: 48, cat: Movies, desc: "Вестерн"}
|
||||
- {id: 21, cat: Movies, desc: "Драма"}
|
||||
- {id: 32, cat: TV/Documentary, desc: "Документальный"}
|
||||
- {id: 39, cat: Movies, desc: "Детектив"}
|
||||
- {id: 44, cat: Audio, desc: "Зарубежная музыка"}
|
||||
- {id: 5, cat: PC/Games, desc: "Игры"}
|
||||
- {id: 28, cat: Movies, desc: "Исторический"}
|
||||
- {id: 18, cat: Movies, desc: "Катастрофа"}
|
||||
- {id: 24, cat: Movies, desc: "Комедия"}
|
||||
- {id: 36, cat: Movies, desc: "Криминал"}
|
||||
- {id: 38, cat: Books, desc: "Книги и журналы"}
|
||||
- {id: 53, cat: Movies, desc: "Классика"}
|
||||
- {id: 54, cat: Audio, desc: "Классическая музыка"}
|
||||
- {id: 19, cat: Movies, desc: "Мелодрама"}
|
||||
- {id: 20, cat: Movies, desc: "Мультфильм"}
|
||||
- {id: 31, cat: Movies, desc: "Мистика"}
|
||||
- {id: 46, cat: Audio, desc: "Муз. сборники"}
|
||||
- {id: 29, cat: Movies/Foreign, desc: "Наше кино"}
|
||||
- {id: 49, cat: TV, desc: "Научно-популярное"}
|
||||
- {id: 50, cat: TV, desc: "Новости"}
|
||||
- {id: 27, cat: Movies, desc: "Приключения"}
|
||||
- {id: 9, cat: Other, desc: "Разное"}
|
||||
- {id: 43, cat: Audio/Foreign, desc: "Русская музыка"}
|
||||
- {id: 1, cat: PC, desc: "Софт"}
|
||||
- {id: 11, cat: TV, desc: "Сериалы"}
|
||||
- {id: 37, cat: TV/Sport, desc: "Спорт"}
|
||||
- {id: 47, cat: Movies, desc: "Сказки"}
|
||||
- {id: 55, cat: Audio, desc: "Саундтрек"}
|
||||
- {id: 25, cat: TV, desc: "ТВ-шоу"}
|
||||
- {id: 22, cat: Movies, desc: "Триллер"}
|
||||
- {id: 26, cat: Movies, desc: "Ужасы"}
|
||||
- {id: 23, cat: Movies, desc: "Фантастика"}
|
||||
- {id: 30, cat: Movies, desc: "Фэнтази"}
|
||||
- {id: 42, cat: XXX, desc: "Эротика"}
|
||||
- {id: 14, cat: Movies/HD, desc: "HDTV"}
|
||||
- {id: 15, cat: Movies/DVD, desc: "DVD"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
music-search: [q]
|
||||
book-search: [q]
|
||||
|
||||
settings:
|
||||
- name: stripcyrillic
|
||||
type: checkbox
|
||||
label: Strip Cyrillic Letters
|
||||
default: false
|
||||
- name: addrussiantotitle
|
||||
type: checkbox
|
||||
label: Add RUS to end of all titles to improve language detection by Sonarr and Radarr. Will cause English-only results to be misidentified.
|
||||
default: false
|
||||
- name: sort
|
||||
type: select
|
||||
label: Sort requested from site
|
||||
default: added
|
||||
options:
|
||||
added: created
|
||||
seed: seeders
|
||||
size: size
|
||||
name: title
|
||||
- name: type
|
||||
type: select
|
||||
label: Order requested from site
|
||||
default: desc
|
||||
options:
|
||||
desc: desc
|
||||
asc: asc
|
||||
|
||||
search:
|
||||
# https://bigfangroup.org/browse.php?search=black+lightning&cat=0&incldead=0&year=0&format=0
|
||||
headers:
|
||||
Referer: ["{{ .Config.sitelink }}browse.php?search={{ .Keywords }}&cat=0&incldead=1&year=0&format=0"]
|
||||
paths:
|
||||
# https://bigfangroup.org/browse.php?ajax=1&search=the+librarian&cat=0&incldead=0&year=0&format=0
|
||||
- path: browse.php
|
||||
inputs:
|
||||
ajax: 1
|
||||
search: "{{ .Keywords }}"
|
||||
cat: 0
|
||||
# 0 active, 1 incldead, 2 onlydead, 3 gold, 4 noseed, 5 silver, 7 BFG
|
||||
incldead: 1
|
||||
year: 0
|
||||
format: 0
|
||||
s: "{{ .Config.sort }}"
|
||||
d: "{{ .Config.type }}"
|
||||
|
||||
keywordsfilters:
|
||||
# strip season and/or ep
|
||||
- name: re_replace
|
||||
args: ["(?i)\\b(?:[SE]\\d{1,4}){1,2}\\b\\s?", ""]
|
||||
|
||||
rows:
|
||||
selector: table > tbody#highlighted > tr:has(a[href^="browse.php?cat="])
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: a[href^="browse.php?cat="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: cat
|
||||
title:
|
||||
selector: a[href^="details.php?id="]
|
||||
filters:
|
||||
# normalize to SXXEYY format
|
||||
- name: re_replace
|
||||
args: ["(?i)[CС]езоны?[\\s:]*(\\d+(?:-\\d+)?).+?(?:\\s*(?:[CС]ери[ияй]|Эпизод|Выпуски?))[\\s:]*(\\d+(?:-\\d+)?)\\s*из\\s*(\\w?)", "S$1E$2 of $3"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(\\d+(?:-\\d+)?)\\s*[CС]езоны?.+?(\\d+(?:-\\d+)?)\\s*из\\s*(\\w?)(?:\\s*(?:[CС]ери[ияй]|Эпизод|Выпуски?))?", "S$1E$2 of $3"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(\\d+(?:-\\d+)?)\\s*[CС]езоны?.+?(\\d+(?:-\\d+)?)\\s*(?:\\s*(?:[CС]ери[ияй]|Эпизод|Выпуски?))\\s+из\\s*(\\w?)", "S$1E$2 of $3"]
|
||||
- name: re_replace
|
||||
args: ["(?i)[CС]езоны?[\\s:]*(\\d+(?:-\\d+)?).+?(\\d+(?:-\\d+)?)\\s*из\\s*(\\w?)(?:\\s*(?:[CС]ери[ияй]|Эпизод|Выпуски?))?", "S$1E$2 of $3"]
|
||||
- name: re_replace
|
||||
args: ["(?i)[CС]езоны?[\\s:]*(\\d+(?:-\\d+)?).+?(\\d+(?:-\\d+)?)\\s*(?:\\s*(?:[CС]ери[ияй]|Эпизод|Выпуски?))\\s+из\\s*(\\w?)", "S$1E$2 of $3"]
|
||||
- name: re_replace
|
||||
args: ["(?i)[CС]езоны?[\\s:]*(\\d+(?:-\\d+)?).+?(?:\\s*(?:[CС]ери[ияй]|Эпизод|Выпуски?))[\\s:]*(\\d+(?:-\\d+)?)", "S$1E$2"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(\\d+(?:-\\d+)?)\\s*[CС]езоны?.+?(\\d+(?:-\\d+)?)(?:\\s*(?:[CС]ери[ияй]|Эпизод|Выпуски?))", "S$1E$2"]
|
||||
- name: re_replace
|
||||
args: ["(?i)[CС]езоны?[\\s:]*(\\d+(?:-\\d+)?).+?(\\d+(?:-\\d+)?)(?:\\s*(?:[CС]ери[ияй]|Эпизод|Выпуски?))", "S$1E$2"]
|
||||
- name: re_replace
|
||||
args: ["(?i)[CС]езоны?[\\s:]*(\\d+(?:-\\d+)?)", "S$1"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(\\d+(?:-\\d+)?)\\s+[CС]езоны?", "S$1"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(?:\\s*(?:[CС]ери[ияй]|Эпизод|Выпуски?))[\\s:]*(\\d+(?:-\\d+)?)\\s*из\\s*(\\w?)", "E$1 of $2"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(\\d+(?:-\\d+)?)\\s*из\\s*(\\w?)(?:\\s*(?:[CС]ери[ияй]|Эпизод|Выпуски?))", "E$1 of $2"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(\\d+(?:-\\d+)?)\\s+(?:\\s*(?:[CС]ери[ияй]|Эпизод|Выпуски?))\\s+из\\s*(\\w?)", "E$1 of $2"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(?:\\s*(?:[CС]ери[ияй]|Эпизод|Выпуски?))[\\s:]*(\\d+(?:-\\d+)?)", "E$1"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(\\d+(?:-\\d+)?)\\s+(?:\\s*(?:[CС]ери[ияй]|Эпизод|Выпуски?))", "E$1"]
|
||||
- name: re_replace
|
||||
args: ["(?i)\\s\\|\\sот\\s([\\w\\p{P}\\p{S}]+)$", "-$1"]
|
||||
- name: re_replace
|
||||
args: ["\\s\\|\\s(\\w{4,})$", "-$1"]
|
||||
- name: re_replace
|
||||
args: ["(\\([\\p{IsCyrillic}\\W]+\\))|(^[\\p{IsCyrillic}\\W\\d]+\\/ )|([\\p{IsCyrillic} \\-]+,+)|([\\p{IsCyrillic}]+)", "{{ if .Config.stripcyrillic }}{{ else }}$1$2$3$4{{ end }}"]
|
||||
- name: re_replace
|
||||
args: ["(?i)\\bHDTV[-\\s]?Rip\\b", "HDTV"]
|
||||
- name: re_replace
|
||||
args: ["(?i)\\bSAT[-\\s]?Rip\\b", "HDTV"]
|
||||
- name: re_replace
|
||||
args: ["(?i)\\bWEB[-\\s]?DL[-\\s]?Rip\\b", "WEB-DL"]
|
||||
- name: re_replace
|
||||
args: ["(?i)\\bWEB\\sRip\\b", "WEBRip"]
|
||||
- name: re_replace
|
||||
args: ["(?i)\\bWEB\\sDL\\b", "WEB-DL"]
|
||||
- name: re_replace
|
||||
args: ["[\\[\\(\\{<«][\\s\\W]*[\\]\\)\\}>»]", ""]
|
||||
- name: re_replace
|
||||
args: ["^[\\s&,\\.!\\?\\+\\-_\\|\\/':]+", ""]
|
||||
- name: append
|
||||
args: "{{ if .Config.addrussiantotitle }} RUS{{ else }}{{ end }}"
|
||||
details:
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["details", "download"]
|
||||
size:
|
||||
selector: td:nth-child(6)
|
||||
seeders:
|
||||
selector: td:nth-child(7)
|
||||
leechers:
|
||||
selector: td:nth-child(8)
|
||||
date:
|
||||
selector: img[src="pic/time.png"]
|
||||
attribute: title
|
||||
filters:
|
||||
- name: replace
|
||||
args: [" в ", " "]
|
||||
- name: replace
|
||||
args: ["января", "January"]
|
||||
- name: replace
|
||||
args: ["февраля", "February"]
|
||||
- name: replace
|
||||
args: ["марта", "March"]
|
||||
- name: replace
|
||||
args: ["апреля", "April"]
|
||||
- name: replace
|
||||
args: ["мая", "May"]
|
||||
- name: replace
|
||||
args: ["июня", "June"]
|
||||
- name: replace
|
||||
args: ["июля", "July"]
|
||||
- name: replace
|
||||
args: ["августа", "August"]
|
||||
- name: replace
|
||||
args: ["сентября", "September"]
|
||||
- name: replace
|
||||
args: ["октября", "October"]
|
||||
- name: replace
|
||||
args: ["ноября", "November"]
|
||||
- name: replace
|
||||
args: ["декабря", "December"]
|
||||
- name: append
|
||||
args: " +03:00" # MSK
|
||||
- name: dateparse
|
||||
args: "d MMMM yyyy HH:mm:ss zzz"
|
||||
downloadvolumefactor:
|
||||
text: 0
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
description:
|
||||
selector: a[href^="details.php?id="]
|
||||
# engine n/a
|
193
config/prowlarr/Definitions/bitbazis.yml
Normal file
193
config/prowlarr/Definitions/bitbazis.yml
Normal file
|
@ -0,0 +1,193 @@
|
|||
---
|
||||
id: bitbazis
|
||||
name: Bit-Bázis
|
||||
description: "Bit-Bázis is a HUNGARIAN Private Tracker for MOVIES / TV"
|
||||
language: hu-HU
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
requestDelay: 2
|
||||
links:
|
||||
- https://bitbazis.net/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 85, cat: Movies/SD, desc: "Film-Cam", default: true}
|
||||
- {id: 15, cat: Movies/SD, desc: "Film-SD", default: true}
|
||||
- {id: 17, cat: Movies/DVD, desc: "Film-DVD", default: true}
|
||||
- {id: 83, cat: Movies/HD, desc: "Film-HD", default: true}
|
||||
- {id: 94, cat: Movies/HD, desc: "Film-FHD", default: true}
|
||||
- {id: 92, cat: Movies/UHD, desc: "Film-UHD", default: true}
|
||||
- {id: 22, cat: TV, desc: "Sorozat-Hun", default: true}
|
||||
- {id: 64, cat: Movies, desc: "Film-Pack", default: true}
|
||||
- {id: 24, cat: Audio/Video, desc: "Klip", default: true}
|
||||
- {id: 70, cat: Audio/Audiobook, desc: "Hangoskönyv", default: true}
|
||||
- {id: 27, cat: Books/EBook, desc: "Könyv", default: true}
|
||||
- {id: 69, cat: TV/Anime, desc: "Mese-SD", default: true}
|
||||
- {id: 91, cat: TV/Anime, desc: "Mese-HD", default: true}
|
||||
- {id: 25, cat: Audio/MP3, desc: "Mp3-Hun", default: true}
|
||||
- {id: 26, cat: Audio/MP3, desc: "Mp3-Eng", default: true}
|
||||
- {id: 84, cat: Audio/Lossless, desc: "FLAC-Hun", default: true}
|
||||
- {id: 71, cat: Audio/Lossless, desc: "FLAC-Eng", default: true}
|
||||
- {id: 31, cat: PC/Games, desc: "Játék", default: true}
|
||||
- {id: 81, cat: PC/0day, desc: "Program", default: true}
|
||||
- {id: 14, cat: Other, desc: "Egyéb", default: true}
|
||||
- {id: 66, cat: XXX/ImageSet, desc: "XXX", default: false}
|
||||
- {id: 33, cat: XXX/SD, desc: "XXX-SD", default: false}
|
||||
- {id: 89, cat: XXX/x264, desc: "XXX-HD", default: false}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
book-search: [q]
|
||||
music-search: [q]
|
||||
|
||||
settings:
|
||||
- name: cookie
|
||||
type: text
|
||||
label: Cookie
|
||||
- name: info
|
||||
type: info
|
||||
label: How to get the Cookie
|
||||
default: "<ol><li>Login to this tracker with your browser</li><li>Open the <b>DevTools</b> panel by pressing <b>F12</b></li><li>Select the <b>Network</b> tab</li><li>Click on the <b>Doc</b> button (Chrome Browser) or <b>HTML</b> button (FireFox)</li><li>Refresh the page by pressing <b>F5</b></li><li>Click on the first row entry</li><li>Select the <b>Headers</b> tab on the Right panel</li><li>Find <b>'cookie:'</b> in the <b>Request Headers</b> section</li><li><b>Select</b> and <b>Copy</b> the whole cookie string <i>(everything after 'cookie: ')</i> and <b>Paste</b> here.</li></ol>"
|
||||
- name: freeleech
|
||||
type: checkbox
|
||||
label: Filter freeleech only
|
||||
default: false
|
||||
- name: sort
|
||||
type: select
|
||||
label: Sort requested from site
|
||||
default: 4
|
||||
options:
|
||||
1: title
|
||||
4: added
|
||||
5: size
|
||||
- name: type
|
||||
type: select
|
||||
label: Order requested from site
|
||||
default: desc
|
||||
options:
|
||||
desc: desc
|
||||
asc: asc
|
||||
- name: info_tpp
|
||||
type: info
|
||||
label: Results Per Page
|
||||
default: For best results, change the <b>Torrentek száma egy oldalon:</b> setting to <b>50</b> on your account profile.
|
||||
- name: info_activity
|
||||
type: info
|
||||
label: Account Inactivity
|
||||
default: "If the user does not access the site for 1 month, he will receive an e-mail notification. If you stay away for 9 months, your account will be suspended and deleted. After the 9-month absence, the user cannot register again."
|
||||
|
||||
login:
|
||||
method: cookie
|
||||
inputs:
|
||||
cookie: "{{ .Config.cookie }}"
|
||||
test:
|
||||
path: index.php
|
||||
selector: li[onclick^="window.open('logout.php?k="]
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: browse.php
|
||||
categories: [85, 86, 15, 16, 17, 19, 83, 82, 94, 95, 92, 93, 22, 58, 64, 24, 70, 27, 50, 69, 68, 91, 25, 26, 84, 71, 31, 54, 81, 67, 49, 14, 65, 97]
|
||||
inputs:
|
||||
# 0 all, 1 active, 2 deadonly, 3 myuploads, 4 zeroseed, 6 re-seeded
|
||||
incldead: 0
|
||||
- path: browse_xxx.php
|
||||
categories: [33, 66, 89]
|
||||
inputs:
|
||||
# 0 active, 1 all, 2 deadonly, 3 myuploads, 4 zeroseed, 6 re-seeded
|
||||
incldead: 1
|
||||
inputs:
|
||||
$raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
|
||||
search: "{{ .Keywords }}"
|
||||
sort: "{{ .Config.sort }}"
|
||||
type: "{{ .Config.type }}"
|
||||
# site does not support imdbid searching
|
||||
# can support genre searching but you need to know the id, eg &genre23=1 for Comedy (id is 23)
|
||||
|
||||
rows:
|
||||
selector: "tr[class^=\"toriadatok\"]{{ if .Config.freeleech }}:has(i:contains(\"(Free)\")){{ else }}{{ end }}"
|
||||
|
||||
fields:
|
||||
categorydesc:
|
||||
selector: td[class^="catpic_"]
|
||||
attribute: class
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["catpic_", ""]
|
||||
title:
|
||||
selector: font[class="tori"], a.preview
|
||||
_id:
|
||||
selector: td.tori_infok
|
||||
attribute: id
|
||||
optional: true
|
||||
filters:
|
||||
- name: regexp
|
||||
args: (\d+)
|
||||
details:
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: href
|
||||
optional: true
|
||||
default: "details.php?id={{ .Result._id }}#adatlap"
|
||||
download:
|
||||
text: "download.php?torrent={{ .Result._id }}"
|
||||
poster:
|
||||
selector: a.preview
|
||||
attribute: href
|
||||
imdbid:
|
||||
selector: a[href*="imdb.com/title/tt"]
|
||||
attribute: href
|
||||
size:
|
||||
selector: td[id^="tsize"]
|
||||
date:
|
||||
# 36 perce
|
||||
# 13 órája és 59 perce
|
||||
# 2 napja és 10 órája
|
||||
# 1 hete és 1 napja
|
||||
# 1 éve és 30 hete
|
||||
selector: span.ellenorzes
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["és ", " "]
|
||||
- name: replace
|
||||
args: ["perce", "minute"]
|
||||
- name: replace
|
||||
args: ["órája", "hour"]
|
||||
- name: replace
|
||||
args: ["napja", "day"]
|
||||
- name: replace
|
||||
args: ["hete", "week"]
|
||||
- name: replace
|
||||
args: ["éve", "year"]
|
||||
- name: timeago
|
||||
grabs:
|
||||
selector: td.letoltok
|
||||
optional: true
|
||||
default: 0
|
||||
seeders:
|
||||
selector: td.seeders
|
||||
optional: true
|
||||
default: 0
|
||||
leechers:
|
||||
selector: td.leechers
|
||||
optional: true
|
||||
default: 0
|
||||
genre:
|
||||
selector: span[style="font-size:small;"]
|
||||
description:
|
||||
text: "{{ .Result.genre }}"
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
"i:contains(\"(Free)\")": 0
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
case:
|
||||
"i:contains(\"(2x)\")": 2
|
||||
"i:contains(\"(3x)\")": 3
|
||||
"i:contains(\"(4x)\")": 4
|
||||
"*": 1
|
||||
minimumseedtime:
|
||||
# 1 day (as seconds = 1 x 24 x 60 x 60)
|
||||
text: 86400
|
||||
# engine n/a
|
146
config/prowlarr/Definitions/bitded.yml
Normal file
146
config/prowlarr/Definitions/bitded.yml
Normal file
|
@ -0,0 +1,146 @@
|
|||
---
|
||||
id: bitded
|
||||
name: Bitded
|
||||
description: "Bitded is a THAI Private Torrent Tracker for MOVIES / TV / GENERAL"
|
||||
language: th-TH
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://www.dedbit.com/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 1, cat: Other, desc: "ในพระราชสำนัก (in the royal court)"}
|
||||
- {id: 4, cat: TV, desc: "รายการทีวี (TV)"}
|
||||
- {id: 7, cat: TV, desc: "ภาพยนตร์ชุด (Series)"}
|
||||
- {id: 12, cat: Books/EBook, desc: "หนังสือ สื่อการสอน (Books)"}
|
||||
- {id: 13, cat: Other/Misc, desc: "ทั่วไป (General)"}
|
||||
- {id: 14, cat: TV/Sport, desc: "กีฬา (Sport)"}
|
||||
- {id: 16, cat: TV/Documentary, desc: "สารคดี (Documentary)"}
|
||||
- {id: 18, cat: TV/Other, desc: "ธรรมะ (Dharma)"}
|
||||
- {id: 21, cat: Books/Comics, desc: "หนังสือการ์ตูน (Comics)"}
|
||||
- {id: 22, cat: TV/Anime, desc: "การ์ตูนอนิเมชั่น (Anime)"}
|
||||
- {id: 31, cat: Movies, desc: "ภาพยนตร์ (Movies)"}
|
||||
- {id: 34, cat: Movies/DVD, desc: "ภาพยนตร์ DVD (Movies DVD)"}
|
||||
- {id: 35, cat: Movies/HD, desc: "วีดีโอความละเอียดสูง (Movies HD)"}
|
||||
- {id: 41, cat: Audio/MP3, desc: "เพลง (Music)"}
|
||||
- {id: 43, cat: Audio/Video, desc: "มิวสิควีดีโอ (Music video)"}
|
||||
- {id: 53, cat: PC/0day, desc: "โปรแกรม/Windows (Software Windows)"}
|
||||
- {id: 54, cat: PC/Mac, desc: "โปรแกรม/Mac, Linux (Software Mac/Linux)"}
|
||||
- {id: 55, cat: PC/Mobile-Other, desc: "โปรแกรม/Mobile (Software Mobile)"}
|
||||
- {id: 61, cat: PC/Games, desc: "เกม-Computer (PC Games)"}
|
||||
- {id: 62, cat: Console, desc: "เกม-Console (Console)"}
|
||||
- {id: 63, cat: Console, desc: "เกมส์-พกพา (Console portable)"}
|
||||
- {id: 72, cat: Other, desc: "รูปภาพ (Pics)"}
|
||||
- {id: 74, cat: Other, desc: "J-IDOL"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
music-search: [q]
|
||||
book-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: 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.
|
||||
- name: sort
|
||||
type: select
|
||||
label: Sort requested from site
|
||||
default: added
|
||||
options:
|
||||
added: 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: takelogin.php
|
||||
method: post
|
||||
inputs:
|
||||
x: axion
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
error:
|
||||
- selector: td.embedded:contains("Login failed!")
|
||||
test:
|
||||
path: my.php
|
||||
selector: a[href="logout.php"]
|
||||
|
||||
search:
|
||||
paths:
|
||||
# https://www.dedbit.com/browse.php?c12=1&c13=1&incldead=1&freeload=1&search=&sort=added&h=6&d=DESC
|
||||
- path: browse.php
|
||||
inputs:
|
||||
$raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
|
||||
# 0 active, 1 incldead, 2 onlydead
|
||||
incldead: 1
|
||||
freeload: "{{ if .Config.freeleech }}1{{ else }}{{ end }}"
|
||||
search: "{{ .Keywords }}"
|
||||
sort: "{{ .Config.sort }}"
|
||||
d: "{{ .Config.type }}"
|
||||
# site does not support imdbid searching and does not display imdb links in results.
|
||||
|
||||
rows:
|
||||
selector: table.torrenttable tbody tr:has(a[href^="download.php"])
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: a[href^="browse.php?cat="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: cat
|
||||
title:
|
||||
selector: a[href^="details.php?id="]
|
||||
details:
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href^="download.php"]
|
||||
attribute: href
|
||||
files:
|
||||
selector: td:nth-last-child(9)
|
||||
date:
|
||||
selector: td:nth-last-child(7)
|
||||
filters:
|
||||
- name: append
|
||||
args: " +07:00" # ICT
|
||||
- name: dateparse
|
||||
args: "yyyy-MM-ddHH:mm:ss zzz"
|
||||
size:
|
||||
selector: td:nth-last-child(5)
|
||||
grabs:
|
||||
selector: td:nth-last-child(4)
|
||||
seeders:
|
||||
selector: td:nth-last-child(3)
|
||||
leechers:
|
||||
selector: td:nth-last-child(2)
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
img[src$="pic/freeload.png"]: 0
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
minimumratio:
|
||||
text: 1.0
|
||||
# engine n/a
|
176
config/prowlarr/Definitions/bithorlo.yml
Normal file
176
config/prowlarr/Definitions/bithorlo.yml
Normal file
|
@ -0,0 +1,176 @@
|
|||
---
|
||||
id: bithorlo
|
||||
name: Bithorlo
|
||||
description: "Bithorlo (BHO) is a HUNGARIAN Private Torrent Tracker for MOVIES / GENERAL"
|
||||
language: hu-HU
|
||||
type: private
|
||||
encoding: ISO-8859-2
|
||||
links:
|
||||
- https://www.bithorlo.info/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
# E-book
|
||||
- {id: 40, cat: Books, desc: "E-book/Eng"}
|
||||
- {id: 19, cat: Books, desc: "E-book/Hun"}
|
||||
# Játék
|
||||
- {id: 38, cat: Console, desc: "Játék/Consol"}
|
||||
- {id: 15, cat: PC/Games, desc: "Játék/ISO"}
|
||||
- {id: 37, cat: PC/Games, desc: "Játék/Rip"}
|
||||
# Filmek
|
||||
- {id: 51, cat: Movies/SD, desc: "Cam/Eng"}
|
||||
- {id: 50, cat: Movies/SD, desc: "Cam/Hun"}
|
||||
- {id: 2, cat: Movies/DVD, desc: "DVD/Eng"}
|
||||
- {id: 1, cat: Movies/DVD, desc: "DVD/Hun"}
|
||||
- {id: 42, cat: Movies/DVD, desc: "Dvd9/Eng"}
|
||||
- {id: 41, cat: Movies/DVD, desc: "Dvd9/Hun"}
|
||||
- {id: 29, cat: Movies/HD, desc: "HD/Eng"}
|
||||
- {id: 28, cat: Movies/HD, desc: "HD/Hun"}
|
||||
- {id: 33, cat: TV, desc: "Sorozat/Eng"}
|
||||
- {id: 5, cat: TV, desc: "Sorozat/Hun"}
|
||||
- {id: 52, cat: TV/HD, desc: "Sorozat/Eng/HD"}
|
||||
- {id: 53, cat: TV/HD, desc: "Sorozat/Hun/HD"}
|
||||
- {id: 4, cat: Movies/SD, desc: "Xvid/Eng"}
|
||||
- {id: 3, cat: Movies/SD, desc: "Xvid/Hun"}
|
||||
# Zene
|
||||
- {id: 12, cat: Audio, desc: "Zene/Eng"}
|
||||
- {id: 13, cat: Audio, desc: "Zene/Hun"}
|
||||
# Egyéb
|
||||
- {id: 20, cat: Other, desc: "Képek"}
|
||||
- {id: 21, cat: PC/Mobile-Other, desc: "Mobil"}
|
||||
# Program
|
||||
- {id: 54, cat: PC/0day, desc: "Win/Program/ISO"}
|
||||
- {id: 23, cat: PC/0day, desc: "Win/Program/Rip"}
|
||||
# Felnőtt tartalom
|
||||
- {id: 9, cat: XXX, desc: "XXX/Film"}
|
||||
- {id: 10, cat: XXX, desc: "XXX/Kép"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
music-search: [q]
|
||||
book-search: [q]
|
||||
|
||||
settings:
|
||||
- name: cookie
|
||||
type: text
|
||||
label: Cookie
|
||||
- name: info
|
||||
type: info
|
||||
label: How to get the Cookie
|
||||
default: "<ol><li>Login to this tracker with your browser</li><li>Open the <b>DevTools</b> panel by pressing <b>F12</b></li><li>Select the <b>Network</b> tab</li><li>Click on the <b>Doc</b> button (Chrome Browser) or <b>HTML</b> button (FireFox)</li><li>Refresh the page by pressing <b>F5</b></li><li>Click on the first row entry</li><li>Select the <b>Headers</b> tab on the Right panel</li><li>Find <b>'cookie:'</b> in the <b>Request Headers</b> section</li><li><b>Select</b> and <b>Copy</b> the whole cookie string <i>(everything after 'cookie: ')</i> and <b>Paste</b> here.</li></ol>"
|
||||
- name: useragent
|
||||
type: text
|
||||
label: User-Agent
|
||||
- name: info_useragent
|
||||
type: info
|
||||
label: How to get the User-Agent
|
||||
default: "<ol><li>From the same place you fetched the cookie,</li><li>Find <b>'user-agent:'</b> in the <b>Request Headers</b> section</li><li><b>Select</b> and <b>Copy</b> the whole user-agent string <i>(everything after 'user-agent: ')</i> and <b>Paste</b> here.</li></ol>"
|
||||
- name: freeleech
|
||||
type: checkbox
|
||||
label: Search freeleech only
|
||||
default: false
|
||||
- name: sort
|
||||
type: select
|
||||
label: Sort requested from site
|
||||
default: 4
|
||||
options:
|
||||
4: created
|
||||
7: seeders
|
||||
5: size
|
||||
1: title
|
||||
- name: type
|
||||
type: select
|
||||
label: Order requested from site
|
||||
default: desc
|
||||
options:
|
||||
desc: desc
|
||||
asc: asc
|
||||
- name: info_activity
|
||||
type: info
|
||||
label: Account Inactivity
|
||||
default: "Vacation mode is used to avoid deletion due to inactivity for 90 days. You can turn it on or off in the Profile menu, set the appropriate option and save your changes."
|
||||
|
||||
login:
|
||||
method: cookie
|
||||
inputs:
|
||||
cookie: "{{ .Config.cookie }}"
|
||||
test:
|
||||
path: index.php
|
||||
selector: a[href="logout.php"]
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: browse.php
|
||||
inputs:
|
||||
$raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
|
||||
search: "{{ .Keywords }}"
|
||||
# 0 active, 1 incldead, 2 onlydead, 3 freeleech
|
||||
incldead: "{{ if .Config.freeleech }}3{{ else }}1{{ end }}"
|
||||
sort: "{{ .Config.sort }}"
|
||||
type: "{{ .Config.type }}"
|
||||
|
||||
headers:
|
||||
User-Agent: ["{{ .Config.useragent }}"]
|
||||
|
||||
rows:
|
||||
selector: tr[class^="browse"]
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: a[href^="browse.php?cat="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: cat
|
||||
- name: trim # some torrents have an extra space
|
||||
title:
|
||||
selector: a[href^="torrent.php?id="]
|
||||
attribute: title
|
||||
details:
|
||||
selector: a[href^="torrent.php?id="]
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href^="download.php?id="]
|
||||
attribute: href
|
||||
poster:
|
||||
selector: a[href^="torrent.php?id="][onmouseover]
|
||||
attribute: onmouseover
|
||||
filters:
|
||||
- name: regexp
|
||||
args: ", '(.*)'"
|
||||
size:
|
||||
selector: td:nth-child(4)
|
||||
grabs:
|
||||
selector: td:nth-child(5)
|
||||
seeders:
|
||||
selector: td:nth-child(6)
|
||||
leechers:
|
||||
selector: td:nth-child(7)
|
||||
date:
|
||||
selector: "a[style=\"font-size: 8pt;cursor: pointer;\"][title]"
|
||||
filters:
|
||||
- name: append
|
||||
args: " +01:00" # CET
|
||||
- name: dateparse
|
||||
args: "yyyy-MM-dd HH:mm:ss zzz"
|
||||
description:
|
||||
case:
|
||||
img[src="./themes/Born/nemlatta.png"]: Unverified
|
||||
"*": Verified
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
img[title="Ingyenes letöltés"]: 0
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
selector: span:contains("Feltöltési szorzó")
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["Feltöltési szorzó × ", ""]
|
||||
minimumratio:
|
||||
text: 1.0
|
||||
minimumseedtime:
|
||||
# 2 days (as seconds = 2 x 24 x 60 x 60)
|
||||
text: 172800
|
||||
# engine n/a
|
160
config/prowlarr/Definitions/bithumen.yml
Normal file
160
config/prowlarr/Definitions/bithumen.yml
Normal file
|
@ -0,0 +1,160 @@
|
|||
---
|
||||
id: bithumen
|
||||
name: BitHUmen
|
||||
description: "BitHUmen is a Hungarian Private site for TV / MOVIES / GENERAL"
|
||||
language: hu-HU
|
||||
type: private
|
||||
encoding: ISO-8859-2
|
||||
links:
|
||||
- https://bithumen.be/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 23, cat: Movies/SD, desc: "Film/Hun/SD"}
|
||||
- {id: 24, cat: Movies/DVD, desc: "Film/Hun/DVD-R"}
|
||||
- {id: 25, cat: Movies/HD, desc: "Film/Hun/720p"}
|
||||
- {id: 37, cat: Movies/HD, desc: "Film/Hun/1080p"}
|
||||
- {id: 33, cat: Movies/BluRay, desc: "Film/Hun/Blu-ray"}
|
||||
- {id: 30, cat: XXX, desc: "XXX/SD"}
|
||||
- {id: 19, cat: Movies/SD, desc: "Film/Eng/SD"}
|
||||
- {id: 20, cat: Movies/DVD, desc: "Film/Eng/DVD-R"}
|
||||
- {id: 5, cat: Movies/HD, desc: "Film/Eng/720p"}
|
||||
- {id: 39, cat: Movies/HD, desc: "Film/Eng/1080p"}
|
||||
- {id: 40, cat: Movies/BluRay, desc: "Film/Eng/Blu-ray"}
|
||||
- {id: 34, cat: XXX, desc: "XXX/HD"}
|
||||
- {id: 7, cat: TV/SD, desc: "Sorozat/Hun/SD"}
|
||||
- {id: 41, cat: TV/HD, desc: "Sorozat/Hun/HD"}
|
||||
- {id: 26, cat: TV/SD, desc: "Sorozat/Eng/SD"}
|
||||
- {id: 42, cat: TV/HD, desc: "Sorozat/Eng/HD"}
|
||||
- {id: 28, cat: Books, desc: "eBook/Hun"}
|
||||
- {id: 29, cat: Books, desc: "eBook/Eng"}
|
||||
- {id: 9, cat: Audio/MP3, desc: "Mp3/Hun"}
|
||||
- {id: 35, cat: Audio/Lossless, desc: "Lossless/Hun"}
|
||||
- {id: 1, cat: PC/0day, desc: "Programok/ISO"}
|
||||
- {id: 4, cat: PC/Games, desc: "Játékok/ISO"}
|
||||
- {id: 31, cat: Console/PS4, desc: "Játékok/PS"}
|
||||
- {id: 36, cat: Console/Wii, desc: "Játékok/Wii"}
|
||||
- {id: 6, cat: Audio/MP3, desc: "Mp3/Eng"}
|
||||
- {id: 38, cat: Audio/Lossless, desc: "Lossless/Eng"}
|
||||
- {id: 22, cat: PC, desc: "Programok/egyéb"}
|
||||
- {id: 21, cat: PC, desc: "Játékok/Rip/Dox"}
|
||||
- {id: 32, cat: Console/XBox 360, desc: "Játékok/Xbox360"}
|
||||
- {id: 27, cat: Other, desc: "Klipek"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep, imdbid]
|
||||
movie-search: [q, imdbid]
|
||||
music-search: [q]
|
||||
book-search: [q]
|
||||
|
||||
login:
|
||||
path: takelogin.php
|
||||
method: post
|
||||
inputs:
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
error:
|
||||
- selector: td.embedded:has(h2:contains("bejelentkezés"))
|
||||
test:
|
||||
path: browse.php
|
||||
selector: a[href*="logout.php"]
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: browse.php
|
||||
inputs:
|
||||
$raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
|
||||
search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}" # for dashboard imdbid search
|
||||
incldead: 1
|
||||
|
||||
rows:
|
||||
selector: table#torrenttable > tbody > tr:has(a[href^="details.php?id="])
|
||||
filters:
|
||||
- name: andmatch
|
||||
|
||||
fields:
|
||||
# download button can be disbled in the profile, use details link instead
|
||||
# download:
|
||||
# selector: a[href^="download.php/"]
|
||||
# attribute: href
|
||||
download:
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["details.php?id=", "download.php/"]
|
||||
- name: append
|
||||
args: "/invalid.torrent"
|
||||
title_default:
|
||||
selector: a[href^="details.php?id="]
|
||||
title:
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: title
|
||||
optional: true
|
||||
default: "{{ .Result.title_default }}"
|
||||
details:
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: href
|
||||
imdbid:
|
||||
selector: a[href*="imdb.com/title/tt"]
|
||||
attribute: href
|
||||
poster:
|
||||
selector: a[onmouseover^="bithumen.UI.images.coverShow"]
|
||||
attribute: onmouseover
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "\"(.*?)\""
|
||||
category:
|
||||
selector: a[href^="?cat="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: cat
|
||||
seeders:
|
||||
selector: td:nth-child(8)
|
||||
leechers:
|
||||
selector: td:nth-child(9)
|
||||
filters:
|
||||
- name: regexp
|
||||
args: /\s*([\d,]+)
|
||||
grabs:
|
||||
selector: td:nth-child(7)
|
||||
files:
|
||||
selector: td:nth-child(3)
|
||||
size:
|
||||
selector: td:nth-child(6) > u
|
||||
downloadvolumefactor:
|
||||
text: 0
|
||||
uploadvolumefactor:
|
||||
selector: td:nth-child(5) > nobr > font:contains(" × ")
|
||||
optional: true
|
||||
default: 1
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["×", ""]
|
||||
date_year:
|
||||
selector: td:nth-child(5):contains('.')
|
||||
optional: true
|
||||
remove: font
|
||||
filters:
|
||||
- name: replace
|
||||
args: [". ", " "]
|
||||
- name: prepend
|
||||
args: "{{ .Today.Year }}."
|
||||
- name: re_replace
|
||||
args: ["([0-9]{4}).([0-9]+).([0-9]+) (.*)", "$2.$3.$1 $4"]
|
||||
date_day:
|
||||
selector: td:nth-child(5):contains('ma'), td:nth-child(5):contains("tegnap"), td:nth-child(5):contains('-')
|
||||
optional: true
|
||||
remove: font
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["ma", "today"]
|
||||
- name: replace
|
||||
args: ["tegnap", "yesterday"]
|
||||
date:
|
||||
text: "{{ if or .Result.date_day .Result.date_year }}{{ or .Result.date_day .Result.date_year }}{{ else }}now{{ end }}"
|
||||
description:
|
||||
selector: td:nth-child(2) > div
|
||||
# engine tbd
|
81
config/prowlarr/Definitions/bitmagnet.yml
Normal file
81
config/prowlarr/Definitions/bitmagnet.yml
Normal file
|
@ -0,0 +1,81 @@
|
|||
---
|
||||
id: bitmagnet
|
||||
name: BitMagnet (Local DHT)
|
||||
description: "BitMagnet is a self-hosted BitTorrent DHT search engine"
|
||||
language: en-US
|
||||
type: semi-private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- http://127.0.0.1:3333/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 2000, cat: Movies, desc: "movie"}
|
||||
- {id: 2030, cat: Movies/SD, desc: "movie_sd"} # unverified
|
||||
- {id: 2040, cat: Movies/HD, desc: "movie_hd"} # unverified
|
||||
- {id: 2045, cat: Movies/UHD, desc: "movie_uhd"} # unverified
|
||||
- {id: 2060, cat: Movies/3D, desc: "movie_3d"} # unverified
|
||||
- {id: 3000, cat: Audio, desc: "music"}
|
||||
- {id: 3030, cat: Audio/Audiobook, desc: "audiobook"}
|
||||
- {id: 4000, cat: PC, desc: "software"}
|
||||
- {id: 4050, cat: PC/Games, desc: "game"} # unverified
|
||||
- {id: 5000, cat: TV, desc: "tv_show"}
|
||||
- {id: 5030, cat: TV/SD, desc: "tv_show_sd"} # unverified
|
||||
- {id: 5040, cat: TV/HD, desc: "tv_show_hd"} # unverified
|
||||
- {id: 5045, cat: TV/UHD, desc: "tv_show_uhd"} # unverified
|
||||
- {id: 6000, cat: XXX, desc: "xxx"}
|
||||
- {id: 6070, cat: XXX/Other, desc: "xxx_other"} # unverified
|
||||
- {id: 7000, cat: Books, desc: "book"} # unverified
|
||||
- {id: 7020, cat: Books/EBook, desc: "ebook"}
|
||||
- {id: 7030, cat: Books/Comics, desc: "comic"}
|
||||
- {id: 8000, cat: Other, desc: "Unknown"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep, imdbid, tmdbid]
|
||||
movie-search: [q, imdbid, tmdbid]
|
||||
music-search: [q]
|
||||
book-search: [q]
|
||||
|
||||
settings: []
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: torznab/api
|
||||
response:
|
||||
type: xml
|
||||
inputs:
|
||||
t: "{{ .Query.Type }}"
|
||||
q: "{{ .Keywords }}"
|
||||
cat: "{{ join .Categories \",\" }}"
|
||||
imdbId: "{{ .Query.IMDBIDShort }}"
|
||||
tmdbId: "{{ .Query.TMDBID }}"
|
||||
season: "{{ .Query.Season }}"
|
||||
ep: "{{ .Query.Ep }}"
|
||||
limit: 100
|
||||
|
||||
rows:
|
||||
selector: rss > channel > item
|
||||
|
||||
fields:
|
||||
categorydesc:
|
||||
selector: category
|
||||
title:
|
||||
selector: title
|
||||
details:
|
||||
text: /
|
||||
date:
|
||||
selector: pubDate
|
||||
infohash:
|
||||
selector: guid
|
||||
size:
|
||||
selector: size
|
||||
seeders:
|
||||
text: 1
|
||||
leechers:
|
||||
text: 1
|
||||
downloadvolumefactor:
|
||||
text: 0
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
# torznab xml
|
209
config/prowlarr/Definitions/bitporn.yml
Normal file
209
config/prowlarr/Definitions/bitporn.yml
Normal file
|
@ -0,0 +1,209 @@
|
|||
---
|
||||
id: bitporn
|
||||
name: BitPorn
|
||||
description: "BitPorn is a HUNGARIAN Private Torrent Tracker for 3X"
|
||||
language: hu-HU
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://bitporn.eu/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 418, cat: XXX, desc: "Amateur"}
|
||||
- {id: 410, cat: XXX, desc: "Anal"}
|
||||
- {id: 414, cat: XXX, desc: "Animal"}
|
||||
- {id: 415, cat: XXX, desc: "Asian"}
|
||||
- {id: 416, cat: XXX, desc: "BBW"}
|
||||
- {id: 417, cat: XXX, desc: "BDSM"}
|
||||
- {id: 419, cat: XXX, desc: "Big Ass"}
|
||||
- {id: 420, cat: XXX, desc: "Big Tits"}
|
||||
- {id: 421, cat: XXX, desc: "Black"}
|
||||
- {id: 447, cat: XXX, desc: "Cartoon"}
|
||||
- {id: 448, cat: XXX, desc: "Casting"}
|
||||
- {id: 422, cat: XXX, desc: "Classic"}
|
||||
- {id: 434, cat: XXX, desc: "Collection"}
|
||||
- {id: 423, cat: XXX, desc: "Creampie"}
|
||||
- {id: 424, cat: XXX, desc: "Cumshot"}
|
||||
- {id: 451, cat: XXX, desc: "Deepthroat"}
|
||||
- {id: 455, cat: XXX, desc: "Extreme"}
|
||||
- {id: 454, cat: XXX, desc: "Family"}
|
||||
- {id: 425, cat: XXX, desc: "Feature"}
|
||||
- {id: 426, cat: XXX, desc: "Fetish"}
|
||||
- {id: 457, cat: XXX, desc: "Fisting"}
|
||||
- {id: 453, cat: XXX, desc: "Gangbang"}
|
||||
- {id: 427, cat: XXX, desc: "Gay / Bi"}
|
||||
- {id: 412, cat: XXX, desc: "Hair"}
|
||||
- {id: 411, cat: XXX, desc: "Hardcore"}
|
||||
- {id: 456, cat: XXX, desc: "HiddenCam"}
|
||||
- {id: 428, cat: XXX, desc: "Homemade"}
|
||||
- {id: 429, cat: XXX, desc: "Interracial"}
|
||||
- {id: 430, cat: XXX, desc: "Lesbian"}
|
||||
- {id: 431, cat: XXX, desc: "Magyar"}
|
||||
- {id: 432, cat: XXX, desc: "Masturbation"}
|
||||
- {id: 433, cat: XXX, desc: "Mature"}
|
||||
- {id: 435, cat: XXX, desc: "Milf"}
|
||||
- {id: 436, cat: XXX, desc: "Old and Young"}
|
||||
- {id: 437, cat: XXX, desc: "Parody"}
|
||||
- {id: 449, cat: XXX, desc: "Pictures"}
|
||||
- {id: 438, cat: XXX, desc: "Pissing"}
|
||||
- {id: 439, cat: XXX, desc: "POV"}
|
||||
- {id: 440, cat: XXX, desc: "Pregnant"}
|
||||
- {id: 452, cat: XXX, desc: "Public"}
|
||||
- {id: 441, cat: XXX, desc: "Shemale"}
|
||||
- {id: 442, cat: XXX, desc: "Softcore"}
|
||||
- {id: 443, cat: XXX, desc: "Squirt"}
|
||||
- {id: 444, cat: XXX, desc: "Straight"}
|
||||
- {id: 445, cat: XXX, desc: "Teen"}
|
||||
- {id: 450, cat: XXX, desc: "Threesome"}
|
||||
- {id: 446, cat: XXX, desc: "VR"}
|
||||
- {id: 458, cat: XXX, desc: "Uncategorized"}
|
||||
|
||||
modes:
|
||||
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: sort
|
||||
type: select
|
||||
label: Sort requested from site
|
||||
default: 4
|
||||
options:
|
||||
4: created
|
||||
7: seeders
|
||||
5: size
|
||||
1: title
|
||||
- name: type
|
||||
type: select
|
||||
label: Order requested from site
|
||||
default: desc
|
||||
options:
|
||||
desc: desc
|
||||
asc: asc
|
||||
- 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.
|
||||
- name: info_activity
|
||||
type: info
|
||||
label: Account Inactivity
|
||||
default: "Inactive accounts will be deleted based on the following rules:<ul><li>Elite-ranked or higher-ranked accounts are never deleted after parking (in the control panel).</li><li>Veteran-ranked or higher-ranked accounts are never deleted.</li><li>Parked accounts are deleted if users haven't logged in for more than 400 days.</li><li>Non-parked accounts are deleted if users haven't logged in for more than 150 days.</li><li>Accounts with both uploaded and downloaded quantities at 0 will be deleted if users haven't logged in for more than 100 consecutive days.</li></ul>"
|
||||
|
||||
login:
|
||||
path: takelogin.php
|
||||
method: post
|
||||
inputs:
|
||||
secret: ""
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
error:
|
||||
- selector: td.embedded:has(h2:contains("Bejelentkezés sikertelen!"))
|
||||
test:
|
||||
path: index.php
|
||||
selector: a[href="logout.php"]
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: torrents.php
|
||||
inputs:
|
||||
$raw: "{{ range .Categories }}cat{{.}}=1&{{end}}"
|
||||
search: "{{ .Keywords }}"
|
||||
# 0 incldead, 1 active, 2 dead
|
||||
incldead: 0
|
||||
# 0 all, 1 normal, 2 free, 3 2x, 4 2xfree, 5 50%, 6 2x50%, 7 30%
|
||||
spstate: "{{ if .Config.freeleech }}2{{ else }}0{{ end }}"
|
||||
# 0 title, 1 descr, 3 uploader, 4 imdburl
|
||||
search_area: 0
|
||||
# 0 AND, 2 exact
|
||||
search_mode: 0
|
||||
sort: "{{ .Config.sort }}"
|
||||
type: "{{ .Config.type }}"
|
||||
notnewword: 1
|
||||
|
||||
rows:
|
||||
selector: table.torrents > tbody > tr:has(a[href^="details.php?id="])
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: a[href^="?cat="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: cat
|
||||
title_default:
|
||||
selector: a[href^="details.php?id="]
|
||||
title:
|
||||
selector: a[title][href^="details.php?id="]
|
||||
attribute: title
|
||||
optional: true
|
||||
default: "{{ .Result.title_default }}"
|
||||
details:
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href^="download.php?id="]
|
||||
attribute: href
|
||||
poster:
|
||||
selector: img[data-src]
|
||||
attribute: data-src
|
||||
date_elapsed:
|
||||
# time type: time elapsed (default)
|
||||
selector: td.rowfollow:nth-child(4) > span[title]
|
||||
attribute: title
|
||||
optional: true
|
||||
filters:
|
||||
- name: append
|
||||
args: " +01:00" # CET
|
||||
- name: dateparse
|
||||
args: "yyyy-MM-dd HH:mm:ss zzz"
|
||||
date_added:
|
||||
# time added
|
||||
selector: td.rowfollow:nth-child(4):not(:has(span))
|
||||
optional: true
|
||||
filters:
|
||||
- name: append
|
||||
args: " +01:00" # CET
|
||||
- name: dateparse
|
||||
args: "yyyy-MM-ddHH:mm:ss zzz"
|
||||
date:
|
||||
text: "{{ if or .Result.date_elapsed .Result.date_added }}{{ or .Result.date_elapsed .Result.date_added }}{{ else }}now{{ end }}"
|
||||
size:
|
||||
selector: td.rowfollow:nth-child(5)
|
||||
seeders:
|
||||
selector: td.rowfollow:nth-child(6)
|
||||
leechers:
|
||||
selector: td.rowfollow:nth-child(7)
|
||||
grabs:
|
||||
selector: td.rowfollow:nth-child(8)
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
img.pro_free: 0
|
||||
img.pro_free2up: 0
|
||||
img.pro_50pctdown: 0.5
|
||||
img.pro_50pctdown2up: 0.5
|
||||
img.pro_30pctdown: 0.3
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
case:
|
||||
img.pro_50pctdown2up: 2
|
||||
img.pro_free2up: 2
|
||||
img.pro_2up: 2
|
||||
"*": 1
|
||||
minimumratio:
|
||||
text: 1.0
|
||||
minimumseedtime:
|
||||
# 48 hours (as seconds = 2 x 24 x 60 x 60)
|
||||
text: 172800
|
||||
description:
|
||||
selector: td.rowfollow:nth-child(2)
|
||||
remove: a, b, font, img, span
|
||||
# NexusPHP v1.8.5 2023-07-06
|
214
config/prowlarr/Definitions/bitru.yml
Normal file
214
config/prowlarr/Definitions/bitru.yml
Normal file
|
@ -0,0 +1,214 @@
|
|||
---
|
||||
id: bitru
|
||||
name: BitRu
|
||||
description: "BitRu is a RUSSIAN Public Torrent Tracker for MOVIES / TV / GENERAL"
|
||||
language: ru-RU
|
||||
type: public
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://bitru.org/
|
||||
legacylinks:
|
||||
- http://bitru.org/ # site forces https
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: movie, cat: Movies, desc: Movie}
|
||||
- {id: serial, cat: TV, desc: Serial}
|
||||
- {id: music, cat: Audio, desc: Music}
|
||||
- {id: game, cat: PC/Games, desc: Game}
|
||||
- {id: soft, cat: PC, desc: Software}
|
||||
- {id: literature, cat: Books, desc: Literature}
|
||||
- {id: audiobook, cat: Audio/Audiobook, desc: Audiobook}
|
||||
- {id: video, cat: Movies, desc: Movies}
|
||||
- {id: image, cat: Other, desc: Image}
|
||||
- {id: xxx, cat: XXX, desc: xxx}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
music-search: [q]
|
||||
book-search: [q]
|
||||
|
||||
settings:
|
||||
- name: stripcyrillic
|
||||
type: checkbox
|
||||
label: Strip Cyrillic Letters
|
||||
default: false
|
||||
- name: addrussiantotitle
|
||||
type: checkbox
|
||||
label: Add RUS to end of all titles to improve language detection by Sonarr and Radarr. Will cause English-only results to be misidentified.
|
||||
default: false
|
||||
- name: adverts
|
||||
type: checkbox
|
||||
label: Include Advertising
|
||||
default: true
|
||||
- name: sort
|
||||
type: select
|
||||
label: Sort requested from site
|
||||
default: _
|
||||
options:
|
||||
_: created
|
||||
seeders: seeders
|
||||
size: size
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: browse.php
|
||||
inputs:
|
||||
s: "{{ .Keywords }}"
|
||||
sort: "{{ re_replace .Config.sort \"_\" \"\" }}"
|
||||
rek: "{{ if .Config.adverts }}{{ else }}no{{ end }}"
|
||||
|
||||
keywordsfilters:
|
||||
- name: re_replace # S01 or S01E01 to 1 сезон
|
||||
args: ["(?i)\\bS0*(\\d+)(?:E0*(\\d+))?\\b", "$1 сезон"]
|
||||
|
||||
rows:
|
||||
selector: table.browse-list > tbody > tr
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: td:nth-child(1) a
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: tmp
|
||||
title:
|
||||
selector: a[href^="details.php?id="]
|
||||
filters:
|
||||
- name: re_replace
|
||||
args: ["(?i)(\\d+(?:-\\d+)?)\\s+[CС]езоны?\\s*[:]*.+?\\((\\d+(?:-\\d+)?)\\s*из\\s*(\\d+)\\)", "(S$1E$2 of $3)"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(\\d+(?:-\\d+)?)\\s+[CС]езоны?\\s*[:]*.+?\\((\\d+(?:-\\d+)?)\\)", "(S$1E$2)"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(\\d+(?:-\\d+)?)\\s+[CС]езоны?", "(S$1)"]
|
||||
- name: re_replace
|
||||
args: ["(?i)\\((\\d+(?:-\\d+)?)\\s*из\\s*(\\d+)\\)", "(E$1 of $2)"]
|
||||
- name: re_replace
|
||||
args: ["(?i)\\bселезень\\b", "selezen"]
|
||||
- name: re_replace
|
||||
args: ["(?i)\\bFiles-х\\b", "Files-x"]
|
||||
- name: re_replace
|
||||
args: ["(?i)\\s\\|\\sот\\s([\\w\\p{P}\\p{S}]+)$", "-$1"]
|
||||
- name: re_replace
|
||||
args: ["\\s\\|\\s(\\w{4,})$", "-$1"]
|
||||
- name: re_replace
|
||||
args: ["(\\([\\p{IsCyrillic}\\W]+\\))|(^[\\p{IsCyrillic}\\W\\d]+\\/ )|([\\p{IsCyrillic} \\-]+,+)|([\\p{IsCyrillic}]+)", "{{ if .Config.stripcyrillic }}{{ else }}$1$2$3$4{{ end }}"]
|
||||
- name: re_replace
|
||||
args: ["(?i)\\bHDTV[-\\s]?Rip\\b", "HDTV"]
|
||||
- name: re_replace
|
||||
args: ["(?i)\\bSAT[-\\s]?Rip\\b", "HDTV"]
|
||||
- name: re_replace
|
||||
args: ["(?i)\\bWEB[-\\s]?DL[-\\s]?Rip\\b", "WEB-DL"]
|
||||
- name: re_replace
|
||||
args: ["(?i)\\bWEB\\sRip\\b", "WEBRip"]
|
||||
- name: re_replace
|
||||
args: ["(?i)\\bWEB\\sDL\\b", "WEB-DL"]
|
||||
- name: re_replace
|
||||
args: ["[\\[\\(\\{<«][\\s\\W]*[\\]\\)\\}>»]", ""]
|
||||
- name: re_replace
|
||||
args: ["^[\\s&,\\.!\\?\\+\\-_\\|\\/':]+", ""]
|
||||
- name: re_replace
|
||||
args: ["(?i)^\\(\\s*([SE]\\d+.*?)\\s*\\)[\\s\\/\\|]*(.+)(-[\\w\\p{P}\\p{S}]*)$", "$2 $1$3"]
|
||||
- name: re_replace
|
||||
args: ["(?i)^\\(\\s*([SE]\\d+.*?)\\s*\\)[\\s\\/\\|]*(.+)", "$2 $1"]
|
||||
- name: append
|
||||
args: "{{ if .Config.addrussiantotitle }} RUS{{ else }}{{ end }}"
|
||||
details:
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["details", "download"]
|
||||
description:
|
||||
selector: i.fa-ad
|
||||
attribute: title
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["Присутствует реклама", "[Contains Adverts] "]
|
||||
description|append:
|
||||
selector: a[href^="details.php?id="]
|
||||
poster:
|
||||
selector: div.it-image > img
|
||||
attribute: src
|
||||
date_today:
|
||||
# Сегодня в 09:09 от
|
||||
# Вчера в 22:47 от
|
||||
selector: td:nth-child(2) div.b-info div span:nth-child(1):contains("Сегодня"), td:nth-child(2) div.b-info div span:nth-child(1):contains("Вчера")
|
||||
optional: true
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "(.*?) от "
|
||||
- name: replace
|
||||
args: ["Сегодня в", "Today"]
|
||||
- name: replace
|
||||
args: ["Вчера в", "Yesterday"]
|
||||
date_year:
|
||||
# 08 ноября 2019 в 23:53 от
|
||||
selector: td:nth-child(2) div.b-info div span:nth-child(1):not(:contains("Сегодня")):not(:contains("Вчера"))
|
||||
optional: true
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "(.*?) от "
|
||||
- name: replace
|
||||
args: [" в ", " "]
|
||||
- name: replace
|
||||
args: ["января", "January"]
|
||||
- name: replace
|
||||
args: ["февраля", "February"]
|
||||
- name: replace
|
||||
args: ["марта", "March"]
|
||||
- name: replace
|
||||
args: ["апреля", "April"]
|
||||
- name: replace
|
||||
args: ["мая", "May"]
|
||||
- name: replace
|
||||
args: ["июня", "June"]
|
||||
- name: replace
|
||||
args: ["июля", "July"]
|
||||
- name: replace
|
||||
args: ["августа", "August"]
|
||||
- name: replace
|
||||
args: ["сентября", "September"]
|
||||
- name: replace
|
||||
args: ["октября", "October"]
|
||||
- name: replace
|
||||
args: ["ноября", "November"]
|
||||
- name: replace
|
||||
args: ["декабря", "December"]
|
||||
- name: append
|
||||
args: " +03:00" # MSK
|
||||
- name: dateparse
|
||||
args: "dd MMMM yyyy HH:mm zzz"
|
||||
date:
|
||||
text: "{{ if or .Result.date_today .Result.date_year }}{{ or .Result.date_today .Result.date_year }}{{ else }}now{{ end }}"
|
||||
size:
|
||||
selector: td:nth-child(3)
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["ТБ", "TB"]
|
||||
- name: replace
|
||||
args: ["ГБ", "GB"]
|
||||
- name: replace
|
||||
args: ["МБ", "MB"]
|
||||
- name: replace
|
||||
args: ["КБ", "KB"]
|
||||
seeders:
|
||||
selector: td:nth-child(4)
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["?", "1"]
|
||||
leechers:
|
||||
selector: td:nth-child(5)
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["?", "0"]
|
||||
downloadvolumefactor:
|
||||
text: 0
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
# engine n/a
|
198
config/prowlarr/Definitions/bitsearch.yml
Normal file
198
config/prowlarr/Definitions/bitsearch.yml
Normal file
|
@ -0,0 +1,198 @@
|
|||
---
|
||||
id: bitsearch
|
||||
name: BitSearch
|
||||
description: "BitSearch is a Public torrent meta-search engine"
|
||||
language: en-US
|
||||
type: public
|
||||
encoding: UTF-8
|
||||
requestDelay: 2
|
||||
links:
|
||||
- https://bitsearch.to/
|
||||
legacylinks:
|
||||
- https://bitsearch.nocensor.biz/
|
||||
- https://bitsearch.nocensor.sbs/
|
||||
- https://bitsearch.nocensor.world/
|
||||
- https://bitsearch.nocensor.lol/
|
||||
- https://bitsearch.mrunblock.guru/
|
||||
- https://bitsearch.mrunblock.life/
|
||||
- https://bitsearch.nocensor.click/
|
||||
- https://bitsearch.nocensor.cloud/
|
||||
- https://bitsearch.mrunblock.bond/
|
||||
|
||||
caps:
|
||||
categories:
|
||||
AudioBook: Audio/Audiobook
|
||||
eBook: Books/EBook
|
||||
"Ebook/Course": Books/EBook
|
||||
Games: PC/Games
|
||||
"Games/PC": PC/Games
|
||||
Movies: Movies
|
||||
Music: Audio
|
||||
"Music/Album": Audio
|
||||
"Music/mp3": Audio/MP3
|
||||
"Music/Lossless": Audio/Lossless
|
||||
"Music/Video": Audio/Video
|
||||
Other: Other
|
||||
"Other/Android": PC/Mobile-Android
|
||||
"Other/Archive": Other
|
||||
"Other/Audio": Audio
|
||||
"Other/Database": PC
|
||||
"Other/DiskImage": PC/ISO
|
||||
"Other/Document": Books/Comics
|
||||
"Other/Image": Other/Misc
|
||||
"Other/Program": PC/0day
|
||||
"Other/Sourcecode": PC
|
||||
"Other/Source Code": PC
|
||||
"Other/Video": Other
|
||||
Softwares: PC/0day
|
||||
"Softwares/Windows": PC/0day
|
||||
TV: TV
|
||||
Unknown: Other
|
||||
XXX: XXX
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
music-search: [q]
|
||||
book-search: [q]
|
||||
|
||||
settings:
|
||||
- name: prefer_magnet_links
|
||||
type: checkbox
|
||||
label: Prefer Magnet Links
|
||||
default: false
|
||||
- name: sort
|
||||
type: select
|
||||
label: Sort requested from site
|
||||
default: date
|
||||
options:
|
||||
date: created
|
||||
seeders: seeders
|
||||
size: size
|
||||
- name: type
|
||||
type: select
|
||||
label: Order requested from site
|
||||
default: desc
|
||||
options:
|
||||
desc: desc
|
||||
asc: asc
|
||||
- name: info_8000
|
||||
type: info
|
||||
label: About BitSearch Categories
|
||||
default: BitSearch does not properly return categories in its search results for some releases.</br>To add to your Apps' Torznab indexer, you will need to include the 8000(Other) category.
|
||||
|
||||
search:
|
||||
paths:
|
||||
# https://bitsearch.to/search?q=&sort=date&order=desc
|
||||
- path: search
|
||||
inputs:
|
||||
q: "{{ .Keywords }}"
|
||||
sort: "{{ .Config.sort }}"
|
||||
order: "{{ .Config.type }}"
|
||||
limit: 100
|
||||
page: 1
|
||||
|
||||
keywordsfilters:
|
||||
- name: re_replace
|
||||
args: ["\\.", " "]
|
||||
|
||||
rows:
|
||||
selector: div.search-result:has(a.dl-torrent), li.search-result:has(a.dl-torrent)
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: a.category
|
||||
title:
|
||||
selector: h5 a
|
||||
details:
|
||||
selector: h5 a
|
||||
attribute: href
|
||||
download_optional:
|
||||
selector: a.dl-torrent
|
||||
attribute: href
|
||||
optional: true
|
||||
download:
|
||||
text: "{{ if .Config.prefer_magnet_links }}{{ else }}{{ .Result.download_optional }}{{ end }}"
|
||||
optional: true
|
||||
magnet:
|
||||
selector: a[href^="magnet:?xt"]
|
||||
attribute: href
|
||||
infohash:
|
||||
selector: a[href^="magnet:?xt"]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: regexp
|
||||
args: ([A-F|a-f|0-9]{40})
|
||||
grabs_dot:
|
||||
selector: div.stats div:has(img[alt="Download"]):contains(".")
|
||||
optional: true
|
||||
filters:
|
||||
- name: replace
|
||||
args: [".", ""]
|
||||
- name: replace
|
||||
args: ["K", "00"]
|
||||
- name: replace
|
||||
args: ["M", "00000"]
|
||||
grabs_nodot:
|
||||
selector: div.stats div:has(img[alt="Download"]):not(:contains("."))
|
||||
optional: true
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["K", "000"]
|
||||
- name: replace
|
||||
args: ["M", "000000"]
|
||||
grabs:
|
||||
text: "{{ if or .Result.grabs_dot .Result.grabs_nodot }}{{ or .Result.grabs_dot .Result.grabs_nodot }}{{ else }}0{{ end }}"
|
||||
size:
|
||||
selector: div.stats div:has(img[alt="Size"])
|
||||
seeders_dot:
|
||||
selector: div.stats div:has(img[alt="Seeder"]):contains(".")
|
||||
optional: true
|
||||
filters:
|
||||
- name: replace
|
||||
args: [".", ""]
|
||||
- name: replace
|
||||
args: ["K", "00"]
|
||||
- name: replace
|
||||
args: ["M", "00000"]
|
||||
seeders_nodot:
|
||||
selector: div.stats div:has(img[alt="Seeder"]):not(:contains("."))
|
||||
optional: true
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["K", "000"]
|
||||
- name: replace
|
||||
args: ["M", "000000"]
|
||||
seeders:
|
||||
text: "{{ if or .Result.seeders_dot .Result.seeders_nodot }}{{ or .Result.seeders_dot .Result.seeders_nodot }}{{ else }}0{{ end }}"
|
||||
leechers_dot:
|
||||
selector: div.stats div:has(img[alt="Leecher"]):contains(".")
|
||||
optional: true
|
||||
filters:
|
||||
- name: replace
|
||||
args: [".", ""]
|
||||
- name: replace
|
||||
args: ["K", "00"]
|
||||
- name: replace
|
||||
args: ["M", "00000"]
|
||||
leechers_nodot:
|
||||
selector: div.stats div:has(img[alt="Leecher"]):not(:contains("."))
|
||||
optional: true
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["K", "000"]
|
||||
- name: replace
|
||||
args: ["M", "000000"]
|
||||
leechers:
|
||||
text: "{{ if or .Result.leechers_dot .Result.leechers_nodot }}{{ or .Result.leechers_dot .Result.leechers_nodot }}{{ else }}0{{ end }}"
|
||||
date:
|
||||
selector: div.stats div:has(img[alt="Date"])
|
||||
filters:
|
||||
- name: dateparse
|
||||
args: "MMM d, yyyy"
|
||||
downloadvolumefactor:
|
||||
text: 0
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
# engine n/a
|
182
config/prowlarr/Definitions/bitspyder.yml
Normal file
182
config/prowlarr/Definitions/bitspyder.yml
Normal file
|
@ -0,0 +1,182 @@
|
|||
---
|
||||
id: bitspyder
|
||||
name: Bitspyder
|
||||
description: "Bitspyder is a Private site for Educational BOOKS / AUDIO"
|
||||
language: en-US
|
||||
type: private
|
||||
encoding: iso-8859-1
|
||||
links:
|
||||
- https://bitspyder.net/
|
||||
legacylinks:
|
||||
- http://bitspyder.net/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 61, cat: Books, desc: "3D"}
|
||||
- {id: 69, cat: Books, desc: "Anim|GFX"}
|
||||
- {id: 56, cat: Books, desc: "Art"}
|
||||
- {id: 40, cat: Audio/Audiobook, desc: "Audio Books"}
|
||||
- {id: 55, cat: Books, desc: "Business"}
|
||||
- {id: 46, cat: Books, desc: "Career"}
|
||||
- {id: 2, cat: Books, desc: "CBTs"}
|
||||
- {id: 39, cat: Books, desc: "Cert QA"}
|
||||
- {id: 63, cat: Books, desc: "College"}
|
||||
- {id: 53, cat: Books, desc: "Cooking"}
|
||||
- {id: 35, cat: Books, desc: "Developer"}
|
||||
- {id: 42, cat: Books, desc: "Documentary"}
|
||||
- {id: 37, cat: Books/EBook, desc: "e-Books"}
|
||||
- {id: 65, cat: Books, desc: "Engineering"}
|
||||
- {id: 45, cat: Books, desc: "Ethical hacking"}
|
||||
- {id: 54, cat: Books, desc: "Health-Fitness"}
|
||||
- {id: 64, cat: Books, desc: "Kids"}
|
||||
- {id: 47, cat: Books, desc: "Languages"}
|
||||
- {id: 49, cat: Books, desc: "Linux CBTs"}
|
||||
- {id: 43, cat: Books, desc: "Lynda.com"}
|
||||
- {id: 57, cat: Books/Mags, desc: "Magazines"}
|
||||
- {id: 60, cat: Books, desc: "Medical"}
|
||||
- {id: 44, cat: Books, desc: "Misc Learning"}
|
||||
- {id: 51, cat: Books, desc: "Music Learning"}
|
||||
- {id: 41, cat: Books, desc: "Others"}
|
||||
- {id: 58, cat: Books, desc: "Packt"}
|
||||
- {id: 52, cat: Books, desc: "Photography"}
|
||||
- {id: 71, cat: Books, desc: "Pluralsight"}
|
||||
- {id: 68, cat: Books, desc: "Self Growth"}
|
||||
- {id: 72, cat: Books, desc: "Templates"}
|
||||
- {id: 38, cat: Books, desc: "Udemy"}
|
||||
- {id: 59, cat: Books, desc: "WEB | SocialMedia"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
book-search: [q]
|
||||
|
||||
settings:
|
||||
- name: username
|
||||
type: text
|
||||
label: Username
|
||||
- name: password
|
||||
type: password
|
||||
label: Password
|
||||
- name: sort
|
||||
type: select
|
||||
label: Sort requested from site
|
||||
default: 8
|
||||
options:
|
||||
8: created
|
||||
6: seeders
|
||||
4: size
|
||||
1: title
|
||||
- name: type
|
||||
type: select
|
||||
label: Order requested from site
|
||||
default: desc
|
||||
options:
|
||||
desc: desc
|
||||
asc: asc
|
||||
- name: info
|
||||
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: login.php
|
||||
method: form
|
||||
form: form
|
||||
inputs:
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
error:
|
||||
- selector: td.msg_info > font > b
|
||||
test:
|
||||
path: index.php
|
||||
selector: a[href="logout.php"]
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: browse.php
|
||||
inputs:
|
||||
$raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
|
||||
search: "{{ .Keywords }}"
|
||||
# 0 active, 1 incldead, 2 onlydead
|
||||
incldead: 1
|
||||
# 0 title, 1 default
|
||||
scope: 0
|
||||
sort: "{{ .Config.sort }}"
|
||||
type: "{{ .Config.type }}"
|
||||
|
||||
keywordsfilters:
|
||||
- name: re_replace
|
||||
args: ["\\s+", " "] # More than 1 space to 1 space
|
||||
- name: re_replace
|
||||
args: ["(\\w+)", "+$1"] # prepend + to each word
|
||||
- name: trim
|
||||
|
||||
rows:
|
||||
selector: table > tbody > tr[class]
|
||||
|
||||
fields:
|
||||
# there are two styles, we support both
|
||||
title:
|
||||
selector: a[href^="details.php?id="]
|
||||
category:
|
||||
selector: a[href^="browse.php?cat="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: cat
|
||||
details:
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["details.php?id=", "download.php/"]
|
||||
- name: replace
|
||||
args: ["&hit=1", "/dummy.torrent"]
|
||||
size:
|
||||
selector: td.rowcol:nth-child(6):has(br), font:contains("Size:") + font
|
||||
files:
|
||||
selector: a[href*="&filelist=1"]
|
||||
grabs:
|
||||
selector: td.rowcol:nth-child(7):has(br), td.clear:nth-child(4)
|
||||
seeders:
|
||||
selector: td.rowcol:nth-last-child(3)
|
||||
leechers:
|
||||
selector: td.rowcol:nth-last-child(2)
|
||||
date_added:
|
||||
optional: true
|
||||
selector: font[color="5F5F5F"]
|
||||
filters:
|
||||
- name: split
|
||||
args: [" (", 0]
|
||||
- name: replace
|
||||
args: ["\xA0", " "]
|
||||
- name: append
|
||||
args: " +00:00" # GMT
|
||||
- name: dateparse
|
||||
args: "yyyy-MM-dd HH:mm:ss zzz"
|
||||
date_upload:
|
||||
optional: true
|
||||
selector: a[title^="Upploaded at"]
|
||||
attribute: title
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["Upploaded at - ", ""]
|
||||
- name: replace
|
||||
args: ["\xA0", " "]
|
||||
- name: append
|
||||
args: " +00:00" # GMT
|
||||
- name: dateparse
|
||||
args: "yyyy-MM-dd HH:mm:ss zzz"
|
||||
date:
|
||||
text: "{{ if or .Result.date_upload .Result.date_added }}{{ or .Result.date_upload .Result.date_added }}{{ else }}now{{ end }}"
|
||||
downloadvolumefactor:
|
||||
text: 1
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
description:
|
||||
selector: font[color="#990000"]
|
||||
minimumratio:
|
||||
text: 1.0
|
||||
# custom v4
|
229
config/prowlarr/Definitions/bitturk.yml
Normal file
229
config/prowlarr/Definitions/bitturk.yml
Normal file
|
@ -0,0 +1,229 @@
|
|||
---
|
||||
id: bitturk
|
||||
name: BiTTuRK
|
||||
description: "BiTTuRK is a Turkish Private Torrent Tracker for HD MOVIES / TV / GENERAL. This Indexer is for English only."
|
||||
language: en-US
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://bitturk.net/
|
||||
legacylinks:
|
||||
- http://www.bitturk.net/
|
||||
- http://bitturk.net/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 56, cat: Movies, desc: "BTRG"}
|
||||
- {id: 57, cat: Movies, desc: "Yerli Dizi"}
|
||||
- {id: 62, cat: Movies, desc: "Yab@ncı Dizi"}
|
||||
- {id: 63, cat: Movies, desc: "Türkçe Film"}
|
||||
- {id: 64, cat: Movies, desc: "Türk Filmi"}
|
||||
- {id: 66, cat: Movies/HD, desc: "x265"}
|
||||
- {id: 67, cat: XXX, desc: "XxX"}
|
||||
- {id: 68, cat: Movies, desc: "Dual (TR-~)"}
|
||||
- {id: 71, cat: Movies, desc: "NFLIX"}
|
||||
- {id: 78, cat: TV, desc: "EXXEN"}
|
||||
- {id: 79, cat: TV, desc: "BLUTV"}
|
||||
- {id: 90, cat: TV, desc: "Disney+"}
|
||||
- {id: 91, cat: TV, desc: "Prime Video"}
|
||||
- {id: 93, cat: TV, desc: "Gain"}
|
||||
- {id: 94, cat: TV, desc: "ATVP"}
|
||||
- {id: 95, cat: Movies, desc: "HMAX"}
|
||||
- {id: 98, cat: Movies, desc: "PUHUTV"}
|
||||
- {id: 58, cat: Movies, desc: "Film"}
|
||||
- {id: 72, cat: Movies, desc: "Belgesel"}
|
||||
- {id: 60, cat: Movies/3D, desc: "3D"}
|
||||
- {id: 76, cat: Movies/UHD, desc: "4K UHD"}
|
||||
- {id: 80, cat: TV/Sport, desc: "Formula-1"}
|
||||
- {id: 45, cat: Other, desc: "Eğitim/Prog"}
|
||||
- {id: 1, cat: Movies, desc: "Filmler"}
|
||||
- {id: 14, cat: Movies/3D, desc: "3D Film"}
|
||||
- {id: 77, cat: Movies/UHD, desc: "4K UHD"}
|
||||
- {id: 16, cat: Movies, desc: "Animasyon"}
|
||||
- {id: 17, cat: TV/Anime, desc: "Anime"}
|
||||
- {id: 31, cat: Movies, desc: "Belgesel"}
|
||||
- {id: 32, cat: Movies/BluRay, desc: "Bluray"}
|
||||
- {id: 33, cat: Movies/HD, desc: "BRRiP"}
|
||||
- {id: 34, cat: Movies, desc: "Çizgi Film"}
|
||||
- {id: 35, cat: Movies, desc: "D-Z0N3"}
|
||||
- {id: 36, cat: Movies/DVD, desc: "DVD"}
|
||||
- {id: 37, cat: Movies, desc: "MP4"}
|
||||
- {id: 38, cat: Movies, desc: "Türk Filmi"}
|
||||
- {id: 39, cat: Movies, desc: "Türkçe BoX"}
|
||||
- {id: 40, cat: Movies, desc: "Türkçe Film"}
|
||||
- {id: 41, cat: Movies, desc: "ViP"}
|
||||
- {id: 42, cat: Movies/SD, desc: "XviD"}
|
||||
- {id: 43, cat: Movies/SD, desc: "XviD BoX"}
|
||||
- {id: 55, cat: Movies/WEB-DL, desc: "WEB-DL"}
|
||||
- {id: 7, cat: Audio, desc: "Müzik"}
|
||||
- {id: 20, cat: Audio, desc: "Türkçe MüziK"}
|
||||
- {id: 46, cat: Audio, desc: "Yab@ncı MüziK"}
|
||||
- {id: 21, cat: Audio/Video, desc: "Video Klipler"}
|
||||
- {id: 2, cat: Console, desc: "Oyun"}
|
||||
- {id: 74, cat: PC/Games, desc: "Oyun PC"}
|
||||
- {id: 84, cat: Console/PS3, desc: "Oyun Playstation"}
|
||||
- {id: 82, cat: Console/PSP, desc: " Oyun PSP"}
|
||||
- {id: 83, cat: Console/Other, desc: "Oyun Gameboy"}
|
||||
- {id: 87, cat: Console/XBox, desc: "Oyun XBOX"}
|
||||
- {id: 88, cat: Console/Other, desc: "Oyun NEO-GEO"}
|
||||
- {id: 89, cat: Console/Wii, desc: "Oyun Nintendo Wii"}
|
||||
- {id: 6, cat: PC/0day, desc: "Program"}
|
||||
- {id: 47, cat: Other, desc: "Resimler"}
|
||||
- {id: 48, cat: TV, desc: "Televizyon"}
|
||||
- {id: 49, cat: TV/HD, desc: "Tv HD"}
|
||||
- {id: 50, cat: TV, desc: "Yab@ncı Dizi"}
|
||||
- {id: 51, cat: TV, desc: "Yerli Dizi"}
|
||||
- {id: 44, cat: Books, desc: "E-BooK"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
music-search: [q]
|
||||
book-search: [q]
|
||||
|
||||
settings:
|
||||
- name: username
|
||||
type: text
|
||||
label: Username
|
||||
- name: password
|
||||
type: password
|
||||
label: Password
|
||||
- name: freeleech
|
||||
type: checkbox
|
||||
label: Filter freeleech only
|
||||
default: false
|
||||
- name: info
|
||||
type: info
|
||||
label: Layout
|
||||
default: "<ol><li>Only the English Classic profile is supported.</li><li>Make sure to set the <b>Torrent Listing (Listeleme Biçimi)</b> option in your profile to <b>Classic (Klasik)</b></li><li>And set the <b>Language (Dil)</b> to <b>English</b></li><li>Using the <i>Modern</i> theme will prevent results, and using <i>Turkish</i> will prevent upload dates.</li></ol>"
|
||||
- name: sort
|
||||
type: select
|
||||
label: Sort requested from site
|
||||
default: added
|
||||
options:
|
||||
added: created
|
||||
seeders: seeders
|
||||
size: size
|
||||
- name: type
|
||||
type: select
|
||||
label: Order requested from site
|
||||
default: desc
|
||||
options:
|
||||
desc: desc
|
||||
asc: asc
|
||||
|
||||
login:
|
||||
path: ?p=home&pid=1
|
||||
method: form
|
||||
form: form#loginbox_form
|
||||
submitpath: ajax/login.php
|
||||
inputs:
|
||||
action: login
|
||||
loginbox_membername: "{{ .Config.username }}"
|
||||
loginbox_password: "{{ .Config.password }}"
|
||||
loginbox_remember: 1
|
||||
selectorinputs:
|
||||
securitytoken:
|
||||
selector: "script:contains(\"stKey: \")"
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "stKey: \"(.+?)\","
|
||||
error:
|
||||
- selector: ":contains(\"-ERROR-\")"
|
||||
test:
|
||||
path: ?p=home&pid=1
|
||||
selector: a[href*="/?p=logout&"]
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: /
|
||||
keywordsfilters:
|
||||
- name: re_replace
|
||||
args: ["[^a-zA-Z0-9]+", "%25"]
|
||||
inputs:
|
||||
p: torrents
|
||||
pid: 32
|
||||
$raw: "{{ range .Categories }}cid[]={{.}}&{{end}}"
|
||||
keywords: "{{ .Keywords }}"
|
||||
# name, description, both, uploader
|
||||
search_type: name
|
||||
searchin: title
|
||||
"sortOptions[sortBy]": "{{ .Config.sort }}"
|
||||
"sortOptions[sortOrder]": "{{ .Config.type }}"
|
||||
# Drop error trap to stop Sonarr disabling indexer, see https://github.com/Jackett/Jackett/issues/1415
|
||||
# error:
|
||||
# - selector: div.error:not(:contains("Gösterilecek sonuç bulunamadı."))
|
||||
|
||||
rows:
|
||||
selector: "table#torrents_table_classic tr:has(td.torrent_name){{ if .Config.freeleech }}:has(img[src$=\"/torrent_free.png\"]){{ else }}{{ end }}"
|
||||
|
||||
fields:
|
||||
title:
|
||||
selector: a[href*="?p=torrents&pid=10&action=details"]
|
||||
category:
|
||||
selector: div.category_image > a
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: cid
|
||||
details:
|
||||
selector: a[href*="?p=torrents&pid=10&action=details"]
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href*="?p=torrents&pid=10&action=download"]
|
||||
attribute: href
|
||||
date_day:
|
||||
# Uploaded Friday at 05:11 by
|
||||
# Uploaded Today at 00:48 by
|
||||
# Uploaded Yesterday at 23:57 by
|
||||
selector: td.torrent_name:contains(" at "):not(:has(abbr[data-time]))
|
||||
# auto adjusted by site account profile
|
||||
optional: true
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "Uploaded (.+?) by"
|
||||
- name: fuzzytime
|
||||
date_year:
|
||||
# Uploaded 30-01-2019 15:02 by
|
||||
selector: td.torrent_name:not(:contains(" at ")):not(:has(abbr[data-time]))
|
||||
# auto adjusted by site account profile
|
||||
optional: true
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "Uploaded (.+?) by"
|
||||
- name: dateparse
|
||||
args: "dd-MM-yyyy HH:mm"
|
||||
date_unix:
|
||||
# within the hour (unix)
|
||||
selector: abbr[data-time]
|
||||
attribute: data-time
|
||||
optional: true
|
||||
date:
|
||||
text: "{{ if or .Result.date_day .Result.date_year .Result.date_unix }}{{ or .Result.date_day .Result.date_year .Result.date_unix }}{{ else }}now{{ end }}"
|
||||
size:
|
||||
selector: a[rel="torrent_size"]
|
||||
seeders:
|
||||
selector: a[rel="torrent_seeders"]
|
||||
leechers:
|
||||
selector: a[rel="torrent_leechers"]
|
||||
grabs:
|
||||
selector: a[rel="times_completed"]
|
||||
poster:
|
||||
selector: a[rel="fancybox"]
|
||||
attribute: href
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
"img[src$=\"/silver.gif\"]": 0.5
|
||||
"img[src$=\"/torrent_free.png\"]": 0
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
case:
|
||||
"img[src$=\"/torrent_multiple_upload.png\"]": 2
|
||||
"*": 1
|
||||
minimumratio:
|
||||
text: 1.0
|
||||
minimumseedtime:
|
||||
# 3 day (as seconds = 3 x 24 x 60 x 60)
|
||||
text: 259200
|
||||
# TSUE 2.2
|
199
config/prowlarr/Definitions/bjshare.yml
Normal file
199
config/prowlarr/Definitions/bjshare.yml
Normal file
|
@ -0,0 +1,199 @@
|
|||
---
|
||||
id: bjshare
|
||||
name: Bj-Share
|
||||
description: "Private PT-BR torrent"
|
||||
language: pt-BR
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://bj-share.info/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 1, cat: Movies, desc: "Filmes"}
|
||||
- {id: 2, cat: TV, desc: "TV"}
|
||||
- {id: 3, cat: PC, desc: "Aplicativos"}
|
||||
- {id: 4, cat: PC/Games, desc: "Jogos"}
|
||||
- {id: 5, cat: Books/Comics, desc: "Mangás"}
|
||||
- {id: 6, cat: TV, desc: "Vídeos de TV"}
|
||||
- {id: 7, cat: Other, desc: "Outros"}
|
||||
- {id: 8, cat: TV/Sport, desc: "Esportes"}
|
||||
- {id: 9, cat: Books/Mags, desc: "Revistas"}
|
||||
- {id: 10, cat: Books, desc: "E-Books"}
|
||||
- {id: 11, cat: Audio/Audiobook, desc: "Audiobook"}
|
||||
- {id: 12, cat: Books/Comics, desc: "Histórias em Quadrinhos"}
|
||||
- {id: 13, cat: TV, desc: "Stand Up Comedy"}
|
||||
- {id: 14, cat: TV, desc: "TV/Anime"} # Anime format is equal to TV Show (SXXEXX) except old ones like one piece
|
||||
- {id: 15, cat: XXX/ImageSet, desc: "Fotos Adultas"}
|
||||
- {id: 16, cat: TV/Other, desc: "Desenho Animado"}
|
||||
- {id: 17, cat: TV/Documentary, desc: "Documentários"}
|
||||
- {id: 18, cat: Other, desc: "Cursos"}
|
||||
- {id: 19, cat: XXX, desc: "Filmes Adultos"}
|
||||
- {id: 20, cat: XXX/Other, desc: "Jogos Adultos"}
|
||||
- {id: 21, cat: XXX/Other, desc: "Mangás Adultos"}
|
||||
- {id: 22, cat: XXX/Other, desc: "Animes Adultos"}
|
||||
- {id: 23, cat: XXX/Other, desc: "HQ Adultos"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
|
||||
settings:
|
||||
- name: cookie
|
||||
type: text
|
||||
label: Cookie
|
||||
- name: info_cookie
|
||||
type: info
|
||||
label: How to get the Cookie
|
||||
default: "<ol><li>Login to this tracker with your browser<li>Open the <b>DevTools</b> panel by pressing <b>F12</b><li>Select the <b>Network</b> tab<li>Click on the <b>Doc</b> button (Chrome Browser) or <b>HTML</b> button (FireFox)<li>Refresh the page by pressing <b>F5</b><li>Click on the first row entry<li>Select the <b>Headers</b> tab on the Right panel<li>Find <b>'cookie:'</b> in the <b>Request Headers</b> section<li><b>Select</b> and <b>Copy</b> the whole cookie string <i>(everything after 'cookie: ')</i> and <b>Paste</b> here.</ol>"
|
||||
- name: freeleech
|
||||
type: checkbox
|
||||
label: Search freeleech only
|
||||
default: false
|
||||
|
||||
login:
|
||||
method: cookie
|
||||
inputs:
|
||||
cookie: "{{ .Config.cookie }}"
|
||||
test:
|
||||
path: index.php
|
||||
selector: a[href^="/logout.php?auth="]
|
||||
|
||||
search:
|
||||
# https://bj-share.info/torrents.php?searchstr=aves+de+rapina&filter_cat%5B1%5D=1
|
||||
paths:
|
||||
- path: torrents.php
|
||||
|
||||
inputs:
|
||||
$raw: "{{ range .Categories }}filter_cat[{{.}}]=1&{{end}}"
|
||||
searchstr: "{{ .Keywords }}"
|
||||
freetorrent: "{{ if .Config.freeleech }}1{{ else }}{{ end }}"
|
||||
|
||||
keywordsfilters:
|
||||
- name: re_replace
|
||||
args: ["(S[0-9]+E[0-9]+|S[0-9]+)", ""] # remove SXXEXX or SXX from search
|
||||
|
||||
rows:
|
||||
# If the category is a TV show/Anime, there's a necessity to filter the results by season/episode to not show all of them
|
||||
selector: "table.torrent_table > tbody > tr:not(tr.colhead).group,
|
||||
table.torrent_table tbody tr:not(tr.colhead):contains('{{ .Query.Episode }}')"
|
||||
filters:
|
||||
- name: andmatch
|
||||
|
||||
fields:
|
||||
download:
|
||||
selector: a[title="Baixar"]
|
||||
attribute: href
|
||||
|
||||
_singleTorrentInfo:
|
||||
selector: div.torrent_info
|
||||
|
||||
_multipleTorrentInfo:
|
||||
selector: a[href^="torrents.php?id="]
|
||||
|
||||
_info: # example [MKV / x265 / WEB-DL / Legendado / 4K / Free]
|
||||
text: "{{ if .Result._singleTorrentInfo }}{{.Result._singleTorrentInfo}}{{ else }}{{.Result._multipleTorrentInfo}}{{ end }}"
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["Full HD", "1080p"]
|
||||
- name: replace
|
||||
args: ["4K", "2160p"]
|
||||
- name: replace
|
||||
args: ["SD", "480p"]
|
||||
- name: replace
|
||||
args: ["/ HD]", "720p"]
|
||||
- name: replace
|
||||
args: ["/ HD /", "720p"]
|
||||
- name: replace
|
||||
args: ["/ Free", ""]
|
||||
- name: re_replace
|
||||
args: ["[\\[\\]]+", ""]
|
||||
|
||||
_rawTitle:
|
||||
selector: div.group_info
|
||||
filters:
|
||||
- name: re_replace
|
||||
args: ["(\n.*)", ""] # remove everything after newline
|
||||
- name: re_replace
|
||||
args: [" |\t", ""] # remove double space and tabs
|
||||
|
||||
_year:
|
||||
text: "{{ .Result._rawTitle }}"
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "\\[([0-9]*)\\]"
|
||||
|
||||
details:
|
||||
selector: a[href^="torrents.php?id="]:not(.tooltip)
|
||||
attribute: href
|
||||
|
||||
title_MovieTV: # Movie and TV Format
|
||||
# Title defined as:
|
||||
# PT-BR/Japanese title [en-US title] [year]
|
||||
text: "{{ .Result._rawTitle }}"
|
||||
filters:
|
||||
- name: re_replace
|
||||
args: ["\\[[0-9]*\\].*", ""] # Removes the year and everything after
|
||||
- name: re_replace
|
||||
args: ["(.*)\\[(!?[^/]*?)\\]", "$2"] # Parse only en-us title, when available
|
||||
- name: append
|
||||
args: "{{ .Result._year }}"
|
||||
- name: append
|
||||
args: " {{ .Result._info }}"
|
||||
|
||||
title_Other:
|
||||
# Only remove brackets
|
||||
text: "{{ .Result._rawTitle }}"
|
||||
filters:
|
||||
- name: re_replace
|
||||
args: ["\\[|\\]", " "] # Remove Brackets
|
||||
|
||||
title_details:
|
||||
# Title defined as:
|
||||
# PT-BR/Japanese title [en-US title] [year]
|
||||
text: "{{ .Result._rawTitle }}"
|
||||
filters:
|
||||
- name: re_replace
|
||||
args: ["\\[[0-9]*\\].*", ""] # Removes the year and everything after
|
||||
- name: re_replace
|
||||
args: ["(.*)\\[(!?[^/]*?)\\]", "$2"] # Parse only en-us title, when available
|
||||
|
||||
category_details:
|
||||
selector: td.cats_col > a
|
||||
attribute: href
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "%5b(\\d+?)%5d"
|
||||
|
||||
category:
|
||||
text: "{{ .Result.category_details }}"
|
||||
|
||||
title:
|
||||
text: "{{ if
|
||||
or (eq .Result.category_details \"1\")
|
||||
(or (eq .Result.category_details \"2\") (or (eq .Result.category_details \"14\")
|
||||
(or (eq .Result.category_details \"16\") (or (eq .Result.category_details \"17\")
|
||||
(or eq .Result.category_details \"8\")
|
||||
(or (eq .Result.category_details \"13\") (eq .Result.category_details \"6\")))))))
|
||||
}}{{.Result.title_MovieTV}}{{ else }}{{.Result.title_Other}}{{ end }}"
|
||||
|
||||
size:
|
||||
selector: td:nth-last-child(4)
|
||||
grabs:
|
||||
selector: td:nth-last-child(3)
|
||||
seeders:
|
||||
selector: td:nth-last-child(2)
|
||||
leechers:
|
||||
selector: td:nth-last-child(1)
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
strong[title*="Free"]: 0
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
minimumratio:
|
||||
text: 1.0
|
||||
minimumseedtime:
|
||||
# 7 days (as seconds = 7 x 24 x 60 x 60)
|
||||
text: 604800
|
147
config/prowlarr/Definitions/bluebird.yml
Normal file
147
config/prowlarr/Definitions/bluebird.yml
Normal file
|
@ -0,0 +1,147 @@
|
|||
---
|
||||
id: bluebirdhd
|
||||
name: BlueBird
|
||||
description: "BlueBird is a RUSSIAN Private Torrent Tracker for HD MOVIES"
|
||||
language: ru-RU
|
||||
type: private
|
||||
encoding: windows-1251
|
||||
links:
|
||||
- https://bluebird-hd.org/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 1, cat: Movies, desc: "Фильмы Films"}
|
||||
- {id: 2, cat: TV/Anime, desc: "Мультфильмы Cartoons"}
|
||||
- {id: 3, cat: TV/Documentary, desc: "Документалистика Documentary"}
|
||||
- {id: 4, cat: Audio, desc: "Шоу/Музыка Show/Music"}
|
||||
- {id: 5, cat: TV/Sport, desc: "Спорт Sport"}
|
||||
- {id: 6, cat: TV, desc: "Сериалы TV Series"}
|
||||
- {id: 7, cat: XXX, desc: "Эротика Erotica"}
|
||||
- {id: 8, cat: Other, desc: "Дэмо/Misc Demo/Misc"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep, imdbid]
|
||||
movie-search: [q, imdbid]
|
||||
music-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: sort
|
||||
type: select
|
||||
label: Sort requested from site
|
||||
default: 4
|
||||
options:
|
||||
4: created
|
||||
7: seeders
|
||||
5: size
|
||||
1: title
|
||||
- name: type
|
||||
type: select
|
||||
label: Order requested from site
|
||||
default: desc
|
||||
options:
|
||||
desc: desc
|
||||
asc: asc
|
||||
- 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: takelogin.php
|
||||
method: post
|
||||
inputs:
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
error:
|
||||
- selector: div.error
|
||||
message:
|
||||
text: "Error during login. Its likely your username or password is incorrect."
|
||||
test:
|
||||
path: /
|
||||
selector: a[href="logout.php"]
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: browse.php
|
||||
inputs:
|
||||
$raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
|
||||
# search in title
|
||||
search: "{{ if .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}"
|
||||
# search in description
|
||||
dsearch: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ end }}"
|
||||
# 0 active, 1 incldead, 2 onlydead, 3 gold, 5 diamond, 4 without seeders
|
||||
incldead: "{{ if .Config.freeleech }}3{{ else }}1{{ end }}"
|
||||
genre: "{{ .Query.Genre }}"
|
||||
# or, and
|
||||
stype: and
|
||||
sort: "{{ .Config.sort }}"
|
||||
type: "{{ .Config.type }}"
|
||||
|
||||
rows:
|
||||
selector: table[class="embedded"][cellspacing="0"][cellpadding="5"][width="100%"] > tbody#highlighted > tr:has(a[href^="details.php?id="])
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: a[href^="browse.php?cat="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: cat
|
||||
title:
|
||||
selector: a[href^="details.php?id="]
|
||||
details:
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href^="download.php?id="]
|
||||
attribute: href
|
||||
imdbid:
|
||||
selector: a[href*="imdb.com/title/tt"]
|
||||
attribute: href
|
||||
grabs:
|
||||
selector: td:nth-child(7) > nobr > a, td:nth-child(7) > nobr > b
|
||||
date:
|
||||
selector: div#frame > div#cleft
|
||||
remove: a
|
||||
filters:
|
||||
- name: append
|
||||
args: " +03:00" # MSK
|
||||
- name: dateparse
|
||||
args: "yyyy-MM-dd HH:mm:ss zzz"
|
||||
size:
|
||||
selector: td:nth-child(7)
|
||||
remove: a
|
||||
seeders:
|
||||
selector: td:nth-child(5)
|
||||
leechers:
|
||||
selector: td:nth-child(6)
|
||||
genre:
|
||||
selector: div#cleft
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["Жанр:", ""]
|
||||
description:
|
||||
text: "{{ .Result.genre }}"
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
img[src="pic/diamond.png"]: 0
|
||||
img[src="pic/freedownload.gif"]: 0
|
||||
img[src="pic/silver.gif"]: 0.5
|
||||
img[src="pic/bronze.gif"]: 0.75
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
case:
|
||||
img[src="pic/diamond.png"]: 2
|
||||
"*": 1
|
||||
# TBDev v2.1.12
|
182
config/prowlarr/Definitions/blutopia-api.yml
Normal file
182
config/prowlarr/Definitions/blutopia-api.yml
Normal file
|
@ -0,0 +1,182 @@
|
|||
---
|
||||
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.cc/
|
||||
legacylinks:
|
||||
- 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, tmdbid]
|
||||
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.cc/\" target=\"_blank\">Blutopia</a> account <i>My Settings</i> page and clicking on the <b>API Key</b> tab."
|
||||
- name: freeleech
|
||||
type: checkbox
|
||||
label: Search freeleech only
|
||||
default: false
|
||||
- name: single_file_release_use_filename
|
||||
type: checkbox
|
||||
label: Use filename as title for single file releases
|
||||
default: true
|
||||
- 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
|
||||
- name: info_activity
|
||||
type: info
|
||||
label: Account Inactivity
|
||||
default: "Your membership requires that you stay active at Blutopia. To not get disabled, you are required to login to the site at least once every 30 days or be actively seeding at least 1 torrent."
|
||||
|
||||
login:
|
||||
path: /api/torrents
|
||||
method: get
|
||||
inputs: {} # TODO: remove in v10
|
||||
error:
|
||||
- selector: a[href*="/login"]
|
||||
message:
|
||||
text: "The API key was not accepted by {{ .Config.sitelink }}."
|
||||
|
||||
search:
|
||||
paths:
|
||||
# https://github.com/HDInnovations/UNIT3D-Community-Edition/wiki/Torrent-API-(UNIT3D-v8.x.x)
|
||||
# https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php#L476
|
||||
- path: "/api/torrents/filter"
|
||||
response:
|
||||
type: json
|
||||
|
||||
headers:
|
||||
Authorization: ["Bearer {{ .Config.apikey }}"]
|
||||
|
||||
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
|
||||
$raw: "{{ range .Categories }}&categories[]={{.}}{{end}}"
|
||||
name: "{{ .Keywords }}"
|
||||
seasonNumber: "{{ .Query.Season }}"
|
||||
episodeNumber: "{{ .Query.Ep }}"
|
||||
imdbId: "{{ .Query.IMDBIDShort }}"
|
||||
tmdbId: "{{ .Query.TMDBID }}"
|
||||
tvdbId: "{{ .Query.TVDBID }}"
|
||||
"free[]": "{{ if .Config.freeleech }}100{{ else }}{{ end }}"
|
||||
sortField: "{{ .Config.sort }}"
|
||||
sortDirection: "{{ .Config.type }}"
|
||||
perPage: 100
|
||||
|
||||
keywordsfilters:
|
||||
- name: re_replace
|
||||
args: ["\\.", " "]
|
||||
|
||||
rows:
|
||||
selector: data
|
||||
attribute: attributes
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: category_id
|
||||
title_optional:
|
||||
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
|
||||
genre:
|
||||
selector: meta.genres
|
||||
filters:
|
||||
- name: re_replace
|
||||
args: ["(?i)(Science Fiction)", "Science_Fiction"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(TV Movie)", "TV_Movie"]
|
||||
- name: replace
|
||||
args: [" & ", "_&_"]
|
||||
description:
|
||||
text: "{{ .Result.genre }}"
|
||||
files:
|
||||
selector: num_file
|
||||
seeders:
|
||||
selector: seeders
|
||||
leechers:
|
||||
selector: leechers
|
||||
grabs:
|
||||
selector: times_completed
|
||||
date:
|
||||
# "created_at": "2021-10-18T00:34:50.000000Z" is returned by Newtonsoft.Json.Linq as 18/10/2021 00:34:50
|
||||
selector: created_at
|
||||
filters:
|
||||
- name: append
|
||||
args: " +00:00" # GMT
|
||||
- name: dateparse
|
||||
args: "MM/dd/yyyy HH:mm:ss zzz"
|
||||
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 False, True
|
||||
selector: double_upload
|
||||
case:
|
||||
False: 1 # normal
|
||||
True: 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
|
||||
title_filename:
|
||||
selector: "files[0].name"
|
||||
optional: true
|
||||
title:
|
||||
text: "{{ if and (.Config.single_file_release_use_filename) (eq .Result.files \"1\") (.Result.title_filename) }}{{ .Result.title_filename }}{{ else }}{{ .Result.title_optional }}{{ end }}"
|
||||
# json UNIT3D 8.0.2
|
102
config/prowlarr/Definitions/booktracker.yml
Normal file
102
config/prowlarr/Definitions/booktracker.yml
Normal file
|
@ -0,0 +1,102 @@
|
|||
---
|
||||
id: booktracker
|
||||
name: BookTracker
|
||||
description: "BookTracker is a RUSSIAN Semi-Private Torrent Tracker for EBOOKS"
|
||||
language: ru-RU
|
||||
type: semi-private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://booktracker.org/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 1, cat: Books/EBook, desc: "Ebooks"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
book-search: [q]
|
||||
|
||||
settings:
|
||||
- name: username
|
||||
type: text
|
||||
label: Username
|
||||
- name: password
|
||||
type: password
|
||||
label: Password
|
||||
- name: sort
|
||||
type: select
|
||||
label: Sort requested from site
|
||||
default: 1
|
||||
options:
|
||||
1: created
|
||||
10: seeders
|
||||
7: size
|
||||
2: title
|
||||
- name: type
|
||||
type: select
|
||||
label: Order requested from site
|
||||
default: desc
|
||||
options:
|
||||
desc: desc
|
||||
asc: asc
|
||||
|
||||
login:
|
||||
path: login.php
|
||||
method: form
|
||||
form: form[action$="/login.php"]
|
||||
inputs:
|
||||
login_username: "{{ .Config.username }}"
|
||||
login_password: "{{ .Config.password }}"
|
||||
redirect: "index.php"
|
||||
autologin: 1
|
||||
selectorinputs:
|
||||
cookie_test:
|
||||
selector: input[name="cookie_test"]
|
||||
attribute: value
|
||||
error:
|
||||
- selector: h4.warnColor1
|
||||
test:
|
||||
path: index.php
|
||||
selector: a[href="./login.php?logout=1"]
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: tracker.php
|
||||
inputs:
|
||||
nm: "{{ .Keywords }}"
|
||||
o: "{{ .Config.sort }}"
|
||||
s: "{{ .Config.type }}"
|
||||
tm: -1
|
||||
sns: -1
|
||||
|
||||
rows:
|
||||
selector: tr[id^="tor_"]:has(a[href^="./download.php?id="])
|
||||
filters:
|
||||
- name: andmatch
|
||||
|
||||
fields:
|
||||
category:
|
||||
text: 1
|
||||
title:
|
||||
selector: a.tLink
|
||||
details:
|
||||
selector: a.tLink
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href^="./download.php?id="]
|
||||
attribute: href
|
||||
size:
|
||||
selector: td:nth-child(6) > u
|
||||
seeders:
|
||||
selector: td.seedmed > b
|
||||
leechers:
|
||||
selector: td.leechmed > b
|
||||
grabs:
|
||||
selector: td:nth-child(9)
|
||||
date:
|
||||
selector: td:last-child > u
|
||||
downloadvolumefactor:
|
||||
text: 1
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
# TorrentPier
|
136
config/prowlarr/Definitions/bootytape.yml
Normal file
136
config/prowlarr/Definitions/bootytape.yml
Normal file
|
@ -0,0 +1,136 @@
|
|||
---
|
||||
id: bootytape
|
||||
name: BootyTape
|
||||
description: "BootyTape is a Semi-Private site for 3X"
|
||||
language: en-US
|
||||
type: semi-private
|
||||
encoding: UTF-8
|
||||
requestDelay: 3
|
||||
links:
|
||||
- https://ssl.bootytape.com/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 70, cat: XXX, desc: "Animation"}
|
||||
- {id: 22, cat: XXX, desc: "Girl on Girl"}
|
||||
- {id: 43, cat: XXX, desc: "Images"}
|
||||
- {id: 52, cat: XXX, desc: "Straight"}
|
||||
- {id: 82, cat: XXX, desc: "X Play Hard"}
|
||||
- {id: 92, cat: XXX, desc: "X Play Soft"}
|
||||
|
||||
modes:
|
||||
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: sort
|
||||
type: select
|
||||
label: Sort requested from site
|
||||
default: 4
|
||||
options:
|
||||
4: created
|
||||
7: seeders
|
||||
5: size
|
||||
1: title
|
||||
- name: type
|
||||
type: select
|
||||
label: Order requested from site
|
||||
default: desc
|
||||
options:
|
||||
desc: desc
|
||||
asc: asc
|
||||
- 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: login.php
|
||||
method: post
|
||||
inputs:
|
||||
take_login: 1
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
error:
|
||||
- selector: td.mainouter2:has(h1:contains("Failed"))
|
||||
test:
|
||||
path: my.php
|
||||
selector: a[href="logout.php"]
|
||||
|
||||
search:
|
||||
paths:
|
||||
# https://ssl.bootytape.com/torrents.php?search=onlyfans&tagsearch=&cat=0&tags=1
|
||||
- path: torrents.php
|
||||
inputs:
|
||||
search: "{{ .Keywords }}"
|
||||
tagsearch: ""
|
||||
# 0 all
|
||||
cat: 0
|
||||
freeleech: "{{ if .Config.freeleech }}1{{ else }}{{ end }}"
|
||||
# tags search mode: 1 AND, 2 OR
|
||||
tags: 1
|
||||
# incldead=2 for search unseeded
|
||||
# descr=1 for search description
|
||||
# double=1 for search double seed bonus
|
||||
sort: "{{ .Config.sort }}"
|
||||
type: "{{ .Config.type }}"
|
||||
|
||||
rows:
|
||||
selector: table.red > tbody > tr:not(:has(th))
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: a[href^="torrents.php?cat="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: cat
|
||||
title:
|
||||
selector: a[href^="details.php?id="]
|
||||
details:
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href^="download.php?id="]
|
||||
attribute: href
|
||||
description:
|
||||
selector: div.specg
|
||||
poster:
|
||||
selector: img[src*="/thbx/imgx/"]
|
||||
attribute: src
|
||||
files:
|
||||
selector: a[href$="filelist=1"]
|
||||
optional: true
|
||||
default: 1
|
||||
size:
|
||||
selector: td:nth-child(3)
|
||||
optional: true
|
||||
default: 0
|
||||
seeders:
|
||||
selector: a[href$="toseeders=1"]
|
||||
optional: true
|
||||
default: 0
|
||||
leechers:
|
||||
selector: a[href$="todlers=1"]
|
||||
optional: true
|
||||
default: 0
|
||||
date:
|
||||
text: now
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
"img[src$=\"pic/freedownload.gif\"]": 0
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
case:
|
||||
"img[src$=\"pic/double-upload.gif\"]": 2
|
||||
"*": 1
|
||||
# engine n/a
|
199
config/prowlarr/Definitions/borgzelle.yml
Normal file
199
config/prowlarr/Definitions/borgzelle.yml
Normal file
|
@ -0,0 +1,199 @@
|
|||
---
|
||||
id: borgzelle
|
||||
name: Borgzelle
|
||||
description: "Borgzelle is a GERMAN Private Torrent Tracker for MOVIES / TV / GENERAL"
|
||||
language: de-DE
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://borgzelle.borg/
|
||||
certificates:
|
||||
- a3f8822c97fbfe5bd00760cf8e6b75c4284f657d # self signed
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 17, cat: TV/Sport, desc: "Sport"}
|
||||
- {id: 32, cat: TV, desc: "Serien-Pakete"}
|
||||
- {id: 12, cat: TV, desc: "Serien"}
|
||||
- {id: 14, cat: Audio/Video, desc: "Musikvideo"}
|
||||
- {id: 15, cat: TV/Documentary, desc: "Doku"}
|
||||
- {id: 16, cat: TV/Other, desc: "Comedy"}
|
||||
- {id: 18, cat: TV/Anime, desc: "Anime"}
|
||||
- {id: 6, cat: Movies/SD, desc: "Movie XviD/DivX"}
|
||||
- {id: 34, cat: Movies/UHD, desc: "Movie UHD"}
|
||||
- {id: 13, cat: Movies, desc: "Movie Kinder"}
|
||||
- {id: 11, cat: Movies/HD, desc: "Movie HD2DVD"}
|
||||
- {id: 9, cat: Movies/HD, desc: "Movie HD"}
|
||||
- {id: 33, cat: Movies/HD, desc: "Movie h265"}
|
||||
- {id: 7, cat: Movies/HD, desc: "Movie h264"}
|
||||
- {id: 10, cat: Movies/DVD, desc: "Movie DVD"}
|
||||
- {id: 28, cat: PC/Games, desc: "Spiele PDA/Handy"}
|
||||
- {id: 25, cat: PC/Games, desc: "Spiele PC"}
|
||||
- {id: 27, cat: PC/Games, desc: "Spiele MAC"}
|
||||
- {id: 26, cat: Console, desc: "Spiele Konsolen"}
|
||||
- {id: 30, cat: Other, desc: "Diverse Wallpaper"}
|
||||
- {id: 31, cat: Other, desc: "Sonstiges"}
|
||||
- {id: 29, cat: Books/EBook, desc: "E-Book"}
|
||||
- {id: 19, cat: Audio, desc: "Musik"}
|
||||
- {id: 20, cat: Audio/Audiobook, desc: "Hörbuch"}
|
||||
- {id: 21, cat: PC/0day, desc: "Software Windows"}
|
||||
- {id: 23, cat: PC/Mobile-Other, desc: "Software PDA/Handy"}
|
||||
- {id: 22, cat: PC/Mac, desc: "Software MAC"}
|
||||
- {id: 24, cat: PC, desc: "Software Linux"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
music-search: [q]
|
||||
book-search: [q]
|
||||
|
||||
settings:
|
||||
- name: info_sitelink
|
||||
type: info
|
||||
label: About Site Link
|
||||
default: If the Site Link domain returns a DNS error then you have not yet been assimilated.
|
||||
- name: username
|
||||
type: text
|
||||
label: Username
|
||||
- name: password
|
||||
type: password
|
||||
label: Password
|
||||
- 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.
|
||||
- name: freeleech
|
||||
type: checkbox
|
||||
label: Filter 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
|
||||
|
||||
login:
|
||||
path: login.php
|
||||
method: post
|
||||
inputs:
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
keeplogged: 1
|
||||
error:
|
||||
- selector: font[color="red"]
|
||||
test:
|
||||
path: index.php
|
||||
selector: a[href^="logout.php?auth="]
|
||||
|
||||
search:
|
||||
paths:
|
||||
# https://borgzelle.borg/browse.php?action=browse&showsearch=1&c34=1&c9=1&search=&incldead=0&orderby=added&sort=desc
|
||||
- path: browse.php
|
||||
inputs:
|
||||
action: browse
|
||||
showsearch: 1
|
||||
$raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
|
||||
search: "{{ .Keywords }}"
|
||||
# 0 all, 1 active, 2 dead
|
||||
incldead: 0
|
||||
orderby: "{{ .Config.sort }}"
|
||||
sort: "{{ .Config.type }}"
|
||||
# the site does not support imdbid searching or present imdb links in results
|
||||
|
||||
rows:
|
||||
selector: "table[style=\"width: 100%;\"] > tbody > tr{{ if .Config.freeleech }}:has(span:contains(\"[OnlyUpload]\")){{ else }}{{ end }}"
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: a[href^="browse.php?cat="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: cat
|
||||
title:
|
||||
selector: a[href^="torrents.php?torrentid="]
|
||||
details:
|
||||
selector: a[href^="torrents.php?torrentid="]
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href^="torrents.php?action=download&id="]
|
||||
attribute: href
|
||||
poster:
|
||||
selector: a[href^="torrents.php?torrentid="] span img
|
||||
attribute: src
|
||||
date:
|
||||
# 17.10. 18:34 (vor 2 Stunden und 57 Minuten)
|
||||
selector: td:nth-child(2) > table > tbody > tr > td:nth-child(2)
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "\\((.+?)\\)"
|
||||
# translations for Turkish|Estonian|Danish|Italian|Polish|Norwegian|Portuguese|Czech|Russian|Romanian|Spanish|French|German|Bulgarian|Dutch|Chinese|Japanese|Swedish
|
||||
- name: re_replace
|
||||
args: ["(?i)(önce|tagasi|geleden|fa|temu|siden|há|atrás|nazpět|назад|acum|în urmă|hace|il y a|vor|преди|前|sedan)", " ago"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(saniye|sekundit|sekunder|secondi|sekund|segundos|sekundami|секунд|secunde|secondes|Sekunden|секунди|seconden|秒前)", "seconds"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(minutit|minutter|minuti|minuty|minutos|минуты|минут|Minuten|минути|minuten|minuter)", "minutes"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(dakika|minut|minuto|minuta|minutt|минута|Minute|minuut|分钟|分)", " minute"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(tundi|timer|ore|godziny|horas|hodiny|hoden|часа|часов|ore|heures|Stunden|timmar)", "hours"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(saat|tund|time|ora|godzina|hora|hodina|час|oră|heure|Stunde|uur|小时|時間|timme)", " hour"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(päeva|dage|giorni|dni|dias|dny|дня|дней|zile|días|jours|Tagen|дни|dagen|dagar)", "days"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(gün|päev|dag|giorno|dzień|dia|den|день|zi|día|jour|Tag|ден|天|日)", " day"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(nädalat|uger|settimane|tygodnie|uker|semanas|týdny|недели|недель|săptămâni|semaines|Wochen|седмици|weken|veckor)", "weeks"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(hafta|nädal|uge|settimana|tydzień|uke|semana|týden|неделю|săptămână|semaine|Woche|седмица|周|週間|vecka)", " week"]
|
||||
- name: re_replace
|
||||
args: ["(?i) (ay)", "month"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(kuud|måneder|mesi|miesiące|meses|měsíce|месяца|месяцев|luni|meses|mois|Monaten|месеца|maanden|månader)", "months"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(kuu|måned|mese|miesiąc|mês|měsíc|месяц|lună|mes|Monat|месец|maand|个月|ヶ月|månad)", " month"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(aastat|anni|lata|anos|roky|года|ani|años|ans|Jahren|години)", " years"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(yil|aasta|år|anno|rok|ano|год|año|Jahr|година|jaar|年)", " year"]
|
||||
- name: re_replace
|
||||
args: ["(?i) (an)", "year"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(För |und)", ""] # Misc removals
|
||||
- name: timeago
|
||||
size:
|
||||
selector: td:nth-child(2) > table > tbody > tr:nth-child(2) > td:nth-child(1) b
|
||||
files:
|
||||
selector: td:nth-child(2) > table > tbody > tr:nth-child(2) > td:nth-child(1) a span
|
||||
seeders:
|
||||
selector: td:nth-child(2) > table > tbody > tr:nth-child(2) > td:nth-child(2) a span
|
||||
leechers:
|
||||
selector: td:nth-child(2) > table > tbody > tr:nth-child(2) > td:nth-child(2) a span:nth-child(2)
|
||||
grabs:
|
||||
selector: td:nth-child(2) > table > tbody > tr:nth-child(2) > td:nth-child(3) a span
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
"span:contains(\"[OnlyUpload]\")": 0
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
minimumratio:
|
||||
text: 0.7
|
||||
minimumseedtime:
|
||||
# 3 days (as seconds = 3 x 24 x 60 x 60)
|
||||
text: 259200
|
||||
# Gazelle
|
146
config/prowlarr/Definitions/boxingtorrents.yml
Normal file
146
config/prowlarr/Definitions/boxingtorrents.yml
Normal file
|
@ -0,0 +1,146 @@
|
|||
---
|
||||
id: boxingtorrents
|
||||
name: Boxing Torrents
|
||||
description: "Boxing Torrents is a Private Torrent Tracker for BOXING"
|
||||
language: en-US
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://tc-boxing.com/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 17, cat: TV/Sport, desc: "4K"}
|
||||
- {id: 15, cat: TV/Sport, desc: "3D"}
|
||||
- {id: 9, cat: TV/Sport, desc: "Amateur - Full"}
|
||||
- {id: 16, cat: TV/Sport, desc: "Blu-ray"}
|
||||
- {id: 13, cat: TV/Sport, desc: "Career Set"}
|
||||
- {id: 8, cat: TV/Sport, desc: "DVD"}
|
||||
- {id: 10, cat: TV/Sport, desc: "Foreign - Excellent"}
|
||||
- {id: 11, cat: TV/Sport, desc: "Foreign - Fair"}
|
||||
- {id: 6, cat: TV/Sport, desc: "Foreign - Good"}
|
||||
- {id: 12, cat: TV/Sport, desc: "Foreign - Poor"}
|
||||
- {id: 1, cat: TV/Sport, desc: "Full - Excellent"}
|
||||
- {id: 3, cat: TV/Sport, desc: "Full - Fair"}
|
||||
- {id: 2, cat: TV/Sport, desc: "Full - Good"}
|
||||
- {id: 4, cat: TV/Sport, desc: "Full - Poor"}
|
||||
- {id: 14, cat: TV/Sport, desc: "HD"}
|
||||
- {id: 7, cat: TV/Sport, desc: "Misc"}
|
||||
- {id: 18, cat: TV/Sport, desc: "Instructional"}
|
||||
- {id: 19, cat: TV/Documentary, desc: "Documentary"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
|
||||
settings:
|
||||
- name: username
|
||||
type: text
|
||||
label: Username
|
||||
- name: password
|
||||
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
|
||||
seeders: seeders
|
||||
size: size
|
||||
name: title
|
||||
- name: type
|
||||
type: select
|
||||
label: Order requested from site
|
||||
default: DESC
|
||||
options:
|
||||
DESC: desc
|
||||
ASC: asc
|
||||
- name: info_download
|
||||
type: info
|
||||
label: "Download Restrictions"
|
||||
default: "You must have uploaded at least 10GB before you are able to access all torrent sizes. Until then, you are restricted to torrents no larger than 2.5GB."
|
||||
|
||||
login:
|
||||
path: takelogin.php
|
||||
method: post
|
||||
inputs:
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
error:
|
||||
- selector: td.embedded:contains("Login failed!")
|
||||
test:
|
||||
path: browse.php
|
||||
selector: a[href="logout.php"]
|
||||
|
||||
download:
|
||||
selectors:
|
||||
- selector: a[href^="download.php"]
|
||||
attribute: href
|
||||
|
||||
search:
|
||||
paths:
|
||||
# https://tc-boxing.com/browse.php?c16=1&c8=1&c14=1&incldead=1
|
||||
# https://tc-boxing.com/browse.php?search=tyson&cat=0&incldead=1
|
||||
- path: browse.php
|
||||
inputs:
|
||||
$raw: "{{ if .Categories }}{{ range .Categories }}c{{.}}=1&{{end}}{{ else }}cat=0{{ end }}"
|
||||
# 1 incldead, null active
|
||||
incldead: 1
|
||||
# 1 freeleech only, null all
|
||||
free: "{{ if .Config.freeleech }}1{{ else }}{{ end }}"
|
||||
search: "{{ .Keywords }}"
|
||||
sort: "{{ .Config.sort }}"
|
||||
d: "{{ .Config.type }}"
|
||||
|
||||
rows:
|
||||
selector: table[border="1"][cellspacing="0"][cellpadding="5"] tr:has(a[href^="details.php?id="])
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: a[href^="browse.php?cat="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: cat
|
||||
title:
|
||||
selector: a[href^="details.php?id="]
|
||||
details:
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: href
|
||||
files:
|
||||
selector: td:nth-last-child(8)
|
||||
date:
|
||||
selector: td:nth-last-child(6)
|
||||
filters:
|
||||
- name: append
|
||||
args: " -07:00" # PDT
|
||||
- name: dateparse
|
||||
args: "yyyy-MM-ddHH:mm:ss zzz"
|
||||
size:
|
||||
selector: td:nth-last-child(5)
|
||||
grabs:
|
||||
selector: td:nth-last-child(4)
|
||||
seeders:
|
||||
selector: td:nth-last-child(3)
|
||||
leechers:
|
||||
selector: td:nth-last-child(2)
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
"b:contains(\"FreeLeech\")": 0
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
minimumratio:
|
||||
text: 1.0
|
||||
minimumseedtime:
|
||||
# 3 day (as seconds = 3 x 24 x 60 x 60)
|
||||
text: 259200
|
||||
# engine n/a
|
135
config/prowlarr/Definitions/brasiltracker.yml
Normal file
135
config/prowlarr/Definitions/brasiltracker.yml
Normal file
|
@ -0,0 +1,135 @@
|
|||
---
|
||||
id: brasiltracker
|
||||
name: BrasilTracker
|
||||
description: "BrasilTracker is a BRAZILIAN Private Torrent Tracker for MOVIES / TV / GENERAL"
|
||||
language: pt-BR
|
||||
encoding: UTF-8
|
||||
type: private
|
||||
links:
|
||||
- https://brasiltracker.org/
|
||||
|
||||
caps:
|
||||
categories:
|
||||
Other: Other
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q, imdbid]
|
||||
|
||||
settings:
|
||||
- name: cookie
|
||||
type: text
|
||||
label: Cookie
|
||||
- name: info_cookie
|
||||
type: info
|
||||
label: How to get the Cookie
|
||||
default: "<ol><li>Login to this tracker with your browser</li><li>Open the <b>DevTools</b> panel by pressing <b>F12</b></li><li>Select the <b>Network</b> tab</li><li>Click on the <b>Doc</b> button (Chrome Browser) or <b>HTML</b> button (FireFox)</li><li>Refresh the page by pressing <b>F5</b></li><li>Click on the first row entry</li><li>Select the <b>Headers</b> tab on the Right panel</li><li>Find <b>'cookie:'</b> in the <b>Request Headers</b> section</li><li><b>Select</b> and <b>Copy</b> the whole cookie string <i>(everything after 'cookie: ')</i> and <b>Paste</b> here.</li></ol>"
|
||||
- name: info_8000
|
||||
type: info
|
||||
label: About BrasilTracker Categories
|
||||
default: BrasilTracker does not return categories in its search results.</br>To add to your Apps' Torznab indexer, replace all categories with 8000(Other).
|
||||
- name: freeleech
|
||||
type: checkbox
|
||||
label: Search freeleech only
|
||||
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
|
||||
|
||||
login:
|
||||
method: cookie
|
||||
inputs:
|
||||
cookie: "{{ .Config.cookie }}"
|
||||
test:
|
||||
path: index.php
|
||||
selector: a[href^="logout.php?auth="]
|
||||
|
||||
search:
|
||||
paths:
|
||||
# https://brasiltracker.org/torrents.php?order_by=time&order_way=desc&freetorrent=1&filter_cat[6]=1&filter_cat[3]=1&action=basic&searchsubmit=1
|
||||
# https://brasiltracker.org/torrents.php?searchstr=mandalorain&order_by=size&order_way=desc&action=basic&searchsubmit=1
|
||||
# https://brasiltracker.org/torrents.php?searchstr=tt8179024&order_by=time&order_way=desc&action=basic&searchsubmit=1
|
||||
- path: torrents.php
|
||||
inputs:
|
||||
searchstr: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}"
|
||||
order_by: "{{ .Config.sort }}"
|
||||
order_way: "{{ .Config.type }}"
|
||||
group_results: 0
|
||||
action: basic
|
||||
freetorrent: "{{ if .Config.freeleech }}1{{ else }}{{ end }}"
|
||||
searchsubmit: 1
|
||||
|
||||
rows:
|
||||
selector: table#torrent_table > tbody > tr.torrent
|
||||
|
||||
fields:
|
||||
category:
|
||||
text: Other
|
||||
details:
|
||||
selector: a[href^="torrents.php?id="]
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href^="torrents.php?action=download&id="]
|
||||
attribute: href
|
||||
description:
|
||||
selector: div.tags
|
||||
poster:
|
||||
selector: img[alt="Cover"]
|
||||
attribute: src
|
||||
imdbid:
|
||||
selector: a[href*="imdb.com/title/tt"]
|
||||
attribute: href
|
||||
tmdbid:
|
||||
selector: a[href*="themoviedb.org/movie/"], a[href*="themoviedb.org/tv/"]
|
||||
attribute: href
|
||||
files:
|
||||
selector: td:nth-child(3)
|
||||
date:
|
||||
selector: span.time
|
||||
attribute: title
|
||||
filters:
|
||||
- name: append
|
||||
args: " -03:00" # BRT
|
||||
- name: dateparse
|
||||
args: "MMM d yyyy, HH:mm zzz"
|
||||
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:
|
||||
strong.tl_free: 0
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
title_details:
|
||||
selector: div.torrent_info
|
||||
remove: strong
|
||||
title:
|
||||
selector: a[href^="torrents.php?id="]
|
||||
filters:
|
||||
- name: append
|
||||
args: " {{ .Result.title_details }}"
|
||||
minimumratio:
|
||||
text: 1.0
|
||||
minimumseedtime:
|
||||
# 2 days (as seconds = 2 x 24 x 60 x 60)
|
||||
text: 172800
|
||||
# Project Gazelle
|
149
config/prowlarr/Definitions/brsociety-api.yml
Normal file
149
config/prowlarr/Definitions/brsociety-api.yml
Normal file
|
@ -0,0 +1,149 @@
|
|||
---
|
||||
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: Other, 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"}
|
||||
- {id: 7, cat: TV/Documentary, desc: "Documentários"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
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 Settings</i> page and clicking on the <b>API Key</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
|
||||
- name: info_activity
|
||||
type: info
|
||||
label: Account Inactivity
|
||||
default: "Your account will be considered inactive if it exceeds 90 days without you logging in to the Website. After 90 days of inactivity (i.e., 180 days without login) it will be deleted from the tracker."
|
||||
|
||||
login:
|
||||
path: /api/torrents
|
||||
method: get
|
||||
inputs: {} # TODO: remove in v10
|
||||
error:
|
||||
- selector: a[href*="/login"]
|
||||
message:
|
||||
text: "The API key was not accepted by {{ .Config.sitelink }}."
|
||||
|
||||
search:
|
||||
paths:
|
||||
# https://github.com/HDInnovations/UNIT3D-Community-Edition/wiki/Torrent-API-(UNIT3D-v8.x.x)
|
||||
# https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php#L476
|
||||
- path: "/api/torrents/filter"
|
||||
response:
|
||||
type: json
|
||||
|
||||
headers:
|
||||
Authorization: ["Bearer {{ .Config.apikey }}"]
|
||||
|
||||
inputs:
|
||||
$raw: "{{ range .Categories }}&categories[]={{.}}{{end}}"
|
||||
name: "{{ .Keywords }}"
|
||||
"free[]": "{{ if .Config.freeleech }}100{{ else }}{{ end }}"
|
||||
sortField: "{{ .Config.sort }}"
|
||||
sortDirection: "{{ .Config.type }}"
|
||||
perPage: 100
|
||||
|
||||
keywordsfilters:
|
||||
- name: re_replace
|
||||
args: ["\\.", " "]
|
||||
|
||||
rows:
|
||||
selector: data
|
||||
attribute: attributes
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: category_id
|
||||
title:
|
||||
selector: name
|
||||
details:
|
||||
selector: details_link
|
||||
download:
|
||||
selector: download_link
|
||||
magnet:
|
||||
selector: magnet_link
|
||||
optional: true
|
||||
infohash:
|
||||
selector: info_hash
|
||||
files:
|
||||
selector: num_file
|
||||
seeders:
|
||||
selector: seeders
|
||||
leechers:
|
||||
selector: leechers
|
||||
grabs:
|
||||
selector: times_completed
|
||||
date:
|
||||
# "created_at": "2021-10-18T00:34:50.000000Z" is returned by Newtonsoft.Json.Linq as 18/10/2021 00:34:50
|
||||
selector: created_at
|
||||
filters:
|
||||
- name: append
|
||||
args: " +00:00" # GMT
|
||||
- name: dateparse
|
||||
args: "MM/dd/yyyy HH:mm:ss zzz"
|
||||
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 False, True
|
||||
selector: double_upload
|
||||
case:
|
||||
False: 1 # normal
|
||||
True: 2 # double
|
||||
# global MR is 0.7 but torrents must be seeded for 4 days regardless of ratio
|
||||
# minimumratio:
|
||||
# text: 0.7
|
||||
minimumseedtime:
|
||||
# 4 days (as seconds = 4 x 24 x 60 x 60)
|
||||
text: 345600
|
||||
# json UNIT3D 7.1.3 (custom)
|
238
config/prowlarr/Definitions/btarg.yml
Normal file
238
config/prowlarr/Definitions/btarg.yml
Normal file
|
@ -0,0 +1,238 @@
|
|||
---
|
||||
id: btarg
|
||||
name: BTArg
|
||||
description: "BTArg is an ARGENTINIAN Private Torrent Tracker for MOVIES / TV / GENERAL"
|
||||
language: es-AR
|
||||
type: private
|
||||
encoding: iso-8859-1
|
||||
links:
|
||||
- https://www.btarg.com.ar/
|
||||
|
||||
caps:
|
||||
# use upload page when updating cats, browse.php uses 0a, 0b, etc for cats >10
|
||||
categorymappings:
|
||||
- {id: 01, cat: Movies, desc: "Cine Arg."}
|
||||
- {id: 02, cat: Movies/Foreign, desc: "Cine Int."}
|
||||
- {id: 03, cat: TV, desc: "TV Arg."}
|
||||
- {id: 04, cat: TV/Foreign, desc: "TV Int."}
|
||||
- {id: 05, cat: XXX, desc: "XXX"}
|
||||
- {id: 06, cat: TV/Anime, desc: "Anime"}
|
||||
- {id: 07, cat: TV/Sport, desc: "Deportes"}
|
||||
- {id: 08, cat: Audio/Video, desc: "Video Clips"}
|
||||
- {id: 09, cat: Audio, desc: "Musica Arg."}
|
||||
- {id: 10, cat: Audio/Foreign, desc: "Musica Int."}
|
||||
- {id: 11, cat: Movies/DVD, desc: "DVD-R"}
|
||||
- {id: 12, cat: PC/Games, desc: "Juegos"}
|
||||
- {id: 13, cat: PC/0day, desc: "Software Arg."}
|
||||
- {id: 14, cat: PC/0day, desc: "Software Int."}
|
||||
- {id: 15, cat: Other, desc: "Otros"}
|
||||
- {id: 16, cat: Other, desc: "Subpacks"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep, imdbid]
|
||||
movie-search: [q, imdbid]
|
||||
music-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: sort
|
||||
type: select
|
||||
label: Sort requested from site
|
||||
default: added
|
||||
options:
|
||||
added: created
|
||||
seeders: seeders
|
||||
size: size
|
||||
name: title
|
||||
- name: type
|
||||
type: select
|
||||
label: Order requested from site
|
||||
default: desc
|
||||
options:
|
||||
DESC: desc
|
||||
ASC: asc
|
||||
- name: info_tpp
|
||||
type: info
|
||||
label: Results Per Page
|
||||
default: For best results, change the <b>Por página Torrents:</b> setting to <b>100</b> on your account profile.
|
||||
- name: info_activity
|
||||
type: info
|
||||
label: Account Inactivity
|
||||
default: "Those new accounts that do not register a transfer or have any movement in the forum after 4 weeks will be disabled."
|
||||
|
||||
login:
|
||||
path: tracker/takelogin.php
|
||||
method: post
|
||||
inputs:
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
error:
|
||||
- selector: td.embedded:has(h2:contains("fallado"))
|
||||
test:
|
||||
path: tracker/index.php
|
||||
selector: a[href="logout.php"], a[href^="download.php/"]
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: tracker/browse.php
|
||||
inputs:
|
||||
$raw: "{{ range .Categories }}cat[]={{.}}&{{end}}"
|
||||
keywords: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}"
|
||||
# 0 title, 1 title+descr, 2 descr
|
||||
type: "{{ if .Query.IMDBID }}2{{ else }}0{{ end }}"
|
||||
# 0 active, 1 incldead, 2 dead
|
||||
incldead: 0 # dead results don't have torrents
|
||||
# 0 all, 1 free, 2 normal
|
||||
inclfree: "{{ if .Config.freeleech }}1{{ else }}0{{ end }}"
|
||||
sort: "{{ .Config.sort }}"
|
||||
d: "{{ .Config.type }}"
|
||||
list: 1
|
||||
|
||||
keywordsfilters:
|
||||
- name: re_replace
|
||||
args: ["(?i)(S(\\d{1,3}))(?![\\dE])", "Temporada"]
|
||||
- name: re_replace
|
||||
args: ["(\\w+)", "+$1"] # prepend + to each word
|
||||
|
||||
rows:
|
||||
selector: table > tbody > tr:not(tr:first-child):not(tr.browse)
|
||||
after: 1
|
||||
|
||||
fields:
|
||||
categorydesc:
|
||||
selector: a[href*="?cat="] img
|
||||
attribute: title
|
||||
title_default:
|
||||
selector: a[href^="details.php?id="]
|
||||
filters:
|
||||
- name: re_replace
|
||||
args: ["(?i)(Primera Temporada)", "S01"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(Segunda Temporada)", "S02"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(Tercera Temporada)", "S03"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(Cuarta Temporada)", "S04"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(Quinta Temporada)", "S05"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(Sexta Temporada)", "S06"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(Septima Temporada)", "S07"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(Octava Temporada)", "S08"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(Novena Temporada)", "S09"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(Decima Temporada)", "S10"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(Onceava Temporada)", "S11"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(Decimosegunda Temporada)", "S12"]
|
||||
- name: re_replace
|
||||
args: ["(?i)Temporada (\\d{1,3})\\s*y\\s*(\\d{1,3})", "S$1-$2"]
|
||||
- name: re_replace
|
||||
args: ["(?i)Temporada (\\d{1,3})", "S$1"]
|
||||
# move ARG tag to end
|
||||
- name: re_replace
|
||||
args: ["^(\\[ARG\\]) (.+?)$", "$2 $1"]
|
||||
# move quality tags to end
|
||||
- name: re_replace
|
||||
args: ["^(\\[.+?\\]) (.+?)$", "$2 $1"]
|
||||
title:
|
||||
selector: a[title][href^="details.php?id="]
|
||||
attribute: title
|
||||
optional: true
|
||||
default: "{{ .Result.title_default }}"
|
||||
filters:
|
||||
- name: re_replace
|
||||
args: ["(?i)(Primera Temporada)", "S01"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(Segunda Temporada)", "S02"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(Tercera Temporada)", "S03"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(Cuarta Temporada)", "S04"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(Quinta Temporada)", "S05"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(Sexta Temporada)", "S06"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(Septima Temporada)", "S07"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(Octava Temporada)", "S08"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(Novena Temporada)", "S09"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(Decima Temporada)", "S10"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(Onceava Temporada)", "S11"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(Decimosegunda Temporada)", "S12"]
|
||||
- name: re_replace
|
||||
args: ["(?i)Temporada (\\d{1,3})\\s*y\\s*(\\d{1,3})", "S$1-$2"]
|
||||
- name: re_replace
|
||||
args: ["(?i)Temporada (\\d{1,3})", "S$1"]
|
||||
# move ARG tag to end
|
||||
- name: re_replace
|
||||
args: ["^(\\[ARG\\]) (.+?)$", "$2 $1"]
|
||||
# move quality tags to end
|
||||
- name: re_replace
|
||||
args: ["^(\\[.+?\\]) (.+?)$", "$2 $1"]
|
||||
details:
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href^="download.php/"]
|
||||
attribute: href
|
||||
date:
|
||||
selector: td:nth-child(5)
|
||||
remove: font
|
||||
filters:
|
||||
- name: append
|
||||
args: " +00:00" # auto adjusted by site account profile
|
||||
- name: dateparse
|
||||
args: "yyyy-MM-dd zzz"
|
||||
size:
|
||||
selector: td:nth-child(3)
|
||||
seeders:
|
||||
selector: td:nth-child(8)
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "^(\\d+) \/"
|
||||
leechers:
|
||||
selector: td:nth-child(8)
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "\/ (\\d+)$"
|
||||
grabs:
|
||||
selector: td:nth-child(9)
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "\\\xA0(\\d+)\\\xA0"
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
"font[color=\"red\"]:contains(\"FREE!\")": 0
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
minimumratio:
|
||||
text: 0.5
|
||||
description_default:
|
||||
selector: a[href^="details.php?id="]
|
||||
description:
|
||||
selector: a[title][href^="details.php?id="]
|
||||
attribute: title
|
||||
optional: true
|
||||
default: "{{ .Result.description_default }}"
|
||||
# engine tbd
|
77
config/prowlarr/Definitions/btetree.yml
Normal file
77
config/prowlarr/Definitions/btetree.yml
Normal file
|
@ -0,0 +1,77 @@
|
|||
---
|
||||
id: btetree
|
||||
name: BT.etree
|
||||
description: "BT.etree is a Public Tracker dedicated to Bootleg FLAC MUSIC"
|
||||
language: en-US
|
||||
type: public
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://bt.etree.org/
|
||||
legacylinks:
|
||||
- http://bt.etree.org/
|
||||
|
||||
caps:
|
||||
categories:
|
||||
Music: Audio/Lossless
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
music-search: [q, artist]
|
||||
|
||||
settings:
|
||||
- name: sort
|
||||
type: select
|
||||
label: Sort requested from site
|
||||
default: added
|
||||
options:
|
||||
added: created
|
||||
seeders: seeders
|
||||
name: title
|
||||
|
||||
search:
|
||||
paths:
|
||||
# http://bt.etree.org/?searchzzzz=&cat=0
|
||||
- path: /
|
||||
inputs:
|
||||
searchzzzz: "{{ if .Query.Artist }}{{ .Query.Artist }}{{ else }}{{ .Keywords }}{{ end }}"
|
||||
cat: 0
|
||||
sort: "{{ .Config.sort }}"
|
||||
|
||||
rows:
|
||||
selector: table[bgcolor="#CCCCCC"] tbody tr:has(a[href^="download.php"])
|
||||
filters:
|
||||
- name: andmatch
|
||||
|
||||
fields:
|
||||
category:
|
||||
text: Music
|
||||
title:
|
||||
selector: a.details_link
|
||||
details:
|
||||
selector: a.details_link
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href^="download.php"]
|
||||
attribute: href
|
||||
files:
|
||||
selector: td:nth-child(4)
|
||||
date:
|
||||
selector: td:nth-child(5)
|
||||
filters:
|
||||
- name: replace
|
||||
args: [" ", " 0"]
|
||||
- name: dateparse
|
||||
args: "MM/dd HH:mm"
|
||||
size:
|
||||
selector: td:nth-child(6)
|
||||
grabs:
|
||||
selector: td:nth-child(7)
|
||||
seeders:
|
||||
selector: td:nth-child(8)
|
||||
leechers:
|
||||
selector: td:nth-child(9)
|
||||
downloadvolumefactor:
|
||||
text: 0
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
# engine n/a
|
105
config/prowlarr/Definitions/btmet.yml
Normal file
105
config/prowlarr/Definitions/btmet.yml
Normal file
|
@ -0,0 +1,105 @@
|
|||
---
|
||||
id: btmet
|
||||
name: BTMET
|
||||
description: "BTMET is a Public magnet indexer"
|
||||
language: en-US
|
||||
type: public
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://btmet.com/
|
||||
|
||||
caps:
|
||||
categories:
|
||||
Audio: Audio
|
||||
Compressed: Other
|
||||
Document: Books
|
||||
Image: Other
|
||||
Installation: PC
|
||||
Other: Other
|
||||
TV: TV # dummy cat to allow both Movies,TV to be categorised when Video is found.
|
||||
Video: Movies
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
music-search: [q]
|
||||
|
||||
settings:
|
||||
- name: sort
|
||||
type: select
|
||||
label: Sort requested from site
|
||||
default: 0
|
||||
options:
|
||||
0: relevance
|
||||
1: created
|
||||
2: size
|
||||
|
||||
search:
|
||||
paths:
|
||||
# https://btmet.com/search.php?q=2022&c=&l=&o=1
|
||||
- path: search.php
|
||||
inputs:
|
||||
q: "{{ if .Keywords }}{{ .Keywords }}{{ else }}{{ .Today.Year }}{{ end }}"
|
||||
# does not support multi cats so defaulting to all
|
||||
c: ""
|
||||
# 1 Chinese, 2 Japanese, 3 Korean
|
||||
l: ""
|
||||
o: "{{ if .Keywords }}{{ .Config.sort }}{{ else }}1{{ end }}"
|
||||
|
||||
rows:
|
||||
selector: div.search-item:has(a[href^="magnet"])
|
||||
filters:
|
||||
- name: andmatch
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: div.item-bar > span[class="cpill blue-pill"]
|
||||
category|append:
|
||||
# add tv to video
|
||||
optional: true
|
||||
selector: div.item-bar > span[class="cpill blue-pill"]
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["Video", "TV"]
|
||||
title:
|
||||
selector: a.smashTitle > script
|
||||
filters:
|
||||
- name: urldecode
|
||||
- name: replace
|
||||
args: ['document.write(decodeURIComponent("', ""]
|
||||
- name: replace
|
||||
args: ['"));', ""]
|
||||
- name: replace
|
||||
args: ["<b style='color:#ea644a'>", ""]
|
||||
- name: replace
|
||||
args: ["</b>", ""]
|
||||
details:
|
||||
selector: a.smashTitle
|
||||
attribute: href
|
||||
infohash:
|
||||
selector: a[href^="magnet:?xt="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: regexp
|
||||
args: ([a-f|0-9]{40})
|
||||
date:
|
||||
# unix
|
||||
selector: div.item-bar > span:nth-child(2) > b
|
||||
attribute: t
|
||||
filters:
|
||||
- name: regexp
|
||||
args: (\d{10})
|
||||
size:
|
||||
selector: div.item-bar > span:nth-child(3) > b
|
||||
files:
|
||||
selector: div.item-bar > span:nth-child(4) > b
|
||||
seeders:
|
||||
selector: div.item-bar > span:nth-child(5) > b
|
||||
leechers:
|
||||
text: 1
|
||||
downloadvolumefactor:
|
||||
text: 0
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
# engine n/a
|
278
config/prowlarr/Definitions/btnext.yml
Normal file
278
config/prowlarr/Definitions/btnext.yml
Normal file
|
@ -0,0 +1,278 @@
|
|||
---
|
||||
id: btnext
|
||||
name: BTNext
|
||||
description: "BTNext (BTNT) is a PORTUGUESE Private Torrent Tracker for 0DAY / GENERAL"
|
||||
language: pt-PT
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://tracker.btnext.com/ # site forces https
|
||||
legacylinks:
|
||||
- http://tracker.btnext.com/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 86, cat: Other, desc: "Freeleech"}
|
||||
- {id: 88, cat: Movies, desc: "Movies"}
|
||||
- {id: 89, cat: Console, desc: "Games"}
|
||||
- {id: 87, cat: TV, desc: "Series"}
|
||||
- {id: 93, cat: Audio, desc: "Musica"}
|
||||
- {id: 108, cat: Movies, desc: "ViP"}
|
||||
- {id: 1, cat: Movies, desc: "Movies"}
|
||||
- {id: 70, cat: Movies/3D, desc: "Movies 3D"}
|
||||
- {id: 71, cat: Movies/SD, desc: "Movies 480p"}
|
||||
- {id: 72, cat: Movies/BluRay, desc: "Movies BD-R"}
|
||||
- {id: 31, cat: Movies/HD, desc: "Movies BDRIP/BRRip"}
|
||||
- {id: 16, cat: Movies/SD, desc: "Movies CAM"}
|
||||
- {id: 74, cat: Movies/DVD, desc: "Movies DvD-R"}
|
||||
- {id: 76, cat: Movies, desc: "Movies Packs"}
|
||||
- {id: 115, cat: Movies/Other, desc: "Movies Kids"}
|
||||
- {id: 91, cat: Movies/Other, desc: "Movies Kids Inglês"}
|
||||
- {id: 113, cat: Movies/Other, desc: "Movies Kids PT-BR"}
|
||||
- {id: 114, cat: Movies/Other, desc: "Movies Kids PT-PT"}
|
||||
- {id: 77, cat: Movies/WEB-DL, desc: "Movies WEB-DL"}
|
||||
- {id: 85, cat: Movies/DVD, desc: "Movies Custom-DVDR"}
|
||||
- {id: 14, cat: Movies/SD, desc: "Movies DVDRip/XViD"}
|
||||
- {id: 98, cat: Movies/Other, desc: "Movies Juvenil"}
|
||||
- {id: 104, cat: Movies/UHD, desc: "Movies Bluray-UHD"}
|
||||
- {id: 102, cat: Movies/HD, desc: "Movies HD-720p"}
|
||||
- {id: 101, cat: Movies/HD, desc: "Movies HD-1080p"}
|
||||
- {id: 103, cat: Movies/UHD, desc: "Movies HD-2160p"}
|
||||
- {id: 42, cat: TV, desc: "TV Series"}
|
||||
- {id: 45, cat: TV/Documentary, desc: "Documentaries"}
|
||||
- {id: 46, cat: TV/Sport, desc: "Sports"}
|
||||
- {id: 47, cat: TV/HD, desc: "TV Bluray"}
|
||||
- {id: 48, cat: TV/SD, desc: "TV Dvd-R"}
|
||||
- {id: 49, cat: TV/SD, desc: "TV DVDRiP"}
|
||||
- {id: 50, cat: TV, desc: "TV Packs"}
|
||||
- {id: 92, cat: TV, desc: "TV Kids"}
|
||||
- {id: 112, cat: TV, desc: "TV Juvenil"}
|
||||
- {id: 52, cat: TV/SD, desc: "TV SDx264"}
|
||||
- {id: 53, cat: TV/WEB-DL, desc: "TV WEB-DL"}
|
||||
- {id: 55, cat: TV/HD, desc: "TV X264"}
|
||||
- {id: 56, cat: TV/SD, desc: "TV-XViD"}
|
||||
- {id: 7, cat: Audio, desc: "Music"}
|
||||
- {id: 20, cat: Audio/Video, desc: "Music MVideo"}
|
||||
- {id: 21, cat: Audio/MP3, desc: "Music MP3"}
|
||||
- {id: 33, cat: Audio/Video, desc: "Music MP4"}
|
||||
- {id: 32, cat: Audio/Lossless, desc: "Music FLAC"}
|
||||
- {id: 2, cat: Console, desc: "Games"}
|
||||
- {id: 78, cat: PC/Games, desc: "Games Linux"}
|
||||
- {id: 79, cat: PC/Mac, desc: "Games MacOSX"}
|
||||
- {id: 28, cat: Console/NDS, desc: "Games Nintendo DS"}
|
||||
- {id: 27, cat: PC/Games, desc: "Games PC/Windows"}
|
||||
- {id: 111, cat: Console, desc: "Games Nintendo Sw"}
|
||||
- {id: 80, cat: Console/PS3, desc: "Games PS2"}
|
||||
- {id: 81, cat: Console/PS3, desc: "Games PS3"}
|
||||
- {id: 82, cat: Console/PS4, desc: "Games PS4"}
|
||||
- {id: 83, cat: Console/PSP, desc: "Games PSP"}
|
||||
- {id: 95, cat: Console/PS Vita, desc: "Games PSVITA"}
|
||||
- {id: 4, cat: Console/Wii, desc: "Games Wii"}
|
||||
- {id: 26, cat: Console/XBox 360, desc: "Games XBOX360"}
|
||||
- {id: 84, cat: Console/XBox, desc: "Games XONE"}
|
||||
- {id: 6, cat: PC, desc: "Applications"}
|
||||
- {id: 18, cat: PC/ISO, desc: "Applications PC"}
|
||||
- {id: 19, cat: PC/Mac, desc: "Applications Macintosh"}
|
||||
- {id: 34, cat: PC/ISO, desc: "Applications Linux"}
|
||||
- {id: 44, cat: Other, desc: "Miscellaneous"}
|
||||
- {id: 54, cat: Audio/Audiobook, desc: "Books Audiobook"}
|
||||
- {id: 57, cat: Books/EBook, desc: "Books E-Books"}
|
||||
- {id: 58, cat: Books/Comics, desc: "Books Comics"}
|
||||
- {id: 59, cat: Books, desc: "Books Educational"}
|
||||
- {id: 60, cat: Books/Mags, desc: "Books Magazines/Journals"}
|
||||
- {id: 61, cat: Other, desc: "Pics/Wallpapers"}
|
||||
- {id: 62, cat: PC/Mobile-Android, desc: "Android"}
|
||||
- {id: 63, cat: PC/Mobile-iOS, desc: "iOS"}
|
||||
- {id: 66, cat: PC/Mobile-Other, desc: "WindowsPhone"}
|
||||
- {id: 90, cat: Other, desc: "GPS"}
|
||||
- {id: 68, cat: Other, desc: "Others"}
|
||||
- {id: 100, cat: Other, desc: "Revistas"}
|
||||
- {id: 109, cat: TV/Anime, desc: "Anime"}
|
||||
- {id: 51, cat: TV/Anime, desc: "Anime Filmes"}
|
||||
- {id: 99, cat: TV/Anime, desc: "Anime Hentai"}
|
||||
- {id: 110, cat: TV/Anime, desc: "Anime TV Séries"}
|
||||
- {id: 41, cat: XXX, desc: "XXX"}
|
||||
- {id: 64, cat: XXX, desc: "XXX-Magazines"}
|
||||
- {id: 65, cat: XXX, desc: "XXX-Movies"}
|
||||
- {id: 67, cat: XXX/Pack, desc: "XXX-Packs"}
|
||||
- {id: 69, cat: XXX/ImageSet, desc: "XXX-Pics/Wallpapers"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep, imdbid]
|
||||
movie-search: [q, imdbid]
|
||||
music-search: [q]
|
||||
book-search: [q]
|
||||
|
||||
settings:
|
||||
- name: username
|
||||
type: text
|
||||
label: Username
|
||||
- name: password
|
||||
type: password
|
||||
label: Password
|
||||
- name: info
|
||||
type: info
|
||||
label: Layout
|
||||
default: "<ol><li>Only the English Classic profile is supported.</li><li>Make sure to set the <b>Torrent Listing (Lista de Torrents)</b> option in your profile to <b>Classic (Clássico)</b></li><li>Using the <i>Moderna</i> theme will prevent results.</li></ol>"
|
||||
- name: sort
|
||||
type: select
|
||||
label: Sort requested from site
|
||||
default: added
|
||||
options:
|
||||
added: created
|
||||
seeders: seeders
|
||||
size: size
|
||||
- name: type
|
||||
type: select
|
||||
label: Order requested from site
|
||||
default: desc
|
||||
options:
|
||||
desc: desc
|
||||
asc: asc
|
||||
- name: info_results
|
||||
type: info
|
||||
label: Search results
|
||||
default: "If you get 0 results check the log for error: <b>An error has occurred!You can't view this page unless you read all your unread messages</b>, then access the site with your browser and <b>mark as read</b> all PMs."
|
||||
|
||||
login:
|
||||
path: ?p=home&pid=1
|
||||
method: form
|
||||
form: form#loginbox_form
|
||||
submitpath: /ajax/login.php
|
||||
inputs:
|
||||
action: login
|
||||
loginbox_membername: "{{ .Config.username }}"
|
||||
loginbox_password: "{{ .Config.password }}"
|
||||
loginbox_remember: 1
|
||||
selectorinputs:
|
||||
securitytoken:
|
||||
selector: "script:contains(\"stKey: \")"
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "stKey: \"(.+?)\","
|
||||
error:
|
||||
- selector: ":contains(\"-ERROR-\")"
|
||||
test:
|
||||
path: ?p=torrents&pid=32
|
||||
selector: a#logout
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: /
|
||||
keywordsfilters:
|
||||
- name: re_replace
|
||||
args: ["[^a-zA-Z0-9]+", "%25"]
|
||||
inputs:
|
||||
p: torrents
|
||||
pid: 32
|
||||
$raw: "{{ range .Categories }}cid[]={{.}}&{{end}}"
|
||||
keywords: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}"
|
||||
# name, description, both, uploader
|
||||
search_type: "{{ if .Query.IMDBID }}description{{ else }}name{{ end }}"
|
||||
"sortOptions[sortBy]": "{{ .Config.sort }}"
|
||||
"sortOptions[sortOrder]": "{{ .Config.type }}"
|
||||
error:
|
||||
- selector: div.error:not(:contains("Não existem resultados encontrados.")):not(:contains("There are no results found."))
|
||||
|
||||
rows:
|
||||
selector: table#torrents_table_classic > tbody > tr:has(td.torrent_name)
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: div.category_image > a
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: cid
|
||||
title:
|
||||
selector: a[href*="?p=torrents&pid=10&action=details"]
|
||||
details:
|
||||
selector: a[href*="?p=torrents&pid=10&action=details"]
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href*="?p=torrents&pid=10&action=download"]
|
||||
attribute: href
|
||||
size:
|
||||
selector: a[rel="torrent_size"]
|
||||
seeders:
|
||||
selector: a[rel="torrent_seeders"]
|
||||
leechers:
|
||||
selector: a[rel="torrent_leechers"]
|
||||
grabs:
|
||||
selector: a[rel="times_completed"]
|
||||
poster:
|
||||
selector: a[rel="fancybox"]
|
||||
attribute: href
|
||||
imdbid:
|
||||
# a href="http://tracker.btnext.com/data/torrents/imdb/tt0249677.jpg"
|
||||
selector: a[href*="/imdb/tt"]
|
||||
attribute: href
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
"img[title=\"FREE!\"]": 0
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
date_ago:
|
||||
selector: td.torrent_name > abbr.timeago
|
||||
optional: true
|
||||
attribute: data-time
|
||||
date_year:
|
||||
selector: td.torrent_name:not(:has(abbr.timeago)):not(:contains("day")):not(:contains("Domingo")):not(:contains("Sábado")):not(:contains("Sexta")):not(:contains("Quinta")):not(:contains("Quarta")):not(:contains("Terça")):not(:contains("Segunda")):not(:contains("ontem")):not(:contains("Hoje"))
|
||||
optional: true
|
||||
remove: span, a, br
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["Enviado ", ""] # Uploaded
|
||||
- name: replace
|
||||
args: ["Uploaded ", ""]
|
||||
- name: replace
|
||||
args: [" por", ""] # by
|
||||
- name: replace
|
||||
args: [" by", ""]
|
||||
- name: replace
|
||||
args: ["às ", ""] # at
|
||||
- name: replace
|
||||
args: ["at ", ""]
|
||||
- name: append
|
||||
args: " +00:00" # WET
|
||||
- name: dateparse
|
||||
args: "dd-MM-yyyy HH:mm zzz"
|
||||
date_day:
|
||||
selector: td.torrent_name:not(:has(abbr.timeago)):contains("day"), td.torrent_name:not(:has(abbr.timeago)):contains("Domingo"), td.torrent_name:not(:has(abbr.timeago)):contains("Sábado"), td.torrent_name:not(:has(abbr.timeago)):contains("Quinta"), td.torrent_name:not(:has(abbr.timeago)):contains("Sexta"), td.torrent_name:not(:has(abbr.timeago)):contains("Quarta"), td.torrent_name:not(:has(abbr.timeago)):contains("Terça"), td.torrent_name:not(:has(abbr.timeago)):contains("Segunda"), td.torrent_name:not(:has(abbr.timeago)):contains("ontem"), td.torrent_name:not(:has(abbr.timeago)):contains("Hoje")
|
||||
optional: true
|
||||
remove: span, a, br
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["Enviado ", ""] # Uploaded
|
||||
- name: replace
|
||||
args: ["Uploaded ", ""]
|
||||
- name: replace
|
||||
args: [" por", ""] # by
|
||||
- name: replace
|
||||
args: [" by", ""]
|
||||
- name: replace
|
||||
args: ["às ", "at "]
|
||||
- name: replace
|
||||
args: ["Hoje", "Today"]
|
||||
- name: replace
|
||||
args: ["ontem", "Yesterday"]
|
||||
- name: replace
|
||||
args: ["Segunda", "Monday"]
|
||||
- name: replace
|
||||
args: ["Terça", "Tuesday"]
|
||||
- name: replace
|
||||
args: ["Quarta", "Wednesday"]
|
||||
- name: replace
|
||||
args: ["Quinta", "Thursday"]
|
||||
- name: replace
|
||||
args: ["Sexta", "Friday"]
|
||||
- name: replace
|
||||
args: ["Sábado", "Saturday"]
|
||||
- name: replace
|
||||
args: ["Domingo", "Sunday"]
|
||||
- name: fuzzytime
|
||||
date:
|
||||
text: "{{ if or .Result.date_year .Result.date_day .Result.date_ago }}{{ or .Result.date_year .Result.date_day .Result.date_ago }}{{ else }}now{{ end }}"
|
||||
# TSUE 2.2
|
158
config/prowlarr/Definitions/btschool.yml
Normal file
158
config/prowlarr/Definitions/btschool.yml
Normal file
|
@ -0,0 +1,158 @@
|
|||
---
|
||||
id: btschool
|
||||
name: BTSCHOOL
|
||||
description: "BTSCHOOL is a CHINESE Private Torrent Tracker for MOVIES / TV / GENERAL"
|
||||
language: zh-CN
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://pt.btschool.club/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 405, cat: Movies, desc: "电影/Movies"}
|
||||
- {id: 406, cat: TV, desc: "连续剧/TV-Series"}
|
||||
- {id: 407, cat: TV/Anime, desc: "动漫/Animation"}
|
||||
- {id: 408, cat: TV/Documentary, desc: "纪录片/Documentary"}
|
||||
- {id: 412, cat: TV, desc: "综艺/TV-Show"}
|
||||
- {id: 404, cat: PC/0day, desc: "软件/Software"}
|
||||
- {id: 402, cat: TV, desc: "资料/Education"}
|
||||
- {id: 411, cat: PC/Games, desc: "游戏/Game"}
|
||||
- {id: 409, cat: Audio, desc: "音乐/Music"}
|
||||
- {id: 410, cat: TV/Sport, desc: "体育/Sports"}
|
||||
- {id: 415, cat: Other, desc: "其他/Other"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep, imdbid]
|
||||
movie-search: [q, imdbid]
|
||||
music-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: flaresolverr
|
||||
type: info
|
||||
label: FlareSolverr
|
||||
default: This site may use Cloudflare DDoS Protection, therefore Prowlarr requires <a href="https://wiki.servarr.com/prowlarr/faq#can-i-use-flaresolverr-indexers" target="_blank" rel="noreferrer">FlareSolverr</a> to access it.
|
||||
- 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.
|
||||
- name: info_activity
|
||||
type: info
|
||||
label: Account Inactivity
|
||||
default: "Cherish your user account. Inactive accounts would be deleted based on the following rules:<ol><li>Extreme User or above would never be deleted.</li><li>Veteran User or above would never be deleted if parked (at User CP).</li><li>Parked accounts would be deleted if users have not logged in for more than 365 days in a row.</li><li>Unparked accounts would be deleted if users have not logged in for more than 150 days in a row.</li><li>Accounts with both uploaded and downloaded amount being 0 would be deleted if users have not logged in for more than 30 days in a row.</li></ol>"
|
||||
|
||||
login:
|
||||
path: login.php
|
||||
method: form
|
||||
form: form[action="takelogin.php"]
|
||||
captcha:
|
||||
type: image
|
||||
selector: img[alt="CAPTCHA"]
|
||||
input: imagestring
|
||||
inputs:
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
error:
|
||||
- selector: td.embedded:has(h2:contains("登錄失敗"))
|
||||
- selector: td.embedded:has(h2:contains("失败"))
|
||||
test:
|
||||
path: index.php
|
||||
selector: a[href="logout.php"]
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: torrents.php
|
||||
inputs:
|
||||
$raw: "{{ range .Categories }}cat{{.}}=1&{{end}}"
|
||||
search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}"
|
||||
# 0 incldead, 1 active, 2 justdead
|
||||
incldead: 0
|
||||
# promotion: 0 all, 1 normal, 2 free, 3 2x, 4 2xfree, 5 50%, 6 2x 50%, 7 30%
|
||||
spstate: "{{ if .Config.freeleech }}2{{ else }}0{{ end }}"
|
||||
# 0 title, 1 descr, 3 uploader, 4 imdb
|
||||
search_area: "{{ if .Query.IMDBID }}4{{ else }}0{{ end }}"
|
||||
# 0 AND, 1 OR, 2 exact
|
||||
search_mode: 0
|
||||
sort: 4
|
||||
type: desc
|
||||
notnewword: 1
|
||||
|
||||
rows:
|
||||
selector: table.torrents > tbody > tr:has(table.torrentname)
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: a[href^="?cat="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: cat
|
||||
title:
|
||||
selector: a[title][href^="details.php?id="]
|
||||
attribute: title
|
||||
details:
|
||||
selector: a[title][href^="details.php?id="]
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href^="download.php?id="]
|
||||
attribute: href
|
||||
date_elapsed:
|
||||
# time type: time elapsed (default)
|
||||
selector: td:nth-child(4) > span[title]
|
||||
attribute: title
|
||||
optional: true
|
||||
filters:
|
||||
- name: append
|
||||
args: " +08:00" # CST
|
||||
- name: dateparse
|
||||
args: "yyyy-MM-dd HH:mm:ss zzz"
|
||||
date_added:
|
||||
# time added
|
||||
selector: td:nth-child(4):not(:has(span))
|
||||
optional: true
|
||||
filters:
|
||||
- name: append
|
||||
args: " +08:00" # CST
|
||||
- name: dateparse
|
||||
args: "yyyy-MM-ddHH:mm:ss zzz"
|
||||
date:
|
||||
text: "{{ if or .Result.date_elapsed .Result.date_added }}{{ or .Result.date_elapsed .Result.date_added }}{{ else }}now{{ end }}"
|
||||
size:
|
||||
selector: td.rowfollow:nth-child(5)
|
||||
seeders:
|
||||
selector: td.rowfollow:nth-child(6)
|
||||
leechers:
|
||||
selector: td.rowfollow:nth-child(7)
|
||||
grabs:
|
||||
selector: td.rowfollow:nth-child(8)
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
img.pro_free: 0
|
||||
img.pro_free2up: 0
|
||||
img.pro_50pctdown: 0.5
|
||||
img.pro_50pctdown2up: 0.5
|
||||
img.pro_30pctdown: 0.3
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
case:
|
||||
img.pro_50pctdown2up: 2
|
||||
img.pro_free2up: 2
|
||||
img.pro_2up: 2
|
||||
"*": 1
|
||||
minimumratio:
|
||||
text: 1.0
|
||||
description:
|
||||
selector: td:nth-child(2)
|
||||
remove: a, b, font, img, span
|
||||
# NexusPHP Standard v1.5 Beta 4
|
90
config/prowlarr/Definitions/btsow.yml
Normal file
90
config/prowlarr/Definitions/btsow.yml
Normal file
|
@ -0,0 +1,90 @@
|
|||
---
|
||||
id: btsow
|
||||
name: BTSOW
|
||||
description: "BTSOW is a Public torrent indexer"
|
||||
language: en-US
|
||||
type: public
|
||||
encoding: UTF-8
|
||||
# use https://tellme.pw/btsow to find the new domain
|
||||
links:
|
||||
- https://btsow.motorcycles/
|
||||
legacylinks:
|
||||
- https://btsow.rest/
|
||||
- https://btsow.bar/
|
||||
- https://btsow.click/
|
||||
- https://btsow.cfd/
|
||||
- https://btsow.sbs/
|
||||
- https://btsow.quest/
|
||||
- https://btsow.autos/
|
||||
- https://btsow.beauty/
|
||||
- https://btsow.mom/
|
||||
- https://btsow.boats/
|
||||
- https://btsow.hair/
|
||||
- https://btsow.bond/
|
||||
- https://btsow.skin/
|
||||
- https://btsow.makeup/
|
||||
- https://btsow.homes/
|
||||
|
||||
caps:
|
||||
categories:
|
||||
Other: Other
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
music-search: [q]
|
||||
book-search: [q]
|
||||
|
||||
settings:
|
||||
- name: info_8000
|
||||
type: info
|
||||
label: About BTSOW Categories
|
||||
default: BTSOW does not return categories in its search results.</br>To add to your Apps' Torznab indexer, replace all categories with 8000(Other).
|
||||
|
||||
download:
|
||||
selectors:
|
||||
- selector: a#magnetOpen
|
||||
attribute: href
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: "search/{{ if .Keywords }}{{ .Keywords }}{{ else }}{{ .Today.Year }}{{ end }}"
|
||||
|
||||
headers:
|
||||
# site blocks Jackett's User-Agents, so slightly alter it here (e.g. Safari/537.36 > Safari/537.35)
|
||||
User-Agent: ["Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.35"]
|
||||
|
||||
rows:
|
||||
selector: div.row:has(a[href*="/detail/hash/"])
|
||||
|
||||
fields:
|
||||
category:
|
||||
text: Other
|
||||
title:
|
||||
selector: a[href*="/detail/hash/"]
|
||||
attribute: title
|
||||
details:
|
||||
selector: a[href*="/detail/hash/"]
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href*="/detail/hash/"]
|
||||
attribute: href
|
||||
date:
|
||||
selector: div.date
|
||||
filters:
|
||||
- name: append
|
||||
args: " -00:00" # GMT
|
||||
- name: dateparse
|
||||
args: "yyyy-MM-dd zzz"
|
||||
size:
|
||||
selector: div.size
|
||||
seeders:
|
||||
text: 1
|
||||
leechers:
|
||||
text: 1
|
||||
downloadvolumefactor:
|
||||
text: 0
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
# engine n/a
|
235
config/prowlarr/Definitions/bwtorrents.yml
Normal file
235
config/prowlarr/Definitions/bwtorrents.yml
Normal file
|
@ -0,0 +1,235 @@
|
|||
---
|
||||
id: bwtorrents
|
||||
name: BwTorrents
|
||||
description: "BwTorrents is a Private Torrent Tracker for BollyWood MOVIES / TV / GENERAL"
|
||||
language: en-US
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://bwtorrents.tv/
|
||||
- https://bwtorrents.co/
|
||||
- https://bwtorrents.cc/
|
||||
legacylinks:
|
||||
- https://bwtorrents.fun/
|
||||
- https://bwtorrents.xyz/
|
||||
- https://bwtorrents.us/
|
||||
- https://bwtorrents.live/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
# note: to update cats for this site its easier to use my.php and sort by cat integer
|
||||
# also cat 187 is undocumented but exists
|
||||
- {id: 113, cat: Movies, desc: "Bollywood-Pre-Release"}
|
||||
- {id: 114, cat: Movies/UHD, desc: "Bollywood-4K Ultra HD / Upscaled"}
|
||||
- {id: 115, cat: Movies/BluRay, desc: "Bollywood-Untouched BluRay"}
|
||||
- {id: 116, cat: Movies/HD, desc: "Bollywood-1080p BluRay Rips"}
|
||||
- {id: 117, cat: Movies/HD, desc: "Bollywood-720p BluRay Rips"}
|
||||
- {id: 118, cat: Movies, desc: "Bollywood-Remuxes BluRay"}
|
||||
- {id: 119, cat: Movies/WEB-DL, desc: "Bollywood-Untouched WEB-DLs"}
|
||||
- {id: 120, cat: Movies/WEB-DL, desc: "Bollywood-1080p WEB-Rips"}
|
||||
- {id: 121, cat: Movies/DVD, desc: "Bollywood-Untouched DVDs"}
|
||||
- {id: 122, cat: Movies/WEB-DL, desc: "Bollywood-DVDRips 1080p/720p"}
|
||||
- {id: 123, cat: Movies/WEB-DL, desc: "Bollywood-SDRips WEB/DVD"}
|
||||
- {id: 124, cat: Movies/3D, desc: "Bollywood-3D-Movies"}
|
||||
- {id: 125, cat: Movies/WEB-DL, desc: "Bollywood-Web Series"}
|
||||
- {id: 126, cat: Movies/UHD, desc: "Hollywood-4K Ultra HD / Upscaled"}
|
||||
- {id: 127, cat: Movies/BluRay, desc: "Hollywood-Untouched BluRay"}
|
||||
- {id: 128, cat: Movies/HD, desc: "Hollywood-1080p BluRay Rips"}
|
||||
- {id: 129, cat: Movies/HD, desc: "Hollywood-720p BluRay Rips"}
|
||||
- {id: 130, cat: Movies, desc: "Hollywood-BluRay Remuxes"}
|
||||
- {id: 131, cat: Movies/WEB-DL, desc: "Hollywood-Untouched WEB-DLs"}
|
||||
- {id: 132, cat: Movies, desc: "Hollywood-1080p WEB-Rips"}
|
||||
- {id: 133, cat: Movies/DVD, desc: "Hollywood-Untouched DVDs"}
|
||||
- {id: 134, cat: Movies/WEB-DL, desc: "Hollywood-DVDRips 1080p/720p"}
|
||||
- {id: 135, cat: Movies/3D, desc: "Hollywood-3D-Movies"}
|
||||
- {id: 136, cat: Movies, desc: "Hollywood-Pre-Release"}
|
||||
- {id: 137, cat: Movies, desc: "Malayalam-Movies"}
|
||||
- {id: 140, cat: Movies, desc: "Punjabi-Movies"}
|
||||
- {id: 141, cat: Movies, desc: "Kannada-Movies"}
|
||||
- {id: 142, cat: Movies, desc: "Lollywood-Movies"}
|
||||
- {id: 143, cat: Movies, desc: "Bhoipuri-Movies"}
|
||||
- {id: 144, cat: Movies, desc: "Marathi-Movies"}
|
||||
- {id: 145, cat: Movies, desc: "Bangla-Movies"}
|
||||
- {id: 146, cat: TV, desc: "TV-Colors"}
|
||||
- {id: 147, cat: TV, desc: "TV-TV"}
|
||||
- {id: 148, cat: TV, desc: "TV-Life OK"}
|
||||
- {id: 149, cat: TV, desc: "TV-Pakistan Drams"}
|
||||
- {id: 150, cat: TV, desc: "TV-Sab TV"}
|
||||
- {id: 151, cat: TV, desc: "TV-Sony"}
|
||||
- {id: 152, cat: TV, desc: "TV-Star Bharat"}
|
||||
- {id: 153, cat: TV, desc: "TV-Star Plus"}
|
||||
- {id: 154, cat: TV, desc: "TV-Zee TV"}
|
||||
- {id: 155, cat: TV/Sport, desc: "TV-Sports"}
|
||||
- {id: 156, cat: TV/Documentary, desc: "TV-Documentaries"}
|
||||
- {id: 157, cat: TV, desc: "TV-Hollywood Tv Shows"}
|
||||
- {id: 158, cat: TV, desc: "TV-Other Tv Shows"}
|
||||
- {id: 159, cat: Audio, desc: "Music-Religion & Spirituality"}
|
||||
- {id: 160, cat: Audio, desc: "Music-Classical"}
|
||||
- {id: 161, cat: Audio/Lossless, desc: "Music-Flacs"}
|
||||
- {id: 162, cat: Audio, desc: "Music-Ghazals"}
|
||||
- {id: 163, cat: Audio, desc: "Music-Hindi OSTs"}
|
||||
- {id: 164, cat: Audio, desc: "Music-Instrumental"}
|
||||
- {id: 165, cat: Audio, desc: "Music-Kannada"}
|
||||
- {id: 166, cat: Audio, desc: "Music-Lollywood"}
|
||||
- {id: 167, cat: Audio, desc: "Music-Malayalam"}
|
||||
- {id: 168, cat: Audio, desc: "Music-Marathi"}
|
||||
- {id: 169, cat: Audio/Video, desc: "Music-Videos"}
|
||||
- {id: 170, cat: Audio, desc: "Music-Pop"}
|
||||
- {id: 171, cat: Audio, desc: "Music-Punjabi"}
|
||||
- {id: 172, cat: Audio, desc: "Music-Remix"}
|
||||
- {id: 173, cat: Audio, desc: "Music-Tamil"}
|
||||
- {id: 174, cat: Audio, desc: "Music-Telugu"}
|
||||
- {id: 175, cat: Books/EBook, desc: "Ebooks"}
|
||||
- {id: 176, cat: PC/Games, desc: "Games PC"}
|
||||
- {id: 177, cat: Console, desc: "Games Console"}
|
||||
- {id: 178, cat: TV/Anime, desc: "Anime"}
|
||||
- {id: 179, cat: PC, desc: "Appz"}
|
||||
- {id: 180, cat: PC/Mobile-Other, desc: "Mobile Stuff"}
|
||||
- {id: 181, cat: Other, desc: "Pics/Wallpapers"}
|
||||
- {id: 182, cat: Movies, desc: "Other Movies"}
|
||||
- {id: 183, cat: Movies, desc: "English Hindi Dubbed"}
|
||||
- {id: 184, cat: Movies, desc: "South Hindi Dubbed"}
|
||||
- {id: 185, cat: Movies, desc: "Gujarati-Movies"}
|
||||
- {id: 186, cat: TV, desc: "TV-Dangal Tv"}
|
||||
- {id: 187, cat: XXX, desc: "Adult XXX 18+"}
|
||||
- {id: 188, cat: Movies/WEB-DL, desc: "Bollywood-720p WEB-Rips"}
|
||||
- {id: 189, cat: Movies/DVD, desc: "Bollywood-Encoded DVDs"}
|
||||
- {id: 190, cat: Movies, desc: "Bollywood-Movie packs"}
|
||||
- {id: 191, cat: Movies/WEB-DL, desc: "Hollywood-Encoded DVDs"}
|
||||
- {id: 192, cat: Movies, desc: "Hollywood-720p WEB-Rips"}
|
||||
- {id: 193, cat: Movies/SD, desc: "Hollywood-SDRips - WEB/DVD"}
|
||||
- {id: 194, cat: Movies, desc: "Hollywood-Movie packs"}
|
||||
- {id: 195, cat: TV, desc: "TV-Tv Packs"}
|
||||
- {id: 196, cat: Audio, desc: "Music-Packs"}
|
||||
- {id: 197, cat: Movies, desc: "Turkish Hindi Dubbed"}
|
||||
- {id: 198, cat: Movies, desc: "TV-MTV"}
|
||||
- {id: 199, cat: Movies, desc: "Telgu-Movies | 4K Ultra HD - Upscaled"}
|
||||
- {id: 200, cat: Movies, desc: "Telgu-Movies | Untouched WEB-DLs"}
|
||||
- {id: 201, cat: Movies, desc: "Telgu-Movies | 1080p/720p WEBRips"}
|
||||
- {id: 202, cat: Movies, desc: "Telgu-Movies | Untouched BluRay"}
|
||||
- {id: 203, cat: Movies, desc: "Telgu-Movies | Untouched DVDs"}
|
||||
- {id: 204, cat: Movies, desc: "Telgu-Movies | SD-WEBRips / DVDRips"}
|
||||
- {id: 205, cat: Movies, desc: "Telgu-Movies | Movie Packs"}
|
||||
- {id: 207, cat: Movies, desc: "Telgu-Movies | BluRay Rips"}
|
||||
- {id: 208, cat: Movies, desc: "Telgu-Movies | Remuxes BluRay"}
|
||||
- {id: 209, cat: Movies, desc: "Tamil-Movies | 4K Ultra HD - Upscaled"}
|
||||
- {id: 210, cat: Movies, desc: "Tamil-Movies | Untouched WEB-DLs"}
|
||||
- {id: 211, cat: Movies, desc: "Tamil-Movies | 1080p/720p WEBRips"}
|
||||
- {id: 212, cat: Movies, desc: "Tamil-Movies | Untouched BluRay"}
|
||||
- {id: 213, cat: Movies, desc: "Tamil-Movies | Untouched DVDs"}
|
||||
- {id: 214, cat: Movies, desc: "Tamil-Movies | SD-WEBRips / DVDRips"}
|
||||
- {id: 215, cat: Movies, desc: "Tamil-Movies | Movie Packs"}
|
||||
- {id: 216, cat: Movies, desc: "Tamil-Movies | BluRay Rips"}
|
||||
- {id: 217, cat: Movies, desc: "Tamil-Movies | Remuxes BluRay"}
|
||||
- {id: 218, cat: TV, desc: "TV-Ishara TV"}
|
||||
- {id: 219, cat: TV, desc: "TV-Bengali Tv"}
|
||||
- {id: 220, cat: TV, desc: "TV-Shemaroo Umang"}
|
||||
- {id: 221, cat: TV, desc: "TV-JioTv"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
music-search: [q]
|
||||
book-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: info_activity
|
||||
type: info
|
||||
label: Account Inactivity
|
||||
default: "Account activity:<ol><li>Zero activity accounts (0 bytes download and 0 bytes upload) are automatically deleted after 30 days</li><li>Inactive accounts under VIP and without parked are automatically deleted after 40 days.</li></ol>"
|
||||
|
||||
login:
|
||||
path: takelogin.php
|
||||
method: post
|
||||
inputs:
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
error:
|
||||
- selector: td.embedded:has(h2:contains("failed"))
|
||||
test:
|
||||
path: index.php
|
||||
selector: a[href="logout.php"]
|
||||
|
||||
search:
|
||||
paths:
|
||||
# https://bwtorrents.tv/index.php?search=&blah=0&c120=1&c119=1&incldead=1
|
||||
- path: index.php
|
||||
inputs:
|
||||
$raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
|
||||
search: "{{ .Keywords }}"
|
||||
# 1 all, 2 onlydead, 3 free
|
||||
incldead: "{{ if .Config.freeleech }}3{{ else }}1{{ end }}"
|
||||
# 0 name, 1 descr, 2 both
|
||||
blah: 0
|
||||
# does not support imdbid searches and does not have imdb links in results.
|
||||
|
||||
rows:
|
||||
selector: table[width="1200"] > tbody > tr:has(a[href^="download.php/"])
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: a[href^="index.php?cat="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: cat
|
||||
title:
|
||||
selector: a[href^="details.php?id="] b
|
||||
details:
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: href
|
||||
files:
|
||||
selector: td:nth-child(3)
|
||||
date:
|
||||
selector: td:nth-child(5)
|
||||
# auto adjusted by site account profile
|
||||
filters:
|
||||
- name: dateparse
|
||||
args: "dd-MM-yyyyHH:mm:ss"
|
||||
size:
|
||||
selector: td:nth-child(6)
|
||||
download:
|
||||
selector: a[href^="download.php/"]
|
||||
attribute: href
|
||||
seeders:
|
||||
selector: td:nth-child(8)
|
||||
leechers:
|
||||
selector: td:nth-child(9)
|
||||
grabs:
|
||||
selector: td:nth-child(9)
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
"font:contains(\"FreeLeech\")": 0
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
case:
|
||||
img[src="pic/double_upload.png"]: 2
|
||||
"*": 1
|
||||
genre:
|
||||
selector: td:nth-child(2)
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "Genre:\\s(.+?)$"
|
||||
- name: replace
|
||||
args: [", ", ","]
|
||||
- name: replace
|
||||
args: [" ", "_"]
|
||||
description:
|
||||
text: "{{ .Result.genre }}"
|
||||
minimumratio:
|
||||
text: 1.0
|
||||
minimumseedtime:
|
||||
# 3 day (as seconds = 3 x 24 x 60 x 60)
|
||||
text: 259200
|
||||
# AEON
|
180
config/prowlarr/Definitions/byrbt.yml
Normal file
180
config/prowlarr/Definitions/byrbt.yml
Normal file
|
@ -0,0 +1,180 @@
|
|||
---
|
||||
id: byrbt
|
||||
name: BYRBT
|
||||
description: "BYRBT is a CHINESE Private Torrent Tracker for HD MOVIES / TV / GENERAL"
|
||||
language: zh-CN
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://byr.pt/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 408, cat: Movies, desc: "电影Movies"}
|
||||
- {id: 401, cat: TV, desc: "剧集TV Series"}
|
||||
- {id: 404, cat: TV/Anime, desc: "动漫Animations"}
|
||||
- {id: 402, cat: Audio, desc: "音乐Music"}
|
||||
- {id: 405, cat: Other, desc: "综艺Arts"}
|
||||
- {id: 403, cat: Console, desc: "游戏Games"}
|
||||
- {id: 406, cat: PC, desc: "软件Software"}
|
||||
- {id: 407, cat: TV/Documentary, desc: "资料Documentaries"}
|
||||
- {id: 409, cat: TV/Sport, desc: "体育Sports"}
|
||||
- {id: 410, cat: Other/Misc, desc: "纪录Records"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep, imdbid, doubanid]
|
||||
movie-search: [q, imdbid, doubanid]
|
||||
music-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: sort
|
||||
type: select
|
||||
label: Sort requested from site
|
||||
default: 4
|
||||
options:
|
||||
4: created
|
||||
7: seeders
|
||||
5: size
|
||||
1: title
|
||||
- name: type
|
||||
type: select
|
||||
label: Order requested from site
|
||||
default: desc
|
||||
options:
|
||||
desc: desc
|
||||
asc: asc
|
||||
- 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.
|
||||
- name: info_ipv6
|
||||
type: info
|
||||
label: IPv6 only
|
||||
default: This site only accepts IPv6 addresses. If you are using IPv4 you will get a DNS Lookup Error.
|
||||
- name: info_activity
|
||||
type: info
|
||||
label: Account Inactivity
|
||||
default: "Account retention rules:<ol><li>Newly registered users who have not generated any traffic within 14 days (that is, the upload/download data are both 0) will be deleted</li><li>Users with a user level of Peasant that have failed to successfully improve their sharing rate within 14 days will be deleted.</li></ol>"
|
||||
|
||||
login:
|
||||
path: login.php
|
||||
method: form
|
||||
form: form[action="takelogin.php"]
|
||||
inputs:
|
||||
logintype: username
|
||||
userinput: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
autologin: yes
|
||||
error:
|
||||
- selector: td.embedded:has(h2:contains("失败"))
|
||||
test:
|
||||
path: index.php
|
||||
selector: a[href^="logout.php?key="]
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: torrents.php
|
||||
inputs:
|
||||
$raw: "{{ range .Categories }}cat{{.}}=1&{{end}}"
|
||||
search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ end }}{{ if .Query.DoubanID }}/{{ .Query.DoubanID }}{{ else }}{{ end }}{{ if or .Query.IMDBID .Query.DoubanID }}{{ else }}{{ .Keywords }}{{ end }}"
|
||||
# 0 incldead, 1 active, 2 dead
|
||||
incldead: 0
|
||||
# 0 all, 1 normal, 2 free, 3 2x, 4 2xfree, 5 50%, 6 2x50%, 7 30%
|
||||
spstate: "{{ if .Config.freeleech }}2{{ else }}0{{ end }}"
|
||||
# 0 title, 1 descr, 3 uploader, 4 imdburl
|
||||
search_area: "{{ if .Query.IMDBID }}4{{ else }}{{ end }}{{ if .Query.DoubanID }}1{{ else }}{{ end }}{{ if or .Query.IMDBID .Query.DoubanID }}{{ else }}0{{ end }}"
|
||||
# 0 AND, 1 OR, 2 exact, 3 NOT
|
||||
search_mode: 0
|
||||
sort: "{{ .Config.sort }}"
|
||||
type: "{{ .Config.type }}"
|
||||
notnewword: 1
|
||||
|
||||
rows:
|
||||
selector: table.torrents > tbody > tr:has(table.torrentname)
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: a[href^="torrents.php?cat="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: cat
|
||||
title_default:
|
||||
selector: a[href^="details.php?id="]
|
||||
title:
|
||||
selector: a[title][href^="details.php?id="]
|
||||
attribute: title
|
||||
optional: true
|
||||
default: "{{ .Result.title_default }}"
|
||||
details:
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href^="download.php?id="]
|
||||
attribute: href
|
||||
imdbid:
|
||||
selector: a[href*="imdb.com/title/tt"]
|
||||
attribute: href
|
||||
date_elapsed:
|
||||
# time type: time elapsed (default)
|
||||
selector: td.rowfollow:nth-last-of-type(6) > span[title]
|
||||
attribute: title
|
||||
optional: true
|
||||
filters:
|
||||
- name: append
|
||||
args: " +08:00" # CST
|
||||
- name: dateparse
|
||||
args: "yyyy-MM-dd HH:mm:ss zzz"
|
||||
date_added:
|
||||
# time added
|
||||
selector: td.rowfollow:nth-last-of-type(6):not(:has(span))
|
||||
optional: true
|
||||
filters:
|
||||
- name: append
|
||||
args: " +08:00" # CST
|
||||
- name: dateparse
|
||||
args: "yyyy-MM-ddHH:mm:ss zzz"
|
||||
date:
|
||||
text: "{{ if or .Result.date_elapsed .Result.date_added }}{{ or .Result.date_elapsed .Result.date_added }}{{ else }}now{{ end }}"
|
||||
size:
|
||||
selector: td.rowfollow:nth-last-of-type(5)
|
||||
seeders:
|
||||
selector: td.rowfollow:nth-last-of-type(4)
|
||||
leechers:
|
||||
selector: td.rowfollow:nth-last-of-type(3)
|
||||
grabs:
|
||||
selector: td.rowfollow:nth-last-of-type(2)
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
img.pro_free: 0
|
||||
img.pro_free2up: 0
|
||||
img.pro_50pctdown: 0.5
|
||||
img.pro_50pctdown2up: 0.5
|
||||
img.pro_30pctdown: 0.3
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
case:
|
||||
img.pro_50pctdown2up: 2
|
||||
img.pro_free2up: 2
|
||||
img.pro_2up: 2
|
||||
"*": 1
|
||||
minimumratio:
|
||||
text: 1.0
|
||||
minimumseedtime:
|
||||
# 1 day (as seconds = 1 x 24 x 60 x 60)
|
||||
text: 86400
|
||||
description:
|
||||
selector: td:nth-child(2)
|
||||
remove: a, b, font, img, span
|
||||
# NexusPHP v1.5 beta 5 20120707
|
414
config/prowlarr/Definitions/byrutor.yml
Normal file
414
config/prowlarr/Definitions/byrutor.yml
Normal file
|
@ -0,0 +1,414 @@
|
|||
---
|
||||
id: byrutor
|
||||
name: Byrutor
|
||||
description: "Byrutor is a RUSSIAN Public Torrent Tracker for GAMES"
|
||||
language: ru-RU
|
||||
type: public
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://thebyrut.org/
|
||||
legacylinks:
|
||||
- https://byrutor.org/
|
||||
- https://byrutdb.org/
|
||||
- https://byrut.org/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 1, cat: PC/Games, desc: "Экшены"}
|
||||
- {id: 2, cat: PC/Games, desc: "Приключения"}
|
||||
- {id: 3, cat: PC/Games, desc: "Гонки"}
|
||||
- {id: 4, cat: PC/Games, desc: "RPG"}
|
||||
- {id: 5, cat: PC/Games, desc: "Головоломка"}
|
||||
- {id: 6, cat: PC/Games, desc: "Инди"}
|
||||
- {id: 7, cat: PC/Games, desc: "Стратегии"}
|
||||
- {id: 8, cat: PC/Games, desc: "Выживание"}
|
||||
- {id: 9, cat: PC/Games, desc: "Шутеры"}
|
||||
- {id: 10, cat: PC/Games, desc: "Симуляторы"}
|
||||
- {id: 11, cat: PC/Games, desc: "Спортивные"}
|
||||
- {id: 12, cat: PC/Games, desc: "Аркады"}
|
||||
- {id: 13, cat: PC/Games, desc: "Файтинги"}
|
||||
- {id: 14, cat: PC/Games, desc: "Хорроры"}
|
||||
- {id: 15, cat: PC/Games, desc: "Открытый мир"}
|
||||
- {id: 16, cat: PC/Games, desc: "Аниме"}
|
||||
- {id: 248, cat: PC/Games, desc: "Repack от Chovka"}
|
||||
- {id: 17, cat: PC/Games, desc: "Repack от Механики"}
|
||||
- {id: 20, cat: PC/Games, desc: "RePack от FitGirl"}
|
||||
- {id: 18, cat: PC/Games, desc: "Repack от Xatab"}
|
||||
- {id: 232, cat: PC/Games, desc: "RePack от SpaceX"}
|
||||
- {id: 233, cat: PC/Games, desc: "RePack от Pioneer"}
|
||||
- {id: 19, cat: PC/Games, desc: "Repack от Catalyst"}
|
||||
- {id: 249, cat: PC/Games, desc: "GOG игры"}
|
||||
- {id: 22, cat: PC/Games, desc: "Русская озвучка"}
|
||||
- {id: 25, cat: PC/Games, desc: "Старые игры"}
|
||||
- {id: 26, cat: PC/Games, desc: "Игры с геймпадом"}
|
||||
- {id: 27, cat: PC/Games, desc: "Мультиплеер"}
|
||||
- {id: 28, cat: PC/Games, desc: "На двоих"}
|
||||
- {id: 29, cat: PC/Games, desc: "Рогалик"}
|
||||
- {id: 30, cat: PC/Games, desc: "Слэшер"}
|
||||
- {id: 31, cat: PC/Games, desc: "Стелс"}
|
||||
- {id: 32, cat: PC/Games, desc: "Фэнтези"}
|
||||
- {id: 33, cat: PC/Games, desc: "Платформер"}
|
||||
- {id: 34, cat: PC/Games, desc: "Песочница"}
|
||||
- {id: 35, cat: PC/Games, desc: "Игры в 2D"}
|
||||
- {id: 36, cat: PC/Games, desc: "Казуальная"}
|
||||
- {id: 37, cat: PC/Games, desc: "Point and click"}
|
||||
- {id: 38, cat: PC/Games, desc: "Вид сбоку"}
|
||||
- {id: 39, cat: PC/Games, desc: "Вид сверху"}
|
||||
- {id: 40, cat: PC/Games, desc: "Tower Defense"}
|
||||
- {id: 41, cat: PC/Games, desc: "Экономика"}
|
||||
- {id: 42, cat: PC/Games, desc: "Тактика"}
|
||||
- {id: 43, cat: PC/Games, desc: "Пошаговые стратегии (TBS)"}
|
||||
- {id: 44, cat: PC/Games, desc: "Глобальные стратегии"}
|
||||
- {id: 45, cat: PC/Games, desc: "Стратегии в реальном времени"}
|
||||
- {id: 48, cat: PC/Games, desc: "Для взрослых"}
|
||||
- {id: 49, cat: PC/Games, desc: "От первого лица"}
|
||||
- {id: 50, cat: PC/Games, desc: "От третьего лица"}
|
||||
- {id: 51, cat: PC/Games, desc: "Шутер от первого лица"}
|
||||
- {id: 52, cat: PC/Games, desc: "Шутер от третьего лица"}
|
||||
- {id: 53, cat: PC/Games, desc: "Игры для слабых ПК"}
|
||||
- {id: 58, cat: PC/Games, desc: "Психологический хоррор"}
|
||||
- {id: 59, cat: PC/Games, desc: "Хоррор на выживание"}
|
||||
- {id: 60, cat: PC/Games, desc: "Ролевой экшен"}
|
||||
- {id: 61, cat: PC/Games, desc: "Приключенческий экшен"}
|
||||
- {id: 63, cat: PC/Games, desc: "Головоломка-платформер"}
|
||||
- {id: 64, cat: PC/Games, desc: "Скролл-шутер"}
|
||||
- {id: 65, cat: PC/Games, desc: "Шутер с видом сверху"}
|
||||
- {id: 66, cat: PC/Games, desc: "Градостроительный симулятор"}
|
||||
- {id: 67, cat: PC/Games, desc: "Космический симулятор"}
|
||||
- {id: 68, cat: PC/Games, desc: "Научная фантастика"}
|
||||
- {id: 69, cat: PC/Games, desc: "Ролевая стратегия"}
|
||||
- {id: 70, cat: PC/Games, desc: "Тактическая ролевая игра"}
|
||||
- {id: 71, cat: PC/Games, desc: "Тактика в реальном времени"}
|
||||
- {id: 72, cat: PC/Games, desc: "Японская ролевая игра"}
|
||||
- {id: 73, cat: PC/Games, desc: "Тёмное фэнтези"}
|
||||
- {id: 74, cat: PC/Games, desc: "Сложная"}
|
||||
- {id: 75, cat: PC/Games, desc: "Атмосфера"}
|
||||
- {id: 76, cat: PC/Games, desc: "Смешная"}
|
||||
- {id: 77, cat: PC/Games, desc: "Пиксельная графика"}
|
||||
- {id: 78, cat: PC/Games, desc: "Юмор"}
|
||||
- {id: 79, cat: PC/Games, desc: "Классика"}
|
||||
- {id: 80, cat: PC/Games, desc: "Космос"}
|
||||
- {id: 81, cat: PC/Games, desc: "Зомби"}
|
||||
- {id: 82, cat: PC/Games, desc: "Мрачная"}
|
||||
- {id: 83, cat: PC/Games, desc: "Тайна"}
|
||||
- {id: 84, cat: PC/Games, desc: "Физика"}
|
||||
- {id: 85, cat: PC/Games, desc: "Реализм"}
|
||||
- {id: 86, cat: PC/Games, desc: "Короткая"}
|
||||
- {id: 87, cat: PC/Games, desc: "Строительство"}
|
||||
- {id: 88, cat: PC/Games, desc: "Война"}
|
||||
- {id: 89, cat: PC/Games, desc: "Крафтинг"}
|
||||
- {id: 90, cat: PC/Games, desc: "Будущее"}
|
||||
- {id: 91, cat: PC/Games, desc: "Средневековье"}
|
||||
- {id: 92, cat: PC/Games, desc: "Затягивающая"}
|
||||
- {id: 93, cat: PC/Games, desc: "Строительство базы"}
|
||||
- {id: 94, cat: PC/Games, desc: "Управление ресурсами"}
|
||||
- {id: 95, cat: PC/Games, desc: "Насилие"}
|
||||
- {id: 96, cat: PC/Games, desc: "Для всей семьи"}
|
||||
- {id: 97, cat: PC/Games, desc: "Исследование"}
|
||||
- {id: 98, cat: PC/Games, desc: "Расслабляющая"}
|
||||
- {id: 99, cat: PC/Games, desc: "Реиграбельность"}
|
||||
- {id: 100, cat: PC/Games, desc: "Поиск предметов"}
|
||||
- {id: 101, cat: PC/Games, desc: "Пост-апокалипсис"}
|
||||
- {id: 102, cat: PC/Games, desc: "Вторая мировая война"}
|
||||
- {id: 103, cat: PC/Games, desc: "Военные действия"}
|
||||
- {id: 105, cat: PC/Games, desc: "Вождение"}
|
||||
- {id: 189, cat: PC/Games, desc: "Пошаговая"}
|
||||
- {id: 106, cat: PC/Games, desc: "Пошаговая тактика"}
|
||||
- {id: 328, cat: PC/Games, desc: "2D-платформер"}
|
||||
- {id: 107, cat: PC/Games, desc: "3D-платформер"}
|
||||
- {id: 108, cat: PC/Games, desc: "Одна жизнь"}
|
||||
- {id: 109, cat: PC/Games, desc: "Паркур"}
|
||||
- {id: 110, cat: PC/Games, desc: "Детектив"}
|
||||
- {id: 111, cat: PC/Games, desc: "Криминал"}
|
||||
- {id: 112, cat: PC/Games, desc: "Разрушения"}
|
||||
- {id: 113, cat: PC/Games, desc: "90-е"}
|
||||
- {id: 114, cat: PC/Games, desc: "80-е"}
|
||||
- {id: 115, cat: PC/Games, desc: "Разделение экрана"}
|
||||
- {id: 116, cat: PC/Games, desc: "Военные конфликты"}
|
||||
- {id: 117, cat: PC/Games, desc: "Драконы"}
|
||||
- {id: 118, cat: PC/Games, desc: "Пираты"}
|
||||
- {id: 119, cat: PC/Games, desc: "Ниндзя"}
|
||||
- {id: 120, cat: PC/Games, desc: "Поезда"}
|
||||
- {id: 121, cat: PC/Games, desc: "Динозавры"}
|
||||
- {id: 122, cat: PC/Games, desc: "Раннер"}
|
||||
- {id: 123, cat: PC/Games, desc: "Супергерои"}
|
||||
- {id: 124, cat: PC/Games, desc: "По комиксу"}
|
||||
- {id: 125, cat: PC/Games, desc: "Хакерство"}
|
||||
- {id: 126, cat: PC/Games, desc: "Эмоциональная"}
|
||||
- {id: 127, cat: PC/Games, desc: "Футбол"}
|
||||
- {id: 128, cat: PC/Games, desc: "Рыбалка"}
|
||||
- {id: 129, cat: PC/Games, desc: "Бездорожье"}
|
||||
- {id: 130, cat: PC/Games, desc: "Программирование"}
|
||||
- {id: 131, cat: PC/Games, desc: "Вампиры"}
|
||||
- {id: 132, cat: PC/Games, desc: "Снайпер"}
|
||||
- {id: 133, cat: PC/Games, desc: "Ремейк"}
|
||||
- {id: 134, cat: PC/Games, desc: "Отличный саундтрек"}
|
||||
- {id: 135, cat: PC/Games, desc: "Глубокий сюжет"}
|
||||
- {id: 136, cat: PC/Games, desc: "Женщина-протагонист"}
|
||||
- {id: 137, cat: PC/Games, desc: "Кровь"}
|
||||
- {id: 138, cat: PC/Games, desc: "Киберпанк"}
|
||||
- {id: 139, cat: PC/Games, desc: "Эпичная"}
|
||||
- {id: 140, cat: PC/Games, desc: "Мясо"}
|
||||
- {id: 141, cat: PC/Games, desc: "Нагота"}
|
||||
- {id: 142, cat: PC/Games, desc: "Цветастая"}
|
||||
- {id: 143, cat: PC/Games, desc: "Education"}
|
||||
- {id: 144, cat: PC/Games, desc: "Менеджмент"}
|
||||
- {id: 145, cat: PC/Games, desc: "Упрощённый рогалик"}
|
||||
- {id: 146, cat: PC/Games, desc: "Музыка"}
|
||||
- {id: 147, cat: PC/Games, desc: "Кастомизация персонажа"}
|
||||
- {id: 148, cat: PC/Games, desc: "История"}
|
||||
- {id: 149, cat: PC/Games, desc: "Охота"}
|
||||
- {id: 150, cat: PC/Games, desc: "По мотивам книги"}
|
||||
- {id: 151, cat: PC/Games, desc: "Первая мировая война"}
|
||||
- {id: 152, cat: PC/Games, desc: "Тайм-менеджмент"}
|
||||
- {id: 153, cat: PC/Games, desc: "Психоделия"}
|
||||
- {id: 154, cat: PC/Games, desc: "Наука"}
|
||||
- {id: 155, cat: PC/Games, desc: "Морские бои"}
|
||||
- {id: 156, cat: PC/Games, desc: "Сельское хозяйство"}
|
||||
- {id: 157, cat: PC/Games, desc: "Кинематографичная"}
|
||||
- {id: 158, cat: PC/Games, desc: "Вестерн"}
|
||||
- {id: 159, cat: PC/Games, desc: "Три в ряд"}
|
||||
- {id: 160, cat: PC/Games, desc: "Стимпанк"}
|
||||
- {id: 161, cat: PC/Games, desc: "Редактор уровней"}
|
||||
- {id: 162, cat: PC/Games, desc: "Культовая классика"}
|
||||
- {id: 163, cat: PC/Games, desc: "Минимализм"}
|
||||
- {id: 164, cat: PC/Games, desc: "Shoot'em up"}
|
||||
- {id: 165, cat: PC/Games, desc: "Решения с последствиями"}
|
||||
- {id: 166, cat: PC/Games, desc: "Процедурная генерация"}
|
||||
- {id: 167, cat: PC/Games, desc: "Мультипликация"}
|
||||
- {id: 168, cat: PC/Games, desc: "Мультфильм"}
|
||||
- {id: 169, cat: PC/Games, desc: "Пошаговые сражения"}
|
||||
- {id: 170, cat: PC/Games, desc: "Магия"}
|
||||
- {id: 171, cat: PC/Games, desc: "Изометрия"}
|
||||
- {id: 172, cat: PC/Games, desc: "Карточная игра"}
|
||||
- {id: 173, cat: PC/Games, desc: "Чёрный юмор"}
|
||||
- {id: 174, cat: PC/Games, desc: "Beat'em up"}
|
||||
- {id: 175, cat: PC/Games, desc: "Свобода выбора"}
|
||||
- {id: 176, cat: PC/Games, desc: "Рисованная графика"}
|
||||
- {id: 177, cat: PC/Games, desc: "Инопланетяне"}
|
||||
- {id: 178, cat: PC/Games, desc: "Твин-стик шутер"}
|
||||
- {id: 179, cat: PC/Games, desc: "Настольная игра"}
|
||||
- {id: 180, cat: PC/Games, desc: "Полёты"}
|
||||
- {id: 181, cat: PC/Games, desc: "Лут"}
|
||||
- {id: 183, cat: PC/Games, desc: "MOBA"}
|
||||
- {id: 184, cat: PC/Games, desc: "Демоны"}
|
||||
- {id: 185, cat: PC/Games, desc: "Расследование"}
|
||||
- {id: 186, cat: PC/Games, desc: "Мифология"}
|
||||
- {id: 187, cat: PC/Games, desc: "VR"}
|
||||
- {id: 191, cat: PC/Games, desc: "Психологическая"}
|
||||
- {id: 193, cat: PC/Games, desc: "Подземелье"}
|
||||
- {id: 196, cat: PC/Games, desc: "Шедевр"}
|
||||
- {id: 197, cat: PC/Games, desc: "Ретро"}
|
||||
- {id: 198, cat: PC/Games, desc: "Олдскул"}
|
||||
- {id: 251, cat: PC/Games, desc: "Визуальная новелла"}
|
||||
- {id: 252, cat: PC/Games, desc: "Образование"}
|
||||
- {id: 253, cat: PC/Games, desc: "Партийная RPG"}
|
||||
- {id: 254, cat: PC/Games, desc: "Симулятор ходьбы"}
|
||||
- {id: 255, cat: PC/Games, desc: "Симулятор жизни"}
|
||||
- {id: 256, cat: PC/Games, desc: "Автосимулятор"}
|
||||
- {id: 257, cat: PC/Games, desc: "Ритм-игра"}
|
||||
- {id: 258, cat: PC/Games, desc: "Королевская битва"}
|
||||
- {id: 259, cat: PC/Games, desc: "Симулятор колонии"}
|
||||
- {id: 260, cat: PC/Games, desc: "Симулятор фермы"}
|
||||
- {id: 261, cat: PC/Games, desc: "Иммерсивный симулятор"}
|
||||
- {id: 262, cat: PC/Games, desc: "Кликер"}
|
||||
- {id: 263, cat: PC/Games, desc: "Арена-шутер"}
|
||||
- {id: 264, cat: PC/Games, desc: "Платформер на точность"}
|
||||
- {id: 265, cat: PC/Games, desc: "Метроидвания"}
|
||||
- {id: 266, cat: PC/Games, desc: "Похожа на Dark Souls"}
|
||||
- {id: 267, cat: PC/Games, desc: "Коллектатон"}
|
||||
- {id: 268, cat: PC/Games, desc: "Idle-игра"}
|
||||
- {id: 269, cat: PC/Games, desc: "Поиск существ"}
|
||||
- {id: 270, cat: PC/Games, desc: "Зрелищные сражения"}
|
||||
- {id: 271, cat: PC/Games, desc: "Пасьянс"}
|
||||
- {id: 272, cat: PC/Games, desc: "Боевые гонки"}
|
||||
- {id: 273, cat: PC/Games, desc: "Лутер-шутер"}
|
||||
- {id: 274, cat: PC/Games, desc: "Политический симулятор"}
|
||||
- {id: 275, cat: PC/Games, desc: "Традиционный рогалик"}
|
||||
- {id: 276, cat: PC/Games, desc: "Милая"}
|
||||
- {id: 277, cat: PC/Games, desc: "Стилизация"}
|
||||
- {id: 278, cat: PC/Games, desc: "Псевдотрёхмерность"}
|
||||
- {id: 279, cat: PC/Games, desc: "Абстрактная"}
|
||||
- {id: 280, cat: PC/Games, desc: "Красивая"}
|
||||
- {id: 281, cat: PC/Games, desc: "Воксельная графика"}
|
||||
- {id: 282, cat: PC/Games, desc: "Логика"}
|
||||
- {id: 283, cat: PC/Games, desc: "Драма"}
|
||||
- {id: 284, cat: PC/Games, desc: "Романтика"}
|
||||
- {id: 285, cat: PC/Games, desc: "Сюрреалистичная"}
|
||||
- {id: 286, cat: PC/Games, desc: "Мемы"}
|
||||
- {id: 287, cat: PC/Games, desc: "Природа"}
|
||||
- {id: 288, cat: PC/Games, desc: "Роботы"}
|
||||
- {id: 289, cat: PC/Games, desc: "Проработанная вселенная"}
|
||||
- {id: 290, cat: PC/Games, desc: "Триллер"}
|
||||
- {id: 291, cat: PC/Games, desc: "Антиутопия"}
|
||||
- {id: 292, cat: PC/Games, desc: "Сверхъестественное"}
|
||||
- {id: 293, cat: PC/Games, desc: "Альтернативная история"}
|
||||
- {id: 294, cat: PC/Games, desc: "Сражения на мечах"}
|
||||
- {id: 295, cat: PC/Games, desc: "Котики"}
|
||||
- {id: 296, cat: PC/Games, desc: "Америка"}
|
||||
- {id: 297, cat: PC/Games, desc: "Иллюминаты"}
|
||||
- {id: 298, cat: PC/Games, desc: "Капитализм"}
|
||||
- {id: 299, cat: PC/Games, desc: "Заговор"}
|
||||
- {id: 300, cat: PC/Games, desc: "Сатира"}
|
||||
- {id: 301, cat: PC/Games, desc: "Готика"}
|
||||
- {id: 303, cat: PC/Games, desc: "Шахты"}
|
||||
- {id: 304, cat: PC/Games, desc: "Боевые искусства"}
|
||||
- {id: 305, cat: PC/Games, desc: "Танки"}
|
||||
- {id: 306, cat: PC/Games, desc: "Подводный мир"}
|
||||
- {id: 307, cat: PC/Games, desc: "Кулинария"}
|
||||
- {id: 308, cat: PC/Games, desc: "Флот"}
|
||||
- {id: 309, cat: PC/Games, desc: "Транспорт"}
|
||||
- {id: 311, cat: PC/Games, desc: "Марс"}
|
||||
- {id: 312, cat: PC/Games, desc: "Оборотни"}
|
||||
- {id: 313, cat: PC/Games, desc: "Бой"}
|
||||
- {id: 314, cat: PC/Games, desc: "Несколько концовок"}
|
||||
- {id: 315, cat: PC/Games, desc: "Игра против ИИ"}
|
||||
- {id: 316, cat: PC/Games, desc: "Линейная"}
|
||||
- {id: 192, cat: PC/Games, desc: "Нелинейная"}
|
||||
- {id: 317, cat: PC/Games, desc: "Повествовательная"}
|
||||
- {id: 318, cat: PC/Games, desc: "Набор очков"}
|
||||
- {id: 319, cat: PC/Games, desc: "Менеджмент инвентаря"}
|
||||
- {id: 320, cat: PC/Games, desc: "Перемещение по сетке"}
|
||||
- {id: 321, cat: PC/Games, desc: "Разделение на классы"}
|
||||
- {id: 322, cat: PC/Games, desc: "Кастомизация оружия"}
|
||||
- {id: 323, cat: PC/Games, desc: "Построение колоды"}
|
||||
- {id: 324, cat: PC/Games, desc: "Гонки на выживание"}
|
||||
- {id: 325, cat: PC/Games, desc: "Свобода движения"}
|
||||
- {id: 326, cat: PC/Games, desc: "Замедление времени"}
|
||||
- {id: 327, cat: PC/Games, desc: "Динамическое повествование"}
|
||||
- {id: 238, cat: PC/Games, desc: "Игры 2024 года"}
|
||||
- {id: 237, cat: PC/Games, desc: "Игры 2023 года"}
|
||||
- {id: 236, cat: PC/Games, desc: "Игры 2022 года"}
|
||||
- {id: 235, cat: PC/Games, desc: "Игры 2021 года"}
|
||||
- {id: 199, cat: PC/Games, desc: "Игры 2020 года"}
|
||||
- {id: 200, cat: PC/Games, desc: "Игры 2019 года"}
|
||||
- {id: 201, cat: PC/Games, desc: "Игры 2018 года"}
|
||||
- {id: 202, cat: PC/Games, desc: "Игры 2017 года"}
|
||||
- {id: 203, cat: PC/Games, desc: "Игры 2016 года"}
|
||||
- {id: 204, cat: PC/Games, desc: "Игры 2015 года"}
|
||||
- {id: 205, cat: PC/Games, desc: "Игры 2014 года"}
|
||||
- {id: 206, cat: PC/Games, desc: "Игры 2013 года"}
|
||||
- {id: 207, cat: PC/Games, desc: "Игры 2012 года"}
|
||||
- {id: 208, cat: PC/Games, desc: "Игры 2011 года"}
|
||||
- {id: 209, cat: PC/Games, desc: "Игры 2010 года"}
|
||||
- {id: 210, cat: PC/Games, desc: "Игры 2009 года"}
|
||||
- {id: 211, cat: PC/Games, desc: "Игры 2008 года"}
|
||||
- {id: 212, cat: PC/Games, desc: "Игры 2007 года"}
|
||||
- {id: 213, cat: PC/Games, desc: "Игры 2006 года"}
|
||||
- {id: 214, cat: PC/Games, desc: "Игры 2005 года"}
|
||||
- {id: 215, cat: PC/Games, desc: "Игры 2004 года"}
|
||||
- {id: 216, cat: PC/Games, desc: "Игры 2003 года"}
|
||||
- {id: 217, cat: PC/Games, desc: "Игры 2002 года"}
|
||||
- {id: 218, cat: PC/Games, desc: "Игры 2001 года"}
|
||||
- {id: 219, cat: PC/Games, desc: "Игры 2000 года"}
|
||||
- {id: 220, cat: PC/Games, desc: "Игры 1999 года"}
|
||||
- {id: 221, cat: PC/Games, desc: "Игры 1998 года"}
|
||||
- {id: 222, cat: PC/Games, desc: "Игры 1997 года"}
|
||||
- {id: 223, cat: PC/Games, desc: "Игры 1996 года"}
|
||||
- {id: 224, cat: PC/Games, desc: "Игры 1995 года"}
|
||||
- {id: 225, cat: PC/Games, desc: "Игры 1994 года"}
|
||||
- {id: 226, cat: PC/Games, desc: "Игры 1993 года"}
|
||||
- {id: 227, cat: PC/Games, desc: "Игры 1992 года"}
|
||||
- {id: 228, cat: PC/Games, desc: "Игры 1991 года"}
|
||||
- {id: 229, cat: PC/Games, desc: "Игры 1990 года"}
|
||||
- {id: 231, cat: PC/Games, desc: "Дополнения"}
|
||||
- {id: 250, cat: PC/Games, desc: "Модификации"}
|
||||
- {id: 23, cat: PC/Games, desc: "Ранний Доступ"}
|
||||
- {id: 246, cat: PC/Games, desc: "Обновление"}
|
||||
- {id: 230, cat: PC/Games, desc: "Все Топ игры"}
|
||||
- {id: 329, cat: PC/Games, desc: "Актуальные Топ игры"}
|
||||
- {id: 24, cat: PC/Games, desc: "Новинка"}
|
||||
- {id: 194, cat: PC/Games, desc: "Игры по сети"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
|
||||
settings: []
|
||||
|
||||
download:
|
||||
selectors:
|
||||
- selector: a.itemdown_games
|
||||
attribute: href
|
||||
|
||||
search:
|
||||
# keywords (article titles only search)
|
||||
# do=search&subaction=search&story=five+freddy&titleonly=3&searchdate=0&sortby=date&resorder=desc&catlist[]=1&catlist[]=2&catlist[]=3
|
||||
# keywordless (article body search) query=game
|
||||
# do=search&subaction=search&story=game&titleonly=0&searchdate=0&sortby=date&resorder=desc&catlist[]=0
|
||||
paths:
|
||||
- path: index.php
|
||||
inputs:
|
||||
$raw: "{{ range .Categories }}catlist[]={{.}}&{{end}}"
|
||||
do: search
|
||||
subaction: search
|
||||
search_start: 0
|
||||
full_search: 1
|
||||
result_from: 1
|
||||
showposts: 1
|
||||
# 0 article, 1 comments, 2 static pages, 3 article titles
|
||||
titleonly: "{{ if .Keywords }}3{{ else }}0{{ end }}"
|
||||
searchdate: 0
|
||||
story: "{{ if .Keywords }}{{ .Keywords }}{{ else }}game{{ end }}"
|
||||
sortby: date
|
||||
resorder: desc
|
||||
|
||||
rows:
|
||||
# results without sizes are just pre-release announcements
|
||||
selector: div.short_search:has(div.shor_subtitles span:nth-child(2):contains(" "))
|
||||
|
||||
fields:
|
||||
category:
|
||||
text: 1
|
||||
year:
|
||||
selector: div.shor_subtitles span
|
||||
filters:
|
||||
- name: regexp
|
||||
args: (\d+)
|
||||
title:
|
||||
selector: div.short_titles > a
|
||||
filters:
|
||||
- name: append
|
||||
args: " [{{ .Result.year }}]"
|
||||
details:
|
||||
selector: div.short_titles > a
|
||||
attribute: href
|
||||
download:
|
||||
selector: div.short_titles > a
|
||||
attribute: href
|
||||
poster:
|
||||
selector: img
|
||||
attribute: src
|
||||
date:
|
||||
selector: img
|
||||
attribute: src
|
||||
filters:
|
||||
- name: regexp
|
||||
args: ".*/(\\d{4}-\\d{2})/.*"
|
||||
- name: dateparse
|
||||
args: "yyyy-MM"
|
||||
seeders:
|
||||
text: 1
|
||||
leechers:
|
||||
text: 1
|
||||
size_rus:
|
||||
selector: div.shor_subtitles span:nth-child(2):contains("Б")
|
||||
optional: true
|
||||
default: "0 B"
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["ТБ", "TB"]
|
||||
- name: replace
|
||||
args: ["ГБ", "GB"]
|
||||
- name: replace
|
||||
args: ["МБ", "MB"]
|
||||
- name: replace
|
||||
args: ["КБ", "KB"]
|
||||
size:
|
||||
selector: div.shor_subtitles span:nth-child(2):contains("B")
|
||||
optional: true
|
||||
default: "{{ .Result.size_rus }}"
|
||||
downloadvolumefactor:
|
||||
text: 0
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
# engine n/a
|
167
config/prowlarr/Definitions/carpathians.yml
Normal file
167
config/prowlarr/Definitions/carpathians.yml
Normal file
|
@ -0,0 +1,167 @@
|
|||
---
|
||||
id: carpathians
|
||||
name: Carpathians
|
||||
description: "Carpathians is a HUNGARIAN Private Torrent Tracker for 0DAY / GENERAL"
|
||||
language: hu-HU
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://mycarpathians.net/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 186, cat: Books/EBook, desc: "E-book"}
|
||||
- {id: 199, cat: Movies/SD, desc: "Film/Bluray/Hun"}
|
||||
- {id: 194, cat: Movies/SD, desc: "Film/CAM"}
|
||||
- {id: 60, cat: Movies/DVD, desc: "Film/DVD-R/Eng"}
|
||||
- {id: 10, cat: Movies/DVD, desc: "Film/DVD-R/Hun"}
|
||||
- {id: 20, cat: Movies/DVD, desc: "Film/DVD9/Hun"}
|
||||
- {id: 181, cat: Movies/HD, desc: "Film/HD/Eng"}
|
||||
- {id: 183, cat: Movies/HD, desc: "Film/HD/Hun"}
|
||||
- {id: 200, cat: Movies/UHD, desc: "Film/UHD/Hun"}
|
||||
- {id: 192, cat: Movies/HD, desc: "Film/x264/Eng"}
|
||||
- {id: 190, cat: Movies/HD, desc: "Film/x264/Hun"}
|
||||
- {id: 70, cat: Movies/SD, desc: "Film/XviD/Eng"}
|
||||
- {id: 30, cat: Movies/SD, desc: "Film/XviD/Hun"}
|
||||
- {id: 150, cat: Console, desc: "Játék/Konzol"}
|
||||
- {id: 130, cat: PC/Games, desc: "Játék/PC"}
|
||||
- {id: 182, cat: Audio/Lossless, desc: "Lossless"}
|
||||
- {id: 90, cat: Audio/MP3, desc: "Mp3/Eng"}
|
||||
- {id: 50, cat: Audio/MP3, desc: "Mp3/Hun"}
|
||||
- {id: 100, cat: Audio/Video, desc: "Music-Video"}
|
||||
- {id: 180, cat: PC/Mobile-Other, desc: "Program/Mobil"}
|
||||
- {id: 170, cat: PC/0day, desc: "Program/PC"}
|
||||
- {id: 80, cat: TV, desc: "Sorozat/Eng"}
|
||||
- {id: 40, cat: TV, desc: "Sorozat/Hun"}
|
||||
- {id: 110, cat: XXX, desc: "XXX"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep, imdbid]
|
||||
movie-search: [q, imdbid]
|
||||
music-search: [q]
|
||||
book-search: [q]
|
||||
|
||||
settings:
|
||||
- name: username
|
||||
type: text
|
||||
label: Username
|
||||
- name: password
|
||||
type: password
|
||||
label: Password
|
||||
- name: sort
|
||||
type: select
|
||||
label: Sort requested from site
|
||||
default: 5
|
||||
options:
|
||||
5: created
|
||||
8: seeders
|
||||
6: size
|
||||
2: title
|
||||
- name: type
|
||||
type: select
|
||||
label: Order requested from site
|
||||
default: desc
|
||||
options:
|
||||
desc: desc
|
||||
asc: asc
|
||||
|
||||
login:
|
||||
path: takelogin.php
|
||||
method: post
|
||||
inputs:
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
test:
|
||||
path: index.php
|
||||
selector: a[href^="logout.php"]
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: browse.php
|
||||
inputs:
|
||||
$raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
|
||||
search: "{{ if .Query.IMDBID }}https://www.imdb.com/title/{{ .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}" # for dashboard imdbid search
|
||||
# 0 both, 1 only active, 2 only dead
|
||||
incldead: 0
|
||||
onlyname: 1
|
||||
onlyname2: true
|
||||
sort: "{{ .Config.sort }}"
|
||||
type: "{{ .Config.type }}"
|
||||
# can search by genre but you need the id. &imdbcat=1 for Akció.
|
||||
|
||||
rows:
|
||||
selector: table[id!="torrent_ajanlo"] > tbody > tr[id]
|
||||
|
||||
fields:
|
||||
download:
|
||||
selector: a[href^="download.php/"]
|
||||
attribute: href
|
||||
title:
|
||||
selector: a[id][href^="details.php?"]
|
||||
attribute: title
|
||||
category:
|
||||
selector: a[href^="browse.php?cat="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: cat
|
||||
details:
|
||||
selector: a[id][href^="details.php?"]
|
||||
attribute: href
|
||||
imdbid:
|
||||
selector: a[href*="imdb.com/title/tt"]
|
||||
attribute: href
|
||||
poster:
|
||||
selector: a[rel^="prettyPhoto["]
|
||||
attribute: href
|
||||
genre:
|
||||
selector: font.line
|
||||
filters:
|
||||
- name: validate
|
||||
args: "Akció, Animáció, Beszélgetős, Családi, Dokumentum, Dráma, Életrajzi, Fantasztikus, Film-Noir, Game-Show, Háborús, Horror, Kaland, Krimi, Misztikus, Musical, News, Reality-TV, Romantikus, Rövidfilm, Sci-Fi, Sport, Thriller, Történelmi, Vígjáték, Western, Zene"
|
||||
description:
|
||||
text: "{{ .Result.genre }}"
|
||||
files:
|
||||
selector: td:nth-child(4)
|
||||
size:
|
||||
selector: td:nth-child(6)
|
||||
grabs:
|
||||
selector: td:nth-child(7)
|
||||
seeders:
|
||||
selector: td:nth-child(8)
|
||||
leechers:
|
||||
selector: td:nth-child(9)
|
||||
date:
|
||||
selector: font.line
|
||||
filters:
|
||||
- name: split
|
||||
args: ["|", 0]
|
||||
- name: replace
|
||||
args: ["Feltöltve: ", ""]
|
||||
- name: replace
|
||||
args: ["Feltöltve : ", ""]
|
||||
- name: replace
|
||||
args: ["perce", "minute"]
|
||||
- name: replace
|
||||
args: ["órája", "hour"]
|
||||
- name: replace
|
||||
args: ["napja", "day"]
|
||||
- name: replace
|
||||
args: ["hete", "week"]
|
||||
- name: replace
|
||||
args: ["éve", "year"]
|
||||
- name: timeago
|
||||
downloadvolumefactor:
|
||||
text: 0
|
||||
uploadvolumefactor:
|
||||
case:
|
||||
img[src="pic/double.png"]: 2
|
||||
img[src="pic/doubledouble2.png"]: 4
|
||||
"*": 1
|
||||
minimumratio:
|
||||
text: 1.0
|
||||
minimumseedtime:
|
||||
# 2 days (as seconds = 2 x 24 x 60 x 60)
|
||||
text: 172800
|
||||
# TBDev & XBTT
|
184
config/prowlarr/Definitions/carphunter.yml
Normal file
184
config/prowlarr/Definitions/carphunter.yml
Normal file
|
@ -0,0 +1,184 @@
|
|||
---
|
||||
id: carphunter
|
||||
name: Carp-Hunter
|
||||
description: "Carp-Hunter is a HUNGARIAN Private Torrent Tracker for MOVIES / TV / GENERAL"
|
||||
language: hu-HU
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
requestDelay: 2
|
||||
links:
|
||||
- https://carp-hunter.hu/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 1, cat: Movies/SD, desc: "Film/Cam/Eng", default: true}
|
||||
- {id: 2, cat: Movies/SD, desc: "Film/Cam/Hun", default: true}
|
||||
- {id: 8, cat: Movies/DVD, desc: "Film/DVD/Eng", default: true}
|
||||
- {id: 7, cat: Movies/DVD, desc: "Film/DVD/Hun", default: true}
|
||||
- {id: 16, cat: Movies/HD, desc: "Film/HD1080P/Eng", default: true}
|
||||
- {id: 15, cat: Movies/HD, desc: "Film/HD1080P/Hun", default: true}
|
||||
- {id: 14, cat: Movies/HD, desc: "Film/HD720P/Eng", default: true}
|
||||
- {id: 13, cat: Movies/HD, desc: "Film/HD720P/Hun", default: true}
|
||||
- {id: 4, cat: Movies/SD, desc: "Film/SD/Eng", default: true}
|
||||
- {id: 3, cat: Movies/SD, desc: "Film/SD/Hun", default: true}
|
||||
- {id: 18, cat: Movies/UHD, desc: "Film/UHD/Eng", default: true}
|
||||
- {id: 17, cat: Movies/UHD, desc: "Film/UHD/Hun", default: true}
|
||||
- {id: 23, cat: Audio/Audiobook, desc: "Hangosköny", default: true}
|
||||
- {id: 19, cat: PC/Games, desc: "Játék/ISO", default: true}
|
||||
- {id: 20, cat: PC/Games, desc: "Játék/RIP", default: true}
|
||||
- {id: 24, cat: Other, desc: "Képek", default: true}
|
||||
- {id: 21, cat: Books, desc: "Könyv/Eng", default: true}
|
||||
- {id: 22, cat: Books, desc: "Könyv/Hun", default: true}
|
||||
- {id: 35, cat: TV/Anime, desc: "Mese/Eng", default: true}
|
||||
- {id: 36, cat: TV/Anime, desc: "Mese/Hun", default: true}
|
||||
- {id: 25, cat: PC/Mobile-Other, desc: "Mobil", default: true}
|
||||
- {id: 30, cat: PC/ISO, desc: "Programok/ISO", default: true}
|
||||
- {id: 31, cat: PC/0day, desc: "Programok/RIP", default: true}
|
||||
- {id: 33, cat: TV, desc: "Sorozat/Eng", default: true}
|
||||
- {id: 32, cat: TV, desc: "Sorozat/Hun", default: true}
|
||||
- {id: 29, cat: Audio/Lossless, desc: "Zene/FLAC/Eng", default: true}
|
||||
- {id: 28, cat: Audio/Lossless, desc: "Zene/FLAC/Hun", default: true}
|
||||
- {id: 27, cat: Audio/MP3, desc: "Zene/MP3/Eng", default: true}
|
||||
- {id: 26, cat: Audio/MP3, desc: "Zene/MP3/Hun", default: true}
|
||||
- {id: 34, cat: XXX, desc: "XXX/Filmek", default: false}
|
||||
- {id: 39, cat: XXX/ImageSet, desc: "XXX/Képek", default: false}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
music-search: [q]
|
||||
book-search: [q]
|
||||
|
||||
settings:
|
||||
- name: cookie
|
||||
type: text
|
||||
label: Cookie
|
||||
- name: info
|
||||
type: info
|
||||
label: How to get the Cookie
|
||||
default: "<ol><li>Login to this tracker with your browser</li><li>Open the <b>DevTools</b> panel by pressing <b>F12</b></li><li>Select the <b>Network</b> tab</li><li>Click on the <b>Doc</b> button (Chrome Browser) or <b>HTML</b> button (FireFox)</li><li>Refresh the page by pressing <b>F5</b></li><li>Click on the first row entry</li><li>Select the <b>Headers</b> tab on the Right panel</li><li>Find <b>'cookie:'</b> in the <b>Request Headers</b> section</li><li><b>Select</b> and <b>Copy</b> the whole cookie string <i>(everything after 'cookie: ')</i> and <b>Paste</b> here.</li></ol>"
|
||||
- name: freeleech
|
||||
type: checkbox
|
||||
label: Search freeleech only
|
||||
default: false
|
||||
- name: sort
|
||||
type: select
|
||||
label: Sort requested from site
|
||||
default: 4
|
||||
options:
|
||||
4: created
|
||||
7: seeders
|
||||
5: size
|
||||
- name: type
|
||||
type: select
|
||||
label: Order requested from site
|
||||
default: desc
|
||||
options:
|
||||
desc: desc
|
||||
asc: asc
|
||||
|
||||
login:
|
||||
method: cookie
|
||||
inputs:
|
||||
cookie: "{{ .Config.cookie }}"
|
||||
test:
|
||||
path: index.php
|
||||
selector: a[href^="logout.php"]
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: browse.php
|
||||
categories: [1, 2, 8, 7, 16, 15, 14, 13, 4, 3, 18, 17, 23, 19, 20, 24, 21, 22, 35, 36, 25, 30, 31, 33, 32, 29, 28, 27, 26]
|
||||
- path: browse.php
|
||||
categories: [34, 39]
|
||||
inputs:
|
||||
xxx: 1
|
||||
keywordsfilters:
|
||||
# the site uses % for wildcard
|
||||
- name: re_replace
|
||||
args: ["[^a-zA-Z0-9]+", "%"]
|
||||
inputs:
|
||||
$raw: "{{ range .Categories }}cat[]={{.}}&{{end}}"
|
||||
search: "{{ .Keywords }}"
|
||||
# 0 both, 1 onlyactive, 2 onlydead, 3 onlyfree, 4 x2 torrents, 5 mytorrents, 6 waiting for seeds
|
||||
incldead: "{{ if .Config.freeleech }}3{{ else }}0{{ end }}"
|
||||
sort: "{{ .Config.sort }}"
|
||||
order: "{{ .Config.type }}"
|
||||
# does not support imdbid searches
|
||||
# can support genre searching but you need to know the id, eg &genre2=1 for Comedy (id is 2)
|
||||
|
||||
rows:
|
||||
selector: "table[cellpadding=\"3\"][style=\"width: 920px;\"] > tbody > tr:has(a[href^=\"browse.php?cat=\"])"
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: a[href^="browse.php?cat="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: cat
|
||||
title:
|
||||
selector: a[href*="/details.php?id="]
|
||||
attribute: title
|
||||
details:
|
||||
selector: a[href*="/details.php?id="]
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href*="/details.php?id="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["/details", "/download"]
|
||||
imdbid:
|
||||
selector: a[href*="imdb.com/title/tt"]
|
||||
attribute: href
|
||||
genre:
|
||||
selector: small[title]
|
||||
attribute: title
|
||||
description:
|
||||
case:
|
||||
img[src="/pic/yes.png"]: "Verified: {{ .Result.genre }}"
|
||||
img[src="/pic/nincs.png"]: "Unverified: {{ .Result.genre }}"
|
||||
poster:
|
||||
selector: a[onmouseover]
|
||||
attribute: onmouseover
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "showTorrentThumb\\('(.*?)', "
|
||||
date:
|
||||
selector: td:nth-last-child(8)
|
||||
filters:
|
||||
- name: regexp
|
||||
args: (\d{4}-\d{2}-\d{2}.\d{2}:\d{2}:\d{2})
|
||||
- name: replace
|
||||
args: ["\u00a0", " "]
|
||||
- name: append
|
||||
args: " +01:00" # CET
|
||||
- name: dateparse
|
||||
args: "yyyy-MM-dd HH:mm:ss zzz"
|
||||
files:
|
||||
selector: td:nth-last-child(7)
|
||||
size:
|
||||
selector: td:nth-last-child(5)
|
||||
grabs:
|
||||
selector: td:nth-last-child(4)
|
||||
seeders:
|
||||
selector: td:nth-last-child(3)
|
||||
leechers:
|
||||
selector: td:nth-last-child(2)
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
font:contains("x0"): 0
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
case:
|
||||
font:contains("x2"): 2
|
||||
font:contains("x4"): 4
|
||||
"*": 1
|
||||
minimumratio:
|
||||
text: 1.0
|
||||
minimumseedtime:
|
||||
# 2 days (as seconds = 2 x 24 x 60 x 60)
|
||||
text: 172800
|
||||
# engine n/a
|
196
config/prowlarr/Definitions/carpt.yml
Normal file
196
config/prowlarr/Definitions/carpt.yml
Normal file
|
@ -0,0 +1,196 @@
|
|||
---
|
||||
id: carpt
|
||||
name: CarPT
|
||||
description: "CarPT is a CHINESE Private Torrent Tracker for HD MOVIES / TV"
|
||||
language: zh-CN
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://carpt.net/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 401, cat: Movies, desc: "Movies/电影"}
|
||||
- {id: 402, cat: TV, desc: "TV Series/连续剧"}
|
||||
- {id: 403, cat: TV/Anime, desc: "Animations/动漫"}
|
||||
- {id: 404, cat: TV/Documentary, desc: "Documentaries/纪录片"}
|
||||
- {id: 405, cat: TV, desc: "TV Shows/综艺"}
|
||||
- {id: 406, cat: Audio, desc: "Music/音乐"}
|
||||
- {id: 407, cat: Other, desc: "Misc/其他"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep, imdbid]
|
||||
movie-search: [q, imdbid]
|
||||
music-search: [q]
|
||||
|
||||
settings:
|
||||
- name: username
|
||||
type: text
|
||||
label: Username
|
||||
- name: password
|
||||
type: password
|
||||
label: Password
|
||||
- name: 2facode
|
||||
type: text
|
||||
label: 2FA code
|
||||
- name: info_2fa
|
||||
type: info
|
||||
label: "About 2FA code"
|
||||
default: "Only fill in the <b>2FA code</b> box if you have enabled <b>2FA</b> on the CarPT Web Site. Otherwise just leave it empty."
|
||||
- name: freeleech
|
||||
type: checkbox
|
||||
label: Search freeleech only
|
||||
default: false
|
||||
- name: sort
|
||||
type: select
|
||||
label: Sort requested from site
|
||||
default: 4
|
||||
options:
|
||||
4: created
|
||||
7: seeders
|
||||
5: size
|
||||
1: title
|
||||
- name: type
|
||||
type: select
|
||||
label: Order requested from site
|
||||
default: desc
|
||||
options:
|
||||
desc: desc
|
||||
asc: asc
|
||||
- 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.
|
||||
- name: info_activity
|
||||
type: info
|
||||
label: Account Inactivity
|
||||
default: "Account Retention Rules:<ol><li>Extreme User and above will be retained forever</li><li> Elite Users and above will not be banned after parking (in the Control Panel)</li><li>Users with a parked account will be banned if they do not log in for 360 consecutive days</li><li>Users with a non-parked account will be banned if they do not log in for 150 consecutive days</li><li> Users with no traffic (i.e., upload/download data is 0) who do not log in for 60 consecutive days will be banned.</li></ol>"
|
||||
|
||||
login:
|
||||
path: login.php
|
||||
method: form
|
||||
form: form[action="takelogin.php"]
|
||||
captcha:
|
||||
type: image
|
||||
selector: img[alt="CAPTCHA"]
|
||||
input: imagestring
|
||||
inputs:
|
||||
secret: ""
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
two_step_code: "{{ .Config.2facode }}"
|
||||
logout: ""
|
||||
securelogin: ""
|
||||
ssl: yes
|
||||
trackerssl: yes
|
||||
error:
|
||||
- selector: td.embedded:has(h2:contains("失败"))
|
||||
test:
|
||||
path: index.php
|
||||
selector: a[href="logout.php"]
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: torrents.php
|
||||
inputs:
|
||||
$raw: "{{ range .Categories }}cat{{.}}=1&{{end}}"
|
||||
search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}"
|
||||
# 0 incldead, 1 active, 2 dead
|
||||
incldead: 0
|
||||
# 0 all, 1 normal, 2 free, 3 2x, 4 2xfree, 5 50%, 6 2x50%, 7 30%
|
||||
spstate: "{{ if .Config.freeleech }}2{{ else }}0{{ end }}"
|
||||
# 0 title, 1 descr, 3 uploader, 4 imdburl
|
||||
search_area: "{{ if .Query.IMDBID }}4{{ else }}0{{ end }}"
|
||||
# 0 AND, 1 OR, 2 exact
|
||||
search_mode: 0
|
||||
sort: "{{ .Config.sort }}"
|
||||
type: "{{ .Config.type }}"
|
||||
notnewword: 1
|
||||
|
||||
rows:
|
||||
selector: table.torrents > tbody > tr:has(a[href^="details.php?id="])
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: a[href^="?cat="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: cat
|
||||
title_default:
|
||||
selector: a[href^="details.php?id="]
|
||||
title:
|
||||
selector: a[title][href^="details.php?id="]
|
||||
attribute: title
|
||||
optional: true
|
||||
default: "{{ .Result.title_default }}"
|
||||
details:
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href^="download.php?id="]
|
||||
attribute: href
|
||||
poster:
|
||||
selector: img[data-src]
|
||||
attribute: data-src
|
||||
imdbid:
|
||||
# site currently only has a badge and rating, the id is not present. just in case a future update.
|
||||
selector: a[href*="imdb.com/title/tt"]
|
||||
attribute: href
|
||||
doubanid:
|
||||
# site currently only has a badge and rating, the id is not present. just in case a future update.
|
||||
selector: a[href*="movie.douban.com/subject/"]
|
||||
attribute: href
|
||||
date_elapsed:
|
||||
# time type: time elapsed (default)
|
||||
selector: td.rowfollow:nth-child(4) > span[title]
|
||||
attribute: title
|
||||
optional: true
|
||||
filters:
|
||||
- name: append
|
||||
args: " +08:00" # CST
|
||||
- name: dateparse
|
||||
args: "yyyy-MM-dd HH:mm:ss zzz"
|
||||
date_added:
|
||||
# time added
|
||||
selector: td.rowfollow:nth-child(4):not(:has(span))
|
||||
optional: true
|
||||
filters:
|
||||
- name: append
|
||||
args: " +08:00" # CST
|
||||
- name: dateparse
|
||||
args: "yyyy-MM-ddHH:mm:ss zzz"
|
||||
date:
|
||||
text: "{{ if or .Result.date_elapsed .Result.date_added }}{{ or .Result.date_elapsed .Result.date_added }}{{ else }}now{{ end }}"
|
||||
size:
|
||||
selector: td.rowfollow:nth-child(5)
|
||||
seeders:
|
||||
selector: td.rowfollow:nth-child(6)
|
||||
leechers:
|
||||
selector: td.rowfollow:nth-child(7)
|
||||
grabs:
|
||||
selector: td.rowfollow:nth-child(8)
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
img.pro_free: 0
|
||||
img.pro_free2up: 0
|
||||
img.pro_50pctdown: 0.5
|
||||
img.pro_50pctdown2up: 0.5
|
||||
img.pro_30pctdown: 0.3
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
case:
|
||||
img.pro_50pctdown2up: 2
|
||||
img.pro_free2up: 2
|
||||
img.pro_2up: 2
|
||||
"*": 1
|
||||
minimumratio:
|
||||
text: 1.0
|
||||
minimumseedtime:
|
||||
# 1 day (as seconds = 24 x 60 x 60)
|
||||
text: 86400
|
||||
description:
|
||||
selector: td.rowfollow:nth-child(2)
|
||||
remove: a, b, font, img, span
|
||||
# NexusPHP vv1.8.11 2024-03-11
|
176
config/prowlarr/Definitions/cathoderaytube.yml
Normal file
176
config/prowlarr/Definitions/cathoderaytube.yml
Normal file
|
@ -0,0 +1,176 @@
|
|||
---
|
||||
id: cathoderaytube
|
||||
name: Cathode-Ray.Tube
|
||||
description: "Cathode-Ray.Tube (CRT) is a Private Torrent Tracker for CLASSIC MOVIES / TV"
|
||||
language: en-GB
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://www.cathode-ray.tube/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 13, cat: PC/Games, desc: "Games"}
|
||||
- {id: 4, cat: Other, desc: "Misc"}
|
||||
- {id: 1, cat: Movies, desc: "Movies"}
|
||||
- {id: 2, cat: TV, desc: "TV"}
|
||||
- {id: 3, cat: Other, desc: "WOC"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep, imdbid, genre]
|
||||
movie-search: [q, imdbid, genre]
|
||||
|
||||
settings:
|
||||
- name: info_2fa
|
||||
type: info
|
||||
label: "About 2FA"
|
||||
default: "If you want to enable 2FA then use the CRT2FA indexer instead."
|
||||
- name: username
|
||||
type: text
|
||||
label: Username
|
||||
- name: password
|
||||
type: password
|
||||
label: Password
|
||||
- name: freeleech
|
||||
type: checkbox
|
||||
label: Search freeleech only
|
||||
default: false
|
||||
- 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.
|
||||
- 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_activity
|
||||
type: info
|
||||
label: Account Inactivity
|
||||
default: "New members must generate some torrent activity (upload, download, or cross-seed) in their account within the first 30 days of joining, otherwise their account will be automatically disabled."
|
||||
|
||||
login:
|
||||
path: login
|
||||
method: form
|
||||
inputs:
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
cinfo: "2550|1350|1.25|24|-60"
|
||||
iplocked: 0
|
||||
keeploggedin: 1
|
||||
error:
|
||||
- selector: div.error
|
||||
test:
|
||||
path: /
|
||||
selector: "#nav_userinfo"
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: torrents.php
|
||||
inputs:
|
||||
$raw: "{{ range .Categories }}filter_cat[{{.}}]=1&{{end}}"
|
||||
searchtext: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}"
|
||||
order_by: "{{ .Config.sort }}"
|
||||
order_way: "{{ .Config.type }}"
|
||||
action: advanced
|
||||
filter_freeleech: "{{ if .Config.freeleech }}1{{ else }}{{ end }}"
|
||||
taglist: "{{ .Query.Genre }}"
|
||||
|
||||
keywordsfilters:
|
||||
- name: re_replace
|
||||
args: ["(?i)\\bS0*(\\d+)\\b", "$1"]
|
||||
- name: re_replace
|
||||
args: ["(?i)\\bS0*(\\d+)E0*(\\d+)\\b", "$1"]
|
||||
|
||||
rows:
|
||||
selector: table#torrent_table > tbody > tr[class^="torrent row"]:has(a[href*="action=download"])
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: a[href^="/torrents.php?filter_cat"]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: regexp
|
||||
args: \[(\d+)\]
|
||||
title:
|
||||
selector: a[href^="/torrents.php?id="]
|
||||
filters:
|
||||
- name: re_replace # Seasons X-Y --> S0X-S0Y
|
||||
args: ["(?i)\\bSeasons?\\s*(\\d)\\s*-\\s*(\\d)\\b", "S0$1-S0$2"]
|
||||
- name: re_replace # Seasons X-YY --> S0X-SYY
|
||||
args: ["(?i)\\bSeasons?\\s*(\\d)\\s*-\\s*(\\d+)\\b", "S0$1-S$2"]
|
||||
- name: re_replace # Seasons XX-YY --> SXX-SYY
|
||||
args: ["(?i)\\bSeasons?\\s*(\\d+)\\s*-\\s*(\\d+)\\b", "S$1-S$2"]
|
||||
- name: re_replace # Season X --> S0X
|
||||
args: ["(?i)\\bSeasons?\\s*(\\d)\\b", "S0$1"]
|
||||
- name: re_replace # Season XX --> SXX
|
||||
args: ["(?i)\\bSeasons?\\s*(\\d+)\\b", "S$1"]
|
||||
- name: re_replace
|
||||
args: ["(?i)\\bComplete\\s+Series\\b", ""]
|
||||
details:
|
||||
selector: a[href^="/torrents.php?id="]
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href^="torrents.php?action=download&id="]
|
||||
attribute: href
|
||||
genre:
|
||||
selector: div.tags
|
||||
filters:
|
||||
- name: validate
|
||||
args: "Action, Adventure, Animation, Comedy, Crime, Documentary, Drama, Family, Fantasy, History, Horror, Kids, Music, Mystery, News, Reality, Romance, SciFi, Soap, Talk, Thriller, War, Western"
|
||||
description_tags:
|
||||
selector: div.tags
|
||||
description:
|
||||
case:
|
||||
span.icon_okay: "Verified: {{ .Result.description_tags }}"
|
||||
"*": "Unverified: {{ .Result.description_tags }}"
|
||||
poster:
|
||||
selector: td:nth-child(2) > script
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "src=\\\\\"(.*?)\\\\\""
|
||||
- name: re_replace
|
||||
args: ["\\\\(.)", "$1"]
|
||||
- name: replace
|
||||
args: ["/static/styles/modern/crt.png", ""]
|
||||
files:
|
||||
selector: td:nth-child(3)
|
||||
date:
|
||||
selector: td:nth-child(5) > span
|
||||
attribute: title
|
||||
# auto adjusted by site account profile
|
||||
filters:
|
||||
- name: dateparse
|
||||
args: "MMM dd yyyy, HH:mm"
|
||||
size:
|
||||
selector: td:nth-child(6)
|
||||
grabs:
|
||||
selector: td:nth-child(7)
|
||||
seeders:
|
||||
selector: td:nth-child(8)
|
||||
leechers:
|
||||
selector: td:nth-child(9)
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
span.icon[title*="Freeleech"]: 0
|
||||
"img[alt=\"Freeleech\"]": 0
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
case:
|
||||
span.icon[title*="DoubleSeed"]: 2
|
||||
"img[alt=\"DoubleSeed\"]": 2
|
||||
"*": 1
|
||||
minimumratio:
|
||||
text: 1.0
|
||||
# Luminance
|
108
config/prowlarr/Definitions/catorrent.yml
Normal file
108
config/prowlarr/Definitions/catorrent.yml
Normal file
|
@ -0,0 +1,108 @@
|
|||
---
|
||||
id: catorrent
|
||||
name: Catorrent
|
||||
description: "Catorrent is a RUSSIAN Semi-Private Torrent Tracker for GAMES"
|
||||
language: ru-RU
|
||||
type: semi-private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://catorrent.org/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: PC, cat: PC/Games, desc: "PC"}
|
||||
- {id: PS1, cat: Console/Other, desc: "Playstation 1"}
|
||||
- {id: PS2, cat: Console/Other, desc: "Playstation 2"}
|
||||
- {id: PS3, cat: Console/PS3, desc: "Playstation 3"}
|
||||
- {id: PS4, cat: Console/PS4, desc: "Playstation 4"}
|
||||
- {id: PS5, cat: Console/Other, desc: "Playstation 5"}
|
||||
- {id: SWITCH, cat: Console/Other, desc: "Nintendo Switch"}
|
||||
- {id: PSP, cat: Console/PSP, desc: "Playstation (portable) PSP"}
|
||||
- {id: PSVITA, cat: Console/PS Vita, desc: "Playstation Vita"}
|
||||
- {id: XONE, cat: Console/XBox One, desc: "Xbox ONE"}
|
||||
- {id: X360, cat: Console/XBox 360, desc: "Xbox 360"}
|
||||
- {id: WIIU, cat: Console/WiiU, desc: "Nintendo WIIU"}
|
||||
- {id: WII, cat: Console/Wii, desc: "Nintendo WII"}
|
||||
- {id: 3DS, cat: Console/3DS, desc: "Nintendo 3DS"}
|
||||
- {id: NDS, cat: Console/NDS, desc: "Nintendo DS"}
|
||||
- {id: N64, cat: Console/Other, desc: "Nintendo 64"}
|
||||
- {id: NGC, cat: Console/Other, desc: "Nintendo Game Cube"}
|
||||
- {id: DREAMCAST, cat: Console/Other, desc: "Dreamcast"}
|
||||
- {id: SAT, cat: Console/Other, desc: "Sega Saturn"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
|
||||
settings:
|
||||
- name: username
|
||||
type: text
|
||||
label: Username
|
||||
- name: password
|
||||
type: password
|
||||
label: Password
|
||||
|
||||
login:
|
||||
path: index.php
|
||||
method: form
|
||||
form: form[action=""]
|
||||
inputs:
|
||||
login_name: "{{ .Config.username }}"
|
||||
login_password: "{{ .Config.password }}"
|
||||
login_not_save: ""
|
||||
login: submit
|
||||
error:
|
||||
- selector: div.berrors
|
||||
test:
|
||||
path: /
|
||||
selector: a[href$="/index.php?action=logout"]
|
||||
|
||||
download:
|
||||
selectors:
|
||||
- selector: a[href*="/index.php?do=download&id="]
|
||||
attribute: href
|
||||
|
||||
search:
|
||||
# https://catorrent.org/index.php?do=search&subaction=search&story=lovelot
|
||||
paths:
|
||||
- path: index.php
|
||||
inputs:
|
||||
do: search
|
||||
subaction: search
|
||||
search_start: 0
|
||||
result_from: 1
|
||||
story: "{{ if .Keywords }}{{ .Keywords }}{{ else }}{{ .Today.Year }}{{ end }}"
|
||||
|
||||
rows:
|
||||
selector: div.short_game_search
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: div.icon_default
|
||||
title:
|
||||
selector: div.short_game_title
|
||||
details:
|
||||
selector: a[href$=".html"]
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href$=".html"]
|
||||
attribute: href
|
||||
poster:
|
||||
selector: img
|
||||
attribute: src
|
||||
genre:
|
||||
selector: div.short_game_genre
|
||||
description:
|
||||
text: "{{ .Result.genre }}"
|
||||
date:
|
||||
text: now
|
||||
seeders:
|
||||
text: 1
|
||||
leechers:
|
||||
text: 1
|
||||
size:
|
||||
text: "512 MB"
|
||||
downloadvolumefactor:
|
||||
text: 0
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
# engine n/a
|
163
config/prowlarr/Definitions/centraltorrent.yml
Normal file
163
config/prowlarr/Definitions/centraltorrent.yml
Normal file
|
@ -0,0 +1,163 @@
|
|||
---
|
||||
id: centraltorrent
|
||||
name: Central Torrent
|
||||
description: "Central Torrent is a POLISH Private Torrent Tracker for MOVIES / MUSIC"
|
||||
language: pl-PL
|
||||
type: private
|
||||
encoding: ISO-8859-2
|
||||
links:
|
||||
- http://central-torrent.eu/ # site does not support https NET::ERR_CERT_AUTHORITY_INVALID
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 23, cat: TV/Anime, desc: "Animowane"}
|
||||
- {id: 1, cat: PC, desc: "Aplikacje"}
|
||||
- {id: 26, cat: Movies, desc: "Dzieci/Bajki"}
|
||||
- {id: 29, cat: Books/EBook, desc: "E-books"}
|
||||
- {id: 20, cat: Movies/SD, desc: "Filmy/DVD"}
|
||||
- {id: 22, cat: Movies/SD, desc: "Filmy/RMVB"}
|
||||
- {id: 35, cat: Movies/UHD, desc: "Filmy/UHD"}
|
||||
- {id: 24, cat: Movies/HD, desc: "Filmy/x264"}
|
||||
- {id: 36, cat: Movies/HD, desc: "Filmy/x265"}
|
||||
- {id: 19, cat: Movies/SD, desc: "Filmy/XviD"}
|
||||
- {id: 21, cat: Movies/SD, desc: "Filmy/XviD PL"}
|
||||
- {id: 12, cat: PC/Games, desc: "Gry"}
|
||||
- {id: 17, cat: PC/Games, desc: "Gry/Konsole"}
|
||||
- {id: 4, cat: PC/Games, desc: "Gry/PC ISO"}
|
||||
- {id: 28, cat: Other, desc: "GSM/PDA"}
|
||||
- {id: 32, cat: Movies/BluRay, desc: "HD/Blu-ray"}
|
||||
- {id: 31, cat: Audio/Lossless, desc: "Music/Lossless"}
|
||||
- {id: 6, cat: Audio, desc: "Muzyka"}
|
||||
- {id: 30, cat: Other, desc: "Rozne"}
|
||||
- {id: 25, cat: TV/Sport, desc: "Sport"}
|
||||
- {id: 27, cat: Audio/Video, desc: "Teledyski"}
|
||||
- {id: 7, cat: TV, desc: "TV/Seriale"}
|
||||
- {id: 9, cat: XXX, desc: "XXX"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
music-search: [q]
|
||||
book-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: sort
|
||||
type: select
|
||||
label: Sort requested from site
|
||||
default: 4
|
||||
options:
|
||||
4: created
|
||||
7: seeders
|
||||
5: size
|
||||
1: title
|
||||
- name: type
|
||||
type: select
|
||||
label: Order requested from site
|
||||
default: desc
|
||||
options:
|
||||
desc: desc
|
||||
asc: asc
|
||||
- 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.
|
||||
- name: info_activity
|
||||
type: info
|
||||
label: Account Inactivity
|
||||
default: "User accounts of the Power User class and lower, inactive for a period longer than 42 days, are deleted. Therefore, if for some reason you cannot access Central Torrent for some time, park your account. Although you won't be able to download torrents, you can be sure that you won't have to log in for 64 days. However, if after this time you do not log in to your account, it will be deleted."
|
||||
|
||||
login:
|
||||
path: login.php
|
||||
method: form
|
||||
form: form[action="takelogin.php"]
|
||||
inputs:
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
captcha:
|
||||
type: image
|
||||
selector: img.cimage
|
||||
input: captcha
|
||||
error:
|
||||
- selector: td.embedded:has(h2:contains("failed"))
|
||||
- selector: td.embedded:has(h2:contains("Error"))
|
||||
- selector: form[action="takelogin.php"]
|
||||
message:
|
||||
text: "Login page detected at {{ .Config.sitelink }}."
|
||||
test:
|
||||
path: index.php
|
||||
selector: a[href="/my.php"]
|
||||
|
||||
download:
|
||||
selectors:
|
||||
- selector: a[href^="download.php/"]
|
||||
attribute: href
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: browse.php
|
||||
inputs:
|
||||
$raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
|
||||
search: "{{ .Keywords }}"
|
||||
# 0 active, 1 all, 2 dead, 3 freeleech
|
||||
incldead: "{{ if .Config.freeleech }}3{{ else }}1{{ end }}"
|
||||
# 0 all, 1 polish, 2 non-polish
|
||||
polish: 0
|
||||
# 0 name
|
||||
blah: 0
|
||||
sort: "{{ .Config.sort }}"
|
||||
type: "{{ .Config.type }}"
|
||||
|
||||
rows:
|
||||
selector: table[onMouseover] > tbody > tr:has(a[href^="details.php?id="])
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: a[href^="browse.php?cat="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: cat
|
||||
title:
|
||||
selector: a[href^="details.php?id="]
|
||||
details:
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: href
|
||||
files:
|
||||
selector: td:nth-child(3)
|
||||
date:
|
||||
selector: td:nth-child(5)
|
||||
# auto adjusted by site account profile
|
||||
filters:
|
||||
- name: dateparse
|
||||
args: "yyyy-MM-ddHH:mm:ss"
|
||||
size:
|
||||
selector: td:nth-child(7)
|
||||
grabs:
|
||||
selector: td:nth-child(8)
|
||||
seeders:
|
||||
selector: td:nth-child(9)
|
||||
leechers:
|
||||
selector: td:nth-child(10)
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
img[src="pic/freedownload.gif"]: 0
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
minimumratio:
|
||||
text: 1.0
|
||||
# tbsource
|
180
config/prowlarr/Definitions/ceskeforum.yml
Normal file
180
config/prowlarr/Definitions/ceskeforum.yml
Normal file
|
@ -0,0 +1,180 @@
|
|||
---
|
||||
id: ceskeforum
|
||||
name: CeskeForum
|
||||
description: "CeskeForum is a CZECH Private Torrent Tracker for MOVIES / TV / GENERAL"
|
||||
language: cs-CZ
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://t.ceskeforum.com/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 401, cat: Movies, desc: "Filmy (Movies)"}
|
||||
- {id: 403, cat: TV, desc: "TV pořady (TV Shows)"}
|
||||
- {id: 404, cat: TV/Documentary, desc: "TV dokumenty (Documentaries)"}
|
||||
- {id: 408, cat: TV, desc: "TV seriály - kompletní série (TV Series complete)"}
|
||||
- {id: 402, cat: TV, desc: "TV seriály - jednotlivé díly (TV Series episodes)"}
|
||||
- {id: 407, cat: TV/Sport, desc: "Sport"}
|
||||
- {id: 411, cat: Books, desc: "Knihy (Books)"}
|
||||
- {id: 413, cat: Audio/Audiobook, desc: "Knihy ve zvukové podobě (AudioBooks)"}
|
||||
- {id: 406, cat: Audio, desc: "Hudba (Music)"}
|
||||
- {id: 410, cat: PC, desc: "Software"}
|
||||
- {id: 412, cat: PC/Games, desc: "Software - Hry (Games)"}
|
||||
- {id: 409, cat: Other, desc: "Nezařazené (Misc)"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep, imdbid]
|
||||
movie-search: [q, imdbid]
|
||||
music-search: [q]
|
||||
book-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: sort
|
||||
type: select
|
||||
label: Sort requested from site
|
||||
default: 4
|
||||
options:
|
||||
4: created
|
||||
7: seeders
|
||||
5: size
|
||||
1: title
|
||||
- name: type
|
||||
type: select
|
||||
label: Order requested from site
|
||||
default: desc
|
||||
options:
|
||||
desc: desc
|
||||
asc: asc
|
||||
- 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: takelogin.php
|
||||
method: post
|
||||
inputs:
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
logout: ""
|
||||
securelogin: ""
|
||||
ssl: yes
|
||||
trackerssl: yes
|
||||
error:
|
||||
- selector: td.embedded:has(h2:contains("Přihlášení selhalo!"))
|
||||
message:
|
||||
selector: td.text
|
||||
test:
|
||||
path: index.php
|
||||
selector: a[href="logout.php"]
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: torrents.php
|
||||
inputs:
|
||||
$raw: "{{ range .Categories }}cat{{.}}=1&{{end}}"
|
||||
search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}"
|
||||
# 0=incldead, 1=active, 2=dead
|
||||
incldead: 0
|
||||
# show promotions: 0=all, 1=normal, 2=free, 3=2x, 4=2xFree, 5=50%, 6=2x50%, 7=30%
|
||||
spstate: "{{ if .Config.freeleech }}2{{ else }}0{{ end }}"
|
||||
# 0=title, 1=descr, 3=uploader, 4=imdb URL
|
||||
search_area: "{{ if .Query.IMDBID }}4{{ else }}0{{ end }}"
|
||||
# 0=AND, 1=OR, 2=Exact
|
||||
search_mode: 0
|
||||
sort: "{{ .Config.sort }}"
|
||||
type: "{{ .Config.type }}"
|
||||
notnewword: 1
|
||||
# can support genre searching but you need to know the id, eg &team10=1 for Drama (id is 10)
|
||||
|
||||
rows:
|
||||
selector: table.torrents > tbody > tr:has(table.torrentname)
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: a[href^="?cat="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: cat
|
||||
title_default:
|
||||
selector: a[href^="details.php?id="]
|
||||
title:
|
||||
selector: a[title][href^="details.php?id="]
|
||||
attribute: title
|
||||
optional: true
|
||||
default: "{{ .Result.title_default }}"
|
||||
details:
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href^="download.php?id="]
|
||||
attribute: href
|
||||
imdbid:
|
||||
selector: a[href*="imdb.com/title/tt"]
|
||||
attribute: href
|
||||
date_elapsed:
|
||||
# time type: time elapsed (default)
|
||||
selector: td.rowfollow:nth-child(4) > span[title]
|
||||
attribute: title
|
||||
optional: true
|
||||
filters:
|
||||
- name: append
|
||||
args: " +02:00" # EET
|
||||
- name: dateparse
|
||||
args: "yyyy-MM-dd HH:mm:ss zzz"
|
||||
date_added:
|
||||
# time added
|
||||
selector: td.rowfollow:nth-child(4):not(:has(span))
|
||||
optional: true
|
||||
filters:
|
||||
- name: append
|
||||
args: " +02:00" # EET
|
||||
- name: dateparse
|
||||
args: "yyyy-MM-ddHH:mm:ss zzz"
|
||||
date:
|
||||
text: "{{ if or .Result.date_elapsed .Result.date_added }}{{ or .Result.date_elapsed .Result.date_added }}{{ else }}now{{ end }}"
|
||||
size:
|
||||
selector: td.rowfollow:nth-child(5)
|
||||
seeders:
|
||||
selector: td.rowfollow:nth-child(6)
|
||||
leechers:
|
||||
selector: td.rowfollow:nth-child(7)
|
||||
grabs:
|
||||
selector: td.rowfollow:nth-child(8)
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
img.pro_free: 0
|
||||
img.pro_free2up: 0
|
||||
img.pro_50pctdown: 0.5
|
||||
img.pro_50pctdown2up: 0.5
|
||||
img.pro_30pctdown: 0.3
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
case:
|
||||
img.pro_50pctdown2up: 2
|
||||
img.pro_free2up: 2
|
||||
img.pro_2up: 2
|
||||
"*": 1
|
||||
description:
|
||||
selector: td.rowfollow:nth-child(2)
|
||||
remove: a, b, font, img, span
|
||||
genre:
|
||||
selector: table.torrentname > tbody > tr > td:first-child
|
||||
remove: a
|
||||
filters:
|
||||
- name: validate
|
||||
args: "Akční, Animovaný, Dobrodružný, Dokumentární, Drama, Fantasy, Horor, Komedie, Krimi, Pohádka, Rodinný, Romantický, Sci-Fi, Thriller, Válečný, Western"
|
||||
# NexusPHP Standard v1.5 Beta 4
|
172
config/prowlarr/Definitions/chdbits.yml
Normal file
172
config/prowlarr/Definitions/chdbits.yml
Normal file
|
@ -0,0 +1,172 @@
|
|||
---
|
||||
id: chdbits
|
||||
name: CHDBits
|
||||
description: "CHDBits is a CHINESE Private Torrent Tracker for HD MOVIES / TV"
|
||||
language: zh-CN
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://ptchdbits.co/
|
||||
legacylinks:
|
||||
- https://chdbits.co/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 401, cat: Movies, desc: "Movies"}
|
||||
- {id: 404, cat: TV/Documentary, desc: "Documentaries"}
|
||||
- {id: 405, cat: TV/Anime, desc: "Animations"}
|
||||
- {id: 402, cat: TV, desc: "TV Series"}
|
||||
- {id: 403, cat: TV, desc: "TV Shows"}
|
||||
- {id: 406, cat: Audio/Video, desc: "Music Videos"}
|
||||
- {id: 407, cat: TV/Sport, desc: "Sports"}
|
||||
- {id: 409, cat: Other, desc: "Misc"}
|
||||
- {id: 408, cat: Audio, desc: "HQ Audio"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
music-search: [q]
|
||||
book-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: 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.
|
||||
- name: sort
|
||||
type: select
|
||||
label: Sort requested from site
|
||||
default: 4
|
||||
options:
|
||||
4: created
|
||||
7: seeders
|
||||
5: size
|
||||
1: title
|
||||
- name: type
|
||||
type: select
|
||||
label: Order requested from site
|
||||
default: desc
|
||||
options:
|
||||
desc: desc
|
||||
asc: asc
|
||||
|
||||
login:
|
||||
path: login.php
|
||||
method: form
|
||||
form: form[action="takelogin.php"]
|
||||
captcha:
|
||||
type: image
|
||||
selector: img[alt="CAPTCHA"]
|
||||
input: imagestring
|
||||
inputs:
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
logout: ""
|
||||
securelogin: ""
|
||||
ssl: yes
|
||||
trackerssl: yes
|
||||
error:
|
||||
- selector: td.embedded:has(h2:contains("失败"))
|
||||
- selector: td.embedded:has(h2:contains("failed"))
|
||||
test:
|
||||
path: torrents.php
|
||||
selector: a[href*="logout.php"]
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: torrents.php
|
||||
inputs:
|
||||
$raw: "{{ range .Categories }}cat{{.}}=1&{{end}}"
|
||||
search: "{{ .Keywords }}"
|
||||
incldead: 1
|
||||
# 0 all, 1 normal, 2 free, 3 2x, 4 2xfree, 5 50%, 6 2x50%, 7 30%
|
||||
spstate: "{{ if .Config.freeleech }}2{{ else }}0{{ end }}"
|
||||
# 0 title, 1 descr, 3 uploader, 4 imdburl
|
||||
search_area: "{{ if .Query.IMDBID }}4{{ else }}0{{ end }}"
|
||||
# 0 AND, 1 OR, 2 exact
|
||||
search_mode: 0
|
||||
sort: "{{ .Config.sort }}"
|
||||
type: "{{ .Config.type }}"
|
||||
notnewword: 1
|
||||
|
||||
rows:
|
||||
selector: table.torrents > tbody > tr:has(table.torrentname)
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: a[href^="?cat="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: cat
|
||||
title_default:
|
||||
selector: a[href^="details.php?id="]
|
||||
title:
|
||||
selector: a[title][href^="details.php?id="]
|
||||
attribute: title
|
||||
optional: true
|
||||
default: "{{ .Result.title_default }}"
|
||||
details:
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href^="download.php?id="]
|
||||
attribute: href
|
||||
size:
|
||||
selector: td:nth-child(5)
|
||||
grabs:
|
||||
selector: td:nth-child(8)
|
||||
seeders:
|
||||
selector: td:nth-child(6)
|
||||
leechers:
|
||||
selector: td:nth-child(7)
|
||||
date_elapsed:
|
||||
# time type: time elapsed (default)
|
||||
selector: td:nth-child(4) > span[title]
|
||||
attribute: title
|
||||
optional: true
|
||||
filters:
|
||||
- name: append
|
||||
args: " +08:00" # CST
|
||||
- name: dateparse
|
||||
args: "yyyy-MM-dd HH:mm:ss zzz"
|
||||
date_added:
|
||||
# time added
|
||||
selector: td:nth-child(4):not(:has(span))
|
||||
optional: true
|
||||
filters:
|
||||
- name: append
|
||||
args: " +08:00" # CST
|
||||
- name: dateparse
|
||||
args: "yyyy-MM-ddHH:mm:ss zzz"
|
||||
date:
|
||||
text: "{{ if or .Result.date_elapsed .Result.date_added }}{{ or .Result.date_elapsed .Result.date_added }}{{ else }}now{{ end }}"
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
img.pro_free: 0
|
||||
img.pro_free2up: 0
|
||||
img.pro_50pctdown: 0.5
|
||||
img.pro_50pctdown2up: 0.5
|
||||
img.pro_30pctdown: 0.3
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
case:
|
||||
img.pro_50pctdown2up: 2
|
||||
img.pro_free2up: 2
|
||||
img.pro_2up: 2
|
||||
"*": 1
|
||||
description:
|
||||
selector: td:nth-child(2)
|
||||
remove: a, b, font, img, span
|
||||
# NexusPHP 73f201530b 2023-08-07
|
211
config/prowlarr/Definitions/chilebt.yml
Normal file
211
config/prowlarr/Definitions/chilebt.yml
Normal file
|
@ -0,0 +1,211 @@
|
|||
---
|
||||
id: chilebt
|
||||
name: ChileBT
|
||||
description: "ChileBT is a CHILEAN Private Torrent Tracker for MOVIES / TV / GENERAL"
|
||||
language: es-CL
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://chilebt.com/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 10, cat: Movies, desc: "Movies"}
|
||||
- {id: 11, cat: TV, desc: "TV"}
|
||||
- {id: 9, cat: Audio, desc: "Music"}
|
||||
- {id: 7, cat: Other, desc: "Cultura / Educativos"}
|
||||
- {id: 8, cat: PC/Games, desc: "Juegos"}
|
||||
- {id: 6, cat: Books, desc: "EBook"}
|
||||
- {id: 4, cat: TV/Anime, desc: "Anime"}
|
||||
- {id: 5, cat: PC/0day, desc: "Aplicaciones / Programas"}
|
||||
- {id: 14, cat: Movies, desc: "Infantil"}
|
||||
- {id: 12, cat: Other/Misc, desc: "VIP"}
|
||||
- {id: 13, cat: XXX, desc: "XXX"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep, imdbid, tvdbid, tmdbid]
|
||||
movie-search: [q, imdbid, tmdbid]
|
||||
music-search: [q]
|
||||
book-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: 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: login
|
||||
method: form
|
||||
form: form[action$="/login"]
|
||||
inputs:
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
remember: on
|
||||
selectorinputs:
|
||||
_token:
|
||||
selector: input[name="_token"]
|
||||
attribute: value
|
||||
error:
|
||||
- selector: script[nonce]:contains("Error")
|
||||
message:
|
||||
selector: script[nonce]:contains("Error")
|
||||
# test:
|
||||
# path: /
|
||||
# selector: a[href$="/logout"]
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: filterTorrents
|
||||
inputs:
|
||||
$raw: "{{ range .Categories }}categories[]={{.}}&{{end}}"
|
||||
search: "{{ if .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}" # for dashboard imdbid search
|
||||
imdb: "{{ .Query.IMDBIDShort }}"
|
||||
tvdb: "{{ .Query.TVDBID }}"
|
||||
tmdb: "{{ .Query.TMDBID }}"
|
||||
sorting: "{{ .Config.sort }}"
|
||||
direction: "{{ .Config.type }}"
|
||||
qty: 50
|
||||
page: 0
|
||||
view: list
|
||||
freeleech: "{{ if .Config.freeleech }}1{{ else }}{{ end }}"
|
||||
# can search by genre but need range support. &genres[]=Action&genres[]=Comedy for Action and Comedy
|
||||
|
||||
rows:
|
||||
selector: table > tbody > tr
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: a[href*="/categories/"]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "/categories/.*?\\.(\\d+)"
|
||||
title:
|
||||
selector: a.view-torrent
|
||||
download:
|
||||
selector: a[href*="/download/"]
|
||||
attribute: href
|
||||
details:
|
||||
selector: a.view-torrent
|
||||
attribute: href
|
||||
poster:
|
||||
selector: div.torrent-poster img
|
||||
attribute: src
|
||||
filters:
|
||||
- name: prepend
|
||||
args: "https://images.weserv.nl/?url=" # for display on dashboard
|
||||
- name: append
|
||||
args: "&w=180&h=270" # for display on dashboard
|
||||
- name: replace
|
||||
args: ["https://images.weserv.nl/?url=https://via.placeholder.com/600x900&w=180&h=270", ""]
|
||||
genre:
|
||||
selector: td:nth-last-child(6)
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["\n", ""]
|
||||
- name: re_replace
|
||||
args: ["(?i)(Science Fiction)", "Science_Fiction"]
|
||||
- name: validate
|
||||
args: "Action, Adventure, Animation, Biography, Comedy, Crime, Documentary, Drama, Family, Fantasy, Game-Show, History, Horror, Music, Musical, Mystery, News, Reality-TV, Romance, Science_Fiction, Sitcom, Sport, Talk-Show, Thriller, War, Western"
|
||||
description:
|
||||
text: "{{ .Result.genre }}"
|
||||
size:
|
||||
selector: td:nth-last-child(4)
|
||||
seeders:
|
||||
selector: td:nth-last-child(3)
|
||||
leechers:
|
||||
selector: td:nth-last-child(2)
|
||||
grabs:
|
||||
selector: td:nth-last-child(1)
|
||||
imdbid:
|
||||
selector: a[href*="imdb.com/title/tt"]
|
||||
attribute: href
|
||||
tmdbid:
|
||||
selector: a[href*="themoviedb.org/movie/"], a[href*="themoviedb.org/tv/"]
|
||||
attribute: href
|
||||
date:
|
||||
selector: time
|
||||
filters:
|
||||
# translations for Turkish|Estonian|Danish|Italian|Polish|Norwegian|Portuguese|Czech|Russian|Romanian|Spanish|French|German|Bulgarian|Dutch|Chinese|Japanese|Swedish
|
||||
- name: re_replace
|
||||
args: ["(?i)(önce|tagasi|geleden|fa|temu|siden|há|atrás|nazpět|назад|acum|în urmă|hace|il y a|vor|преди|前|sedan)", " ago"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(saniye|sekundit|sekunder|secondi|sekund|segundos|sekundami|секунд|secunde|secondes|Sekunden|секунди|seconden|秒前)", "seconds"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(minutit|minutter|minuti|minuty|minutos|минуты|минут|Minuten|минути|minuten|minuter)", "minutes"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(dakika|minut|minuto|minuta|minutt|минута|Minute|minuut|分钟|分)", " minute"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(tundi|timer|ore|godziny|horas|hodiny|hoden|часа|часов|ore|heures|Stunden|timmar)", "hours"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(saat|tund|time|ora|godzina|hora|hodina|час|oră|heure|Stunde|uur|小时|時間|timme)", " hour"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(päeva|dage|giorni|dni|dias|dny|дня|дней|zile|días|jours|Tagen|дни|dagen|dagar)", "days"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(gün|päev|dag|giorno|dzień|dia|den|день|zi|día|jour|Tag|ден|天|日)", " day"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(nädalat|uger|settimane|tygodnie|uker|semanas|týdny|недели|недель|săptămâni|semaines|Wochen|седмици|weken|veckor)", "weeks"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(hafta|nädal|uge|settimana|tydzień|uke|semana|týden|неделю|săptămână|semaine|Woche|седмица|周|週間|vecka)", " week"]
|
||||
- name: re_replace
|
||||
args: ["(?i) (ay)", "month"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(kuud|måneder|mesi|miesiące|meses|měsíce|месяца|месяцев|luni|meses|mois|Monaten|месеца|maanden|månader)", "months"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(kuu|måned|mese|miesiąc|mês|měsíc|месяц|lună|mes|Monat|месец|maand|个月|ヶ月|månad)", " month"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(aastat|anni|lata|anos|roky|года|ani|años|ans|Jahren|години)", " years"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(yil|aasta|år|anno|rok|ano|год|año|Jahr|година|jaar|年)", " year"]
|
||||
- name: re_replace
|
||||
args: ["(?i) (an)", "year"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(För |und)", ""] # Misc removals
|
||||
- name: timeago
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
i[class*="fa-id-badge text-orange"]: 0 # 24 Hour FreeLeech From BON Store
|
||||
i[class*="fa-trophy text-purple"]: 0 # Special FreeLeech For Certain User Groups
|
||||
i[class*="fa-star text-bold"]: 0 # Freeleech From Token
|
||||
i[class*="fa-coins text-bold"]: 0 # Freeleech From Token
|
||||
i[class*="fa-globe text-blue"]: 0 # Global Freeleech
|
||||
i[class*="fa-star text-gold"]: 0 # Freeleech
|
||||
i[class*="fa-certificate text-pink"]: 0 # Featured Torrent
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
case:
|
||||
i[class*="fa-gem text-green"]: 2 # Single Torrent Double Upload
|
||||
i[class*="fa-globe text-green"]: 2 # Global Double Upload
|
||||
i[class*="fa-certificate text-pink"]: 2 # Featured Torrent
|
||||
"*": 1
|
||||
# global MR is 0.5 but torrents must be seeded for 7 days regardless of ratio
|
||||
# minimumratio:
|
||||
# text: 0.5
|
||||
minimumseedtime:
|
||||
# 7 day (as seconds = 7 x 24 x 60 x 60)
|
||||
text: 604800
|
||||
# UNIT3D 1.9.3
|
120
config/prowlarr/Definitions/cinemageddon.yml
Normal file
120
config/prowlarr/Definitions/cinemageddon.yml
Normal file
|
@ -0,0 +1,120 @@
|
|||
---
|
||||
id: cinemageddon
|
||||
name: Cinemageddon
|
||||
description: "B-movie tracker"
|
||||
language: en-US
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://cinemageddon.net/
|
||||
legacylinks:
|
||||
- http://cinemageddon.net/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 1, cat: Movies, desc: "Action"}
|
||||
- {id: 2, cat: Movies, desc: "Horror"}
|
||||
- {id: 3, cat: Movies, desc: "Martial Arts"}
|
||||
- {id: 4, cat: Movies, desc: "Comedy"}
|
||||
- {id: 5, cat: Movies, desc: "Other"}
|
||||
- {id: 6, cat: Movies, desc: "Hidden Gems"}
|
||||
- {id: 7, cat: Movies, desc: "Sci-Fi"}
|
||||
- {id: 8, cat: Movies, desc: "Gore"}
|
||||
- {id: 9, cat: Movies, desc: "Exploitation"}
|
||||
- {id: 11, cat: Movies, desc: "OST"}
|
||||
- {id: 12, cat: Movies, desc: "XXX"}
|
||||
- {id: 13, cat: Movies, desc: "Thriller"}
|
||||
- {id: 14, cat: Movies, desc: "Adventure"}
|
||||
- {id: 15, cat: Movies, desc: "Documentary"}
|
||||
- {id: 16, cat: Movies, desc: "Western"}
|
||||
- {id: 17, cat: Movies, desc: "Family"}
|
||||
- {id: 18, cat: Movies, desc: "Drama"}
|
||||
- {id: 19, cat: Movies, desc: "Ebooks"}
|
||||
- {id: 20, cat: Movies, desc: "Softcore"}
|
||||
- {id: 21, cat: Movies, desc: "Tinfoil Hat"}
|
||||
- {id: 22, cat: Movies, desc: "Trailers"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
movie-search: [q, imdbid]
|
||||
|
||||
login:
|
||||
path: takelogin.php
|
||||
method: post
|
||||
inputs:
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
error:
|
||||
- selector: table:contains("Login failed!")
|
||||
test:
|
||||
path: index.php
|
||||
selector: a[href$="/logout.php"]
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: browse.php
|
||||
inputs:
|
||||
$raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
|
||||
search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}"
|
||||
|
||||
rows:
|
||||
selector: table.torrenttable > tbody > tr:has(a[href*="browse.php?cat="])
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: a[href*="browse.php?cat="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: cat
|
||||
title:
|
||||
selector: a[href*="details.php?id="]
|
||||
details:
|
||||
selector: a[href*="details.php?id="]
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href*="download.php?id="]
|
||||
attribute: href
|
||||
imdbid:
|
||||
selector: a[href*="imdb.com/title/tt"]
|
||||
attribute: href
|
||||
date:
|
||||
selector: td:nth-child(4)
|
||||
filters:
|
||||
- name: append
|
||||
args: " -07:00" # PDT
|
||||
- name: dateparse
|
||||
args: "yyyy-MM-ddHH:mm:ss zzz"
|
||||
size:
|
||||
selector: td:nth-child(5)
|
||||
filters:
|
||||
- name: regexp
|
||||
args: (\d+.*(MB|GB)+)
|
||||
files:
|
||||
selector: td:nth-child(5)
|
||||
filters:
|
||||
- name: regexp
|
||||
args: (\d+)\s+file
|
||||
grabs:
|
||||
selector: td:nth-child(6)
|
||||
seeders:
|
||||
selector: td:nth-child(7)
|
||||
leechers:
|
||||
selector: td:nth-child(8)
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
img[src$="/golden10.gif"]: 0 # freeleech
|
||||
img[src$="/golden1.gif"]: 0.9 # grey coin possibly 10% discount
|
||||
img[src$="/golden2.gif"]: 0.8 # bronze coin 20% discount
|
||||
img[src$="/golden3.gif"]: 0.7 # siver coin 30% discount
|
||||
img[src$="/golden4.gif"]: 0.6 # gold coin 40% discount
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
case:
|
||||
img[src$="/golden10.gif"]: 2 # freeleech 2x bonus
|
||||
img[src$="/golden1.gif"]: 1.1 # gray coin possibly 10% bonus
|
||||
img[src$="/golden2.gif"]: 1.2 # bronze coin 20% bonus
|
||||
img[src$="/golden3.gif"]: 1.3 # silver coin 30% bonus
|
||||
img[src$="/golden4.gif"]: 1.4 # gold coin 40% bonus
|
||||
"*": 1
|
||||
# engine n/a
|
199
config/prowlarr/Definitions/cinemamovies.yml
Normal file
199
config/prowlarr/Definitions/cinemamovies.yml
Normal file
|
@ -0,0 +1,199 @@
|
|||
---
|
||||
id: cinemamovies
|
||||
name: CinemaMovieS_ZT
|
||||
description: "CinemaMovieS_ZT is a POLISH Private Torrent Tracker for MOVIES / TV / GENERAL"
|
||||
language: pl-PL
|
||||
type: private
|
||||
encoding: ISO-8859-2
|
||||
links:
|
||||
- https://cinemamovies.pl/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 3, cat: Movies/BluRay, desc: "Filmy BD25/50_5/9"}
|
||||
- {id: 5, cat: Movies/3D, desc: "Filmy 3D"}
|
||||
- {id: 6, cat: Movies/DVD, desc: "Filmy DVD5/9"}
|
||||
- {id: 8, cat: Movies/HD, desc: "Filmy HD"}
|
||||
- {id: 11, cat: Movies/SD, desc: "Filmy SD"}
|
||||
- {id: 12, cat: Movies/Other, desc: "Filmy Inne"}
|
||||
- {id: 32, cat: Movies/UHD, desc: "Filmy UHD 4K"}
|
||||
- {id: 33, cat: TV/UHD, desc: "TV UHD"}
|
||||
- {id: 2, cat: TV/Anime, desc: "Bajki/Anime"}
|
||||
- {id: 10, cat: TV/Documentary, desc: "TV Dokumentalne"}
|
||||
- {id: 20, cat: TV, desc: "TV Paczki"}
|
||||
- {id: 22, cat: TV/Sport, desc: "TV Sport"}
|
||||
- {id: 24, cat: TV/HD, desc: "TV HD"}
|
||||
- {id: 25, cat: TV/SD, desc: "TV SD"}
|
||||
- {id: 1, cat: PC, desc: "Aplikacje"}
|
||||
- {id: 15, cat: PC/Games, desc: "Gry"}
|
||||
- {id: 16, cat: PC/Mobile-Other, desc: "Mobile"}
|
||||
- {id: 17, cat: Other, desc: "Inne"}
|
||||
- {id: 19, cat: Audio, desc: "Muzyka"}
|
||||
- {id: 21, cat: Books, desc: "Book"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep, imdbid]
|
||||
movie-search: [q, imdbid]
|
||||
music-search: [q]
|
||||
book-search: [q]
|
||||
|
||||
settings:
|
||||
- name: cookie
|
||||
type: text
|
||||
label: Cookie
|
||||
- name: info
|
||||
type: info
|
||||
label: How to get the Cookie
|
||||
default: "<ol><li>Login to this tracker with your browser</li><li>Open the <b>DevTools</b> panel by pressing <b>F12</b></li><li>Select the <b>Network</b> tab</li><li>Click on the <b>Doc</b> button (Chrome Browser) or <b>HTML</b> button (FireFox)</li><li>Refresh the page by pressing <b>F5</b></li><li>Click on the first row entry</li><li>Select the <b>Headers</b> tab on the Right panel</li><li>Find <b>'cookie:'</b> in the <b>Request Headers</b> section</li><li><b>Select</b> and <b>Copy</b> the whole cookie string <i>(everything after 'cookie: ')</i> and <b>Paste</b> here.</li></ol>"
|
||||
- name: freeleech
|
||||
type: checkbox
|
||||
label: Search freeleech only
|
||||
default: false
|
||||
- name: drop_polish_prefix
|
||||
type: checkbox
|
||||
label: Drop the Polish title prefix
|
||||
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: POLISH
|
||||
options:
|
||||
POLISH: POLISH
|
||||
MULTi POLISH: MULTi POLISH
|
||||
- name: sort
|
||||
type: select
|
||||
label: Sort requested from site
|
||||
default: 2
|
||||
options:
|
||||
2: created
|
||||
5: seeders
|
||||
3: size
|
||||
1: title
|
||||
- name: type
|
||||
type: select
|
||||
label: Order requested from site
|
||||
default: desc
|
||||
options:
|
||||
desc: desc
|
||||
asc: asc
|
||||
- name: info_activity
|
||||
type: info
|
||||
label: Account Inactivity
|
||||
default: "Failure to use an account for a period of 180 days will result in the removal of the account from the CMS_ZT community."
|
||||
|
||||
login:
|
||||
method: cookie
|
||||
inputs:
|
||||
cookie: "{{ .Config.cookie }}"
|
||||
test:
|
||||
path: index.php
|
||||
selector: a[href^="/logout.php"]
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: browse.php
|
||||
inputs:
|
||||
$raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
|
||||
search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}"
|
||||
# 0 active, 1 all, 4 requests, 5 onlydead, 6 polish, 8 free, 10 doubleup, 11 premier, 13 VOD
|
||||
incldead: "{{ if .Config.freeleech }}8{{ else }}1{{ end }}"
|
||||
# 0 title, 1 descr
|
||||
blah: "{{ if .Query.IMDBID }}1{{ else }}0{{ end }}"
|
||||
gatunek: 0
|
||||
quality: none
|
||||
sort: "{{ .Config.sort }}"
|
||||
type: "{{ .Config.type }}"
|
||||
# can search by a genre, (gatunek), but you need to know the id: &gatunek=64 to search Sci-Fi
|
||||
|
||||
rows:
|
||||
selector: table[width="100%"] > tbody > tr:has(a[href^="browse.php?cat="])
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: a[href^="browse.php?cat="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: cat
|
||||
title_raw:
|
||||
selector: a[href^="details.php?id="]
|
||||
title_multilang:
|
||||
text: "{{ .Result.title_raw }}"
|
||||
filters:
|
||||
- name: re_replace
|
||||
args: ["(?i)\\b(MULTI(?!.*(?:POLISH|ENGLISH|\\bPL\\b)))\\b", "{{ .Config.multilanguage }}"]
|
||||
- name: re_replace
|
||||
args: ["(?i)\\b(pl)\\b", "POLISH"]
|
||||
title_phase1:
|
||||
text: "{{ if .Config.multilang }}{{ .Result.title_multilang }}{{ else }}{{ .Result.title_raw }}{{ end }}"
|
||||
title_stripped:
|
||||
text: "{{ .Result.title_phase1 }}"
|
||||
filters:
|
||||
- name: re_replace
|
||||
args: ["^(.* / )(.*)$", "$2"]
|
||||
title:
|
||||
text: "{{ if .Config.drop_polish_prefix }}{{ .Result.title_stripped }}{{ else }}{{ .Result.title_phase1 }}{{ end }}"
|
||||
details:
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href^="download.php/"]
|
||||
attribute: href
|
||||
poster:
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: onmouseover
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "src=(.+?) "
|
||||
imdbid:
|
||||
selector: a[href*="imdb.com/title/tt"]
|
||||
attribute: href
|
||||
genre:
|
||||
selector: td[align="right"][width="66%"][valign="bottom"]
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["\xA0", " "]
|
||||
- name: validate
|
||||
args: "Akcja, Animacja, Anime, Basn, Biblijny, Biograficzny, Czarna komedia, Dla dzieci, Dla mlodziezy, Dokumentalizowany, Dokumentalny, Dramat, Dramat historyczny, Dramat obyczajowy, Dramat sadowy, Dramat spoleczny, Dreszczowiec, Edukacyjny, Erotyczny, Etiuda, Fabularyzowany dok., Familijny, Fantasy, Film-Noir, Gangsterski, Groteska filmowa, Historyczny, Horror, Karate, Katastroficzny, Komedia, Komedia dokumentalna, Komedia kryminalna, Komedia obycz., Komedia rom., Kostiumowy, Krótkometrażowy, Kryminał, Melodramat, Motoryzacyjny, Musical, Muzyczny, Kulinarny, Nowele filmowe, Obyczajowy, Poetycki, Polityczny, Prawniczy, Przygodowy, Przyrodniczy, Psychologiczny, Plaszcza i szpady, Religijny, Romans, Rozrywka, Satyra, Sci-Fi, Sensacyjny, Sportowy, Surreallistyczny, Szpiegowski, Sztuki walki, Świąteczne, Thriller, Western, Wojenny, Kabaret, Action, Adventure, Arcade, Fps, Fighting, MMO, Puzzle, Racing, Rpg, RTS, Shooter, Simulation, Stealth, Strategy, Sport , Tps, Early Access, DOX, PC, X360, PlayStation, PSP, Alternative, Ambient, Classical, Dubstep, Drum and bass, Dance, Disco polo, Disco, Dla dzieci, Electronic, Folc, Hardstyle, Hardcore, Hip-hop, House, Jazz, Kompilacje muzyczne, Metal, Progressive house, Pop, Punk, Rap, Reggae, Rnb, Rock, Soul, Techno, Trance, Breaks, Chill out, Club, Deep house, Electro house, Tech house, GOA/PSY, Instrumental, Minimal, Soundtrack, Sety, Prasa, Czasopisma, Książka, Audiobook, Polskie, Klasyka, Poezja, Literatura piękna, Literatura faktu, Autobiografia, Pamiętnik"
|
||||
description:
|
||||
selector: img[src="pic/Poland.png"]
|
||||
attribute: src
|
||||
filters:
|
||||
- name: prepend
|
||||
args: "{{ if .Result.genre }}{{ .Result.genre }} - {{ else }}{{ end }}"
|
||||
- name: replace
|
||||
args: ["pic/Poland.png", "Polish"]
|
||||
date:
|
||||
selector: td[width="66%"] > span > span
|
||||
filters:
|
||||
- name: append
|
||||
args: " +02:00" # EET
|
||||
- name: dateparse
|
||||
args: "yyyy-MM-dd HH:mm:ss zzz"
|
||||
size:
|
||||
selector: td:nth-child(4)
|
||||
seeders:
|
||||
selector: a[href$="#seedy"]
|
||||
leechers:
|
||||
selector: a[href$="#leechy"]
|
||||
grabs:
|
||||
selector: td:last-child > small> span
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
img[src="pic/free.png"]: 0
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
case:
|
||||
img[src="pic/double.png"]: 2
|
||||
"*": 1
|
||||
minimumratio:
|
||||
text: 1.0
|
||||
minimumseedtime:
|
||||
# 3 days (as seconds = 3 x 24 x 60 x 60)
|
||||
text: 259200
|
||||
# engine n/a
|
184
config/prowlarr/Definitions/cinematik.yml
Normal file
184
config/prowlarr/Definitions/cinematik.yml
Normal file
|
@ -0,0 +1,184 @@
|
|||
---
|
||||
id: cinematik
|
||||
name: Cinematik
|
||||
description: "A tracker for full BD and DVD discs of non-mainstream movies, niche cinema and arthouse."
|
||||
language: en-US
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://cinematik.net/
|
||||
legacylinks:
|
||||
- https://www.cinematik.net/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 1, cat: Movies, desc: "Film"}
|
||||
- {id: 2, cat: TV, desc: "TV"}
|
||||
- {id: 3, cat: Movies/Foreign, desc: "Foreign Film"}
|
||||
- {id: 4, cat: TV/Foreign, desc: "Foreign TV"}
|
||||
- {id: 5, cat: Movies/Other, desc: "Opera & Musical"}
|
||||
- {id: 6, cat: Movies/Foreign, desc: "Asian Film"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep, imdbid, tvdbid, tmdbid]
|
||||
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://cinematik.net/\" target=\"_blank\">Cinematik</a> account <i>My Settings</i> page and clicking on the <b>API Key</b> tab."
|
||||
- name: freeleech
|
||||
type: checkbox
|
||||
label: Search freeleech only
|
||||
default: false
|
||||
- name: single_file_release_use_filename
|
||||
type: checkbox
|
||||
label: Use filename as title for single file releases
|
||||
default: true
|
||||
- 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
|
||||
- name: info_activity
|
||||
type: info
|
||||
label: Account Inactivity
|
||||
default: "With 2FA enabled, there are no specific requirements for uploading, downloading, or posting. Your membership continues based on the staff's fair assessment of your overall activity and contributions."
|
||||
|
||||
login:
|
||||
path: /api/torrents
|
||||
method: get
|
||||
inputs: {} # TODO: remove in v10
|
||||
error:
|
||||
- selector: a[href*="/login"]
|
||||
message:
|
||||
text: "The API key was not accepted by {{ .Config.sitelink }}."
|
||||
|
||||
search:
|
||||
paths:
|
||||
# https://github.com/HDInnovations/UNIT3D-Community-Edition/wiki/Torrent-API-(UNIT3D-v8.x.x)
|
||||
# https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php#L476
|
||||
- path: "/api/torrents/filter"
|
||||
response:
|
||||
type: json
|
||||
|
||||
headers:
|
||||
Authorization: ["Bearer {{ .Config.apikey }}"]
|
||||
|
||||
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
|
||||
$raw: "{{ range .Categories }}&categories[]={{.}}{{end}}"
|
||||
name: "{{ .Keywords }}"
|
||||
seasonNumber: "{{ .Query.Season }}"
|
||||
episodeNumber: "{{ .Query.Ep }}"
|
||||
imdbId: "{{ .Query.IMDBIDShort }}"
|
||||
tmdbId: "{{ .Query.TMDBID }}"
|
||||
tvdbId: "{{ .Query.TVDBID }}"
|
||||
"free[]": "{{ if .Config.freeleech }}100{{ else }}{{ end }}"
|
||||
sortField: "{{ .Config.sort }}"
|
||||
sortDirection: "{{ .Config.type }}"
|
||||
perPage: 100
|
||||
|
||||
keywordsfilters:
|
||||
- name: re_replace
|
||||
args: ["\\.", " "]
|
||||
|
||||
rows:
|
||||
selector: data
|
||||
attribute: attributes
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: category_id
|
||||
title_optional:
|
||||
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
|
||||
genre:
|
||||
selector: meta.genres
|
||||
filters:
|
||||
- name: re_replace
|
||||
args: ["(?i)(Science Fiction)", "Science_Fiction"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(TV Movie)", "TV_Movie"]
|
||||
- name: replace
|
||||
args: [" & ", "_&_"]
|
||||
description:
|
||||
text: "{{ .Result.genre }}"
|
||||
files:
|
||||
selector: num_file
|
||||
seeders:
|
||||
selector: seeders
|
||||
leechers:
|
||||
selector: leechers
|
||||
grabs:
|
||||
selector: times_completed
|
||||
date:
|
||||
# "created_at": "2021-10-18T00:34:50.000000Z" is returned by Newtonsoft.Json.Linq as 18/10/2021 00:34:50
|
||||
selector: created_at
|
||||
filters:
|
||||
- name: append
|
||||
args: " +00:00" # GMT
|
||||
- name: dateparse
|
||||
args: "MM/dd/yyyy HH:mm:ss zzz"
|
||||
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 False, True
|
||||
selector: double_upload
|
||||
case:
|
||||
False: 1 # normal
|
||||
True: 2 # double
|
||||
# global MR is 0.4 but torrents must be seeded for 7 days regardless of ratio
|
||||
# minimumratio:
|
||||
# text: 0.4
|
||||
minimumseedtime:
|
||||
# 3 days (as seconds = 3 x 24 x 60 x 60)
|
||||
text: 259200
|
||||
title_filename:
|
||||
selector: "files[0].name"
|
||||
optional: true
|
||||
title:
|
||||
text: "{{ if and (.Config.single_file_release_use_filename) (eq .Result.files \"1\") (.Result.title_filename) }}{{ .Result.title_filename }}{{ else }}{{ .Result.title_optional }}{{ end }}"
|
||||
# json UNIT3D 8.0.1
|
186
config/prowlarr/Definitions/classix.yml
Normal file
186
config/prowlarr/Definitions/classix.yml
Normal file
|
@ -0,0 +1,186 @@
|
|||
---
|
||||
id: classix
|
||||
name: Classix
|
||||
description: "Classix is a Private Torrent Tracker for classic MOVIES / TV / GENERAL"
|
||||
language: en-US
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- http://classix-unlimited.co.uk/ # site does not support https ERR_CONNECTION_CLOSED
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 59, cat: PC/0day, desc: "Apps: Movies: Misc"}
|
||||
- {id: 55, cat: PC/0day, desc: "Apps: Graphics Editing GNU/Linux"}
|
||||
- {id: 53, cat: PC/0day, desc: "Apps: Apps DVD/Blu-Ray Copy Mac"}
|
||||
- {id: 57, cat: PC/0day, desc: "Apps: DVD/Blu-Ray Copy GNU/Linux"}
|
||||
- {id: 51, cat: PC/0day, desc: "Apps: Graphics Editing Mac"}
|
||||
- {id: 58, cat: PC/0day, desc: "Apps: Music Editing & Recording GNU/"}
|
||||
- {id: 52, cat: PC/0day, desc: "Apps: Apps DVD Editing Mac"}
|
||||
- {id: 56, cat: PC/0day, desc: "Apps: DVD Editing GNU/Linux"}
|
||||
- {id: 54, cat: PC/0day, desc: "Apps: Music Editing & Recording Mac"}
|
||||
- {id: 18, cat: PC/0day, desc: "Apps: Graphics Editing PC"}
|
||||
- {id: 19, cat: PC/0day, desc: "Apps: DVD Editing PC"}
|
||||
- {id: 20, cat: PC/0day, desc: "Apps: DVD/Blu-Ray Copying PC"}
|
||||
- {id: 21, cat: PC/0day, desc: "Apps: Music Editing & Recording PC"}
|
||||
- {id: 66, cat: Other, desc: "grumpyman: pending torrents"}
|
||||
- {id: 67, cat: Books/EBook, desc: "Media: pdf"}
|
||||
- {id: 49, cat: Movies/HD, desc: "Movies: HD-Compressed Or Stripped"}
|
||||
- {id: 47, cat: Movies/Other, desc: "Movies: Covers & Artwork"}
|
||||
- {id: 48, cat: Movies/SD, desc: "Movies: DVD-Compressed Or Stripped"}
|
||||
- {id: 1, cat: Movies/DVD, desc: "Movies: DVD-Untouched"}
|
||||
- {id: 50, cat: Movies, desc: "Movies: Made For TV"}
|
||||
- {id: 2, cat: Movies/SD, desc: "Movies: Divx/Xvid/Avi"}
|
||||
- {id: 60, cat: Movies/HD, desc: "Movies: HD-mkv/mts"}
|
||||
- {id: 65, cat: Movies/Foreign, desc: "Movies: Movies - w/additional lang/sub"}
|
||||
- {id: 42, cat: Movies/HD, desc: "Movies: HD-Untouched"}
|
||||
- {id: 3, cat: Movies/SD, desc: "Movies: SVCD/VCD"}
|
||||
- {id: 71, cat: Movies/UHD, desc: "Movies: 4K-Untouched"}
|
||||
- {id: 4, cat: Movies/Other, desc: "Movies: Other"}
|
||||
- {id: 22, cat: Audio/MP3, desc: "Music: MP3"}
|
||||
- {id: 23, cat: Audio/Lossless, desc: "Music: Lossless"}
|
||||
- {id: 24, cat: Audio/Video, desc: "Music: DVD"}
|
||||
- {id: 70, cat: Audio/Video, desc: "Music: HD"}
|
||||
- {id: 25, cat: Audio/Video, desc: "Music: Video"}
|
||||
- {id: 27, cat: Audio/Other, desc: "Music: Other"}
|
||||
- {id: 63, cat: Other, desc: "Other: Educational/Instructional"}
|
||||
- {id: 61, cat: Books/EBook, desc: "Other: Related Material"}
|
||||
- {id: 37, cat: Other, desc: "Other: Images"}
|
||||
- {id: 62, cat: TV, desc: "TV: Mini-Series"}
|
||||
- {id: 64, cat: TV/Other, desc: "TV: Covers & Art Work"}
|
||||
- {id: 69, cat: TV/SD, desc: "TV: Series - Compressed"}
|
||||
- {id: 5, cat: TV/SD, desc: "TV: Series: DVD"}
|
||||
- {id: 73, cat: TV/HD, desc: "TV: Complete Series HD"}
|
||||
- {id: 72, cat: TV/SD, desc: "TV: Complete Series DVD"}
|
||||
- {id: 41, cat: TV/HD, desc: "TV: Series: HD"}
|
||||
- {id: 74, cat: TV, desc: "TV: Series Compilation: DVD or HD"}
|
||||
- {id: 6, cat: TV/SD, desc: "TV: Divx/Xvid/AVI"}
|
||||
- {id: 7, cat: TV/SD, desc: "TV: SVCD/VCD"}
|
||||
- {id: 68, cat: TV, desc: "TV: .mkv"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
music-search: [q]
|
||||
book-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: info_free
|
||||
type: info
|
||||
label: About Freeleech at Classix
|
||||
default: This appears to only be uploads by the admin <b>grumpyman57</b>.
|
||||
- name: sort
|
||||
type: select
|
||||
label: Sort requested from site
|
||||
default: id
|
||||
options:
|
||||
id: 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: account-login.php
|
||||
method: post
|
||||
inputs:
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
error:
|
||||
- selector: div.myContent:contains("Access Denied")
|
||||
test:
|
||||
path: index.php
|
||||
selector: a[href="account-logout.php"]
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: torrents-search.php
|
||||
inputs:
|
||||
# category search returns results from unrelated categories
|
||||
# $raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
|
||||
search: "{{ .Keywords }}"
|
||||
cat: 0
|
||||
# 0 incldead, 1 active, 2 dead
|
||||
incldead: 0
|
||||
# 0 all, 1 notfree, 2 onlyfree
|
||||
freeleech: "{{ if .Config.freeleech }}2{{ else }}0{{ end }}"
|
||||
# 0 all, 1 english, etc
|
||||
lang: 0
|
||||
sort: "{{ .Config.sort }}"
|
||||
order: "{{ .Config.type }}"
|
||||
# does not support imdbid search and does not return imdb link in results
|
||||
|
||||
keywordsfilters:
|
||||
- name: re_replace
|
||||
args: ["(\\w+)", "+$1"] # prepend + to each word
|
||||
|
||||
rows:
|
||||
selector: table > tbody > tr:has(a[href^="torrents.php?cat="])
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: a[href^="torrents.php?cat="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: cat
|
||||
title:
|
||||
selector: a[href^="torrents-details.php?id="]
|
||||
details:
|
||||
selector: a[href^="torrents-details.php?id="]
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href^="download.php?id="]
|
||||
attribute: href
|
||||
poster:
|
||||
selector: a[href^="torrents-details.php?id="]
|
||||
attribute: onmouseover
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "src=(.+?)>"
|
||||
date:
|
||||
selector: a[href^="torrents-details.php?id="]
|
||||
attribute: onmouseover
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "Date Added: </b>(\\d{2}-\\d{2}-\\d{4})<br />"
|
||||
- name: dateparse
|
||||
args: "MM-dd-yyyy"
|
||||
size:
|
||||
selector: td:nth-child(7)
|
||||
seeders:
|
||||
selector: td:nth-child(8)
|
||||
leechers:
|
||||
selector: td:nth-child(9)
|
||||
genre:
|
||||
selector: a[href^="torrents.php?gen="]
|
||||
description:
|
||||
text: "{{ .Result.genre }}"
|
||||
downloadvolumefactor:
|
||||
# returned results not marked as freeleech
|
||||
text: "{{ if .Config.freeleech }}0{{ else }}1{{ end }}"
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
minimumratio:
|
||||
text: 1.0
|
||||
minimumseedtime:
|
||||
# 2 day (as seconds = 2 x 24 x 60 x 60)
|
||||
text: 172800
|
||||
# engine TorrentTrader v2-svn
|
181
config/prowlarr/Definitions/coastalcrew.yml
Normal file
181
config/prowlarr/Definitions/coastalcrew.yml
Normal file
|
@ -0,0 +1,181 @@
|
|||
---
|
||||
id: coastalcrew
|
||||
name: Coastal-Crew
|
||||
description: "Coastal-Crew is a GERMAN Private Torrent Tracker for MOVIES / TV / GENERAL"
|
||||
language: de-DE
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://coastal-crew.bounceme.net/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 30, cat: TV/Anime, desc: "Filme - Animie"}
|
||||
- {id: 28, cat: Movies/BluRay, desc: "Filme - Bluray"}
|
||||
- {id: 31, cat: Movies/Other, desc: "Filme - Bollywood"}
|
||||
- {id: 77, cat: TV/Documentary, desc: "Filme - DokusHD"}
|
||||
- {id: 32, cat: Movies/DVD, desc: "Filme - DVD"}
|
||||
- {id: 33, cat: Movies/HD, desc: "Filme - HD"}
|
||||
- {id: 34, cat: Movies, desc: "Filme - Klassiker"}
|
||||
- {id: 35, cat: Movies, desc: "Filme - Pack"}
|
||||
- {id: 36, cat: Movies/SD, desc: "Filme - SD"}
|
||||
- {id: 37, cat: Movies/UHD, desc: "Filme - UHD"}
|
||||
- {id: 38, cat: Movies/HD, desc: "Filme - x264"}
|
||||
- {id: 39, cat: Audio, desc: "Musik - Alben"}
|
||||
- {id: 72, cat: Audio, desc: "Musik - Charts"}
|
||||
- {id: 40, cat: Audio, desc: "Musik - Diskografie"}
|
||||
- {id: 75, cat: Audio/Lossless, desc: "Musik - Flac"}
|
||||
- {id: 41, cat: Audio/Audiobook, desc: "Musik - Hoerbuch"}
|
||||
- {id: 74, cat: Audio/Other, desc: "Musik - Kids"}
|
||||
- {id: 42, cat: Audio, desc: "Musik - Mixe"}
|
||||
- {id: 66, cat: Audio, desc: "Musik - Pack"}
|
||||
- {id: 70, cat: Audio, desc: "Musik - Sampler Deu."}
|
||||
- {id: 71, cat: Audio, desc: "Musik - Sampler Int."}
|
||||
- {id: 76, cat: Audio/Other, desc: "Musik - Soundtrack"}
|
||||
- {id: 44, cat: Audio/Video, desc: "Musik - Video"}
|
||||
- {id: 45, cat: PC, desc: "Programme - Linux"}
|
||||
- {id: 48, cat: PC/Mac, desc: "Programme - Mac"}
|
||||
- {id: 49, cat: PC/0day, desc: "Programme - Windows"}
|
||||
- {id: 65, cat: TV, desc: "Serien - Allgemein"}
|
||||
- {id: 50, cat: TV/Documentary, desc: "Serien - Dokus"}
|
||||
- {id: 51, cat: TV, desc: "Serien - Klassiker"}
|
||||
- {id: 52, cat: TV, desc: "Serien - Pack"}
|
||||
- {id: 53, cat: TV/Sport, desc: "Serien - Sport"}
|
||||
- {id: 62, cat: Books/EBook, desc: "EBook"}
|
||||
- {id: 63, cat: Movies, desc: "Fuer Unsere Kleinsten"}
|
||||
- {id: 64, cat: PC/Mobile-Other, desc: "Handy-Stuff"}
|
||||
- {id: 60, cat: Other, desc: "Sonstiges"}
|
||||
- {id: 69, cat: Books/Mags, desc: "Zeitung"}
|
||||
- {id: 54, cat: PC/Mobile-Other, desc: "Spiele - Handy"}
|
||||
- {id: 55, cat: Console, desc: "Spiele - Konsolen"}
|
||||
- {id: 57, cat: PC/Games, desc: "Spiele - Mac / Linux / PC"}
|
||||
- {id: 58, cat: Console/Other, desc: "Spiele - Wimmel"}
|
||||
- {id: 59, cat: XXX, desc: "XXX"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
music-search: [q]
|
||||
book-search: [q]
|
||||
|
||||
settings:
|
||||
- name: username
|
||||
type: text
|
||||
label: Username
|
||||
- name: password
|
||||
type: password
|
||||
label: Password
|
||||
- name: freeleech
|
||||
type: checkbox
|
||||
label: Filter FreeLeech only
|
||||
default: false
|
||||
- name: onlyupload
|
||||
type: checkbox
|
||||
label: Filter OnlyUpload only
|
||||
default: false
|
||||
- name: info_free
|
||||
type: info
|
||||
label: About Freeleech and OnlyUpload at Coastal Crew
|
||||
default: "<ul><li>FreeLeech are torrents where neither the download or upload is counted. (On the Prowlarr search results page these are tagged as NoUpload).</li><li>OnlyUpload are torrents where download is not counted but upload is. Good for building your Ratio up. (On the Prowlarr search results page these are tagged as Freeleech).</li></ul>"
|
||||
- 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_tpp
|
||||
type: info
|
||||
label: Results Per Page
|
||||
default: For best results, change the <b>Torrents pro Seite:</b> setting to <b>100</b> on your Control Panel. The default is <i>15</i>.
|
||||
- name: info_activity
|
||||
type: info
|
||||
label: Account Inactivity
|
||||
default: "If you do not log in, your account will be automatically deleted after 28 days."
|
||||
|
||||
login:
|
||||
path: takelogin.php
|
||||
method: post
|
||||
inputs:
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
error:
|
||||
- selector: .tablea:contains("Fehler")
|
||||
test:
|
||||
path: index.php
|
||||
selector: a[href="logout.php"]
|
||||
|
||||
search:
|
||||
# https://coastal-crew.bounceme.net/browse.php?showsearch=1&c62=1&c33=1&search=&incldead=1&orderby=added&sort=desc
|
||||
path: browse.php
|
||||
inputs:
|
||||
$raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
|
||||
showsearch: 1
|
||||
search: "{{ .Keywords }}"
|
||||
# 0 active, 1 all, 2 dead
|
||||
incldead: 1
|
||||
orderby: "{{ .Config.sort }}"
|
||||
sort: "{{ .Config.type }}"
|
||||
# site does not support imdbid search from the browse.php page or return imdb links in results
|
||||
|
||||
rows:
|
||||
selector: "table.tableinborder[cellspacing=\"1\"][cellpadding=\"0\"]:not(:has(a[href=\"index.php\"])) > tbody > tr:has(a[href^=\"download.php\"]){{ if .Config.onlyupload }}:has(img[src=\"pic/oupic.gif\"]){{ else }}{{ end }}"
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: a[href^="browse.php?cat="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: cat
|
||||
title:
|
||||
selector: a[href^="details.php"]
|
||||
details:
|
||||
selector: a[href^="details.php"]
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href^="download.php"]
|
||||
attribute: href
|
||||
poster:
|
||||
selector: img[id="img-1"]
|
||||
attribute: src
|
||||
size:
|
||||
selector: td.tablea table tbody tr:nth-child(2) td:nth-child(1) b:nth-child(1)
|
||||
files:
|
||||
selector: td.tablea table tbody tr:nth-child(2) td:nth-child(1) b:nth-child(2)
|
||||
seeders:
|
||||
selector: td.tablea table tbody tr:nth-child(2) td:nth-child(2) b:nth-child(1)
|
||||
leechers:
|
||||
selector: td.tablea table tbody tr:nth-child(2) td:nth-child(2) > b:nth-of-type(2)
|
||||
grabs:
|
||||
selector: td.tablea table tbody tr:nth-child(2) td:nth-child(3) b:nth-child(1)
|
||||
date:
|
||||
selector: td.tablea table tbody tr:nth-child(2) td:nth-child(5)
|
||||
filters:
|
||||
- name: append
|
||||
args: " +01:00" # CET
|
||||
- name: replace
|
||||
args: ["\xA0", " "]
|
||||
- name: dateparse
|
||||
args: "dd.MM.yyyy HH:mm:ss zzz"
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
img[src="pic/oupic.gif"]: 0 # only upload is counted
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
case:
|
||||
img[src="pic/freeleech.gif"]: 0 # nothing is counted
|
||||
"*": 1
|
||||
minimumratio:
|
||||
text: 0.7
|
||||
# engine n/a
|
105
config/prowlarr/Definitions/comicat.yml
Normal file
105
config/prowlarr/Definitions/comicat.yml
Normal file
|
@ -0,0 +1,105 @@
|
|||
---
|
||||
id: comicat
|
||||
name: comicat
|
||||
description: "comicat is a CHINESE Public tracker for Anime / Hentai / Manga"
|
||||
language: zh-CN
|
||||
type: public
|
||||
encoding: UTF-8
|
||||
requestDelay: 2
|
||||
links:
|
||||
- https://www.comicat.org/
|
||||
|
||||
settings: []
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 1, cat: TV/Anime, desc: "动画(Anime)"}
|
||||
- {id: 2, cat: Books/Comics, desc: "漫画(Manga)"}
|
||||
- {id: 3, cat: Audio, desc: "音乐(Music)"}
|
||||
- {id: 4, cat: TV/Anime, desc: "周边(Peripheral)"}
|
||||
- {id: 5, cat: Other, desc: "其它(Other)"}
|
||||
- {id: 6, cat: TV/Anime, desc: "Raw"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
music-search: [q]
|
||||
book-search: [q]
|
||||
|
||||
search:
|
||||
paths:
|
||||
# https://www.comicat.org/ (latest)
|
||||
# https://www.comicat.org/search.php?keyword=720p+2020 (search)
|
||||
# sort_id: filters by a single category, multi cats is not supported so we cannot use it.
|
||||
- path: "{{ if .Keywords }}/search.php?keyword={{ .Keywords }}{{ else }}{{ end }}"
|
||||
- path: "{{ if .Keywords }}/search.php?keyword={{ .Keywords }}&page=2{{ else }}2.html{{ end }}"
|
||||
|
||||
rows:
|
||||
selector: tr[class^="alt"]:has(a[href^="sort"])
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: a[href^="sort"]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "-(\\d)-"
|
||||
title:
|
||||
selector: a[href^="show"]
|
||||
details:
|
||||
selector: a[href^="show"]
|
||||
attribute: href
|
||||
infohash:
|
||||
selector: a[href^="show"]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "-(\\w+).html"
|
||||
size:
|
||||
selector: td:nth-child(4)
|
||||
grabs:
|
||||
selector: td:nth-child(7) span
|
||||
date_year:
|
||||
selector: td:nth-child(1):contains("/")
|
||||
optional: true
|
||||
filters:
|
||||
- name: append
|
||||
args: " +08:00" # CST (China)
|
||||
- name: dateparse
|
||||
args: "yyyy/MM/dd zzz"
|
||||
date_today:
|
||||
selector: td:nth-child(1):contains("今天")
|
||||
optional: true
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["今天", ""]
|
||||
- name: append
|
||||
args: " +08:00" # CST (China)
|
||||
- name: timeparse
|
||||
args: "HH:mm zzz"
|
||||
date_yday:
|
||||
selector: td:nth-child(1):contains("昨天")
|
||||
optional: true
|
||||
filters:
|
||||
- name: re_replace
|
||||
args: [".+", "yesterday"]
|
||||
- name: fuzzytime
|
||||
date_ago:
|
||||
selector: td:nth-child(1):contains("前天")
|
||||
optional: true
|
||||
filters:
|
||||
- name: re_replace
|
||||
args: [".+", "2 days"]
|
||||
- name: timeago
|
||||
date:
|
||||
text: "{{ if or .Result.date_year .Result.date_today .Result.date_yday .Result.date_ago }}{{ or .Result.date_year .Result.date_today .Result.date_yday .Result.date_ago }}{{ else }}now{{ end }}"
|
||||
seeders:
|
||||
selector: td:nth-child(5) span
|
||||
leechers:
|
||||
selector: td:nth-child(6) span
|
||||
downloadvolumefactor:
|
||||
text: 0
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
# engine n/a
|
84
config/prowlarr/Definitions/concen.yml
Normal file
84
config/prowlarr/Definitions/concen.yml
Normal file
|
@ -0,0 +1,84 @@
|
|||
---
|
||||
id: concen
|
||||
name: ConCen
|
||||
description: "ConCen (Conspiracy Central) is a Private conspiracy related torrent index"
|
||||
language: en-US
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://concen.org/
|
||||
|
||||
caps:
|
||||
categories:
|
||||
1: Other
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
book-search: [q]
|
||||
|
||||
settings:
|
||||
- name: sort
|
||||
type: select
|
||||
label: Sort requested from site
|
||||
default: created
|
||||
options:
|
||||
created: created
|
||||
seeds: seeders
|
||||
size: size
|
||||
title: title
|
||||
- name: type
|
||||
type: select
|
||||
label: Order requested from site
|
||||
default: desc
|
||||
options:
|
||||
desc: desc
|
||||
asc: asc
|
||||
|
||||
search:
|
||||
paths:
|
||||
# https://concen.org/torrents?title_op=allwords&title=cbc+national&title_1_op=not&title_1=&seeds=1
|
||||
- path: torrents
|
||||
inputs:
|
||||
title_op: allwords
|
||||
title: "{{ .Keywords }}"
|
||||
title_1_op: not
|
||||
title_1: ""
|
||||
seeds: All
|
||||
order: "{{ .Config.sort }}"
|
||||
sort: "{{ .Config.type }}"
|
||||
|
||||
rows:
|
||||
selector: table > tbody > tr:has(td.views-field-title)
|
||||
|
||||
fields:
|
||||
title:
|
||||
selector: td.views-field-title a
|
||||
category:
|
||||
text: 1
|
||||
details:
|
||||
selector: td.views-field-title a
|
||||
attribute: href
|
||||
download:
|
||||
selector: td.views-field-field-torrent a
|
||||
attribute: href
|
||||
magnet:
|
||||
selector: td.views-field-name a
|
||||
attribute: href
|
||||
date:
|
||||
# 3 hours 27 min
|
||||
selector: td.views-field-created
|
||||
size:
|
||||
selector: td.views-field-size
|
||||
seeders:
|
||||
selector: td.views-field-seeds
|
||||
leechers:
|
||||
selector: td.views-field-peers
|
||||
grabs:
|
||||
selector: td.views-field-completed
|
||||
downloadvolumefactor:
|
||||
text: 0
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
# Drupal 7
|
132
config/prowlarr/Definitions/concertos.yml
Normal file
132
config/prowlarr/Definitions/concertos.yml
Normal file
|
@ -0,0 +1,132 @@
|
|||
---
|
||||
id: concertos
|
||||
name: Concertos
|
||||
description: "Concertos - Private site for Live Concerts with Strict Quality Control"
|
||||
language: en-US
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://concertos.live/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 1, cat: TV, desc: "Live Concert"}
|
||||
- {id: 2, cat: Audio/Video, desc: "Music Video"}
|
||||
- {id: 4, cat: TV, desc: "Music Documentary"}
|
||||
- {id: 5, cat: Audio/Lossless, desc: "Pure Audio"}
|
||||
- {id: 7, cat: TV, desc: "Opera"}
|
||||
- {id: 8, cat: TV, desc: "Musical"}
|
||||
- {id: 9, cat: Audio, desc: "Podcast"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, imdbid]
|
||||
movie-search: [q, imdbid]
|
||||
music-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: sort
|
||||
type: select
|
||||
label: Sort requested from site
|
||||
default: created_at
|
||||
options:
|
||||
created_at: created
|
||||
seeders: seeders
|
||||
size: size
|
||||
- name: type
|
||||
type: select
|
||||
label: Order requested from site
|
||||
default: desc
|
||||
options:
|
||||
desc: desc
|
||||
asc: asc
|
||||
|
||||
login:
|
||||
path: login
|
||||
method: form
|
||||
form: form[action$="/login"]
|
||||
inputs:
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
remember: on
|
||||
selectorinputs:
|
||||
_token:
|
||||
selector: input[name="_token"]
|
||||
attribute: value
|
||||
error:
|
||||
- selector: form[action$="/login"] .text-red
|
||||
# test:
|
||||
# path: /
|
||||
# selector: a[href$="/logout"]
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: torrents
|
||||
inputs:
|
||||
$raw: "{{ range .Categories }}categories[]={{.}}&{{end}}"
|
||||
title: "{{ if .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}" # for dashboard imdbid search
|
||||
imdb: "{{ .Query.IMDBIDShort }}"
|
||||
freeleech: "{{ if .Config.freeleech }}on{{ else }}{{ end }}"
|
||||
order_by: "{{ .Config.sort }}"
|
||||
direction: "{{ .Config.type }}"
|
||||
|
||||
rows:
|
||||
selector: table > tbody > tr
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: a[href*="?category_"]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "category_(\\d+)"
|
||||
title:
|
||||
selector: a[href*="/torrent/"]
|
||||
details:
|
||||
selector: a[href*="/torrent/"]
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href*="/torrent/"]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: append
|
||||
args: "/download"
|
||||
size:
|
||||
selector: td.torrents__size
|
||||
date:
|
||||
selector: td.torrents__age
|
||||
seeders:
|
||||
selector: td:nth-last-child(3)
|
||||
leechers:
|
||||
selector: td:nth-last-child(2)
|
||||
grabs:
|
||||
selector: td:nth-last-child(1)
|
||||
imdbid:
|
||||
selector: a[href*="imdb.com/title/tt"]
|
||||
attribute: href
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
i.fa-star: 0 # Freeleech
|
||||
i.fa-certificate: 0 # Featured
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
case:
|
||||
i.fa-certificate: 2 # Featured
|
||||
i.fa-gem: 2 # Double Upload
|
||||
"*": 1
|
||||
minimumratio:
|
||||
text: 1.0
|
||||
minimumseedtime:
|
||||
# 7 day (as seconds = 7 x 24 x 60 x 60)
|
||||
text: 604800
|
||||
# UNIT3D
|
150
config/prowlarr/Definitions/cpabien.yml
Normal file
150
config/prowlarr/Definitions/cpabien.yml
Normal file
|
@ -0,0 +1,150 @@
|
|||
---
|
||||
id: cpasbien
|
||||
name: cpasbien
|
||||
description: "cpasbien is a FRENCH Public site for TV / MOVIES / GENERAL"
|
||||
language: fr-FR
|
||||
type: public
|
||||
encoding: UTF-8
|
||||
followredirect: true
|
||||
links:
|
||||
- https://cpasbien-vf.pics/
|
||||
legacylinks:
|
||||
- https://www.cpasbiens.cz/
|
||||
- https://www.cpasbiens.bz/
|
||||
- https://www.cpasbien.vg/
|
||||
- https://www.cpasbien.lol/
|
||||
- https://www.gktorrent.biz/
|
||||
- https://vww.cpasbien-fr.fr/
|
||||
- https://wvw.cpasbien-fr.fr/
|
||||
- https://wwwv.cpasbien-fr.fr/
|
||||
- https://www2.cpasbien-fr.fr/
|
||||
- https://www.cpasbien-fr.nz/
|
||||
- https://vwwvwvwvvw.cpasbien-fr.nz/
|
||||
- https://cpasbiens3.fr/
|
||||
- https://labastidevivante.fr/
|
||||
- https://cpasbiens911.fr/
|
||||
- https://jardattraction.fr/
|
||||
- https://cpasbien-vf.fr/
|
||||
|
||||
caps:
|
||||
categories:
|
||||
Other: Other
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
|
||||
settings:
|
||||
- name: flaresolverr
|
||||
type: info
|
||||
label: FlareSolverr
|
||||
default: This site may use Cloudflare DDoS Protection, therefore Prowlarr requires <a href="https://wiki.servarr.com/prowlarr/faq#can-i-use-flaresolverr-indexers" target="_blank" rel="noreferrer">FlareSolverr</a> to access it.
|
||||
- name: info_8000
|
||||
type: info
|
||||
label: About cpasbien Categories
|
||||
default: cpasbien does not return categories in its search results. To sync to your apps, include 8000(Other) in your Apps' Sync Categories.
|
||||
- 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 and SUBFRENCH with ENGLISH
|
||||
default: false
|
||||
|
||||
download:
|
||||
selectors:
|
||||
- selector: a[href^="magnet:?xt="]
|
||||
attribute: href
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: "{{ if .Keywords }}index.php?do=search&subaction=search{{ else }}{{ end }}"
|
||||
method: post
|
||||
# postData is mandatory FlareSolverr/FlareSolverr#789
|
||||
allowEmptyInputs: true
|
||||
inputs:
|
||||
story: "{{ if .Keywords }}{{ .Keywords }}{{ else }}{{ end }}"
|
||||
# does not support imdbid search and does not return imdb link in results.
|
||||
keywordsfilters:
|
||||
# if searching for season packs with S01 to saison 1 #9712
|
||||
- name: re_replace
|
||||
args: ["(?i)\\b(?:S0?)(\\d{1,3})\\b", "saison $1"]
|
||||
|
||||
rows:
|
||||
selector: div#gauche > table > tbody > tr:has(a), div#dle-content > a.cover2
|
||||
|
||||
fields:
|
||||
category:
|
||||
text: Other
|
||||
title_phase1_title:
|
||||
selector: a
|
||||
title_phase1_url:
|
||||
selector: a
|
||||
attribute: href
|
||||
filters:
|
||||
- name: regexp
|
||||
args: torrents\d+\/(.+?)\/
|
||||
- name: replace
|
||||
args: ["-", " "]
|
||||
title_phase1:
|
||||
text: "{{ if .Result.title_phase1_title }}{{ .Result.title_phase1_title }}{{ else }}{{ .Result.title_phase1_url }}{{ end }}"
|
||||
filters:
|
||||
- name: re_replace
|
||||
args: ["(?i)\\b(FRENCH|MULTI|TRUEFRENCH|VOSTFR|SUBFRENCH)\\b(.+?)(\\b(19|20\\d{2})\\b)$", "$3 $1$2"]
|
||||
title_vostfr:
|
||||
text: "{{ .Result.title_phase1 }}"
|
||||
filters:
|
||||
- name: re_replace
|
||||
args: ["(?i)\\b(vostfr|subfrench)\\b", "ENGLISH"]
|
||||
title_phase2:
|
||||
text: "{{ if .Config.vostfr }}{{ .Result.title_vostfr }}{{ else }}{{ .Result.title_phase1 }}{{ end }}"
|
||||
title_multilang:
|
||||
text: "{{ .Result.title_phase2 }}"
|
||||
filters:
|
||||
- name: re_replace
|
||||
args: ["(?i)\\b(MULTI(?!.*(?:FRENCH|ENGLISH|VOSTFR)))\\b", "{{ .Config.multilanguage }}"]
|
||||
title:
|
||||
text: "{{ if .Config.multilang }}{{ .Result.title_multilang }}{{ else }}{{ .Result.title_phase2 }}{{ end }}"
|
||||
details:
|
||||
selector: a
|
||||
attribute: href
|
||||
download:
|
||||
selector: a
|
||||
attribute: href
|
||||
poster:
|
||||
selector: img
|
||||
attribute: src
|
||||
size:
|
||||
selector: div.poid
|
||||
optional: true
|
||||
default: "512 MB"
|
||||
date:
|
||||
text: now
|
||||
seeders_optional:
|
||||
selector: div.up
|
||||
optional: true
|
||||
seeders:
|
||||
text: "{{ if .Result.seeders_optional }}{{ .Result.seeders_optional }}{{ else }}0{{ end }}"
|
||||
leechers_optional:
|
||||
selector: div.down
|
||||
optional: true
|
||||
leechers:
|
||||
text: "{{ if .Result.leechers_optional }}{{ .Result.leechers_optional }}{{ else }}0{{ end }}"
|
||||
downloadvolumefactor:
|
||||
text: 0
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
# engine n/a
|
139
config/prowlarr/Definitions/cpasbienclone.yml
Normal file
139
config/prowlarr/Definitions/cpasbienclone.yml
Normal file
|
@ -0,0 +1,139 @@
|
|||
---
|
||||
id: cpasbienclone
|
||||
name: cpasbien clone
|
||||
description: "cpasbien clone is a FRENCH Public site for TV / MOVIES / GENERAL"
|
||||
language: fr-FR
|
||||
type: public
|
||||
encoding: UTF-8
|
||||
followredirect: true
|
||||
links:
|
||||
- https://www.cpasbien.tw/
|
||||
legacylinks:
|
||||
- https://www1.cpasbiens.ws/
|
||||
- https://www2.cpasbiens.ws/
|
||||
- https://cpasbiens.cm/
|
||||
- https://www1.cpasbiens.cm/
|
||||
- https://wwv.cpasbien.to/
|
||||
- https://cpasbiens.black-mirror.xyz/
|
||||
- https://cpasbiens.unblocked.casa/
|
||||
- https://cpasbiens.proxyportal.fun/
|
||||
- https://cpasbiens.uk-unblock.xyz/
|
||||
- https://cpasbiens.ind-unblock.xyz/
|
||||
- https://www.cpasbien.gg/
|
||||
- https://www.cpasbien.vip/
|
||||
- https://cpasbien.to/
|
||||
|
||||
caps:
|
||||
categories:
|
||||
Other: Other
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
allowrawsearch: true
|
||||
|
||||
settings:
|
||||
- name: info_8000
|
||||
type: info
|
||||
label: About cpasbienclone Categories
|
||||
default: cpasbienclone does not return categories in its search results. To sync to your apps, include 8000(Other) in your Apps' Sync Categories.
|
||||
- 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 and SUBFRENCH with ENGLISH
|
||||
default: false
|
||||
- name: sort
|
||||
type: select
|
||||
label: Sort requested from site (Works only for searches with Keywords)
|
||||
default: trie-date-d
|
||||
options:
|
||||
trie-date-d: created desc
|
||||
trie-date-a: created asc
|
||||
trie-seeds-d: seeders desc
|
||||
trie-seeds-a: seeders asc
|
||||
trie-poid-d: size desc
|
||||
trie-poid-a: size asc
|
||||
trie-nom-d: title desc
|
||||
trie-nom-a: title asc
|
||||
|
||||
download:
|
||||
before:
|
||||
# request target
|
||||
path: "download_magnet?id={{ re_replace .DownloadUri.AbsoluteUri \"^.*-(\\d+)\\.html\" \"$1\" }}"
|
||||
selectors:
|
||||
- selector: body
|
||||
usebeforeresponse: true
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: "{{ if .Keywords }}search_torrent/{{ .Keywords }}.html,{{ .Config.sort }}{{ else }}home/{{ end }}"
|
||||
|
||||
rows:
|
||||
selector: table.table-corps > tbody > tr:has(a)
|
||||
|
||||
fields:
|
||||
category:
|
||||
text: Other
|
||||
title_phase1:
|
||||
selector: a
|
||||
filters:
|
||||
- name: re_replace
|
||||
args: ["(?i)\\b(FRENCH|MULTI|TRUEFRENCH|VOSTFR|SUBFRENCH)\\b(.+?)(\\b(19|20\\d{2})\\b)$", "$3 $1$2"]
|
||||
title_vostfr:
|
||||
text: "{{ .Result.title_phase1 }}"
|
||||
filters:
|
||||
- name: re_replace
|
||||
args: ["(?i)\\b(vostfr|subfrench)\\b", "ENGLISH"]
|
||||
title_phase2:
|
||||
text: "{{ if .Config.vostfr }}{{ .Result.title_vostfr }}{{ else }}{{ .Result.title_phase1 }}{{ end }}"
|
||||
title_multilang:
|
||||
text: "{{ .Result.title_phase2 }}"
|
||||
filters:
|
||||
- name: re_replace
|
||||
args: ["(?i)\\b(MULTI(?!.*(?:FRENCH|ENGLISH|VOSTFR)))\\b", "{{ .Config.multilanguage }}"]
|
||||
title:
|
||||
text: "{{ if .Config.multilang }}{{ .Result.title_multilang }}{{ else }}{{ .Result.title_phase2 }}{{ end }}"
|
||||
details:
|
||||
selector: a
|
||||
attribute: href
|
||||
download:
|
||||
selector: a
|
||||
attribute: href
|
||||
size:
|
||||
selector: div.poid
|
||||
filters:
|
||||
- name: re_replace
|
||||
args: ["(\\w)o", "$1B"]
|
||||
# keyword search returns nnnnn.n in MB but without unit indicator
|
||||
- name: re_replace
|
||||
args: ["(\\d+\\.\\d)$", "$1MB"]
|
||||
date:
|
||||
text: now
|
||||
seeders:
|
||||
selector: div.up
|
||||
optional: true
|
||||
default: 0
|
||||
leechers:
|
||||
selector: div.down
|
||||
optional: true
|
||||
default: 0
|
||||
downloadvolumefactor:
|
||||
text: 0
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
# engine n/a
|
195
config/prowlarr/Definitions/crabpt.yml
Normal file
195
config/prowlarr/Definitions/crabpt.yml
Normal file
|
@ -0,0 +1,195 @@
|
|||
---
|
||||
id: crabpt
|
||||
name: CrabPT (蟹黄堡)
|
||||
description: "CrabPT (蟹黄堡) is a CHINESE Private Torrent Tracker for MOVIES / TV / GENERAL"
|
||||
language: zh-CN
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://crabpt.vip/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 408, cat: Audio, desc: "音乐"}
|
||||
- {id: 409, cat: Other, desc: "其他"}
|
||||
- {id: 407, cat: TV/Sport, desc: "体育竞技"}
|
||||
- {id: 406, cat: Audio/Video, desc: "MV"}
|
||||
- {id: 403, cat: Movies, desc: "综艺/真人秀"}
|
||||
- {id: 402, cat: TV, desc: "电视剧"}
|
||||
- {id: 405, cat: TV, desc: "动画"}
|
||||
- {id: 404, cat: TV/Anime, desc: "纪录片"}
|
||||
- {id: 401, cat: Movies, desc: "电影"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep, imdbid, doubanid]
|
||||
movie-search: [q, imdbid, doubanid]
|
||||
music-search: [q]
|
||||
book-search: [q]
|
||||
|
||||
settings:
|
||||
- name: username
|
||||
type: text
|
||||
label: Username
|
||||
- name: password
|
||||
type: password
|
||||
label: Password
|
||||
- name: 2facode
|
||||
type: text
|
||||
label: 2FA code
|
||||
- name: info_2fa
|
||||
type: info
|
||||
label: "About 2FA code"
|
||||
default: "Only fill in the <b>2FA code</b> box if you have enabled <b>2FA</b> on the CrabPT Web Site. Otherwise just leave it empty."
|
||||
- name: freeleech
|
||||
type: checkbox
|
||||
label: Search freeleech only
|
||||
default: false
|
||||
- name: sort
|
||||
type: select
|
||||
label: Sort requested from site
|
||||
default: 4
|
||||
options:
|
||||
4: created
|
||||
7: seeders
|
||||
5: size
|
||||
1: title
|
||||
- name: type
|
||||
type: select
|
||||
label: Order requested from site
|
||||
default: desc
|
||||
options:
|
||||
desc: desc
|
||||
asc: asc
|
||||
- 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: login.php
|
||||
method: form
|
||||
form: form[action="takelogin.php"]
|
||||
captcha:
|
||||
type: image
|
||||
selector: img[alt="CAPTCHA"]
|
||||
input: imagestring
|
||||
inputs:
|
||||
secret: ""
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
two_step_code: "{{ .Config.2facode }}"
|
||||
logout: ""
|
||||
securelogin: ""
|
||||
ssl: yes
|
||||
trackerssl: yes
|
||||
error:
|
||||
- selector: td.embedded:has(h2:contains("失败"))
|
||||
test:
|
||||
path: index.php
|
||||
selector: a[href="logout.php"]
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: torrents.php
|
||||
inputs:
|
||||
$raw: "{{ range .Categories }}cat{{.}}=1&{{end}}"
|
||||
search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ end }}{{ if or .Query.IMDBID .Query.DoubanID }} {{ else }}{{ .Keywords }}{{ end }}{{ if .Query.DoubanID }}{{ .Query.DoubanID }}{{ else }}{{ end }}"
|
||||
# 0 incldead, 1 active, 2 dead
|
||||
incldead: 0
|
||||
# 0 all, 1 normal, 2 free, 3 2x, 4 2xfree, 5 50%, 6 2x50%, 7 30%
|
||||
spstate: "{{ if .Config.freeleech }}2{{ else }}0{{ end }}"
|
||||
# 0 title, 1 descr, 3 uploader, 4 imdburl
|
||||
search_area: "{{ if .Query.IMDBID }}4{{ else }}{{ end }}{{ if .Query.DoubanID }}1{{ else }}{{ end }}{{ if or .Query.IMDBID .Query.DoubanID }}{{ else }}0{{ end }}"
|
||||
# 0 AND, 1 OR, 2 exact
|
||||
search_mode: 0
|
||||
sort: "{{ .Config.sort }}"
|
||||
type: "{{ .Config.type }}"
|
||||
notnewword: 1
|
||||
|
||||
rows:
|
||||
selector: table.torrents > tbody > tr:has(a[href^="details.php?id="])
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: a[href^="?cat="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: cat
|
||||
title_default:
|
||||
selector: a[href^="details.php?id="]
|
||||
title:
|
||||
selector: a[title][href^="details.php?id="]
|
||||
attribute: title
|
||||
optional: true
|
||||
default: "{{ .Result.title_default }}"
|
||||
details:
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href^="download.php?id="]
|
||||
attribute: href
|
||||
poster:
|
||||
selector: img[data-src]
|
||||
attribute: data-src
|
||||
imdbid:
|
||||
# site currently only has a badge and rating, the id is not present. just in case a future update.
|
||||
selector: a[href*="imdb.com/title/tt"]
|
||||
attribute: href
|
||||
doubanid:
|
||||
# site currently only has a badge and rating, the id is not present. just in case a future update.
|
||||
selector: a[href*="movie.douban.com/subject/"]
|
||||
attribute: href
|
||||
date_elapsed:
|
||||
# time type: time elapsed (default)
|
||||
selector: td.rowfollow:nth-child(4) > span[title]
|
||||
attribute: title
|
||||
optional: true
|
||||
filters:
|
||||
- name: append
|
||||
args: " +08:00" # CST
|
||||
- name: dateparse
|
||||
args: "yyyy-MM-dd HH:mm:ss zzz"
|
||||
date_added:
|
||||
# time added
|
||||
selector: td.rowfollow:nth-child(4):not(:has(span))
|
||||
optional: true
|
||||
filters:
|
||||
- name: append
|
||||
args: " +08:00" # CST
|
||||
- name: dateparse
|
||||
args: "yyyy-MM-ddHH:mm:ss zzz"
|
||||
date:
|
||||
text: "{{ if or .Result.date_elapsed .Result.date_added }}{{ or .Result.date_elapsed .Result.date_added }}{{ else }}now{{ end }}"
|
||||
size:
|
||||
selector: td.rowfollow:nth-child(5)
|
||||
seeders:
|
||||
selector: td.rowfollow:nth-child(6)
|
||||
leechers:
|
||||
selector: td.rowfollow:nth-child(7)
|
||||
grabs:
|
||||
selector: td.rowfollow:nth-child(8)
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
img.pro_free: 0
|
||||
img.pro_free2up: 0
|
||||
img.pro_50pctdown: 0.5
|
||||
img.pro_50pctdown2up: 0.5
|
||||
img.pro_30pctdown: 0.3
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
case:
|
||||
img.pro_50pctdown2up: 2
|
||||
img.pro_free2up: 2
|
||||
img.pro_2up: 2
|
||||
"*": 1
|
||||
minimumratio:
|
||||
text: 1.0
|
||||
minimumseedtime:
|
||||
# 1 day (as seconds = 24 x 60 x 60)
|
||||
text: 86400
|
||||
description:
|
||||
selector: td.rowfollow:nth-child(2)
|
||||
remove: a, b, font, img, span
|
||||
# NexusPHP v1.8.8 2023-09-25
|
103
config/prowlarr/Definitions/crackingpatching.yml
Normal file
103
config/prowlarr/Definitions/crackingpatching.yml
Normal file
|
@ -0,0 +1,103 @@
|
|||
---
|
||||
id: crackingpatching
|
||||
name: CrackingPatching
|
||||
description: "CrackingPatching is a Public tracker for Software and Apps"
|
||||
language: en-US
|
||||
type: public
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://crackingpatching.com/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: "adobe-software", cat: PC, desc: "Adobe Software"}
|
||||
- {id: "adobe-tools", cat: PC, desc: "Adobe Tools"}
|
||||
- {id: "android", cat: PC/Mobile-Android, desc: "Android"}
|
||||
- {id: "animations-3d-graphics", cat: PC, desc: "Animations/ 3D Graphics"}
|
||||
- {id: "antivirus", cat: PC, desc: "Antivirus"}
|
||||
- {id: "cd-dvd-burners", cat: PC, desc: "CD/ DVD Burners"}
|
||||
- {id: "compression-tools", cat: PC, desc: "Compression Tools"}
|
||||
- {id: "converters", cat: PC, desc: "Converters"}
|
||||
- {id: "crack-serials", cat: PC, desc: "Crack & Serials"}
|
||||
- {id: "downloader", cat: PC, desc: "Downloader"}
|
||||
- {id: "drivers-update", cat: PC, desc: "Drivers Update"}
|
||||
- {id: "games", cat: PC/Games, desc: "Games"}
|
||||
- {id: "home", cat: PC, desc: "Home"}
|
||||
- {id: "idm", cat: PC, desc: "IDM"}
|
||||
- {id: "idm-crack-patch", cat: PC, desc: "IDM Crack/ Patch"}
|
||||
- {id: "ios-mac-os-x-2", cat: PC/Mac, desc: "iOS/ MAC OS X"}
|
||||
- {id: "keygen-loader", cat: PC, desc: "Keygen / Loader"}
|
||||
- {id: "keygen-serial", cat: PC, desc: "KeyGen / Serial"}
|
||||
- {id: "microsoft-office", cat: PC, desc: "Microsoft Office"}
|
||||
- {id: "multimedia", cat: PC, desc: "Multimedia"}
|
||||
- {id: "other", cat: Other, desc: "Other"}
|
||||
- {id: "pdf-tools", cat: PC, desc: "PDF Tools"}
|
||||
- {id: "photo-editing-tools", cat: PC, desc: "Photo Editing Tools"}
|
||||
- {id: "recovery-software", cat: PC, desc: "Recovery Software"}
|
||||
- {id: "request-crack-patch", cat: PC, desc: "Request Crack/ Patch"}
|
||||
- {id: "screen-recorders", cat: PC, desc: "Screen Recorders"}
|
||||
- {id: "security", cat: PC, desc: "Security"}
|
||||
- {id: "system-optimizers", cat: PC, desc: "System Optimizers"}
|
||||
- {id: "uncategorized", cat: Other, desc: "Uncategorized"}
|
||||
- {id: "vpn", cat: PC, desc: "VPN"}
|
||||
- {id: "windows", cat: PC, desc: "Windows"}
|
||||
- {id: "windows-app", cat: PC, desc: "Windows App"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
|
||||
settings: []
|
||||
|
||||
download:
|
||||
selectors:
|
||||
- selector: a[href^="magnet:?xt="]
|
||||
attribute: href
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: /
|
||||
inputs:
|
||||
s: "{{ .Keywords }}"
|
||||
|
||||
rows:
|
||||
selector: article.post-entry
|
||||
filters:
|
||||
- name: andmatch
|
||||
|
||||
fields:
|
||||
category_optional:
|
||||
selector: article.post-entry
|
||||
attribute: class
|
||||
optional: true
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "category-(.+?) "
|
||||
category:
|
||||
text: "{{ if .Result.category_optional }}{{ .Result.category_optional }}{{ else }}other{{ end }}"
|
||||
title:
|
||||
selector: h2 > a
|
||||
details:
|
||||
selector: h2 > a
|
||||
attribute: href
|
||||
download:
|
||||
selector: h2 > a
|
||||
attribute: href
|
||||
poster:
|
||||
selector: img
|
||||
attribute: src
|
||||
date:
|
||||
text: now
|
||||
size:
|
||||
text: "512 MB"
|
||||
description:
|
||||
selector: p
|
||||
remove: a
|
||||
seeders:
|
||||
text: 1
|
||||
leechers:
|
||||
text: 1
|
||||
downloadvolumefactor:
|
||||
text: 0
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
# WordPress 5.9.1
|
293
config/prowlarr/Definitions/crazyspirits.yml
Normal file
293
config/prowlarr/Definitions/crazyspirits.yml
Normal file
|
@ -0,0 +1,293 @@
|
|||
---
|
||||
id: crazyspirits
|
||||
name: CrazySpirits
|
||||
description: "Crazy Spirits is a FRENCH Private Torrent Tracker for MOVIES / TV / GENERAL"
|
||||
language: fr-FR
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://www.crazyspirits.com/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
# Films
|
||||
- {id: 49, cat: Movies/3D, desc: "Films 3D"}
|
||||
- {id: 1, cat: XXX, desc: "Films 3X"}
|
||||
- {id: 48, cat: XXX/x264, desc: "Films 3X HD1080p"}
|
||||
- {id: 47, cat: XXX/x264, desc: "Films 3X HD720p"}
|
||||
- {id: 140, cat: XXX, desc: "Films 3X Video"}
|
||||
- {id: 50, cat: Movies/UHD, desc: "Films 4K"}
|
||||
- {id: 51, cat: TV/UHD, desc: "Films 4K UHDTV"}
|
||||
- {id: 57, cat: Movies/BluRay, desc: "Films BD-Rip"}
|
||||
- {id: 56, cat: Movies/BluRay, desc: "Films Blu-Ray"}
|
||||
- {id: 58, cat: Movies/BluRay, desc: "Films BR-Rip"}
|
||||
- {id: 66, cat: Movies/SD, desc: "Films Cam-TS"}
|
||||
- {id: 96, cat: TV/Documentary, desc: "Docus TV"}
|
||||
- {id: 59, cat: Movies/DVD, desc: "Films DVDR"}
|
||||
- {id: 60, cat: Movies/DVD, desc: "Films DVDRip"}
|
||||
- {id: 98, cat: Movies/Other, desc: "Films Animé"}
|
||||
- {id: 126, cat: TV/HD, desc: "Films HDTV"}
|
||||
- {id: 124, cat: TV/Documentary, desc: "Formation Vidéo"}
|
||||
- {id: 65, cat: Movies, desc: "Films FSCR"}
|
||||
- {id: 53, cat: Movies/HD, desc: "Films HD1080p"}
|
||||
- {id: 52, cat: Movies/HD, desc: "Films HD 720p"}
|
||||
- {id: 137, cat: Movies/UHD, desc: "Films HDR 2160p"}
|
||||
- {id: 61, cat: Movies/HD, desc: "Films HDRip"}
|
||||
- {id: 63, cat: Movies/HD, desc: "Films MHD"}
|
||||
- {id: 67, cat: Movies, desc: "Films Pack Films"}
|
||||
- {id: 129, cat: Movies, desc: "Films QC~Film"}
|
||||
- {id: 64, cat: Movies, desc: "Films R5"}
|
||||
- {id: 99, cat: Movies, desc: "Films Remux"}
|
||||
- {id: 69, cat: Movies, desc: "Films VO"}
|
||||
- {id: 68, cat: Movies, desc: "Films Vost-FR"}
|
||||
- {id: 122, cat: Movies/WEB-DL, desc: "Films Web-DL 1080P"}
|
||||
- {id: 138, cat: Movies/WEB-DL, desc: "Films WEB-DL 2160p"}
|
||||
- {id: 123, cat: Movies/WEB-DL, desc: "Films WEB-DL 720p"}
|
||||
- {id: 143, cat: Movies/WEB-DL, desc: "Films WEB-DL-SD"}
|
||||
- {id: 139, cat: Movies/WEB-DL, desc: "Films WEB-RIP 2160p"}
|
||||
- {id: 73, cat: Movies/WEB-DL, desc: "Films Webrip"}
|
||||
- {id: 70, cat: Movies/WEB-DL, desc: "Films WebRip 1080p"}
|
||||
- {id: 71, cat: Movies/WEB-DL, desc: "Films WebRip 720p"}
|
||||
- {id: 72, cat: Movies/WEB-DL, desc: "Films WEBRip-DL"}
|
||||
# Jeux
|
||||
- {id: 114, cat: PC/Games, desc: "Jeux PC"}
|
||||
- {id: 115, cat: Console/PS3, desc: "Jeux PS3"}
|
||||
- {id: 116, cat: Console/PSP, desc: "Jeux PSP- PSX"}
|
||||
- {id: 117, cat: Console, desc: "Jeux Roms"}
|
||||
- {id: 118, cat: Console, desc: "Jeux Switch"}
|
||||
- {id: 119, cat: Console/Wii, desc: "Jeux Wii"}
|
||||
- {id: 120, cat: Console/WiiU, desc: "Jeux WiiU"}
|
||||
- {id: 121, cat: Console/XBox, desc: "Jeux Xbox"}
|
||||
# Livre
|
||||
- {id: 100, cat: Audio/Audiobook, desc: "Livre Audio"}
|
||||
- {id: 101, cat: Books/EBook, desc: "Livre Epub"}
|
||||
- {id: 102, cat: Books, desc: "Livre Mangas"}
|
||||
- {id: 135, cat: Books, desc: "Livre Québéçois"}
|
||||
- {id: 103, cat: Books, desc: "Livres BD"}
|
||||
- {id: 104, cat: Books/Comics, desc: "Livres Comics"}
|
||||
- {id: 105, cat: Books/Mags, desc: "Livres Press"}
|
||||
- {id: 106, cat: Books, desc: "Livres Romans"}
|
||||
# Logiciel
|
||||
- {id: 113, cat: PC/Mobile-iOS, desc: "Logiciel Apple"}
|
||||
- {id: 111, cat: PC, desc: "Logiciel Linux"}
|
||||
- {id: 112, cat: PC/Mobile-Other, desc: "Logiciel Smart Phone"}
|
||||
- {id: 110, cat: PC/0day, desc: "Logiciel Windows"}
|
||||
# Musiques
|
||||
- {id: 108, cat: Audio/Lossless, desc: "Musiques FLAC"}
|
||||
- {id: 107, cat: Audio/MP3, desc: "Musiques MP3"}
|
||||
- {id: 141, cat: Audio, desc: "Musiques Pack Album"}
|
||||
- {id: 125, cat: Audio/Video, desc: "Musiques Videos Pack"}
|
||||
- {id: 132, cat: Audio, desc: "Musiques QC~Musique"}
|
||||
- {id: 109, cat: Audio, desc: "Musiques WMA"}
|
||||
# Séries
|
||||
- {id: 130, cat: TV, desc: "Séries QC~Serie"}
|
||||
- {id: 97, cat: TV/Anime, desc: "Séries Animée"}
|
||||
- {id: 84, cat: TV/HD, desc: "Séries Épisodes HD"}
|
||||
- {id: 85, cat: TV/SD, desc: "Séries Épisodes SD"}
|
||||
- {id: 77, cat: TV/HD, desc: "Séries HDTV"}
|
||||
- {id: 88, cat: TV, desc: "Séries Pack HD"}
|
||||
- {id: 128, cat: TV, desc: "Séries Pack SD"}
|
||||
# Spéctacle
|
||||
- {id: 131, cat: TV/Other, desc: "Spectacle QC~Spectacle"}
|
||||
- {id: 90, cat: TV/Other, desc: "Spectacle 1080p"}
|
||||
- {id: 91, cat: TV/Other, desc: "Spectacle 720p"}
|
||||
- {id: 142, cat: TV/Other, desc: "Spectacle QC"}
|
||||
- {id: 136, cat: TV/Other, desc: "Spectacle SD"}
|
||||
# Télévision
|
||||
- {id: 133, cat: TV, desc: "TV QC~Tv"}
|
||||
- {id: 94, cat: TV, desc: "TV Animation"}
|
||||
- {id: 93, cat: TV/Documentary, desc: "TV Documentaires"}
|
||||
- {id: 92, cat: TV/Other, desc: "TV Spectacles"}
|
||||
- {id: 95, cat: TV/Sport, desc: "TV Sports"}
|
||||
- {id: 74, cat: TV/HD, desc: "TV TVHD"}
|
||||
- {id: 75, cat: TV, desc: "TV TVRip"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
music-search: [q]
|
||||
book-search: [q]
|
||||
|
||||
settings:
|
||||
- name: cookie
|
||||
type: text
|
||||
label: Cookie
|
||||
- name: info
|
||||
type: info
|
||||
label: How to get the Cookie
|
||||
default: "<ol><li>Login to this tracker with your browser</li><li>Open the <b>DevTools</b> panel by pressing <b>F12</b></li><li>Select the <b>Network</b> tab</li><li>Click on the <b>Doc</b> button (Chrome Browser) or <b>HTML</b> button (FireFox)</li><li>Refresh the page by pressing <b>F5</b></li><li>Click on the first row entry</li><li>Select the <b>Headers</b> tab on the Right panel</li><li>Find <b>'cookie:'</b> in the <b>Request Headers</b> section</li><li><b>Select</b> and <b>Copy</b> the whole cookie string <i>(everything after 'cookie: ')</i> and <b>Paste</b> here.</li></ol>"
|
||||
- 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 and SUBFRENCH with ENGLISH
|
||||
default: false
|
||||
- name: sort
|
||||
type: select
|
||||
label: Sort requested from site
|
||||
default: id
|
||||
options:
|
||||
id: created
|
||||
seeders: seeders
|
||||
size: size
|
||||
name: title
|
||||
- name: type
|
||||
type: select
|
||||
label: Order requested from site
|
||||
default: desc
|
||||
options:
|
||||
desc: desc
|
||||
asc: asc
|
||||
|
||||
login:
|
||||
method: cookie
|
||||
inputs:
|
||||
cookie: "{{ .Config.cookie }}"
|
||||
test:
|
||||
path: torrents-search.php
|
||||
selector: a[href="account-logout.php"]
|
||||
|
||||
download:
|
||||
before:
|
||||
path: thanks.php
|
||||
inputs:
|
||||
id: "{{ .DownloadUri.Query.id }}"
|
||||
to: give
|
||||
torrent: "{{ .DownloadUri.Query.id }}"
|
||||
selectors:
|
||||
- selector: a[href^="download.php?id="]
|
||||
attribute: href
|
||||
|
||||
search:
|
||||
paths:
|
||||
# https://www.crazyspirits.com/torrents-search.php?search=&cat=0&incldead=1&freeleech=0&recommended=0&lang=0
|
||||
- path: torrents-search.php
|
||||
inputs:
|
||||
# using multi cat search causes http 500 internal server error
|
||||
# $raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
|
||||
search: "{{ .Keywords }}"
|
||||
cat: 0
|
||||
# 0 active, 1 incldead, 2 onlydead
|
||||
incldead: 1
|
||||
# 0 all, 1 nofree, 2 onlyfree
|
||||
freeleech: "{{ if .Config.freeleech }}2{{ else }}0{{ end }}"
|
||||
# 0 all, 1 not recommended, 2 only recommended
|
||||
recommended: 0
|
||||
# 0 all, 1 french, 2 english, etc
|
||||
lang: 0
|
||||
sort: "{{ .Config.sort }}"
|
||||
order: "{{ .Config.type }}"
|
||||
# imdb search not supported and imdb links not in results.
|
||||
|
||||
rows:
|
||||
selector: table.border_table > tbody > tr.t-row
|
||||
|
||||
fields:
|
||||
title_phase0:
|
||||
# title can be abbreviated
|
||||
selector: a[href^="torrents-details.php?id="] b
|
||||
title_phase1:
|
||||
# if available, the youtube link has a full title
|
||||
selector: a[rel="prettyPhoto"] img
|
||||
attribute: alt
|
||||
optional: true
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["-NoTag", ""]
|
||||
title_phase2:
|
||||
text: "{{ if .Result.title_phase1 }}{{ .Result.title_phase1 }}{{ else }}{{ .Result.title_phase0 }}{{ end }}"
|
||||
title_vostfr:
|
||||
text: "{{ .Result.title_phase2 }}"
|
||||
filters:
|
||||
- name: re_replace
|
||||
args: ["(?i)\\b(vostfr|subfrench)\\b", "ENGLISH"]
|
||||
title_phase3:
|
||||
text: "{{ if .Config.vostfr }}{{ .Result.title_vostfr }}{{ else }}{{ .Result.title_phase2 }}{{ end }}"
|
||||
title_multilang:
|
||||
text: "{{ .Result.title_phase3 }}"
|
||||
filters:
|
||||
- name: re_replace
|
||||
args: ["(?i)\\b(MULTI(?!.*(?:FRENCH|ENGLISH|VOSTFR)))\\b", "{{ .Config.multilanguage }}"]
|
||||
title:
|
||||
text: "{{ if .Config.multilang }}{{ .Result.title_multilang }}{{ else }}{{ .Result.title_phase3 }}{{ end }}"
|
||||
category:
|
||||
selector: a[href^="torrents.php?cat="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: cat
|
||||
details:
|
||||
selector: a[href^="torrents-details.php?id="]
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href^="torrents-details.php?id="]
|
||||
attribute: href
|
||||
poster:
|
||||
selector: a[onmouseover][href^="torrents-details.php?id="]
|
||||
attribute: onmouseover
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "src=(.*?)><"
|
||||
grabs:
|
||||
selector: a[onmouseover][href^="torrents-details.php?id="]
|
||||
attribute: onmouseover
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "Completé : </b>(\\d+)<"
|
||||
seeders:
|
||||
selector: a[onmouseover][href^="torrents-details.php?id="]
|
||||
attribute: onmouseover
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "=greene>(\\d+)<"
|
||||
leechers:
|
||||
selector: a[onmouseover][href^="torrents-details.php?id="]
|
||||
attribute: onmouseover
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "=red>(\\d+)<"
|
||||
size:
|
||||
selector: a[onmouseover][href^="torrents-details.php?id="]
|
||||
attribute: onmouseover
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "Taille : </b>(.*?)<br"
|
||||
date:
|
||||
selector: a[onmouseover][href^="torrents-details.php?id="]
|
||||
attribute: onmouseover
|
||||
# auto adjusted by site account profile
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "Partagé Voilà : </b>(.*?)<br"
|
||||
- name: dateparse
|
||||
args: "MM-dd-yyyy"
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
img[src="images/Torrents/free.png"]: 0
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
minimumratio:
|
||||
text: 1.0
|
||||
minimumseedtime:
|
||||
# 2 day (as seconds = 2 x 24 x 60 x 60)
|
||||
text: 172800
|
||||
# TT3.1
|
184
config/prowlarr/Definitions/crnaberza.yml
Normal file
184
config/prowlarr/Definitions/crnaberza.yml
Normal file
|
@ -0,0 +1,184 @@
|
|||
---
|
||||
id: crnaberza
|
||||
name: CrnaBerza
|
||||
description: "Crna Berza is a BALKAN Private Torrent Tracker for MOVIES / TV / GENERAL"
|
||||
language: sr-SP
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://www.crnaberza.com/
|
||||
legacylinks:
|
||||
- http://www.crnaberza.com/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 65, cat: Movies/3D, desc: "3D Film"}
|
||||
- {id: 82, cat: Movies/UHD, desc: "4K video"}
|
||||
- {id: 79, cat: PC/Mobile-Android, desc: "Android"}
|
||||
- {id: 37, cat: Movies, desc: "Deca"}
|
||||
- {id: 43, cat: TV/Documentary, desc: "Dokumentarci"}
|
||||
- {id: 52, cat: Movies/DVD, desc: "Film/DVD Domaće"}
|
||||
- {id: 20, cat: Movies/DVD, desc: "Film/DVD Strano"}
|
||||
- {id: 73, cat: Movies/HD, desc: "Film/HD Domaće"}
|
||||
- {id: 48, cat: Movies/HD, desc: "Film/HD Strano"}
|
||||
- {id: 29, cat: Movies/SD, desc: "Film/SD Domaće"}
|
||||
- {id: 54, cat: Movies/SD, desc: "Film/SD Strano"}
|
||||
- {id: 64, cat: Movies/HD, desc: "HD Boxset"}
|
||||
- {id: 61, cat: Movies/HD, desc: "HD Mesano"}
|
||||
- {id: 50, cat: PC/Games, desc: "Igre"}
|
||||
- {id: 44, cat: Books, desc: "Knjige"}
|
||||
- {id: 46, cat: Audio, desc: "Koncerti"}
|
||||
- {id: 58, cat: Audio/Lossless, desc: "Lossless/Domaće"}
|
||||
- {id: 59, cat: Audio/Lossless, desc: "Lossless/Strano"}
|
||||
- {id: 5, cat: Audio/MP3, desc: "MP3/Domaće"}
|
||||
- {id: 57, cat: Audio/MP3, desc: "MP3/Strano"}
|
||||
- {id: 80, cat: TV, desc: "Paketi"}
|
||||
- {id: 49, cat: PC, desc: "Programi"}
|
||||
- {id: 28, cat: Other, desc: "Razno"}
|
||||
- {id: 62, cat: TV/SD, desc: "SD Boxset"}
|
||||
- {id: 38, cat: TV/Sport, desc: "Sport"}
|
||||
- {id: 39, cat: Audio/Video, desc: "Spotovi DVD"}
|
||||
- {id: 45, cat: Books/Comics, desc: "Stripovi"}
|
||||
- {id: 75, cat: TV/HD, desc: "TV/HD Domaće"}
|
||||
- {id: 77, cat: TV/HD, desc: "TV/HD Strano"}
|
||||
- {id: 78, cat: TV/Other, desc: "TV/ostalo"}
|
||||
- {id: 30, cat: TV/SD, desc: "TV/SD Domaće"}
|
||||
- {id: 34, cat: TV/SD, desc: "TV/SD Strano"}
|
||||
- {id: 60, cat: XXX, desc: "XXX/Domace"}
|
||||
- {id: 63, cat: XXX, desc: "XXX/Strano"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
music-search: [q]
|
||||
book-search: [q]
|
||||
|
||||
settings:
|
||||
- name: username
|
||||
type: text
|
||||
label: Username
|
||||
- name: password
|
||||
type: password
|
||||
label: Password
|
||||
- name: info
|
||||
type: info
|
||||
label: Results Per Page
|
||||
default: For best results, change the 'Torrents per page' setting to 100 on your 'Personal Options' from the 'Personal' menu on the Crna Berza webpage.
|
||||
- name: freeleech
|
||||
type: checkbox
|
||||
label: Filter freeleech only
|
||||
default: false
|
||||
- name: sort
|
||||
type: select
|
||||
label: Sort requested from site
|
||||
default: 4
|
||||
options:
|
||||
4: created
|
||||
7: seeders
|
||||
5: size
|
||||
1: title
|
||||
- name: type
|
||||
type: select
|
||||
label: Order requested from site
|
||||
default: desc
|
||||
options:
|
||||
desc: desc
|
||||
asc: asc
|
||||
|
||||
login:
|
||||
path: login.php
|
||||
method: form
|
||||
form: form[action="takelogin.php"]
|
||||
inputs:
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
remember: 1
|
||||
returnto: /
|
||||
error:
|
||||
- selector: h2
|
||||
message:
|
||||
selector: table tr td.text
|
||||
test:
|
||||
path: browse.php
|
||||
selector: a[href$="/logout.php"]
|
||||
|
||||
search:
|
||||
paths:
|
||||
# http://www.crnaberza.com/browse.php?c52=1&c20=1&c34=1&incldead=1&search=star+trek
|
||||
- path: browse.php
|
||||
inputs:
|
||||
$raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
|
||||
search: "{{ .Keywords }}"
|
||||
# 0 title, 1 descr, 2 both
|
||||
blah: 0
|
||||
# 0 active, 1 incldead, 2 onlydead
|
||||
incldead: 1
|
||||
sort: "{{ .Config.sort }}"
|
||||
type: "{{ .Config.type }}"
|
||||
# does not support searching imdbid and does not return imdb links
|
||||
|
||||
rows:
|
||||
selector: "tr:has(td.trowtorrent){{ if .Config.freeleech }}:has(img[src$=\"/pic/freedownload.gif\"]){{ else }}{{ end }}"
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: td:nth-of-type(1) a
|
||||
attribute: href
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "[-](\\d{1,2})$"
|
||||
title:
|
||||
selector: td:nth-of-type(2) a
|
||||
details:
|
||||
selector: td:nth-of-type(2) a
|
||||
attribute: href
|
||||
download:
|
||||
selector: td:nth-of-type(3) a
|
||||
attribute: href
|
||||
files:
|
||||
selector: td:nth-of-type(4)
|
||||
date_day:
|
||||
# Danas<br>08:10 AM
|
||||
# Juče<br>06:44 PM
|
||||
selector: td:nth-of-type(6):contains("Danas"), td:nth-of-type(6):contains("Juče")
|
||||
# auto adjusted by site account profile
|
||||
optional: true
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["Danas", "Today"]
|
||||
- name: replace
|
||||
args: ["Juče", "Yesterday"]
|
||||
date_year:
|
||||
# Feb 14 2019<br>10:20 AM
|
||||
selector: td:nth-of-type(6):not(:contains("Juče")):not(:contains("Danas"))
|
||||
# auto adjusted by site account profile
|
||||
optional: true
|
||||
filters:
|
||||
- name: dateparse
|
||||
args: "MMM d yyyy hh:mm tt"
|
||||
date:
|
||||
text: "{{ if or .Result.date_day .Result.date_year }}{{ or .Result.date_day .Result.date_year }}{{ else }}now{{ end }}"
|
||||
size:
|
||||
selector: td:nth-of-type(7)
|
||||
grabs:
|
||||
selector: td:nth-of-type(8) a
|
||||
filters:
|
||||
- name: regexp
|
||||
args: ([\d]+)
|
||||
seeders:
|
||||
selector: td:nth-of-type(9)
|
||||
leechers:
|
||||
selector: td:nth-of-type(10)
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
"img[src$=\"/pic/freedownload.gif\"]": 0
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
minimumratio:
|
||||
text: 1.0
|
||||
minimumseedtime:
|
||||
# 7 day (as seconds = 7 x 24 x 60 x 60)
|
||||
text: 604800
|
||||
# U-232
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user