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:
187
definitions/v11/dubhe.yml
Normal file
187
definitions/v11/dubhe.yml
Normal 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
|
||||
@@ -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
|
||||
197
definitions/v11/jptv4us-api.yml
Normal file
197
definitions/v11/jptv4us-api.yml
Normal 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
|
||||
@@ -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
176
definitions/v11/march.yml
Normal 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
|
||||
@@ -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
|
||||
|
||||
@@ -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]
|
||||
|
||||
Reference in New Issue
Block a user