This commit is contained in:
jim
2025-12-12 15:53:31 +00:00
commit 31a11e3ba4
6051 changed files with 2099864 additions and 0 deletions
@@ -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
@@ -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://13mag.net/
- https://16mag.net/
legacylinks:
- https://0magnet.com/
- https://9mag.net/
- https://0magnet.co/
caps:
categories:
XXX: XXX
modes:
search: [q]
settings: []
download:
infohash:
hash:
selector: a[href^="magnet:?xt"]
attribute: href
filters:
- name: regexp
args: ([A-F|a-f|0-9]{40})
title:
selector: a[href^="magnet:?xt"]
attribute: href
filters:
- name: regexp
args: "&dn=(.+?)&"
- name: validfilename
search:
paths:
- path: search
inputs:
q: "{{ if .Keywords }}{{ .Keywords }}{{ else }}{{ .Today.Year }}.{{ end }}"
rows:
selector: table > tbody > tr:has(td)
filters:
- name: andmatch
fields:
category:
text: XXX
title:
selector: a
remove: p
details:
selector: a
attribute: href
download:
selector: a
attribute: href
date:
text: now
size:
selector: td.td-size
seeders:
text: 1
leechers:
text: 1
downloadvolumefactor:
text: 0
uploadvolumefactor:
text: 1
# engine n/a
+295
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
# get status and news on domains at the official site https://1337x-status.org/
links:
- https://1337x.to/
- https://1337x.st/
- https://x1337x.ws/
- https://x1337x.eu/
- https://x1337x.cc/
legacylinks:
- https://1337x.is/
- https://1337x.gd/
- https://1337x.mrunblock.bond/
- https://1337x.abcproxy.org/
- https://1337x.so/
- https://1337x.unblockit.download/
- https://1337x.unblockninja.com/ # keyword search not working
- https://1337x.ninjaproxy1.com/ # keyword search not working
- https://1337x.proxyninja.org/ # keyword search not working
- https://1337x.proxyninja.net/ # keyword search not working
- https://1337x.torrentbay.st/ # keyword search not working
- https://1337x.torrentsbay.org/ # keyword search not working
- https://x1337x.se/
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]
book-search: [q]
allowrawsearch: true
settings:
- name: uploader
type: text
label: Filter by Uploader
- name: info_uploader
type: info
label: About filtering by Uploader
default: "You can filter by Uploader by entering a Case Sensitive username, or leave empty to get all results.<br>Note: this is the username of the Uploader and not the Groupname that often show up at the end of 1337x titles, eg -GalaxyRG."
- name: info_flaresolverr
type: info_flaresolverr
- 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: disablesort
type: checkbox
label: Disable sorting - 1337x prevents sorting searches during high server load, which breaks the indexer when performing a keyword search - disable if you get zero results
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
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 and (.Keywords) (eq .Config.disablesort .False) }}sort-{{ else }}{{ end }}{{ if .Keywords }}search/{{ .Keywords }}{{ else }}cat/Movies{{ end }}{{ if and (.Keywords) (eq .Config.disablesort .False) }}/{{ .Config.sort }}/{{ .Config.type }}{{ else }}{{ end }}/1/"
- path: "{{ if and (.Keywords) (eq .Config.disablesort .False) }}sort-{{ else }}{{ end }}{{ if .Keywords }}search/{{ .Keywords }}{{ else }}cat/TV{{ end }}{{ if and (.Keywords) (eq .Config.disablesort .False)) }}/{{ .Config.sort }}/{{ .Config.type }}{{ else }}{{ end }}/{{ if .Keywords }}2{{ else }}1{{ end }}/"
- path: "{{ if and (.Keywords) (eq .Config.disablesort .False) }}sort-{{ else }}{{ end }}{{ if .Keywords }}search/{{ .Keywords }}{{ else }}cat/Music{{ end }}{{ if and (.Keywords) (eq .Config.disablesort .False) }}/{{ .Config.sort }}/{{ .Config.type }}{{ else }}{{ end }}/{{ if .Keywords }}3{{ else }}1{{ end }}/"
- path: "{{ if and (.Keywords) (eq .Config.disablesort .False) }}sort-{{ else }}{{ end }}{{ if .Keywords }}search/{{ .Keywords }}{{ else }}cat/Other{{ end }}{{ if and (.Keywords) (eq .Config.disablesort .False) }}/{{ .Config.sort }}/{{ .Config.type }}{{ else }}{{ end }}/{{ if .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/\"]){{ if .Config.uploader }}:has(td[class^=\"coll-5\"]:contains({{ .Config.uploader }})){{ else }}{{ end }}"
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"]
_username:
selector: td[class^="coll-5"]
description:
text: "Uploader: {{ .Result._username }}"
downloadvolumefactor:
text: 0
uploadvolumefactor:
text: 1
# engine n/a
+185
View File
@@ -0,0 +1,185 @@
---
id: 13city
name: 13City
description: "13City is a CHINESE Private Torrent Tracker for MOVIES / TV / GENERAL"
language: zh-CN
type: private
encoding: UTF-8
links:
- https://13city.org/
caps:
categorymappings:
- {id: 401, cat: Movies, desc: "电影/Movies"}
- {id: 402, cat: TV, desc: "电视剧/TVSeries"}
- {id: 403, cat: TV, desc: "综艺/TV Shows"}
- {id: 405, cat: TV/Anime, desc: "动漫/Animations"}
- {id: 406, cat: Audio/Video, desc: "演唱会、MV/Music Videos"}
- {id: 408, cat: Audio, desc: "音乐/Music"}
- {id: 409, cat: Books/EBook, desc: "电子书/E-book"}
- {id: 409, cat: Audio/Audiobook, desc: "有声读物/A-book"}
- {id: 413, cat: TV/Documentary, desc: "纪录片/Documentary"}
modes:
search: [q]
tv-search: [q, season, ep, imdbid, doubanid]
movie-search: [q, imdbid, doubanid]
music-search: [q]
book-search: [q]
settings:
- name: cookie
type: text
label: Cookie
- name: info_cookie
type: info_cookie
- 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>If there is no valid traffic within 7 days of registration (participation in the calculation of sharing rate), the account will be blocked</li><li>After the level is reduced to \"Peasant\", if the sharing rate is not improved within 7 days, the account will be blocked</li><li>Long-term non-login:<ul>- UnParked account: 60 consecutive days of non-login → banned</ul><ul>- Parked account: 180 consecutive days of non-login → banned</ul><ul>- Nexus Master and above levels are not subject to long-term non-login ban restrictions</ul></li></ol>"
login:
# using cookie method because site does a JS call to API/Challenge via JQuery to load response parm required for takelogin.php
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 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(a[href^="download.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)
optional: true
default: 512MB
seeders:
selector: td.rowfollow:nth-child(6)
optional: true
default: 0
leechers:
selector: td.rowfollow:nth-child(7)
optional: true
default: 0
grabs:
selector: td.rowfollow:nth-child(8)
optional: true
default: 0
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: 2.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.9.11 2025-11-02
+224
View File
@@ -0,0 +1,224 @@
---
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
requestDelay: 2
links:
- https://1ptba.com/
caps:
# dont forget to update the path categories in the search block
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: 404, cat: TV/Documentary, desc: "Documentaries(紀錄教育)", default: true}
- {id: 405, cat: TV/Anime, desc: "Animations(卡通動漫)", default: true}
- {id: 406, cat: Audio/Video, desc: "Music Videos(音樂短片/演唱會)", default: true}
- {id: 407, cat: TV/Sport, desc: "Sports(體育賽事)", default: true}
- {id: 408, cat: Audio, desc: "HQ Audio(高品质音频)", default: true}
- {id: 410, cat: PC/0day, desc: "Software(軟體)", default: true}
- {id: 411, cat: PC/Games, desc: "Games(電子遊戲)", default: true}
- {id: 412, cat: Books/EBook, desc: "eBook(電子書)", default: true}
- {id: 409, cat: Other, desc: "Misc(其他)", default: true}
- {id: 610, cat: XXX/x264, desc: "AV(有碼)/HD Censored", default: false}
- {id: 611, cat: XXX/x264, desc: "AV(無碼)/HD Uncensored", default: false}
- {id: 612, cat: XXX/SD, desc: "AV(有碼)/SD Censored", default: false}
- {id: 613, cat: XXX/SD, desc: "AV(無碼)/SD Uncensored", default: false}
- {id: 614, cat: XXX/DVD, desc: "AV(無碼)/DVDiSo Uncensored", default: false}
- {id: 615, cat: XXX/DVD, desc: "AV(有碼)/DVDiSo Censored", default: false}
- {id: 616, cat: XXX/UHD, desc: "AV(有碼)/Blu-Ray Censored", default: false}
- {id: 617, cat: XXX/UHD, desc: "AV(無碼)/Blu-Ray Uncensored", default: false}
- {id: 618, cat: XXX/Pack, desc: "AV(網站)/0Day", default: false}
- {id: 619, cat: XXX/Pack, desc: "IV(寫真影集)/Video Collection", default: false}
- {id: 620, cat: XXX/ImageSet, desc: "IV(寫真圖集)/Picture Collection", default: false}
- {id: 621, cat: XXX/Other, desc: "H-Game(遊戲)", default: false}
- {id: 622, cat: XXX/Other, desc: "H-Anime(動畫)", default: false}
- {id: 623, cat: XXX/Other, desc: "H-Comic(漫畫)", default: false}
- {id: 624, cat: XXX/Other, desc: "Adult film(成人電影)", default: false}
- {id: 625, cat: XXX/Other, desc: "AV(Gay)/HD", 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 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_flaresolverr
type: info_flaresolverr
- 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>"
- name: info_special
type: info
label: Special Categories
default: "Only <b>Power User</b> or above can view Special section. Searching for XXX categories by users below this class will result in search errors."
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
categories: [401, 402, 403, 404, 405, 406, 407, 408, 410, 411, 412, 409]
- path: special.php
categories: [610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625]
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.9.9 2025-10-02
@@ -0,0 +1,172 @@
---
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: 409, cat: Other, desc: "Misc"}
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_cookie
type: info_cookie
- 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_flaresolverr
type: info_flaresolverr
- 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:
# using cookie method because site does a JS call to API/Challenge via JQuery to load response parm required for takelogin.php
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 }}{{ .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, 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(4) > 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(4):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(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
minimumseedtime:
# 5 days (as seconds = 5 x 24 x 60 x 60)
text: 432000
description:
selector: td:nth-child(2)
remove: a, b, font, img, span
# NexusPHP v1.9.9 2025-10-02
@@ -0,0 +1,170 @@
---
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 Home Conversions"}
- {id: 32, cat: Movies, desc: "Movies Bluray MKV Remux"}
- {id: 38, cat: Movies, desc: "Movies Studio Conversion"}
- {id: 39, cat: Movies/3D, desc: "Movies VR 360"}
- {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."
- name: info_captcha
type: info
label: About Captcha
default: "Note that the captcha on the 3Dtorrents login page is Case Sensitive."
login:
path: index.php?page=login
method: form
form: form
inputs:
uid: "{{ .Config.username }}"
pwd: "{{ .Config.password }}"
captcha:
type: image
selector: img.captcha
input: private_key
error:
- selector: span.errormsg
test:
path: index.php
selector: a[href="logout.php"]
search:
paths:
- path: index.php
inputs:
$raw: "{{ range .Categories }}filter_cat[{{.}}]=1&{{end}}"
search: "{{ .Keywords }}"
page: torrents
category: 0
# 0 all, 1 Anaglyph 3D, 2 Side by Side,3 Over Under
3dformat: 0
# 0 all, 1 active only, 2 dead only
active: 0
order: "{{ .Config.sort }}"
by: "{{ .Config.type }}"
rows:
selector: "table[cellspacing!=\"1\"].lista > tbody > tr:has(a[href^=\"index.php?page=torrents&category=\"]){{ if .Config.freeleech }}:has(img[src=\"images/sign_free.png\"]){{ else }}{{ end }}"
fields:
category:
selector: a[href^="index.php?page=torrents&category="]
attribute: href
filters:
- name: querystring
args: category
- name: re_replace
args: ["(\\b0\\b)", "31"]
title:
selector: a[href^="index.php?page=torrent-details&id="]
details:
selector: a[href^="index.php?page=torrent-details&id="]
attribute: href
download:
selector: a[href^="index.php?page=torrent-details&id="]
attribute: href
filters:
- name: replace
args: ["index.php?page=torrent-details&id=", "download.php?id="]
poster:
selector: a[href^="index.php?page=torrent-details&id="]
attribute: onmouseover
filters:
- name: regexp
args: ",\\'(.+?)\\'"
genre:
selector: td:nth-child(2) span
description:
text: "{{ .Result.genre }}"
date:
selector: td:nth-last-child(5)
filters:
- name: append
args: " -07:00" # PDT
- name: dateparse
args: "dd/MM/yyyy zzz"
size:
selector: td:nth-last-child(4)
seeders:
selector: a[href^="index.php?page=peers"]
leechers:
selector: td:has(a[href^="index.php?page=peers"]) + td
grabs:
selector: a[href^="index.php?page=torrent_history"]
optional: true
default: 0
downloadvolumefactor:
case:
img[src="images/sign_free.png"]: 0
img[src="images/50off.png"]: 0.5
"*": 1
uploadvolumefactor:
text: 1
minimumratio:
text: 1.0
# xbtit
+149
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
+118
View File
@@ -0,0 +1,118 @@
---
id: 52bt
name: 52BT
description: "52BT is a CHINESE Public tracker for MOVIES / TV / MUSIC / GENERAL"
language: zh-CN
type: public
encoding: UTF-8
requestDelay: 2
links:
# Send any content to 52btbtbt@gmail.com to get the latest address. or visit https://52btbt.icu/
- https://www.529070.xyz/
- https://www.529071.xyz/
legacylinks:
- https://www.529055.xyz/
- https://www.529057.xyz/
- https://www.529056.xyz/
- https://www.529058.xyz/
- https://www.52bt059.buzz/
- https://www.529060.xyz/
- https://www.529061.xyz/
- https://www.529059.xyz/
- https://www.529062.xyz/
- https://www.529063.xyz/
- https://www.529064.xyz/
- https://www.529066.xyz/
- https://www.529065.xyz/
- https://www.529068.xyz/
- https://www.529069.xyz/
- https://www.529067.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
- name: info_flaresolverr
type: info_flaresolverr
search:
paths:
- path: "search-{{ if .Keywords }}{{ .Keywords }}{{ else }}{{ .Today.Year }}{{ end }}-{{ .Config.cat-id }}-{{ .Config.sort }}-1.html"
- path: "search-{{ if .Keywords }}{{ .Keywords }}{{ else }}{{ .Today.Year }}{{ end }}-{{ .Config.cat-id }}-{{ .Config.sort }}-2.html"
error:
- selector: :root:contains("Internal Server Error")
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
infohash:
selector: a[href^="magnet:?xt="]
attribute: href
filters:
- name: regexp
args: ([A-F|a-f|0-9]{40})
date:
selector: div.sbar > span:contains("添加时间:") > b
filters:
- name: append
args: " +08:00" # CST
- name: dateparse
args: "yyyy-MM-dd zzz"
size:
selector: div.sbar > span:contains("大小:") > b
seeders:
text: 1
leechers:
text: 1
downloadvolumefactor:
text: 0
uploadvolumefactor:
text: 1
# engine n/a
+183
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.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
@@ -0,0 +1,240 @@
---
id: Bittorrentfiles
name: Bittorrentfiles
description: "Bittorrentfiles is a Private GERMAN Torrent Tracker for MOVIES / TV / GENERAL"
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
@@ -0,0 +1,177 @@
---
id: abnormal
name: Abnormal
description: "ABNormal (ABN) is a FRENCH Private Torrent Tracker for MOVIES / TV / GENERAL"
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
@@ -0,0 +1,186 @@
---
id: abtorrents
replaces:
- audiobooktorrents
name: ABtorrents
description: "ABtorrents (ABT) is a Private Torrent Tracker for AUDIOBOOKS"
language: en-US
type: private
encoding: UTF-8
links:
- https://usefultrash.net/
legacylinks:
- https://abtorrents.me/
- https://abtorrents.xyz/
caps:
categorymappings:
- {id: 10, cat: Audio/Audiobook, desc: "Action & Adventure"}
- {id: 80, cat: Audio/Audiobook, desc: "Adult & Erotica"}
- {id: 20, cat: Audio/Audiobook, desc: "Biography & Memoirs"}
- {id: 30, cat: Audio/Audiobook, desc: "Business"}
- {id: 40, cat: Audio/Audiobook, desc: "Childrens"}
- {id: 70, cat: Audio/Audiobook, desc: "Computers"}
- {id: 260, cat: Audio/Audiobook, desc: "Crime & Thriller"}
- {id: 90, cat: Audio/Audiobook, desc: "Fantasy-General"}
- {id: 100, cat: Audio/Audiobook, desc: "Fantasy-Youth"}
- {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: 50, cat: Audio/Audiobook, desc: "Humor (Comedy)"}
- {id: 170, cat: Audio/Audiobook, desc: "Literature"}
- {id: 175, cat: Audio/Audiobook, desc: "LitRPG"}
- {id: 180, cat: Audio/Audiobook, desc: "Mystery"}
- {id: 215, cat: Audio/Audiobook, desc: "Paranormal Romance"}
- {id: 200, cat: Audio/Audiobook, desc: "Radio Drama"}
- {id: 205, cat: Audio/Audiobook, desc: "Reference & Educational"}
- {id: 207, cat: Audio/Audiobook, desc: "Religion & Spirituality"}
- {id: 210, cat: Audio/Audiobook, desc: "Romance"}
- {id: 240, cat: Audio/Audiobook, desc: "Sci-Fi Apocalypse"}
- {id: 220, cat: Audio/Audiobook, desc: "Science"}
- {id: 230, cat: Audio/Audiobook, desc: "Science Fiction"}
- {id: 250, cat: Audio/Audiobook, desc: "Self Improvement"}
- {id: 265, cat: Audio/Audiobook, desc: "Sports & Fitness"}
- {id: 270, cat: Audio/Audiobook, desc: "Suspense"}
- {id: 280, cat: Audio/Audiobook, desc: "Talk Radio"}
- {id: 285, cat: Audio/Audiobook, desc: "Travel"}
- {id: 290, cat: Audio/Audiobook, desc: "Urban Fantasy & Paranormal"}
- {id: 300, cat: Audio/Audiobook, desc: "Western"}
- {id: 310, cat: Audio/Audiobook, desc: "Young Adult"}
- {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: 435, cat: Books/EBook, desc: "[E] Business"}
- {id: 720, cat: Books/EBook, desc: "[E] Childrens"}
- {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"}
- {id: 480, cat: Books/EBook, desc: "[E] Fantasy"}
- {id: 490, cat: Books/EBook, desc: "[E] Fantasy-Youth"}
- {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: 560, cat: Books/EBook, desc: "[E] Literary Fiction"}
- {id: 565, cat: Books/EBook, desc: "[E] LitRPG"}
- {id: 570, cat: Books/EBook, desc: "[E] Mystery"}
- {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 & 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: 645, cat: Books/EBook, desc: "[E] Science"}
- {id: 650, cat: Books/EBook, desc: "[E] Self-Help"}
- {id: 660, cat: Books/EBook, desc: "[E] Sports & Fitness"}
- {id: 665, cat: Books/EBook, desc: "[E] Suspense"}
- {id: 670, cat: Books/EBook, desc: "[E] Travel"}
- {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"}
modes:
search: [q]
book-search: [q]
settings:
- name: cookie
type: text
label: Cookie
- name: info_cookie
type: info_cookie
- 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:
# using cookie method because login page simplecaptcha generates Exception: Cannot access child value on Newtonsoft.Json.Linq.JValue.
method: cookie
inputs:
cookie: "{{ .Config.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, series, additional_info, author, author, uploader
searchin: title
# 0 active, 1 incldead, 2 onlydead, 3 My Unsatisfied Torrents, 4 My Watch List, 5 My Uploads
incldead: 1
# 0 All Torrents, 1 Only Free Torrents
only_free: "{{ if .Config.freeleech }}1{{ else }}0{{ end }}"
rows:
selector: table.browse.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
categorydesc:
selector: img[src^="./pic/caticons"]
attribute: alt
title:
selector: a[href^="details.php?id="]
remove: span.has-text-red
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: a[title="Seeders"]
optional: true
default: 0
leechers:
selector: a[title="Leechers"]
optional: true
default: 0
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
@@ -0,0 +1,56 @@
---
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:
category:
text: 1
title:
selector: td.title > span.title a
details:
selector: td.title > span.title a
attribute: href
download:
selector: td.action a
attribute: href
size:
selector: td.size
seeders:
text: 1
leechers:
text: 1
date:
# unix
selector: td.date time
attribute: datetime
downloadvolumefactor:
text: 0
uploadvolumefactor:
text: 1
# engine n/a
@@ -0,0 +1,92 @@
---
id: acrossthetasman
name: Across The Tasman
description: "ATT is a Private 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
error:
- selector: div.restore:contains("invalid username or password")
test:
path: torrents.php
selector: a[href*="login.php?do=logout"]
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
@@ -0,0 +1,188 @@
---
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):has(span.icon_check_alt)
filters:
- name: andmatch
fields:
category:
selector: a[href*="/browse.php?cat="]
attribute: href
filters:
- name: querystring
args: cat
title:
selector: a.index
attribute: href
filters:
- name: querystring
args: name
- name: urldecode
details:
selector: a[href*="/details.php?id="]
attribute: href
download:
selector: a.index
attribute: href
filters:
- name: urldecode
poster:
selector: a[onmouseover]
attribute: onmouseover
filters:
- name: regexp
args: src=([^\s]+)
- name: replace
args: ["\"", ""]
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
+180
View File
@@ -0,0 +1,180 @@
---
id: afun
name: AFUN
description: "AFUN is a CHINESE Private Torrent Tracker for MOVIES / TV / GENERAL"
language: zh-CN
type: private
encoding: UTF-8
links:
- https://www.ptlover.cc/
caps:
categorymappings:
- {id: 407, cat: TV/Sport, desc: "Sports/赛事"}
- {id: 414, cat: TV, desc: "TV Shows/综艺"}
- {id: 408, cat: Audio, desc: "HQ Audio/HQ音频"}
- {id: 409, cat: Other, desc: "Misc/其他"}
- {id: 407, cat: TV/Sport, desc: "TV Sport/体育"}
- {id: 406, cat: Audio/Video, desc: "Music Videos/MV"}
- {id: 403, cat: TV, desc: "TV Talk Shows/脱口秀"}
- {id: 402, cat: TV, desc: "TV Series/电视剧"}
- {id: 405, cat: TV/Anime, desc: "Anime/动画"}
- {id: 404, cat: TV/Documentary, desc: "Documentaries/纪录片"}
- {id: 401, cat: Movies, desc: "Movies/电影"}
modes:
search: [q]
tv-search: [q, season, ep, imdbid]
movie-search: [q, imdbid]
music-search: [q]
settings:
- name: cookie
type: text
label: Cookie
- name: info_cookie
type: info_cookie
- 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 will be deleted based on the following rules:<ol><li>Veteran User or above will never be deleted.</li><li>Elite User or above will never be deleted if parked (at User CP).</li><li>Parked accounts will be deleted if users have not logged in for more than 400 days in a row.</li><li>Unparked accounts will 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 will be deleted if users have not logged in for more than 100 days in a row.</li></ol>"
login:
# using cookie method because site regularly disables login page for certain events during the year
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}}"
# searching in description causes HTTP 500 so we will not support doubanid searching
search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}"
# 0: include dead, 1: alive, 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: description, 3: uploader, 4: imdburl
search_area: "{{ if .Query.IMDBID }}4{{ else }}0{{ end }}"
# 0: AND, 2: exact
search_mode: 0
sort: "{{ .Config.sort }}"
type: "{{ .Config.type }}"
# Support in NexusPHP so bots don't pollute trending searches:
notnewword: 1
rows:
selector: table.torrents > tbody > tr:has(a[href^="download.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: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
minimumratio:
text: 1.0
minimumseedtime:
# 2 days (as seconds = 2 x 24 x 60 x 60)
text: 172800
# NexusPHP v1.9.0 2025-02-06
+211
View File
@@ -0,0 +1,211 @@
---
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://pt.agsvpt.cn/
legacylinks:
- https://abroad.agsvpt.com/
caps:
# dont forget to update the path categories in the search block
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}
- {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.12 2024-04-05
@@ -0,0 +1,136 @@
---
id: aidoruonline
name: Aidoru!Online
description: "Aidoru!Online is a JAPANESE 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_cookie
type: info_cookie
- 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
- name: info_results
type: info
label: Search results
default: "If you are getting the error <b>Found no results while trying to browse this tracker</b> then first access the site with your browser and check that your ratio is <b>not below 0.8</b>, otherwise the site will not return download links to the indexer. This does not apply to freeleech torrents."
login:
# using cookie method because login page returns 0 bytes with a cookie flog=6
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
@@ -0,0 +1,194 @@
---
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
# status https://status.aither.cc/
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"}
modes:
search: [q]
tv-search: [q, season, ep, imdbid, tvdbid, tmdbid]
movie-search: [q, imdbid, tmdbid]
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 every90 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 }}."
- selector: :root:contains("Account is Banned")
search:
paths:
# https://hdinnovations.github.io/UNIT3D/torrent_api.html
# https://github.com/HDInnovations/UNIT3D/blob/master/app/Http/Controllers/API/TorrentController.php#L657
- 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
title_filename:
selector: "files[0].name"
optional: true
files:
selector: num_file
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 }}"
details:
selector: details_link
download:
selector: download_link
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: [" & ", "_&_"]
_internal:
selector: internal
case:
False: "{{ .False }}"
True: "{{ .True }}"
description:
text: "{{ if .Result._internal }}Internal{{ else }}{{ end }}{{ if and .Result._internal .Result.genre }} | {{ else }}{{ end }}{{ .Result.genre }}"
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
_featured:
selector: featured
case:
False: "{{ .False }}"
True: "{{ .True }}"
downloadvolumefactor_freeleech:
# 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
downloadvolumefactor:
text: "{{ if .Result._featured }}0{{ else }}{{ .Result.downloadvolumefactor_freeleech }}{{ end }}"
uploadvolumefactor_double_upload:
# api returns False, True
selector: double_upload
case:
False: 1 # normal
True: 2 # double
uploadvolumefactor:
text: "{{ if .Result._featured }}2{{ else }}{{ .Result.uploadvolumefactor_double_upload }}{{ end }}"
# 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
# json UNIT3D 9.1.7
+170
View File
@@ -0,0 +1,170 @@
---
id: alingpt
name: alingPT
description: "alingPT is a CHINESE Private Torrent Tracker for MOVIES / TV"
language: zh-CN
type: private
encoding: UTF-8
links:
- https://pt.aling.de/
caps:
categorymappings:
- {id: 405, cat: TV/Anime, desc: "Animations/动画"}
- {id: 402, cat: TV, desc: "TV Series/电视剧"}
- {id: 401, cat: Movies, desc: "Movies/电影"}
- {id: 404, cat: TV/Documentary, desc: "Documentary/纪录片"}
modes:
search: [q]
tv-search: [q, season, ep, imdbid]
movie-search: [q, imdbid]
settings:
- name: cookie
type: text
label: Cookie
- name: info_cookie
type: info_cookie
- 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>Accounts parked will not be deleted</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 200 consecutive days</li><li>Users who have no traffic (i.e. upload/download data are both 0) will be deleted if they do not log in for 60 consecutive days.</li></ol>"
login:
# using cookie method because site does a JS call to API/Challenge via JQuery to load response parm required for takelogin.php
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 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-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.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: 2.0
minimumseedtime:
# 2 days (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.9.4 2025-06-01
@@ -0,0 +1,251 @@
---
id: amigosshare
name: Amigos Share Club
description: "Amigos Share Club (ASC) is a BRAZILIAN Private Torrent Tracker for MOVIES / TV / 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: 75, cat: XXX, desc: "Adultos: Hentai"}
- {id: 107, cat: XXX, desc: "Adultos: Gay"}
- {id: 108, cat: XXX, desc: "Adultos: Transex/Female"}
- {id: 74, cat: XXX, desc: "Adultos: XXX"}
- {id: 146, cat: XXX, desc: "Adultos: OnlyFans"}
- {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: 21, cat: PC/0day, desc: "Aplicativos: Windows"}
- {id: 28, cat: PC/Mobile-iOS, desc: "Aplicativos: iPod"}
- {id: 27, cat: PC/Mobile-iOS, desc: "Aplicativos: iPad"}
- {id: 26, cat: PC/Mobile-iOS, desc: "Aplicativos: iPhone"}
- {id: 25, cat: PC, desc: "Aplicativos: Linux"}
- {id: 23, cat: PC/Mobile-Android, desc: "Aplicativos: Android"}
- {id: 22, cat: PC/Mac, desc: "Aplicativos: Mac"}
- {id: 73, cat: Other, desc: "Cursos: Video Aula"}
- {id: 72, cat: Other, desc: "Cursos: Apostila"}
- {id: 71, cat: Other, desc: "Cursos: Cursos"}
- {id: 67, cat: Books/EBook, desc: "Ebook: Livros"}
- {id: 112, cat: Books/Comics, desc: "Ebook: HQs"}
- {id: 147, cat: Books/Comics, desc: "Ebook: Mangas"}
- {id: 121, cat: Audio/Audiobook, desc: "Ebook: Audio-book"}
- {id: 68, cat: Books/Mags, desc: "Ebook: Revistas"}
- {id: 119, cat: Movies, desc: "Filmes:"}
- {id: 70, cat: XXX, desc: "Fotos: Revistas, Livros e Fotos"}
- {id: 51, cat: Console/PS3, desc: "Jogos: Ps3"}
- {id: 54, cat: Console/XBox 360, desc: "Jogos: Xbox360"}
- {id: 109, cat: Console, desc: "Jogos: Emulação"}
- {id: 110, cat: Console, desc: "Jogos: Nintendo Switch"}
- {id: 52, cat: Console, desc: "Jogos: Dreamcast"}
- {id: 50, cat: Console, desc: "Jogos: Ps2"}
- {id: 49, cat: Console, desc: "Jogos: Ps1"}
- {id: 48, cat: PC/Mac, desc: "Jogos: Mac"}
- {id: 55, cat: Console/Wii, desc: "Jogos: Wii"}
- {id: 82, cat: Console/PSP, desc: "Jogos: PSP"}
- {id: 47, cat: PC/Games, desc: "Jogos: Pc"}
- {id: 61, cat: Console, desc: "Jogos: Emuladores e Roms"}
- {id: 58, cat: Console/NDS, desc: "Jogos: Nintendo DS"}
- {id: 57, cat: Console, desc: "Jogos: Android"}
- {id: 56, cat: Console/XBox, desc: "Jogos: Xbox"}
- {id: 78, cat: Console/XBox One, desc: "Jogos: Xbox One"}
- {id: 79, cat: Console/PS4, desc: "Jogos: Ps4"}
- {id: 129, cat: Other, desc: "Outros: Fonts"}
- {id: 128, cat: Other, desc: "Outros: Scripts"}
- {id: 127, cat: Other, desc: "Outros: Add-ons"}
- {id: 130, cat: Other, desc: "Outros: MOD"}
- {id: 125, cat: Other, desc: "Outros: Pack de Imagens"}
- {id: 124, cat: Other, desc: "Outros: Vetores"}
- {id: 122, cat: Other, desc: "Outros: Plug-ins"}
- {id: 126, cat: Other, desc: "Outros: Extensões"}
- {id: 120, cat: TV, desc: "Series:"}
- {id: 64, cat: TV, desc: "Tv: Fechada"}
- {id: 62, cat: TV/Sport, desc: "Tv: Esportes"}
- {id: 63, cat: TV, desc: "Tv: Aberta"}
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: ["(\\s*\\b((19|20)\\d{2})\\b)", ""]
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:
category_default:
# tv and movie just have an image :-b
selector: div.list-group-item-addon img
attribute: src
optional: true
case:
"[src$=\"/filmes2.fw.png\"]": 119
"[src$=\"/seriados.fw.png\"]": 120
category:
# while the rest have a href with a cat number \o/
selector: a[href*="cat="]
attribute: href
optional: true
default: "{{ .Result.category_default }}"
filters:
- name: querystring
args: cat
_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
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
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)
genre:
selector: div.list-group-item-content p.m-0 span.badge-primary[style$="#1c38c2;"]
description:
text: "{{ .Result.genre }}"
downloadvolumefactor:
case:
"span.badge-success:contains(\"FREE\")": 0
"*": 1
uploadvolumefactor:
text: 1
minimumratio:
text: 1.0
# engine n/a
@@ -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
@@ -0,0 +1,201 @@
---
id: animelovers-api
name: AnimeLovers (API)
description: "AnimeLovers is a Private tracker for ANIME / MANGA / DOUNGUA / MANHWA"
language: en-US
type: private
encoding: UTF-8
links:
- https://animelovers.club/
caps:
categorymappings:
- {id: 1, cat: Movies/Other, desc: "Anime Movies"}
- {id: 2, cat: TV/Anime, desc: "Anime Series"}
- {id: 3, cat: TV/Anime, desc: "Anime OVA"}
- {id: 11, cat: TV/Anime, desc: "Donghua Anime"}
- {id: 9, cat: XXX, desc: "Doujinshi"}
- {id: 4, cat: Books/Comics, desc: "Manhua/Manhwa"}
- {id: 8, cat: Books/Comics, desc: "Manga"}
- {id: 7, cat: XXX, desc: "Hentai"}
- {id: 10, cat: Audio/Lossless, desc: "Lossless 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://animelovers.club/\" target=\"_blank\">AnimeLovers</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: "In order to not be disabled, you are required to login to AnimeLovers at least once every 90 days."
login:
path: /api/torrents
method: get
error:
- selector: a[href*="/login"]
message:
text: "The API key was not accepted by {{ .Config.sitelink }}."
- selector: :root:contains("Account is Banned")
search:
paths:
# https://hdinnovations.github.io/UNIT3D/torrent_api.html
# https://github.com/HDInnovations/UNIT3D/blob/master/app/Http/Controllers/API/TorrentController.php#L657
- 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
title_filename:
selector: "files[0].name"
optional: true
files:
selector: num_file
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 }}"
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: [" & ", "_&_"]
_internal:
selector: internal
case:
False: "{{ .False }}"
True: "{{ .True }}"
description:
text: "{{ if .Result._internal }}Internal{{ else }}{{ end }}{{ if and .Result._internal .Result.genre }} | {{ else }}{{ end }}{{ .Result.genre }}"
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
_featured:
selector: featured
case:
False: "{{ .False }}"
True: "{{ .True }}"
downloadvolumefactor_freeleech:
# 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
downloadvolumefactor:
text: "{{ if .Result._featured }}0{{ else }}{{ .Result.downloadvolumefactor_freeleech }}{{ end }}"
uploadvolumefactor_double_upload:
# api returns False, True
selector: double_upload
case:
False: 1 # normal
True: 2 # double
uploadvolumefactor:
text: "{{ if .Result._featured }}2{{ else }}{{ .Result.uploadvolumefactor_double_upload }}{{ end }}"
# global MR is 0.4 but torrents must be seeded for 7 days regardless of ratio
# minimumratio:
# text: 0.4
minimumseedtime:
# 7 days (as seconds = 7 x 24 x 60 x 60)
text: 604800
# json UNIT3D 9.1.5
@@ -0,0 +1,160 @@
---
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: login.php
method: form
form: form
inputs:
username: "{{ .Config.username }}"
password: "{{ .Config.password }}"
referer: /
selectorinputs:
csrf_token:
selector: input[name="csrf_token"]
attribute: value
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
@@ -0,0 +1,206 @@
---
id: animeworld-api
name: AnimeWorld (API)
description: "AnimeWorld (AW) is a GERMAN Private Torrent Tracker 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 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: "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 }}."
- selector: :root:contains("Account is Banned")
search:
paths:
# https://hdinnovations.github.io/UNIT3D/torrent_api.html
# https://github.com/HDInnovations/UNIT3D/blob/master/app/Http/Controllers/API/TorrentController.php#L657
- 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 }}" # disabled due to Prowlarr/Indexers#486
# episodeNumber: "{{ .Query.Ep }}" # disabled due to Prowlarr/Indexers#486
# 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_optional:
selector: name
title_filename:
selector: "files[0].name"
optional: true
files:
selector: num_file
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 }}"
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: [" & ", "_&_"]
_internal:
selector: internal
case:
False: "{{ .False }}"
True: "{{ .True }}"
description:
text: "{{ if .Result._internal }}Internal{{ else }}{{ end }}{{ if and .Result._internal .Result.genre }} | {{ else }}{{ end }}{{ .Result.genre }}"
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
_featured:
selector: featured
case:
False: "{{ .False }}"
True: "{{ .True }}"
downloadvolumefactor_freeleech:
# 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
downloadvolumefactor:
text: "{{ if .Result._featured }}0{{ else }}{{ .Result.downloadvolumefactor_freeleech }}{{ end }}"
uploadvolumefactor_double_upload:
# api returns False, True
selector: double_upload
case:
False: 1 # normal
True: 2 # double
uploadvolumefactor:
text: "{{ if .Result._featured }}2{{ else }}{{ .Result.uploadvolumefactor_double_upload }}{{ end }}"
# global MR is 1.0 but torrents must be seeded for 7 days regardless of ratio
# minimumratio:
# text: 1.0
minimumseedtime:
# 7 days (as seconds = 7 x 24 x 60 x 60)
text: 604800
# json UNIT3D 8.1.3 (custom)
@@ -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
@@ -0,0 +1,180 @@
---
id: anthelion-api
replaces:
- tehconnectionme
- anthelion
name: Anthelion (API)
description: "Anthelion (ANT) is a Private Torrent Tracker for MOVIES"
language: en-US
type: private
encoding: UTF-8
# Status: https://ant.trackerstatus.info/
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
filters:
- name: toupper
_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._resolution }} {{ .Result._media }} {{ .Result._container }} {{ .Result._codec }} {{ .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 }}"
- name: replace
args: ["M2TS H265", "M2TS HEVC"]
- name: replace
args: ["M2TS H264", "M2TS AVC"]
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
@@ -0,0 +1,235 @@
---
id: arabafenice
name: ArabaFenice
description: "Araba Fenice (Phoenix) is an ITALIAN Private Torrent Tracker for MOVIES / TV / 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
+176
View File
@@ -0,0 +1,176 @@
---
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)"}
# المرئيات الاجنبية 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)"}
- {id: 118, cat: Audio, desc: "برامج صوتية (Programs)"}
# برامج Software
- {id: 22, cat: PC, desc: "برامج عربية (Arabic Software)"}
- {id: 23, cat: PC, desc: "برامج عامه (Public Software)"}
# اخرى 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.net/index.php?page=torrents&search=&category=0&active=0&internel=0&order=3&by=2
- path: index.php
inputs:
page: torrents
search: "{{ .Keywords }}"
# does not support multi categories, default to All
category: 0
# 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#torrents_list_p > tbody > tr:has(a[href^="download.php?id="]), table#torrents_list_p > tbody > tr:has(a[href^="magnet:?xt="])
filters:
- name: andmatch
fields:
category:
selector: a[href^="index.php?page=torrents&category="]:last-child
attribute: href
filters:
- name: querystring
args: category
title:
selector: a[href^="index.php?page=torrent-details"]
details:
selector: a[href^="index.php?page=torrent-details"]
attribute: href
download:
selector: a[href^="download.php?id="]
attribute: href
optional: true
magnet:
selector: a[href^="magnet:?xt="]
attribute: href
optional: true
date:
selector: span.upload-date > span
attribute: title
# auto adjusted by site account profile
filters:
- name: dateparse
args: "MM-yy-dd HH:mm:ss tt"
size:
selector: span.size
seeders:
selector: span[title="Seeders"]
leechers:
selector: span[title="Leechers"]
downloadvolumefactor:
case:
span.free: 0
"*": 1
uploadvolumefactor:
text: 1
minimumratio:
text: 0.8
minimumseedtime:
text: 259200 # 3 days
# xbtit
@@ -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
+203
View File
@@ -0,0 +1,203 @@
---
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
certificates:
- c25aba843f815e92d0da0bbe3191326d16a81a32 # expired 15th Oct 2025
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: 60, cat: TV/UHD, desc: "Series / 4K"}
- {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
@@ -0,0 +1,194 @@
---
id: asiancinema
name: AsianCinema
description: "AsianCinema is a Private Tracker for ASIAN MOVIES / TV / MUSIC"
language: en-US
type: private
encoding: UTF-8
links:
- https://eiga.moi/
legacylinks:
- 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:
# note APIKEY is broken on this 5.3.0 site
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 5.3.0
@@ -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
@@ -0,0 +1,170 @@
---
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_cookie
type: info_cookie
- 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:
# using cookie method because site regularly disables login page for certain events during the year
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
@@ -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
@@ -0,0 +1,92 @@
---
id: aussierules
name: Aussierul.es
description: "AussieRul.es is a Private Torrent Tracker for AUSTRALIAN RULES FOOTBALL"
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
+160
View File
@@ -0,0 +1,160 @@
---
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: cookie
type: text
label: Cookie
- name: info_cookie
type: info_cookie
- 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:
# using cookie method because site regularly disables login page for certain events during the year
method: cookie
inputs:
cookie: "{{ .Config.cookie }}"
test:
path: index.php
selector: a[href^="logout.php?csrf_token="]
search:
paths:
- path: torrents.php
allowEmptyInputs: true
inputs:
$raw: "{{ range .Categories }}cat{{.}}=1&{{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 }}"
inclbookmarked: 0
approval_status: ""
trackerStatus: ""
search: "{{ .Keywords }}"
# 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 }}"
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: a[href$="dllist=1#seeders"]
optional: true
default: 0
leechers:
selector: a[href$="dllist=1#leechers"]
optional: true
default: 0
grabs:
selector: a[href^="viewsnatches.php?id="]
optional: true
default: 0
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 (custom)
+188
View File
@@ -0,0 +1,188 @@
---
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: 100, cat: Console, desc: "Anbernic"}
- {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: 42, cat: Console, desc: "CoinOPS Official"}
- {id: 65, cat: Console, desc: "CoinOps Unofficial"}
- {id: 22, cat: Console, desc: "CoinOps"}
- {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: 80, cat: PC, desc: "Emulation Media"}
- {id: 61, cat: PC, desc: "emuxtras"}
- {id: 89, cat: PC, desc: "Ghostware"}
- {id: 84, cat: TV, desc: "GOG DRM FREE"}
- {id: 77, cat: PC, desc: "Hyperspin"}
- {id: 34, cat: TV, desc: "Kids"}
- {id: 43, cat: Console, desc: "LB No Intro"}
- {id: 85, cat: PC, desc: "MAME Rom Sets"}
- {id: 33, cat: TV/Sport, desc: "MMA/Boxing"}
- {id: 32, cat: Movies, desc: "Movie Pack"}
- {id: 106, cat: Movies/UHD, desc: "Movie Pack 4K"}
- {id: 6, cat: Movies, desc: "Movies"}
- {id: 105, cat: Movies/UHD, desc: "Movies 4K"}
- {id: 82, cat: PC, desc: "MS-DOS"}
- {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: 87, cat: Console, desc: "Playnite"}
- {id: 30, cat: Console, desc: "Playstation"}
- {id: 62, cat: PC, desc: "Raspberry Pi"}
- {id: 83, cat: PC, desc: "Retro eXo"}
- {id: 56, cat: PC, desc: "Retro Minis"}
- {id: 81, cat: PC, desc: "Retro Scene Releases"}
- {id: 67, cat: PC, desc: "Retrobat"}
- {id: 88, cat: PC, desc: "RetroFE"}
- {id: 79, cat: PC, desc: "RGB-Pi"}
- {id: 76, cat: Console, desc: "RGS"}
- {id: 27, cat: PC, desc: "Roms and Emulators"}
- {id: 68, cat: PC, desc: "Schmoomer's"}
- {id: 57, cat: Console, desc: "Sega"}
- {id: 74, cat: PC, desc: "Sleyk/SGC"}
- {id: 29, cat: TV/Sport, desc: "Sport"}
- {id: 90, cat: PC, desc: "TeknoParrot"}
- {id: 9, cat: TV, desc: "TV Packs"}
- {id: 11, cat: TV, desc: "TV Shows"}
- {id: 97, cat: TV/Other, desc: "Video Courses"}
- {id: 75, cat: TV, desc: "Video Game Music"}
- {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
@@ -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
+159
View File
@@ -0,0 +1,159 @@
---
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_cookie
type: info_cookie
- 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:
# using cookie method because login page has embedded Google reCAPTCHA
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
@@ -0,0 +1,120 @@
---
id: best-torrents
name: Best-Torrents
description: "Best-Torrents is a POLISH Semi-Private PAY2DL Torrent Tracker for MOVIES / TV / GENERAL"
language: pl-PL
type: semi-private
encoding: UTF-8
links:
- https://best-torrents.com/
caps:
categorymappings:
- {id: 774, cat: Movies, desc: Filmy Polskie}
- {id: 642, cat: Movies, desc: Filmy/Bajki}
- {id: 1, cat: Movies/SD, desc: Filmy XviD/DivX}
- {id: 20, cat: Movies/DVD, desc: Filmy DVD}
- {id: 23, cat: Movies/HD, desc: Filmy x264}
- {id: 573, cat: Movies/UHD, desc: Filmy 4K UHD}
- {id: 17, cat: Movies/HD, desc: Filmy HD}
- {id: 265, cat: Movies/HD, desc: Filmy x265 HEVC}
- {id: 12, cat: Movies/3D, desc: Filmy 3D}
- {id: 530, cat: Movies/SD, desc: Filmy TS/CAM}
- {id: 9, cat: PC, desc: Programy}
- {id: 7, cat: Console, desc: Konsole}
- {id: 6, cat: PC/Games, desc: Gry}
- {id: 5, cat: Audio, desc: Muzyka}
- {id: 305, cat: Audio/Video, desc: Teledyski}
- {id: 22, cat: TV, desc: TV}
- {id: 228, cat: XXX, desc: Erotyka}
- {id: 25, cat: Books/EBook, desc: Książki}
- {id: 739, cat: Audio/Audiobook, desc: AudioBooki}
- {id: 26, cat: Books/Comics, desc: Komiksy}
- {id: 27, cat: PC/Mac, desc: Linux/Mac}
- {id: 28, cat: TV/Sport, desc: Sport}
- {id: 29, cat: TV/Anime, desc: Anime}
- {id: 31, cat: PC/Mobile-Other, desc: GSM/PDA}
- {id: 32, cat: Other, desc: Inne}
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
login:
path: takelogin.php
method: post
inputs:
username: "{{ .Config.username }}"
password: "{{ .Config.password }}"
error:
- selector: td.komunikaty:contains("Nazwa użytkownika bądź hasło jest nieprawidłowe")
test:
path: /
selector: a[href$="/logout.php"]
search:
# https://best-torrents.com/szukaj.php?search=%25&cat=774&full_name=no
paths:
- path: szukaj.php
inputs:
# does not appear to support multi category searches
cat: 0
# no, 0 Standard mode, 1 Initial mode, 2 Full Phrase mode, 3 Final mode
full_name: no
search: "{{ if .Keywords }}{{ .Keywords }}{{ else }}%{{ end }}"
rows:
selector: div#torrents_browse-standard-all
fields:
categorydesc:
selector: div#torrents_browse-standard-category a
attribute: href
filters:
- name: regexp
args: kategorii/(.+?)/gatunku
title:
selector: div#torrents_browse-standard-torrent-name a
details:
selector: div#torrents_browse-standard-torrent-name a
attribute: href
download:
selector: div#torrents_browse-standard-download a
attribute: href
poster:
selector: div#torrents_browse-standard-poster img
attribute: src
date:
selector: div#torrents_browse-standard-time
remove: b
filters:
- name: append
args: " +01:00" # CET
- name: dateparse
args: "yyyy-MM-dd HH:mm:ss zzz"
size:
selector: div#torrents_browse-standard-size
remove: b
filters:
- name: regexp
args: (\d{1,4}\.\d{2}\s+?[T|G|M|k]B)
seeders:
selector: div#torrents_browse-standard-seeds span font
leechers:
selector: div#torrents_browse-standard-peers span font
downloadvolumefactor:
text: 0
uploadvolumefactor:
text: 1
# engine n/a
@@ -0,0 +1,209 @@
---
id: bestcore
name: Best-Core
description: "Best-Core is a HUNGARIAN Private Tracker for MOVIES / TV / GENERAL"
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 }}"
error:
- selector: :root:contains("Sikertelen bejelentkezés")
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
@@ -0,0 +1,141 @@
---
id: bibliotik
name: Bibliotik
description: "Bibliotik is a Private Torrent Tracker 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
+152
View File
@@ -0,0 +1,152 @@
---
id: bigcore
name: BigCore
description: "BigCore is a HUNGARIAN Private Tracker for MOVIES / TV / GENERAL"
language: hu-HU
type: private
encoding: UTF-8
links:
- https://bigcore.eu/
caps:
categorymappings:
- {id: 48, cat: Movies/SD, desc: "CAM/Hun"}
- {id: 49, cat: Movies/SD, desc: "CAM/Eng"}
- {id: 50, cat: Movies/SD, desc: "SD/Hun"}
- {id: 51, cat: Movies/SD, desc: "SD/Eng"}
- {id: 52, cat: Movies/DVD, desc: "DVD/Hun"}
- {id: 53, cat: Movies/DVD, desc: "DVD/Eng"}
- {id: 54, cat: Movies/HD, desc: "HD/Hun"}
- {id: 55, cat: Movies/HD, desc: "HD/Eng"}
- {id: 56, cat: TV, desc: "Sorozat/Hun"}
- {id: 57, cat: TV, desc: "Sorozat/Eng"}
- {id: 58, cat: PC/Games, desc: "Játék/ISO"}
- {id: 59, cat: PC/ISO, desc: "Program/ISO"}
- {id: 60, cat: PC/Games, desc: "Játék/RIP"}
- {id: 61, cat: PC/0day, desc: "Program/RIP"}
- {id: 62, cat: Audio, desc: "Zene/Hun"}
- {id: 63, cat: Audio, desc: "Zene/Eng"}
- {id: 64, cat: Books, desc: "Könyv"}
- {id: 65, cat: PC/Mobile-Other, desc: "Mobil"}
- {id: 66, cat: XXX/x264, desc: "XXX/Video"}
- {id: 67, cat: XXX/ImageSet, 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_cookie
type: info_cookie
- 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
- 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>100</b> on your account profile. The default is <i>30</i>.
login:
# using cookie method because login page has embedded Google reCAPTCHA
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 myupload, 4 waiting for seed
incldead: 1
sort: "{{ .Config.sort }}"
type: "{{ .Config.type }}"
rows:
selector: tr[id^="torrent_row_"], tr[id^="hidden_torrent_row_"]
after: 1
fields:
category:
selector: a[href^="browse.php?cat="]
attribute: href
filters:
- name: querystring
args: cat
title:
selector: a#torrentName
attribute: title
_id:
selector: a[href^="download.php?torrent="]
attribute: href
filters:
- name: querystring
args: torrent
details:
text: "details.php?id={{ .Result._id }}"
download:
selector: a[href^="download.php?torrent="]
attribute: href
poster:
selector: a[href^="kepek/"]
attribute: href
files:
selector: a.viewFileList
date:
selector: td:nth-child(7) a[title]
attribute: title
filters:
- name: append
args: " +01:00" # CET
- name: dateparse
args: "yyyy-MM-dd HH:mm:ss zzz"
size:
selector: td:nth-child(8)
grabs:
selector: td:nth-child(9)
seeders:
selector: td:nth-child(10)
leechers:
selector: td:nth-child(11)
description:
case:
i.fa-check: "Verified"
i.fa-question: "Unverified"
downloadvolumefactor:
case:
span:contains("0x"): 0
"*": 1
uploadvolumefactor:
case:
span:contains("2x"): 2
span:contains("3x"): 3
span:contains("4x"): 4
span:contains("5x"): 5
"*": 1
minimumseedtime:
# 1 days (as seconds = 1 x 24 x 60 x 60)
text: 86400
# engine n/a
@@ -0,0 +1,232 @@
---
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:
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: "{{ if .Keywords }}0{{ else }}{{ end }}"
# 0 active, 1 incldead, 2 onlydead, 3 gold, 4 noseed, 5 silver, 7 BFG
incldead: "{{ if .Keywords }}1{{ else }}{{ end }}"
year: "{{ if .Keywords }}0{{ else }}1{{ end }}"
format: "{{ if .Keywords }}0{{ else }}{{ end }}"
s: "{{ if .Keywords }}{{ .Config.sort }}{{ else }}{{ end }}"
d: "{{ if .Keywords }}{{ .Config.type }}{{ else }}{{ end }}"
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
@@ -0,0 +1,184 @@
---
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:
# dont forget to update the path categories in the search block
categorymappings:
- {id: 15, cat: Movies/SD, desc: "Film-SD", default: true}
- {id: 83, cat: Movies/HD, desc: "Film-HD", default: true}
- {id: 94, cat: Movies/HD, desc: "Film-FHD", default: true}
- {id: 85, cat: Movies/SD, desc: "Film-Cam", default: true}
- {id: 22, cat: TV, desc: "Sorozat-Hun", 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: 27, cat: Books/EBook, desc: "Könyv", default: true}
- {id: 81, cat: PC/0day, desc: "Program", default: true}
- {id: 31, cat: PC/Games, desc: "Játék", default: true}
- {id: 69, cat: TV/Anime, desc: "Mese-SD", default: true}
- {id: 91, cat: TV/Anime, desc: "Mese-HD", default: true}
- {id: 64, cat: Movies, desc: "Film-Pack", default: true}
- {id: 92, cat: Movies/UHD, desc: "Film-UHD", 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}
- {id: 24, cat: Audio/Video, desc: "Klip", default: true}
- {id: 14, cat: Other, desc: "Egyéb", default: true}
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_cookie
type: info_cookie
- 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: a[onclick="confirmLogout()"]
search:
paths:
- path: browse.php
categories: [15, 83, 94, 85, 22, 25, 26, 84, 71, 27, 81, 31, 69, 91, 64, 92, 24, 14]
inputs:
# 0 all, 1 active, 2 deadonly, 3 myuploads, 4 zeroseed, 6 re-seeded
incldead: 0
- path: browse.php
categories: [33, 66, 89]
inputs:
xxx: 1
# 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\"]:has(i.status-yes){{ if .Config.freeleech }}:has(i:contains(\"(Free)\")){{ else }}{{ end }}"
fields:
categorydesc:
selector: td[class^="catpic_"]
attribute: class
filters:
- name: replace
args: ["catpic_", ""]
title:
selector: span.torrent-name
_id:
selector: tr[data-torrent-id]
attribute: data-torrent-id
details:
text: "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.torrent-size
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.uploader
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
seeders:
selector: td:nth-child(5)
optional: true
default: 0
leechers:
selector: td:nth-child(6)
optional: true
default: 0
grabs:
selector: td:nth-child(7)
optional: true
default: 0
genre:
selector: span.torrent-genre
description:
text: "{{ .Result.genre }}"
downloadvolumefactor:
case:
"i:contains(\"(Free)\")": 0
"*": 1
uploadvolumefactor:
case:
"i:contains(\"(2x)\")": 2
"i:contains(\"(3x)\")": 3
"i:contains(\"(4x)\")": 4
"*": 1
minimumseedtime:
# 1 day (as seconds = 1 x 24 x 60 x 60)
text: 86400
# engine n/a
+146
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
@@ -0,0 +1,160 @@
---
id: bitgamer
name: bitGAMER
description: "bitGAMER is a Private Torrent Tracker for GAMES"
language: en-US
type: private
encoding: UTF-8
links:
- https://bitgamer.ch/
caps:
categorymappings:
- {id: 1, cat: XXX/Other, desc: "Adult Games"}
- {id: 3, cat: PC/0day, desc: "Burning/Ripping Tools"}
- {id: 4, cat: Books/Other, desc: "Guides/Game Documents"}
- {id: 13, cat: Movies/Other, desc: "Movies/TV/Video"}
- {id: 48, cat: Audio/Other, desc: "Music/OST"}
- {id: 52, cat: Console/Other, desc: "Amiga"}
- {id: 18, cat: PC/Mobile-iOS, desc: "Apple - iPhone/iPod/iPad"}
- {id: 54, cat: Console/Other, desc: "Arcade"}
- {id: 19, cat: Console/Other, desc: "Atari"}
- {id: 51, cat: Console/Other, desc: "Commodore 64"}
- {id: 22, cat: PC/Mobile-Android, desc: "Google - Android"}
- {id: 61, cat: Console/Other, desc: "Hyperspin"}
- {id: 24, cat: Console/XBox, desc: "Microsoft - Xbox"}
- {id: 25, cat: Console/XBox 360, desc: "Microsoft - Xbox 360"}
- {id: 49, cat: Console/XBox 360, desc: "Microsoft - Xbox 360 JTAG"}
- {id: 57, cat: Console/XBox One, desc: "Microsoft - Xbox One"}
- {id: 27, cat: Console/Other, desc: "Neo Geo"}
- {id: 55, cat: Console/3DS, desc: "Nintendo - 3DS"}
- {id: 28, cat: Console/NDS, desc: "Nintendo - DS"}
- {id: 29, cat: Console/Other, desc: "Nintendo - Game Boy Advance"}
- {id: 30, cat: Console/Other, desc: "Nintendo - Gameboy"}
- {id: 31, cat: Console/Other, desc: "Nintendo - Gamecube "}
- {id: 33, cat: Console/Other, desc: "Nintendo - N64 "}
- {id: 35, cat: Console/Other, desc: "Nintendo - NES"}
- {id: 50, cat: Console/Other, desc: "Nintendo - SNES"}
- {id: 63, cat: Console/Other, desc: "Nintendo - Switch"}
- {id: 37, cat: Console/Wii, desc: "Nintendo - Wii"}
- {id: 59, cat: Console/WiiU, desc: "Nintendo - Wii U"}
- {id: 53, cat: PC/Games, desc: "PC - DOS"}
- {id: 64, cat: PC/Games, desc: "PC - Linux"}
- {id: 39, cat: PC/Mac, desc: "PC - Mac OS X"}
- {id: 40, cat: PC/Games, desc: "PC - Windows"}
- {id: 41, cat: Console/Other, desc: "Sega"}
- {id: 42, cat: Console/Other, desc: "Sega - Dreamcast"}
- {id: 43, cat: Console/Other, desc: "Sega - Megadrive"}
- {id: 44, cat: Console/Other, desc: "Sony - Playstation"}
- {id: 45, cat: Console/Other, desc: "Sony - Playstation 2"}
- {id: 46, cat: Console/PS3, desc: "Sony - Playstation 3"}
- {id: 56, cat: Console/PS4, desc: "Sony - Playstation 4"}
- {id: 47, cat: Console/PSP, desc: "Sony - Playstation Portable "}
- {id: 58, cat: Console/PS Vita, desc: "Sony - Playstation Vita"}
modes:
search: [q]
book-search: [q]
allowrawsearch: true
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
login:
path: takelogin.php
method: post
inputs:
username: "{{ .Config.username }}"
password: "{{ .Config.password }}"
error:
- selector: td:has(:contains("Login failed"))
test:
path: my.php
selector: a[href^="logout.php"]
search:
paths:
- path: browse.php
inputs:
search: "{{ .Keywords }}"
# multi-cat search appears to be broken on site
category: 0
# 0: name, 1: descr, 2: both
blah: 0
# 0: include dead, 1: alive, 2: dead, 3: freeleech
incldead: "{{ if .Config.freeleech }}3{{ else }}0{{ end }}"
sort: "{{ .Config.sort }}"
type: "{{ .Config.type }}"
rows:
selector: .outer > form > 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"][title]
attribute: title
details:
selector: a[href^="details.php"]
attribute: href
download:
selector: a[href^="download.php"]
attribute: href
date:
# several old torrents with `0000-00-00 00:00:00` dates
selector: td:nth-child(5):not(:contains("000-00-0000:00:00"))
filters:
- name: append
args: " +00:00" # GMT
- name: dateparse
args: "yyyy-MM-ddHH:mm:ss zzz"
optional: true
default: now
size:
selector: td:nth-child(6)
seeders:
selector: td:nth-child(10)
leechers:
selector: td:nth-child(11)
grabs:
selector: td:nth-child(7)
downloadvolumefactor:
case:
img[src*="/freeleech.png"]: 0
"*": 1
minimumratio:
text: 1.0
minimumseedtime:
# 2 days (as seconds = 2 x 24 x 60 x 60)
text: 172800
# engine n/a
@@ -0,0 +1,182 @@
---
id: bithumen
name: BitHUmen
description: "BitHUmen is a HUNGARIAN Private Torrent Tracker for MOVIES / TV / 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]
settings:
- name: cookie
type: text
label: Cookie
- name: info_cookie
type: info_cookie
- 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_activity
type: info
label: Account Inactivity
default: "If you do not visit the site for 1 year, you will be banned for inactivity. The permanent deletion of your account after the ban is 2 years."
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 }}"
onlytitle: "{{ if .Query.IMDBID }}{{ else }}yes{{ end }}"
sort: "{{ .Config.sort }}"
d: "{{ .Config.type }}"
rows:
selector: table#torrenttable > 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[href^="details.php?id="]
attribute: title
optional: true
default: "{{ .Result.title_default }}"
details:
selector: a[href^="details.php?id="]
attribute: href
# download button can be disabled in the profile, use details link instead
download:
selector: a[href^="details.php?id="]
attribute: href
filters:
- name: replace
args: ["details.php?id=", "download.php/"]
- name: append
args: "/invalid.torrent"
poster:
selector: a[onmouseover^="bithumen.UI.images.coverShow"]
attribute: onmouseover
filters:
- name: regexp
args: "\"(.*?)\""
imdbid:
selector: a[href*="imdb.com/title/tt"]
attribute: href
size:
selector: td:nth-child(6) > u
files:
selector: td:nth-child(3)
grabs:
selector: td:nth-child(7)
seeders:
selector: td:nth-child(8)
leechers:
selector: td:nth-child(9)
filters:
- name: regexp
args: /\s*([\d,]+)
genre:
selector: span:has(a[href^="browse.php?genre="])
downloadvolumefactor:
text: 0
uploadvolumefactor:
selector: td:nth-child(5) > nobr > font:contains(" × ")
optional: true
default: 1
minimumseedtime:
# 1 day (as seconds = 24 x 60 x 60)
text: 86400
description:
selector: td:nth-child(2) > div
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 }}"
# engine tbd
@@ -0,0 +1,82 @@
---
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/
- http://bitmagnet: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
@@ -0,0 +1,166 @@
---
id: bitpalace
name: Bitpalace
description: "Bitpalace is a HUNGARIAN Private Torrent Tracker for MOVIES / TV / GENERAL"
language: hu-HU
type: private
encoding: UTF-8
links:
- https://bitpalace.cc/
caps:
categorymappings:
- {id: 8, cat: Movies/BluRay, desc: "BLUERAY ENG"}
- {id: 7, cat: Movies/BluRay, desc: "BLUERAY HUN"}
- {id: 15, cat: Movies/DVD, desc: "DVD-R ENG"}
- {id: 2, cat: Movies/DVD, desc: "DVD-R HUN"}
- {id: 9, cat: Books, desc: "Ebook ENG"}
- {id: 5, cat: Books, desc: "Ebook HUN"}
- {id: 40, cat: Other, desc: "EGYÉBB"}
- {id: 16, cat: Movies/HD, desc: "HD ENG"}
- {id: 1, cat: Movies/HD, desc: "HD HUN"}
- {id: 25, cat: TV/Anime, desc: "MESE ENG"}
- {id: 24, cat: TV/Anime, desc: "MESE HUN"}
- {id: 18, cat: PC/Games, desc: "PC game ISO"}
- {id: 21, cat: Console, desc: "PC game KONZOL"}
- {id: 17, cat: PC/Games, desc: "PC game RIP"}
- {id: 27, cat: PC/ISO, desc: "Program ISO"}
- {id: 26, cat: PC/Mobile-Other, desc: "Program MOBIL"}
- {id: 78, cat: PC/0day, desc: "Program RIP"}
- {id: 23, cat: TV/SD, desc: "Sor.DVD-R ENG"}
- {id: 22, cat: TV/SD, desc: "Sor.DVD-R HUN"}
- {id: 14, cat: TV/SD, desc: "Sor.XVID ENG"}
- {id: 4, cat: TV, desc: "Sorozat HUN"}
- {id: 13, cat: Movies/SD, desc: "XVID ENG"}
- {id: 3, cat: Movies/SD, desc: "XVID HUN"}
- {id: 12, cat: XXX/DVD, desc: "XXX DVD-R"}
- {id: 6, cat: XXX/x264, desc: "XXX HD"}
- {id: 10, cat: XXX/ImageSet, desc: "XXX KÉPEK"}
- {id: 11, cat: XXX/XviD, desc: "XXX XVID"}
- {id: 19, cat: Audio/Video, desc: "ZENE Klipp"}
- {id: 20, cat: Audio/MP3, desc: "ZENE MP3"}
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: 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
method: form
form: form[action="/login_check"]
inputs:
_username: "{{ .Config.username }}"
_password: "{{ .Config.password }}"
logout: ""
error:
- selector: h3[style="color:red"]
test:
path: my
selector: a[href="/logout"]
search:
paths:
- path: browse
keywordsfilters:
# the site uses % for wildcard
- name: re_replace
args: ["[^a-zA-Z0-9]+", "%"]
inputs:
$raw: "{{ range .Categories }}cat[]={{.}}&{{end}}"
search: "{{ .Keywords }}"
# 0 active, 1 incldead, 2 onlydead
incldead: 1
sort: "{{ .Config.sort }}"
order: "{{ .Config.type }}"
# does not support imdbid searches
rows:
selector: "table#torrenttable > tbody > tr:has(a[onclick]):not(:contains(\"Törölt\")){{ if .Config.freeleech }}:has(img[src$=\"/freeicon.png\"]){{ else }}{{ end }}"
fields:
categorydesc:
selector: img
attribute: alt
title:
selector: a[onclick]
remove: style
_id:
selector: a[onclick]
attribute: onclick
filters:
- name: regexp
args: (\d+)
details:
text: "details?id={{ .Result._id }}"
download:
text: "/raw/download?id={{ .Result._id }}&name={{ .Result.title }}.torrent"
imdbid:
selector: a[href*="imdb.com/title/tt"]
attribute: href
description:
case:
img[src$="/yes.png"]: "Verified"
img[src$="/nincs.png"]: "Unverified"
poster:
selector: img[width="200"][height="250"]
attribute: src
date:
selector: td:nth-last-child(6)
filters:
- name: append
args: " +01:00" # CET
- name: dateparse
args: "yyyy-MM-dd HH: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$="/freeicon.png"]: 0
"*": 1
uploadvolumefactor:
case:
img[src$="/2xup.jpg"]: 2
"*": 1
minimumratio:
text: 1.0
minimumseedtime:
# 2 days (as seconds = 2 x 24 x 60 x 60)
text: 172800
# engine n/a
+194
View File
@@ -0,0 +1,194 @@
---
id: bitporn
name: BitPorn (API)
description: "BitPorn (Malacka) is a HUNGARIAN Private Torrent Tracker for 3X"
language: hu-HU
type: private
encoding: UTF-8
links:
- https://bitporn.eu/
caps:
categorymappings:
- {id: 4, cat: XXX, desc: Amateur"}
- {id: 5, cat: XXX, desc: Anal"}
- {id: 6, cat: XXX, desc: Asian"}
- {id: 7, cat: XXX, desc: BBW"}
- {id: 8, cat: XXX, desc: BDSM"}
- {id: 9, cat: XXX, desc: Big Ass"}
- {id: 10, cat: XXX, desc: Big Tits"}
- {id: 11, cat: XXX, desc: Black"}
- {id: 12, cat: XXX, desc: Cartoon"}
- {id: 13, cat: XXX, desc: Casting"}
- {id: 14, cat: XXX, desc: Classic"}
- {id: 15, cat: XXX, desc: Collection"}
- {id: 16, cat: XXX, desc: Creampie"}
- {id: 17, cat: XXX, desc: Cumshot"}
- {id: 18, cat: XXX, desc: Deepthroat"}
- {id: 19, cat: XXX, desc: Extreme"}
- {id: 20, cat: XXX, desc: Fansite"}
- {id: 21, cat: XXX, desc: Family"}
- {id: 22, cat: XXX, desc: Feature"}
- {id: 23, cat: XXX, desc: Fetish"}
- {id: 24, cat: XXX, desc: Fisting"}
- {id: 25, cat: XXX, desc: Gangbang"}
- {id: 26, cat: XXX, desc: Game"}
- {id: 27, cat: XXX, desc: Gay / Bi"}
- {id: 28, cat: XXX, desc: Hair"}
- {id: 29, cat: XXX, desc: Hardcore"}
- {id: 30, cat: XXX, desc: HiddenCam"}
- {id: 31, cat: XXX, desc: Homemade"}
- {id: 32, cat: XXX, desc: Interracial"}
- {id: 33, cat: XXX, desc: Lesbian"}
- {id: 34, cat: XXX, desc: Magyar"}
- {id: 35, cat: XXX, desc: Masturbation"}
- {id: 36, cat: XXX, desc: Mature"}
- {id: 37, cat: XXX, desc: Milf"}
- {id: 53, cat: XXX, desc: Movie"}
- {id: 38, cat: XXX, desc: Old and Young"}
- {id: 39, cat: XXX, desc: Parody"}
- {id: 40, cat: XXX, desc: Pictures"}
- {id: 41, cat: XXX, desc: Pissing"}
- {id: 42, cat: XXX, desc: POV"}
- {id: 43, cat: XXX, desc: Pregnant"}
- {id: 44, cat: XXX, desc: Public"}
- {id: 45, cat: XXX, desc: Shemale"}
- {id: 46, cat: XXX, desc: Softcore"}
- {id: 47, cat: XXX, desc: Squirt"}
- {id: 48, cat: XXX, desc: Straight"}
- {id: 49, cat: XXX, desc: Teen"}
- {id: 50, cat: XXX, desc: Threesome"}
- {id: 51, cat: XXX, desc: VR"}
- {id: 52, cat: XXX, desc: Uncategorized"}
modes:
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://bitporn.eu/\" target=\"_blank\">BitPorn</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: "You must log in to the site at least once a month; otherwise, your account will be suspended."
login:
path: /api/torrents
method: get
error:
- selector: a[href*="/login"]
message:
text: "The API key was not accepted by {{ .Config.sitelink }}."
- selector: :root:contains("Account is Banned")
search:
paths:
# https://hdinnovations.github.io/UNIT3D/torrent_api.html
# https://github.com/HDInnovations/UNIT3D/blob/master/app/Http/Controllers/API/TorrentController.php#L657
- 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 }}"
"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
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
_featured:
selector: featured
case:
False: "{{ .False }}"
True: "{{ .True }}"
downloadvolumefactor_freeleech:
# 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
downloadvolumefactor:
text: "{{ if .Result._featured }}0{{ else }}{{ .Result.downloadvolumefactor_freeleech }}{{ end }}"
uploadvolumefactor_double_upload:
# api returns False, True
selector: double_upload
case:
False: 1 # normal
True: 2 # double
uploadvolumefactor:
text: "{{ if .Result._featured }}2{{ else }}{{ .Result.uploadvolumefactor_double_upload }}{{ end }}"
minimumratio:
text: 1.0
minimumseedtime:
# 48 hours (as seconds = 2 x 24 x 60 x 60)
text: 172800
# json UNIT3D 9.1.7 (custom)
+214
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
@@ -0,0 +1,146 @@
---
id: bitsearch
replaces:
- solidtorrents
name: BitSearch
description: "BitSearch (Solid Torrents) is a Public torrent meta-search engine"
language: en-US
type: public
encoding: UTF-8
links:
- https://bitsearch.to/
- https://solidtorrents.to/
legacylinks:
- https://bitsearch.nocensor.cloud/
- https://bitsearch.mrunblock.bond/
- https://solidtorrents.net/
- https://solidtorrents.nocensor.cloud/
- https://solidtorrents.eu/
caps:
categories:
Anime: TV/Anime
Anime/Dub/Dual Audio: TV/Anime
Anime/Raw: TV/Anime
Anime/Subbed: TV/Anime
AudioBook: Audio/Audiobook
Books: Books
Books/Academic: Books/EBook
Books/Comics: Books/Comics
Books/Fiction: Books/EBook
Books/Magazines: Books/Mags
Books/Non-fiction: Books/EBook
Ebook/Course: Books/EBook
Games: Console
Games/Console: Console
Games/Mobile: PC/Mobile-Other
Games/PC: PC/Games
Games/RIP: PC/Games
Movies: Movies
Movies/Dub/Dual Audio: Movies
Music: Audio
Music/Album: Audio
Music/Discography: Audio
Music/FLAC: Audio/Lossless
Music/Lossless: Audio/Lossless
Music/MP3: Audio/MP3
Music/Single: Audio
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
Other/Source Code: PC
Other/Video: TV
Softwares: PC/0day
Softwares/Android: PC/Mobile-Android
Softwares/Linux: PC
Softwares/MacOS: PC/Mac
Softwares/Windows: PC/0day
Softwares/iOS: PC/Mobile-iOS
TV: TV
modes:
search: [q]
tv-search: [q, season, ep]
movie-search: [q]
music-search: [q]
book-search: [q]
settings:
- name: sort
type: select
label: Sort requested from site.
default: created
options:
created: created
seeders: seeders
size: size
- name: type
type: select
label: Order requested from site.
default: desc
options:
desc: desc
asc: asc
download:
selectors:
- selector: a[href^="magnet:?xt"]
attribute: href
search:
paths:
# https://bitsearch.to/search?q=spongebob&sortBy=created&order=desc&page=1
- path: "{{ if .Keywords }}search?q={{ .Keywords }}&sortBy={{ .Config.sort }}&order={{ .Config.type }}&page=1{{ else }}latest{{ end }}"
keywordsfilters:
- name: re_replace
args: ["\\.", " "]
rows:
selector: div.space-y-4 > div.bg-white > div.items-start
fields:
category:
# latest, search
selector: div.space-y-2 > span:nth-child(1), span.space-x-1:nth-child(1)
title:
selector: h3 > a
details:
selector: h3 > a
attribute: href
download:
selector: h3 > a
attribute: href
size:
selector: div.space-y-2 > span:nth-child(2), span.space-x-1:nth-child(2)
date_year:
selector: div.space-y-2 > span:nth-child(3):contains("/"), span.space-x-1:nth-child(3):contains("/")
optional: true
filters:
- name: dateparse
args: "M/d/yyyy"
date_ago:
selector: div.space-y-2 > span:nth-child(3):contains("ago"), span.space-x-1:nth-child(3):contains("ago")
optional: true
filters:
- name: timeago
date:
text: "{{ if or .Result.date_year .Result.date_ago }}{{ or .Result.date_year .Result.date_ago }}{{ else }}now{{ end }}"
seeders:
selector: div.space-x-3 > span:nth-child(1), span:contains("seeders")
leechers:
selector: div.space-x-3 > span:nth-child(2), span:contains("leechers")
grabs:
selector: span:contains("downloads")
optional: true
downloadvolumefactor:
text: 0
uploadvolumefactor:
text: 1
# engine n/a
@@ -0,0 +1,181 @@
---
id: bitsexy-api
name: BitSexy (API)
description: "BitSexy is a Private Torrent Tracker for 3X"
language: en-US
type: private
encoding: UTF-8
links:
- https://bitsexy.cc/
caps:
categorymappings:
- {id: 1, cat: XXX/x264, desc: "Movies"}
- {id: 2, cat: XXX/Pack, desc: "Pack"}
- {id: 3, cat: XXX/ImageSet, desc: "Images"}
- {id: 4, cat: Console, desc: "Games"}
- {id: 5, cat: Books, desc: "Books"}
modes:
search: [q]
movie-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://bitsexy.cc/\" target=\"_blank\">BitSexy</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: "<ul><li>You must log in once every 60 days or seed at least 1 torrent to not get disabled</li><li>Once disabled, you have another 60 days to log back in and have your account re-activated. You may need to contact Helpdesk to do so</li><li>Disabled account will be deleted after 180 days of inactivity</li><ul>"
login:
path: /api/torrents
method: get
error:
- selector: a[href*="/login"]
message:
text: "The API key was not accepted by {{ .Config.sitelink }}."
- selector: :root:contains("Account is Banned")
search:
paths:
# https://hdinnovations.github.io/UNIT3D/torrent_api.html
# https://github.com/HDInnovations/UNIT3D/blob/master/app/Http/Controllers/API/TorrentController.php#L657
- 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 }}"
"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
title_filename:
selector: "files[0].name"
optional: true
files:
selector: num_file
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 }}"
details:
selector: details_link
download:
selector: download_link
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: replace
args: [" & ", "_&_"]
_internal:
selector: internal
case:
False: "{{ .False }}"
True: "{{ .True }}"
description:
text: "{{ if .Result._internal }}Internal{{ else }}{{ end }}{{ if and .Result._internal .Result.genre }} | {{ else }}{{ end }}{{ .Result.genre }}"
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
_featured:
selector: featured
case:
False: "{{ .False }}"
True: "{{ .True }}"
downloadvolumefactor_freeleech:
# 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
downloadvolumefactor:
text: "{{ if .Result._featured }}0{{ else }}{{ .Result.downloadvolumefactor_freeleech }}{{ end }}"
uploadvolumefactor_double_upload:
# api returns False, True
selector: double_upload
case:
False: 1 # normal
True: 2 # double
uploadvolumefactor:
text: "{{ if .Result._featured }}2{{ else }}{{ .Result.uploadvolumefactor_double_upload }}{{ end }}"
minimumseedtime:
# 2 days (as seconds = 2 x 24 x 60 x 60)
text: 172800
# json UNIT3D 9.1.7 (custom)
+188
View File
@@ -0,0 +1,188 @@
---
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: 1, cat: Movies, desc: "Filmler"}
- {id: 38, cat: Movies, desc: "Türk Filmi"}
- {id: 40, cat: Movies, desc: "Türkçe Film"}
- {id: 113, cat: Movies, desc: "Yabancı Dil"}
- {id: 77, cat: Movies/UHD, desc: "4K UHD / 3D"}
- {id: 16, cat: Movies, desc: "Animasyon"}
- {id: 31, cat: Movies, desc: "Belgesel"}
- {id: 112, cat: XXX, desc: "XxX"}
- {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: 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: 2, cat: Console, desc: "Oyun / Program"}
- {id: 44, cat: Books, desc: "E-BooK / Eğitim"}
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: "<ul><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></ul>"
- 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 are getting the error <b>Found no results while trying to browse this tracker</b> then first access the site with your browser and check that you are not being forced to change your password because it has expired after 365 days."
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
"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
+197
View File
@@ -0,0 +1,197 @@
---
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_cookie
- 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
@@ -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
@@ -0,0 +1,119 @@
---
id: blueroms
name: BlueRoms
description: "BlueRoms is a Public Torrent Tracker for ROMS"
language: en-US
type: public
encoding: UTF-8
links:
- https://www.blueroms.ws/
caps:
categorymappings:
- {id: "/arcade", cat: Console/Other, desc: "Arcade"}
- {id: "/dreamcast", cat: Console/Other, desc: "Dreamcast"}
- {id: "/gba", cat: Console/Other, desc: "Game Boy Advance"}
- {id: "/genesis", cat: Console/Other, desc: "Mega Drive - Genesis"}
- {id: "/neogeo", cat: Console/Other, desc: "Neo Geo"}
- {id: "/3ds", cat: Console/3DS, desc: "Nintendo 3DS"}
- {id: "/n64", cat: Console/NDS, desc: "Nintendo 64"}
- {id: "/nds", cat: Console/NDS, desc: "Nintendo DS"}
- {id: "/gamecube", cat: Console/Other, desc: "Nintendo GameCube"}
- {id: "/switch", cat: Console/NDS, desc: "Nintendo Switch"}
- {id: "/wii", cat: Console/Wii, desc: "Nintendo Wii"}
- {id: "/wiiu", cat: Console/WiiU, desc: "Nintendo Wii U"}
- {id: "/ps1", cat: Console/PS3, desc: "PlayStation"}
- {id: "/ps2", cat: Console/PS3, desc: "PlayStation 2"}
- {id: "/ps3", cat: Console/PS3, desc: "PlayStation 3"}
- {id: "/ps4", cat: Console/PS4, desc: "PlayStation 4"}
- {id: "/psp", cat: Console/PSP, desc: "PlayStation Portable"}
- {id: "/psvita", cat: Console/PS Vita, desc: "PlayStation Vita"}
- {id: "/saturn", cat: Console/Other, desc: "Saturn"}
- {id: "/snes", cat: Console/NDS, desc: "Super Nintendo"}
- {id: "/xbox", cat: Console/XBox, desc: "Xbox"}
modes:
search: [q]
settings:
- name: sort
type: select
label: Sort requested from site
default: date
options:
date: created
size: size
name: title
- name: type
type: select
label: Order requested from site
default: desc
options:
desc: desc
asc: asc
download:
selectors:
- selector: a[href^="magnet:?xt="]
attribute: href
search:
paths:
# https://www.blueroms.ws/search?page=1&q=&g=0&p=0&ord=desc&at=date
- path: search
allowEmptyInputs: true
inputs:
page: 1
q: "{{ .Keywords }}"
# genre: 0 all, 200 action, 207 adventure, etc
g: 0
# categories does not support multi selection so defaulting to all
p: 0
ord: "{{ .Config.type }}"
at: "{{ .Config.sort }}"
rows:
selector: div.row > div.col-xs-12
fields:
category:
selector: p.card-text a
attribute: href
title_platform:
selector: p.card-text a
title:
selector: h4.card-title a
filters:
- name: append
args: " - {{ .Result.title_platform }}"
details:
selector: h4.card-title a
attribute: href
download:
selector: div.card-footer a
attribute: href
poster:
selector: img
attribute: src
size:
selector: p.card-text
filters:
- name: regexp
args: ([\d\.]+[T|G|M|K]iB)
date:
# release date is for game, not torrent
text: now
seeders:
text: 1
leechers:
text: 1
downloadvolumefactor:
text: 0
uploadvolumefactor:
text: 1
description:
selector: p.card-text
filters:
- name: regexp
args: "(Score: .+)"
# engine n/a
@@ -0,0 +1,179 @@
---
id: bluraytracker
name: BlurayTracker
description: "BlurayTracker is a CZECH Private Torrent Tracker for MOVIES / TV / GENERAL"
language: cs-CZ
type: private
encoding: UTF-8
links:
- https://bluraytracker.cz/
caps:
categorymappings:
- {id: 1, cat: Movies, desc: "-----Filmy-----"}
- {id: 34, cat: Movies, desc: " |- Filmy CZ/SK Dabing"}
- {id: 33, cat: Movies, desc: " |- Filmy CZ/SK Titulky"}
- {id: 49, cat: Movies/HD, desc: " |- HD/FHD Filmy"}
- {id: 17, cat: Movies/UHD, desc: " |- 4k/UHD Filmy "}
- {id: 31, cat: Movies/BluRay, desc: " |- Bluray DB/BD/DVD"}
- {id: 51, cat: Movies/3D, desc: " |- 3D Filmy"}
- {id: 45, cat: Movies/Other, desc: " |- Kreslené/Anime"}
- {id: 40, cat: TV, desc: "-----TV-----"}
- {id: 32, cat: TV, desc: " |- Serialy CZ/SK/EN"}
- {id: 47, cat: TV, desc: " |- Serialy"}
- {id: 38, cat: TV/Documentary, desc: " |- Dokumenty / TV Reality"}
- {id: 35, cat: TV/Sport, desc: " |- Sport"}
- {id: 6, cat: PC, desc: "Aplikace/Programy"}
- {id: 18, cat: PC/0day, desc: " |- Programy PC"}
- {id: 19, cat: PC/Mac, desc: " |- Programy MacOS"}
- {id: 7, cat: Audio, desc: "-----Hudba-----"}
- {id: 39, cat: Audio/Audiobook, desc: " |- Mluvene Slovo"}
- {id: 21, cat: Audio/MP3, desc: " |- MP3"}
- {id: 43, cat: Audio/Other, desc: " |- SoundTrack"}
- {id: 53, cat: Audio/Lossless, desc: " |- Flac"}
- {id: 2, cat: PC/Games, desc: "--Hry--"}
- {id: 3, cat: Console/PS3, desc: " |- Sony PS"}
- {id: 4, cat: Console/Wii, desc: " |- Wii"}
- {id: 26, cat: Console/XBox, desc: " |- XboX"}
- {id: 27, cat: PC/Games, desc: " |- PC"}
- {id: 28, cat: Console/NDS, desc: " |- Nintendo"}
- {id: 42, cat: Books, desc: "Knihy A Časopisy"}
- {id: 36, cat: Other, desc: "Ostatní"}
# not listed
- {id: 41, cat: Movies, desc: "VIP Torrent"}
- {id: 48, cat: Movies, desc: " |- RLS"}
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: 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#sls_form
submitpath: ajax/login.php
inputs:
action: login
loginbox_membername: "{{ .Config.username }}"
loginbox_password: "{{ .Config.password }}"
loginbox_remember: true
error:
- selector: div.error
test:
path: ?p=home&pid=1
selector: div#member_info_bar
search:
paths:
- path: /
inputs:
p: torrents
pid: 32
$raw: "{{ range .Categories }}cid[]={{.}}&{{end}}"
keywords: "{{ .Keywords }}"
# name, description, both, uploader
search_type: name
"sortOptions[sortBy]": "{{ .Config.sort }}"
"sortOptions[sortOrder]": "{{ .Config.type }}"
# does not support imdbid search but has imdbid links in results.
error:
- selector: div.error:not(:contains("There are no results found."))
rows:
selector: "div.torrent-box[id^=\"torrent_\"]{{ if .Config.freeleech }}:has(img[src$=\"/torrent_free.png\"]){{ else }}{{ end }}"
fields:
category:
selector: a[href*="?p=torrents&pid=10&cid="]
attribute: href
filters:
- name: querystring
args: cid
title:
selector: a[href*="?p=torrents&pid=10&action=details&tid="]
details:
selector: a[href*="?p=torrents&pid=10&action=details&tid="]
attribute: href
download:
selector: a[href*="?p=torrents&pid=10&action=download&tid="]
attribute: href
magnet:
selector: a[href^="magnet:?xt="]
attribute: href
optional: true
poster:
selector: a[href*="data/torrents/torrent_images/"]
attribute: href
imdbid:
selector: a[href*="imdb.com/title/tt"]
attribute: href
size:
selector: a[rel="torrent_size"]
grabs:
selector: a[rel="times_completed"]
seeders:
selector: a[rel="torrent_seeders"]
leechers:
selector: a[rel="torrent_leechers"]
date_day:
selector: div.torrentOwner:contains("day")
# auto adjusted by site account profile
optional: true
filters:
- name: regexp
args: "Uploaded (.+?) by"
- name: fuzzytime
date_year:
selector: div.torrentOwner:contains("-")
# auto adjusted by site account profile
optional: true
filters:
- name: regexp
args: "Uploaded (.+?) by"
- name: dateparse
args: "dd-MM-yyyy HH:mm"
date_unix:
selector: div.torrentOwner abbr
optional: true
attribute: data-time
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 }}"
downloadvolumefactor:
case:
img[src$="/torrent_free.png"]: 0
"*": 1
uploadvolumefactor:
text: 1
minimumratio:
text: 0.5
# TSUE 2.2
@@ -0,0 +1,197 @@
---
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: 8, cat: Other, desc: "Other"}
- {id: 2, cat: TV, desc: "TV Show"}
- {id: 3, cat: Movies/Other, desc: "FANRES"}
- {id: 5, cat: Movies/Other, desc: "Trailer"}
- {id: 9, cat: Audio/Video, desc: "Live Concert"}
modes:
search: [q]
tv-search: [q, season, ep, imdbid, tvdbid, tmdbid]
movie-search: [q, imdbid, tmdbid]
music-search: [q]
settings:
- name: apikey
type: text
label: APIKey
- name: info_key
type: info
label: About your API key
default: "Find or Generate a new API Token by accessing your <a href=\"https://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
error:
- selector: a[href*="/login"]
message:
text: "The API key was not accepted by {{ .Config.sitelink }}."
- selector: :root:contains("Account is Banned")
search:
paths:
# https://hdinnovations.github.io/UNIT3D/torrent_api.html
# https://github.com/HDInnovations/UNIT3D/blob/master/app/Http/Controllers/API/TorrentController.php#L657
- 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
title_filename:
selector: "files[0].name"
optional: true
files:
selector: num_file
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 }}"
details:
selector: details_link
download:
selector: download_link
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: [" & ", "_&_"]
_internal:
selector: internal
case:
False: "{{ .False }}"
True: "{{ .True }}"
description:
text: "{{ if .Result._internal }}Internal{{ else }}{{ end }}{{ if and .Result._internal .Result.genre }} | {{ else }}{{ end }}{{ .Result.genre }}"
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
_featured:
selector: featured
case:
False: "{{ .False }}"
True: "{{ .True }}"
downloadvolumefactor_freeleech:
# 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
downloadvolumefactor:
text: "{{ if .Result._featured }}0{{ else }}{{ .Result.downloadvolumefactor_freeleech }}{{ end }}"
uploadvolumefactor_double_upload:
# api returns False, True
selector: double_upload
case:
False: 1 # normal
True: 2 # double
uploadvolumefactor:
text: "{{ if .Result._featured }}2{{ else }}{{ .Result.uploadvolumefactor_double_upload }}{{ end }}"
# global MR is 0.4 but torrents must be seeded for 7 days regardless of ratio
# minimumratio:
# text: 0.4
minimumseedtime:
# 7 days (as seconds = 7 x 24 x 60 x 60)
text: 604800
# json UNIT3D 9.2.0
@@ -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
@@ -0,0 +1,136 @@
---
id: bootytape
name: BootyTape
description: "BootyTape is a Semi-Private Torrent Tracker 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
@@ -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
@@ -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
@@ -0,0 +1,183 @@
---
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:
categorymappings:
- {id: 16, cat: Audio/Audiobook, desc: "Audiobooks"}
- {id: 6, cat: TV/Anime, desc: "Animes"}
- {id: 11, cat: PC/0day, desc: "Aplicativos"}
- {id: 15, cat: Other, desc: "Cursos"}
- {id: 8, cat: TV/Documentary, desc: "Documentários"}
- {id: 14, cat: TV/Sport, desc: "Esportes"}
- {id: 3, cat: XXX, desc: "Filmes XXX"}
- {id: 1, cat: Movies, desc: "Filmes"}
- {id: 12, cat: Books/Comics, desc: "Histórias em Quadrinhos"}
- {id: 9, cat: PC/Games, desc: "Jogos"}
- {id: 13, cat: Books/EBook, desc: "Livros"}
- {id: 10, cat: Books/Mags, desc: "Revistas"}
- {id: 2, cat: TV, desc: "Séries"}
- {id: 5, cat: Audio/Video, desc: "Show"}
- {id: 7, cat: TV, desc: "Televisão"}
modes:
search: [q]
tv-search: [q, season, ep]
movie-search: [q, imdbid]
settings:
- name: cookie
type: text
label: Cookie
- name: info_cookie
type: info_cookie
- 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:
$raw: "{{ range .Categories }}filter_cat[{{.}}]=1&{{end}}"
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:
selector: td.big_info div.group_info
case:
"div:contains(\"[Audiobooks]\")": 16
"div:contains(\"[Animes]\")": 6
"div:contains(\"[Aplicativos]\")": 11
"div:contains(\"[Cursos]\")": 15
"div:contains(\"[Documentários]\")": 8
"div:contains(\"[Esportes]\")": 14
"div:contains(\"[Filmes XXX]\")": 3
"div:contains(\"[Filmes]\")": 1
"div:contains(\"[Histórias em Quadrinhos]\")": 12
"div:contains(\"[Jogos]\")": 9
"div:contains(\"[Livros]\")": 13
"div:contains(\"[Revistas]\")": 10
"div:contains(\"[Séries]\")": 2
"div:contains(\"[Show]\")": 5
"div:contains(\"[Televisão]\")": 7
"*": 0 # catch errors
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
year:
selector: td.big_info div.group_info
optional: true
filters:
- name: regexp
args: "\\[((?:19|20)\\d{2})\\]"
title:
selector: a[href^="torrents.php?id="]
filters:
- name: re_replace
args: ["\\[([^\\]]+)\\]", " / $1"]
- name: append
args: "{{ if .Result.year }} ({{ .Result.year }}){{ else }}{{ end }}"
- name: append
args: " {{ .Result.title_details }}"
- name: re_replace
args: ["\\bWEB\\b(?![-_. ]?DL)", "WEB-DL"]
- name: re_replace
args: ["(?i)\\b4K\\b", "2160p"]
- name: re_replace
args: ["(?i)\\bFull HD\\b", "1080p"]
- name: re_replace
args: ["(?i)\\b(?<!Full )HD\\b", "720p"]
- name: re_replace
args: ["(?i)\\bLegendado\\b", "Subs"]
- name: re_replace
args: ["(Dual|[Nn]acional|[Dd]ublado)", "Brazilian $1"]
minimumratio:
text: 1.0
minimumseedtime:
# 2 days (as seconds = 2 x 24 x 60 x 60)
text: 172800
# Project Gazelle
+238
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
@@ -0,0 +1,88 @@
---
id: btdirectory
name: BTdirectory
description: "BTdirectory (BT目录) is a Public DHT Crawler"
language: en-US
type: public
encoding: UTF-8
# current domain at https://cursor.vip/btmulu then follow links to the final search-movie link
links:
- https://btmulu.live/
- https://www.btmulu.cyou/
- https://www.btmulu.quest/
- https://www.btmulu.cfd/
- https://www.btmulu.help/
legacylinks:
- https://www.btmulu.asia/
- https://www.btmulu.digital/
- https://www.btmulu.pw/
- https://www.btmulu.one/
- https://btmulu.work/
caps:
categorymappings:
- {id: Other, cat: Other, desc: Other}
modes:
search: [q]
tv-search: [q, season, ep]
movie-search: [q]
music-search: [q]
book-search: [q]
settings:
- name: info_category_8000
type: info_category_8000
search:
paths:
# https://www.btmulu.digital/search-create.html
# https://btmulu.work/search.html?name=the+boys+s04e08
- path: "{{ if .Keywords }}search.html{{ else }}search-create.html{{ end }}"
inputs:
name: "{{ re_replace .Keywords \"[\\s]+\" \"+\" }}"
rows:
selector: article.item:has(a[href^="/hash/"])
filters:
- name: andmatch
fields:
category:
text: Other
title:
selector: h4
remove: span
details:
selector: a[href^="/hash/"]
attribute: href
infohash:
selector: a[href^="/hash/"]
attribute: href
filters:
- name: regexp
args: ([A-F|a-f|0-9]{40})
date:
selector: p
filters:
- name: regexp
args: (\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2})
files:
selector: p
filters:
- name: regexp
args: "File Count(\\d+)"
size:
selector: p
filters:
- name: regexp
args: "Size(\\d+\\.?\\d+ [K|M|G]B)"
seeders:
text: 1
leechers:
text: 1
downloadvolumefactor:
text: 0
uploadvolumefactor:
text: 1
# engine n/a
@@ -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
+278
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
@@ -0,0 +1,156 @@
---
id: btschool
name: BTSCHOOL
description: "BTSCHOOL is a CHINESE Private Torrent Tracker for HD MOVIES / TV"
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: info_flaresolverr
type: info_flaresolverr
- 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
@@ -0,0 +1,72 @@
---
id: btstate
replaces:
- btsate
name: btstate
description: "btstate is a Public BitTorrent DHT search engine."
language: en-US
type: public
encoding: UTF-8
links:
- https://btstate.com/
caps:
categories:
Other: Other
modes:
search: [q]
tv-search: [q, season, ep]
movie-search: [q]
music-search: [q]
book-search: [q]
settings:
- name: info_category_8000
type: info_category_8000
search:
paths:
# https://btstate.com/api/searchByKeyword/2025?take=100&skip=0&page=1&pageSize=100
- path: "api/searchByKeyword/{{ if .Keywords }}{{ .Keywords }}{{ else }}{{ .Today.Year }}{{ end }}"
response:
type: json
inputs:
take: 100
skip: 0
page: 1
pageSize: 100
rows:
selector: items
attribute: _source
filters:
- name: andmatch
fields:
category:
text: Other
title:
selector: name
details:
text: "{{ .Config.sitelink }}"
infohash:
selector: infohash
date:
# unix
selector: createTime
filters:
- name: regexp
args: ^(\d{10})
size:
selector: size
seeders:
text: 1
leechers:
text: 1
downloadvolumefactor:
text: 0
uploadvolumefactor:
text: 1
# json api
@@ -0,0 +1,241 @@
---
id: bwtorrents
name: BwTorrents
description: "BwTorrents is an INDIAN Private Torrent Tracker for MOVIES / TV"
language: en-US
type: private
encoding: UTF-8
links:
- https://bwtorrents.tv/
- https://www.bwtorrents.pro/
- https://bwtorrents.cc/
- https://bwtorrents.live/
legacylinks:
- https://bwtorrents.fun/
- https://bwtorrents.xyz/
- https://bwtorrents.us/
- https://bwtorrents.co/
- https://www.bwtorrents.life/
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_flaresolverr
type: info_flaresolverr
- 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/"])
filters:
- name: andmatch
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
+173
View File
@@ -0,0 +1,173 @@
---
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: cookie
type: text
label: Cookie
- name: info_cookie
type: info_cookie
- 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:
# using cookie method because login page is dynamically generated with JS
method: cookie
inputs:
cookie: "{{ .Config.cookie }}"
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
+410
View File
@@ -0,0 +1,410 @@
---
id: byrutor
name: Byrutor
description: "Byrutor is a RUSSIAN Public Torrent Tracker for GAMES"
language: ru-RU
type: public
encoding: UTF-8
links:
- https://byrutgame.org/
legacylinks:
- https://byrutor.org/
- https://byrutdb.org/
- https://byrut.org/
- https://thebyrut.org/
- https://byruthub.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: a.search_res:has(div.search_res_sub span:nth-child(2):contains(" "))
fields:
category:
text: 1
year:
selector: div.search_res_sub span
filters:
- name: regexp
args: (\d+)
title:
selector: a.search_res
filters:
- name: append
args: " [{{ .Result.year }}]"
details:
selector: a.search_res
attribute: href
download:
selector: a.search_res
attribute: href
poster:
selector: img
attribute: src
size_rus:
selector: div.search_res_sub 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.search_res_sub span:nth-child(2):contains("B")
optional: true
default: "{{ .Result.size_rus }}"
date:
text: now
seeders:
text: 1
leechers:
text: 1
downloadvolumefactor:
text: 0
uploadvolumefactor:
text: 1
# engine n/a
@@ -0,0 +1,180 @@
---
id: cangbaoge
name: cangbaoge (CBG)
description: "cangbaoge (CBG) is a CHINESE Private Torrent Tracker for MOVIES / TV / GENERAL"
language: zh-CN
type: private
encoding: UTF-8
links:
- https://cangbao.ge/
caps:
categorymappings:
- {id: 401, cat: Movies, desc: "Movies/电影"}
- {id: 402, cat: TV, desc: "TV Series/剧集"}
- {id: 403, cat: TV, desc: "Playlet/短剧"}
- {id: 404, cat: TV/Anime, desc: "Animations/动画"}
- {id: 405, cat: TV/Anime, desc: "Anime/动漫"}
- {id: 406, cat: TV/Other, desc: "Children/儿童"}
- {id: 407, cat: TV, desc: "TV Shows/综艺"}
- {id: 408, cat: TV/Documentary, desc: "Documentary/纪录"}
- {id: 409, cat: Audio, desc: "Music/音乐"}
- {id: 410, cat: Books, desc: "Books/书籍"}
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_cookie
type: info_cookie
- 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 will be deleted if they do not log in for 150 consecutive days</li><li>Users who have no traffic (i.e. upload/download data are both 0) will be deleted if they do not log in for 100 consecutive days.</li></ol>"
login:
# using cookie method because site does a JS call to API/Challenge via JQuery to load response parm required for takelogin.php
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 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(a[href^="download.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.rowfollow:nth-child(6)
leechers:
selector: td.rowfollow:nth-child(7)
optional: true
grabs:
selector: td.rowfollow:nth-child(8)
optional: true
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: 2.0
minimumseedtime:
# 2 days (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.9.6 2025-06-25
@@ -0,0 +1,204 @@
---
id: capybarabr
name: CapybaraBR (API)
description: "CapybaraBR is a BRAZILIAN Private Torrent Tracker for MOVIES / TV / GENERAL"
language: pt-BR
type: private
encoding: UTF-8
links:
- https://capybarabr.com/
caps:
categorymappings:
- {id: 1, cat: Movies, desc: "Filmes"}
- {id: 2, cat: TV, desc: "Series"}
- {id: 4, cat: TV/Anime, desc: "Animes"}
- {id: 8, cat: TV/Sport, desc: "Esportes"}
- {id: 6, cat: Movies, desc: "Desenhos Animados"}
- {id: 5, cat: Console, desc: "Jogos"}
- {id: 9, cat: PC, desc: "Programas"}
- {id: 10, cat: Books/Comics, desc: "HQs"}
- {id: 11, cat: Books/EBook, desc: "Livros"}
- {id: 12, cat: Other, desc: "Cursos"}
- {id: 13, cat: Books/Mags, desc: "Revistas"}
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://capybarabr.com/\" target=\"_blank\">CapybaraBR</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: use_single_file_release_use_filename
type: checkbox
label: Use filename as the title for single file releases
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: "The system automatically makes an account inactive when not logged in for a period of 90 days. So just log in within this time so that it is not inactivated."
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 }}."
- selector: :root:contains("Account is Banned")
search:
paths:
# https://hdinnovations.github.io/UNIT3D/torrent_api.html
# https://github.com/HDInnovations/UNIT3D/blob/master/app/Http/Controllers/API/TorrentController.php#L657
- 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
title_filename:
selector: "files[0].name"
optional: true
files:
selector: num_file
title:
text: "{{ if and (.Config.use_single_file_release_use_filename) (eq .Result.files \"1\") (.Result.title_filename) }}{{ .Result.title_filename }}{{ else }}{{ .Result.title_optional }}{{ end }}"
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)(Ficção científica)", "Ficção_científica"]
- name: re_replace
args: ["(?i)(Cinema TV)", "Cinema_TV"]
- name: replace
args: [" & ", "_&_"]
_internal:
selector: internal
case:
False: "{{ .False }}"
True: "{{ .True }}"
description:
text: "{{ if .Result._internal }}Internal{{ else }}{{ end }}{{ if and .Result._internal .Result.genre }} | {{ else }}{{ end }}{{ .Result.genre }}"
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: " -03:00" # BRT
- name: dateparse
args: "MM/dd/yyyy HH:mm:ss zzz"
size:
selector: size
_featured:
selector: featured
case:
False: "{{ .False }}"
True: "{{ .True }}"
downloadvolumefactor_freeleech:
# 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
downloadvolumefactor:
text: "{{ if .Result._featured }}0{{ else }}{{ .Result.downloadvolumefactor_freeleech }}{{ end }}"
uploadvolumefactor_double_upload:
# api returns False, True
selector: double_upload
case:
False: 1 # normal
True: 2 # double
uploadvolumefactor:
text: "{{ if .Result._featured }}2{{ else }}{{ .Result.uploadvolumefactor_double_upload }}{{ end }}"
# global MR is 1.0 but torrents must be seeded for 7 days regardless of ratio
# minimumratio:
# text: 1.0
minimumseedtime:
# 7 days (as seconds = 7 x 24 x 60 x 60)
text: 604800
# json UNIT3D 8.3.3 (custom)
@@ -0,0 +1,169 @@
---
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 }}"
error:
- selector: table.main:contains("Sikertelen bejelentkezés")
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
@@ -0,0 +1,188 @@
---
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:
# dont forget to update the path categories in the search block
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_cookie
type: info_cookie
- 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
- name: info_settings
type: info
label: Settings Requirement
default: This indexer only supports the details link option.<br>Navigate to the web site account <b>Beállítások (Settings)</b>, change the <b>Letöltések (Download)</b> option to <b>Link a részletekhez (Link to Details)</b>, and click <b>Mentés (Save)</b>. Selecting <i>Lenyíló menü (Dropdown Menu)</i> will return no results.
login:
# using cookie method because login page has embedded Google reCAPTCHA
method: cookie
inputs:
cookie: "{{ .Config.cookie }}"
test:
path: index.php
selector: a[href^="logout.php"]
search:
paths:
- path: browse.php
categories: [1, 2, 8, 7, 16, 15, 14, 13, 4, 3, 18, 17, 23, 19, 20, 24, 21, 22, 35, 36, 25, 30, 31, 33, 32, 29, 28, 27, 26]
- path: browse.php
categories: [34, 39]
inputs:
xxx: 1
keywordsfilters:
# the site uses % for wildcard
- name: re_replace
args: ["[^a-zA-Z0-9]+", "%"]
inputs:
$raw: "{{ range .Categories }}cat[]={{.}}&{{end}}"
search: "{{ .Keywords }}"
# 0 both, 1 onlyactive, 2 onlydead, 3 onlyfree, 4 x2 torrents, 5 mytorrents, 6 waiting for seeds
incldead: "{{ if .Config.freeleech }}3{{ else }}0{{ end }}"
sort: "{{ .Config.sort }}"
order: "{{ .Config.type }}"
# does not support imdbid searches
# can support genre searching but you need to know the id, eg &genre2=1 for Comedy (id is 2)
rows:
selector: "table[cellpadding=\"3\"][style=\"width: 920px;\"] > tbody > tr:has(a[href^=\"browse.php?cat=\"])"
fields:
category:
selector: a[href^="browse.php?cat="]
attribute: href
filters:
- name: querystring
args: cat
title:
selector: a[href*="/details.php?id="]
attribute: title
details:
selector: a[href*="/details.php?id="]
attribute: href
download:
selector: a[href*="/details.php?id="]
attribute: href
filters:
- name: replace
args: ["/details", "/download"]
imdbid:
selector: a[href*="imdb.com/title/tt"]
attribute: href
genre:
selector: small[title]
attribute: title
description:
case:
img[src="/pic/yes.png"]: "Verified: {{ .Result.genre }}"
img[src="/pic/nincs.png"]: "Unverified: {{ .Result.genre }}"
poster:
selector: a[onmouseover]
attribute: onmouseover
filters:
- name: regexp
args: "showTorrentThumb\\('(.*?)', "
date:
selector: td:nth-last-child(8)
filters:
- name: regexp
args: (\d{4}-\d{2}-\d{2}.\d{2}:\d{2}:\d{2})
- name: replace
args: ["\u00a0", " "]
- name: append
args: " +01:00" # CET
- name: dateparse
args: "yyyy-MM-dd HH:mm:ss zzz"
files:
selector: td:nth-last-child(7)
size:
selector: td:nth-last-child(5)
grabs:
selector: td:nth-last-child(4)
seeders:
selector: td:nth-last-child(3)
leechers:
selector: td:nth-last-child(2)
downloadvolumefactor:
case:
font:contains("x0"): 0
"*": 1
uploadvolumefactor:
case:
font:contains("x2"): 2
font:contains("x4"): 4
"*": 1
minimumratio:
text: 1.0
minimumseedtime:
# 2 days (as seconds = 2 x 24 x 60 x 60)
text: 172800
# engine n/a
+196
View File
@@ -0,0 +1,196 @@
---
id: carpt
name: CarPT
description: "CarPT is a CHINESE Private Torrent Tracker for HD MOVIES / TV / MUSIC"
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 150 consecutive days</li><li>Users with a non-parked account will be banned if they do not log in for 90 consecutive days</li><li> Users with no traffic (i.e., upload/download data is 0) who do not log in for 14 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: 10
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.15 2024-12-10
@@ -0,0 +1,177 @@
---
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 }}{{ end }}"
title: "{{ if .Keywords }}{{ .Keywords }}{{ else }}{{ 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
@@ -0,0 +1,91 @@
---
id: catorrent
name: Catorrent
description: "Catorrent is a RUSSIAN Public Torrent Tracker for GAMES"
language: ru-RU
type: public
encoding: UTF-8
links:
- https://catorrent.net/
legacylinks:
- 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: []
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
optional: true
default: PS1
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
# DataLife v25
+184
View File
@@ -0,0 +1,184 @@
---
id: cdfile
name: CD File
description: "CD File is a CHINESE Private Torrent Tracker for MOVIES / TV / GENERAL"
language: zh-CN
type: private
encoding: UTF-8
links:
- https://pt.cdfile.org/
caps:
categorymappings:
- {id: 401, cat: Movies, desc: "Movies/电影"}
- {id: 406, cat: Audio/Video, desc: "Music Videos/MV"}
- {id: 402, cat: TV, desc: "TV Series/电视剧"}
- {id: 408, cat: Audio, desc: "Music/音轨"}
- {id: 405, cat: TV/Anime, desc: "Animations/动漫"}
- {id: 403, cat: TV, desc: "TV Shows/综艺"}
- {id: 407, cat: TV/Sport, desc: "Sports/体育"}
- {id: 404, cat: TV/Documentary, desc: "Documentaries/纪录片"}
- {id: 409, cat: Other, desc: "Others/其他"}
modes:
search: [q]
tv-search: [q, season, ep, imdbid]
movie-search: [q, imdbid]
music-search: [q]
settings:
- name: cookie
type: text
label: Cookie
- name: info_cookie
type: info_cookie
- name: useragent
type: text
label: User-Agent
- name: info_useragent
type: info_useragent
- 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 180 consecutive days</li><li>Users with a non-parked account will be deleted if they do not log in for 90 consecutive days</li><li>Users who have no traffic (i.e. upload/download data are both 0) will be deleted if they do not log in for 7 consecutive days.</li></ol>"
login:
# using cookie method because site does a JS call to API/Challenge via JQuery to load response parm required for takelogin.php
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 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
headers:
User-Agent: ["{{ .Config.useragent }}"]
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-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.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: 2.0
minimumseedtime:
# 2 days (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.9.6 2025-06-25
@@ -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
+131
View File
@@ -0,0 +1,131 @@
# CGPeers uses the Luminance code, which is based on gazelle
# ajax.php API additionally needs the auth=$authkey argument
# Because the API is e.g. missing poster images we use screen scraping instead of the generic gazelle based approach
---
id: cgpeers
name: CGPeers
description: "CGPeers is a Private Torrent Tracker for GRAPHICS SOFTWARE / TUTORIALS / ETC"
language: en-US
type: private
encoding: UTF-8
links:
- https://cgpeers.to/
legacylinks:
- https://www.cgpeers.com/
caps:
categorymappings:
- {id: 1, cat: PC/ISO, desc: "Applications"}
- {id: 8, cat: PC/ISO, desc: "Audio"}
- {id: 7, cat: Other, desc: "Game Development"}
- {id: 5, cat: Other, desc: "Materials"}
- {id: 6, cat: Other/Misc, desc: "Miscellaneous"}
- {id: 4, cat: Other, desc: "Models"}
- {id: 2, cat: PC/0day, desc: "Plugins"}
- {id: 3, cat: Other, desc: "Tutorials"}
- {id: 9, cat: Other, desc: "Web Development"}
modes:
search: [q]
settings:
- name: cookie
type: text
label: Cookie
- name: info_cookie
type: info_cookie
- 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^="/user.php?id="]
search:
paths:
- path: torrents.php
inputs:
$raw: "{{ range .Categories }}filter_cat[{{.}}]=1&{{end}}"
title: "{{ .Keywords }}"
order_by: "{{ .Config.sort }}"
order_way: "{{ .Config.type }}"
action: advanced
filter_freeleech: "{{ if .Config.freeleech }}1{{ else }}{{ end }}"
rows:
selector: table#torrent_table > tbody > tr:has(a[href*="action=download"])
fields:
download:
selector: a[href^="/torrents.php?action=download&id="]
attribute: href
title:
selector: a[href^="/torrents.php?id="]
category:
selector: a[href*="filter_cat"]
attribute: href
filters:
- name: regexp
args: "(\\d+)]=1"
details:
selector: a[href^="/torrents.php?id="]
attribute: href
poster:
selector: td:nth-child(2) > script
filters:
- name: regexp
args: "src=(.*?)>"
- name: re_replace
args: ["[\\\\\"]", ""]
- name: re_replace
args: ["/static/common/noartwork/.+", ""]
files:
selector: td:nth-child(3)
date:
selector: td:nth-child(6) > span
attribute: title
# auto adjusted by site account profile
filters:
- name: dateparse
args: "MMM dd yyyy, HH:mm"
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:
i.unlimited_leech: 0
i.sitewide_leech: 0
img[alt="Freeleech"]: 0
"*": 1
uploadvolumefactor:
case:
span.icon[title*="DoubleSeed"]: 2
img[alt="DoubleSeed"]: 2
"*": 1
# luminance
+183
View File
@@ -0,0 +1,183 @@
---
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/
- 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_flaresolverr
type: info_flaresolverr
- 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"]
headers:
user-agent: ["Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"]
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"))
- selector: td.embedded:has(h2:contains("错误"))
- selector: td.embedded:has(h2:contains("error"))
- selector: font[color="red"]
test:
path: torrents.php
selector: a[href*="logout"]
download:
selectors:
- selector: a[href^="download.php?id="]
attribute: href
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^="details.php?id="]
attribute: href
date_elapsed:
# time type: time elapsed (default)
selector: td.rowfollow:nth-last-child(7) > 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-child(7):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-child(6)
seeders:
selector: td.rowfollow:nth-last-child(5)
leechers:
selector: td.rowfollow:nth-last-child(4)
grabs:
selector: td.rowfollow:nth-last-child(3)
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 (customised)
@@ -0,0 +1,199 @@
---
id: chilebt-api
name: ChileBT (API)
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: 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://chilebt.com/\" target=\"_blank\">ChileBT</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
error:
- selector: a[href*="/login"]
message:
text: "The API key was not accepted by {{ .Config.sitelink }}."
- selector: :root:contains("Account is Banned")
search:
paths:
# https://hdinnovations.github.io/UNIT3D/torrent_api.html
# https://github.com/HDInnovations/UNIT3D/blob/master/app/Http/Controllers/API/TorrentController.php#L657
- 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
title_filename:
selector: "files[0].name"
optional: true
files:
selector: num_file
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 }}"
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: [" & ", "_&_"]
_internal:
selector: internal
case:
False: "{{ .False }}"
True: "{{ .True }}"
description:
text: "{{ if .Result._internal }}Internal{{ else }}{{ end }}{{ if and .Result._internal .Result.genre }} | {{ else }}{{ end }}{{ .Result.genre }}"
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
_featured:
selector: featured
case:
False: "{{ .False }}"
True: "{{ .True }}"
downloadvolumefactor_freeleech:
# 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
downloadvolumefactor:
text: "{{ if .Result._featured }}0{{ else }}{{ .Result.downloadvolumefactor_freeleech }}{{ end }}"
uploadvolumefactor_double_upload:
# api returns False, True
selector: double_upload
case:
False: 1 # normal
True: 2 # double
uploadvolumefactor:
text: "{{ if .Result._featured }}2{{ else }}{{ .Result.uploadvolumefactor_double_upload }}{{ end }}"
# global MR is 0.5 but torrents must be seeded for 7 days regardless of ratio
# minimumratio:
# text: 0.5
minimumseedtime:
# 7 days (as seconds = 7 x 24 x 60 x 60)
text: 604800
# json UNIT3D 8.2.0
@@ -0,0 +1,128 @@
---
id: cinemageddon
name: Cinemageddon
description: "Cinemageddon is a Private Torrent Tracker for B-movies"
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]
settings:
- name: username
type: text
label: Username
- name: password
type: password
label: Password
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
@@ -0,0 +1,198 @@
---
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_cookie
type: info_cookie
- 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:
# using cookie method because login page has embedded Google reCAPTCHA
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
@@ -0,0 +1,197 @@
---
id: cinematik
name: Cinematik (API)
description: "Cinematik is a Private 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 }}."
- selector: :root:contains("Account is Banned")
search:
paths:
# https://hdinnovations.github.io/UNIT3D/torrent_api.html
# https://github.com/HDInnovations/UNIT3D/blob/master/app/Http/Controllers/API/TorrentController.php#L657
- 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
title_filename:
selector: "files[0].name"
optional: true
files:
selector: num_file
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 }}"
details:
selector: details_link
download:
selector: download_link
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: [" & ", "_&_"]
_internal:
selector: internal
case:
False: "{{ .False }}"
True: "{{ .True }}"
description:
text: "{{ if .Result._internal }}Internal{{ else }}{{ end }}{{ if and .Result._internal .Result.genre }} | {{ else }}{{ end }}{{ .Result.genre }}"
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
_featured:
selector: featured
case:
False: "{{ .False }}"
True: "{{ .True }}"
downloadvolumefactor_freeleech:
# 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
downloadvolumefactor:
text: "{{ if .Result._featured }}0{{ else }}{{ .Result.downloadvolumefactor_freeleech }}{{ end }}"
uploadvolumefactor_double_upload:
# api returns False, True
selector: double_upload
case:
False: 1 # normal
True: 2 # double
uploadvolumefactor:
text: "{{ if .Result._featured }}2{{ else }}{{ .Result.uploadvolumefactor_double_upload }}{{ end }}"
# global MR is 0.6 but torrents must be seeded for 3 days regardless of ratio
# minimumratio:
# text: 0.6
minimumseedtime:
# 3 days (as seconds = 3 x 24 x 60 x 60)
text: 259200
# json UNIT3D 9.2.0
@@ -0,0 +1,146 @@
---
id: clearjav-api
name: ClearJAV (API)
description: "ClearJAV is a Private Torrent Tracker for Japanese Adult Video (JAV) content from official JAV studios only."
language: en-US
type: private
encoding: UTF-8
links:
- https://clearjav.com/
caps:
categorymappings:
- {id: 1, cat: XXX, desc: "JAV"}
modes:
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://clearjav.com/\" target=\"_blank\">ClearJAV</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: "You must download or upload data within 30 days of joining, or your account may be pruned for lurking."
login:
path: /api/torrents
method: get
error:
- selector: a[href*="/login"]
message:
text: "The API key was not accepted by {{ .Config.sitelink }}."
- selector: :root:contains("Account is Banned")
search:
paths:
# https://hdinnovations.github.io/UNIT3D/torrent_api.html
# https://github.com/HDInnovations/UNIT3D/blob/master/app/Http/Controllers/API/TorrentController.php#L657
- 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
name: "{{ .Keywords }}"
"free[]": "{{ if .Config.freeleech }}100{{ else }}{{ end }}"
sortField: "{{ .Config.sort }}"
sortDirection: "{{ .Config.type }}"
perPage: 100
# there are no categories on the site so using XXX as a default
keywordsfilters:
- name: re_replace
args: ["\\.", " "]
rows:
selector: data
attribute: attributes
fields:
category:
text: 1
title:
selector: name
details:
selector: details_link
download:
selector: download_link
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
_featured:
selector: featured
case:
False: "{{ .False }}"
True: "{{ .True }}"
downloadvolumefactor_freeleech:
# 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
downloadvolumefactor:
text: "{{ if .Result._featured }}0{{ else }}{{ .Result.downloadvolumefactor_freeleech }}{{ end }}"
uploadvolumefactor_double_upload:
# api returns False, True
selector: double_upload
case:
False: 1 # normal
True: 2 # double
uploadvolumefactor:
text: "{{ if .Result._featured }}2{{ else }}{{ .Result.uploadvolumefactor_double_upload }}{{ end }}"
# global MR is 0.4 but torrents must be seeded for 7 days regardless of ratio
# minimumratio:
# text: 0.4
minimumseedtime:
# 7 days (as seconds = 7 x 24 x 60 x 60)
text: 604800
# json UNIT3D 9.1.7 (custom)
@@ -0,0 +1,229 @@
---
id: coastalcrew
name: Coastal-Music-Crew
description: "Coastal-Music-Crew (C-M-C) 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: 122, cat: Movies, desc: "Movie Klassiker"}
- {id: 124, cat: Movies, desc: "Movie Kids"}
- {id: 127, cat: Movies, desc: "Movie Pack"}
- {id: 138, cat: Movies/BluRay, desc: "Movie BluRay"}
- {id: 140, cat: Movies/3D, desc: "Movie 3D"}
- {id: 114, cat: Movies/DVD, desc: "Movie DVD-R"}
- {id: 28, cat: Movies/SD, desc: "Movie SD"}
- {id: 32, cat: Movies/HD, desc: "Movie HD"}
- {id: 26, cat: Movies/UHD, desc: "Movie 4K"}
- {id: 133, cat: TV/Anime, desc: "Serien Anime"}
- {id: 57, cat: TV/HD, desc: "Serien HD"}
- {id: 59, cat: TV, desc: "Serien Pack"}
- {id: 60, cat: TV/SD, desc: "Serien SD"}
- {id: 56, cat: TV/SD, desc: "Serien DVD-R"}
- {id: 123, cat: TV, desc: "Serien Klassiker"}
- {id: 126, cat: TV, desc: "Serien Kids"}
- {id: 132, cat: TV/UHD, desc: "Serien UHD"}
- {id: 92, cat: TV/Documentary, desc: "Doku Avi"}
- {id: 94, cat: TV/Documentary, desc: "Doku Audio"}
- {id: 135, cat: TV/Documentary, desc: "Doku UHD"}
- {id: 13, cat: TV/Documentary, desc: "Doku DVD-R"}
- {id: 14, cat: TV/Documentary, desc: "Doku HD"}
- {id: 15, cat: TV/Documentary, desc: "Doku SD"}
- {id: 136, cat: TV/Documentary, desc: "Doku Pack"}
- {id: 9, cat: PC, desc: "App Linux"}
- {id: 10, cat: PC/Mac, desc: "App Mac"}
- {id: 11, cat: PC/Mobile-Other, desc: "App Other"}
- {id: 12, cat: PC/0day, desc: "App Win"}
- {id: 139, cat: PC/Mobile-Android, desc: "App Android Apps"}
- {id: 16, cat: Console, desc: "Game Misc"}
- {id: 17, cat: PC/Games, desc: "Game PC"}
- {id: 18, cat: Console/PS3, desc: "Game PS2"}
- {id: 19, cat: Console/PS3, desc: "Game PS3"}
- {id: 20, cat: Console/PSP, desc: "Game PSP"}
- {id: 21, cat: Console/PS4, desc: "Game PSX"}
- {id: 22, cat: Console/Wii, desc: "Game Wii"}
- {id: 23, cat: Console/XBox, desc: "Game XBOX"}
- {id: 24, cat: Console/XBox 360, desc: "Game XBOX360"}
- {id: 137, cat: Audio, desc: "Music OST"}
- {id: 54, cat: Audio, desc: "Music Single"}
- {id: 48, cat: Audio, desc: "Music Album"}
- {id: 49, cat: Audio, desc: "Music Charts"}
- {id: 52, cat: Audio, desc: "Music Pack"}
- {id: 53, cat: Audio, desc: "Music Sampler"}
- {id: 120, cat: Audio, desc: "Music Xmas"}
- {id: 121, cat: Audio/Lossless, desc: "Music Flac"}
- {id: 55, cat: Audio/Video, desc: "Music Video SD"}
- {id: 109, cat: Audio/Video, desc: "Music Video HD"}
- {id: 110, cat: Audio/Video, desc: "Music DVD-R"}
- {id: 128, cat: Audio, desc: "Music EP"}
- {id: 125, cat: Audio, desc: "Music Kids"}
- {id: 61, cat: TV/Sport, desc: "Sport HD"}
- {id: 62, cat: TV/Sport, desc: "Sport SD"}
- {id: 116, cat: TV/Sport, desc: "Sport DVD-R"}
- {id: 117, cat: TV/Sport, desc: "Sport DVD-R"}
- {id: 134, cat: Other, desc: "Sonstiges Pack"}
- {id: 63, cat: Audio/Audiobook, desc: "Sonstiges A-Book"}
- {id: 96, cat: Books/EBook, desc: "Sonstiges E-Book"}
- {id: 69, cat: Other, desc: "Sonstiges Tutorial"}
- {id: 71, cat: Other/Misc, desc: "Sonstiges Other"}
- {id: 131, cat: TV/UHD, desc: "Internt'l Serie UHD"}
- {id: 103, cat: Movies/SD, desc: "Internt'l Movie SD"}
- {id: 98, cat: Movies/HD, desc: "Internt'l Movie HD"}
- {id: 102, cat: TV/SD, desc: "Internt'l Serie SD"}
- {id: 99, cat: TV/HD, desc: "Internt'l Serie HD"}
- {id: 115, cat: Movies/DVD, desc: "Internt'l DVD-R"}
- {id: 107, cat: Audio/Audiobook, desc: "Internt'l A-Book"}
- {id: 106, cat: Books/EBook, desc: "Internt'l E-Book"}
- {id: 105, cat: TV/Documentary, desc: "Internt'l Doku"}
- {id: 104, cat: Other, desc: "Internt'l Misc"}
- {id: 73, cat: XXX/x264, desc: "XXX HD"}
- {id: 74, cat: XXX/Other, desc: "XXX Other"}
- {id: 75, cat: XXX/Pack, desc: "XXX Pack"}
- {id: 76, cat: XXX/SD, desc: "XXX SD"}
- {id: 113, cat: XXX/DVD, desc: "XXX DVD-R"}
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
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>Anzahl der Torrents beim Durchsuchen</b> <i>Torrents per page:</i> setting to <b>60</b> on your account profile. 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: login.php
method: form
form: form[action="/login.php"]
cookies: ["JAVA=OK"] # avoid jscheck redirect
inputs:
username: "{{ .Config.username }}"
password: "{{ .Config.password }}"
error:
- selector: div#login_error
test:
path: index.php
selector: a[href="logout.php"]
search:
paths:
- path: selection.php
inputs:
$raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
search: "{{ .Keywords }}"
# 0 name, 1 descr, 2 both (options 1 and 2 are disabled)
blah: 0
orderby: "{{ .Config.sort }}"
sort: "{{ .Config.type }}"
rows:
selector: div.selection_wrap
fields:
category_p1:
selector: div.kat_cat_pic_name
category_p2:
selector: div.kat_cat_pic_name_b
categorydesc:
text: "{{ .Result.category_p1 }} {{ .Result.category_p2 }}"
title:
selector: a.selection_a
filters:
- name: re_replace
args: ["^\\[[\\w ]*\\]\\s?", ""]
details:
selector: a.selection_a
attribute: href
download:
selector: a[href^="download_ssl.php?torrent="]
attribute: href
poster:
selector: div[id^="details"] img
attribute: src
size:
selector: div.selection_unter_ad
grabs:
selector: div.selection_unter_ae
date_day:
# Heute 13:30:04
# Gestern 09:10:10
selector: div.selection_unter_ab:not(:contains("."))
optional: true
filters:
- name: replace
args: ["Heute", "Today"]
- name: replace
args: ["Gestern", "Yesterday"]
- name: append
args: " +01:00" # CET
date_year:
# 30.02.2018 um 23:12:50
selector: div.selection_unter_ab:contains(".")
optional: true
filters:
- name: replace
args: [" um", ""]
- 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 }}"
seeders:
selector: div.selection_unter_aa
leechers:
selector: div.selection_unter_aaa
downloadvolumefactor:
text: 1
uploadvolumefactor:
text: 1
# global MR is 1.0 but torrents must be seeded for 3 days regardless of ratio
# minimumratio:
# text: 1.0
minimumseedtime:
# 3 days (as seconds = 3 x 24 x 60 x 60)
text: 259200
# 3xT
+110
View File
@@ -0,0 +1,110 @@
---
id: comicat
name: comicat
description: "comicat is a CHINESE Semi-Private tracker for Anime / Hentai / Manga"
language: zh-CN
type: semi-private
encoding: UTF-8
requestDelay: 2
links:
- https://www.comicat.org/
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]
settings: []
login:
path: addon.php?r=document/view&page=visitor-test
method: form
form: form#visitor-test-form
inputs:
visitor_test: human
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)
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:
text: 1
leechers:
text: 1
downloadvolumefactor:
text: 0
uploadvolumefactor:
text: 1
# engine n/a
@@ -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
@@ -0,0 +1,196 @@
---
id: concertos
name: Concertos (API)
description: "Concertos is a Private Torrent Tracker 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"}
- {id: 10, cat: TV, desc: "Educational"}
modes:
search: [q]
tv-search: [q, season, ep, imdbid, tvdbid, tmdbid]
music-search: [q]
settings:
- name: apikey
type: text
label: APIKey
- name: info_key
type: info
label: About your API key
default: "Find or Generate a new API Token by accessing your <a href=\"https://concertos.live/\" target=\"_blank\">Concertos</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
error:
- selector: a[href*="/login"]
message:
text: "The API key was not accepted by {{ .Config.sitelink }}."
- selector: :root:contains("Account is Banned")
search:
paths:
# https://hdinnovations.github.io/UNIT3D/torrent_api.html
# https://github.com/HDInnovations/UNIT3D/blob/master/app/Http/Controllers/API/TorrentController.php#L657
- 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
title_filename:
selector: "files[0].name"
optional: true
files:
selector: num_file
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 }}"
details:
selector: details_link
download:
selector: download_link
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: [" & ", "_&_"]
_internal:
selector: internal
case:
False: "{{ .False }}"
True: "{{ .True }}"
description:
text: "{{ if .Result._internal }}Internal{{ else }}{{ end }}{{ if and .Result._internal .Result.genre }} | {{ else }}{{ end }}{{ .Result.genre }}"
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
_featured:
selector: featured
case:
False: "{{ .False }}"
True: "{{ .True }}"
downloadvolumefactor_freeleech:
# 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
downloadvolumefactor:
text: "{{ if .Result._featured }}0{{ else }}{{ .Result.downloadvolumefactor_freeleech }}{{ end }}"
uploadvolumefactor_double_upload:
# api returns False, True
selector: double_upload
case:
False: 1 # normal
True: 2 # double
uploadvolumefactor:
text: "{{ if .Result._featured }}2{{ else }}{{ .Result.uploadvolumefactor_double_upload }}{{ end }}"
# global MR is 1.0 but torrents must be seeded for 7 days regardless of ratio
# minimumratio:
# text: 1.0
minimumseedtime:
# 7 days (as seconds = 7 x 24 x 60 x 60)
text: 604800
# json UNIT3D 9.1.7
@@ -0,0 +1,139 @@
---
id: cpasbienclone
name: cpasbien clone
description: "cpasbien clone is a FRENCH Public site for MOVIES / TV / GENERAL"
language: fr-FR
type: public
encoding: UTF-8
followredirect: true
links:
- https://www1.cpasbien.to/
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/
- https://www.cpasbien.tw/
- https://www.cpasbien.love/
caps:
categories:
Other: Other
modes:
search: [q]
tv-search: [q, season, ep]
movie-search: [q]
allowrawsearch: true
settings:
- name: info_category_8000
type: info_category_8000
- 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
+218
View File
@@ -0,0 +1,218 @@
---
id: crabpt
name: CrabPT (蟹黄堡)
description: "CrabPT (蟹黄堡) is a CHINESE Private Torrent Tracker for MOVIES / TV / GENERAL"
language: zh-CN
type: private
encoding: UTF-8
requestDelay: 2
links:
- https://crabpt.vip/
caps:
# dont forget to update the path categories in the search block
categorymappings:
- {id: 401, cat: Movies, desc: "电影 / Movies", default: true}
- {id: 402, cat: TV, desc: "电视剧 / TVSeries", default: true}
- {id: 413, cat: TV/Other, desc: "短剧 / Playlet", default: true}
- {id: 408, cat: Audio, desc: "音乐 / Music", default: true}
- {id: 405, cat: TV/Anime, desc: "动漫 / Anime", default: true}
- {id: 406, cat: Audio/Video, desc: "MV", default: true}
- {id: 403, cat: TV, desc: "综艺 / TV Shows", default: true}
- {id: 407, cat: TV/Sport, desc: "体育竞技 / Sports", default: true}
- {id: 404, cat: TV/Documentary, desc: "纪录片 / Documentary", default: true}
- {id: 409, cat: Other, desc: "其他 / Other", default: true}
- {id: 415, cat: Books/Comics, desc: "漫画 / Cartoon", default: true}
- {id: 414, cat: Console, desc: "游戏 / Game", default: true}
- {id: 412, cat: Other, desc: "学习 / Study", default: true}
- {id: 411, cat: Audio/Audiobook, desc: "有声书 / Audiobook", default: true}
- {id: 410, cat: Books/EBook, desc: "电子书 / Ebook", default: true}
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.
- 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 will be deleted if they do not log in for 150 consecutive days</li><li>Users who have no traffic (i.e. 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
categories: [401, 402, 413, 408, 405, 406, 403, 407, 404, 409]
- path: special.php
categories: [415, 414, 412, 411, 410]
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^="download.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)
optional: true
default: 512MB
seeders:
selector: td.rowfollow:nth-child(6)
optional: true
default: 0
leechers:
selector: td.rowfollow:nth-child(7)
optional: true
default: 0
grabs:
selector: td.rowfollow:nth-child(8)
optional: true
default: 0
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.9.6 2025-06-25
@@ -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
@@ -0,0 +1,294 @@
---
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.ca/
legacylinks:
- 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_cookie
type: info_cookie
- 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:
# using cookie method because login page has embedded Google reCAPTCHA
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é Le : </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

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