1
0
mirror of https://github.com/Prowlarr/Indexers.git synced 2026-02-15 07:25:47 +00:00

jackett indexers as of bc8300ec5ae99462fc16fb039bab101aadaa88a7 [2026-01-08T21:17:16Z]

Added Indexers: definitions/v11/dubhe.yml definitions/v11/jptv4us-api.yml definitions/v11/march.yml

Removed Indexers: definitions/v11/exttorrents.yml

Modified Indexers: definitions/v11/mactorrentsdownload.yml
definitions/v11/tmghub.yml
definitions/v11/tocashare.yml
This commit is contained in:
ineednewpajamas
2026-01-08 15:17:16 -06:00
committed by Auggie
parent edcef8c2ea
commit ea330c65e0
7 changed files with 595 additions and 197 deletions

187
definitions/v11/dubhe.yml Normal file
View File

@@ -0,0 +1,187 @@
---
id: dubhe
name: dubhe (天枢)
description: "dubhe (天枢) is a CHINESE Private Torrent Tracker for MOVIES / TV / GENERAL"
language: zh-CN
type: private
encoding: UTF-8
links:
- https://dubhe.site/
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: "动漫/Anime"}
- {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/Misc, desc: "其他/Other"}
- {id: 410, cat: Books, desc: "书籍/Books"}
- {id: 411, cat: Other, desc: "照片/Photo"}
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>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)
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

View File

@@ -1,179 +0,0 @@
---
id: exttorrents
name: EXT Torrents
description: "EXT Torrents is a Public torrent site for MOVIES / TV / GENERAL"
language: en-US
type: public
encoding: UTF-8
requestDelay: 5
links:
- https://ext.to/
- https://search.extto.com/
- https://extranet.torrentbay.st/
legacylinks:
- https://ext.unblockninja.com/
- https://t.extto.com/
- https://torrent.extto.com/
- https://site.extto.com/
- https://ext.torrentbay.to/
- https://extranet.torrentbay.to/
- https://extranet.torrentbay.net/
caps:
categorymappings:
- {id: "/anime/", cat: TV/Anime, desc: Anime}
- {id: "/anime//anime/audio-lossy/", cat: Audio, desc: Anime Audio Lossy}
- {id: "/anime//anime/audio-lossless/", cat: Audio/Lossless, desc: Anime Audio Lossless}
- {id: "/anime//anime/english-translated/", cat: TV/Anime, desc: Anime English Translated}
- {id: "/anime//anime/live-action-english/", cat: TV/Anime, desc: Anime Live Action English}
- {id: "/anime//anime/live-action-raw/", cat: TV/Anime, desc: Anime Live Action Raw}
- {id: "/anime//anime/raw/", cat: TV/Anime, desc: Anime Raw}
- {id: "/anime//anime/subs/", cat: TV/Anime, desc: Anime Subs}
- {id: "/anime//raw/", cat: TV/Anime, desc: Anime Raw}
- {id: "/applications/", cat: PC, desc: Apps}
- {id: "/applications//applications/android/", cat: PC/Mobile-Android, desc: Apps Android}
- {id: "/applications//applications/ios/", cat: PC/Mobile-iOS, desc: Apps iOS}
- {id: "/applications//applications/linux/", cat: PC, desc: Apps Linux}
- {id: "/applications//applications/mac/", cat: PC/Mac, desc: Apps Mac}
- {id: "/applications//applications/other-applications/", cat: PC/Mobile-Other, desc: Apps Other}
- {id: "/applications//applications/windows/", cat: PC/0day, desc: Apps Windows}
- {id: "/books/", cat: Books, desc: Books}
- {id: "/books//books/audio-books/", cat: Audio/Audiobook, desc: Books Audiobooks}
- {id: "/books//books/comics/", cat: Books/Comics, desc: Books Comics}
- {id: "/books//books/ebooks/", cat: Books/EBook, desc: Books Ebooks}
- {id: "/books//books/manga-english/", cat: Books/Comics, desc: Books Manga English}
- {id: "/books//books/manga-raw/", cat: Books/Comics, desc: Books Manga Raw}
- {id: "/games/", cat: PC/Games, desc: Games}
- {id: "/games//games/mac/", cat: PC/Mac, desc: Games Mac}
- {id: "/games//games/nds/", cat: Console/NDS, desc: Games NDS}
- {id: "/games//games/other-games/", cat: Console/Other, desc: Games Other}
- {id: "/games//games/pc-games/", cat: PC/Games, desc: Games PC}
- {id: "/games//games/ps3/", cat: Console/PS3, desc: Games PS3}
- {id: "/games//games/ps4/", cat: Console/PS4, desc: Games PS4}
- {id: "/games//games/psp/", cat: Console/PSP, desc: Games PSP}
- {id: "/games//games/switch/", cat: Console/Other, desc: Games Switch}
- {id: "/games//games/wii/", cat: Console/Wii, desc: Games Wii}
- {id: "/games//games/xbox360/", cat: Console/XBox 360, desc: Games Xbox360}
- {id: "/movies/", cat: Movies, desc: Movies}
- {id: "/movies//movies/3d-movies/", cat: Movies/3D, desc: Movies 3D}
- {id: "/movies//movies/bollywood/", cat: Movies, desc: Movies Bollywood}
- {id: "/movies//movies/documentary/", cat: Movies, desc: Movies Documentary}
- {id: "/movies//movies/dubbed-movies/", cat: Movies, desc: Movies Dubbed}
- {id: "/movies//movies/dvd/", cat: Movies/DVD, desc: Movies DVD}
- {id: "/movies//movies/highres-movies/", cat: Movies/HD, desc: Movies Highres}
- {id: "/movies//movies/movie-clips/", cat: Movies/Other, desc: Movies Movie clips}
- {id: "/movies//movies/mp4/", cat: Movies, desc: Movies MP4}
- {id: "/movies//movies/music-videos/", cat: Audio/Video, desc: Movies Music videos}
- {id: "/movies//movies/other-movies/", cat: Movies, desc: Movies Other Movies}
- {id: "/movies//movies/ultrahd/", cat: Movies/UHD, desc: Movies UltraHD}
- {id: "/music/", cat: Audio, desc: Music}
- {id: "/music//music/aac/", cat: Audio, desc: Music AAC}
- {id: "/music//music/lossless/", cat: Audio/Lossless, desc: Music Lossless}
- {id: "/music//music/mp3/", cat: Audio/MP3, desc: Music MP3}
- {id: "/music//music/other-music/", cat: Audio/Other, desc: Music Other}
- {id: "/music//music/radio-shows/", cat: Audio, desc: Music Radio Shows}
- {id: "/other/", cat: Other, desc: Other}
- {id: "/tv/", cat: TV, desc: TV}
- {id: "/tv//tv/episodes-hd/", cat: TV/HD, desc: TV Episodes HD}
- {id: "/tv//tv/episodes-sd/", cat: TV/SD, desc: TV Episodes SD}
- {id: "/tv//tv/episodes-4k-uhd/", cat: TV/UHD, desc: TV Episodes 4K}
- {id: "/tv//tv/big-season-packs/", cat: TV, desc: TV Big Season Packs}
- {id: "/tv//tv/season-packs/", cat: TV, desc: TV Season Packs}
- {id: "/tv//tv/sports/", cat: TV/Sport, desc: TV Sports}
- {id: "/video/", cat: XXX, desc: XXX Video}
- {id: "/xxx/", cat: XXX, desc: XXX}
- {id: "/xxx//xxx/games/", cat: XXX/Other, desc: XXX Games}
- {id: "/xxx//xxx/hentai/", cat: XXX/Other, desc: XXX Hentai}
- {id: "/xxx//xxx/magazines/", cat: XXX/Other, desc: XXX Magazines}
- {id: "/xxx//xxx/pictures/", cat: XXX/ImageSet, desc: XXX Pictures}
- {id: "/xxx//xxx/video/", cat: XXX, desc: XXX Video}
modes:
search: [q]
tv-search: [q, season, ep, imdbid]
movie-search: [q, imdbid]
music-search: [q]
book-search: [q]
settings:
- name: sort
type: select
label: Sort requested from site
default: age
options:
age: created
seed: seeders
size: size
- name: type
type: select
label: Order requested from site
default: desc
options:
desc: desc
asc: asc
- name: info_flaresolverr
type: info_flaresolverr
search:
paths:
# https://ext.to/browse/?sort=age&order=desc&age=4&user_sort=1&with_adult=1
# https://ext.to/browse/?sort=age&order=desc&user_sort=1&q=wipeout&with_adult=1
# https://ext.to/browse/?imdb_id=tt2693776
- path: browse/
- path: browse/
inputs:
page: 2
followredirect: true
inputs:
q: "{{ .Keywords }}"
sort: "{{ .Config.sort }}"
order: "{{ .Config.type }}"
# 0=last 24 hours, 1=last 3 days, 2=last week, 3=last 2 weeks, 4=last month
age: "{{ if or .Keywords .Query.IMDBID }}{{ else }}0{{ end }}"
# familysafe 0=enabled, 1=disabled
with_adult: "{{ if .Query.IMDBID }}{{ else }}1{{ end }}"
imdb_id: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ end }}"
user_sort: 1
rows:
selector: table.table-striped > tbody > tr
fields:
category_part1:
selector: td:nth-child(1) div div a:nth-child(2)
attribute: href
optional: true
category_part2:
selector: td:nth-child(1) div div a:nth-child(3)
attribute: href
optional: true
category_combined:
text: "{{ .Result.category_part1 }}{{ .Result.category_part2 }}"
optional: true
category:
text: "{{ if .Result.category_combined }}{{ .Result.category_combined }}{{ else }}/other/{{ end }}"
title:
selector: td:nth-child(1) div a
details:
selector: td:nth-child(1) div a
attribute: href
infohash:
selector: a.search-magnet-btn
attribute: data-hash
size:
selector: td:nth-child(2)
files:
selector: td:nth-child(3)
optional: true
default: 1
date:
selector: td:nth-child(4)
seeders:
selector: td:nth-child(5)
leechers:
selector: td:nth-child(6)
downloadvolumefactor:
text: 0
uploadvolumefactor:
text: 1
# engine n/a

View File

@@ -0,0 +1,197 @@
---
id: jptv4us-api
name: JPTV4us (API)
description: "JPTV4us is a JAPANESE Private Torrent Tracker for MOVIES / TV / MUSIC / GENERAL"
language: en-US
type: private
encoding: UTF-8
links:
- https://jptv4.us/
caps:
categorymappings:
- {id: 1, cat: TV/Anime, desc: "Anime Movie"}
- {id: 2, cat: TV/Anime, desc: "Anime Series"}
- {id: 3, cat: TV/Documentary, desc: "Documentary"}
- {id: 4, cat: TV, desc: "Drama"}
- {id: 5, cat: TV/Other, desc: "Informational"}
- {id: 6, cat: Movies, desc: "Movie"}
- {id: 7, cat: Audio/Video, desc: "Music"}
- {id: 8, cat: TV/Other, desc: "News"}
- {id: 9, cat: TV/Other, desc: "Variety"}
- {id: 10, cat: Other, desc: "Other"}
- {id: 11, cat: Audio, desc: "Audio Only"}
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://jptv4.us/\" target=\"_blank\">JPTV4us</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
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.7

View File

@@ -31,11 +31,11 @@ download:
- name: replace
args: ["/download?", "/download/?"]
selectors:
- selector: script:contains("downloadLink")
- selector: script:contains("torrentLink")
usebeforeresponse: true
filters:
- name: regexp
args: "downloadLink = '(.+?)';"
args: "torrentLink = '(.+?)';"
search:
paths:

176
definitions/v11/march.yml Normal file
View File

@@ -0,0 +1,176 @@
---
id: march
name: March
description: "March is a CHINESE Private Torrent Tracker for MOVIES / TV"
language: zh-CN
type: private
encoding: UTF-8
links:
- https://duckboobee.org/
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: "Documentary/纪录片"}
- {id: 405, cat: TV/Anime, desc: "Animations/动画"}
- {id: 406, cat: Audio/Video, desc: "MV/演唱会"}
- {id: 407, cat: TV/Sport, desc: "Sports/体育"}
- {id: 408, cat: Audio, desc: "Music/音乐"}
- {id: 409, cat: Other/Misc, desc: "Misc/其他"}
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>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(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.9 2025-10-02

View File

@@ -21,6 +21,7 @@ caps:
- {id: 17, cat: Movies/WEB-DL, desc: "WEB-DL/DTH"}
- {id: 14, cat: Movies/DVD, desc: "DVD-Rips"}
- {id: 15, cat: Movies/HD, desc: "DTH/HD-Rip"}
- {id: 45, cat: Movies/Other, desc: "AI Encodes"}
- {id: 20, cat: Movies/SD, desc: "VHS/TV-Rip"}
- {id: 21, cat: Movies, desc: "Video CDs"}
- {id: 19, cat: Movies, desc: "Pre Releases "}
@@ -138,48 +139,56 @@ search:
by: "{{ .Config.type }}"
rows:
selector: "table#tottest[width=\"100%\"] tr:has(a[href^=\"index.php?page=torrent-details\"]):not(:has(img[title=\"Allready Grabbed !!\"]))"
selector: "table.torrents tr:has(a[href^=\"index.php?page=torrent-details\"]):not(:has(img[title=\"Allready Grabbed !!\"]))"
fields:
category:
selector: td a[href^="index.php?page=torrents&category="]
selector: td.category > a
attribute: href
filters:
- name: querystring
args: category
title:
selector: td a[href^="index.php?page=torrent-details"]
selector: td.torrent-first a
details:
selector: td a[href^="index.php?page=torrent-details"]
selector: td.torrent-first a
attribute: href
download:
selector: td a[href^="index.php?page=torrent-details"]
attribute: href
imdbid:
selector: a[href*="imdb.com/title/tt"]
selector: td.download > a
attribute: href
poster:
selector: td a[href^="index.php?page=torrent-details"]
selector: td.torrent-first a
attribute: onmouseover
filters:
- name: regexp
args: "src=(.+?) width"
args: "src=(.+?) border"
date:
# 6 weeks ago
selector: td a[href^="index.php?page=torrent-details"]
selector: td.torrent-first a
attribute: onmouseover
filters:
- name: regexp
args: "Added\\:(\\d+ \\w+ \\w+)<"
- name: timeago
size:
selector: td:nth-child(5)
selector: td.size
grabs:
selector: td:nth-child(6)
selector: td.torrent-first div div
filters:
- name: regexp
args: "^\\d+\\s+\\d+\\s+(.+)"
- name: replace
args: ["---", "0"]
seeders:
selector: td:nth-child(7)
selector: td.torrent-first div div
filters:
- name: regexp
args: "^(\\d+)\\s+\\d+\\s+.+"
leechers:
selector: td:nth-child(8)
selector: td.torrent-first div div
filters:
- name: regexp
args: "^\\d+\\s+(\\d+)\\s+.+"
downloadvolumefactor:
case:
img[src="gold/gold.gif"]: 0

View File

@@ -12,9 +12,17 @@ legacylinks:
caps:
categorymappings:
- {id: 1, cat: Books/Mags, desc: "Revistas"}
- {id: 2, cat: TV, desc: "Seriado"}
- {id: 3, cat: Audio/Audiobook, desc: "Música"}
- {id: 4, cat: Console, desc: "Jogo"}
- {id: 5, cat: PC, desc: "Aplicativo"}
- {id: 6, cat: Books/EBook, desc: "E-Books"}
- {id: 7, cat: Other, desc: "Cursos"}
- {id: 9, cat: Audio/Audiobook, desc: "Audio E-Book"}
- {id: 8, cat: XXX/ImageSet, desc: "Fotos Adultas"}
- {id: 9, cat: Audio/Audiobook, desc: "Audio livro"}
- {id: 10, cat: Books/Comics, desc: "HQs/Mangas"}
- {id: 11, cat: TV, desc: "Shows"}
modes:
search: [q]