new stuff

This commit is contained in:
Braden Jageman 2024-04-07 00:37:31 -04:00
parent 5566054794
commit fd77c332fb
573 changed files with 106832 additions and 26 deletions

View 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

View 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

View 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

View 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

View 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

View 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

View 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

View 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

View 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

View 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

View 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

View File

@ -0,0 +1,240 @@
---
id: Bittorrentfiles
name: Bittorrentfiles
description: "Bittorrentfiles is a Private GERMAN tracker"
language: de-DE
type: private
encoding: UTF-8
links:
- https://bittorrentfiles.me/
legacylinks:
- https://www.Bittorrentfiles.me/
caps:
categorymappings:
# Movie
- {id: 48, cat: Movies/HD, desc: "Movie 1080p"}
- {id: 31, cat: Movies/3D, desc: "Movie 3D"}
- {id: 21, cat: Movies/HD, desc: "Movie 720p"}
- {id: 28, cat: Movies/SD, desc: "Movie AVI"}
- {id: 20, cat: Movies/DVD, desc: "Movie DVD-R"}
- {id: 40, cat: Movies/HD, desc: Movie "h264/x264"}
- {id: 30, cat: Movies/HD, desc: "Movie HD/BD"}
- {id: 49, cat: Movies/Foreign, desc: "Movie International"}
- {id: 78, cat: Movies/UHD, desc: "Movie UHD"}
- {id: 85, cat: Movies/HD, desc: "Movie x265"}
# Serien
- {id: 79, cat: TV/HD, desc: "Staffeln HD"}
- {id: 56, cat: TV/SD, desc: "Staffeln SD"}
- {id: 88, cat: TV/UHD, desc: "Staffeln UHD"}
- {id: 86, cat: TV/UHD, desc: "Folgen UHD"}
- {id: 54, cat: TV/HD, desc: "Folgen HD"}
- {id: 80, cat: TV/HD, desc: "Folgen HD/BD"}
- {id: 7, cat: TV/SD, desc: "Folgen SD"}
- {id: 55, cat: TV/Foreign, desc: "Folgen International"}
# Doku
- {id: 91, cat: TV/Documentary, desc: "Doku UHD"}
- {id: 64, cat: TV/Documentary, desc: "Doku HD"}
- {id: 36, cat: TV/Documentary, desc: "Doku SD"}
- {id: 81, cat: TV/Documentary, desc: "Doku 3D"}
- {id: 82, cat: TV/Documentary, desc: "Doku Packs"}
# Spiele
- {id: 4, cat: PC/Games, desc: "Spiele Windows"}
- {id: 92, cat: PC/Mac, desc: "Spiele Mac"}
- {id: 93, cat: PC, desc: "Spiele Linux"}
- {id: 97, cat: Console/XBox, desc: "Spiele XBOX"}
- {id: 94, cat: PC/Mobile-Other, desc: "Spiele Mobile"}
- {id: 95, cat: Console/NDS, desc: "Spiele Nintendo"}
- {id: 96, cat: Console/PSP, desc: "Spiele Playstation"}
- {id: 42, cat: Console/Other, desc: "Spiele Andere"}
# Musik
- {id: 66, cat: Audio, desc: "Musik Alben"}
- {id: 75, cat: Audio, desc: "Musik Singles"}
- {id: 50, cat: Audio, desc: "Musik Charts"}
- {id: 52, cat: Audio, desc: "Musik Packs"}
- {id: 53, cat: Audio/Video, desc: "Musik Video"}
- {id: 61, cat: Audio/Video, desc: "Musik DVD-R"}
- {id: 83, cat: Audio/Lossless, desc: "Musik Flac"}
- {id: 68, cat: Audio, desc: "Musik Live"}
- {id: 6, cat: Audio, desc: "Musik Misc"}
- {id: 51, cat: Audio, desc: "Musik OST"}
- {id: 67, cat: Audio, desc: "Musik Sampler"}
# App
- {id: 98, cat: PC/0day, desc: "App Windows"}
- {id: 62, cat: PC/Mac, desc: "App Mac OS"}
- {id: 63, cat: PC/0day, desc: "App Linux"}
- {id: 34, cat: PC, desc: "App Andere"}
# Sport
- {id: 74, cat: TV/Sport, desc: "Sport HD"}
- {id: 39, cat: TV/Sport, desc: "Sport SD"}
# Sonstiges
- {id: 41, cat: Audio/Audiobook, desc: "Sonstiges A-Book"}
- {id: 33, cat: TV/Anime, desc: "Sonstiges Anime"}
- {id: 35, cat: Books/EBook, desc: "Sonstiges e-Book-DE"}
- {id: 90, cat: Books/EBook, desc: "Sonstiges e-Book-INT"}
- {id: 65, cat: Other, desc: "Sonstiges E-Learning"}
- {id: 37, cat: PC, desc: "Sonstiges Mobile"}
- {id: 87, cat: Books/Mags, desc: "Sonstiges E-Paper"}
- {id: 38, cat: Other, desc: "Sonstiges Kids"}
- {id: 47, cat: Other, desc: "Sonstiges Line"}
- {id: 9, cat: Other, desc: "Sonstiges Andere"}
# XXX
- {id: 58, cat: XXX/x264, desc: "XXX HD"}
- {id: 46, cat: XXX, desc: "XXX Hentai"}
- {id: 59, cat: XXX/Pack, desc: "XXX Pack"}
- {id: 27, cat: XXX/SD, desc: "XXX SD"}
- {id: 76, cat: XXX, desc: "XXX Andere"}
modes:
search: [q]
tv-search: [q, season, ep, imdbid]
movie-search: [q, imdbid]
music-search: [q]
book-search: [q]
settings:
- name: user
type: text
label: Username
- name: pass
type: password
label: Password
- name: freeleech
type: checkbox
label: Search freeleech only
default: false
- name: sort
type: select
label: Sort requested from site
default: added
options:
added: created
seeds: seeders
size: size
name: title
- name: type
type: select
label: Order requested from site
default: desc
options:
desc: desc
asc: asc
- name: info_account
type: info
label: Account Settings
default: In order to see the correct date and size in the torrent rows, change the <b>Torrentliste:</b> setting to <b>Modern</b> on your account profile.
- name: info_tpp
type: info
label: Results Per Page
default: For best results, change the <b>Torrents per page:</b> setting to <b>100</b> on your account profile.
- 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

View 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

View 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>Users 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

View 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

View 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

View 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

View 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

View 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

View 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

View 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

View 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

View 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

View 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>&nbsp;18 августа в&nbsp;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>&nbsp;3 октября 2019 в&nbsp;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

View 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

View 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

View 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

View 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

View 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

View 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

View 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

View 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

View 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

View 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

View 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

View 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

View 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

View 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

View 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

View 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

View 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

View 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

View 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

View 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

View 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

View 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

View 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

View 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

View 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

View 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

View 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

View 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

View 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

View 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

View 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

View 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

View 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

View 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

View 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

View 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

View 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

View 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

View 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

View 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

View 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

View 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

View 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

View 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)

View 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

View 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

View 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

View 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

View 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

View 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

View 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

View 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

View 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

View 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

View 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

View 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

View 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

View 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

View 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

View 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

View 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

View 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

View 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

View 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

View 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

View 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

View 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

View 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

View 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

View 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

View 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

View 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

View 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

View 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

View 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

View 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