mirror of
https://github.com/Prowlarr/Indexers.git
synced 2026-02-15 07:25:47 +00:00
Bump min version to v9
This commit is contained in:
19
README.md
19
README.md
@@ -36,12 +36,11 @@ To test the definition:
|
|||||||
|
|
||||||
## Active Versions
|
## Active Versions
|
||||||
|
|
||||||
- [V8 Indexers](https://github.com/Prowlarr/Prowlarr/commit/1529527af9d2bf09dcd1b540b4c6f95a7dd00bd1) - Dev 1.1.0.2322
|
- [V9 Indexers](https://github.com/Prowlarr/Prowlarr/commit/bceebc34c134db8140a307e25312cb15e0ff5d63) - Dev 1.4.0.3230
|
||||||
- Prowlarr Cardigann v8 includes several changes such as
|
- Prowlarr Cardigann v9 includes several changes such as
|
||||||
- HtmlEncode and HtmlDecode filters
|
- AllowEmptyInputs
|
||||||
- [V7 Indexers](https://github.com/Prowlarr/Prowlarr/commit/ee6467073f64cfaa5ef0de2225f39f0fd0eb5c05) - Dev 0.4.4.1947
|
- default values
|
||||||
- Prowlarr Cardigann v7 includes several changes such as
|
- MissingAttributeEqualsNoResults
|
||||||
- `Publisher`, `Year`, `Genre`, Query support
|
|
||||||
|
|
||||||
## Depreciated Versions
|
## Depreciated Versions
|
||||||
|
|
||||||
@@ -86,3 +85,11 @@ To test the definition:
|
|||||||
- Prowlarr Cardigann v6 includes several changes such as
|
- Prowlarr Cardigann v6 includes several changes such as
|
||||||
- `doubanid` support
|
- `doubanid` support
|
||||||
- `tmdbid` TV Search Support
|
- `tmdbid` TV Search Support
|
||||||
|
|
||||||
|
### [V8 Indexers](https://github.com/Prowlarr/Prowlarr/commit/1529527af9d2bf09dcd1b540b4c6f95a7dd00bd1) - Dev 1.1.0.2322
|
||||||
|
- Prowlarr Cardigann v8 includes several changes such as
|
||||||
|
- HtmlEncode and HtmlDecode filters
|
||||||
|
|
||||||
|
### [V7 Indexers](https://github.com/Prowlarr/Prowlarr/commit/ee6467073f64cfaa5ef0de2225f39f0fd0eb5c05) - Dev 0.4.4.1947
|
||||||
|
- Prowlarr Cardigann v7 includes several changes such as
|
||||||
|
- `Publisher`, `Year`, `Genre`, Query support
|
||||||
|
|||||||
@@ -1,201 +0,0 @@
|
|||||||
---
|
|
||||||
id: 1ptbar
|
|
||||||
name: 1ptbar
|
|
||||||
description: "1ptbar is a CHINESE Private Torrent Tracker for MOVIES / TV / E-LEARNING"
|
|
||||||
language: zh-CN
|
|
||||||
type: private
|
|
||||||
encoding: UTF-8
|
|
||||||
links:
|
|
||||||
- https://1ptba.com/
|
|
||||||
|
|
||||||
caps:
|
|
||||||
categorymappings:
|
|
||||||
- {id: 401, cat: Movies, desc: "Movies/电影"}
|
|
||||||
- {id: 404, cat: TV/Documentary, desc: "Documentaries/纪录片"}
|
|
||||||
- {id: 405, cat: TV/Anime, desc: "Animations/动漫"}
|
|
||||||
- {id: 402, cat: TV, desc: "TV Series/电视剧"}
|
|
||||||
- {id: 403, cat: TV, desc: "TV Shows/综艺节目"}
|
|
||||||
- {id: 406, cat: Audio/Video, desc: "Music Videos/音乐MV"}
|
|
||||||
- {id: 407, cat: TV/Sport, desc: "Sports/体育"}
|
|
||||||
- {id: 409, cat: Other, desc: "Misc/其他"}
|
|
||||||
- {id: 408, cat: Audio, desc: "HQ Audio/高品质音频"}
|
|
||||||
- {id: 412, cat: Other, desc: "Edu/教育"}
|
|
||||||
- {id: 411, cat: PC/Games, desc: "Games/游戏"}
|
|
||||||
- {id: 410, cat: PC/0day, desc: "Software/软件"}
|
|
||||||
|
|
||||||
modes:
|
|
||||||
search: [q]
|
|
||||||
tv-search: [q, season, ep, imdbid, doubanid]
|
|
||||||
movie-search: [q, imdbid, doubanid]
|
|
||||||
music-search: [q]
|
|
||||||
|
|
||||||
settings:
|
|
||||||
- name: username
|
|
||||||
type: text
|
|
||||||
label: Username
|
|
||||||
- name: password
|
|
||||||
type: password
|
|
||||||
label: Password
|
|
||||||
- name: 2facode
|
|
||||||
type: text
|
|
||||||
label: 2FA code
|
|
||||||
- name: info_2fa
|
|
||||||
type: info
|
|
||||||
label: "About 2FA code"
|
|
||||||
default: "Only fill in the <b>2FA code</b> box if you have enabled <b>2FA</b> on the 1ptbar Web Site. Otherwise just leave it empty."
|
|
||||||
- name: freeleech
|
|
||||||
type: checkbox
|
|
||||||
label: Search freeleech only
|
|
||||||
default: false
|
|
||||||
- name: sort
|
|
||||||
type: select
|
|
||||||
label: Sort requested from site
|
|
||||||
default: 4
|
|
||||||
options:
|
|
||||||
4: created
|
|
||||||
7: seeders
|
|
||||||
5: size
|
|
||||||
1: title
|
|
||||||
- name: type
|
|
||||||
type: select
|
|
||||||
label: Order requested from site
|
|
||||||
default: desc
|
|
||||||
options:
|
|
||||||
desc: desc
|
|
||||||
asc: asc
|
|
||||||
- name: flaresolverr
|
|
||||||
type: info
|
|
||||||
label: FlareSolverr
|
|
||||||
default: This site may use Cloudflare DDoS Protection, therefore Prowlarr requires <a href="https://wiki.servarr.com/prowlarr/faq#can-i-use-flaresolverr-indexers" target="_blank" rel="noreferrer">FlareSolverr</a> to access it.
|
|
||||||
- name: info_tpp
|
|
||||||
type: info
|
|
||||||
label: Results Per Page
|
|
||||||
default: For best results, change the <b>Torrents per page:</b> setting to <b>100</b> on your account profile.
|
|
||||||
- name: info_activity
|
|
||||||
type: info
|
|
||||||
label: Account Inactivity
|
|
||||||
default: "Cherish your user account. Inactive accounts would be deleted based on the following rules:<ol><li>Veteran User or above would never be deleted.</li><li>Elite User or above would never be deleted if parked (at User CP).</li><li>Parked accounts would be deleted if users have not logged in for more than 400 days in a row.</li><li>Unparked accounts would be deleted if users have not logged in for more than 150 days in a row.</li><li>Accounts with both uploaded and downloaded amount being 0 would be deleted if users have not logged in for more than 100 days in a row.</li></ol>"
|
|
||||||
|
|
||||||
login:
|
|
||||||
path: login.php
|
|
||||||
method: form
|
|
||||||
form: form[action="takelogin.php"]
|
|
||||||
captcha:
|
|
||||||
type: image
|
|
||||||
selector: img[alt="CAPTCHA"]
|
|
||||||
input: imagestring
|
|
||||||
inputs:
|
|
||||||
secret: ""
|
|
||||||
username: "{{ .Config.username }}"
|
|
||||||
password: "{{ .Config.password }}"
|
|
||||||
two_step_code: "{{ .Config.2facode }}"
|
|
||||||
logout: ""
|
|
||||||
securelogin: ""
|
|
||||||
ssl: yes
|
|
||||||
trackerssl: yes
|
|
||||||
error:
|
|
||||||
- selector: td.embedded:has(h2:contains("失败"))
|
|
||||||
test:
|
|
||||||
path: index.php
|
|
||||||
selector: a[href="logout.php"]
|
|
||||||
|
|
||||||
search:
|
|
||||||
paths:
|
|
||||||
- path: torrents.php
|
|
||||||
inputs:
|
|
||||||
$raw: "{{ range .Categories }}cat{{.}}=1&{{end}}"
|
|
||||||
search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ end }}{{ if or .Query.IMDBID .Query.DoubanID }} {{ else }}{{ .Keywords }}{{ end }}{{ if .Query.DoubanID }}{{ .Query.DoubanID }}{{ else }}{{ end }}"
|
|
||||||
# 0 incldead, 1 active, 2 dead
|
|
||||||
incldead: 0
|
|
||||||
# 0 all, 1 normal, 2 free, 3 2x, 4 2xfree, 5 50%, 6 2x50%, 7 30%
|
|
||||||
spstate: "{{ if .Config.freeleech }}2{{ else }}0{{ end }}"
|
|
||||||
# 0 title, 1 descr, 3 uploader, 4 imdburl
|
|
||||||
search_area: "{{ if .Query.IMDBID }}4{{ else }}{{ end }}{{ if .Query.DoubanID }}1{{ else }}{{ end }}{{ if or .Query.IMDBID .Query.DoubanID }}{{ else }}0{{ end }}"
|
|
||||||
# 0 AND, 2 exact
|
|
||||||
search_mode: 0
|
|
||||||
sort: "{{ .Config.sort }}"
|
|
||||||
type: "{{ .Config.type }}"
|
|
||||||
notnewword: 1
|
|
||||||
|
|
||||||
rows:
|
|
||||||
selector: table.torrents > tbody > tr:has(table.torrentname)
|
|
||||||
|
|
||||||
fields:
|
|
||||||
category:
|
|
||||||
selector: a[href^="?cat="]
|
|
||||||
attribute: href
|
|
||||||
filters:
|
|
||||||
- name: querystring
|
|
||||||
args: cat
|
|
||||||
title_default:
|
|
||||||
selector: a[href^="details.php?id="]
|
|
||||||
title_optional:
|
|
||||||
optional: true
|
|
||||||
selector: a[title][href^="details.php?id="]
|
|
||||||
attribute: title
|
|
||||||
title:
|
|
||||||
text: "{{ if .Result.title_optional }}{{ .Result.title_optional }}{{ else }}{{ .Result.title_default }}{{ end }}"
|
|
||||||
details:
|
|
||||||
selector: a[href^="details.php?id="]
|
|
||||||
attribute: href
|
|
||||||
download:
|
|
||||||
selector: a[href^="download.php?id="]
|
|
||||||
attribute: href
|
|
||||||
poster:
|
|
||||||
selector: img[data-src]
|
|
||||||
attribute: data-src
|
|
||||||
imdbid:
|
|
||||||
# site currently only has a badge and rating, the id is not present. just in case a future update.
|
|
||||||
selector: a[href*="imdb.com/title/tt"]
|
|
||||||
attribute: href
|
|
||||||
doubanid:
|
|
||||||
# site currently only has a badge and rating, the id is not present. just in case a future update.
|
|
||||||
selector: a[href*="movie.douban.com/subject/"]
|
|
||||||
attribute: href
|
|
||||||
date_elapsed:
|
|
||||||
# time type: time elapsed (default)
|
|
||||||
selector: td.rowfollow:nth-last-of-type(6) > span[title]
|
|
||||||
attribute: title
|
|
||||||
optional: true
|
|
||||||
filters:
|
|
||||||
- name: append
|
|
||||||
args: " +08:00"
|
|
||||||
- name: dateparse
|
|
||||||
args: "yyyy-MM-dd HH:mm:ss zzz"
|
|
||||||
date_added:
|
|
||||||
# time added
|
|
||||||
selector: td.rowfollow:nth-last-of-type(6):not(:has(span))
|
|
||||||
optional: true
|
|
||||||
filters:
|
|
||||||
- name: append
|
|
||||||
args: " +08:00" # CST
|
|
||||||
- name: dateparse
|
|
||||||
args: "yyyy-MM-ddHH:mm:ss zzz"
|
|
||||||
date:
|
|
||||||
text: "{{ if or .Result.date_elapsed .Result.date_added }}{{ or .Result.date_elapsed .Result.date_added }}{{ else }}now{{ end }}"
|
|
||||||
size:
|
|
||||||
selector: td.rowfollow:nth-last-of-type(5)
|
|
||||||
seeders:
|
|
||||||
selector: td.rowfollow:nth-last-of-type(4)
|
|
||||||
leechers:
|
|
||||||
selector: td.rowfollow:nth-last-of-type(3)
|
|
||||||
grabs:
|
|
||||||
selector: td.rowfollow:nth-last-of-type(2)
|
|
||||||
downloadvolumefactor:
|
|
||||||
case:
|
|
||||||
img.pro_free: 0
|
|
||||||
img.pro_free2up: 0
|
|
||||||
img.pro_50pctdown: 0.5
|
|
||||||
img.pro_50pctdown2up: 0.5
|
|
||||||
img.pro_30pctdown: 0.3
|
|
||||||
"*": 1
|
|
||||||
uploadvolumefactor:
|
|
||||||
case:
|
|
||||||
img.pro_50pctdown2up: 2
|
|
||||||
img.pro_free2up: 2
|
|
||||||
img.pro_2up: 2
|
|
||||||
"*": 1
|
|
||||||
description:
|
|
||||||
selector: td:nth-child(2)
|
|
||||||
remove: a, b, font, img, span
|
|
||||||
# NexusPHP v1.8.11 2024-03-27
|
|
||||||
@@ -1,204 +0,0 @@
|
|||||||
---
|
|
||||||
id: 2xfree
|
|
||||||
name: 2xFree
|
|
||||||
description: "2xFree is a CHINESE Private Torrent Tracker for 3D MOVIES / TV"
|
|
||||||
language: zh-CN
|
|
||||||
type: private
|
|
||||||
encoding: UTF-8
|
|
||||||
links:
|
|
||||||
- https://pt.2xfree.org/
|
|
||||||
|
|
||||||
caps:
|
|
||||||
categorymappings:
|
|
||||||
|
|
||||||
# torrents.php
|
|
||||||
- {id: 526, cat: Movies, desc: "3DMovies(3D电影)"}
|
|
||||||
- {id: 527, cat: TV, desc: "3DSeries(3D剧集)"}
|
|
||||||
- {id: 533, cat: Movies, desc: "VRMovies(VR电影)"}
|
|
||||||
- {id: 534, cat: TV, desc: "VRSeries(VR剧集)"}
|
|
||||||
- {id: 537, cat: TV, desc: "VRShows(VR演出)"}
|
|
||||||
- {id: 530, cat: Console, desc: "VRGame(VR一体机游戏)"}
|
|
||||||
- {id: 531, cat: PC/Games, desc: "PCVRGame(PCVR游戏)"}
|
|
||||||
- {id: 532, cat: Other, desc: "VRTools(VR工具软件)"}
|
|
||||||
|
|
||||||
modes:
|
|
||||||
search: [q]
|
|
||||||
tv-search: [q, season, ep, imdbid, doubanid]
|
|
||||||
movie-search: [q, imdbid, doubanid]
|
|
||||||
|
|
||||||
settings:
|
|
||||||
- name: username
|
|
||||||
type: text
|
|
||||||
label: Username
|
|
||||||
- name: password
|
|
||||||
type: password
|
|
||||||
label: Password
|
|
||||||
- name: 2facode
|
|
||||||
type: text
|
|
||||||
label: 2FA code
|
|
||||||
- name: info_2fa
|
|
||||||
type: info
|
|
||||||
label: "About 2FA code"
|
|
||||||
default: "Only fill in the <b>2FA code</b> box if you have enabled <b>2FA</b> on the 2xFree Web Site. Otherwise just leave it empty."
|
|
||||||
- name: freeleech
|
|
||||||
type: checkbox
|
|
||||||
label: Search freeleech only
|
|
||||||
default: false
|
|
||||||
- name: sort
|
|
||||||
type: select
|
|
||||||
label: Sort requested from site
|
|
||||||
default: 4
|
|
||||||
options:
|
|
||||||
4: created
|
|
||||||
7: seeders
|
|
||||||
5: size
|
|
||||||
1: title
|
|
||||||
- name: type
|
|
||||||
type: select
|
|
||||||
label: Order requested from site
|
|
||||||
default: desc
|
|
||||||
options:
|
|
||||||
desc: desc
|
|
||||||
asc: asc
|
|
||||||
- name: info_tpp
|
|
||||||
type: info
|
|
||||||
label: Results Per Page
|
|
||||||
default: For best results, change the <b>Torrents per page:</b> setting to <b>100</b> on your account profile.
|
|
||||||
- name: info_ulslr
|
|
||||||
type: info
|
|
||||||
label: Upload Speed Limit Rule
|
|
||||||
default: The upload bandwidth shall not exceed 120Mbps, that is, the upload speed shall not exceed 15MB/s.
|
|
||||||
- name: flaresolverr
|
|
||||||
type: info
|
|
||||||
label: FlareSolverr
|
|
||||||
default: This site may use Cloudflare DDoS Protection, therefore Prowlarr requires <a href="https://wiki.servarr.com/prowlarr/faq#can-i-use-flaresolverr-indexers" target="_blank" rel="noreferrer">FlareSolverr</a> to access it.
|
|
||||||
- name: info_activity
|
|
||||||
type: info
|
|
||||||
label: Account Inactivity
|
|
||||||
default: "Account retention rules:<ol><li>Veteran User and above will be retained forever</li><li>Elite User and above will not be deleted after parking (in the control panel)</li><li>Users with a parked account will be deleted if they do not log in for 400 consecutive days</li><li>Users with a non-parked account will be deleted if they do not log in for 150 consecutive days</li><li>Users with no traffic (ie, upload/download data are both 0) will be deleted if they do not log in for 100 consecutive days.</li></ol>"
|
|
||||||
|
|
||||||
login:
|
|
||||||
path: login.php
|
|
||||||
method: form
|
|
||||||
form: form[action="takelogin.php"]
|
|
||||||
captcha:
|
|
||||||
type: image
|
|
||||||
selector: img[alt="CAPTCHA"]
|
|
||||||
input: imagestring
|
|
||||||
inputs:
|
|
||||||
secret: ""
|
|
||||||
username: "{{ .Config.username }}"
|
|
||||||
password: "{{ .Config.password }}"
|
|
||||||
two_step_code: "{{ .Config.2facode }}"
|
|
||||||
logout: ""
|
|
||||||
securelogin: ""
|
|
||||||
ssl: yes
|
|
||||||
trackerssl: yes
|
|
||||||
error:
|
|
||||||
- selector: td.embedded:has(h2:contains("失败"))
|
|
||||||
test:
|
|
||||||
path: index.php
|
|
||||||
selector: a[href="logout.php"]
|
|
||||||
|
|
||||||
search:
|
|
||||||
paths:
|
|
||||||
- path: torrents.php
|
|
||||||
inputs:
|
|
||||||
$raw: "{{ range .Categories }}cat{{.}}=1&{{end}}"
|
|
||||||
search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ end }}{{ if or .Query.IMDBID .Query.DoubanID }} {{ else }}{{ .Keywords }}{{ end }}{{ if .Query.DoubanID }}{{ .Query.DoubanID }}{{ else }}{{ end }}"
|
|
||||||
# 0 incldead, 1 active, 2 dead
|
|
||||||
incldead: 0
|
|
||||||
# 0 all, 1 normal, 2 free, 3 2x, 4 2xfree, 5 50%, 6 2x50%, 7 30%
|
|
||||||
spstate: "{{ if .Config.freeleech }}2{{ else }}0{{ end }}"
|
|
||||||
# 0 title, 1 descr, 3 uploader, 4 imdburl (4 does not appear to work)
|
|
||||||
search_area: "{{ if or .Query.IMDBID .Query.DoubanID }}1{{ else }}0{{ end }}"
|
|
||||||
# 0 AND, 1 OR, 2 exact
|
|
||||||
search_mode: 0
|
|
||||||
sort: "{{ .Config.sort }}"
|
|
||||||
type: "{{ .Config.type }}"
|
|
||||||
notnewword: 1
|
|
||||||
|
|
||||||
rows:
|
|
||||||
selector: table.torrents > tbody > tr:has(a[href^="details.php?id="])
|
|
||||||
|
|
||||||
fields:
|
|
||||||
category:
|
|
||||||
selector: a[href^="?cat="]
|
|
||||||
attribute: href
|
|
||||||
filters:
|
|
||||||
- name: querystring
|
|
||||||
args: cat
|
|
||||||
title_default:
|
|
||||||
selector: a[href^="details.php?id="]
|
|
||||||
title_optional:
|
|
||||||
optional: true
|
|
||||||
selector: a[title][href^="details.php?id="]
|
|
||||||
attribute: title
|
|
||||||
title:
|
|
||||||
text: "{{ if .Result.title_optional }}{{ .Result.title_optional }}{{ else }}{{ .Result.title_default }}{{ end }}"
|
|
||||||
details:
|
|
||||||
selector: a[href^="details.php?id="]
|
|
||||||
attribute: href
|
|
||||||
download:
|
|
||||||
selector: a[href^="download.php?id="]
|
|
||||||
attribute: href
|
|
||||||
poster:
|
|
||||||
selector: img[data-src]
|
|
||||||
attribute: data-src
|
|
||||||
imdbid:
|
|
||||||
# site currently only has a badge and rating, the id is not present. just in case a future update.
|
|
||||||
selector: a[href*="imdb.com/title/tt"]
|
|
||||||
attribute: href
|
|
||||||
doubanid:
|
|
||||||
# site currently only has a badge and rating, the id is not present. just in case a future update.
|
|
||||||
selector: a[href*="movie.douban.com/subject/"]
|
|
||||||
attribute: href
|
|
||||||
date_elapsed:
|
|
||||||
# time type: time elapsed (default)
|
|
||||||
selector: td.rowfollow:nth-child(4) > span[title]
|
|
||||||
attribute: title
|
|
||||||
optional: true
|
|
||||||
filters:
|
|
||||||
- name: append
|
|
||||||
args: " +08:00" # CST
|
|
||||||
- name: dateparse
|
|
||||||
args: "yyyy-MM-dd HH:mm:ss zzz"
|
|
||||||
date_added:
|
|
||||||
# time added
|
|
||||||
selector: td.rowfollow:nth-child(4):not(:has(span))
|
|
||||||
optional: true
|
|
||||||
filters:
|
|
||||||
- name: append
|
|
||||||
args: " +08:00" # CST
|
|
||||||
- name: dateparse
|
|
||||||
args: "yyyy-MM-ddHH:mm:ss zzz"
|
|
||||||
date:
|
|
||||||
text: "{{ if or .Result.date_elapsed .Result.date_added }}{{ or .Result.date_elapsed .Result.date_added }}{{ else }}now{{ end }}"
|
|
||||||
size:
|
|
||||||
selector: td.rowfollow:nth-child(5)
|
|
||||||
seeders:
|
|
||||||
selector: td.rowfollow:nth-child(6)
|
|
||||||
leechers:
|
|
||||||
selector: td.rowfollow:nth-child(7)
|
|
||||||
grabs:
|
|
||||||
selector: td.rowfollow:nth-child(8)
|
|
||||||
downloadvolumefactor:
|
|
||||||
case:
|
|
||||||
img.pro_free: 0
|
|
||||||
img.pro_free2up: 0
|
|
||||||
img.pro_50pctdown: 0.5
|
|
||||||
img.pro_50pctdown2up: 0.5
|
|
||||||
img.pro_30pctdown: 0.3
|
|
||||||
"*": 1
|
|
||||||
uploadvolumefactor:
|
|
||||||
case:
|
|
||||||
img.pro_50pctdown2up: 2
|
|
||||||
img.pro_free2up: 2
|
|
||||||
img.pro_2up: 2
|
|
||||||
"*": 1
|
|
||||||
minimumratio:
|
|
||||||
text: 0.8
|
|
||||||
description:
|
|
||||||
selector: td.rowfollow:nth-child(2)
|
|
||||||
remove: a, b, font, img, span
|
|
||||||
# NexusPHP v1.8.6 2023-06-18
|
|
||||||
@@ -1,191 +0,0 @@
|
|||||||
---
|
|
||||||
id: 3changtrai
|
|
||||||
name: 3ChangTrai
|
|
||||||
description: "3ChangTrai (3CT) is a VIETNAMESE Private Torrent Tracker for HD MOVIES / TV / GENERAL"
|
|
||||||
language: vi-VN
|
|
||||||
type: private
|
|
||||||
encoding: UTF-8
|
|
||||||
links:
|
|
||||||
- https://3changtrai.com/
|
|
||||||
|
|
||||||
caps:
|
|
||||||
categorymappings:
|
|
||||||
- {id: 401, cat: Movies, desc: "Movies"}
|
|
||||||
- {id: 402, cat: TV, desc: "TV Series"}
|
|
||||||
- {id: 403, cat: TV, desc: "TV Shows"}
|
|
||||||
- {id: 404, cat: TV/Documentary, desc: "Documentaries"}
|
|
||||||
- {id: 405, cat: TV/Anime, desc: "Animations"}
|
|
||||||
- {id: 406, cat: Audio/Video, desc: "Music Videos"}
|
|
||||||
- {id: 407, cat: TV/Sport, desc: "Sports"}
|
|
||||||
- {id: 408, cat: Audio, desc: "HQ Audio"}
|
|
||||||
- {id: 410, cat: PC, desc: "Software"}
|
|
||||||
- {id: 411, cat: Books, desc: "Documents"}
|
|
||||||
- {id: 412, cat: PC/Games, desc: "Games"}
|
|
||||||
|
|
||||||
modes:
|
|
||||||
search: [q]
|
|
||||||
tv-search: [q, season, ep, imdbid]
|
|
||||||
movie-search: [q, imdbid]
|
|
||||||
music-search: [q]
|
|
||||||
book-search: [q]
|
|
||||||
|
|
||||||
settings:
|
|
||||||
- name: username
|
|
||||||
type: text
|
|
||||||
label: Username
|
|
||||||
- name: password
|
|
||||||
type: password
|
|
||||||
label: Password
|
|
||||||
- name: freeleech
|
|
||||||
type: checkbox
|
|
||||||
label: Search freeleech only
|
|
||||||
default: false
|
|
||||||
- name: sort
|
|
||||||
type: select
|
|
||||||
label: Sort requested from site
|
|
||||||
default: 4
|
|
||||||
options:
|
|
||||||
4: created
|
|
||||||
7: seeders
|
|
||||||
5: size
|
|
||||||
1: title
|
|
||||||
- name: type
|
|
||||||
type: select
|
|
||||||
label: Order requested from site
|
|
||||||
default: desc
|
|
||||||
options:
|
|
||||||
desc: desc
|
|
||||||
asc: asc
|
|
||||||
- name: flaresolverr
|
|
||||||
type: info
|
|
||||||
label: FlareSolverr
|
|
||||||
default: This site may use Cloudflare DDoS Protection, therefore Prowlarr requires <a href="https://wiki.servarr.com/prowlarr/faq#can-i-use-flaresolverr-indexers" target="_blank" rel="noreferrer">FlareSolverr</a> to access it.
|
|
||||||
- name: info_tpp
|
|
||||||
type: info
|
|
||||||
label: Results Per Page
|
|
||||||
default: For best results, change the <b>Torrents per page:</b> setting to <b>100</b> on your account profile.
|
|
||||||
- name: info_activity
|
|
||||||
type: info
|
|
||||||
label: Account Inactivity
|
|
||||||
default: "Cherish your account. Inactive accounts will be deleted based on the following provisions:<ol><li>Nexus Master or later will not be deleted account.</li><li>Veteran User or higher will not be deleted if temporarily locked (at User Settings).</li><li>Temporarily locked accounts will be deleted if not logged in within 90 days.</li><li>Accounts that are not temporarily locked will be deleted if they do not log in within 60 days.</li><li>Accounts with no storage for uploads and downloads will be deleted if they do not log in within 30 days or have registered within 14 days.</li></ol>"
|
|
||||||
|
|
||||||
login:
|
|
||||||
path: login.php
|
|
||||||
method: form
|
|
||||||
form: form[action="takelogin.php"]
|
|
||||||
captcha:
|
|
||||||
type: image
|
|
||||||
selector: img[alt="CAPTCHA"]
|
|
||||||
input: imagestring
|
|
||||||
inputs:
|
|
||||||
username: "{{ .Config.username }}"
|
|
||||||
password: "{{ .Config.password }}"
|
|
||||||
logout: ""
|
|
||||||
securelogin: ""
|
|
||||||
ssl: yes
|
|
||||||
trackerssl: yes
|
|
||||||
error:
|
|
||||||
- selector: td.embedded:has(h2:contains("Đăng nhập thất bại!")) # Login failed!
|
|
||||||
- selector: td.embedded:has(h2:contains("Thất bại")) # Failure (captcha)
|
|
||||||
test:
|
|
||||||
path: index.php
|
|
||||||
selector: a[href="logout.php"]
|
|
||||||
|
|
||||||
search:
|
|
||||||
paths:
|
|
||||||
- path: torrents.php
|
|
||||||
inputs:
|
|
||||||
$raw: "{{ range .Categories }}cat{{.}}=1&{{end}}"
|
|
||||||
search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}"
|
|
||||||
# 0 incldead, 1 active, 2 dead
|
|
||||||
incldead: 0
|
|
||||||
# 0 all, 1 normal, 2 free, 3 2x, 4 2xfree, 5 50%, 6 2x50%, 7 30%
|
|
||||||
spstate: "{{ if .Config.freeleech }}2{{ else }}0{{ end }}"
|
|
||||||
# 0 title, 1 descr, 3 uploader, 4 imdburl
|
|
||||||
search_area: "{{ if .Query.IMDBID }}4{{ else }}0{{ end }}"
|
|
||||||
# 0 AND, 1 OR, 2 exact
|
|
||||||
search_mode: 0
|
|
||||||
sort: "{{ .Config.sort }}"
|
|
||||||
type: "{{ .Config.type }}"
|
|
||||||
notnewword: 1
|
|
||||||
|
|
||||||
rows:
|
|
||||||
selector: table.torrents > tbody > tr:has(table.torrentname)
|
|
||||||
|
|
||||||
fields:
|
|
||||||
category:
|
|
||||||
selector: a[href^="?cat="]
|
|
||||||
attribute: href
|
|
||||||
filters:
|
|
||||||
- name: querystring
|
|
||||||
args: cat
|
|
||||||
title_default:
|
|
||||||
selector: a[href^="details.php?id="]
|
|
||||||
title_optional:
|
|
||||||
optional: true
|
|
||||||
selector: a[title][href^="details.php?id="]
|
|
||||||
attribute: title
|
|
||||||
title:
|
|
||||||
text: "{{ if .Result.title_optional }}{{ .Result.title_optional }}{{ else }}{{ .Result.title_default }}{{ end }}"
|
|
||||||
details:
|
|
||||||
selector: a[href^="details.php?id="]
|
|
||||||
attribute: href
|
|
||||||
download:
|
|
||||||
selector: a[href^="download.php?id="]
|
|
||||||
attribute: href
|
|
||||||
poster:
|
|
||||||
selector: img[data-src]
|
|
||||||
attribute: data-src
|
|
||||||
imdbid:
|
|
||||||
selector: a[href*="imdb.com/title/tt"]
|
|
||||||
attribute: href
|
|
||||||
date_elapsed:
|
|
||||||
# time type: time elapsed (default)
|
|
||||||
selector: td.rowfollow:nth-child(5) > span[title]
|
|
||||||
attribute: title
|
|
||||||
optional: true
|
|
||||||
filters:
|
|
||||||
- name: append
|
|
||||||
args: " +07:00" # ICT
|
|
||||||
- name: dateparse
|
|
||||||
args: "yyyy-MM-dd HH:mm:ss zzz"
|
|
||||||
date_added:
|
|
||||||
# time added
|
|
||||||
selector: td.rowfollow:nth-child(5):not(:has(span))
|
|
||||||
optional: true
|
|
||||||
filters:
|
|
||||||
- name: append
|
|
||||||
args: " +07:00" # ICT
|
|
||||||
- name: dateparse
|
|
||||||
args: "yyyy-MM-ddHH:mm:ss zzz"
|
|
||||||
date:
|
|
||||||
text: "{{ if or .Result.date_elapsed .Result.date_added }}{{ or .Result.date_elapsed .Result.date_added }}{{ else }}now{{ end }}"
|
|
||||||
size:
|
|
||||||
selector: td.rowfollow:nth-child(6)
|
|
||||||
seeders:
|
|
||||||
selector: td.rowfollow:nth-child(7)
|
|
||||||
leechers:
|
|
||||||
selector: td.rowfollow:nth-child(8)
|
|
||||||
grabs:
|
|
||||||
selector: td.rowfollow:nth-child(9)
|
|
||||||
downloadvolumefactor:
|
|
||||||
case:
|
|
||||||
img.pro_free: 0
|
|
||||||
img.pro_free2up: 0
|
|
||||||
img.pro_50pctdown: 0.5
|
|
||||||
img.pro_50pctdown2up: 0.5
|
|
||||||
img.pro_30pctdown: 0.3
|
|
||||||
"*": 1
|
|
||||||
uploadvolumefactor:
|
|
||||||
case:
|
|
||||||
img.pro_50pctdown2up: 2
|
|
||||||
img.pro_free2up: 2
|
|
||||||
img.pro_2up: 2
|
|
||||||
"*": 1
|
|
||||||
minimumseedtime:
|
|
||||||
# 3 days (as seconds = 3 x 24 x 60 x 60)
|
|
||||||
text: 259200
|
|
||||||
description:
|
|
||||||
selector: td:nth-child(3)
|
|
||||||
remove: a, b, font, img, span
|
|
||||||
# NexusPHP 3ChangTrai v3.0 2020-04-30
|
|
||||||
@@ -1,165 +0,0 @@
|
|||||||
---
|
|
||||||
id: 3dtorrents
|
|
||||||
name: 3D Torrents
|
|
||||||
description: "3D Torrents (3DT) is a Private Torrent Tracker for 3D HD / BLURAY MOVIES"
|
|
||||||
language: en-US
|
|
||||||
type: private
|
|
||||||
encoding: UTF-8
|
|
||||||
links:
|
|
||||||
- http://www.3dtorrents.org/ # site does not support https ERR_CONNECTION_CLOSED
|
|
||||||
|
|
||||||
caps:
|
|
||||||
categorymappings:
|
|
||||||
- {id: 14, cat: Movies/SD, desc: "Movies XviD"}
|
|
||||||
- {id: 15, cat: Movies/DVD, desc: "Movies DVD-R"}
|
|
||||||
- {id: 11, cat: Movies/HD, desc: "Movies 720p"}
|
|
||||||
- {id: 13, cat: Movies/HD, desc: "Movies 1080p"}
|
|
||||||
- {id: 16, cat: Movies/3D, desc: "Movies 3DTV"}
|
|
||||||
- {id: 17, cat: Movies/BluRay, desc: "Movies Blu-ray"}
|
|
||||||
- {id: 27, cat: Movies/BluRay, desc: "Movies BD25 Encode"}
|
|
||||||
- {id: 33, cat: Movies/BluRay, desc: "Movies BD9 AVCHD"}
|
|
||||||
- {id: 22, cat: Movies, desc: "Movies 2D to 3D Conv"}
|
|
||||||
- {id: 32, cat: Movies, desc: "Bluray MKV Remux"}
|
|
||||||
- {id: 23, cat: Movies/3D, desc: "Movies Evo 3D"}
|
|
||||||
- {id: 36, cat: Movies/UHD, desc: "Movies 4K UHD Bluray"}
|
|
||||||
- {id: 37, cat: Movies/UHD, desc: "Movies 4K UHD Encode"}
|
|
||||||
- {id: 21, cat: PC, desc: "3D Software"}
|
|
||||||
- {id: 28, cat: XXX, desc: "Adult 720p"}
|
|
||||||
- {id: 29, cat: XXX, desc: "Adult 1080p"}
|
|
||||||
- {id: 30, cat: XXX, desc: "Adult Blu-ray"}
|
|
||||||
- {id: 31, cat: Other, desc: "Misc"}
|
|
||||||
- {id: 19, cat: Audio, desc: "Audio Packs"}
|
|
||||||
|
|
||||||
modes:
|
|
||||||
search: [q]
|
|
||||||
movie-search: [q]
|
|
||||||
music-search: [q]
|
|
||||||
|
|
||||||
settings:
|
|
||||||
- name: username
|
|
||||||
type: text
|
|
||||||
label: Username
|
|
||||||
- name: password
|
|
||||||
type: password
|
|
||||||
label: Password
|
|
||||||
- name: freeleech
|
|
||||||
type: checkbox
|
|
||||||
label: Filter freeleech only
|
|
||||||
default: false
|
|
||||||
- name: sort
|
|
||||||
type: select
|
|
||||||
label: Sort requested from site
|
|
||||||
default: 3
|
|
||||||
options:
|
|
||||||
3: created
|
|
||||||
5: seeders
|
|
||||||
2: title
|
|
||||||
- name: type
|
|
||||||
type: select
|
|
||||||
label: Order requested from site
|
|
||||||
default: 2
|
|
||||||
options:
|
|
||||||
1: desc
|
|
||||||
2: asc
|
|
||||||
- name: info
|
|
||||||
type: info
|
|
||||||
label: Results Per Page
|
|
||||||
default: For best results, change the <b>Torrents per page:</b> setting to <b>100</b> on your account profile.
|
|
||||||
- name: info_activity
|
|
||||||
type: info
|
|
||||||
label: Account Inactivity
|
|
||||||
default: "Inactivity grace period is three months which means that if you do not log in to the 3Dtorrents web site for 90 days, your account will be deleted. If you are VIP your will stay until the VIP period is over."
|
|
||||||
|
|
||||||
login:
|
|
||||||
path: index.php?page=login
|
|
||||||
method: form
|
|
||||||
form: form
|
|
||||||
inputs:
|
|
||||||
uid: "{{ .Config.username }}"
|
|
||||||
pwd: "{{ .Config.password }}"
|
|
||||||
captcha:
|
|
||||||
type: image
|
|
||||||
selector: img.captcha
|
|
||||||
input: private_key
|
|
||||||
error:
|
|
||||||
- selector: span.errormsg
|
|
||||||
test:
|
|
||||||
path: index.php
|
|
||||||
selector: a[href="logout.php"]
|
|
||||||
|
|
||||||
search:
|
|
||||||
paths:
|
|
||||||
- path: index.php
|
|
||||||
inputs:
|
|
||||||
$raw: "{{ range .Categories }}filter_cat[{{.}}]=1&{{end}}"
|
|
||||||
search: "{{ .Keywords }}"
|
|
||||||
page: torrents
|
|
||||||
category: 0
|
|
||||||
# 0 all, 1 Anaglyph 3D, 2 Side by Side,3 Over Under
|
|
||||||
3dformat: 0
|
|
||||||
# 0 all, 1 active only, 2 dead only
|
|
||||||
active: 0
|
|
||||||
order: "{{ .Config.sort }}"
|
|
||||||
by: "{{ .Config.type }}"
|
|
||||||
|
|
||||||
rows:
|
|
||||||
selector: "table[cellspacing!=\"1\"].lista > tbody > tr:has(a[href^=\"index.php?page=torrents&category=\"]){{ if .Config.freeleech }}:has(img[src=\"images/sign_free.png\"]){{ else }}{{ end }}"
|
|
||||||
|
|
||||||
fields:
|
|
||||||
category:
|
|
||||||
selector: a[href^="index.php?page=torrents&category="]
|
|
||||||
attribute: href
|
|
||||||
filters:
|
|
||||||
- name: querystring
|
|
||||||
args: category
|
|
||||||
- name: re_replace
|
|
||||||
args: ["(\\b0\\b)", "31"]
|
|
||||||
title:
|
|
||||||
selector: a[href^="index.php?page=torrent-details&id="]
|
|
||||||
details:
|
|
||||||
selector: a[href^="index.php?page=torrent-details&id="]
|
|
||||||
attribute: href
|
|
||||||
download:
|
|
||||||
selector: a[href^="index.php?page=torrent-details&id="]
|
|
||||||
attribute: href
|
|
||||||
filters:
|
|
||||||
- name: replace
|
|
||||||
args: ["index.php?page=torrent-details&id=", "download.php?id="]
|
|
||||||
poster:
|
|
||||||
selector: a[href^="index.php?page=torrent-details&id="]
|
|
||||||
attribute: onmouseover
|
|
||||||
filters:
|
|
||||||
- name: regexp
|
|
||||||
args: ",\\'(.+?)\\'"
|
|
||||||
genre:
|
|
||||||
selector: td:nth-child(2) span
|
|
||||||
description:
|
|
||||||
text: "{{ .Result.genre }}"
|
|
||||||
date:
|
|
||||||
selector: td:nth-last-child(5)
|
|
||||||
filters:
|
|
||||||
- name: append
|
|
||||||
args: " -07:00" # PDT
|
|
||||||
- name: dateparse
|
|
||||||
args: "dd/MM/yyyy zzz"
|
|
||||||
size:
|
|
||||||
selector: td:nth-last-child(4)
|
|
||||||
seeders:
|
|
||||||
selector: a[href^="index.php?page=peers"]
|
|
||||||
leechers:
|
|
||||||
selector: td:has(a[href^="index.php?page=peers"]) + td
|
|
||||||
grabs_optional:
|
|
||||||
selector: a[href^="index.php?page=torrent_history"]
|
|
||||||
optional: true
|
|
||||||
grabs:
|
|
||||||
text: "{{ if .Result.grabs_optional }}{{ .Result.grabs_optional }}{{ else }}0{{ end }}"
|
|
||||||
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
|
|
||||||
@@ -1,184 +0,0 @@
|
|||||||
---
|
|
||||||
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_optional:
|
|
||||||
optional: true
|
|
||||||
selector: a[title][href^="details.php?id="]
|
|
||||||
attribute: title
|
|
||||||
title:
|
|
||||||
text: "{{ if .Result.title_optional }}{{ .Result.title_optional }}{{ else }}{{ .Result.title_default }}{{ end }}"
|
|
||||||
details:
|
|
||||||
selector: a[href^="details.php?id="]
|
|
||||||
attribute: href
|
|
||||||
download:
|
|
||||||
selector: a[href^="download.php?id="]
|
|
||||||
attribute: href
|
|
||||||
date_elapsed:
|
|
||||||
# time type: time elapsed (default)
|
|
||||||
selector: td:nth-child(4) > span[title]
|
|
||||||
attribute: title
|
|
||||||
optional: true
|
|
||||||
filters:
|
|
||||||
- name: append
|
|
||||||
args: " +08:00" # CST
|
|
||||||
- name: dateparse
|
|
||||||
args: "yyyy-MM-dd HH:mm:ss zzz"
|
|
||||||
date_added:
|
|
||||||
# time added
|
|
||||||
selector: td:nth-child(4):not(:has(span))
|
|
||||||
optional: true
|
|
||||||
filters:
|
|
||||||
- name: append
|
|
||||||
args: " +08:00" # CST
|
|
||||||
- name: dateparse
|
|
||||||
args: "yyyy-MM-ddHH:mm:ss zzz"
|
|
||||||
date:
|
|
||||||
text: "{{ if or .Result.date_elapsed .Result.date_added }}{{ or .Result.date_elapsed .Result.date_added }}{{ else }}now{{ end }}"
|
|
||||||
size:
|
|
||||||
selector: td:nth-child(5)
|
|
||||||
seeders:
|
|
||||||
selector: td:nth-child(6)
|
|
||||||
leechers:
|
|
||||||
selector: td:nth-child(7)
|
|
||||||
grabs:
|
|
||||||
selector: td:nth-child(8)
|
|
||||||
downloadvolumefactor:
|
|
||||||
case:
|
|
||||||
img.pro_free: 0
|
|
||||||
img.pro_free2up: 0
|
|
||||||
img.pro_50pctdown: 0.5
|
|
||||||
img.pro_50pctdown2up: 0.5
|
|
||||||
img.pro_30pctdown: 0.3
|
|
||||||
"*": 1
|
|
||||||
uploadvolumefactor:
|
|
||||||
case:
|
|
||||||
img.pro_50pctdown2up: 2
|
|
||||||
img.pro_free2up: 2
|
|
||||||
img.pro_2up: 2
|
|
||||||
"*": 1
|
|
||||||
minimumratio:
|
|
||||||
text: 1
|
|
||||||
minimumseedtime:
|
|
||||||
# 1 day (as seconds = 24 x 60 x 60)
|
|
||||||
text: 86400
|
|
||||||
description:
|
|
||||||
selector: td:nth-child(2)
|
|
||||||
remove: a, b, font, img, span
|
|
||||||
# NexusPHP Standard v1.5 Beta 4
|
|
||||||
@@ -1,244 +0,0 @@
|
|||||||
---
|
|
||||||
id: Bittorrentfiles
|
|
||||||
name: Bittorrentfiles
|
|
||||||
description: "Bittorrentfiles is a Private GERMAN tracker"
|
|
||||||
language: de-DE
|
|
||||||
type: private
|
|
||||||
encoding: UTF-8
|
|
||||||
links:
|
|
||||||
- https://bittorrentfiles.me/
|
|
||||||
legacylinks:
|
|
||||||
- https://www.Bittorrentfiles.me/
|
|
||||||
|
|
||||||
caps:
|
|
||||||
categorymappings:
|
|
||||||
# Movie
|
|
||||||
- {id: 48, cat: Movies/HD, desc: "Movie 1080p"}
|
|
||||||
- {id: 31, cat: Movies/3D, desc: "Movie 3D"}
|
|
||||||
- {id: 21, cat: Movies/HD, desc: "Movie 720p"}
|
|
||||||
- {id: 28, cat: Movies/SD, desc: "Movie AVI"}
|
|
||||||
- {id: 20, cat: Movies/DVD, desc: "Movie DVD-R"}
|
|
||||||
- {id: 40, cat: Movies/HD, desc: Movie "h264/x264"}
|
|
||||||
- {id: 30, cat: Movies/HD, desc: "Movie HD/BD"}
|
|
||||||
- {id: 49, cat: Movies/Foreign, desc: "Movie International"}
|
|
||||||
- {id: 78, cat: Movies/UHD, desc: "Movie UHD"}
|
|
||||||
- {id: 85, cat: Movies/HD, desc: "Movie x265"}
|
|
||||||
# Serien
|
|
||||||
- {id: 79, cat: TV/HD, desc: "Staffeln HD"}
|
|
||||||
- {id: 56, cat: TV/SD, desc: "Staffeln SD"}
|
|
||||||
- {id: 88, cat: TV/UHD, desc: "Staffeln UHD"}
|
|
||||||
- {id: 86, cat: TV/UHD, desc: "Folgen UHD"}
|
|
||||||
- {id: 54, cat: TV/HD, desc: "Folgen HD"}
|
|
||||||
- {id: 80, cat: TV/HD, desc: "Folgen HD/BD"}
|
|
||||||
- {id: 7, cat: TV/SD, desc: "Folgen SD"}
|
|
||||||
- {id: 55, cat: TV/Foreign, desc: "Folgen International"}
|
|
||||||
# Doku
|
|
||||||
- {id: 91, cat: TV/Documentary, desc: "Doku UHD"}
|
|
||||||
- {id: 64, cat: TV/Documentary, desc: "Doku HD"}
|
|
||||||
- {id: 36, cat: TV/Documentary, desc: "Doku SD"}
|
|
||||||
- {id: 81, cat: TV/Documentary, desc: "Doku 3D"}
|
|
||||||
- {id: 82, cat: TV/Documentary, desc: "Doku Packs"}
|
|
||||||
# Spiele
|
|
||||||
- {id: 4, cat: PC/Games, desc: "Spiele Windows"}
|
|
||||||
- {id: 92, cat: PC/Mac, desc: "Spiele Mac"}
|
|
||||||
- {id: 93, cat: PC, desc: "Spiele Linux"}
|
|
||||||
- {id: 97, cat: Console/XBox, desc: "Spiele XBOX"}
|
|
||||||
- {id: 94, cat: PC/Mobile-Other, desc: "Spiele Mobile"}
|
|
||||||
- {id: 95, cat: Console/NDS, desc: "Spiele Nintendo"}
|
|
||||||
- {id: 96, cat: Console/PSP, desc: "Spiele Playstation"}
|
|
||||||
- {id: 42, cat: Console/Other, desc: "Spiele Andere"}
|
|
||||||
# Musik
|
|
||||||
- {id: 66, cat: Audio, desc: "Musik Alben"}
|
|
||||||
- {id: 75, cat: Audio, desc: "Musik Singles"}
|
|
||||||
- {id: 50, cat: Audio, desc: "Musik Charts"}
|
|
||||||
- {id: 52, cat: Audio, desc: "Musik Packs"}
|
|
||||||
- {id: 53, cat: Audio/Video, desc: "Musik Video"}
|
|
||||||
- {id: 61, cat: Audio/Video, desc: "Musik DVD-R"}
|
|
||||||
- {id: 83, cat: Audio/Lossless, desc: "Musik Flac"}
|
|
||||||
- {id: 68, cat: Audio, desc: "Musik Live"}
|
|
||||||
- {id: 6, cat: Audio, desc: "Musik Misc"}
|
|
||||||
- {id: 51, cat: Audio, desc: "Musik OST"}
|
|
||||||
- {id: 67, cat: Audio, desc: "Musik Sampler"}
|
|
||||||
# App
|
|
||||||
- {id: 98, cat: PC/0day, desc: "App Windows"}
|
|
||||||
- {id: 62, cat: PC/Mac, desc: "App Mac OS"}
|
|
||||||
- {id: 63, cat: PC/0day, desc: "App Linux"}
|
|
||||||
- {id: 34, cat: PC, desc: "App Andere"}
|
|
||||||
# Sport
|
|
||||||
- {id: 74, cat: TV/Sport, desc: "Sport HD"}
|
|
||||||
- {id: 39, cat: TV/Sport, desc: "Sport SD"}
|
|
||||||
# Sonstiges
|
|
||||||
- {id: 41, cat: Audio/Audiobook, desc: "Sonstiges A-Book"}
|
|
||||||
- {id: 33, cat: TV/Anime, desc: "Sonstiges Anime"}
|
|
||||||
- {id: 35, cat: Books/EBook, desc: "Sonstiges e-Book-DE"}
|
|
||||||
- {id: 90, cat: Books/EBook, desc: "Sonstiges e-Book-INT"}
|
|
||||||
- {id: 65, cat: Other, desc: "Sonstiges E-Learning"}
|
|
||||||
- {id: 37, cat: PC, desc: "Sonstiges Mobile"}
|
|
||||||
- {id: 87, cat: Books/Mags, desc: "Sonstiges E-Paper"}
|
|
||||||
- {id: 38, cat: Other, desc: "Sonstiges Kids"}
|
|
||||||
- {id: 47, cat: Other, desc: "Sonstiges Line"}
|
|
||||||
- {id: 9, cat: Other, desc: "Sonstiges Andere"}
|
|
||||||
# XXX
|
|
||||||
- {id: 58, cat: XXX/x264, desc: "XXX HD"}
|
|
||||||
- {id: 46, cat: XXX, desc: "XXX Hentai"}
|
|
||||||
- {id: 59, cat: XXX/Pack, desc: "XXX Pack"}
|
|
||||||
- {id: 27, cat: XXX/SD, desc: "XXX SD"}
|
|
||||||
- {id: 76, cat: XXX, desc: "XXX Andere"}
|
|
||||||
|
|
||||||
modes:
|
|
||||||
search: [q]
|
|
||||||
tv-search: [q, season, ep, imdbid]
|
|
||||||
movie-search: [q, imdbid]
|
|
||||||
music-search: [q]
|
|
||||||
book-search: [q]
|
|
||||||
|
|
||||||
settings:
|
|
||||||
- name: user
|
|
||||||
type: text
|
|
||||||
label: Username
|
|
||||||
- name: pass
|
|
||||||
type: password
|
|
||||||
label: Password
|
|
||||||
- name: freeleech
|
|
||||||
type: checkbox
|
|
||||||
label: Search freeleech only
|
|
||||||
default: false
|
|
||||||
- name: sort
|
|
||||||
type: select
|
|
||||||
label: Sort requested from site
|
|
||||||
default: added
|
|
||||||
options:
|
|
||||||
added: created
|
|
||||||
seeds: seeders
|
|
||||||
size: size
|
|
||||||
name: title
|
|
||||||
- name: type
|
|
||||||
type: select
|
|
||||||
label: Order requested from site
|
|
||||||
default: desc
|
|
||||||
options:
|
|
||||||
desc: desc
|
|
||||||
asc: asc
|
|
||||||
- name: info_account
|
|
||||||
type: info
|
|
||||||
label: Account Settings
|
|
||||||
default: In order to see the correct date and size in the torrent rows, change the <b>Torrentliste:</b> setting to <b>Modern</b> on your account profile.
|
|
||||||
- name: info_tpp
|
|
||||||
type: info
|
|
||||||
label: Results Per Page
|
|
||||||
default: For best results, change the <b>Torrents per page:</b> setting to <b>100</b> on your account profile.
|
|
||||||
- name: info_activity
|
|
||||||
type: info
|
|
||||||
label: Account Inactivity
|
|
||||||
default: "Inactive accounts of users, power users and mega users will be permanently deleted from the database after 125 days! Torrents in your share don't count as activity - only logging in again counts! You can extend this period to 250 days by setting your account to parking. You can find the option to do this under Edit Profile."
|
|
||||||
|
|
||||||
login:
|
|
||||||
path: signin.php
|
|
||||||
method: post
|
|
||||||
inputs:
|
|
||||||
user: "{{ .Config.user }}"
|
|
||||||
pass: "{{ .Config.pass }}"
|
|
||||||
returnto: "%2Fbrowse.php"
|
|
||||||
error:
|
|
||||||
- selector: .error
|
|
||||||
test:
|
|
||||||
path: index.php
|
|
||||||
selector: a[href^="/logout.php?c="]
|
|
||||||
|
|
||||||
search:
|
|
||||||
path: browse.php
|
|
||||||
inputs:
|
|
||||||
$raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
|
|
||||||
search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}"
|
|
||||||
# 0=title, 1=descr, 2=nfo, 3=all, 4=imdb
|
|
||||||
search_where: "{{ if .Query.IMDBID }}3{{ else }}0{{ end }}"
|
|
||||||
# 0=active, 1=all, 2=onlydead, 4=only upload, 5=doubleup, 6=halfdown, 7=highlight, 8=request
|
|
||||||
status: "{{ if .Config.freeleech }}4{{ else }}1{{ end }}"
|
|
||||||
orderby: "{{ .Config.sort }}"
|
|
||||||
sort: "{{ .Config.type }}"
|
|
||||||
|
|
||||||
rows:
|
|
||||||
selector: table.tableinborder > tbody > tr:has(a[href^="/download.php"])
|
|
||||||
|
|
||||||
fields:
|
|
||||||
category:
|
|
||||||
selector: a[href^="/browse.php?cat="]
|
|
||||||
attribute: href
|
|
||||||
filters:
|
|
||||||
- name: querystring
|
|
||||||
args: cat
|
|
||||||
title:
|
|
||||||
selector: a[href^="details.php"]
|
|
||||||
attribute: title
|
|
||||||
details:
|
|
||||||
selector: a[href^="details.php"]
|
|
||||||
attribute: href
|
|
||||||
download:
|
|
||||||
selector: a[href^="/download.php"]
|
|
||||||
attribute: href
|
|
||||||
grabs_optional:
|
|
||||||
selector: a[title="Snatcher"]
|
|
||||||
optional: true
|
|
||||||
grabs:
|
|
||||||
text: "{{ if .Result.grabs_optional }}{{ .Result.grabs_optional }}{{ else }}0{{ end }}"
|
|
||||||
files_optional:
|
|
||||||
selector: a[title="Files"]
|
|
||||||
optional: true
|
|
||||||
files:
|
|
||||||
text: "{{ if .Result.files_optional }}{{ .Result.files_optional }}{{ else }}0{{ end }}"
|
|
||||||
size:
|
|
||||||
selector: td:nth-child(6)
|
|
||||||
seeders_optional:
|
|
||||||
selector: a[title="Seeder"]
|
|
||||||
optional: true
|
|
||||||
seeders:
|
|
||||||
text: "{{ if .Result.seeders_optional }}{{ .Result.seeders_optional }}{{ else }}0{{ end }}"
|
|
||||||
leechers_optional:
|
|
||||||
selector: a[title="Leecher"]
|
|
||||||
optional: true
|
|
||||||
leechers:
|
|
||||||
text: "{{ if .Result.leechers_optional }}{{ .Result.leechers_optional }}{{ else }}0{{ end }}"
|
|
||||||
# 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
|
|
||||||
@@ -1,176 +0,0 @@
|
|||||||
---
|
|
||||||
id: aither-api
|
|
||||||
name: Aither (API)
|
|
||||||
description: "Aither is a Private Torrent Tracker for HD MOVIES / TV"
|
|
||||||
language: en-US
|
|
||||||
type: private
|
|
||||||
encoding: UTF-8
|
|
||||||
links:
|
|
||||||
- https://aither.cc/
|
|
||||||
|
|
||||||
caps:
|
|
||||||
categorymappings:
|
|
||||||
- {id: 1, cat: Movies, desc: "Movie"}
|
|
||||||
- {id: 9, cat: TV/Sport, desc: "Sport"}
|
|
||||||
- {id: 2, cat: TV, desc: "TV"}
|
|
||||||
- {id: 3, cat: Audio, desc: "Music"}
|
|
||||||
|
|
||||||
modes:
|
|
||||||
search: [q]
|
|
||||||
tv-search: [q, season, ep, imdbid, tvdbid, tmdbid]
|
|
||||||
movie-search: [q, imdbid, tmdbid]
|
|
||||||
music-search: [q]
|
|
||||||
book-search: [q]
|
|
||||||
|
|
||||||
settings:
|
|
||||||
- name: apikey
|
|
||||||
type: text
|
|
||||||
label: APIKey
|
|
||||||
- name: info_key
|
|
||||||
type: info
|
|
||||||
label: About your API key
|
|
||||||
default: "Find or Generate a new API Token by accessing your <a href=\"https://aither.cc/\" target=\"_blank\">Aither</a> account <i>My Settings</i> page and clicking on the <b>API Key</b> tab."
|
|
||||||
- name: freeleech
|
|
||||||
type: checkbox
|
|
||||||
label: Search freeleech only
|
|
||||||
default: false
|
|
||||||
- name: single_file_release_use_filename
|
|
||||||
type: checkbox
|
|
||||||
label: Use filename as title for single file releases
|
|
||||||
default: true
|
|
||||||
- name: sort
|
|
||||||
type: select
|
|
||||||
label: Sort requested from site
|
|
||||||
default: created_at
|
|
||||||
options:
|
|
||||||
created_at: created
|
|
||||||
seeders: seeders
|
|
||||||
size: size
|
|
||||||
name: title
|
|
||||||
- name: type
|
|
||||||
type: select
|
|
||||||
label: Order requested from site
|
|
||||||
default: desc
|
|
||||||
options:
|
|
||||||
desc: desc
|
|
||||||
asc: asc
|
|
||||||
- name: info_activity
|
|
||||||
type: info
|
|
||||||
label: Account Inactivity
|
|
||||||
default: "You must log in to the Aither web site with your browser once every 120 days to prevent your account from getting disabled."
|
|
||||||
|
|
||||||
login:
|
|
||||||
path: /api/torrents
|
|
||||||
method: get
|
|
||||||
inputs: {} # TODO: remove in v10
|
|
||||||
error:
|
|
||||||
- selector: a[href*="/login"]
|
|
||||||
message:
|
|
||||||
text: "The API key was not accepted by {{ .Config.sitelink }}."
|
|
||||||
|
|
||||||
search:
|
|
||||||
paths:
|
|
||||||
# https://github.com/HDInnovations/UNIT3D-Community-Edition/wiki/Torrent-API-(UNIT3D-v8.x.x)
|
|
||||||
# https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php#L476
|
|
||||||
- path: "/api/torrents/filter"
|
|
||||||
response:
|
|
||||||
type: json
|
|
||||||
|
|
||||||
headers:
|
|
||||||
Authorization: ["Bearer {{ .Config.apikey }}"]
|
|
||||||
|
|
||||||
inputs:
|
|
||||||
# if we have an id based search, add Season and Episode as query in name for UNIT3D < v6. Else pass S/E Params for UNIT3D >= v6
|
|
||||||
name: "{{ .Keywords }}"
|
|
||||||
$raw: "{{ if .Query.Season }}&seasonNumber={{ .Query.Season }}{{ else }}{{ end }}{{ if .Query.Ep }}&episodeNumber={{ .Query.Ep }}{{ else }}{{ end }}{{ if .Query.TMDBID }}&tmdbId={{ .Query.TMDBID }}{{ else }}{{ end }}{{ if .Query.IMDBIDShort }}&imdbId={{ .Query.IMDBIDShort }}{{ else }}{{ end }}{{ if .Query.TVDBID }}&tvdbId={{ .Query.TVDBID }}{{ else }}{{ end }}{{ range .Categories }}&categories[]={{.}}{{end}}{{ if .Config.freeleech }}&free[]=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: [" & ", "_&_"]
|
|
||||||
description:
|
|
||||||
text: "{{ .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
|
|
||||||
downloadvolumefactor:
|
|
||||||
# api returns 0%, 25%, 50%, 75%, 100%
|
|
||||||
selector: freeleech
|
|
||||||
case:
|
|
||||||
0%: 1 # not free
|
|
||||||
25%: 0.75
|
|
||||||
50%: 0.5
|
|
||||||
75%: 0.25
|
|
||||||
100%: 0 # freeleech
|
|
||||||
"*": 0 # catch errors
|
|
||||||
uploadvolumefactor:
|
|
||||||
# api returns False, True
|
|
||||||
selector: double_upload
|
|
||||||
case:
|
|
||||||
False: 1 # normal
|
|
||||||
True: 2 # double
|
|
||||||
# global MR is 0.4 but torrents must be seeded for 5 days regardless of ratio
|
|
||||||
# minimumratio:
|
|
||||||
# text: 0.4
|
|
||||||
minimumseedtime:
|
|
||||||
# 5 days (as seconds = 5 x 24 x 60 x 60)
|
|
||||||
text: 432000
|
|
||||||
# json UNIT3D 8.0.2
|
|
||||||
@@ -1,336 +0,0 @@
|
|||||||
---
|
|
||||||
id: amigosshare
|
|
||||||
name: Amigos Share Club
|
|
||||||
description: "Amigos Share Club is a Brazilian Private site for TV / MOVIES / GENERAL"
|
|
||||||
language: pt-BR
|
|
||||||
type: private
|
|
||||||
encoding: UTF-8
|
|
||||||
requestDelay: 2
|
|
||||||
links:
|
|
||||||
- https://cliente.amigos-share.club/
|
|
||||||
legacylinks:
|
|
||||||
- http://amigos-share.club/
|
|
||||||
- https://amigos-share.club/
|
|
||||||
|
|
||||||
caps:
|
|
||||||
categorymappings:
|
|
||||||
- {id: 107, cat: XXX, desc: "Adultos: Gay"}
|
|
||||||
- {id: 75, cat: XXX, desc: "Adultos: Hentai"}
|
|
||||||
- {id: 108, cat: XXX, desc: "Adultos: Transex/Female"}
|
|
||||||
- {id: 74, cat: XXX, desc: "Adultos: XXX"}
|
|
||||||
- {id: 69, cat: TV/Anime, desc: "Anime: Anime"}
|
|
||||||
- {id: 116, cat: TV/Anime, desc: "Anime: Filmes"}
|
|
||||||
- {id: 118, cat: TV/Anime, desc: "Anime: Séries"}
|
|
||||||
- {id: 23, cat: PC/Mobile-Android, desc: "Aplicativos: Android"}
|
|
||||||
- {id: 27, cat: PC/Mobile-iOS, desc: "Aplicativos: iPad"}
|
|
||||||
- {id: 26, cat: PC/Mobile-iOS, desc: "Aplicativos: iPhone"}
|
|
||||||
- {id: 28, cat: PC/Mobile-iOS, desc: "Aplicativos: iPod"}
|
|
||||||
- {id: 25, cat: PC, desc: "Aplicativos: Linux"}
|
|
||||||
- {id: 22, cat: PC/Mac, desc: "Aplicativos: Mac"}
|
|
||||||
- {id: 21, cat: PC/0day, desc: "Aplicativos: Windows"}
|
|
||||||
- {id: 72, cat: Books, desc: "Apostila: Apostila"}
|
|
||||||
- {id: 71, cat: Books, desc: "Apostila: Cursos"}
|
|
||||||
- {id: 121, cat: Audio/Audiobook, desc: "Ebook: Audio-book"}
|
|
||||||
- {id: 112, cat: Books, desc: "Ebook: HQs"}
|
|
||||||
- {id: 67, cat: Books, desc: "Ebook: Livros"}
|
|
||||||
- {id: 68, cat: Books, desc: "Ebook: Revistas"}
|
|
||||||
- {id: 119, cat: Movies, desc: "Filmes:"}
|
|
||||||
- {id: 70, cat: XXX, desc: "Fotos: XXX"}
|
|
||||||
- {id: 57, cat: Console, desc: "Jogos: Android"}
|
|
||||||
- {id: 52, cat: Console, desc: "Jogos: Dreamcast"}
|
|
||||||
- {id: 109, cat: Console, desc: "Jogos: Emulação"}
|
|
||||||
- {id: 61, cat: Console, desc: "Jogos: Emuladores e Roms"}
|
|
||||||
- {id: 48, cat: PC/Mac, desc: "Jogos: Mac"}
|
|
||||||
- {id: 58, cat: Console/NDS, desc: "Jogos: Nintendo DS"}
|
|
||||||
- {id: 110, cat: Console, desc: "Jogos: Nintendo Switch"}
|
|
||||||
- {id: 47, cat: PC/Games, desc: "Jogos: Pc"}
|
|
||||||
- {id: 49, cat: Console, desc: "Jogos: Ps1"}
|
|
||||||
- {id: 50, cat: Console, desc: "Jogos: Ps2"}
|
|
||||||
- {id: 51, cat: Console/PS3, desc: "Jogos: Ps3"}
|
|
||||||
- {id: 79, cat: Console/PS4, desc: "Jogos: Ps4"}
|
|
||||||
- {id: 82, cat: Console/PSP, desc: "Jogos: PSP"}
|
|
||||||
- {id: 55, cat: Console/Wii, desc: "Jogos: Wii"}
|
|
||||||
- {id: 54, cat: Console/XBox 360, desc: "Jogos: Xbox360"}
|
|
||||||
- {id: 56, cat: Console/XBox, desc: "Jogos: Xbox"}
|
|
||||||
- {id: 78, cat: Console/XBox One, desc: "Jogos: Xbox One"}
|
|
||||||
- {id: 29, cat: Audio, desc: "Musica: Axé"}
|
|
||||||
- {id: 38, cat: Audio, desc: "Musica: Blues"}
|
|
||||||
- {id: 39, cat: Audio, desc: "Musica: Dance"}
|
|
||||||
- {id: 40, cat: Audio, desc: "Musica: Discografia"}
|
|
||||||
- {id: 43, cat: Audio, desc: "Musica: Dubstep"}
|
|
||||||
- {id: 30, cat: Audio, desc: "Musica: Eletronica"}
|
|
||||||
- {id: 41, cat: Audio, desc: "Musica: Erudita"}
|
|
||||||
- {id: 42, cat: Audio, desc: "Musica: Forró"}
|
|
||||||
- {id: 31, cat: Audio, desc: "Musica: Funk"}
|
|
||||||
- {id: 84, cat: Audio, desc: "Musica: Game (OST)"}
|
|
||||||
- {id: 83, cat: Audio, desc: "Musica: Gospel"}
|
|
||||||
- {id: 37, cat: Audio, desc: "Musica: Hard Rock"}
|
|
||||||
- {id: 33, cat: Audio, desc: "Musica: Hip-Hop"}
|
|
||||||
- {id: 114, cat: Audio, desc: "Musica: MPB"}
|
|
||||||
- {id: 77, cat: Audio, desc: "Musica: Outros"}
|
|
||||||
- {id: 32, cat: Audio, desc: "Musica: Pagode"}
|
|
||||||
- {id: 115, cat: Audio, desc: "Musica: POP"}
|
|
||||||
- {id: 34, cat: Audio, desc: "Musica: Rap"}
|
|
||||||
- {id: 76, cat: Audio, desc: "Musica: Reggae"}
|
|
||||||
- {id: 36, cat: Audio, desc: "Musica: Rock"}
|
|
||||||
- {id: 45, cat: Audio, desc: "Musica: Samba"}
|
|
||||||
- {id: 46, cat: Audio, desc: "Musica: Sertanejo"}
|
|
||||||
- {id: 120, cat: TV, desc: "Series:"}
|
|
||||||
- {id: 65, cat: TV, desc: "Shows: Show"}
|
|
||||||
- {id: 63, cat: TV, desc: "Tv: Aberta"}
|
|
||||||
- {id: 62, cat: TV/Sport, desc: "Tv: Esportes"}
|
|
||||||
- {id: 64, cat: TV, desc: "Tv: Fechada"}
|
|
||||||
- {id: 73, cat: TV, desc: "Video Aula: Video Aula"}
|
|
||||||
- {id: 127, cat: Other, desc: "Outros: Add-ons"}
|
|
||||||
- {id: 126, cat: Other, desc: "Outros: Extensões"}
|
|
||||||
- {id: 129, cat: Other, desc: "Outros: Fonts"}
|
|
||||||
- {id: 130, cat: Other, desc: "Outros: MOD"}
|
|
||||||
- {id: 125, cat: Other, desc: "Outros: Pack de Imagens"}
|
|
||||||
- {id: 122, cat: Other, desc: "Outros: Plug-ins"}
|
|
||||||
- {id: 128, cat: Other, desc: "Outros: Scripts"}
|
|
||||||
- {id: 124, cat: Other, desc: "Outros: Vetores"}
|
|
||||||
|
|
||||||
modes:
|
|
||||||
search: [q]
|
|
||||||
tv-search: [q, season, ep]
|
|
||||||
movie-search: [q]
|
|
||||||
music-search: [q]
|
|
||||||
book-search: [q]
|
|
||||||
|
|
||||||
settings:
|
|
||||||
- name: username
|
|
||||||
type: text
|
|
||||||
label: Username
|
|
||||||
- name: password
|
|
||||||
type: password
|
|
||||||
label: Password
|
|
||||||
- name: info_results
|
|
||||||
type: info
|
|
||||||
label: "Search results"
|
|
||||||
default: "Set <b>Exibição De Torrents</b> to <b>Lista</b> in your <b>Minhas Configurações</b>.<br />Using <b>Capas</b> is not supported and will return 0 results."
|
|
||||||
- name: freeleech
|
|
||||||
type: checkbox
|
|
||||||
label: Filter freeleech only
|
|
||||||
default: false
|
|
||||||
- name: sort
|
|
||||||
type: select
|
|
||||||
label: Sort requested from site
|
|
||||||
default: id
|
|
||||||
options:
|
|
||||||
id: created
|
|
||||||
seeders: seeders
|
|
||||||
size: size
|
|
||||||
name: title
|
|
||||||
- name: type
|
|
||||||
type: select
|
|
||||||
label: Order requested from site
|
|
||||||
default: desc
|
|
||||||
options:
|
|
||||||
desc: desc
|
|
||||||
asc: asc
|
|
||||||
- name: info_activity
|
|
||||||
type: info
|
|
||||||
label: Account Inactivity
|
|
||||||
default: "Inactive accounts, that is, without access for 90 days (3 months), will be automatically deleted by the system; with no possibility of reactivation."
|
|
||||||
|
|
||||||
login:
|
|
||||||
path: account-login.php
|
|
||||||
method: post
|
|
||||||
inputs:
|
|
||||||
username: "{{ .Config.username }}"
|
|
||||||
password: "{{ .Config.password }}"
|
|
||||||
remember: yes
|
|
||||||
error:
|
|
||||||
- selector: div.alert-error
|
|
||||||
test:
|
|
||||||
path: torrents-search.php
|
|
||||||
selector: a[href="account-logout.php"]
|
|
||||||
|
|
||||||
search:
|
|
||||||
paths:
|
|
||||||
# http://amigos-share.club/torrents-search.php?search=&sort=id&order=desc&page=1
|
|
||||||
- path: torrents-search.php
|
|
||||||
# site displays just 20 results, no profile options found to change this, so we attempt to fetch 5 pages
|
|
||||||
- path: torrents-search.php
|
|
||||||
inputs:
|
|
||||||
page: 1
|
|
||||||
- path: torrents-search.php
|
|
||||||
inputs:
|
|
||||||
page: 2
|
|
||||||
- path: torrents-search.php
|
|
||||||
inputs:
|
|
||||||
page: 3
|
|
||||||
- path: torrents-search.php
|
|
||||||
inputs:
|
|
||||||
page: 4
|
|
||||||
inputs:
|
|
||||||
# note: site does not support multi cat search.
|
|
||||||
# replace spaces with wildcard (percent symbol) as site's default search is exact string.
|
|
||||||
search: "{{ re_replace .Keywords \"[\\s]+\" \"%\" }}"
|
|
||||||
sort: "{{ .Config.sort }}"
|
|
||||||
order: "{{ .Config.type }}"
|
|
||||||
# torrents-search.php does not support imdbid search or return imdb links.
|
|
||||||
keywordsfilters:
|
|
||||||
# drop the year from searches since site titles do not include year
|
|
||||||
- name: re_replace
|
|
||||||
args: ["(19|20[0-9]{2})", ""]
|
|
||||||
|
|
||||||
rows:
|
|
||||||
selector: "div#fancy-list-group ul.list-group li.list-group-item{{ if .Config.freeleech }}:has(span.badge-success:contains(\"FREE\")){{ else }}{{ end }}"
|
|
||||||
|
|
||||||
fields:
|
|
||||||
_quality:
|
|
||||||
selector: div.list-group-item-content p.m-0 span.badge-primary:contains("1080p"), div.list-group-item-content p.m-0 span.badge-primary:contains("720p"), div.list-group-item-content p.m-0 span.badge-primary:contains("4k")
|
|
||||||
optional: true
|
|
||||||
filters:
|
|
||||||
- name: replace
|
|
||||||
args: ["4k", "2160p"]
|
|
||||||
_year:
|
|
||||||
selector: div.list-group-item-content p.m-0 span.badge-primary[style$="#246AB6;"]
|
|
||||||
optional: true
|
|
||||||
_type:
|
|
||||||
selector: div.list-group-item-content p.m-0 span.badge-info:contains("Rip"), div.list-group-item-content p.m-0 span.badge-info:contains("WEB-"), div.list-group-item-content p.m-0 span.badge-info:contains("TV"), div.list-group-item-content p.m-0 span.badge-info:contains("Blu-Ray"), div.list-group-item-content p.m-0 span.badge-info:contains("BD50"), div.list-group-item-content p.m-0 span.badge-info:contains("MUX"), div.list-group-item-content p.m-0 span.badge-info:contains("DVD"), div.list-group-item-content p.m-0 span.badge-info:contains("320"), div.list-group-item-content p.m-0 span.badge-info:contains("CAM"), div.list-group-item-content p.m-0 span.badge-info:contains("rip")
|
|
||||||
optional: true
|
|
||||||
_language:
|
|
||||||
selector: div.list-group-item-content p.m-0 span.badge-primary[style$="#b6249d;"]
|
|
||||||
optional: true
|
|
||||||
genre:
|
|
||||||
selector: div.list-group-item-content p.m-0 span.badge-primary[style$="#1c38c2;"]
|
|
||||||
description:
|
|
||||||
text: "{{ .Result.genre }}"
|
|
||||||
title:
|
|
||||||
selector: a[href*="torrents-details.php?id="], a[href*="details-misc.php?id="]
|
|
||||||
filters:
|
|
||||||
# strip out the non-english title [to the left of the brackets] and drop the brackets enclosing the english title
|
|
||||||
- name: re_replace
|
|
||||||
args: ["^(.*?)[\\(](.*?)[\\)](.*?)$", "$2$3"]
|
|
||||||
# add the year to the title
|
|
||||||
- name: append
|
|
||||||
args: "{{ if .Result._year }} {{ .Result._year }}{{ else }}{{ end }}"
|
|
||||||
# add the quality to the title
|
|
||||||
- name: append
|
|
||||||
args: "{{ if .Result._quality }} {{ .Result._quality }}{{ else }}{{ end }}"
|
|
||||||
# add the type to the title
|
|
||||||
- name: append
|
|
||||||
args: "{{ if .Result._type }} {{ .Result._type }}{{ else }}{{ end }}"
|
|
||||||
# add audio to the title
|
|
||||||
- name: append
|
|
||||||
args: "{{ if .Result._language }} {{ .Result._language }}{{ else }}{{ end }}"
|
|
||||||
- name: re_replace
|
|
||||||
args: ["(Dual|[Nn]acional|[Dd]ublado)", "Brazilian $1"]
|
|
||||||
details:
|
|
||||||
selector: a[href*="torrents-details.php?id="], a[href*="details-misc.php?id="]
|
|
||||||
attribute: href
|
|
||||||
download:
|
|
||||||
selector: a[href*="download.php?id="]
|
|
||||||
attribute: href
|
|
||||||
category:
|
|
||||||
selector: div.list-group-item-addon img
|
|
||||||
attribute: src
|
|
||||||
case:
|
|
||||||
# unfortunately the site does not have category numbers on the results page, just a image which can apply to both movies and tv.
|
|
||||||
# therefore I've order the list to favour movies.
|
|
||||||
# also, not all images have been verified as the site has many empty categories. their image names have been extrapolated from the cat desc.
|
|
||||||
"[src$=\"/Adultos.fw.png\"]": 74
|
|
||||||
"[src$=\"/Gay.jpeg\"]": 107
|
|
||||||
"[src$=\"/Trans.jpeg\"]": 108
|
|
||||||
"[src$=\"/Hentai.png\"]": 75
|
|
||||||
"[src$=\"/Anime2.fw.png\"]": 69
|
|
||||||
"[src$=\"/aplicativos.fw.png\"]": 21
|
|
||||||
"[src$=\"/Mac.png\"]": 22
|
|
||||||
"[src$=\"/Android.png\"]": 23
|
|
||||||
"[src$=\"/Linux.png\"]": 25
|
|
||||||
"[src$=\"/iPhone.png\"]": 26
|
|
||||||
"[src$=\"/iPad.png\"]": 27
|
|
||||||
"[src$=\"/iPod.png\"]": 28
|
|
||||||
"[src$=\"/Cursos.png\"]": 71
|
|
||||||
"[src$=\"/Apostila.png\"]": 72
|
|
||||||
"[src$=\"/E-books.png\"]": 67
|
|
||||||
"[src$=\"/Revista.png\"]": 68
|
|
||||||
"[src$=\"/HQ.png\"]": 112
|
|
||||||
"[src$=\"/filmes2.fw.png\"]": 119
|
|
||||||
"[src$=\"/Revistas-XXX.png\"]": 70
|
|
||||||
"[src$=\"/PS4.png\"]": 79
|
|
||||||
"[src$=\"/Jogos-PC.png\"]": 47
|
|
||||||
"[src$=\"/Emulador.png\"]": 61
|
|
||||||
"[src$=\"/Emulacao.png\"]": 109
|
|
||||||
"[src$=\"/Jogos-Mac.png\"]": 48
|
|
||||||
"[src$=\"/Jogos-PS1.png\"]": 49
|
|
||||||
"[src$=\"/Jogos-PS2.png\"]": 50
|
|
||||||
"[src$=\"/Jogos-PS3.png\"]": 51
|
|
||||||
"[src$=\"/Jogos-Dreamcast.png\"]": 52
|
|
||||||
"[src$=\"/Jogos-Xbox360.png\"]": 54
|
|
||||||
"[src$=\"/Jogos-Xbox.png\"]": 56
|
|
||||||
"[src$=\"/Jogos-Wii.png\"]": 55
|
|
||||||
"[src$=\"/Jogos-DS.png\"]": 58
|
|
||||||
"[src$=\"/jogosandroid.png\"]": 57
|
|
||||||
"[src$=\"/PSP.png\"]": 82
|
|
||||||
"[src$=\"/Jogos-NS.png\"]": 110
|
|
||||||
"[src$=\"/Jogos-XboxOne.png\"]": 78
|
|
||||||
"[src$=\"/Axe.png\"]": 29
|
|
||||||
"[src$=\"/Eletronica.png\"]": 30
|
|
||||||
"[src$=\"/Funk.png\"]": 31
|
|
||||||
"[src$=\"/Pagode.png\"]": 32
|
|
||||||
"[src$=\"/HIP_HOP.png\"]": 33
|
|
||||||
"[src$=\"/Rap.png\"]": 34
|
|
||||||
"[src$=\"/Rock.png\"]": 36
|
|
||||||
"[src$=\"/Hard-Rock.png\"]": 37
|
|
||||||
"[src$=\"/Blues.png\"]": 38
|
|
||||||
"[src$=\"/Dance.png\"]": 39
|
|
||||||
"[src$=\"/Discografia.png\"]": 40
|
|
||||||
"[src$=\"/Erudita.png\"]": 41
|
|
||||||
"[src$=\"/Forro.png\"]": 42
|
|
||||||
"[src$=\"/Dubstep.png\"]": 43
|
|
||||||
"[src$=\"/Sertanejo.png\"]": 46
|
|
||||||
"[src$=\"/Samba.png\"]": 45
|
|
||||||
"[src$=\"/Musica-Outros.png\"]": 77
|
|
||||||
"[src$=\"/Reggae.png\"]": 76
|
|
||||||
"[src$=\"/Gospel.png\"]": 83
|
|
||||||
"[src$=\"/POP.png\"]": 115
|
|
||||||
"[src$=\"/MPB.png\"]": 114
|
|
||||||
"[src$=\"/OST.png\"]": 84
|
|
||||||
"[src$=\"/seriados.fw.png\"]": 120
|
|
||||||
"[src$=\"/show.fw.png\"]": 65
|
|
||||||
"[src$=\"/Aberta.png\"]": 63
|
|
||||||
"[src$=\"/Esporte.png\"]": 62
|
|
||||||
"[src$=\"/Fechada.png\"]": 64
|
|
||||||
"[src$=\"/video aula4.fw.png\"]": 73
|
|
||||||
"[src$=\"/Add-ons.png\"]": 127
|
|
||||||
"[src$=\"/Extensões.png\"]": 126
|
|
||||||
"[src$=\"/Fonts.png\"]": 129
|
|
||||||
"[src$=\"/MOD.png\"]": 130
|
|
||||||
"[src$=\"/Imagens.png\"]": 125
|
|
||||||
"[src$=\"/Plug-ins.png\"]": 122
|
|
||||||
"[src$=\"/Scripts.png\"]": 128
|
|
||||||
"[src$=\"/Vetores.png\"]": 124
|
|
||||||
"[src$=\"/outros2.png\"]": 130
|
|
||||||
date_optional:
|
|
||||||
selector: p:contains("Lançado:")
|
|
||||||
# auto adjusted by site account profile
|
|
||||||
optional: true
|
|
||||||
filters:
|
|
||||||
- name: regexp
|
|
||||||
args: "Lançado: (.+?)$"
|
|
||||||
- name: re_replace
|
|
||||||
args: [" (\\d:)", " 0$1"]
|
|
||||||
- name: dateparse
|
|
||||||
args: "dd/MM/yy HH:mm:ss"
|
|
||||||
date:
|
|
||||||
text: "{{ if .Result.date_optional }}{{ .Result.date_optional }}{{ else }}now{{ end }}"
|
|
||||||
size:
|
|
||||||
selector: div.list-group-item-content p.m-0 span.badge-info
|
|
||||||
seeders:
|
|
||||||
selector: div.list-group-item-controls a:nth-child(1)
|
|
||||||
leechers:
|
|
||||||
selector: div.list-group-item-controls a:nth-child(2)
|
|
||||||
grabs:
|
|
||||||
selector: div.list-group-item-controls a:nth-child(3)
|
|
||||||
downloadvolumefactor:
|
|
||||||
case:
|
|
||||||
"span.badge-success:contains(\"FREE\")": 0
|
|
||||||
"*": 1
|
|
||||||
uploadvolumefactor:
|
|
||||||
text: 1
|
|
||||||
minimumratio:
|
|
||||||
text: 1.0
|
|
||||||
# engine n/a
|
|
||||||
@@ -1,295 +0,0 @@
|
|||||||
---
|
|
||||||
id: anilibria
|
|
||||||
name: AniLibria
|
|
||||||
description: "AniLibria is a Public torrent tracker for anime, voiced on russian by AniLibria team"
|
|
||||||
language: ru-RU
|
|
||||||
type: public
|
|
||||||
encoding: UTF-8
|
|
||||||
links:
|
|
||||||
- https://www.anilibria.tv/
|
|
||||||
|
|
||||||
caps:
|
|
||||||
categories:
|
|
||||||
Anime: TV/Anime
|
|
||||||
Movies: Movies/Other
|
|
||||||
|
|
||||||
modes:
|
|
||||||
search: [q]
|
|
||||||
tv-search: [q, season, ep]
|
|
||||||
movie-search: [q]
|
|
||||||
|
|
||||||
settings:
|
|
||||||
- name: stripcyrillic
|
|
||||||
type: checkbox
|
|
||||||
label: Strip Cyrillic Letters
|
|
||||||
default: false
|
|
||||||
- name: sonarr_compatibility
|
|
||||||
type: checkbox
|
|
||||||
label: Improve Sonarr compatibility by trying to better parse Season information in release titles.
|
|
||||||
default: false
|
|
||||||
- name: addrussiantotitle
|
|
||||||
type: checkbox
|
|
||||||
label: Add RUS to end of all titles to improve language detection by Sonarr and Radarr. Will cause English-only results to be misidentified.
|
|
||||||
default: false
|
|
||||||
|
|
||||||
search:
|
|
||||||
paths:
|
|
||||||
# https://github.com/anilibria/docs/blob/master/api_v3.md
|
|
||||||
- path: "https://api.anilibria.tv/v3/title/{{ if .Keywords }}search?search={{ .Keywords }}&{{ else }}updates?{{ end }}filter=names,posters.small.url,code,torrents.list,season.year,description&limit=100"
|
|
||||||
response:
|
|
||||||
type: json
|
|
||||||
|
|
||||||
keywordsfilters:
|
|
||||||
# strip season and/or ep
|
|
||||||
- name: re_replace
|
|
||||||
args: ["(?i)\\b(?:[SE]\\d{1,4}){1,2}\\b\\s?", ""]
|
|
||||||
|
|
||||||
rows:
|
|
||||||
selector: list
|
|
||||||
attribute: torrents.list
|
|
||||||
multiple: true
|
|
||||||
|
|
||||||
fields:
|
|
||||||
_episodes:
|
|
||||||
selector: episodes.string
|
|
||||||
optional: true
|
|
||||||
category:
|
|
||||||
text: "{{ if eq .Result._episodes \"Фильм\" }}Movies{{ else }}Anime{{ end }}"
|
|
||||||
title_ru:
|
|
||||||
selector: ..names.ru
|
|
||||||
title_en:
|
|
||||||
selector: ..names.en
|
|
||||||
title_en_parsed:
|
|
||||||
selector: ..names.en
|
|
||||||
filters:
|
|
||||||
- name: re_replace
|
|
||||||
args: ["(?i)\\bPart\\s*1\\b", "Part One"]
|
|
||||||
- name: re_replace
|
|
||||||
args: ["(?i)\\bPart\\s*2\\b", "Part Two"]
|
|
||||||
- name: re_replace
|
|
||||||
args: ["(?i)\\bPart\\s*3\\b", "Part Three"]
|
|
||||||
- name: re_replace
|
|
||||||
args: ["(?i)\\bPart\\s*4\\b", "Part Four"]
|
|
||||||
- name: re_replace
|
|
||||||
args: ["(?i)\\bPart\\s*5\\b", "Part Five"]
|
|
||||||
- name: re_replace
|
|
||||||
args: ["(?i)\\bPart\\s*6\\b", "Part Six"]
|
|
||||||
- name: re_replace
|
|
||||||
args: ["(?i)\\bPart\\s*7\\b", "Part Seven"]
|
|
||||||
- name: re_replace
|
|
||||||
args: ["(?i)\\bPart\\s*8\\b", "Part Eight"]
|
|
||||||
- name: re_replace
|
|
||||||
args: ["(?i)\\bPart\\s*9\\b", "Part Nine"]
|
|
||||||
- name: re_replace
|
|
||||||
args: ["(?i)\\bseason\\s*(\\d+)\\b", ""]
|
|
||||||
- name: re_replace
|
|
||||||
args: ["(?i)\\b(\\d+)(st|nd|rd|th)\\s*season[\\s\\.]*", ""]
|
|
||||||
- name: re_replace
|
|
||||||
args: ["(?i)\\b(\\d+)\\s*season\\b[\\s\\.]*", ""]
|
|
||||||
- name: re_replace
|
|
||||||
args: ["(?i)\\bseason\\s*([IVXLCDM]+)\\b", ""]
|
|
||||||
- name: re_replace
|
|
||||||
args: ["\\bI$", ""]
|
|
||||||
- name: re_replace
|
|
||||||
args: ["\\bII$", ""]
|
|
||||||
- name: re_replace
|
|
||||||
args: ["\\bIII$", ""]
|
|
||||||
- name: re_replace
|
|
||||||
args: ["\\bIV$", ""]
|
|
||||||
- name: re_replace
|
|
||||||
args: ["\\bV$", ""]
|
|
||||||
- name: re_replace
|
|
||||||
args: ["\\bVI$", ""]
|
|
||||||
- name: re_replace
|
|
||||||
args: ["\\bVII$", ""]
|
|
||||||
- name: re_replace
|
|
||||||
args: ["\\bVIII$", ""]
|
|
||||||
- name: re_replace
|
|
||||||
args: ["\\bIX$", ""]
|
|
||||||
- name: re_replace
|
|
||||||
args: ["\\bX$", ""]
|
|
||||||
- name: re_replace
|
|
||||||
args: ["(?i)\\b(\\d+)(?:st|nd|rd|th)?\\b", ""]
|
|
||||||
- name: trim
|
|
||||||
title_alternative:
|
|
||||||
selector: ..names.alternative
|
|
||||||
optional: true
|
|
||||||
filters:
|
|
||||||
- name: re_replace
|
|
||||||
args: ["(\\([\\p{IsCyrillic}\\W]+\\))|(^[\\p{IsCyrillic}\\W\\d]+\\/ )|([\\p{IsCyrillic} \\-]+,+)|([\\p{IsCyrillic}]+)", "{{ if .Config.stripcyrillic }}{{ else }}$1$2$3$4{{ end }}"]
|
|
||||||
- name: re_replace
|
|
||||||
args: ["[\\[\\(\\{<«][\\s\\W]*[\\]\\)\\}>»]", ""]
|
|
||||||
- name: re_replace
|
|
||||||
args: ["^[\\s&,\\.!\\?\\+\\-_\\|\\/':]+", ""]
|
|
||||||
- name: re_replace
|
|
||||||
args: ["^OVA$", ""]
|
|
||||||
_season_number_en:
|
|
||||||
selector: ..names.en
|
|
||||||
filters:
|
|
||||||
- name: re_replace
|
|
||||||
args: ["(?i)\\bPart\\s*\\d+\\s*$", ""]
|
|
||||||
- name: re_replace
|
|
||||||
args: ["(?i)(^.*\\bseason\\s*(\\d+)\\b\\s*$)", "S$2"]
|
|
||||||
- name: re_replace
|
|
||||||
args: ["(?i)(^.*\\b(\\d+)(st|nd|rd|th)\\s*season\\b.*$)", "S$2"]
|
|
||||||
- name: re_replace
|
|
||||||
args: ["(?i)(^.*\\b(\\d+)\\s*season\\b.*$)", "S$2"]
|
|
||||||
- name: re_replace
|
|
||||||
args: ["(?i)(^.*\\bseason\\s*([IVXLCDM]+)\\b\\s*$)", "$1"]
|
|
||||||
- name: re_replace
|
|
||||||
args: ["(^.*X$)", "S10"]
|
|
||||||
- name: re_replace
|
|
||||||
args: ["(^.*IX$)", "S9"]
|
|
||||||
- name: re_replace
|
|
||||||
args: ["(^.*VIII$)", "S8"]
|
|
||||||
- name: re_replace
|
|
||||||
args: ["(^.*VII$)", "S7"]
|
|
||||||
- name: re_replace
|
|
||||||
args: ["(^.*VI$)", "S6"]
|
|
||||||
- name: re_replace
|
|
||||||
args: ["(^.*V$)", "S5"]
|
|
||||||
- name: re_replace
|
|
||||||
args: ["(^.*IV$)", "S4"]
|
|
||||||
- name: re_replace
|
|
||||||
args: ["(^.*III$)", "S3"]
|
|
||||||
- name: re_replace
|
|
||||||
args: ["(^.*II$)", "S2"]
|
|
||||||
- name: re_replace
|
|
||||||
args: ["(^.*I$)", "S1"]
|
|
||||||
- name: re_replace
|
|
||||||
args: ["(?i)(^.*\\b(\\d+)(?:st|nd|rd|th)?\\b\\s*$)", "S$2"]
|
|
||||||
- name: re_replace
|
|
||||||
args: ["(?i)^(?!S\\d+).*", ""]
|
|
||||||
_season_number_alternative:
|
|
||||||
selector: ..names.alternative
|
|
||||||
optional: true
|
|
||||||
filters:
|
|
||||||
- name: re_replace
|
|
||||||
args: ["(?i)\\bPart\\s*\\d+\\s*$", ""]
|
|
||||||
- name: re_replace
|
|
||||||
args: ["(?i)(^.*\\bseason\\s*(\\d+)\\b\\s*$)", "S$2"]
|
|
||||||
- name: re_replace
|
|
||||||
args: ["(?i)(^.*\\b(\\d+)(st|nd|rd|th)\\s*season\\b\\s*$)", "S$2"]
|
|
||||||
- name: re_replace
|
|
||||||
args: ["(?i)(^.*\\b(\\d+)\\s*season\\b\\s*$)", "S$2"]
|
|
||||||
- name: re_replace
|
|
||||||
args: ["(?i)(^.*\\bseason\\s*([IVXLCDM]+)\\b\\s*$)", "$1"]
|
|
||||||
- name: re_replace
|
|
||||||
args: ["(^.*X$)", "S10"]
|
|
||||||
- name: re_replace
|
|
||||||
args: ["(^.*IX$)", "S9"]
|
|
||||||
- name: re_replace
|
|
||||||
args: ["(^.*VIII$)", "S8"]
|
|
||||||
- name: re_replace
|
|
||||||
args: ["(^.*VII$)", "S7"]
|
|
||||||
- name: re_replace
|
|
||||||
args: ["(^.*VI$)", "S6"]
|
|
||||||
- name: re_replace
|
|
||||||
args: ["(^.*V$)", "S5"]
|
|
||||||
- name: re_replace
|
|
||||||
args: ["(^.*IV$)", "S4"]
|
|
||||||
- name: re_replace
|
|
||||||
args: ["(^.*III$)", "S3"]
|
|
||||||
- name: re_replace
|
|
||||||
args: ["(^.*II$)", "S2"]
|
|
||||||
- name: re_replace
|
|
||||||
args: ["(^.*I$)", "S1"]
|
|
||||||
- name: re_replace
|
|
||||||
args: ["(?i)(^.*\\b(\\d+)(?:st|nd|rd|th)?\\b\\s*$)", "S$2"]
|
|
||||||
- name: re_replace
|
|
||||||
args: ["(?i)^(?!S\\d+).*", ""]
|
|
||||||
_season_number:
|
|
||||||
text: "{{ .Result._season_number_en }}"
|
|
||||||
filters:
|
|
||||||
- name: append
|
|
||||||
args: "{{ .Result._season_number_alternative }}"
|
|
||||||
- name: re_replace
|
|
||||||
args: ["^S1S1$", "S1"]
|
|
||||||
- name: re_replace
|
|
||||||
args: ["^S1(.+)$", "$1"]
|
|
||||||
- name: re_replace
|
|
||||||
args: ["^(S\\d+).*$", "$1"]
|
|
||||||
- name: re_replace
|
|
||||||
args: ["^$", "S1"]
|
|
||||||
year:
|
|
||||||
selector: ..season.year
|
|
||||||
_quality:
|
|
||||||
selector: quality.string
|
|
||||||
_quality_type:
|
|
||||||
selector: quality.type
|
|
||||||
_quality_resolution:
|
|
||||||
selector: quality.resolution
|
|
||||||
_quality_encoder:
|
|
||||||
selector: quality.encoder
|
|
||||||
filters:
|
|
||||||
- name: re_replace
|
|
||||||
args: ["(?i)^h", "x"]
|
|
||||||
title_parsed:
|
|
||||||
text: "{{ if .Config.stripcyrillic }}{{ else }}{{ .Result.title_ru }} / {{ end }}{{ .Result.title_en_parsed }} {{ .Result._season_number}}E{{ .Result._episodes }} [{{ .Result._quality_type }} {{ .Result._quality_resolution }} {{ .Result._quality_encoder }}]"
|
|
||||||
filters:
|
|
||||||
- name: re_replace
|
|
||||||
args: ["\\bS\\d+EФильм\\b", "({{ .Result.year }}) MOVIE"]
|
|
||||||
- name: re_replace
|
|
||||||
args: ["\\bS\\d+EOVA\\b", "({{ .Result.year }}) OVA"]
|
|
||||||
- name: re_replace
|
|
||||||
args: ["\\bS\\d+EONA\\b", "({{ .Result.year }}) ONA"]
|
|
||||||
- name: re_replace
|
|
||||||
args: ["\\bS\\d+EMovie\\b", "({{ .Result.year }}) MOVIE"]
|
|
||||||
- name: re_replace
|
|
||||||
args: ["\\bS\\d+EП/м фильм\\b", "({{ .Result.year }}) MOVIE"]
|
|
||||||
- name: re_replace
|
|
||||||
args: ["\\bS\\d+EРекап\\b", "({{ .Result.year }}) RECAP"]
|
|
||||||
- name: re_replace
|
|
||||||
args: ["\\bS\\d+ETV-Special\\b", "({{ .Result.year }}) SPECIAL"]
|
|
||||||
- name: append
|
|
||||||
args: "{{ if .Config.addrussiantotitle }} - RUS{{ else }}{{ end }}"
|
|
||||||
title_original:
|
|
||||||
text: "{{ if .Config.stripcyrillic }}{{ else }}{{ .Result.title_ru }} / {{ end }}{{ .Result.title_en }}{{ if .Result.title_alternative }} / AKA {{ .Result.title_alternative }}{{ else }}{{ end }} ({{ .Result.year }}) [{{ .Result._quality }}]{{ if .Result._episodes }} - E{{ .Result._episodes }}{{ else }}{{ end }}"
|
|
||||||
filters:
|
|
||||||
- name: re_replace
|
|
||||||
args: [" - \\bEФильм\\b", " - MOVIE"]
|
|
||||||
- name: re_replace
|
|
||||||
args: [" - \\bEMovie\\b", " - MOVIE"]
|
|
||||||
- name: re_replace
|
|
||||||
args: [" - \\bEП/м фильм\\b", " - MOVIE"]
|
|
||||||
- name: re_replace
|
|
||||||
args: [" - \\bEOVA\\b", " - OVA"]
|
|
||||||
- name: re_replace
|
|
||||||
args: [" - \\bEONA\\b", " - ONA"]
|
|
||||||
- name: append
|
|
||||||
args: "{{ if .Config.addrussiantotitle }} - RUS{{ else }}{{ end }}"
|
|
||||||
title:
|
|
||||||
text: "{{ if .Config.sonarr_compatibility }}{{ .Result.title_parsed }}{{ else }}{{ .Result.title_original }}{{ end }}"
|
|
||||||
_code:
|
|
||||||
selector: ..code
|
|
||||||
details:
|
|
||||||
text: "{{ .Config.sitelink }}release/{{ .Result._code }}.html"
|
|
||||||
download_url:
|
|
||||||
selector: url
|
|
||||||
download:
|
|
||||||
text: "{{ .Config.sitelink }}{{ .Result.download_url }}"
|
|
||||||
magnet:
|
|
||||||
selector: magnet
|
|
||||||
poster:
|
|
||||||
selector: ..posters.small.url
|
|
||||||
filters:
|
|
||||||
- name: prepend
|
|
||||||
args: "https://static.anilibria.tv"
|
|
||||||
seeders:
|
|
||||||
selector: seeders
|
|
||||||
leechers:
|
|
||||||
selector: leechers
|
|
||||||
grabs:
|
|
||||||
selector: downloads
|
|
||||||
date:
|
|
||||||
# unix
|
|
||||||
selector: uploaded_timestamp
|
|
||||||
size:
|
|
||||||
selector: total_size
|
|
||||||
downloadvolumefactor:
|
|
||||||
text: 0
|
|
||||||
uploadvolumefactor:
|
|
||||||
text: 1
|
|
||||||
description:
|
|
||||||
selector: ..description
|
|
||||||
# json api v3
|
|
||||||
@@ -1,177 +0,0 @@
|
|||||||
---
|
|
||||||
id: animeworld-api
|
|
||||||
name: AnimeWorld (API)
|
|
||||||
description: "AnimeWorld (AW) is a GERMAN Private site for ANIME / MANGA / HENTAI"
|
|
||||||
language: de-DE
|
|
||||||
type: private
|
|
||||||
encoding: UTF-8
|
|
||||||
links:
|
|
||||||
- https://animeworld.cx/
|
|
||||||
|
|
||||||
caps:
|
|
||||||
categorymappings:
|
|
||||||
- {id: 1, cat: Movies/Other, desc: "Anime Filme"}
|
|
||||||
- {id: 2, cat: TV/Anime, desc: "Anime Serien"}
|
|
||||||
- {id: 3, cat: Audio, desc: "Anime Musik / OSTs"}
|
|
||||||
- {id: 4, cat: PC/Games, desc: "Anime Spiele"}
|
|
||||||
- {id: 5, cat: XXX, desc: "Anime Hentai"}
|
|
||||||
- {id: 6, cat: PC, desc: "Software"}
|
|
||||||
- {id: 7, cat: Other, desc: "Sonstiges"}
|
|
||||||
- {id: 8, cat: Movies, desc: "Filme"}
|
|
||||||
- {id: 9, cat: TV, desc: "Serien"}
|
|
||||||
- {id: 10, cat: PC/Games, desc: "Spiele"}
|
|
||||||
- {id: 11, cat: Audio, desc: "Musik"}
|
|
||||||
- {id: 12, cat: Books, desc: "Manga"}
|
|
||||||
- {id: 13, cat: Movies, desc: "Cartoon Filme"}
|
|
||||||
- {id: 14, cat: TV, desc: "Cartoon Serie"}
|
|
||||||
- {id: 15, cat: XXX, desc: "H-Manga / Doujinshi"}
|
|
||||||
|
|
||||||
modes:
|
|
||||||
search: [q]
|
|
||||||
tv-search: [q, season, ep, tvdbid, tmdbid]
|
|
||||||
movie-search: [q, tmdbid]
|
|
||||||
music-search: [q]
|
|
||||||
book-search: [q]
|
|
||||||
|
|
||||||
settings:
|
|
||||||
- name: apikey
|
|
||||||
type: text
|
|
||||||
label: APIKey
|
|
||||||
- name: info_key
|
|
||||||
type: info
|
|
||||||
label: About your API key
|
|
||||||
default: "Find or Generate a new API Token by accessing your <a href=\"https://animeworld.cx/\" target=\"_blank\">AnimeWorld</a> account <i>My Security</i> page and clicking on the <b>API Token</b> tab."
|
|
||||||
- name: freeleech
|
|
||||||
type: checkbox
|
|
||||||
label: Search freeleech only
|
|
||||||
default: false
|
|
||||||
- name: sort
|
|
||||||
type: select
|
|
||||||
label: Sort requested from site
|
|
||||||
default: created_at
|
|
||||||
options:
|
|
||||||
created_at: created
|
|
||||||
seeders: seeders
|
|
||||||
size: size
|
|
||||||
name: title
|
|
||||||
- name: type
|
|
||||||
type: select
|
|
||||||
label: Order requested from site
|
|
||||||
default: desc
|
|
||||||
options:
|
|
||||||
desc: desc
|
|
||||||
asc: asc
|
|
||||||
- name: info_activity
|
|
||||||
type: info
|
|
||||||
label: Account Inactivity
|
|
||||||
default: "Accounts are set as inactive by the system after 180 days. After 270 days in inactive status, the accounts are automatically deleted from the system."
|
|
||||||
|
|
||||||
login:
|
|
||||||
path: /api/torrents
|
|
||||||
method: get
|
|
||||||
inputs: {} # TODO: remove in v10
|
|
||||||
error:
|
|
||||||
- selector: a[href*="/login"]
|
|
||||||
message:
|
|
||||||
text: "The API key was not accepted by {{ .Config.sitelink }}."
|
|
||||||
|
|
||||||
search:
|
|
||||||
paths:
|
|
||||||
# https://github.com/HDInnovations/UNIT3D-Community-Edition/wiki/Torrent-API-(UNIT3D-v8.x.x)
|
|
||||||
# https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php#L476
|
|
||||||
- path: "/api/torrents/filter"
|
|
||||||
response:
|
|
||||||
type: json
|
|
||||||
|
|
||||||
headers:
|
|
||||||
Authorization: ["Bearer {{ .Config.apikey }}"]
|
|
||||||
|
|
||||||
inputs:
|
|
||||||
# if we have an id based search, add Season and Episode as query in name for UNIT3D < v6. Else pass S/E Params for UNIT3D >= v6
|
|
||||||
name: "{{ .Keywords }}"
|
|
||||||
$raw: "{{ if .Query.Season }}&seasonNumber={{ .Query.Season }}{{ else }}{{ end }}{{ if .Query.Ep }}&episodeNumber={{ .Query.Ep }}{{ else }}{{ end }}{{ if .Query.TMDBID }}&tmdbId={{ .Query.TMDBID }}{{ else }}{{ end }}{{ if .Query.TVDBID }}&tvdbId={{ .Query.TVDBID }}{{ else }}{{ end }}{{ range $i, $e := .Categories }}&categories[{{$i}}]={{.}}{{end}}{{ if .Config.freeleech }}&free[]=100{{ else }}{{ end }}"
|
|
||||||
sortField: "{{ .Config.sort }}"
|
|
||||||
sortDirection: "{{ .Config.type }}"
|
|
||||||
perPage: 100
|
|
||||||
|
|
||||||
keywordsfilters:
|
|
||||||
- name: re_replace
|
|
||||||
args: ["\\.", " "]
|
|
||||||
|
|
||||||
rows:
|
|
||||||
selector: data
|
|
||||||
attribute: attributes
|
|
||||||
|
|
||||||
fields:
|
|
||||||
category:
|
|
||||||
selector: category_id
|
|
||||||
title:
|
|
||||||
selector: name
|
|
||||||
details:
|
|
||||||
selector: details_link
|
|
||||||
download:
|
|
||||||
selector: download_link
|
|
||||||
infohash:
|
|
||||||
selector: info_hash
|
|
||||||
poster:
|
|
||||||
selector: meta.poster
|
|
||||||
filters:
|
|
||||||
- name: replace
|
|
||||||
args: ["https://via.placeholder.com/90x135", ""]
|
|
||||||
imdbid:
|
|
||||||
selector: imdb_id
|
|
||||||
tmdbid:
|
|
||||||
selector: tmdb_id
|
|
||||||
tvdbid:
|
|
||||||
selector: tvdb_id
|
|
||||||
genre:
|
|
||||||
selector: meta.genres
|
|
||||||
filters:
|
|
||||||
- name: re_replace
|
|
||||||
args: ["(?i)^None$", ""]
|
|
||||||
- name: re_replace
|
|
||||||
args: ["(?i)(Cinema TV)", "Cinema_TV"]
|
|
||||||
- name: re_replace
|
|
||||||
args: ["(?i)(Ficção científica)", "Ficção_científica"]
|
|
||||||
- name: replace
|
|
||||||
args: [" & ", "_&_"]
|
|
||||||
description:
|
|
||||||
text: "{{ .Result.genre }}"
|
|
||||||
files:
|
|
||||||
selector: num_file
|
|
||||||
seeders:
|
|
||||||
selector: seeders
|
|
||||||
leechers:
|
|
||||||
selector: leechers
|
|
||||||
grabs:
|
|
||||||
selector: times_completed
|
|
||||||
date:
|
|
||||||
# "created_at": "2021-10-18T00:34:50.000000Z" is returned by Newtonsoft.Json.Linq as 18/10/2021 00:34:50
|
|
||||||
selector: created_at
|
|
||||||
filters:
|
|
||||||
- name: append
|
|
||||||
args: " +00:00" # GMT
|
|
||||||
- name: dateparse
|
|
||||||
args: "MM/dd/yyyy HH:mm:ss zzz"
|
|
||||||
size:
|
|
||||||
selector: size
|
|
||||||
downloadvolumefactor:
|
|
||||||
# api returns 0%, 25%, 50%, 75%, 100%
|
|
||||||
selector: freeleech
|
|
||||||
case:
|
|
||||||
0%: 1 # not free
|
|
||||||
25%: 0.75
|
|
||||||
50%: 0.5
|
|
||||||
75%: 0.25
|
|
||||||
100%: 0 # freeleech
|
|
||||||
"*": 0 # catch errors
|
|
||||||
uploadvolumefactor:
|
|
||||||
# api returns 0=false, 1=true
|
|
||||||
selector: double_upload
|
|
||||||
case:
|
|
||||||
0: 1 # normal
|
|
||||||
1: 2 # double
|
|
||||||
minimumseedtime:
|
|
||||||
# 7 day (as seconds = 7 x 24 x 60 x 60)
|
|
||||||
text: 604800
|
|
||||||
# json UNIT3D 6.5.0
|
|
||||||
@@ -1,173 +0,0 @@
|
|||||||
---
|
|
||||||
id: anthelion-api
|
|
||||||
name: Anthelion (API)
|
|
||||||
description: "Anthelion is a Private MOVIES tracker"
|
|
||||||
language: en-US
|
|
||||||
type: private
|
|
||||||
encoding: UTF-8
|
|
||||||
links:
|
|
||||||
- https://anthelion.me/
|
|
||||||
|
|
||||||
caps:
|
|
||||||
categorymappings:
|
|
||||||
- {id: 2000, cat: Movies}
|
|
||||||
- {id: 2030, cat: Movies/SD}
|
|
||||||
- {id: 2040, cat: Movies/HD}
|
|
||||||
- {id: 2045, cat: Movies/UHD}
|
|
||||||
- {id: 2050, cat: Movies/BluRay}
|
|
||||||
- {id: 2080, cat: Movies/WEB-DL}
|
|
||||||
- {id: 8000, cat: Other}
|
|
||||||
|
|
||||||
modes:
|
|
||||||
search: [q]
|
|
||||||
movie-search: [q, imdbid, tmdbid]
|
|
||||||
# note: the api any supports movie search so there is no tv season/episode support.
|
|
||||||
# not using year search because torznab adds it to the q= which results in &q=keyword+2022&year=2022 sent to api !?!
|
|
||||||
|
|
||||||
settings:
|
|
||||||
- name: apikey
|
|
||||||
type: text
|
|
||||||
label: APIKey
|
|
||||||
- name: info_key
|
|
||||||
type: info
|
|
||||||
label: About your API key
|
|
||||||
default: "Find or Generate a new API Key by accessing your <a href=\"https://anthelion.me/\" target=\"_blank\">Anthelion</a> account <i>Settings</i> page and scrolling down to the <b>API Key</b> section.<br>Tick the <b>Search</b> and <b>Download</b> checkboxes and click the <b>save profile</b> button to generate the key."
|
|
||||||
- name: info_activity
|
|
||||||
type: info
|
|
||||||
label: Account Inactivity
|
|
||||||
default: "Activity is defined as actually using your account, including the snatch/grab/seeding of torrents. You are also required to sign-in to the web frontend of Anthelion at least once per 3mo (90 days) (Note, using autodl/ARR does not satisfy this)."
|
|
||||||
|
|
||||||
login:
|
|
||||||
path: api.php
|
|
||||||
method: get
|
|
||||||
inputs:
|
|
||||||
api_key: "{{ .Config.apikey }}"
|
|
||||||
error:
|
|
||||||
- selector: ":root:contains(\"Unrecognized key\")"
|
|
||||||
message:
|
|
||||||
text: "The API key was not accepted by {{ .Config.sitelink }}."
|
|
||||||
- selector: ":root:contains(\"No API_KEY provided\")"
|
|
||||||
message:
|
|
||||||
text: "You did not enter an API key."
|
|
||||||
|
|
||||||
search:
|
|
||||||
paths:
|
|
||||||
# docs: https://anthelion.me/forums.php?action=viewthread&threadid=1026
|
|
||||||
- path: api.php
|
|
||||||
response:
|
|
||||||
type: json
|
|
||||||
|
|
||||||
inputs:
|
|
||||||
api_key: "{{ .Config.apikey }}"
|
|
||||||
o: json
|
|
||||||
t: movie
|
|
||||||
q: "{{ .Keywords }}"
|
|
||||||
tmdb: "{{ .Query.TMDBID }}"
|
|
||||||
imdb: "{{ .Query.IMDBIDShort }}"
|
|
||||||
# category filtering is disabled since it seems to rely on the AND operator that prevents some releases to show on search.
|
|
||||||
# cat: "{{ join .Categories \",\" }}"
|
|
||||||
limit: 100
|
|
||||||
offset: 0
|
|
||||||
|
|
||||||
rows:
|
|
||||||
selector: item
|
|
||||||
count:
|
|
||||||
selector: response.total
|
|
||||||
|
|
||||||
fields:
|
|
||||||
category:
|
|
||||||
selector: category
|
|
||||||
filters:
|
|
||||||
- name: split
|
|
||||||
args: [",", -1]
|
|
||||||
year:
|
|
||||||
selector: year
|
|
||||||
optional: true
|
|
||||||
_codec:
|
|
||||||
selector: codec
|
|
||||||
_container:
|
|
||||||
selector: container
|
|
||||||
_media:
|
|
||||||
selector: media
|
|
||||||
filters:
|
|
||||||
- name: replace
|
|
||||||
args: ["WEB", "WEB-DL"]
|
|
||||||
_resolution:
|
|
||||||
selector: resolution
|
|
||||||
_audioFormat:
|
|
||||||
selector: audioFormat
|
|
||||||
_subbing:
|
|
||||||
selector: subbing
|
|
||||||
optional: true
|
|
||||||
_flags:
|
|
||||||
selector: flags
|
|
||||||
optional: true
|
|
||||||
filters:
|
|
||||||
- name: replace
|
|
||||||
args: [",", " "]
|
|
||||||
_language:
|
|
||||||
selector: language
|
|
||||||
optional: true
|
|
||||||
_releaseGroup:
|
|
||||||
selector: releaseGroup
|
|
||||||
optional: true
|
|
||||||
filters:
|
|
||||||
- name: trim
|
|
||||||
title_optional:
|
|
||||||
selector: title
|
|
||||||
filters:
|
|
||||||
- name: replace
|
|
||||||
args: ["'", "'"]
|
|
||||||
- name: append
|
|
||||||
args: " {{ .Result.year }} {{ .Result._codec }} {{ .Result._container }} {{ .Result._media }} {{ .Result._resolution }} {{ .Result._audioFormat }}{{ if .Result._subbing }} Subs{{ else }}{{ end }}{{ if .Result._flags }} {{ .Result._flags }}{{ else }}{{ end }}{{ if .Result._language }} {{ .Result._language }}{{ else }}{{ end }}{{ if and (.Result._releaseGroup) (ne .Result._releaseGroup \"NULL\") }}-{{ .Result._releaseGroup }}{{ else }}{{ end }}"
|
|
||||||
details:
|
|
||||||
selector: guid
|
|
||||||
download:
|
|
||||||
selector: link
|
|
||||||
filters:
|
|
||||||
- name: replace
|
|
||||||
args: ["&", "&"]
|
|
||||||
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: replace
|
|
||||||
args: ["'", "'"]
|
|
||||||
optional: true
|
|
||||||
title:
|
|
||||||
text: "{{ if and (eq .Result.files \"1\") (.Result._filename) }}{{ .Result._filename }}{{ else }}{{ .Result.title_optional }}{{ end }}"
|
|
||||||
# json api
|
|
||||||
@@ -1,338 +0,0 @@
|
|||||||
---
|
|
||||||
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_optional:
|
|
||||||
optional: true
|
|
||||||
selector: td:contains(\00a0GB), td:contains(\00a0MB), td:contains(\00a0KB), td:contains(\00a0B)
|
|
||||||
size:
|
|
||||||
text: "{{ if .Result.size_optional }}{{ .Result.size_optional }}{{ else }}0 B{{ end }}"
|
|
||||||
seeders_optional:
|
|
||||||
optional: true
|
|
||||||
selector: td[title="Seeders"]
|
|
||||||
seeders:
|
|
||||||
text: "{{ if .Result.seeders_optional }}{{ .Result.seeders_optional }}{{ else }}0{{ end }}"
|
|
||||||
leechers_optional:
|
|
||||||
optional: true
|
|
||||||
selector: td[title="Leechers"]
|
|
||||||
leechers:
|
|
||||||
text: "{{ if .Result.leechers_optional }}{{ .Result.leechers_optional }}{{ else }}0{{ end }}"
|
|
||||||
grabs_optional:
|
|
||||||
optional: true
|
|
||||||
selector: td[title^="Replies:"]
|
|
||||||
grabs:
|
|
||||||
text: "{{ if .Result.grabs_optional }}{{ .Result.grabs_optional }}{{ else }}0{{ end }}"
|
|
||||||
description:
|
|
||||||
case:
|
|
||||||
span.tor-approved: Verified
|
|
||||||
span.tor-not-approved: Unverified
|
|
||||||
downloadvolumefactor:
|
|
||||||
text: 1
|
|
||||||
uploadvolumefactor:
|
|
||||||
text: 1
|
|
||||||
minimumratio:
|
|
||||||
text: 0.8
|
|
||||||
# engine n/a
|
|
||||||
@@ -1,174 +0,0 @@
|
|||||||
---
|
|
||||||
id: backups
|
|
||||||
name: Back-ups
|
|
||||||
description: "Back-Ups is a Private Torrent Tracker for MOVIES / TV / GENERAL"
|
|
||||||
language: en-US
|
|
||||||
type: private
|
|
||||||
encoding: UTF-8
|
|
||||||
links:
|
|
||||||
- https://back-ups.me/
|
|
||||||
|
|
||||||
caps:
|
|
||||||
categorymappings:
|
|
||||||
- {id: 15, cat: PC/Mobile-Android, desc: "Android"}
|
|
||||||
- {id: 35, cat: TV/Anime, desc: "Anime"}
|
|
||||||
- {id: 51, cat: PC/Mac, desc: "Apple"}
|
|
||||||
- {id: 3, cat: PC, desc: "Apps"}
|
|
||||||
- {id: 64, cat: Audio/Audiobook, desc: "Audiobooks"}
|
|
||||||
- {id: 71, cat: Console, desc: "Batocera"}
|
|
||||||
- {id: 4, cat: Movies/BluRay, desc: "Blu-Ray"}
|
|
||||||
- {id: 22, cat: Console, desc: "CoinOps"}
|
|
||||||
- {id: 42, cat: Console, desc: "CoinOPS Official"}
|
|
||||||
- {id: 65, cat: Console, desc: "CoinOps Unofficial"}
|
|
||||||
- {id: 63, cat: Books/Comics, desc: "Comics"}
|
|
||||||
- {id: 60, cat: Console, desc: "Core"}
|
|
||||||
- {id: 72, cat: Console, desc: "CORE Community"}
|
|
||||||
- {id: 44, cat: Console, desc: "CP78"}
|
|
||||||
- {id: 16, cat: TV/Documentary, desc: "Docu"}
|
|
||||||
- {id: 41, cat: Console, desc: "Dragon"}
|
|
||||||
- {id: 5, cat: Books, desc: "EBooks"}
|
|
||||||
- {id: 61, cat: Console, desc: "emuxtras"}
|
|
||||||
- {id: 69, cat: TV, desc: "Entertainment"}
|
|
||||||
- {id: 34, cat: TV, desc: "Kids"}
|
|
||||||
- {id: 43, cat: Console, desc: "LB No Intro"}
|
|
||||||
- {id: 33, cat: TV/Sport, desc: "MMA/Boxing"}
|
|
||||||
- {id: 32, cat: Movies, desc: "Movie Pack"}
|
|
||||||
- {id: 6, cat: Movies, desc: "Movies/XVID"}
|
|
||||||
- {id: 7, cat: Audio, desc: "Music"}
|
|
||||||
- {id: 31, cat: Console, desc: "Nintendo"}
|
|
||||||
- {id: 59, cat: Console, desc: "P-R-U"}
|
|
||||||
- {id: 8, cat: PC/Games, desc: "PC Games"}
|
|
||||||
- {id: 50, cat: Console, desc: "PlayBox"}
|
|
||||||
- {id: 30, cat: Console, desc: "Playstation"}
|
|
||||||
- {id: 62, cat: Console, desc: "RaspberryPi"}
|
|
||||||
- {id: 56, cat: Console, desc: "Retro Minis"}
|
|
||||||
- {id: 67, cat: Console, desc: "Retrobat"}
|
|
||||||
- {id: 76, cat: Console, desc: "RGS"}
|
|
||||||
- {id: 27, cat: Console, desc: "Roms and Emulators"}
|
|
||||||
- {id: 68, cat: Console, desc: "Schmoomer's"}
|
|
||||||
- {id: 57, cat: Console, desc: "Sega"}
|
|
||||||
- {id: 40, cat: TV, desc: "Soaps"}
|
|
||||||
- {id: 29, cat: TV/Sport, desc: "Sport"}
|
|
||||||
- {id: 9, cat: TV, desc: "TV-Boxsets"}
|
|
||||||
- {id: 11, cat: TV, desc: "TV/x264"}
|
|
||||||
- {id: 10, cat: TV, desc: "TV/Xvid"}
|
|
||||||
- {id: 73, cat: Console, desc: "Wolfanoz"}
|
|
||||||
- {id: 14, cat: TV/Sport, desc: "WWE"}
|
|
||||||
- {id: 26, cat: Console, desc: "Xbox"}
|
|
||||||
- {id: 12, cat: Console, desc: "XBOX360"}
|
|
||||||
- {id: 23, cat: XXX, desc: "xxx18+"}
|
|
||||||
|
|
||||||
modes:
|
|
||||||
search: [q]
|
|
||||||
tv-search: [q, season, ep]
|
|
||||||
movie-search: [q]
|
|
||||||
music-search: [q]
|
|
||||||
book-search: [q]
|
|
||||||
|
|
||||||
settings:
|
|
||||||
- name: username
|
|
||||||
type: text
|
|
||||||
label: Username
|
|
||||||
- name: password
|
|
||||||
type: password
|
|
||||||
label: Password
|
|
||||||
- name: freeleech
|
|
||||||
type: checkbox
|
|
||||||
label: Filter freeleech only
|
|
||||||
default: false
|
|
||||||
- name: info_tpp
|
|
||||||
type: info
|
|
||||||
label: Results Per Page
|
|
||||||
default: For best results, change the <b>Torrents per page:</b> setting to <b>40</b> on your account profile.
|
|
||||||
- name: info_activity
|
|
||||||
type: info
|
|
||||||
label: Account Inactivity
|
|
||||||
default: "To keep records updated regularly, all inactive accounts will be deleted after 60 days of inactivity."
|
|
||||||
|
|
||||||
login:
|
|
||||||
path: takelogin.php
|
|
||||||
method: post
|
|
||||||
inputs:
|
|
||||||
username: "{{ .Config.username }}"
|
|
||||||
password: "{{ .Config.password }}"
|
|
||||||
error:
|
|
||||||
- selector: td:contains("remaining tries")
|
|
||||||
test:
|
|
||||||
path: browse.php
|
|
||||||
selector: a[href*="/logout.php"]
|
|
||||||
|
|
||||||
search:
|
|
||||||
paths:
|
|
||||||
- path: browse.php
|
|
||||||
keywordsfilters:
|
|
||||||
# remove words <= 3 characters and surrounding special characters
|
|
||||||
- name: re_replace
|
|
||||||
args: ["(?:^|\\s)[_\\+\\/\\.\\-\\(\\)]*[\\S]{0,3}[_\\+\\/\\.\\-\\(\\)]*(?:\\s|$)", " "]
|
|
||||||
inputs:
|
|
||||||
do: search
|
|
||||||
keywords: "{{ .Keywords }}"
|
|
||||||
# t_name, t_description, t_both, t_uploader, t_genre
|
|
||||||
search_type: t_name
|
|
||||||
category: 0 # multi cat search not supported
|
|
||||||
# yes, no
|
|
||||||
include_dead_torrents: yes
|
|
||||||
# sort is done via do=quick_sort, and freeleech sorting is part of that set
|
|
||||||
|
|
||||||
rows:
|
|
||||||
selector: "table#sortabletable > tbody > tr:has(a[href*=\"/details.php?id=\"]){{ if .Config.freeleech }}:has(img[src$=\"freedownload.gif\"]){{ else }}{{ end }}"
|
|
||||||
filters:
|
|
||||||
- name: andmatch
|
|
||||||
args: 66
|
|
||||||
|
|
||||||
fields:
|
|
||||||
category:
|
|
||||||
selector: a[href*="/browse.php?category="]
|
|
||||||
attribute: href
|
|
||||||
filters:
|
|
||||||
- name: querystring
|
|
||||||
args: category
|
|
||||||
title_default:
|
|
||||||
selector: a[href*="/details.php?id="]
|
|
||||||
title_optional:
|
|
||||||
optional: true
|
|
||||||
selector: div.tooltip-content > div
|
|
||||||
title:
|
|
||||||
text: "{{ if .Result.title_optional }}{{ .Result.title_optional }}{{ else }}{{ .Result.title_default }}{{ end }}"
|
|
||||||
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
|
|
||||||
@@ -1,82 +0,0 @@
|
|||||||
---
|
|
||||||
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_optional:
|
|
||||||
optional: true
|
|
||||||
selector: size
|
|
||||||
size:
|
|
||||||
text: "{{ if .Result.size_optional }}{{ .Result.size_optional }}{{ else }}0 B{{ end }}"
|
|
||||||
grabs:
|
|
||||||
selector: downloads
|
|
||||||
seeders:
|
|
||||||
selector: seeders
|
|
||||||
leechers:
|
|
||||||
selector: leechers
|
|
||||||
downloadvolumefactor:
|
|
||||||
text: 0
|
|
||||||
uploadvolumefactor:
|
|
||||||
text: 1
|
|
||||||
# json api v2
|
|
||||||
@@ -1,172 +0,0 @@
|
|||||||
---
|
|
||||||
id: beitai
|
|
||||||
name: BeiTai (备胎)
|
|
||||||
description: "BeiTai (备胎) is a CHINESE Private Torrent Tracker for HD MOVIES / TV"
|
|
||||||
language: zh-CN
|
|
||||||
type: private
|
|
||||||
encoding: UTF-8
|
|
||||||
links:
|
|
||||||
- https://www.beitai.pt/
|
|
||||||
|
|
||||||
caps:
|
|
||||||
categorymappings:
|
|
||||||
- {id: 401, cat: Movies, desc: "Movies/电影"}
|
|
||||||
- {id: 404, cat: TV/Documentary, desc: "Documentaries/纪录片"}
|
|
||||||
- {id: 405, cat: TV/Anime, desc: "Animations/动漫"}
|
|
||||||
- {id: 402, cat: TV, desc: "TV Series/剧集"}
|
|
||||||
- {id: 403, cat: TV, desc: "TV Shows/综艺"}
|
|
||||||
- {id: 406, cat: Audio/Video, desc: "MusicVideo/音乐MV"}
|
|
||||||
- {id: 407, cat: TV/Sport, desc: "Sports/运体"}
|
|
||||||
- {id: 409, cat: Other, desc: "Misc/其他"}
|
|
||||||
- {id: 408, cat: Audio, desc: "HQ Audio/无损音乐"}
|
|
||||||
|
|
||||||
modes:
|
|
||||||
search: [q]
|
|
||||||
tv-search: [q, season, ep, imdbid, doubanid]
|
|
||||||
movie-search: [q, imdbid, doubanid]
|
|
||||||
music-search: [q]
|
|
||||||
|
|
||||||
settings:
|
|
||||||
- name: username
|
|
||||||
type: text
|
|
||||||
label: Username
|
|
||||||
- name: password
|
|
||||||
type: password
|
|
||||||
label: Password
|
|
||||||
- name: freeleech
|
|
||||||
type: checkbox
|
|
||||||
label: Search freeleech only
|
|
||||||
default: false
|
|
||||||
- name: sort
|
|
||||||
type: select
|
|
||||||
label: Sort requested from site
|
|
||||||
default: 4
|
|
||||||
options:
|
|
||||||
4: created
|
|
||||||
7: seeders
|
|
||||||
5: size
|
|
||||||
1: title
|
|
||||||
- name: type
|
|
||||||
type: select
|
|
||||||
label: Order requested from site
|
|
||||||
default: desc
|
|
||||||
options:
|
|
||||||
desc: desc
|
|
||||||
asc: asc
|
|
||||||
- name: info_tpp
|
|
||||||
type: info
|
|
||||||
label: Results Per Page
|
|
||||||
default: For best results, change the <b>Torrents per page:</b> setting to <b>100</b> on your account profile.
|
|
||||||
- name: info_activity
|
|
||||||
type: info
|
|
||||||
label: Account Inactivity
|
|
||||||
default: "Account retention rules:<ol><li>Veteran User and above will be retained forever</li><li>Elite User and above will not have their account deleted after parking (in the control panel)</li><li>Users with a parked account will be deleted if they do not log in for 400 consecutive days</li><li>Users with a non-parked account be deleted if they do not log in for 150 consecutive days</li><li>Users with no traffic (ie, upload/download data are both 0) will be deleted if they do not log in for 100 consecutive days.</li></ol>"
|
|
||||||
|
|
||||||
login:
|
|
||||||
path: takelogin.php
|
|
||||||
method: post
|
|
||||||
inputs:
|
|
||||||
username: "{{ .Config.username }}"
|
|
||||||
password: "{{ .Config.password }}"
|
|
||||||
logout: ""
|
|
||||||
securelogin: ""
|
|
||||||
ssl: yes
|
|
||||||
trackerssl: yes
|
|
||||||
error:
|
|
||||||
- selector: td.embedded:has(h2:contains("失败"))
|
|
||||||
test:
|
|
||||||
path: index.php
|
|
||||||
selector: a[href="logout.php"]
|
|
||||||
|
|
||||||
search:
|
|
||||||
paths:
|
|
||||||
- path: torrents.php
|
|
||||||
inputs:
|
|
||||||
$raw: "{{ range .Categories }}cat{{.}}=1&{{end}}"
|
|
||||||
search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ end }}{{ if .Query.DoubanID }}/{{ .Query.DoubanID }}{{ else }}{{ end }}{{ if or .Query.IMDBID .Query.DoubanID }}{{ else }}{{ .Keywords }}{{ end }}"
|
|
||||||
# 0 incldead, 1 active, 2 dead
|
|
||||||
incldead: 0
|
|
||||||
# 0 all, 1 normal, 2 free, 3 2x, 4 2xfree, 5 50%, 6 2x50%, 7 30%
|
|
||||||
spstate: "{{ if .Config.freeleech }}2{{ else }}0{{ end }}"
|
|
||||||
# 0 title, 1 descr, 3 uploader, 4 imdburl (4 does not appear to work).
|
|
||||||
search_area: "{{ if or .Query.IMDBID .Query.DoubanID }}1{{ else }}0{{ end }}"
|
|
||||||
# 0 AND, 1 OR, 2 exact
|
|
||||||
search_mode: 0
|
|
||||||
sort: "{{ .Config.sort }}"
|
|
||||||
type: "{{ .Config.type }}"
|
|
||||||
notnewword: 1
|
|
||||||
|
|
||||||
rows:
|
|
||||||
selector: table.torrents > tbody > tr:has(table.torrentname)
|
|
||||||
|
|
||||||
fields:
|
|
||||||
title_default:
|
|
||||||
selector: a[href^="details.php?id="]
|
|
||||||
title_optional:
|
|
||||||
optional: true
|
|
||||||
selector: a[title][href^="details.php?id="]
|
|
||||||
attribute: title
|
|
||||||
title:
|
|
||||||
text: "{{ if .Result.title_optional }}{{ .Result.title_optional }}{{ else }}{{ .Result.title_default }}{{ end }}"
|
|
||||||
category:
|
|
||||||
selector: a[href^="?cat="]
|
|
||||||
attribute: href
|
|
||||||
filters:
|
|
||||||
- name: querystring
|
|
||||||
args: cat
|
|
||||||
details:
|
|
||||||
selector: a[href^="details.php?id="]
|
|
||||||
attribute: href
|
|
||||||
download:
|
|
||||||
selector: a[href^="download.php?id="]
|
|
||||||
attribute: href
|
|
||||||
imdbid:
|
|
||||||
selector: div.imdb_100 > a
|
|
||||||
attribute: href
|
|
||||||
date_elapsed:
|
|
||||||
# time type: time elapsed (default)
|
|
||||||
selector: td:nth-child(4) > span[title]
|
|
||||||
attribute: title
|
|
||||||
optional: true
|
|
||||||
filters:
|
|
||||||
- name: append
|
|
||||||
args: " +08:00" # CST
|
|
||||||
- name: dateparse
|
|
||||||
args: "yyyy-MM-dd HH:mm:ss zzz"
|
|
||||||
date_added:
|
|
||||||
# time added
|
|
||||||
selector: td:nth-child(4):not(:has(span))
|
|
||||||
optional: true
|
|
||||||
filters:
|
|
||||||
- name: append
|
|
||||||
args: " +08:00" # CST
|
|
||||||
- name: dateparse
|
|
||||||
args: "yyyy-MM-ddHH:mm:ss zzz"
|
|
||||||
date:
|
|
||||||
text: "{{ if or .Result.date_elapsed .Result.date_added }}{{ or .Result.date_elapsed .Result.date_added }}{{ else }}now{{ end }}"
|
|
||||||
size:
|
|
||||||
selector: td:nth-child(5)
|
|
||||||
seeders:
|
|
||||||
selector: td:nth-child(6)
|
|
||||||
leechers:
|
|
||||||
selector: td:nth-child(7)
|
|
||||||
grabs:
|
|
||||||
selector: td:nth-child(8)
|
|
||||||
downloadvolumefactor:
|
|
||||||
case:
|
|
||||||
img.pro_free: 0
|
|
||||||
img.pro_free2up: 0
|
|
||||||
img.pro_50pctdown: 0.5
|
|
||||||
img.pro_50pctdown2up: 0.5
|
|
||||||
img.pro_30pctdown: 0.3
|
|
||||||
"*": 1
|
|
||||||
uploadvolumefactor:
|
|
||||||
case:
|
|
||||||
img.pro_50pctdown2up: 2
|
|
||||||
img.pro_free2up: 2
|
|
||||||
img.pro_2up: 2
|
|
||||||
"*": 1
|
|
||||||
description:
|
|
||||||
selector: td:nth-child(2)
|
|
||||||
remove: a, b, font, img, span
|
|
||||||
# NexusPHP Standard v1.5 Beta 4
|
|
||||||
@@ -1,208 +0,0 @@
|
|||||||
---
|
|
||||||
id: bestcore
|
|
||||||
name: Best-Core
|
|
||||||
description: "Best-Core is a HUNGARIAN Private Tracker for MOVIES / TV"
|
|
||||||
language: hu-HU
|
|
||||||
type: private
|
|
||||||
encoding: ISO-8859-2
|
|
||||||
links:
|
|
||||||
- https://best-core.info/
|
|
||||||
|
|
||||||
caps:
|
|
||||||
categorymappings:
|
|
||||||
- {id: 81, cat: Movies/3D, desc: "3D"}
|
|
||||||
- {id: 83, cat: Movies/UHD, desc: "4K/UHD"}
|
|
||||||
- {id: 80, cat: Movies/Other, desc: "Best-Core"}
|
|
||||||
- {id: 51, cat: Books/EBook, desc: "E-book"}
|
|
||||||
- {id: 88, cat: Audio/Audiobook, desc: "E-book/Hangoskönyv"}
|
|
||||||
- {id: 77, cat: Movies/HD, desc: "Film/BDRip/Eng"}
|
|
||||||
- {id: 86, cat: Movies/HD, desc: "Film/BDRip/Ger"}
|
|
||||||
- {id: 76, cat: Movies/HD, desc: "Film/BDRip/Hun"}
|
|
||||||
- {id: 75, cat: Movies/BluRay, desc: "Film/Blu-ray/Eng"}
|
|
||||||
- {id: 74, cat: Movies/BluRay, desc: "Film/Blu-ray/Hun"}
|
|
||||||
- {id: 25, cat: Movies/DVD, desc: "Film/DVD/Eng"}
|
|
||||||
- {id: 24, cat: Movies/DVD, desc: "Film/DVD/Hun"}
|
|
||||||
- {id: 85, cat: Movies/DVD, desc: "Film/DVD9"}
|
|
||||||
- {id: 21, cat: Movies/HD, desc: "Film/HD/Eng"}
|
|
||||||
- {id: 53, cat: Movies/HD, desc: "Film/HD/Hun"}
|
|
||||||
- {id: 20, cat: Movies/SD, desc: "Film/XviD/Eng"}
|
|
||||||
- {id: 34, cat: Movies/SD, desc: "Film/XviD/Hun"}
|
|
||||||
- {id: 90, cat: Movies/SD, desc: "Film/XviD/Pack"}
|
|
||||||
- {id: 26, cat: PC/Games, desc: "Játék/ISO"}
|
|
||||||
- {id: 52, cat: PC/Games, desc: "Játék/Rip"}
|
|
||||||
- {id: 89, cat: Movies/SD, desc: "Kamerás/Eng"}
|
|
||||||
- {id: 82, cat: Movies/SD, desc: "Kamerás/Hun"}
|
|
||||||
- {id: 38, cat: Other, desc: "Képek"}
|
|
||||||
- {id: 43, cat: Console/PS3, desc: "Konzol/PS"}
|
|
||||||
- {id: 45, cat: Console/PSP, desc: "Konzol/PSP"}
|
|
||||||
- {id: 44, cat: Console/XBox, desc: "Konzol/Xbox"}
|
|
||||||
- {id: 73, cat: TV/Anime, desc: "Mese/Eng"}
|
|
||||||
- {id: 70, cat: TV/Anime, desc: "Mese/Hun"}
|
|
||||||
- {id: 37, cat: PC/Mobile-Other, desc: "Mobil"}
|
|
||||||
- {id: 1, cat: PC/ISO, desc: "Program/ISO"}
|
|
||||||
- {id: 22, cat: PC/0day, desc: "Program/Rip"}
|
|
||||||
- {id: 54, cat: TV/SD, desc: "Sorozat/DVD/Eng"}
|
|
||||||
- {id: 55, cat: TV/SD, desc: "Sorozat/DVD/Hun"}
|
|
||||||
- {id: 58, cat: TV/SD, desc: "Sorozat/Xvid/Eng"}
|
|
||||||
- {id: 7, cat: TV/SD, desc: "Sorozat/Xvid/Hun"}
|
|
||||||
- {id: 62, cat: Audio/Video, desc: "Videoklip"}
|
|
||||||
- {id: 64, cat: XXX/DVD, desc: "XXX/DVD"}
|
|
||||||
- {id: 48, cat: XXX/ImageSet, desc: "XXX/Képek"}
|
|
||||||
- {id: 9, cat: XXX/XviD, desc: "XXX/Xvid"}
|
|
||||||
- {id: 40, cat: Audio/MP3, desc: "Zene/Eng"}
|
|
||||||
- {id: 6, cat: Audio/MP3, desc: "Zene/Hun"}
|
|
||||||
- {id: 87, cat: Audio/Lossless, desc: "Zene/Lossless"}
|
|
||||||
|
|
||||||
modes:
|
|
||||||
search: [q]
|
|
||||||
tv-search: [q, season, ep, imdbid]
|
|
||||||
movie-search: [q, imdbid]
|
|
||||||
book-search: [q]
|
|
||||||
music-search: [q]
|
|
||||||
|
|
||||||
settings:
|
|
||||||
- name: username
|
|
||||||
type: text
|
|
||||||
label: Username
|
|
||||||
- name: password
|
|
||||||
type: password
|
|
||||||
label: Password
|
|
||||||
- name: freeleech
|
|
||||||
type: checkbox
|
|
||||||
label: Search FreeLeech only
|
|
||||||
default: false
|
|
||||||
- name: sort
|
|
||||||
type: select
|
|
||||||
label: Sort requested from site
|
|
||||||
default: 4
|
|
||||||
options:
|
|
||||||
1: title
|
|
||||||
4: added
|
|
||||||
5: size
|
|
||||||
7: seeders
|
|
||||||
- name: type
|
|
||||||
type: select
|
|
||||||
label: Order requested from site
|
|
||||||
default: desc
|
|
||||||
options:
|
|
||||||
desc: desc
|
|
||||||
asc: asc
|
|
||||||
- name: info_tpp
|
|
||||||
type: info
|
|
||||||
label: Results Per Page
|
|
||||||
default: For best results, change the <b>Torrent oldalankén:</b> setting to <b>100</b> on your account profile.
|
|
||||||
- name: info_login
|
|
||||||
type: info
|
|
||||||
label: About login error
|
|
||||||
default: If you get a <b>Login Failed, got redirected.</b> error during your config <i>save</i> then most likely you have used an incorrect username or password.
|
|
||||||
- name: info_activity
|
|
||||||
type: info
|
|
||||||
label: Account Inactivity
|
|
||||||
default: "<ol><li>Users who have not accessed the site for 180 days will be deleted!</li><li>If the vacation mode is set, the system will not delete the given user for 365 days.</li></ol>"
|
|
||||||
|
|
||||||
login:
|
|
||||||
path: takelogin.php
|
|
||||||
method: post
|
|
||||||
inputs:
|
|
||||||
username: "{{ .Config.username }}"
|
|
||||||
password: "{{ .Config.password }}"
|
|
||||||
test:
|
|
||||||
path: index.php
|
|
||||||
selector: a[href^="logout.php?c="]
|
|
||||||
|
|
||||||
search:
|
|
||||||
paths:
|
|
||||||
- path: browse.php
|
|
||||||
inputs:
|
|
||||||
$raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
|
|
||||||
search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}" # for dashboard imdbid search
|
|
||||||
# 0 active, 1 all, 2 deadonly, 3 freeleech
|
|
||||||
incldead: "{{ if .Config.freeleech }}3{{ else }}1{{ end }}"
|
|
||||||
sort: "{{ .Config.sort }}"
|
|
||||||
type: "{{ .Config.type }}"
|
|
||||||
|
|
||||||
rows:
|
|
||||||
selector: tr.torrent_h
|
|
||||||
filters:
|
|
||||||
- name: andmatch
|
|
||||||
|
|
||||||
fields:
|
|
||||||
category_optional:
|
|
||||||
selector: a[href^="browse.php?cat="]
|
|
||||||
attribute: href
|
|
||||||
optional: true
|
|
||||||
filters:
|
|
||||||
- name: querystring
|
|
||||||
args: cat
|
|
||||||
category:
|
|
||||||
text: "{{ if .Result.category_optional }}{{ .Result.category_optional }}{{ else }}38{{ end }}"
|
|
||||||
title_default:
|
|
||||||
# can be abbreviated
|
|
||||||
selector: a[href^="details.php?id="]
|
|
||||||
title_optional:
|
|
||||||
# usually full length
|
|
||||||
selector: a[href^="details.php?id="]
|
|
||||||
attribute: title
|
|
||||||
optional: true
|
|
||||||
title:
|
|
||||||
text: "{{ if .Result.title_optional }}{{ .Result.title_optional }}{{ else }}{{ .Result.title_default }}{{ end }}"
|
|
||||||
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
|
|
||||||
@@ -1,144 +0,0 @@
|
|||||||
---
|
|
||||||
id: bibliotik
|
|
||||||
name: Bibliotik
|
|
||||||
description: "Bibliotik is a private site for eBooks and audiobooks"
|
|
||||||
language: en-US
|
|
||||||
type: private
|
|
||||||
encoding: UTF-8
|
|
||||||
links:
|
|
||||||
- https://bibliotik.me/
|
|
||||||
|
|
||||||
caps:
|
|
||||||
categorymappings:
|
|
||||||
- {id: 1, cat: PC, desc: "Applications"}
|
|
||||||
- {id: 3, cat: Audio/Audiobook, desc: "Audiobooks"}
|
|
||||||
- {id: 4, cat: Books/Comics, desc: "Comics"}
|
|
||||||
- {id: 5, cat: Books/EBook, desc: "eBooks"}
|
|
||||||
- {id: 7, cat: Books/Mags, desc: "Magazines"}
|
|
||||||
|
|
||||||
modes:
|
|
||||||
search: [q]
|
|
||||||
book-search: [q, title, author]
|
|
||||||
|
|
||||||
settings:
|
|
||||||
- name: username
|
|
||||||
type: text
|
|
||||||
label: Username
|
|
||||||
- name: password
|
|
||||||
type: password
|
|
||||||
label: Password
|
|
||||||
- name: orderby
|
|
||||||
type: select
|
|
||||||
label: Sort requested from site
|
|
||||||
default: added
|
|
||||||
options:
|
|
||||||
"@relevance": relevance
|
|
||||||
title: title
|
|
||||||
size: size
|
|
||||||
added: added
|
|
||||||
seeders: seeders
|
|
||||||
- name: order
|
|
||||||
type: select
|
|
||||||
label: Order requested from site
|
|
||||||
default: DESC
|
|
||||||
options:
|
|
||||||
DESC: desc
|
|
||||||
ASC: asc
|
|
||||||
|
|
||||||
login:
|
|
||||||
path: /
|
|
||||||
method: post
|
|
||||||
inputs:
|
|
||||||
username: "{{ .Config.username }}"
|
|
||||||
password: "{{ .Config.password }}"
|
|
||||||
keeplogged: 1
|
|
||||||
login: "Log In!"
|
|
||||||
error:
|
|
||||||
- selector: center:first-of-type
|
|
||||||
test:
|
|
||||||
path: torrents/
|
|
||||||
selector: div#pre_header
|
|
||||||
|
|
||||||
search:
|
|
||||||
paths:
|
|
||||||
- path: torrents/
|
|
||||||
inputs:
|
|
||||||
search: "{{ if .Query.Author }} @authors {{ .Query.Author }}{{ else }}{{ end }}{{ if .Query.Title }} @title {{ .Query.Title }}{{ else }}{{ end }}{{ .Keywords }}"
|
|
||||||
$raw: "{{ range .Categories }}cat[]={{.}}&{{end}}"
|
|
||||||
orderby: "{{ .Config.orderby }}"
|
|
||||||
order: "{{ .Config.order }}"
|
|
||||||
|
|
||||||
rows:
|
|
||||||
selector: table#torrents_table > tbody > tr:has(.title)
|
|
||||||
|
|
||||||
fields:
|
|
||||||
category:
|
|
||||||
selector: td:first-child
|
|
||||||
case:
|
|
||||||
div[title="Applications"]: 1
|
|
||||||
div[title="Audiobooks"]: 3
|
|
||||||
div[title="Comics"]: 4
|
|
||||||
div[title="Ebooks"]: 5
|
|
||||||
div[title="Magazines"]: 7
|
|
||||||
author_optional:
|
|
||||||
selector: .authorLink
|
|
||||||
optional: true
|
|
||||||
_editor:
|
|
||||||
selector: .editorLink
|
|
||||||
optional: true
|
|
||||||
author:
|
|
||||||
text: "{{ or .Result.author_optional .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:
|
|
||||||
optional: true
|
|
||||||
selector: .t_files_size_added time
|
|
||||||
attribute: datetime
|
|
||||||
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_optional:
|
|
||||||
optional: true
|
|
||||||
selector: .seeders
|
|
||||||
seeders:
|
|
||||||
text: "{{ if .Result.seeders_optional }}{{ .Result.seeders_optional }}{{ else }}0{{ end }}"
|
|
||||||
leechers_optional:
|
|
||||||
optional: true
|
|
||||||
selector: .leechers
|
|
||||||
leechers:
|
|
||||||
text: "{{ if .Result.leechers_optional }}{{ .Result.leechers_optional }}{{ else }}0{{ end }}"
|
|
||||||
grabs_optional:
|
|
||||||
optional: true
|
|
||||||
selector: .snatches
|
|
||||||
grabs:
|
|
||||||
text: "{{ if .Result.grabs_optional }}{{ .Result.grabs_optional }}{{ else }}0{{ end }}"
|
|
||||||
downloadvolumefactor:
|
|
||||||
text: 1
|
|
||||||
uploadvolumefactor:
|
|
||||||
text: 1
|
|
||||||
# engine n/a
|
|
||||||
@@ -1,191 +0,0 @@
|
|||||||
---
|
|
||||||
id: bitbazis
|
|
||||||
name: Bit-Bázis
|
|
||||||
description: "Bit-Bázis is a HUNGARIAN Private Tracker for MOVIES / TV"
|
|
||||||
language: hu-HU
|
|
||||||
type: private
|
|
||||||
encoding: UTF-8
|
|
||||||
requestDelay: 2
|
|
||||||
links:
|
|
||||||
- https://bitbazis.net/
|
|
||||||
|
|
||||||
caps:
|
|
||||||
categorymappings:
|
|
||||||
- {id: 85, cat: Movies/SD, desc: "Film-Cam", default: true}
|
|
||||||
- {id: 15, cat: Movies/SD, desc: "Film-SD", default: true}
|
|
||||||
- {id: 17, cat: Movies/DVD, desc: "Film-DVD", default: true}
|
|
||||||
- {id: 83, cat: Movies/HD, desc: "Film-HD", default: true}
|
|
||||||
- {id: 94, cat: Movies/HD, desc: "Film-FHD", default: true}
|
|
||||||
- {id: 92, cat: Movies/UHD, desc: "Film-UHD", default: true}
|
|
||||||
- {id: 22, cat: TV, desc: "Sorozat-Hun", default: true}
|
|
||||||
- {id: 64, cat: Movies, desc: "Film-Pack", default: true}
|
|
||||||
- {id: 24, cat: Audio/Video, desc: "Klip", default: true}
|
|
||||||
- {id: 70, cat: Audio/Audiobook, desc: "Hangoskönyv", default: true}
|
|
||||||
- {id: 27, cat: Books/EBook, desc: "Könyv", default: true}
|
|
||||||
- {id: 69, cat: TV/Anime, desc: "Mese-SD", default: true}
|
|
||||||
- {id: 91, cat: TV/Anime, desc: "Mese-HD", default: true}
|
|
||||||
- {id: 25, cat: Audio/MP3, desc: "Mp3-Hun", default: true}
|
|
||||||
- {id: 26, cat: Audio/MP3, desc: "Mp3-Eng", default: true}
|
|
||||||
- {id: 84, cat: Audio/Lossless, desc: "FLAC-Hun", default: true}
|
|
||||||
- {id: 71, cat: Audio/Lossless, desc: "FLAC-Eng", default: true}
|
|
||||||
- {id: 31, cat: PC/Games, desc: "Játék", default: true}
|
|
||||||
- {id: 81, cat: PC/0day, desc: "Program", default: true}
|
|
||||||
- {id: 14, cat: Other, desc: "Egyéb", default: true}
|
|
||||||
- {id: 66, cat: XXX/ImageSet, desc: "XXX", default: false}
|
|
||||||
- {id: 33, cat: XXX/SD, desc: "XXX-SD", default: false}
|
|
||||||
- {id: 89, cat: XXX/x264, desc: "XXX-HD", default: false}
|
|
||||||
|
|
||||||
modes:
|
|
||||||
search: [q]
|
|
||||||
tv-search: [q, season, ep]
|
|
||||||
movie-search: [q]
|
|
||||||
book-search: [q]
|
|
||||||
music-search: [q]
|
|
||||||
|
|
||||||
settings:
|
|
||||||
- name: cookie
|
|
||||||
type: text
|
|
||||||
label: Cookie
|
|
||||||
- name: info
|
|
||||||
type: info
|
|
||||||
label: How to get the Cookie
|
|
||||||
default: "<ol><li>Login to this tracker with your browser</li><li>Open the <b>DevTools</b> panel by pressing <b>F12</b></li><li>Select the <b>Network</b> tab</li><li>Click on the <b>Doc</b> button (Chrome Browser) or <b>HTML</b> button (FireFox)</li><li>Refresh the page by pressing <b>F5</b></li><li>Click on the first row entry</li><li>Select the <b>Headers</b> tab on the Right panel</li><li>Find <b>'cookie:'</b> in the <b>Request Headers</b> section</li><li><b>Select</b> and <b>Copy</b> the whole cookie string <i>(everything after 'cookie: ')</i> and <b>Paste</b> here.</li></ol>"
|
|
||||||
- name: freeleech
|
|
||||||
type: checkbox
|
|
||||||
label: Filter freeleech only
|
|
||||||
default: false
|
|
||||||
- name: sort
|
|
||||||
type: select
|
|
||||||
label: Sort requested from site
|
|
||||||
default: 4
|
|
||||||
options:
|
|
||||||
1: title
|
|
||||||
4: added
|
|
||||||
5: size
|
|
||||||
- name: type
|
|
||||||
type: select
|
|
||||||
label: Order requested from site
|
|
||||||
default: desc
|
|
||||||
options:
|
|
||||||
desc: desc
|
|
||||||
asc: asc
|
|
||||||
- name: info_tpp
|
|
||||||
type: info
|
|
||||||
label: Results Per Page
|
|
||||||
default: For best results, change the <b>Torrentek száma egy oldalon:</b> setting to <b>50</b> on your account profile.
|
|
||||||
- name: info_activity
|
|
||||||
type: info
|
|
||||||
label: Account Inactivity
|
|
||||||
default: "If the user does not access the site for 1 month, he will receive an e-mail notification. If you stay away for 9 months, your account will be suspended and deleted. After the 9-month absence, the user cannot register again."
|
|
||||||
|
|
||||||
login:
|
|
||||||
method: cookie
|
|
||||||
inputs:
|
|
||||||
cookie: "{{ .Config.cookie }}"
|
|
||||||
test:
|
|
||||||
path: index.php
|
|
||||||
selector: li[onclick^="window.open('logout.php?k="]
|
|
||||||
|
|
||||||
search:
|
|
||||||
paths:
|
|
||||||
- path: browse.php
|
|
||||||
categories: [85, 86, 15, 16, 17, 19, 83, 82, 94, 95, 92, 93, 22, 58, 64, 24, 70, 27, 50, 69, 68, 91, 25, 26, 84, 71, 31, 54, 81, 67, 49, 14, 65, 97]
|
|
||||||
inputs:
|
|
||||||
# 0 all, 1 active, 2 deadonly, 3 myuploads, 4 zeroseed, 6 re-seeded
|
|
||||||
incldead: 0
|
|
||||||
- path: browse_xxx.php
|
|
||||||
categories: [33, 66, 89]
|
|
||||||
inputs:
|
|
||||||
# 0 active, 1 all, 2 deadonly, 3 myuploads, 4 zeroseed, 6 re-seeded
|
|
||||||
incldead: 1
|
|
||||||
inputs:
|
|
||||||
$raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
|
|
||||||
search: "{{ .Keywords }}"
|
|
||||||
sort: "{{ .Config.sort }}"
|
|
||||||
type: "{{ .Config.type }}"
|
|
||||||
# site does not support imdbid searching
|
|
||||||
# can support genre searching but you need to know the id, eg &genre23=1 for Comedy (id is 23)
|
|
||||||
|
|
||||||
rows:
|
|
||||||
selector: "tr[class^=\"toriadatok\"]{{ if .Config.freeleech }}:has(i:contains(\"(Free)\")){{ else }}{{ end }}"
|
|
||||||
|
|
||||||
fields:
|
|
||||||
categorydesc:
|
|
||||||
selector: td[class^="catpic_"]
|
|
||||||
attribute: class
|
|
||||||
filters:
|
|
||||||
- name: replace
|
|
||||||
args: ["catpic_", ""]
|
|
||||||
title:
|
|
||||||
selector: font[class="tori"], a.preview
|
|
||||||
_id:
|
|
||||||
selector: td.tori_infok
|
|
||||||
attribute: id
|
|
||||||
optional: true
|
|
||||||
filters:
|
|
||||||
- name: regexp
|
|
||||||
args: (\d+)
|
|
||||||
details_optional:
|
|
||||||
selector: a[href^="details.php?id="]
|
|
||||||
attribute: href
|
|
||||||
optional: true
|
|
||||||
details:
|
|
||||||
text: "{{ if .Result.details_optional }}{{ .Result.details_optional }}{{ else }}details.php?id={{ .Result._id }}#adatlap{{ end }}"
|
|
||||||
download:
|
|
||||||
text: "download.php?torrent={{ .Result._id }}"
|
|
||||||
poster:
|
|
||||||
selector: a.preview
|
|
||||||
attribute: href
|
|
||||||
imdbid:
|
|
||||||
selector: a[href*="imdb.com/title/tt"]
|
|
||||||
attribute: href
|
|
||||||
size:
|
|
||||||
selector: td[id^="tsize"]
|
|
||||||
date:
|
|
||||||
# 36 perce
|
|
||||||
# 13 órája és 59 perce
|
|
||||||
# 2 napja és 10 órája
|
|
||||||
# 1 hete és 1 napja
|
|
||||||
# 1 éve és 30 hete
|
|
||||||
selector: span.ellenorzes
|
|
||||||
filters:
|
|
||||||
- name: replace
|
|
||||||
args: ["és ", " "]
|
|
||||||
- name: replace
|
|
||||||
args: ["perce", "minute"]
|
|
||||||
- name: replace
|
|
||||||
args: ["órája", "hour"]
|
|
||||||
- name: replace
|
|
||||||
args: ["napja", "day"]
|
|
||||||
- name: replace
|
|
||||||
args: ["hete", "week"]
|
|
||||||
- name: replace
|
|
||||||
args: ["éve", "year"]
|
|
||||||
- name: timeago
|
|
||||||
grabs:
|
|
||||||
selector: td.letoltok
|
|
||||||
optional: true
|
|
||||||
seeders:
|
|
||||||
selector: td.seeders
|
|
||||||
optional: true
|
|
||||||
leechers:
|
|
||||||
selector: td.leechers
|
|
||||||
optional: true
|
|
||||||
genre:
|
|
||||||
selector: span[style="font-size:small;"]
|
|
||||||
description:
|
|
||||||
text: "{{ .Result.genre }}"
|
|
||||||
downloadvolumefactor:
|
|
||||||
case:
|
|
||||||
"i:contains(\"(Free)\")": 0
|
|
||||||
"*": 1
|
|
||||||
uploadvolumefactor:
|
|
||||||
case:
|
|
||||||
"i:contains(\"(2x)\")": 2
|
|
||||||
"i:contains(\"(3x)\")": 3
|
|
||||||
"i:contains(\"(4x)\")": 4
|
|
||||||
"*": 1
|
|
||||||
minimumseedtime:
|
|
||||||
# 1 day (as seconds = 1 x 24 x 60 x 60)
|
|
||||||
text: 86400
|
|
||||||
# engine n/a
|
|
||||||
@@ -1,162 +0,0 @@
|
|||||||
---
|
|
||||||
id: bithumen
|
|
||||||
name: BitHUmen
|
|
||||||
description: "BitHUmen is a Hungarian Private site for TV / MOVIES / GENERAL"
|
|
||||||
language: hu-HU
|
|
||||||
type: private
|
|
||||||
encoding: ISO-8859-2
|
|
||||||
links:
|
|
||||||
- https://bithumen.be/
|
|
||||||
|
|
||||||
caps:
|
|
||||||
categorymappings:
|
|
||||||
- {id: 23, cat: Movies/SD, desc: "Film/Hun/SD"}
|
|
||||||
- {id: 24, cat: Movies/DVD, desc: "Film/Hun/DVD-R"}
|
|
||||||
- {id: 25, cat: Movies/HD, desc: "Film/Hun/720p"}
|
|
||||||
- {id: 37, cat: Movies/HD, desc: "Film/Hun/1080p"}
|
|
||||||
- {id: 33, cat: Movies/BluRay, desc: "Film/Hun/Blu-ray"}
|
|
||||||
- {id: 30, cat: XXX, desc: "XXX/SD"}
|
|
||||||
- {id: 19, cat: Movies/SD, desc: "Film/Eng/SD"}
|
|
||||||
- {id: 20, cat: Movies/DVD, desc: "Film/Eng/DVD-R"}
|
|
||||||
- {id: 5, cat: Movies/HD, desc: "Film/Eng/720p"}
|
|
||||||
- {id: 39, cat: Movies/HD, desc: "Film/Eng/1080p"}
|
|
||||||
- {id: 40, cat: Movies/BluRay, desc: "Film/Eng/Blu-ray"}
|
|
||||||
- {id: 34, cat: XXX, desc: "XXX/HD"}
|
|
||||||
- {id: 7, cat: TV/SD, desc: "Sorozat/Hun/SD"}
|
|
||||||
- {id: 41, cat: TV/HD, desc: "Sorozat/Hun/HD"}
|
|
||||||
- {id: 26, cat: TV/SD, desc: "Sorozat/Eng/SD"}
|
|
||||||
- {id: 42, cat: TV/HD, desc: "Sorozat/Eng/HD"}
|
|
||||||
- {id: 28, cat: Books, desc: "eBook/Hun"}
|
|
||||||
- {id: 29, cat: Books, desc: "eBook/Eng"}
|
|
||||||
- {id: 9, cat: Audio/MP3, desc: "Mp3/Hun"}
|
|
||||||
- {id: 35, cat: Audio/Lossless, desc: "Lossless/Hun"}
|
|
||||||
- {id: 1, cat: PC/0day, desc: "Programok/ISO"}
|
|
||||||
- {id: 4, cat: PC/Games, desc: "Játékok/ISO"}
|
|
||||||
- {id: 31, cat: Console/PS4, desc: "Játékok/PS"}
|
|
||||||
- {id: 36, cat: Console/Wii, desc: "Játékok/Wii"}
|
|
||||||
- {id: 6, cat: Audio/MP3, desc: "Mp3/Eng"}
|
|
||||||
- {id: 38, cat: Audio/Lossless, desc: "Lossless/Eng"}
|
|
||||||
- {id: 22, cat: PC, desc: "Programok/egyéb"}
|
|
||||||
- {id: 21, cat: PC, desc: "Játékok/Rip/Dox"}
|
|
||||||
- {id: 32, cat: Console/XBox 360, desc: "Játékok/Xbox360"}
|
|
||||||
- {id: 27, cat: Other, desc: "Klipek"}
|
|
||||||
|
|
||||||
modes:
|
|
||||||
search: [q]
|
|
||||||
tv-search: [q, season, ep, imdbid]
|
|
||||||
movie-search: [q, imdbid]
|
|
||||||
music-search: [q]
|
|
||||||
book-search: [q]
|
|
||||||
|
|
||||||
login:
|
|
||||||
path: takelogin.php
|
|
||||||
method: post
|
|
||||||
inputs:
|
|
||||||
username: "{{ .Config.username }}"
|
|
||||||
password: "{{ .Config.password }}"
|
|
||||||
error:
|
|
||||||
- selector: td.embedded:has(h2:contains("bejelentkezés"))
|
|
||||||
test:
|
|
||||||
path: browse.php
|
|
||||||
selector: a[href*="logout.php"]
|
|
||||||
|
|
||||||
search:
|
|
||||||
paths:
|
|
||||||
- path: browse.php
|
|
||||||
inputs:
|
|
||||||
$raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
|
|
||||||
search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}" # for dashboard imdbid search
|
|
||||||
incldead: 1
|
|
||||||
|
|
||||||
rows:
|
|
||||||
selector: table#torrenttable > tbody > tr:has(a[href^="details.php?id="])
|
|
||||||
filters:
|
|
||||||
- name: andmatch
|
|
||||||
|
|
||||||
fields:
|
|
||||||
# download button can be disbled in the profile, use details link instead
|
|
||||||
# download:
|
|
||||||
# selector: a[href^="download.php/"]
|
|
||||||
# attribute: href
|
|
||||||
download:
|
|
||||||
selector: a[href^="details.php?id="]
|
|
||||||
attribute: href
|
|
||||||
filters:
|
|
||||||
- name: replace
|
|
||||||
args: ["details.php?id=", "download.php/"]
|
|
||||||
- name: append
|
|
||||||
args: "/invalid.torrent"
|
|
||||||
title_default:
|
|
||||||
selector: a[href^="details.php?id="]
|
|
||||||
title_optional:
|
|
||||||
optional: true
|
|
||||||
selector: a[href^="details.php?id="]
|
|
||||||
attribute: title
|
|
||||||
title:
|
|
||||||
text: "{{ if .Result.title_optional }}{{ .Result.title_optional }}{{ else }}{{ .Result.title_default }}{{ end }}"
|
|
||||||
details:
|
|
||||||
selector: a[href^="details.php?id="]
|
|
||||||
attribute: href
|
|
||||||
imdbid:
|
|
||||||
selector: a[href*="imdb.com/title/tt"]
|
|
||||||
attribute: href
|
|
||||||
poster:
|
|
||||||
selector: a[onmouseover^="bithumen.UI.images.coverShow"]
|
|
||||||
attribute: onmouseover
|
|
||||||
filters:
|
|
||||||
- name: regexp
|
|
||||||
args: "\"(.*?)\""
|
|
||||||
category:
|
|
||||||
selector: a[href^="?cat="]
|
|
||||||
attribute: href
|
|
||||||
filters:
|
|
||||||
- name: querystring
|
|
||||||
args: cat
|
|
||||||
seeders:
|
|
||||||
selector: td:nth-child(8)
|
|
||||||
leechers:
|
|
||||||
selector: td:nth-child(9)
|
|
||||||
filters:
|
|
||||||
- name: regexp
|
|
||||||
args: /\s*([\d,]+)
|
|
||||||
grabs:
|
|
||||||
selector: td:nth-child(7)
|
|
||||||
files:
|
|
||||||
selector: td:nth-child(3)
|
|
||||||
size:
|
|
||||||
selector: td:nth-child(6) > u
|
|
||||||
downloadvolumefactor:
|
|
||||||
text: 0
|
|
||||||
uploadvolumefactor_optional:
|
|
||||||
optional: true
|
|
||||||
selector: td:nth-child(5) > nobr > font:contains(" × ")
|
|
||||||
filters:
|
|
||||||
- name: replace
|
|
||||||
args: ["×", ""]
|
|
||||||
uploadvolumefactor:
|
|
||||||
text: "{{ if .Result.uploadvolumefactor_optional }}{{ .Result.uploadvolumefactor_optional }}{{ else }}1{{ end }}"
|
|
||||||
date_year:
|
|
||||||
selector: td:nth-child(5):contains('.')
|
|
||||||
optional: true
|
|
||||||
remove: font
|
|
||||||
filters:
|
|
||||||
- name: replace
|
|
||||||
args: [". ", " "]
|
|
||||||
- name: prepend
|
|
||||||
args: "{{ .Today.Year }}."
|
|
||||||
- name: re_replace
|
|
||||||
args: ["([0-9]{4}).([0-9]+).([0-9]+) (.*)", "$2.$3.$1 $4"]
|
|
||||||
date_day:
|
|
||||||
selector: td:nth-child(5):contains('ma'), td:nth-child(5):contains("tegnap"), td:nth-child(5):contains('-')
|
|
||||||
optional: true
|
|
||||||
remove: font
|
|
||||||
filters:
|
|
||||||
- name: replace
|
|
||||||
args: ["ma", "today"]
|
|
||||||
- name: replace
|
|
||||||
args: ["tegnap", "yesterday"]
|
|
||||||
date:
|
|
||||||
text: "{{ if or .Result.date_day .Result.date_year }}{{ or .Result.date_day .Result.date_year }}{{ else }}now{{ end }}"
|
|
||||||
description:
|
|
||||||
selector: td:nth-child(2) > div
|
|
||||||
# engine tbd
|
|
||||||
@@ -1,176 +0,0 @@
|
|||||||
---
|
|
||||||
id: blutopia-api
|
|
||||||
name: Blutopia (API)
|
|
||||||
description: "Blutopia (BLU) is a Private Torrent Tracker for HD MOVIES / TV"
|
|
||||||
language: en-US
|
|
||||||
type: private
|
|
||||||
encoding: UTF-8
|
|
||||||
links:
|
|
||||||
- https://blutopia.cc/
|
|
||||||
legacylinks:
|
|
||||||
- https://blutopia.xyz/
|
|
||||||
|
|
||||||
caps:
|
|
||||||
categorymappings:
|
|
||||||
- {id: 1, cat: Movies, desc: "Movie"}
|
|
||||||
- {id: 2, cat: TV, desc: "TV Show"}
|
|
||||||
- {id: 3, cat: Movies/Other, desc: "FANRES"}
|
|
||||||
- {id: 5, cat: Movies/Other, desc: "Trailer"}
|
|
||||||
|
|
||||||
modes:
|
|
||||||
search: [q]
|
|
||||||
tv-search: [q, season, ep, imdbid, tvdbid, tmdbid]
|
|
||||||
movie-search: [q, imdbid, tmdbid]
|
|
||||||
|
|
||||||
settings:
|
|
||||||
- name: apikey
|
|
||||||
type: text
|
|
||||||
label: APIKey
|
|
||||||
- name: info_key
|
|
||||||
type: info
|
|
||||||
label: About your API key
|
|
||||||
default: "Find or Generate a new API Token by accessing your <a href=\"https://blutopia.cc/\" target=\"_blank\">Blutopia</a> account <i>My Settings</i> page and clicking on the <b>API Key</b> tab."
|
|
||||||
- name: freeleech
|
|
||||||
type: checkbox
|
|
||||||
label: Search freeleech only
|
|
||||||
default: false
|
|
||||||
- name: single_file_release_use_filename
|
|
||||||
type: checkbox
|
|
||||||
label: Use filename as title for single file releases
|
|
||||||
default: true
|
|
||||||
- name: sort
|
|
||||||
type: select
|
|
||||||
label: Sort requested from site
|
|
||||||
default: created_at
|
|
||||||
options:
|
|
||||||
created_at: created
|
|
||||||
seeders: seeders
|
|
||||||
size: size
|
|
||||||
name: title
|
|
||||||
- name: type
|
|
||||||
type: select
|
|
||||||
label: Order requested from site
|
|
||||||
default: desc
|
|
||||||
options:
|
|
||||||
desc: desc
|
|
||||||
asc: asc
|
|
||||||
- name: info_activity
|
|
||||||
type: info
|
|
||||||
label: Account Inactivity
|
|
||||||
default: "Your membership requires that you stay active at Blutopia. To not get disabled, you are required to login to the site at least once every 30 days or be actively seeding at least 1 torrent."
|
|
||||||
|
|
||||||
login:
|
|
||||||
path: /api/torrents
|
|
||||||
method: get
|
|
||||||
inputs: {} # TODO: remove in v10
|
|
||||||
error:
|
|
||||||
- selector: a[href*="/login"]
|
|
||||||
message:
|
|
||||||
text: "The API key was not accepted by {{ .Config.sitelink }}."
|
|
||||||
|
|
||||||
search:
|
|
||||||
paths:
|
|
||||||
# https://github.com/HDInnovations/UNIT3D-Community-Edition/wiki/Torrent-API-(UNIT3D-v8.x.x)
|
|
||||||
# https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php#L476
|
|
||||||
- path: "/api/torrents/filter"
|
|
||||||
response:
|
|
||||||
type: json
|
|
||||||
|
|
||||||
headers:
|
|
||||||
Authorization: ["Bearer {{ .Config.apikey }}"]
|
|
||||||
|
|
||||||
inputs:
|
|
||||||
# if we have an id based search, add Season and Episode as query in name for UNIT3D < v6. Else pass S/E Params for UNIT3D >= v6
|
|
||||||
name: "{{ .Keywords }}"
|
|
||||||
$raw: "{{ if .Query.Season }}&seasonNumber={{ .Query.Season }}{{ else }}{{ end }}{{ if .Query.Ep }}&episodeNumber={{ .Query.Ep }}{{ else }}{{ end }}{{ if .Query.TMDBID }}&tmdbId={{ .Query.TMDBID }}{{ else }}{{ end }}{{ if .Query.IMDBIDShort }}&imdbId={{ .Query.IMDBIDShort }}{{ else }}{{ end }}{{ if .Query.TVDBID }}&tvdbId={{ .Query.TVDBID }}{{ else }}{{ end }}{{ range .Categories }}&categories[]={{.}}{{end}}{{ if .Config.freeleech }}&free[]=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: [" & ", "_&_"]
|
|
||||||
description:
|
|
||||||
text: "{{ .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
|
|
||||||
downloadvolumefactor:
|
|
||||||
# api returns 0%, 25%, 50%, 75%, 100%
|
|
||||||
selector: freeleech
|
|
||||||
case:
|
|
||||||
0%: 1 # not free
|
|
||||||
25%: 0.75
|
|
||||||
50%: 0.5
|
|
||||||
75%: 0.25
|
|
||||||
100%: 0 # freeleech
|
|
||||||
"*": 0 # catch errors
|
|
||||||
uploadvolumefactor:
|
|
||||||
# api returns False, True
|
|
||||||
selector: double_upload
|
|
||||||
case:
|
|
||||||
False: 1 # normal
|
|
||||||
True: 2 # double
|
|
||||||
# global MR is 0.4 but torrents must be seeded for 7 days regardless of ratio
|
|
||||||
# minimumratio:
|
|
||||||
# text: 0.4
|
|
||||||
minimumseedtime:
|
|
||||||
# 7 day (as seconds = 7 x 24 x 60 x 60)
|
|
||||||
text: 604800
|
|
||||||
# json UNIT3D 8.0.2
|
|
||||||
@@ -1,140 +0,0 @@
|
|||||||
---
|
|
||||||
id: bootytape
|
|
||||||
name: BootyTape
|
|
||||||
description: "BootyTape is a Semi-Private site for 3X"
|
|
||||||
language: en-US
|
|
||||||
type: semi-private
|
|
||||||
encoding: UTF-8
|
|
||||||
requestDelay: 3
|
|
||||||
links:
|
|
||||||
- https://ssl.bootytape.com/
|
|
||||||
|
|
||||||
caps:
|
|
||||||
categorymappings:
|
|
||||||
- {id: 70, cat: XXX, desc: "Animation"}
|
|
||||||
- {id: 22, cat: XXX, desc: "Girl on Girl"}
|
|
||||||
- {id: 43, cat: XXX, desc: "Images"}
|
|
||||||
- {id: 52, cat: XXX, desc: "Straight"}
|
|
||||||
- {id: 82, cat: XXX, desc: "X Play Hard"}
|
|
||||||
- {id: 92, cat: XXX, desc: "X Play Soft"}
|
|
||||||
|
|
||||||
modes:
|
|
||||||
search: [q]
|
|
||||||
|
|
||||||
settings:
|
|
||||||
- name: username
|
|
||||||
type: text
|
|
||||||
label: Username
|
|
||||||
- name: password
|
|
||||||
type: password
|
|
||||||
label: Password
|
|
||||||
- name: freeleech
|
|
||||||
type: checkbox
|
|
||||||
label: Search freeleech only
|
|
||||||
default: false
|
|
||||||
- name: sort
|
|
||||||
type: select
|
|
||||||
label: Sort requested from site
|
|
||||||
default: 4
|
|
||||||
options:
|
|
||||||
4: created
|
|
||||||
7: seeders
|
|
||||||
5: size
|
|
||||||
1: title
|
|
||||||
- name: type
|
|
||||||
type: select
|
|
||||||
label: Order requested from site
|
|
||||||
default: desc
|
|
||||||
options:
|
|
||||||
desc: desc
|
|
||||||
asc: asc
|
|
||||||
- name: info_tpp
|
|
||||||
type: info
|
|
||||||
label: Results Per Page
|
|
||||||
default: For best results, change the <b>Torrents per page:</b> setting to <b>100</b> on your account profile.
|
|
||||||
|
|
||||||
login:
|
|
||||||
path: login.php
|
|
||||||
method: post
|
|
||||||
inputs:
|
|
||||||
take_login: 1
|
|
||||||
username: "{{ .Config.username }}"
|
|
||||||
password: "{{ .Config.password }}"
|
|
||||||
error:
|
|
||||||
- selector: td.mainouter2:has(h1:contains("Failed"))
|
|
||||||
test:
|
|
||||||
path: my.php
|
|
||||||
selector: a[href="logout.php"]
|
|
||||||
|
|
||||||
search:
|
|
||||||
paths:
|
|
||||||
# https://ssl.bootytape.com/torrents.php?search=onlyfans&tagsearch=&cat=0&tags=1
|
|
||||||
- path: torrents.php
|
|
||||||
inputs:
|
|
||||||
search: "{{ .Keywords }}"
|
|
||||||
tagsearch: ""
|
|
||||||
# 0 all
|
|
||||||
cat: 0
|
|
||||||
freeleech: "{{ if .Config.freeleech }}1{{ else }}{{ end }}"
|
|
||||||
# tags search mode: 1 AND, 2 OR
|
|
||||||
tags: 1
|
|
||||||
# incldead=2 for search unseeded
|
|
||||||
# descr=1 for search description
|
|
||||||
# double=1 for search double seed bonus
|
|
||||||
sort: "{{ .Config.sort }}"
|
|
||||||
type: "{{ .Config.type }}"
|
|
||||||
|
|
||||||
rows:
|
|
||||||
selector: table.red > tbody > tr:not(:has(th))
|
|
||||||
|
|
||||||
fields:
|
|
||||||
category:
|
|
||||||
selector: a[href^="torrents.php?cat="]
|
|
||||||
attribute: href
|
|
||||||
filters:
|
|
||||||
- name: querystring
|
|
||||||
args: cat
|
|
||||||
title:
|
|
||||||
selector: a[href^="details.php?id="]
|
|
||||||
details:
|
|
||||||
selector: a[href^="details.php?id="]
|
|
||||||
attribute: href
|
|
||||||
download:
|
|
||||||
selector: a[href^="download.php?id="]
|
|
||||||
attribute: href
|
|
||||||
description:
|
|
||||||
selector: div.specg
|
|
||||||
poster:
|
|
||||||
selector: img[src*="/thbx/imgx/"]
|
|
||||||
attribute: src
|
|
||||||
files_optional:
|
|
||||||
selector: a[href$="filelist=1"]
|
|
||||||
optional: true
|
|
||||||
files:
|
|
||||||
text: "{{ if .Result.files_optional }}{{ .Result.files_optional }}{{ else }}1{{ end }}"
|
|
||||||
size_optional:
|
|
||||||
selector: td:nth-child(3)
|
|
||||||
optional: true
|
|
||||||
size:
|
|
||||||
text: "{{ if .Result.size_optional }}{{ .Result.size_optional }}{{ else }}0 B{{ end }}"
|
|
||||||
seeders_optional:
|
|
||||||
selector: a[href$="toseeders=1"]
|
|
||||||
optional: true
|
|
||||||
seeders:
|
|
||||||
text: "{{ if .Result.seeders_optional }}{{ .Result.seeders_optional }}{{ else }}0{{ end }}"
|
|
||||||
leechers_optional:
|
|
||||||
selector: a[href$="todlers=1"]
|
|
||||||
optional: true
|
|
||||||
leechers:
|
|
||||||
text: "{{ if .Result.leechers_optional }}{{ .Result.leechers_optional }}{{ else }}0{{ end }}"
|
|
||||||
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
|
|
||||||
@@ -1,148 +0,0 @@
|
|||||||
---
|
|
||||||
id: brsociety-api
|
|
||||||
name: BrSociety (API)
|
|
||||||
description: "BrSociety (SemeandoCC) is a BRAZILIAN Private Torrent Tracker for E-LEARNING"
|
|
||||||
language: pt-BR
|
|
||||||
type: private
|
|
||||||
encoding: UTF-8
|
|
||||||
links:
|
|
||||||
- https://brsociety.club/
|
|
||||||
|
|
||||||
caps:
|
|
||||||
categorymappings:
|
|
||||||
- {id: 1, cat: Other, desc: "Cursos"}
|
|
||||||
- {id: 2, cat: Books/EBook, desc: "eBooks"}
|
|
||||||
- {id: 5, cat: Books/Mags, desc: "Revistas"}
|
|
||||||
- {id: 3, cat: Audio/Audiobook, desc: "Audiobooks"}
|
|
||||||
- {id: 4, cat: Other, desc: "Arquivos de Auxilio"}
|
|
||||||
- {id: 6, cat: Other, desc: "Graduação"}
|
|
||||||
- {id: 7, cat: TV/Documentary, desc: "Documentários"}
|
|
||||||
|
|
||||||
modes:
|
|
||||||
search: [q]
|
|
||||||
tv-search: [q, season, ep]
|
|
||||||
book-search: [q]
|
|
||||||
|
|
||||||
settings:
|
|
||||||
- name: apikey
|
|
||||||
type: text
|
|
||||||
label: APIKey
|
|
||||||
- name: info_key
|
|
||||||
type: info
|
|
||||||
label: About your API key
|
|
||||||
default: "Find or Generate a new API Token by accessing your <a href=\"https://brsociety.club/\" target=\"_blank\">BrSociety</a> account <i>My Settings</i> page and clicking on the <b>API Key</b> tab."
|
|
||||||
- name: freeleech
|
|
||||||
type: checkbox
|
|
||||||
label: Search freeleech only
|
|
||||||
default: false
|
|
||||||
- name: sort
|
|
||||||
type: select
|
|
||||||
label: Sort requested from site
|
|
||||||
default: created_at
|
|
||||||
options:
|
|
||||||
created_at: created
|
|
||||||
seeders: seeders
|
|
||||||
size: size
|
|
||||||
name: title
|
|
||||||
- name: type
|
|
||||||
type: select
|
|
||||||
label: Order requested from site
|
|
||||||
default: desc
|
|
||||||
options:
|
|
||||||
desc: desc
|
|
||||||
asc: asc
|
|
||||||
- name: info_activity
|
|
||||||
type: info
|
|
||||||
label: Account Inactivity
|
|
||||||
default: "Your account will be considered inactive if it exceeds 90 days without you logging in to the Website. After 90 days of inactivity (i.e., 180 days without login) it will be deleted from the tracker."
|
|
||||||
|
|
||||||
login:
|
|
||||||
path: /api/torrents
|
|
||||||
method: get
|
|
||||||
inputs: {} # TODO: remove in v10
|
|
||||||
error:
|
|
||||||
- selector: a[href*="/login"]
|
|
||||||
message:
|
|
||||||
text: "The API key was not accepted by {{ .Config.sitelink }}."
|
|
||||||
|
|
||||||
search:
|
|
||||||
paths:
|
|
||||||
# https://github.com/HDInnovations/UNIT3D-Community-Edition/wiki/Torrent-API-(UNIT3D-v8.x.x)
|
|
||||||
# https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php#L476
|
|
||||||
- path: "/api/torrents/filter"
|
|
||||||
response:
|
|
||||||
type: json
|
|
||||||
|
|
||||||
headers:
|
|
||||||
Authorization: ["Bearer {{ .Config.apikey }}"]
|
|
||||||
|
|
||||||
inputs:
|
|
||||||
$raw: "{{ range .Categories }}&categories[]={{.}}{{end}}{{ if .Config.freeleech }}&free[]=100{{ else }}{{ end }}"
|
|
||||||
name: "{{ .Keywords }}"
|
|
||||||
sortField: "{{ .Config.sort }}"
|
|
||||||
sortDirection: "{{ .Config.type }}"
|
|
||||||
perPage: 100
|
|
||||||
|
|
||||||
keywordsfilters:
|
|
||||||
- name: re_replace
|
|
||||||
args: ["\\.", " "]
|
|
||||||
|
|
||||||
rows:
|
|
||||||
selector: data
|
|
||||||
attribute: attributes
|
|
||||||
|
|
||||||
fields:
|
|
||||||
category:
|
|
||||||
selector: category_id
|
|
||||||
title:
|
|
||||||
selector: name
|
|
||||||
details:
|
|
||||||
selector: details_link
|
|
||||||
download:
|
|
||||||
selector: download_link
|
|
||||||
magnet:
|
|
||||||
selector: magnet_link
|
|
||||||
optional: true
|
|
||||||
infohash:
|
|
||||||
selector: info_hash
|
|
||||||
files:
|
|
||||||
selector: num_file
|
|
||||||
seeders:
|
|
||||||
selector: seeders
|
|
||||||
leechers:
|
|
||||||
selector: leechers
|
|
||||||
grabs:
|
|
||||||
selector: times_completed
|
|
||||||
date:
|
|
||||||
# "created_at": "2021-10-18T00:34:50.000000Z" is returned by Newtonsoft.Json.Linq as 18/10/2021 00:34:50
|
|
||||||
selector: created_at
|
|
||||||
filters:
|
|
||||||
- name: append
|
|
||||||
args: " +00:00" # GMT
|
|
||||||
- name: dateparse
|
|
||||||
args: "MM/dd/yyyy HH:mm:ss zzz"
|
|
||||||
size:
|
|
||||||
selector: size
|
|
||||||
downloadvolumefactor:
|
|
||||||
# api returns 0%, 25%, 50%, 75%, 100%
|
|
||||||
selector: freeleech
|
|
||||||
case:
|
|
||||||
0%: 1 # not free
|
|
||||||
25%: 0.75
|
|
||||||
50%: 0.5
|
|
||||||
75%: 0.25
|
|
||||||
100%: 0 # freeleech
|
|
||||||
"*": 0 # catch errors
|
|
||||||
uploadvolumefactor:
|
|
||||||
# api returns False, True
|
|
||||||
selector: double_upload
|
|
||||||
case:
|
|
||||||
False: 1 # normal
|
|
||||||
True: 2 # double
|
|
||||||
# global MR is 0.7 but torrents must be seeded for 4 days regardless of ratio
|
|
||||||
# minimumratio:
|
|
||||||
# text: 0.7
|
|
||||||
minimumseedtime:
|
|
||||||
# 4 days (as seconds = 4 x 24 x 60 x 60)
|
|
||||||
text: 345600
|
|
||||||
# json UNIT3D 7.1.3 (custom)
|
|
||||||
@@ -1,181 +0,0 @@
|
|||||||
---
|
|
||||||
id: byrbt
|
|
||||||
name: BYRBT
|
|
||||||
description: "BYRBT is a CHINESE Private Torrent Tracker for HD MOVIES / TV / GENERAL"
|
|
||||||
language: zh-CN
|
|
||||||
type: private
|
|
||||||
encoding: UTF-8
|
|
||||||
links:
|
|
||||||
- https://byr.pt/
|
|
||||||
|
|
||||||
caps:
|
|
||||||
categorymappings:
|
|
||||||
- {id: 408, cat: Movies, desc: "电影Movies"}
|
|
||||||
- {id: 401, cat: TV, desc: "剧集TV Series"}
|
|
||||||
- {id: 404, cat: TV/Anime, desc: "动漫Animations"}
|
|
||||||
- {id: 402, cat: Audio, desc: "音乐Music"}
|
|
||||||
- {id: 405, cat: Other, desc: "综艺Arts"}
|
|
||||||
- {id: 403, cat: Console, desc: "游戏Games"}
|
|
||||||
- {id: 406, cat: PC, desc: "软件Software"}
|
|
||||||
- {id: 407, cat: TV/Documentary, desc: "资料Documentaries"}
|
|
||||||
- {id: 409, cat: TV/Sport, desc: "体育Sports"}
|
|
||||||
- {id: 410, cat: Other/Misc, desc: "纪录Records"}
|
|
||||||
|
|
||||||
modes:
|
|
||||||
search: [q]
|
|
||||||
tv-search: [q, season, ep, imdbid, doubanid]
|
|
||||||
movie-search: [q, imdbid, doubanid]
|
|
||||||
music-search: [q]
|
|
||||||
|
|
||||||
settings:
|
|
||||||
- name: username
|
|
||||||
type: text
|
|
||||||
label: Username
|
|
||||||
- name: password
|
|
||||||
type: password
|
|
||||||
label: Password
|
|
||||||
- name: freeleech
|
|
||||||
type: checkbox
|
|
||||||
label: Search freeleech only
|
|
||||||
default: false
|
|
||||||
- name: sort
|
|
||||||
type: select
|
|
||||||
label: Sort requested from site
|
|
||||||
default: 4
|
|
||||||
options:
|
|
||||||
4: created
|
|
||||||
7: seeders
|
|
||||||
5: size
|
|
||||||
1: title
|
|
||||||
- name: type
|
|
||||||
type: select
|
|
||||||
label: Order requested from site
|
|
||||||
default: desc
|
|
||||||
options:
|
|
||||||
desc: desc
|
|
||||||
asc: asc
|
|
||||||
- name: info_tpp
|
|
||||||
type: info
|
|
||||||
label: Results Per Page
|
|
||||||
default: For best results, change the <b>Torrents per page:</b> setting to <b>100</b> on your account profile.
|
|
||||||
- name: info_ipv6
|
|
||||||
type: info
|
|
||||||
label: IPv6 only
|
|
||||||
default: This site only accepts IPv6 addresses. If you are using IPv4 you will get a DNS Lookup Error.
|
|
||||||
- name: info_activity
|
|
||||||
type: info
|
|
||||||
label: Account Inactivity
|
|
||||||
default: "Account retention rules:<ol><li>Newly registered users who have not generated any traffic within 14 days (that is, the upload/download data are both 0) will be deleted</li><li>Users with a user level of Peasant that have failed to successfully improve their sharing rate within 14 days will be deleted.</li></ol>"
|
|
||||||
|
|
||||||
login:
|
|
||||||
path: login.php
|
|
||||||
method: form
|
|
||||||
form: form[action="takelogin.php"]
|
|
||||||
inputs:
|
|
||||||
logintype: username
|
|
||||||
userinput: "{{ .Config.username }}"
|
|
||||||
password: "{{ .Config.password }}"
|
|
||||||
autologin: yes
|
|
||||||
error:
|
|
||||||
- selector: td.embedded:has(h2:contains("失败"))
|
|
||||||
test:
|
|
||||||
path: index.php
|
|
||||||
selector: a[href^="logout.php?key="]
|
|
||||||
|
|
||||||
search:
|
|
||||||
paths:
|
|
||||||
- path: torrents.php
|
|
||||||
inputs:
|
|
||||||
$raw: "{{ range .Categories }}cat{{.}}=1&{{end}}"
|
|
||||||
search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ end }}{{ if .Query.DoubanID }}/{{ .Query.DoubanID }}{{ else }}{{ end }}{{ if or .Query.IMDBID .Query.DoubanID }}{{ else }}{{ .Keywords }}{{ end }}"
|
|
||||||
# 0 incldead, 1 active, 2 dead
|
|
||||||
incldead: 0
|
|
||||||
# 0 all, 1 normal, 2 free, 3 2x, 4 2xfree, 5 50%, 6 2x50%, 7 30%
|
|
||||||
spstate: "{{ if .Config.freeleech }}2{{ else }}0{{ end }}"
|
|
||||||
# 0 title, 1 descr, 3 uploader, 4 imdburl
|
|
||||||
search_area: "{{ if .Query.IMDBID }}4{{ else }}{{ end }}{{ if .Query.DoubanID }}1{{ else }}{{ end }}{{ if or .Query.IMDBID .Query.DoubanID }}{{ else }}0{{ end }}"
|
|
||||||
# 0 AND, 1 OR, 2 exact, 3 NOT
|
|
||||||
search_mode: 0
|
|
||||||
sort: "{{ .Config.sort }}"
|
|
||||||
type: "{{ .Config.type }}"
|
|
||||||
notnewword: 1
|
|
||||||
|
|
||||||
rows:
|
|
||||||
selector: table.torrents > tbody > tr:has(table.torrentname)
|
|
||||||
|
|
||||||
fields:
|
|
||||||
category:
|
|
||||||
selector: a[href^="torrents.php?cat="]
|
|
||||||
attribute: href
|
|
||||||
filters:
|
|
||||||
- name: querystring
|
|
||||||
args: cat
|
|
||||||
title_default:
|
|
||||||
selector: a[href^="details.php?id="]
|
|
||||||
title_optional:
|
|
||||||
optional: true
|
|
||||||
selector: a[title][href^="details.php?id="]
|
|
||||||
attribute: title
|
|
||||||
title:
|
|
||||||
text: "{{ if .Result.title_optional }}{{ .Result.title_optional }}{{ else }}{{ .Result.title_default }}{{ end }}"
|
|
||||||
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
|
|
||||||
@@ -1,414 +0,0 @@
|
|||||||
---
|
|
||||||
id: byrutor
|
|
||||||
name: Byrutor
|
|
||||||
description: "Byrutor is a RUSSIAN Public Torrent Tracker for GAMES"
|
|
||||||
language: ru-RU
|
|
||||||
type: public
|
|
||||||
encoding: UTF-8
|
|
||||||
links:
|
|
||||||
- https://thebyrut.org/
|
|
||||||
legacylinks:
|
|
||||||
- https://byrutor.org/
|
|
||||||
- https://byrutdb.org/
|
|
||||||
- https://byrut.org/
|
|
||||||
|
|
||||||
caps:
|
|
||||||
categorymappings:
|
|
||||||
- {id: 1, cat: PC/Games, desc: "Экшены"}
|
|
||||||
- {id: 2, cat: PC/Games, desc: "Приключения"}
|
|
||||||
- {id: 3, cat: PC/Games, desc: "Гонки"}
|
|
||||||
- {id: 4, cat: PC/Games, desc: "RPG"}
|
|
||||||
- {id: 5, cat: PC/Games, desc: "Головоломка"}
|
|
||||||
- {id: 6, cat: PC/Games, desc: "Инди"}
|
|
||||||
- {id: 7, cat: PC/Games, desc: "Стратегии"}
|
|
||||||
- {id: 8, cat: PC/Games, desc: "Выживание"}
|
|
||||||
- {id: 9, cat: PC/Games, desc: "Шутеры"}
|
|
||||||
- {id: 10, cat: PC/Games, desc: "Симуляторы"}
|
|
||||||
- {id: 11, cat: PC/Games, desc: "Спортивные"}
|
|
||||||
- {id: 12, cat: PC/Games, desc: "Аркады"}
|
|
||||||
- {id: 13, cat: PC/Games, desc: "Файтинги"}
|
|
||||||
- {id: 14, cat: PC/Games, desc: "Хорроры"}
|
|
||||||
- {id: 15, cat: PC/Games, desc: "Открытый мир"}
|
|
||||||
- {id: 16, cat: PC/Games, desc: "Аниме"}
|
|
||||||
- {id: 248, cat: PC/Games, desc: "Repack от Chovka"}
|
|
||||||
- {id: 17, cat: PC/Games, desc: "Repack от Механики"}
|
|
||||||
- {id: 20, cat: PC/Games, desc: "RePack от FitGirl"}
|
|
||||||
- {id: 18, cat: PC/Games, desc: "Repack от Xatab"}
|
|
||||||
- {id: 232, cat: PC/Games, desc: "RePack от SpaceX"}
|
|
||||||
- {id: 233, cat: PC/Games, desc: "RePack от Pioneer"}
|
|
||||||
- {id: 19, cat: PC/Games, desc: "Repack от Catalyst"}
|
|
||||||
- {id: 249, cat: PC/Games, desc: "GOG игры"}
|
|
||||||
- {id: 22, cat: PC/Games, desc: "Русская озвучка"}
|
|
||||||
- {id: 25, cat: PC/Games, desc: "Старые игры"}
|
|
||||||
- {id: 26, cat: PC/Games, desc: "Игры с геймпадом"}
|
|
||||||
- {id: 27, cat: PC/Games, desc: "Мультиплеер"}
|
|
||||||
- {id: 28, cat: PC/Games, desc: "На двоих"}
|
|
||||||
- {id: 29, cat: PC/Games, desc: "Рогалик"}
|
|
||||||
- {id: 30, cat: PC/Games, desc: "Слэшер"}
|
|
||||||
- {id: 31, cat: PC/Games, desc: "Стелс"}
|
|
||||||
- {id: 32, cat: PC/Games, desc: "Фэнтези"}
|
|
||||||
- {id: 33, cat: PC/Games, desc: "Платформер"}
|
|
||||||
- {id: 34, cat: PC/Games, desc: "Песочница"}
|
|
||||||
- {id: 35, cat: PC/Games, desc: "Игры в 2D"}
|
|
||||||
- {id: 36, cat: PC/Games, desc: "Казуальная"}
|
|
||||||
- {id: 37, cat: PC/Games, desc: "Point and click"}
|
|
||||||
- {id: 38, cat: PC/Games, desc: "Вид сбоку"}
|
|
||||||
- {id: 39, cat: PC/Games, desc: "Вид сверху"}
|
|
||||||
- {id: 40, cat: PC/Games, desc: "Tower Defense"}
|
|
||||||
- {id: 41, cat: PC/Games, desc: "Экономика"}
|
|
||||||
- {id: 42, cat: PC/Games, desc: "Тактика"}
|
|
||||||
- {id: 43, cat: PC/Games, desc: "Пошаговые стратегии (TBS)"}
|
|
||||||
- {id: 44, cat: PC/Games, desc: "Глобальные стратегии"}
|
|
||||||
- {id: 45, cat: PC/Games, desc: "Стратегии в реальном времени"}
|
|
||||||
- {id: 48, cat: PC/Games, desc: "Для взрослых"}
|
|
||||||
- {id: 49, cat: PC/Games, desc: "От первого лица"}
|
|
||||||
- {id: 50, cat: PC/Games, desc: "От третьего лица"}
|
|
||||||
- {id: 51, cat: PC/Games, desc: "Шутер от первого лица"}
|
|
||||||
- {id: 52, cat: PC/Games, desc: "Шутер от третьего лица"}
|
|
||||||
- {id: 53, cat: PC/Games, desc: "Игры для слабых ПК"}
|
|
||||||
- {id: 58, cat: PC/Games, desc: "Психологический хоррор"}
|
|
||||||
- {id: 59, cat: PC/Games, desc: "Хоррор на выживание"}
|
|
||||||
- {id: 60, cat: PC/Games, desc: "Ролевой экшен"}
|
|
||||||
- {id: 61, cat: PC/Games, desc: "Приключенческий экшен"}
|
|
||||||
- {id: 63, cat: PC/Games, desc: "Головоломка-платформер"}
|
|
||||||
- {id: 64, cat: PC/Games, desc: "Скролл-шутер"}
|
|
||||||
- {id: 65, cat: PC/Games, desc: "Шутер с видом сверху"}
|
|
||||||
- {id: 66, cat: PC/Games, desc: "Градостроительный симулятор"}
|
|
||||||
- {id: 67, cat: PC/Games, desc: "Космический симулятор"}
|
|
||||||
- {id: 68, cat: PC/Games, desc: "Научная фантастика"}
|
|
||||||
- {id: 69, cat: PC/Games, desc: "Ролевая стратегия"}
|
|
||||||
- {id: 70, cat: PC/Games, desc: "Тактическая ролевая игра"}
|
|
||||||
- {id: 71, cat: PC/Games, desc: "Тактика в реальном времени"}
|
|
||||||
- {id: 72, cat: PC/Games, desc: "Японская ролевая игра"}
|
|
||||||
- {id: 73, cat: PC/Games, desc: "Тёмное фэнтези"}
|
|
||||||
- {id: 74, cat: PC/Games, desc: "Сложная"}
|
|
||||||
- {id: 75, cat: PC/Games, desc: "Атмосфера"}
|
|
||||||
- {id: 76, cat: PC/Games, desc: "Смешная"}
|
|
||||||
- {id: 77, cat: PC/Games, desc: "Пиксельная графика"}
|
|
||||||
- {id: 78, cat: PC/Games, desc: "Юмор"}
|
|
||||||
- {id: 79, cat: PC/Games, desc: "Классика"}
|
|
||||||
- {id: 80, cat: PC/Games, desc: "Космос"}
|
|
||||||
- {id: 81, cat: PC/Games, desc: "Зомби"}
|
|
||||||
- {id: 82, cat: PC/Games, desc: "Мрачная"}
|
|
||||||
- {id: 83, cat: PC/Games, desc: "Тайна"}
|
|
||||||
- {id: 84, cat: PC/Games, desc: "Физика"}
|
|
||||||
- {id: 85, cat: PC/Games, desc: "Реализм"}
|
|
||||||
- {id: 86, cat: PC/Games, desc: "Короткая"}
|
|
||||||
- {id: 87, cat: PC/Games, desc: "Строительство"}
|
|
||||||
- {id: 88, cat: PC/Games, desc: "Война"}
|
|
||||||
- {id: 89, cat: PC/Games, desc: "Крафтинг"}
|
|
||||||
- {id: 90, cat: PC/Games, desc: "Будущее"}
|
|
||||||
- {id: 91, cat: PC/Games, desc: "Средневековье"}
|
|
||||||
- {id: 92, cat: PC/Games, desc: "Затягивающая"}
|
|
||||||
- {id: 93, cat: PC/Games, desc: "Строительство базы"}
|
|
||||||
- {id: 94, cat: PC/Games, desc: "Управление ресурсами"}
|
|
||||||
- {id: 95, cat: PC/Games, desc: "Насилие"}
|
|
||||||
- {id: 96, cat: PC/Games, desc: "Для всей семьи"}
|
|
||||||
- {id: 97, cat: PC/Games, desc: "Исследование"}
|
|
||||||
- {id: 98, cat: PC/Games, desc: "Расслабляющая"}
|
|
||||||
- {id: 99, cat: PC/Games, desc: "Реиграбельность"}
|
|
||||||
- {id: 100, cat: PC/Games, desc: "Поиск предметов"}
|
|
||||||
- {id: 101, cat: PC/Games, desc: "Пост-апокалипсис"}
|
|
||||||
- {id: 102, cat: PC/Games, desc: "Вторая мировая война"}
|
|
||||||
- {id: 103, cat: PC/Games, desc: "Военные действия"}
|
|
||||||
- {id: 105, cat: PC/Games, desc: "Вождение"}
|
|
||||||
- {id: 189, cat: PC/Games, desc: "Пошаговая"}
|
|
||||||
- {id: 106, cat: PC/Games, desc: "Пошаговая тактика"}
|
|
||||||
- {id: 328, cat: PC/Games, desc: "2D-платформер"}
|
|
||||||
- {id: 107, cat: PC/Games, desc: "3D-платформер"}
|
|
||||||
- {id: 108, cat: PC/Games, desc: "Одна жизнь"}
|
|
||||||
- {id: 109, cat: PC/Games, desc: "Паркур"}
|
|
||||||
- {id: 110, cat: PC/Games, desc: "Детектив"}
|
|
||||||
- {id: 111, cat: PC/Games, desc: "Криминал"}
|
|
||||||
- {id: 112, cat: PC/Games, desc: "Разрушения"}
|
|
||||||
- {id: 113, cat: PC/Games, desc: "90-е"}
|
|
||||||
- {id: 114, cat: PC/Games, desc: "80-е"}
|
|
||||||
- {id: 115, cat: PC/Games, desc: "Разделение экрана"}
|
|
||||||
- {id: 116, cat: PC/Games, desc: "Военные конфликты"}
|
|
||||||
- {id: 117, cat: PC/Games, desc: "Драконы"}
|
|
||||||
- {id: 118, cat: PC/Games, desc: "Пираты"}
|
|
||||||
- {id: 119, cat: PC/Games, desc: "Ниндзя"}
|
|
||||||
- {id: 120, cat: PC/Games, desc: "Поезда"}
|
|
||||||
- {id: 121, cat: PC/Games, desc: "Динозавры"}
|
|
||||||
- {id: 122, cat: PC/Games, desc: "Раннер"}
|
|
||||||
- {id: 123, cat: PC/Games, desc: "Супергерои"}
|
|
||||||
- {id: 124, cat: PC/Games, desc: "По комиксу"}
|
|
||||||
- {id: 125, cat: PC/Games, desc: "Хакерство"}
|
|
||||||
- {id: 126, cat: PC/Games, desc: "Эмоциональная"}
|
|
||||||
- {id: 127, cat: PC/Games, desc: "Футбол"}
|
|
||||||
- {id: 128, cat: PC/Games, desc: "Рыбалка"}
|
|
||||||
- {id: 129, cat: PC/Games, desc: "Бездорожье"}
|
|
||||||
- {id: 130, cat: PC/Games, desc: "Программирование"}
|
|
||||||
- {id: 131, cat: PC/Games, desc: "Вампиры"}
|
|
||||||
- {id: 132, cat: PC/Games, desc: "Снайпер"}
|
|
||||||
- {id: 133, cat: PC/Games, desc: "Ремейк"}
|
|
||||||
- {id: 134, cat: PC/Games, desc: "Отличный саундтрек"}
|
|
||||||
- {id: 135, cat: PC/Games, desc: "Глубокий сюжет"}
|
|
||||||
- {id: 136, cat: PC/Games, desc: "Женщина-протагонист"}
|
|
||||||
- {id: 137, cat: PC/Games, desc: "Кровь"}
|
|
||||||
- {id: 138, cat: PC/Games, desc: "Киберпанк"}
|
|
||||||
- {id: 139, cat: PC/Games, desc: "Эпичная"}
|
|
||||||
- {id: 140, cat: PC/Games, desc: "Мясо"}
|
|
||||||
- {id: 141, cat: PC/Games, desc: "Нагота"}
|
|
||||||
- {id: 142, cat: PC/Games, desc: "Цветастая"}
|
|
||||||
- {id: 143, cat: PC/Games, desc: "Education"}
|
|
||||||
- {id: 144, cat: PC/Games, desc: "Менеджмент"}
|
|
||||||
- {id: 145, cat: PC/Games, desc: "Упрощённый рогалик"}
|
|
||||||
- {id: 146, cat: PC/Games, desc: "Музыка"}
|
|
||||||
- {id: 147, cat: PC/Games, desc: "Кастомизация персонажа"}
|
|
||||||
- {id: 148, cat: PC/Games, desc: "История"}
|
|
||||||
- {id: 149, cat: PC/Games, desc: "Охота"}
|
|
||||||
- {id: 150, cat: PC/Games, desc: "По мотивам книги"}
|
|
||||||
- {id: 151, cat: PC/Games, desc: "Первая мировая война"}
|
|
||||||
- {id: 152, cat: PC/Games, desc: "Тайм-менеджмент"}
|
|
||||||
- {id: 153, cat: PC/Games, desc: "Психоделия"}
|
|
||||||
- {id: 154, cat: PC/Games, desc: "Наука"}
|
|
||||||
- {id: 155, cat: PC/Games, desc: "Морские бои"}
|
|
||||||
- {id: 156, cat: PC/Games, desc: "Сельское хозяйство"}
|
|
||||||
- {id: 157, cat: PC/Games, desc: "Кинематографичная"}
|
|
||||||
- {id: 158, cat: PC/Games, desc: "Вестерн"}
|
|
||||||
- {id: 159, cat: PC/Games, desc: "Три в ряд"}
|
|
||||||
- {id: 160, cat: PC/Games, desc: "Стимпанк"}
|
|
||||||
- {id: 161, cat: PC/Games, desc: "Редактор уровней"}
|
|
||||||
- {id: 162, cat: PC/Games, desc: "Культовая классика"}
|
|
||||||
- {id: 163, cat: PC/Games, desc: "Минимализм"}
|
|
||||||
- {id: 164, cat: PC/Games, desc: "Shoot'em up"}
|
|
||||||
- {id: 165, cat: PC/Games, desc: "Решения с последствиями"}
|
|
||||||
- {id: 166, cat: PC/Games, desc: "Процедурная генерация"}
|
|
||||||
- {id: 167, cat: PC/Games, desc: "Мультипликация"}
|
|
||||||
- {id: 168, cat: PC/Games, desc: "Мультфильм"}
|
|
||||||
- {id: 169, cat: PC/Games, desc: "Пошаговые сражения"}
|
|
||||||
- {id: 170, cat: PC/Games, desc: "Магия"}
|
|
||||||
- {id: 171, cat: PC/Games, desc: "Изометрия"}
|
|
||||||
- {id: 172, cat: PC/Games, desc: "Карточная игра"}
|
|
||||||
- {id: 173, cat: PC/Games, desc: "Чёрный юмор"}
|
|
||||||
- {id: 174, cat: PC/Games, desc: "Beat'em up"}
|
|
||||||
- {id: 175, cat: PC/Games, desc: "Свобода выбора"}
|
|
||||||
- {id: 176, cat: PC/Games, desc: "Рисованная графика"}
|
|
||||||
- {id: 177, cat: PC/Games, desc: "Инопланетяне"}
|
|
||||||
- {id: 178, cat: PC/Games, desc: "Твин-стик шутер"}
|
|
||||||
- {id: 179, cat: PC/Games, desc: "Настольная игра"}
|
|
||||||
- {id: 180, cat: PC/Games, desc: "Полёты"}
|
|
||||||
- {id: 181, cat: PC/Games, desc: "Лут"}
|
|
||||||
- {id: 183, cat: PC/Games, desc: "MOBA"}
|
|
||||||
- {id: 184, cat: PC/Games, desc: "Демоны"}
|
|
||||||
- {id: 185, cat: PC/Games, desc: "Расследование"}
|
|
||||||
- {id: 186, cat: PC/Games, desc: "Мифология"}
|
|
||||||
- {id: 187, cat: PC/Games, desc: "VR"}
|
|
||||||
- {id: 191, cat: PC/Games, desc: "Психологическая"}
|
|
||||||
- {id: 193, cat: PC/Games, desc: "Подземелье"}
|
|
||||||
- {id: 196, cat: PC/Games, desc: "Шедевр"}
|
|
||||||
- {id: 197, cat: PC/Games, desc: "Ретро"}
|
|
||||||
- {id: 198, cat: PC/Games, desc: "Олдскул"}
|
|
||||||
- {id: 251, cat: PC/Games, desc: "Визуальная новелла"}
|
|
||||||
- {id: 252, cat: PC/Games, desc: "Образование"}
|
|
||||||
- {id: 253, cat: PC/Games, desc: "Партийная RPG"}
|
|
||||||
- {id: 254, cat: PC/Games, desc: "Симулятор ходьбы"}
|
|
||||||
- {id: 255, cat: PC/Games, desc: "Симулятор жизни"}
|
|
||||||
- {id: 256, cat: PC/Games, desc: "Автосимулятор"}
|
|
||||||
- {id: 257, cat: PC/Games, desc: "Ритм-игра"}
|
|
||||||
- {id: 258, cat: PC/Games, desc: "Королевская битва"}
|
|
||||||
- {id: 259, cat: PC/Games, desc: "Симулятор колонии"}
|
|
||||||
- {id: 260, cat: PC/Games, desc: "Симулятор фермы"}
|
|
||||||
- {id: 261, cat: PC/Games, desc: "Иммерсивный симулятор"}
|
|
||||||
- {id: 262, cat: PC/Games, desc: "Кликер"}
|
|
||||||
- {id: 263, cat: PC/Games, desc: "Арена-шутер"}
|
|
||||||
- {id: 264, cat: PC/Games, desc: "Платформер на точность"}
|
|
||||||
- {id: 265, cat: PC/Games, desc: "Метроидвания"}
|
|
||||||
- {id: 266, cat: PC/Games, desc: "Похожа на Dark Souls"}
|
|
||||||
- {id: 267, cat: PC/Games, desc: "Коллектатон"}
|
|
||||||
- {id: 268, cat: PC/Games, desc: "Idle-игра"}
|
|
||||||
- {id: 269, cat: PC/Games, desc: "Поиск существ"}
|
|
||||||
- {id: 270, cat: PC/Games, desc: "Зрелищные сражения"}
|
|
||||||
- {id: 271, cat: PC/Games, desc: "Пасьянс"}
|
|
||||||
- {id: 272, cat: PC/Games, desc: "Боевые гонки"}
|
|
||||||
- {id: 273, cat: PC/Games, desc: "Лутер-шутер"}
|
|
||||||
- {id: 274, cat: PC/Games, desc: "Политический симулятор"}
|
|
||||||
- {id: 275, cat: PC/Games, desc: "Традиционный рогалик"}
|
|
||||||
- {id: 276, cat: PC/Games, desc: "Милая"}
|
|
||||||
- {id: 277, cat: PC/Games, desc: "Стилизация"}
|
|
||||||
- {id: 278, cat: PC/Games, desc: "Псевдотрёхмерность"}
|
|
||||||
- {id: 279, cat: PC/Games, desc: "Абстрактная"}
|
|
||||||
- {id: 280, cat: PC/Games, desc: "Красивая"}
|
|
||||||
- {id: 281, cat: PC/Games, desc: "Воксельная графика"}
|
|
||||||
- {id: 282, cat: PC/Games, desc: "Логика"}
|
|
||||||
- {id: 283, cat: PC/Games, desc: "Драма"}
|
|
||||||
- {id: 284, cat: PC/Games, desc: "Романтика"}
|
|
||||||
- {id: 285, cat: PC/Games, desc: "Сюрреалистичная"}
|
|
||||||
- {id: 286, cat: PC/Games, desc: "Мемы"}
|
|
||||||
- {id: 287, cat: PC/Games, desc: "Природа"}
|
|
||||||
- {id: 288, cat: PC/Games, desc: "Роботы"}
|
|
||||||
- {id: 289, cat: PC/Games, desc: "Проработанная вселенная"}
|
|
||||||
- {id: 290, cat: PC/Games, desc: "Триллер"}
|
|
||||||
- {id: 291, cat: PC/Games, desc: "Антиутопия"}
|
|
||||||
- {id: 292, cat: PC/Games, desc: "Сверхъестественное"}
|
|
||||||
- {id: 293, cat: PC/Games, desc: "Альтернативная история"}
|
|
||||||
- {id: 294, cat: PC/Games, desc: "Сражения на мечах"}
|
|
||||||
- {id: 295, cat: PC/Games, desc: "Котики"}
|
|
||||||
- {id: 296, cat: PC/Games, desc: "Америка"}
|
|
||||||
- {id: 297, cat: PC/Games, desc: "Иллюминаты"}
|
|
||||||
- {id: 298, cat: PC/Games, desc: "Капитализм"}
|
|
||||||
- {id: 299, cat: PC/Games, desc: "Заговор"}
|
|
||||||
- {id: 300, cat: PC/Games, desc: "Сатира"}
|
|
||||||
- {id: 301, cat: PC/Games, desc: "Готика"}
|
|
||||||
- {id: 303, cat: PC/Games, desc: "Шахты"}
|
|
||||||
- {id: 304, cat: PC/Games, desc: "Боевые искусства"}
|
|
||||||
- {id: 305, cat: PC/Games, desc: "Танки"}
|
|
||||||
- {id: 306, cat: PC/Games, desc: "Подводный мир"}
|
|
||||||
- {id: 307, cat: PC/Games, desc: "Кулинария"}
|
|
||||||
- {id: 308, cat: PC/Games, desc: "Флот"}
|
|
||||||
- {id: 309, cat: PC/Games, desc: "Транспорт"}
|
|
||||||
- {id: 311, cat: PC/Games, desc: "Марс"}
|
|
||||||
- {id: 312, cat: PC/Games, desc: "Оборотни"}
|
|
||||||
- {id: 313, cat: PC/Games, desc: "Бой"}
|
|
||||||
- {id: 314, cat: PC/Games, desc: "Несколько концовок"}
|
|
||||||
- {id: 315, cat: PC/Games, desc: "Игра против ИИ"}
|
|
||||||
- {id: 316, cat: PC/Games, desc: "Линейная"}
|
|
||||||
- {id: 192, cat: PC/Games, desc: "Нелинейная"}
|
|
||||||
- {id: 317, cat: PC/Games, desc: "Повествовательная"}
|
|
||||||
- {id: 318, cat: PC/Games, desc: "Набор очков"}
|
|
||||||
- {id: 319, cat: PC/Games, desc: "Менеджмент инвентаря"}
|
|
||||||
- {id: 320, cat: PC/Games, desc: "Перемещение по сетке"}
|
|
||||||
- {id: 321, cat: PC/Games, desc: "Разделение на классы"}
|
|
||||||
- {id: 322, cat: PC/Games, desc: "Кастомизация оружия"}
|
|
||||||
- {id: 323, cat: PC/Games, desc: "Построение колоды"}
|
|
||||||
- {id: 324, cat: PC/Games, desc: "Гонки на выживание"}
|
|
||||||
- {id: 325, cat: PC/Games, desc: "Свобода движения"}
|
|
||||||
- {id: 326, cat: PC/Games, desc: "Замедление времени"}
|
|
||||||
- {id: 327, cat: PC/Games, desc: "Динамическое повествование"}
|
|
||||||
- {id: 238, cat: PC/Games, desc: "Игры 2024 года"}
|
|
||||||
- {id: 237, cat: PC/Games, desc: "Игры 2023 года"}
|
|
||||||
- {id: 236, cat: PC/Games, desc: "Игры 2022 года"}
|
|
||||||
- {id: 235, cat: PC/Games, desc: "Игры 2021 года"}
|
|
||||||
- {id: 199, cat: PC/Games, desc: "Игры 2020 года"}
|
|
||||||
- {id: 200, cat: PC/Games, desc: "Игры 2019 года"}
|
|
||||||
- {id: 201, cat: PC/Games, desc: "Игры 2018 года"}
|
|
||||||
- {id: 202, cat: PC/Games, desc: "Игры 2017 года"}
|
|
||||||
- {id: 203, cat: PC/Games, desc: "Игры 2016 года"}
|
|
||||||
- {id: 204, cat: PC/Games, desc: "Игры 2015 года"}
|
|
||||||
- {id: 205, cat: PC/Games, desc: "Игры 2014 года"}
|
|
||||||
- {id: 206, cat: PC/Games, desc: "Игры 2013 года"}
|
|
||||||
- {id: 207, cat: PC/Games, desc: "Игры 2012 года"}
|
|
||||||
- {id: 208, cat: PC/Games, desc: "Игры 2011 года"}
|
|
||||||
- {id: 209, cat: PC/Games, desc: "Игры 2010 года"}
|
|
||||||
- {id: 210, cat: PC/Games, desc: "Игры 2009 года"}
|
|
||||||
- {id: 211, cat: PC/Games, desc: "Игры 2008 года"}
|
|
||||||
- {id: 212, cat: PC/Games, desc: "Игры 2007 года"}
|
|
||||||
- {id: 213, cat: PC/Games, desc: "Игры 2006 года"}
|
|
||||||
- {id: 214, cat: PC/Games, desc: "Игры 2005 года"}
|
|
||||||
- {id: 215, cat: PC/Games, desc: "Игры 2004 года"}
|
|
||||||
- {id: 216, cat: PC/Games, desc: "Игры 2003 года"}
|
|
||||||
- {id: 217, cat: PC/Games, desc: "Игры 2002 года"}
|
|
||||||
- {id: 218, cat: PC/Games, desc: "Игры 2001 года"}
|
|
||||||
- {id: 219, cat: PC/Games, desc: "Игры 2000 года"}
|
|
||||||
- {id: 220, cat: PC/Games, desc: "Игры 1999 года"}
|
|
||||||
- {id: 221, cat: PC/Games, desc: "Игры 1998 года"}
|
|
||||||
- {id: 222, cat: PC/Games, desc: "Игры 1997 года"}
|
|
||||||
- {id: 223, cat: PC/Games, desc: "Игры 1996 года"}
|
|
||||||
- {id: 224, cat: PC/Games, desc: "Игры 1995 года"}
|
|
||||||
- {id: 225, cat: PC/Games, desc: "Игры 1994 года"}
|
|
||||||
- {id: 226, cat: PC/Games, desc: "Игры 1993 года"}
|
|
||||||
- {id: 227, cat: PC/Games, desc: "Игры 1992 года"}
|
|
||||||
- {id: 228, cat: PC/Games, desc: "Игры 1991 года"}
|
|
||||||
- {id: 229, cat: PC/Games, desc: "Игры 1990 года"}
|
|
||||||
- {id: 231, cat: PC/Games, desc: "Дополнения"}
|
|
||||||
- {id: 250, cat: PC/Games, desc: "Модификации"}
|
|
||||||
- {id: 23, cat: PC/Games, desc: "Ранний Доступ"}
|
|
||||||
- {id: 246, cat: PC/Games, desc: "Обновление"}
|
|
||||||
- {id: 230, cat: PC/Games, desc: "Все Топ игры"}
|
|
||||||
- {id: 329, cat: PC/Games, desc: "Актуальные Топ игры"}
|
|
||||||
- {id: 24, cat: PC/Games, desc: "Новинка"}
|
|
||||||
- {id: 194, cat: PC/Games, desc: "Игры по сети"}
|
|
||||||
|
|
||||||
modes:
|
|
||||||
search: [q]
|
|
||||||
|
|
||||||
settings: []
|
|
||||||
|
|
||||||
download:
|
|
||||||
selectors:
|
|
||||||
- selector: a.itemdown_games
|
|
||||||
attribute: href
|
|
||||||
|
|
||||||
search:
|
|
||||||
# keywords (article titles only search)
|
|
||||||
# do=search&subaction=search&story=five+freddy&titleonly=3&searchdate=0&sortby=date&resorder=desc&catlist[]=1&catlist[]=2&catlist[]=3
|
|
||||||
# keywordless (article body search) query=game
|
|
||||||
# do=search&subaction=search&story=game&titleonly=0&searchdate=0&sortby=date&resorder=desc&catlist[]=0
|
|
||||||
paths:
|
|
||||||
- path: index.php
|
|
||||||
inputs:
|
|
||||||
$raw: "{{ range .Categories }}catlist[]={{.}}&{{end}}"
|
|
||||||
do: search
|
|
||||||
subaction: search
|
|
||||||
search_start: 0
|
|
||||||
full_search: 1
|
|
||||||
result_from: 1
|
|
||||||
showposts: 1
|
|
||||||
# 0 article, 1 comments, 2 static pages, 3 article titles
|
|
||||||
titleonly: "{{ if .Keywords }}3{{ else }}0{{ end }}"
|
|
||||||
searchdate: 0
|
|
||||||
story: "{{ if .Keywords }}{{ .Keywords }}{{ else }}game{{ end }}"
|
|
||||||
sortby: date
|
|
||||||
resorder: desc
|
|
||||||
|
|
||||||
rows:
|
|
||||||
# results without sizes are just pre-release announcements
|
|
||||||
selector: div.short_search:has(div.shor_subtitles span:nth-child(2):contains(" "))
|
|
||||||
|
|
||||||
fields:
|
|
||||||
category:
|
|
||||||
text: 1
|
|
||||||
year:
|
|
||||||
selector: div.shor_subtitles span
|
|
||||||
filters:
|
|
||||||
- name: regexp
|
|
||||||
args: (\d+)
|
|
||||||
title:
|
|
||||||
selector: div.short_titles > a
|
|
||||||
filters:
|
|
||||||
- name: append
|
|
||||||
args: " [{{ .Result.year }}]"
|
|
||||||
details:
|
|
||||||
selector: div.short_titles > a
|
|
||||||
attribute: href
|
|
||||||
download:
|
|
||||||
selector: div.short_titles > a
|
|
||||||
attribute: href
|
|
||||||
poster:
|
|
||||||
selector: img
|
|
||||||
attribute: src
|
|
||||||
date:
|
|
||||||
selector: img
|
|
||||||
attribute: src
|
|
||||||
filters:
|
|
||||||
- name: regexp
|
|
||||||
args: ".*/(\\d{4}-\\d{2})/.*"
|
|
||||||
- name: dateparse
|
|
||||||
args: "yyyy-MM"
|
|
||||||
seeders:
|
|
||||||
text: 1
|
|
||||||
leechers:
|
|
||||||
text: 1
|
|
||||||
size_rus:
|
|
||||||
selector: div.shor_subtitles span:nth-child(2):contains("Б")
|
|
||||||
optional: true
|
|
||||||
filters:
|
|
||||||
- name: replace
|
|
||||||
args: ["ТБ", "TB"]
|
|
||||||
- name: replace
|
|
||||||
args: ["ГБ", "GB"]
|
|
||||||
- name: replace
|
|
||||||
args: ["МБ", "MB"]
|
|
||||||
- name: replace
|
|
||||||
args: ["КБ", "KB"]
|
|
||||||
size_eng:
|
|
||||||
selector: div.shor_subtitles span:nth-child(2):contains("B")
|
|
||||||
optional: true
|
|
||||||
size:
|
|
||||||
text: "{{ if or .Result.size_rus .Result.size_eng }}{{ or .Result.size_rus .Result.size_eng }}{{ else }}0 B{{ end }}"
|
|
||||||
downloadvolumefactor:
|
|
||||||
text: 0
|
|
||||||
uploadvolumefactor:
|
|
||||||
text: 1
|
|
||||||
# engine n/a
|
|
||||||
@@ -1,197 +0,0 @@
|
|||||||
---
|
|
||||||
id: carpt
|
|
||||||
name: CarPT
|
|
||||||
description: "CarPT is a CHINESE Private Torrent Tracker for HD MOVIES / TV"
|
|
||||||
language: zh-CN
|
|
||||||
type: private
|
|
||||||
encoding: UTF-8
|
|
||||||
links:
|
|
||||||
- https://carpt.net/
|
|
||||||
|
|
||||||
caps:
|
|
||||||
categorymappings:
|
|
||||||
- {id: 401, cat: Movies, desc: "Movies/电影"}
|
|
||||||
- {id: 402, cat: TV, desc: "TV Series/连续剧"}
|
|
||||||
- {id: 403, cat: TV/Anime, desc: "Animations/动漫"}
|
|
||||||
- {id: 404, cat: TV/Documentary, desc: "Documentaries/纪录片"}
|
|
||||||
- {id: 405, cat: TV, desc: "TV Shows/综艺"}
|
|
||||||
- {id: 406, cat: Audio, desc: "Music/音乐"}
|
|
||||||
- {id: 407, cat: Other, desc: "Misc/其他"}
|
|
||||||
|
|
||||||
modes:
|
|
||||||
search: [q]
|
|
||||||
tv-search: [q, season, ep, imdbid]
|
|
||||||
movie-search: [q, imdbid]
|
|
||||||
music-search: [q]
|
|
||||||
|
|
||||||
settings:
|
|
||||||
- name: username
|
|
||||||
type: text
|
|
||||||
label: Username
|
|
||||||
- name: password
|
|
||||||
type: password
|
|
||||||
label: Password
|
|
||||||
- name: 2facode
|
|
||||||
type: text
|
|
||||||
label: 2FA code
|
|
||||||
- name: info_2fa
|
|
||||||
type: info
|
|
||||||
label: "About 2FA code"
|
|
||||||
default: "Only fill in the <b>2FA code</b> box if you have enabled <b>2FA</b> on the CarPT Web Site. Otherwise just leave it empty."
|
|
||||||
- name: freeleech
|
|
||||||
type: checkbox
|
|
||||||
label: Search freeleech only
|
|
||||||
default: false
|
|
||||||
- name: sort
|
|
||||||
type: select
|
|
||||||
label: Sort requested from site
|
|
||||||
default: 4
|
|
||||||
options:
|
|
||||||
4: created
|
|
||||||
7: seeders
|
|
||||||
5: size
|
|
||||||
1: title
|
|
||||||
- name: type
|
|
||||||
type: select
|
|
||||||
label: Order requested from site
|
|
||||||
default: desc
|
|
||||||
options:
|
|
||||||
desc: desc
|
|
||||||
asc: asc
|
|
||||||
- name: info_tpp
|
|
||||||
type: info
|
|
||||||
label: Results Per Page
|
|
||||||
default: For best results, change the <b>Torrents per page:</b> setting to <b>100</b> on your account profile.
|
|
||||||
- name: info_activity
|
|
||||||
type: info
|
|
||||||
label: Account Inactivity
|
|
||||||
default: "Account Retention Rules:<ol><li>Extreme User and above will be retained forever</li><li> Elite Users and above will not be banned after parking (in the Control Panel)</li><li>Users with a parked account will be banned if they do not log in for 360 consecutive days</li><li>Users with a non-parked account will be banned if they do not log in for 150 consecutive days</li><li> Users with no traffic (i.e., upload/download data is 0) who do not log in for 60 consecutive days will be banned.</li></ol>"
|
|
||||||
|
|
||||||
login:
|
|
||||||
path: login.php
|
|
||||||
method: form
|
|
||||||
form: form[action="takelogin.php"]
|
|
||||||
captcha:
|
|
||||||
type: image
|
|
||||||
selector: img[alt="CAPTCHA"]
|
|
||||||
input: imagestring
|
|
||||||
inputs:
|
|
||||||
secret: ""
|
|
||||||
username: "{{ .Config.username }}"
|
|
||||||
password: "{{ .Config.password }}"
|
|
||||||
two_step_code: "{{ .Config.2facode }}"
|
|
||||||
logout: ""
|
|
||||||
securelogin: ""
|
|
||||||
ssl: yes
|
|
||||||
trackerssl: yes
|
|
||||||
error:
|
|
||||||
- selector: td.embedded:has(h2:contains("失败"))
|
|
||||||
test:
|
|
||||||
path: index.php
|
|
||||||
selector: a[href="logout.php"]
|
|
||||||
|
|
||||||
search:
|
|
||||||
paths:
|
|
||||||
- path: torrents.php
|
|
||||||
inputs:
|
|
||||||
$raw: "{{ range .Categories }}cat{{.}}=1&{{end}}"
|
|
||||||
search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}"
|
|
||||||
# 0 incldead, 1 active, 2 dead
|
|
||||||
incldead: 0
|
|
||||||
# 0 all, 1 normal, 2 free, 3 2x, 4 2xfree, 5 50%, 6 2x50%, 7 30%
|
|
||||||
spstate: "{{ if .Config.freeleech }}2{{ else }}0{{ end }}"
|
|
||||||
# 0 title, 1 descr, 3 uploader, 4 imdburl
|
|
||||||
search_area: "{{ if .Query.IMDBID }}4{{ else }}0{{ end }}"
|
|
||||||
# 0 AND, 1 OR, 2 exact
|
|
||||||
search_mode: 0
|
|
||||||
sort: "{{ .Config.sort }}"
|
|
||||||
type: "{{ .Config.type }}"
|
|
||||||
notnewword: 1
|
|
||||||
|
|
||||||
rows:
|
|
||||||
selector: table.torrents > tbody > tr:has(a[href^="details.php?id="])
|
|
||||||
|
|
||||||
fields:
|
|
||||||
category:
|
|
||||||
selector: a[href^="?cat="]
|
|
||||||
attribute: href
|
|
||||||
filters:
|
|
||||||
- name: querystring
|
|
||||||
args: cat
|
|
||||||
title_default:
|
|
||||||
selector: a[href^="details.php?id="]
|
|
||||||
title_optional:
|
|
||||||
optional: true
|
|
||||||
selector: a[title][href^="details.php?id="]
|
|
||||||
attribute: title
|
|
||||||
title:
|
|
||||||
text: "{{ if .Result.title_optional }}{{ .Result.title_optional }}{{ else }}{{ .Result.title_default }}{{ end }}"
|
|
||||||
details:
|
|
||||||
selector: a[href^="details.php?id="]
|
|
||||||
attribute: href
|
|
||||||
download:
|
|
||||||
selector: a[href^="download.php?id="]
|
|
||||||
attribute: href
|
|
||||||
poster:
|
|
||||||
selector: img[data-src]
|
|
||||||
attribute: data-src
|
|
||||||
imdbid:
|
|
||||||
# site currently only has a badge and rating, the id is not present. just in case a future update.
|
|
||||||
selector: a[href*="imdb.com/title/tt"]
|
|
||||||
attribute: href
|
|
||||||
doubanid:
|
|
||||||
# site currently only has a badge and rating, the id is not present. just in case a future update.
|
|
||||||
selector: a[href*="movie.douban.com/subject/"]
|
|
||||||
attribute: href
|
|
||||||
date_elapsed:
|
|
||||||
# time type: time elapsed (default)
|
|
||||||
selector: td.rowfollow:nth-child(4) > span[title]
|
|
||||||
attribute: title
|
|
||||||
optional: true
|
|
||||||
filters:
|
|
||||||
- name: append
|
|
||||||
args: " +08:00" # CST
|
|
||||||
- name: dateparse
|
|
||||||
args: "yyyy-MM-dd HH:mm:ss zzz"
|
|
||||||
date_added:
|
|
||||||
# time added
|
|
||||||
selector: td.rowfollow:nth-child(4):not(:has(span))
|
|
||||||
optional: true
|
|
||||||
filters:
|
|
||||||
- name: append
|
|
||||||
args: " +08:00" # CST
|
|
||||||
- name: dateparse
|
|
||||||
args: "yyyy-MM-ddHH:mm:ss zzz"
|
|
||||||
date:
|
|
||||||
text: "{{ if or .Result.date_elapsed .Result.date_added }}{{ or .Result.date_elapsed .Result.date_added }}{{ else }}now{{ end }}"
|
|
||||||
size:
|
|
||||||
selector: td.rowfollow:nth-child(5)
|
|
||||||
seeders:
|
|
||||||
selector: td.rowfollow:nth-child(6)
|
|
||||||
leechers:
|
|
||||||
selector: td.rowfollow:nth-child(7)
|
|
||||||
grabs:
|
|
||||||
selector: td.rowfollow:nth-child(8)
|
|
||||||
downloadvolumefactor:
|
|
||||||
case:
|
|
||||||
img.pro_free: 0
|
|
||||||
img.pro_free2up: 0
|
|
||||||
img.pro_50pctdown: 0.5
|
|
||||||
img.pro_50pctdown2up: 0.5
|
|
||||||
img.pro_30pctdown: 0.3
|
|
||||||
"*": 1
|
|
||||||
uploadvolumefactor:
|
|
||||||
case:
|
|
||||||
img.pro_50pctdown2up: 2
|
|
||||||
img.pro_free2up: 2
|
|
||||||
img.pro_2up: 2
|
|
||||||
"*": 1
|
|
||||||
minimumratio:
|
|
||||||
text: 1.0
|
|
||||||
minimumseedtime:
|
|
||||||
# 1 day (as seconds = 24 x 60 x 60)
|
|
||||||
text: 86400
|
|
||||||
description:
|
|
||||||
selector: td.rowfollow:nth-child(2)
|
|
||||||
remove: a, b, font, img, span
|
|
||||||
# NexusPHP vv1.8.11 2024-03-11
|
|
||||||
@@ -1,181 +0,0 @@
|
|||||||
---
|
|
||||||
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_optional:
|
|
||||||
optional: true
|
|
||||||
selector: a[title][href^="details.php?id="]
|
|
||||||
attribute: title
|
|
||||||
title:
|
|
||||||
text: "{{ if .Result.title_optional }}{{ .Result.title_optional }}{{ else }}{{ .Result.title_default }}{{ end }}"
|
|
||||||
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
|
|
||||||
@@ -1,173 +0,0 @@
|
|||||||
---
|
|
||||||
id: chdbits
|
|
||||||
name: CHDBits
|
|
||||||
description: "CHDBits is a CHINESE Private Torrent Tracker for HD MOVIES / TV"
|
|
||||||
language: zh-CN
|
|
||||||
type: private
|
|
||||||
encoding: UTF-8
|
|
||||||
links:
|
|
||||||
- https://ptchdbits.co/
|
|
||||||
legacylinks:
|
|
||||||
- https://chdbits.co/
|
|
||||||
|
|
||||||
caps:
|
|
||||||
categorymappings:
|
|
||||||
- {id: 401, cat: Movies, desc: "Movies"}
|
|
||||||
- {id: 404, cat: TV/Documentary, desc: "Documentaries"}
|
|
||||||
- {id: 405, cat: TV/Anime, desc: "Animations"}
|
|
||||||
- {id: 402, cat: TV, desc: "TV Series"}
|
|
||||||
- {id: 403, cat: TV, desc: "TV Shows"}
|
|
||||||
- {id: 406, cat: Audio/Video, desc: "Music Videos"}
|
|
||||||
- {id: 407, cat: TV/Sport, desc: "Sports"}
|
|
||||||
- {id: 409, cat: Other, desc: "Misc"}
|
|
||||||
- {id: 408, cat: Audio, desc: "HQ Audio"}
|
|
||||||
|
|
||||||
modes:
|
|
||||||
search: [q]
|
|
||||||
tv-search: [q, season, ep]
|
|
||||||
movie-search: [q]
|
|
||||||
music-search: [q]
|
|
||||||
book-search: [q]
|
|
||||||
|
|
||||||
settings:
|
|
||||||
- name: username
|
|
||||||
type: text
|
|
||||||
label: Username
|
|
||||||
- name: password
|
|
||||||
type: password
|
|
||||||
label: Password
|
|
||||||
- name: freeleech
|
|
||||||
type: checkbox
|
|
||||||
label: Search freeleech only
|
|
||||||
default: false
|
|
||||||
- name: info_tpp
|
|
||||||
type: info
|
|
||||||
label: Results Per Page
|
|
||||||
default: For best results, change the <b>Torrents per page:</b> setting to <b>100</b> on your account profile.
|
|
||||||
- name: sort
|
|
||||||
type: select
|
|
||||||
label: Sort requested from site
|
|
||||||
default: 4
|
|
||||||
options:
|
|
||||||
4: created
|
|
||||||
7: seeders
|
|
||||||
5: size
|
|
||||||
1: title
|
|
||||||
- name: type
|
|
||||||
type: select
|
|
||||||
label: Order requested from site
|
|
||||||
default: desc
|
|
||||||
options:
|
|
||||||
desc: desc
|
|
||||||
asc: asc
|
|
||||||
|
|
||||||
login:
|
|
||||||
path: login.php
|
|
||||||
method: form
|
|
||||||
form: form[action="takelogin.php"]
|
|
||||||
captcha:
|
|
||||||
type: image
|
|
||||||
selector: img[alt="CAPTCHA"]
|
|
||||||
input: imagestring
|
|
||||||
inputs:
|
|
||||||
username: "{{ .Config.username }}"
|
|
||||||
password: "{{ .Config.password }}"
|
|
||||||
logout: ""
|
|
||||||
securelogin: ""
|
|
||||||
ssl: yes
|
|
||||||
trackerssl: yes
|
|
||||||
error:
|
|
||||||
- selector: td.embedded:has(h2:contains("失败"))
|
|
||||||
- selector: td.embedded:has(h2:contains("failed"))
|
|
||||||
test:
|
|
||||||
path: torrents.php
|
|
||||||
selector: a[href*="logout.php"]
|
|
||||||
|
|
||||||
search:
|
|
||||||
paths:
|
|
||||||
- path: torrents.php
|
|
||||||
inputs:
|
|
||||||
$raw: "{{ range .Categories }}cat{{.}}=1&{{end}}"
|
|
||||||
search: "{{ .Keywords }}"
|
|
||||||
incldead: 1
|
|
||||||
# 0 all, 1 normal, 2 free, 3 2x, 4 2xfree, 5 50%, 6 2x50%, 7 30%
|
|
||||||
spstate: "{{ if .Config.freeleech }}2{{ else }}0{{ end }}"
|
|
||||||
# 0 title, 1 descr, 3 uploader, 4 imdburl
|
|
||||||
search_area: "{{ if .Query.IMDBID }}4{{ else }}0{{ end }}"
|
|
||||||
# 0 AND, 1 OR, 2 exact
|
|
||||||
search_mode: 0
|
|
||||||
sort: "{{ .Config.sort }}"
|
|
||||||
type: "{{ .Config.type }}"
|
|
||||||
notnewword: 1
|
|
||||||
|
|
||||||
rows:
|
|
||||||
selector: table.torrents > tbody > tr:has(table.torrentname)
|
|
||||||
|
|
||||||
fields:
|
|
||||||
category:
|
|
||||||
selector: a[href^="?cat="]
|
|
||||||
attribute: href
|
|
||||||
filters:
|
|
||||||
- name: querystring
|
|
||||||
args: cat
|
|
||||||
title_default:
|
|
||||||
selector: a[href^="details.php?id="]
|
|
||||||
title_optional:
|
|
||||||
optional: true
|
|
||||||
selector: a[title][href^="details.php?id="]
|
|
||||||
attribute: title
|
|
||||||
title:
|
|
||||||
text: "{{ if .Result.title_optional }}{{ .Result.title_optional }}{{ else }}{{ .Result.title_default }}{{ end }}"
|
|
||||||
details:
|
|
||||||
selector: a[href^="details.php?id="]
|
|
||||||
attribute: href
|
|
||||||
download:
|
|
||||||
selector: a[href^="download.php?id="]
|
|
||||||
attribute: href
|
|
||||||
size:
|
|
||||||
selector: td:nth-child(5)
|
|
||||||
grabs:
|
|
||||||
selector: td:nth-child(8)
|
|
||||||
seeders:
|
|
||||||
selector: td:nth-child(6)
|
|
||||||
leechers:
|
|
||||||
selector: td:nth-child(7)
|
|
||||||
date_elapsed:
|
|
||||||
# time type: time elapsed (default)
|
|
||||||
selector: td:nth-child(4) > span[title]
|
|
||||||
attribute: title
|
|
||||||
optional: true
|
|
||||||
filters:
|
|
||||||
- name: append
|
|
||||||
args: " +08:00" # CST
|
|
||||||
- name: dateparse
|
|
||||||
args: "yyyy-MM-dd HH:mm:ss zzz"
|
|
||||||
date_added:
|
|
||||||
# time added
|
|
||||||
selector: td:nth-child(4):not(:has(span))
|
|
||||||
optional: true
|
|
||||||
filters:
|
|
||||||
- name: append
|
|
||||||
args: " +08:00" # CST
|
|
||||||
- name: dateparse
|
|
||||||
args: "yyyy-MM-ddHH:mm:ss zzz"
|
|
||||||
date:
|
|
||||||
text: "{{ if or .Result.date_elapsed .Result.date_added }}{{ or .Result.date_elapsed .Result.date_added }}{{ else }}now{{ end }}"
|
|
||||||
downloadvolumefactor:
|
|
||||||
case:
|
|
||||||
img.pro_free: 0
|
|
||||||
img.pro_free2up: 0
|
|
||||||
img.pro_50pctdown: 0.5
|
|
||||||
img.pro_50pctdown2up: 0.5
|
|
||||||
img.pro_30pctdown: 0.3
|
|
||||||
"*": 1
|
|
||||||
uploadvolumefactor:
|
|
||||||
case:
|
|
||||||
img.pro_50pctdown2up: 2
|
|
||||||
img.pro_free2up: 2
|
|
||||||
img.pro_2up: 2
|
|
||||||
"*": 1
|
|
||||||
description:
|
|
||||||
selector: td:nth-child(2)
|
|
||||||
remove: a, b, font, img, span
|
|
||||||
# NexusPHP 73f201530b 2023-08-07
|
|
||||||
@@ -1,178 +0,0 @@
|
|||||||
---
|
|
||||||
id: cinematik
|
|
||||||
name: Cinematik
|
|
||||||
description: "A tracker for full BD and DVD discs of non-mainstream movies, niche cinema and arthouse."
|
|
||||||
language: en-US
|
|
||||||
type: private
|
|
||||||
encoding: UTF-8
|
|
||||||
links:
|
|
||||||
- https://cinematik.net/
|
|
||||||
legacylinks:
|
|
||||||
- https://www.cinematik.net/
|
|
||||||
|
|
||||||
caps:
|
|
||||||
categorymappings:
|
|
||||||
- {id: 1, cat: Movies, desc: "Film"}
|
|
||||||
- {id: 2, cat: TV, desc: "TV"}
|
|
||||||
- {id: 3, cat: Movies/Foreign, desc: "Foreign Film"}
|
|
||||||
- {id: 4, cat: TV/Foreign, desc: "Foreign TV"}
|
|
||||||
- {id: 5, cat: Movies/Other, desc: "Opera & Musical"}
|
|
||||||
- {id: 6, cat: Movies/Foreign, desc: "Asian Film"}
|
|
||||||
|
|
||||||
modes:
|
|
||||||
search: [q]
|
|
||||||
tv-search: [q, season, ep, imdbid, tvdbid, tmdbid]
|
|
||||||
movie-search: [q, imdbid, tmdbid]
|
|
||||||
|
|
||||||
settings:
|
|
||||||
- name: apikey
|
|
||||||
type: text
|
|
||||||
label: APIKey
|
|
||||||
- name: info_key
|
|
||||||
type: info
|
|
||||||
label: About your API key
|
|
||||||
default: "Find or Generate a new API Token by accessing your <a href=\"https://cinematik.net/\" target=\"_blank\">Cinematik</a> account <i>My Settings</i> page and clicking on the <b>API Key</b> tab."
|
|
||||||
- name: freeleech
|
|
||||||
type: checkbox
|
|
||||||
label: Search freeleech only
|
|
||||||
default: false
|
|
||||||
- name: single_file_release_use_filename
|
|
||||||
type: checkbox
|
|
||||||
label: Use filename as title for single file releases
|
|
||||||
default: true
|
|
||||||
- name: sort
|
|
||||||
type: select
|
|
||||||
label: Sort requested from site
|
|
||||||
default: created_at
|
|
||||||
options:
|
|
||||||
created_at: created
|
|
||||||
seeders: seeders
|
|
||||||
size: size
|
|
||||||
name: title
|
|
||||||
- name: type
|
|
||||||
type: select
|
|
||||||
label: Order requested from site
|
|
||||||
default: desc
|
|
||||||
options:
|
|
||||||
desc: desc
|
|
||||||
asc: asc
|
|
||||||
- name: info_activity
|
|
||||||
type: info
|
|
||||||
label: Account Inactivity
|
|
||||||
default: "With 2FA enabled, there are no specific requirements for uploading, downloading, or posting. Your membership continues based on the staff's fair assessment of your overall activity and contributions."
|
|
||||||
|
|
||||||
login:
|
|
||||||
path: /api/torrents
|
|
||||||
method: get
|
|
||||||
inputs: {} # TODO: remove in v10
|
|
||||||
error:
|
|
||||||
- selector: a[href*="/login"]
|
|
||||||
message:
|
|
||||||
text: "The API key was not accepted by {{ .Config.sitelink }}."
|
|
||||||
|
|
||||||
search:
|
|
||||||
paths:
|
|
||||||
# https://github.com/HDInnovations/UNIT3D-Community-Edition/wiki/Torrent-API-(UNIT3D-v8.x.x)
|
|
||||||
# https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php#L476
|
|
||||||
- path: "/api/torrents/filter"
|
|
||||||
response:
|
|
||||||
type: json
|
|
||||||
|
|
||||||
headers:
|
|
||||||
Authorization: ["Bearer {{ .Config.apikey }}"]
|
|
||||||
|
|
||||||
inputs:
|
|
||||||
# if we have an id based search, add Season and Episode as query in name for UNIT3D < v6. Else pass S/E Params for UNIT3D >= v6
|
|
||||||
name: "{{ .Keywords }}"
|
|
||||||
$raw: "{{ if .Query.Season }}&seasonNumber={{ .Query.Season }}{{ else }}{{ end }}{{ if .Query.Ep }}&episodeNumber={{ .Query.Ep }}{{ else }}{{ end }}{{ if .Query.TMDBID }}&tmdbId={{ .Query.TMDBID }}{{ else }}{{ end }}{{ if .Query.IMDBIDShort }}&imdbId={{ .Query.IMDBIDShort }}{{ else }}{{ end }}{{ if .Query.TVDBID }}&tvdbId={{ .Query.TVDBID }}{{ else }}{{ end }}{{ range .Categories }}&categories[]={{.}}{{end}}{{ if .Config.freeleech }}&free[]=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: [" & ", "_&_"]
|
|
||||||
description:
|
|
||||||
text: "{{ .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
|
|
||||||
downloadvolumefactor:
|
|
||||||
# api returns 0%, 25%, 50%, 75%, 100%
|
|
||||||
selector: freeleech
|
|
||||||
case:
|
|
||||||
0%: 1 # not free
|
|
||||||
25%: 0.75
|
|
||||||
50%: 0.5
|
|
||||||
75%: 0.25
|
|
||||||
100%: 0 # freeleech
|
|
||||||
"*": 0 # catch errors
|
|
||||||
uploadvolumefactor:
|
|
||||||
# api returns False, True
|
|
||||||
selector: double_upload
|
|
||||||
case:
|
|
||||||
False: 1 # normal
|
|
||||||
True: 2 # double
|
|
||||||
# global MR is 0.4 but torrents must be seeded for 7 days regardless of ratio
|
|
||||||
# minimumratio:
|
|
||||||
# text: 0.4
|
|
||||||
minimumseedtime:
|
|
||||||
# 3 days (as seconds = 3 x 24 x 60 x 60)
|
|
||||||
text: 259200
|
|
||||||
# json UNIT3D 8.0.2
|
|
||||||
@@ -1,150 +0,0 @@
|
|||||||
---
|
|
||||||
id: cpasbien
|
|
||||||
name: cpasbien
|
|
||||||
description: "cpasbien is a FRENCH Public site for TV / MOVIES / GENERAL"
|
|
||||||
language: fr-FR
|
|
||||||
type: public
|
|
||||||
encoding: UTF-8
|
|
||||||
followredirect: true
|
|
||||||
links:
|
|
||||||
- https://cpasbien-vf.li/
|
|
||||||
legacylinks:
|
|
||||||
- https://www.cpasbiens.cz/
|
|
||||||
- https://www.cpasbiens.bz/
|
|
||||||
- https://www.cpasbien.vg/
|
|
||||||
- https://www.cpasbien.lol/
|
|
||||||
- https://www.gktorrent.biz/
|
|
||||||
- https://vww.cpasbien-fr.fr/
|
|
||||||
- https://wvw.cpasbien-fr.fr/
|
|
||||||
- https://wwwv.cpasbien-fr.fr/
|
|
||||||
- https://www2.cpasbien-fr.fr/
|
|
||||||
- https://www.cpasbien-fr.nz/
|
|
||||||
- https://vwwvwvwvvw.cpasbien-fr.nz/
|
|
||||||
- https://cpasbiens3.fr/
|
|
||||||
- https://labastidevivante.fr/
|
|
||||||
- https://cpasbiens911.fr/
|
|
||||||
- https://jardattraction.fr/
|
|
||||||
- https://cpasbien-vf.fr/
|
|
||||||
- https://cpasbien-vf.pics/
|
|
||||||
|
|
||||||
caps:
|
|
||||||
categories:
|
|
||||||
Other: Other
|
|
||||||
|
|
||||||
modes:
|
|
||||||
search: [q]
|
|
||||||
tv-search: [q, season, ep]
|
|
||||||
movie-search: [q]
|
|
||||||
|
|
||||||
settings:
|
|
||||||
- name: flaresolverr
|
|
||||||
type: info
|
|
||||||
label: FlareSolverr
|
|
||||||
default: This site may use Cloudflare DDoS Protection, therefore Prowlarr requires <a href="https://wiki.servarr.com/prowlarr/faq#can-i-use-flaresolverr-indexers" target="_blank" rel="noreferrer">FlareSolverr</a> to access it.
|
|
||||||
- name: info_8000
|
|
||||||
type: info
|
|
||||||
label: About cpasbien Categories
|
|
||||||
default: cpasbien does not return categories in its search results. To sync to your apps, include 8000(Other) in your Apps' Sync Categories.
|
|
||||||
- name: multilang
|
|
||||||
type: checkbox
|
|
||||||
label: Replace MULTi by another language in release name
|
|
||||||
default: false
|
|
||||||
- name: multilanguage
|
|
||||||
type: select
|
|
||||||
label: Replace MULTi by this language
|
|
||||||
default: FRENCH
|
|
||||||
options:
|
|
||||||
FRENCH: FRENCH
|
|
||||||
MULTi FRENCH: MULTi FRENCH
|
|
||||||
ENGLISH: ENGLISH
|
|
||||||
MULTi ENGLISH: MULTi ENGLISH
|
|
||||||
VOSTFR: VOSTFR
|
|
||||||
MULTi VOSTFR: MULTi VOSTFR
|
|
||||||
- name: vostfr
|
|
||||||
type: checkbox
|
|
||||||
label: Replace VOSTFR and SUBFRENCH with ENGLISH
|
|
||||||
default: false
|
|
||||||
|
|
||||||
download:
|
|
||||||
selectors:
|
|
||||||
- selector: a[href^="magnet:?xt="]
|
|
||||||
attribute: href
|
|
||||||
|
|
||||||
search:
|
|
||||||
paths:
|
|
||||||
- path: "{{ if .Keywords }}index.php?do=search&subaction=search{{ else }}{{ end }}"
|
|
||||||
method: post
|
|
||||||
inputs:
|
|
||||||
story: "{{ if .Keywords }}{{ .Keywords }}{{ else }}{{ end }}"
|
|
||||||
# does not support imdbid search and does not return imdb link in results.
|
|
||||||
keywordsfilters:
|
|
||||||
# if searching for season packs with S01 to saison 1 #9712
|
|
||||||
- name: re_replace
|
|
||||||
args: ["(?i)\\b(?:S0?)(\\d{1,3})\\b", "saison $1"]
|
|
||||||
|
|
||||||
rows:
|
|
||||||
selector: div#gauche > table > tbody > tr:has(a), div#dle-content > a.cover2
|
|
||||||
|
|
||||||
fields:
|
|
||||||
category:
|
|
||||||
text: Other
|
|
||||||
title_phase1_title:
|
|
||||||
selector: a
|
|
||||||
title_phase1_url:
|
|
||||||
selector: a
|
|
||||||
attribute: href
|
|
||||||
filters:
|
|
||||||
- name: regexp
|
|
||||||
args: torrents\d+\/(.+?)\/
|
|
||||||
- name: replace
|
|
||||||
args: ["-", " "]
|
|
||||||
title_phase1:
|
|
||||||
text: "{{ if .Result.title_phase1_title }}{{ .Result.title_phase1_title }}{{ else }}{{ .Result.title_phase1_url }}{{ end }}"
|
|
||||||
filters:
|
|
||||||
- name: re_replace
|
|
||||||
args: ["(?i)\\b(FRENCH|MULTI|TRUEFRENCH|VOSTFR|SUBFRENCH)\\b(.+?)(\\b(19|20\\d{2})\\b)$", "$3 $1$2"]
|
|
||||||
title_vostfr:
|
|
||||||
text: "{{ .Result.title_phase1 }}"
|
|
||||||
filters:
|
|
||||||
- name: re_replace
|
|
||||||
args: ["(?i)\\b(vostfr|subfrench)\\b", "ENGLISH"]
|
|
||||||
title_phase2:
|
|
||||||
text: "{{ if .Config.vostfr }}{{ .Result.title_vostfr }}{{ else }}{{ .Result.title_phase1 }}{{ end }}"
|
|
||||||
title_multilang:
|
|
||||||
text: "{{ .Result.title_phase2 }}"
|
|
||||||
filters:
|
|
||||||
- name: re_replace
|
|
||||||
args: ["(?i)\\b(MULTI(?!.*(?:FRENCH|ENGLISH|VOSTFR)))\\b", "{{ .Config.multilanguage }}"]
|
|
||||||
title:
|
|
||||||
text: "{{ if .Config.multilang }}{{ .Result.title_multilang }}{{ else }}{{ .Result.title_phase2 }}{{ end }}"
|
|
||||||
details:
|
|
||||||
selector: a
|
|
||||||
attribute: href
|
|
||||||
download:
|
|
||||||
selector: a
|
|
||||||
attribute: href
|
|
||||||
poster:
|
|
||||||
selector: img
|
|
||||||
attribute: src
|
|
||||||
size_optional:
|
|
||||||
selector: div.poid
|
|
||||||
optional: true
|
|
||||||
size:
|
|
||||||
text: "{{ if .Result.size_optional }}{{ .Result.size_optional }}{{ else }}512 MB{{ end }}"
|
|
||||||
date:
|
|
||||||
text: now
|
|
||||||
seeders_optional:
|
|
||||||
selector: div.up
|
|
||||||
optional: true
|
|
||||||
seeders:
|
|
||||||
text: "{{ if .Result.seeders_optional }}{{ .Result.seeders_optional }}{{ else }}0{{ end }}"
|
|
||||||
leechers_optional:
|
|
||||||
selector: div.down
|
|
||||||
optional: true
|
|
||||||
leechers:
|
|
||||||
text: "{{ if .Result.leechers_optional }}{{ .Result.leechers_optional }}{{ else }}0{{ end }}"
|
|
||||||
downloadvolumefactor:
|
|
||||||
text: 0
|
|
||||||
uploadvolumefactor:
|
|
||||||
text: 1
|
|
||||||
# engine n/a
|
|
||||||
@@ -1,141 +0,0 @@
|
|||||||
---
|
|
||||||
id: cpasbienclone
|
|
||||||
name: cpasbien clone
|
|
||||||
description: "cpasbien clone is a FRENCH Public site for TV / MOVIES / GENERAL"
|
|
||||||
language: fr-FR
|
|
||||||
type: public
|
|
||||||
encoding: UTF-8
|
|
||||||
followredirect: true
|
|
||||||
links:
|
|
||||||
- https://www.cpasbien.tw/
|
|
||||||
legacylinks:
|
|
||||||
- https://www1.cpasbiens.ws/
|
|
||||||
- https://www2.cpasbiens.ws/
|
|
||||||
- https://cpasbiens.cm/
|
|
||||||
- https://www1.cpasbiens.cm/
|
|
||||||
- https://wwv.cpasbien.to/
|
|
||||||
- https://cpasbiens.black-mirror.xyz/
|
|
||||||
- https://cpasbiens.unblocked.casa/
|
|
||||||
- https://cpasbiens.proxyportal.fun/
|
|
||||||
- https://cpasbiens.uk-unblock.xyz/
|
|
||||||
- https://cpasbiens.ind-unblock.xyz/
|
|
||||||
- https://www.cpasbien.gg/
|
|
||||||
- https://www.cpasbien.vip/
|
|
||||||
- https://cpasbien.to/
|
|
||||||
|
|
||||||
caps:
|
|
||||||
categories:
|
|
||||||
Other: Other
|
|
||||||
|
|
||||||
modes:
|
|
||||||
search: [q]
|
|
||||||
tv-search: [q, season, ep]
|
|
||||||
movie-search: [q]
|
|
||||||
allowrawsearch: true
|
|
||||||
|
|
||||||
settings:
|
|
||||||
- name: info_8000
|
|
||||||
type: info
|
|
||||||
label: About cpasbienclone Categories
|
|
||||||
default: cpasbienclone does not return categories in its search results. To sync to your apps, include 8000(Other) in your Apps' Sync Categories.
|
|
||||||
- name: multilang
|
|
||||||
type: checkbox
|
|
||||||
label: Replace MULTi by another language in release name
|
|
||||||
default: false
|
|
||||||
- name: multilanguage
|
|
||||||
type: select
|
|
||||||
label: Replace MULTi by this language
|
|
||||||
default: FRENCH
|
|
||||||
options:
|
|
||||||
FRENCH: FRENCH
|
|
||||||
MULTi FRENCH: MULTi FRENCH
|
|
||||||
ENGLISH: ENGLISH
|
|
||||||
MULTi ENGLISH: MULTi ENGLISH
|
|
||||||
VOSTFR: VOSTFR
|
|
||||||
MULTi VOSTFR: MULTi VOSTFR
|
|
||||||
- name: vostfr
|
|
||||||
type: checkbox
|
|
||||||
label: Replace VOSTFR and SUBFRENCH with ENGLISH
|
|
||||||
default: false
|
|
||||||
- name: sort
|
|
||||||
type: select
|
|
||||||
label: Sort requested from site (Works only for searches with Keywords)
|
|
||||||
default: trie-date-d
|
|
||||||
options:
|
|
||||||
trie-date-d: created desc
|
|
||||||
trie-date-a: created asc
|
|
||||||
trie-seeds-d: seeders desc
|
|
||||||
trie-seeds-a: seeders asc
|
|
||||||
trie-poid-d: size desc
|
|
||||||
trie-poid-a: size asc
|
|
||||||
trie-nom-d: title desc
|
|
||||||
trie-nom-a: title asc
|
|
||||||
|
|
||||||
download:
|
|
||||||
before:
|
|
||||||
# request target
|
|
||||||
path: "download_magnet?id={{ re_replace .DownloadUri.AbsoluteUri \"^.*-(\\d+)\\.html\" \"$1\" }}"
|
|
||||||
selectors:
|
|
||||||
- selector: body
|
|
||||||
usebeforeresponse: true
|
|
||||||
|
|
||||||
search:
|
|
||||||
paths:
|
|
||||||
- path: "{{ if .Keywords }}search_torrent/{{ .Keywords }}.html,{{ .Config.sort }}{{ else }}home/{{ end }}"
|
|
||||||
|
|
||||||
rows:
|
|
||||||
selector: table.table-corps > tbody > tr:has(a)
|
|
||||||
|
|
||||||
fields:
|
|
||||||
category:
|
|
||||||
text: Other
|
|
||||||
title_phase1:
|
|
||||||
selector: a
|
|
||||||
filters:
|
|
||||||
- name: re_replace
|
|
||||||
args: ["(?i)\\b(FRENCH|MULTI|TRUEFRENCH|VOSTFR|SUBFRENCH)\\b(.+?)(\\b(19|20\\d{2})\\b)$", "$3 $1$2"]
|
|
||||||
title_vostfr:
|
|
||||||
text: "{{ .Result.title_phase1 }}"
|
|
||||||
filters:
|
|
||||||
- name: re_replace
|
|
||||||
args: ["(?i)\\b(vostfr|subfrench)\\b", "ENGLISH"]
|
|
||||||
title_phase2:
|
|
||||||
text: "{{ if .Config.vostfr }}{{ .Result.title_vostfr }}{{ else }}{{ .Result.title_phase1 }}{{ end }}"
|
|
||||||
title_multilang:
|
|
||||||
text: "{{ .Result.title_phase2 }}"
|
|
||||||
filters:
|
|
||||||
- name: re_replace
|
|
||||||
args: ["(?i)\\b(MULTI(?!.*(?:FRENCH|ENGLISH|VOSTFR)))\\b", "{{ .Config.multilanguage }}"]
|
|
||||||
title:
|
|
||||||
text: "{{ if .Config.multilang }}{{ .Result.title_multilang }}{{ else }}{{ .Result.title_phase2 }}{{ end }}"
|
|
||||||
details:
|
|
||||||
selector: a
|
|
||||||
attribute: href
|
|
||||||
download:
|
|
||||||
selector: a
|
|
||||||
attribute: href
|
|
||||||
size:
|
|
||||||
selector: div.poid
|
|
||||||
filters:
|
|
||||||
- name: re_replace
|
|
||||||
args: ["(\\w)o", "$1B"]
|
|
||||||
# keyword search returns nnnnn.n in MB but without unit indicator
|
|
||||||
- name: re_replace
|
|
||||||
args: ["(\\d+\\.\\d)$", "$1MB"]
|
|
||||||
date:
|
|
||||||
text: now
|
|
||||||
seeders_optional:
|
|
||||||
selector: div.up
|
|
||||||
optional: true
|
|
||||||
seeders:
|
|
||||||
text: "{{ if .Result.seeders_optional }}{{ .Result.seeders_optional }}{{ else }}0{{ end }}"
|
|
||||||
leechers_optional:
|
|
||||||
selector: div.down
|
|
||||||
optional: true
|
|
||||||
leechers:
|
|
||||||
text: "{{ if .Result.leechers_optional }}{{ .Result.leechers_optional }}{{ else }}0{{ end }}"
|
|
||||||
downloadvolumefactor:
|
|
||||||
text: 0
|
|
||||||
uploadvolumefactor:
|
|
||||||
text: 1
|
|
||||||
# engine n/a
|
|
||||||
@@ -1,162 +0,0 @@
|
|||||||
---
|
|
||||||
id: danishbytes-api
|
|
||||||
name: DanishBytes (API)
|
|
||||||
description: "DanishBytes is a Private Danish Tracker"
|
|
||||||
language: en-US
|
|
||||||
type: private
|
|
||||||
encoding: UTF-8
|
|
||||||
links:
|
|
||||||
- https://danishbytes.club/
|
|
||||||
- https://danishbytes2.org/
|
|
||||||
- https://dbytes.org/
|
|
||||||
legacylinks:
|
|
||||||
- https://danishbytes.org/
|
|
||||||
- https://danishbytes.art/
|
|
||||||
|
|
||||||
caps:
|
|
||||||
categorymappings:
|
|
||||||
- {id: 1, cat: Movies, desc: "Movies"}
|
|
||||||
- {id: 2, cat: TV, desc: "TV"}
|
|
||||||
- {id: 3, cat: Audio, desc: "Sound"}
|
|
||||||
- {id: 4, cat: PC/Games, desc: "Games"}
|
|
||||||
- {id: 5, cat: PC/0day, desc: "Appz"}
|
|
||||||
- {id: 8, cat: Books, desc: "Bookz"}
|
|
||||||
|
|
||||||
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_apikey
|
|
||||||
type: info
|
|
||||||
label: About your API key
|
|
||||||
default: "Find or Generate a new API Token by accessing your <a href=\"https://danishbytes.club/\" target=\"_blank\">DanishBytes</a> account <i>My Security</i> page and clicking on the <b>API Token</b> tab."
|
|
||||||
- name: rsskey
|
|
||||||
type: text
|
|
||||||
label: RSSKey
|
|
||||||
- name: info_rsskey
|
|
||||||
type: info
|
|
||||||
label: About your RSS key
|
|
||||||
default: "Find or Generate a new RSS key by accessing your <a href=\"https://danishbytes.club/\" target =_blank>DanishBytes</a> account <i>My Security</i> page and clicking on the <b>RSS Key (RID)</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: "If you have not logged in for 90 days, the user is automatically deleted."
|
|
||||||
|
|
||||||
login:
|
|
||||||
path: /api/torrents
|
|
||||||
method: get
|
|
||||||
inputs: {} # TODO: remove in v10
|
|
||||||
error:
|
|
||||||
- selector: a[href*="/login"]
|
|
||||||
message:
|
|
||||||
text: "The API key was not accepted by {{ .Config.sitelink }}."
|
|
||||||
|
|
||||||
search:
|
|
||||||
paths:
|
|
||||||
- path: "/api/torrents/v2/filter?search={{ .Keywords }}{{ if .Query.IMDBIDShort }}&imdb={{ .Query.IMDBIDShort }}{{ else }}{{ end }}{{ if .Query.TMDBID }}&tmdb={{ .Query.TMDBID }}{{ else }}{{ end }}{{ if .Query.TVDBID }}&tvdb={{ .Query.TVDBID }}{{ else }}{{ end }}{{ range .Categories }}&categories[]={{.}}{{end}}{{ if .Config.freeleech }}&freeleech=1{{ else }}{{ end }}&sorting={{ .Config.sort }}&direction={{ .Config.type }}&qty=100&page=1"
|
|
||||||
response:
|
|
||||||
type: json
|
|
||||||
|
|
||||||
headers:
|
|
||||||
Authorization: ["Bearer {{ .Config.apikey }}"]
|
|
||||||
|
|
||||||
rows:
|
|
||||||
selector: torrents
|
|
||||||
count:
|
|
||||||
selector: $.resultsCount
|
|
||||||
|
|
||||||
fields:
|
|
||||||
_id:
|
|
||||||
selector: .id
|
|
||||||
category:
|
|
||||||
selector: category_id
|
|
||||||
title:
|
|
||||||
selector: name
|
|
||||||
details:
|
|
||||||
text: "/torrents/{{ .Result._id }}"
|
|
||||||
download:
|
|
||||||
text: "/torrent/download/{{ .Result._id }}.{{ .Config.rsskey }}"
|
|
||||||
infohash:
|
|
||||||
selector: info_hash
|
|
||||||
poster:
|
|
||||||
selector: poster_image
|
|
||||||
genre:
|
|
||||||
selector: meta_genres
|
|
||||||
filters:
|
|
||||||
- name: re_replace
|
|
||||||
args: ["(?i)(Action og eventyr)", "Action_og_eventyr"]
|
|
||||||
- name: re_replace
|
|
||||||
args: ["(?i)(Sci-fi og Fantasy)", "Sci-fi_og_Fantasy"]
|
|
||||||
- name: re_replace
|
|
||||||
args: ["(?i)(Stand-Up Comedy)", "Stand-Up_Comedy"]
|
|
||||||
- name: replace
|
|
||||||
args: [" & ", "_&_"]
|
|
||||||
description:
|
|
||||||
text: "{{ .Result.genre }}"
|
|
||||||
imdbid:
|
|
||||||
selector: imdb
|
|
||||||
tmdbid:
|
|
||||||
selector: tmdb
|
|
||||||
tvdbid:
|
|
||||||
selector: tvdb
|
|
||||||
seeders:
|
|
||||||
selector: seeders
|
|
||||||
leechers:
|
|
||||||
selector: leechers
|
|
||||||
grabs:
|
|
||||||
selector: times_completed
|
|
||||||
date:
|
|
||||||
# "created_at": "2021-10-18T00:34:50.000000Z" is returned by Newtonsoft.Json.Linq as 18/10/2021 00:34:50
|
|
||||||
selector: created_at
|
|
||||||
filters:
|
|
||||||
- name: append
|
|
||||||
args: " +00:00" # GMT
|
|
||||||
- name: dateparse
|
|
||||||
args: "MM/dd/yyyy HH:mm:ss zzz"
|
|
||||||
size:
|
|
||||||
selector: size
|
|
||||||
downloadvolumefactor:
|
|
||||||
# api returns 0=false, 1=true
|
|
||||||
selector: free
|
|
||||||
case:
|
|
||||||
0: 1 # not free
|
|
||||||
1: 0 # freeleech
|
|
||||||
uploadvolumefactor:
|
|
||||||
# api returns 0=false, 1=true
|
|
||||||
selector: doubleup
|
|
||||||
case:
|
|
||||||
0: 1 # normal
|
|
||||||
1: 2 # double
|
|
||||||
minimumratio:
|
|
||||||
text: 1.0
|
|
||||||
minimumseedtime:
|
|
||||||
# 2 day (as seconds = 2 x 24 x 60 x 60)
|
|
||||||
text: 172800
|
|
||||||
# json DBy v0.96
|
|
||||||
@@ -1,200 +0,0 @@
|
|||||||
---
|
|
||||||
id: datascene-api
|
|
||||||
name: DataScene (API)
|
|
||||||
description: "DataScene (DS) is a ROMANIAN Private Torrent Tracker for MOVIES / TV / GENERAL"
|
|
||||||
language: en-US
|
|
||||||
type: private
|
|
||||||
encoding: UTF-8
|
|
||||||
links:
|
|
||||||
- https://datascene.xyz/
|
|
||||||
legacylinks:
|
|
||||||
- http://datascene.net/
|
|
||||||
- https://datascene.net/
|
|
||||||
|
|
||||||
caps:
|
|
||||||
categorymappings:
|
|
||||||
- {id: 1, cat: Movies/HD, desc: "Movie HD"}
|
|
||||||
- {id: 23, cat: Movies/HD, desc: "Movies HD Ro"}
|
|
||||||
- {id: 11, cat: Movies/UHD, desc: "Movies 4K"}
|
|
||||||
- {id: 12, cat: Movies/UHD, desc: "Movies 4K Ro"}
|
|
||||||
- {id: 14, cat: Movies/BluRay, desc: "Movies Bluray"}
|
|
||||||
- {id: 15, cat: Movies/BluRay, desc: "Movies Bluray Ro"}
|
|
||||||
- {id: 27, cat: Movies/DVD, desc: "DVD"}
|
|
||||||
- {id: 28, cat: Movies/DVD, desc: "DVD Ro"}
|
|
||||||
- {id: 19, cat: Movies/SD, desc: "SD"}
|
|
||||||
- {id: 20, cat: Movies/SD, desc: "SD Ro"}
|
|
||||||
- {id: 2, cat: TV/HD, desc: "TV HD"}
|
|
||||||
- {id: 18, cat: TV/HD, desc: "TV HD Ro"}
|
|
||||||
- {id: 26, cat: TV/SD, desc: "TV SD"}
|
|
||||||
- {id: 10, cat: TV/SD, desc: "TV SD Ro"}
|
|
||||||
- {id: 31, cat: TV/SD, desc: "DVD"}
|
|
||||||
- {id: 32, cat: TV/SD, desc: "DVD Ro"}
|
|
||||||
- {id: 29, cat: TV/UHD, desc: "TV 4K"}
|
|
||||||
- {id: 30, cat: TV/UHD, desc: "TV 4K Ro"}
|
|
||||||
- {id: 22, cat: TV, desc: "TV Pack"}
|
|
||||||
- {id: 33, cat: TV, desc: "TV Pack Ro"}
|
|
||||||
- {id: 4, cat: PC/Games, desc: "Game"}
|
|
||||||
- {id: 3, cat: Audio, desc: "Music"}
|
|
||||||
- {id: 21, cat: Audio/Video, desc: "Music Video"}
|
|
||||||
- {id: 7, cat: PC/Mobile-Other, desc: "Mobile"}
|
|
||||||
- {id: 24, cat: PC, desc: "Linux"}
|
|
||||||
- {id: 8, cat: Books/EBook, desc: "E-Book"}
|
|
||||||
- {id: 25, cat: TV/Sport, desc: "Sport"}
|
|
||||||
- {id: 5, cat: PC/0day, desc: "Application"}
|
|
||||||
- {id: 13, cat: TV/Anime, desc: "Anime"}
|
|
||||||
- {id: 6, 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://datascene.xyz/\" target=\"_blank\">DataScene</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: "<ul><li>Accounts with zero activity (0 bytes download and 0 bytes upload) are automatically deleted after 30 days.</li><li>Inactive VIP and unparked accounts are automatically deleted after 40 days.</li></ul>"
|
|
||||||
|
|
||||||
login:
|
|
||||||
path: /api/torrents
|
|
||||||
method: get
|
|
||||||
inputs: {} # TODO: remove in v10
|
|
||||||
error:
|
|
||||||
- selector: a[href*="/login"]
|
|
||||||
message:
|
|
||||||
text: "The API key was not accepted by {{ .Config.sitelink }}."
|
|
||||||
|
|
||||||
search:
|
|
||||||
paths:
|
|
||||||
# https://github.com/HDInnovations/UNIT3D-Community-Edition/wiki/Torrent-API-(UNIT3D-v8.x.x)
|
|
||||||
# https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php#L476
|
|
||||||
- path: "/api/torrents/filter"
|
|
||||||
response:
|
|
||||||
type: json
|
|
||||||
|
|
||||||
headers:
|
|
||||||
Authorization: ["Bearer {{ .Config.apikey }}"]
|
|
||||||
|
|
||||||
inputs:
|
|
||||||
# if we have an id based search, add Season and Episode as query in name for UNIT3D < v6. Else pass S/E Params for UNIT3D >= v6
|
|
||||||
name: "{{ .Keywords }}"
|
|
||||||
$raw: "{{ if .Query.Season }}&seasonNumber={{ .Query.Season }}{{ else }}{{ end }}{{ if .Query.Ep }}&episodeNumber={{ .Query.Ep }}{{ else }}{{ end }}{{ if .Query.TMDBID }}&tmdbId={{ .Query.TMDBID }}{{ else }}{{ end }}{{ if .Query.IMDBIDShort }}&imdbId={{ .Query.IMDBIDShort }}{{ else }}{{ end }}{{ if .Query.TVDBID }}&tvdbId={{ .Query.TVDBID }}{{ else }}{{ end }}{{ range .Categories }}&categories[]={{.}}{{end}}{{ if .Config.freeleech }}&free[]=100{{ else }}{{ end }}"
|
|
||||||
sortField: "{{ .Config.sort }}"
|
|
||||||
sortDirection: "{{ .Config.type }}"
|
|
||||||
perPage: 100
|
|
||||||
|
|
||||||
keywordsfilters:
|
|
||||||
- name: re_replace
|
|
||||||
args: ["\\.", " "]
|
|
||||||
|
|
||||||
rows:
|
|
||||||
selector: data
|
|
||||||
attribute: attributes
|
|
||||||
|
|
||||||
fields:
|
|
||||||
category:
|
|
||||||
selector: category_id
|
|
||||||
title:
|
|
||||||
selector: name
|
|
||||||
details:
|
|
||||||
selector: details_link
|
|
||||||
download:
|
|
||||||
selector: download_link
|
|
||||||
infohash:
|
|
||||||
selector: info_hash
|
|
||||||
poster:
|
|
||||||
selector: meta.poster
|
|
||||||
filters:
|
|
||||||
- name: replace
|
|
||||||
args: ["https://via.placeholder.com/90x135", ""]
|
|
||||||
imdbid:
|
|
||||||
selector: imdb_id
|
|
||||||
tmdbid:
|
|
||||||
selector: tmdb_id
|
|
||||||
tvdbid:
|
|
||||||
selector: tvdb_id
|
|
||||||
genre:
|
|
||||||
selector: meta.genres
|
|
||||||
filters:
|
|
||||||
- name: re_replace
|
|
||||||
args: ["(?i)^None$", ""]
|
|
||||||
- name: re_replace
|
|
||||||
args: ["(?i)(All Sex)", "All_Sex"]
|
|
||||||
- name: re_replace
|
|
||||||
args: ["(?i)(Science Fiction)", "Science_Fiction"]
|
|
||||||
- name: re_replace
|
|
||||||
args: ["(?i)(TV Movie)", "TV_Movie"]
|
|
||||||
- name: replace
|
|
||||||
args: [" & ", "_&_"]
|
|
||||||
description:
|
|
||||||
text: "{{ .Result.genre }}"
|
|
||||||
files:
|
|
||||||
selector: num_file
|
|
||||||
seeders:
|
|
||||||
selector: seeders
|
|
||||||
leechers:
|
|
||||||
selector: leechers
|
|
||||||
grabs:
|
|
||||||
selector: times_completed
|
|
||||||
date:
|
|
||||||
# "created_at": "2021-10-18T00:34:50.000000Z" is returned by Newtonsoft.Json.Linq as 18/10/2021 00:34:50
|
|
||||||
selector: created_at
|
|
||||||
filters:
|
|
||||||
- name: append
|
|
||||||
args: " +00:00" # GMT
|
|
||||||
- name: dateparse
|
|
||||||
args: "MM/dd/yyyy HH:mm:ss zzz"
|
|
||||||
size:
|
|
||||||
selector: size
|
|
||||||
downloadvolumefactor:
|
|
||||||
# api returns 0%, 25%, 50%, 75%, 100%
|
|
||||||
selector: freeleech
|
|
||||||
case:
|
|
||||||
0%: 1 # not free
|
|
||||||
25%: 0.75
|
|
||||||
50%: 0.5
|
|
||||||
75%: 0.25
|
|
||||||
100%: 0 # freeleech
|
|
||||||
"*": 0 # catch errors
|
|
||||||
uploadvolumefactor:
|
|
||||||
# api returns False, True
|
|
||||||
selector: double_upload
|
|
||||||
case:
|
|
||||||
False: 1 # normal
|
|
||||||
True: 2 # double
|
|
||||||
# global MR is 0.4 but torrents must be seeded for 7 days regardless of ratio
|
|
||||||
# minimumratio:
|
|
||||||
# text: 0.4
|
|
||||||
minimumseedtime:
|
|
||||||
# 2 days (as seconds = 2 x 24 x 60 x 60)
|
|
||||||
text: 172800
|
|
||||||
# json UNIT3D 7.2.0
|
|
||||||
@@ -1,405 +0,0 @@
|
|||||||
---
|
|
||||||
id: demonoid
|
|
||||||
name: Demonoid
|
|
||||||
description: "Demonoid is a Semi-Private torrent site for MOVIES / TV / GENERAL"
|
|
||||||
language: en-US
|
|
||||||
type: semi-private
|
|
||||||
encoding: UTF-8
|
|
||||||
links:
|
|
||||||
- https://www.demonoid.is/
|
|
||||||
- https://www.dnoid.to/
|
|
||||||
- https://www.dnoid.pw/
|
|
||||||
- https://demonoid.torrentbay.st/
|
|
||||||
legacylinks:
|
|
||||||
- https://demonoid.unblockit.boo/
|
|
||||||
- https://demonoidevmsgasmojajlhikwetsr4pxzw6xkjt3dgdv6nr5yxvsamid.onion.ly/
|
|
||||||
- https://demonoidevmsgasmojajlhikwetsr4pxzw6xkjt3dgdv6nr5yxvsamid.tor2web.to/
|
|
||||||
- https://demonoidevmsgasmojajlhikwetsr4pxzw6xkjt3dgdv6nr5yxvsamid.tor2web.link/ # Origin is unreachable Error code 523
|
|
||||||
- https://demonoid.mrunblock.guru/
|
|
||||||
- https://demonoid.torrentbay.to/
|
|
||||||
- https://demonoid.unblockit.click/
|
|
||||||
- https://demonoid.unblockit.asia/
|
|
||||||
- https://demonoid.unblockit.mov/
|
|
||||||
- https://demonoid.mrunblock.life/
|
|
||||||
- https://demonoid.unblockit.rsvp/
|
|
||||||
- https://demonoid.nocensor.click/
|
|
||||||
- https://demonoid.unblockit.vegas/
|
|
||||||
- https://demonoid.unblockit.esq/
|
|
||||||
- https://demonoid.unblockit.zip/
|
|
||||||
- https://demonoid.unblockit.foo/
|
|
||||||
- https://demonoid.unblockit.ing/
|
|
||||||
- https://demonoid.torrentbay.net/
|
|
||||||
- https://demonoid.mrunblock.bond/
|
|
||||||
- https://demonoid.nocensor.cloud/
|
|
||||||
- https://demonoid.unblockit.date/
|
|
||||||
- https://demonoid.unblockit.dad/
|
|
||||||
- https://demonoid.unblockit.africa/
|
|
||||||
- https://demonoid.unblockit.casa/ # 302
|
|
||||||
|
|
||||||
caps:
|
|
||||||
categorymappings:
|
|
||||||
# fetch these from https://www.demonoid.is/cached/torrent_categories_script.js?v5
|
|
||||||
# Everything
|
|
||||||
- {id: 0, cat: Other/Misc, desc: "Miscellaneous"}
|
|
||||||
# Applications
|
|
||||||
- {id: 1, cat: PC/Mobile-Android, desc: "Applications Android"}
|
|
||||||
- {id: 2, cat: PC/Mobile-iOS, desc: "Applications phone / Ipod touch"}
|
|
||||||
- {id: 3, cat: PC, desc: "Applications Linux"}
|
|
||||||
- {id: 4, cat: PC/Mac, desc: "Applications Mac"}
|
|
||||||
- {id: 5, cat: PC/Mobile-Other, desc: "Applications Mobile phone"}
|
|
||||||
- {id: 6, cat: PC, desc: "Applications PocketPC"}
|
|
||||||
- {id: 7, cat: PC/0day, desc: "Applications Windows"}
|
|
||||||
# Audio Books
|
|
||||||
- {id: 8, cat: Audio/Audiobook, desc: "Audio Books Action"}
|
|
||||||
- {id: 9, cat: Audio/Audiobook, desc: "Audio Books Adventure"}
|
|
||||||
- {id: 10, cat: Audio/Audiobook, desc: "Audio Books Biography"}
|
|
||||||
- {id: 11, cat: Audio/Audiobook, desc: "Audio Books Childrens"}
|
|
||||||
- {id: 12, cat: Audio/Audiobook, desc: "Audio Books Computers and Technology"}
|
|
||||||
- {id: 13, cat: Audio/Audiobook, desc: "Audio Books Contemporary"}
|
|
||||||
- {id: 14, cat: Audio/Audiobook, desc: "Audio Books Cooking"}
|
|
||||||
- {id: 15, cat: Audio/Audiobook, desc: "Audio Books Crafts and Hobbies"}
|
|
||||||
- {id: 16, cat: Audio/Audiobook, desc: "Audio Books Educational"}
|
|
||||||
- {id: 17, cat: Audio/Audiobook, desc: "Audio Books Fantasy"}
|
|
||||||
- {id: 18, cat: Audio/Audiobook, desc: "Audio Books Fiction"}
|
|
||||||
- {id: 19, cat: Audio/Audiobook, desc: "Audio Books General"}
|
|
||||||
- {id: 20, cat: Audio/Audiobook, desc: "Audio Books History"}
|
|
||||||
- {id: 21, cat: Audio/Audiobook, desc: "Audio Books Horror"}
|
|
||||||
- {id: 22, cat: Audio/Audiobook, desc: "Audio Books Humor"}
|
|
||||||
- {id: 23, cat: Audio/Audiobook, desc: "Audio Books Literary"}
|
|
||||||
- {id: 24, cat: Audio/Audiobook, desc: "Audio Books Magazine"}
|
|
||||||
- {id: 25, cat: Audio/Audiobook, desc: "Audio Books Mainstream"}
|
|
||||||
- {id: 26, cat: Audio/Audiobook, desc: "Audio Books Medicine and Health"}
|
|
||||||
- {id: 27, cat: Audio/Audiobook, desc: "Audio Books Mystery and Suspense"}
|
|
||||||
- {id: 28, cat: Audio/Audiobook, desc: "Audio Books Newspaper"}
|
|
||||||
- {id: 29, cat: Audio/Audiobook, desc: "Audio Books Nonfiction"}
|
|
||||||
- {id: 30, cat: Audio/Audiobook, desc: "Audio Books Other"}
|
|
||||||
- {id: 31, cat: Audio/Audiobook, desc: "Audio Books Paranormal"}
|
|
||||||
- {id: 32, cat: Audio/Audiobook, desc: "Audio Books Religion"}
|
|
||||||
- {id: 33, cat: Audio/Audiobook, desc: "Audio Books Romance"}
|
|
||||||
- {id: 34, cat: Audio/Audiobook, desc: "Audio Books RPG"}
|
|
||||||
- {id: 35, cat: Audio/Audiobook, desc: "Audio Books Sci-Fi"}
|
|
||||||
- {id: 36, cat: Audio/Audiobook, desc: "Audio Books Self-help"}
|
|
||||||
- {id: 37, cat: Audio/Audiobook, desc: "Audio Books Suspense"}
|
|
||||||
- {id: 38, cat: Audio/Audiobook, desc: "Audio Books Textbook"}
|
|
||||||
- {id: 39, cat: Audio/Audiobook, desc: "Audio Books Thriller"}
|
|
||||||
- {id: 40, cat: Audio/Audiobook, desc: "Audio Books Western"}
|
|
||||||
- {id: 41, cat: Audio/Audiobook, desc: "Audio Books Young Adult"}
|
|
||||||
# Books
|
|
||||||
- {id: 42, cat: Books/EBook, desc: "Books Action and Adventure"}
|
|
||||||
- {id: 43, cat: Books/EBook, desc: "Books Biography"}
|
|
||||||
- {id: 44, cat: Books/EBook, desc: "Books Childrens"}
|
|
||||||
- {id: 45, cat: Books/EBook, desc: "Books Computers and Technology"}
|
|
||||||
- {id: 46, cat: Books/EBook, desc: "Books Contemporary"}
|
|
||||||
- {id: 47, cat: Books/EBook, desc: "Books Cooking"}
|
|
||||||
- {id: 48, cat: Books/EBook, desc: "Books Crafts and Hobbies"}
|
|
||||||
- {id: 49, cat: Books/EBook, desc: "Books Educational"}
|
|
||||||
- {id: 50, cat: Books/EBook, desc: "Books Fantasy"}
|
|
||||||
- {id: 51, cat: Books/EBook, desc: "Books Fiction"}
|
|
||||||
- {id: 52, cat: Books/EBook, desc: "Books General"}
|
|
||||||
- {id: 53, cat: Books/EBook, desc: "Books History"}
|
|
||||||
- {id: 54, cat: Books/EBook, desc: "Books Horror"}
|
|
||||||
- {id: 55, cat: Books/EBook, desc: "Books Humor"}
|
|
||||||
- {id: 56, cat: Books/EBook, desc: "Books Literary"}
|
|
||||||
- {id: 57, cat: Books/Mags, desc: "Books Magazine"}
|
|
||||||
- {id: 58, cat: Books/EBook, desc: "Books Mainstream"}
|
|
||||||
- {id: 59, cat: Books/EBook, desc: "Books Medicine and Health"}
|
|
||||||
- {id: 60, cat: Books/EBook, desc: "Books Mystery and Suspense"}
|
|
||||||
- {id: 61, cat: Books/EBook, desc: "Books Newspaper"}
|
|
||||||
- {id: 62, cat: Books/EBook, desc: "Books Nonfiction"}
|
|
||||||
- {id: 63, cat: Books/EBook, desc: "Books Other"}
|
|
||||||
- {id: 64, cat: Books/EBook, desc: "Books Paranormal"}
|
|
||||||
- {id: 65, cat: Books/EBook, desc: "Books Religion"}
|
|
||||||
- {id: 66, cat: Books/EBook, desc: "Books Romance"}
|
|
||||||
- {id: 67, cat: Books/EBook, desc: "Books RPG"}
|
|
||||||
- {id: 68, cat: Books/EBook, desc: "Books Sci-Fi"}
|
|
||||||
- {id: 69, cat: Books/EBook, desc: "Books Self-help"}
|
|
||||||
- {id: 70, cat: Books/EBook, desc: "Books Suspense"}
|
|
||||||
- {id: 71, cat: Books/EBook, desc: "Books Textbook"}
|
|
||||||
- {id: 72, cat: Books/EBook, desc: "Books Thriller"}
|
|
||||||
- {id: 73, cat: Books/EBook, desc: "Books Western"}
|
|
||||||
- {id: 74, cat: Books/EBook, desc: "Books Young Adult"}
|
|
||||||
# Comics
|
|
||||||
- {id: 75, cat: Books/Comics, desc: "Comics Action / Adventure"}
|
|
||||||
- {id: 76, cat: Books/Comics, desc: "Comics Crime"}
|
|
||||||
- {id: 77, cat: Books/Comics, desc: "Comics Drama"}
|
|
||||||
- {id: 78, cat: Books/Comics, desc: "Comics Fantasy"}
|
|
||||||
- {id: 79, cat: Books/Comics, desc: "Comics Historical fiction"}
|
|
||||||
- {id: 80, cat: Books/Comics, desc: "Comics Horror"}
|
|
||||||
- {id: 81, cat: Books/Comics, desc: "Comics Illustrated novel"}
|
|
||||||
- {id: 82, cat: Books/Comics, desc: "Comics Manga"}
|
|
||||||
- {id: 83, cat: Books/Comics, desc: "Comics Other"}
|
|
||||||
- {id: 84, cat: Books/Comics, desc: "Comics Real-Life"}
|
|
||||||
- {id: 85, cat: Books/Comics, desc: "Comics Sci-Fi"}
|
|
||||||
- {id: 86, cat: Books/Comics, desc: "Comics Super Hero"}
|
|
||||||
# Games
|
|
||||||
- {id: 87, cat: PC, desc: "Games DOS"}
|
|
||||||
- {id: 88, cat: Console/Other, desc: "Games Dreamcast"}
|
|
||||||
- {id: 89, cat: Console/Other, desc: "Games Emulators"}
|
|
||||||
- {id: 90, cat: Console/Other, desc: "Games GameBoy"}
|
|
||||||
- {id: 91, cat: Console/Other, desc: "Games GameCube"}
|
|
||||||
- {id: 92, cat: PC, desc: "Games Linux"}
|
|
||||||
- {id: 93, cat: PC/Mac, desc: "Games Mac"}
|
|
||||||
- {id: 94, cat: PC/Mobile-Other, desc: "Games Mobile phone"}
|
|
||||||
- {id: 95, cat: Console/NDS, desc: "Games Nintendo DS"}
|
|
||||||
- {id: 96, cat: Console/Other, desc: "Games Palm"}
|
|
||||||
- {id: 97, cat: Console/PS3, desc: "Games Playstation"}
|
|
||||||
- {id: 98, cat: Console/Other, desc: "Games PocketPC"}
|
|
||||||
- {id: 99, cat: Console/PSP, desc: "Games PSP"}
|
|
||||||
- {id: 100, cat: Console/Wii, desc: "Games Wii / Wii U"}
|
|
||||||
- {id: 101, cat: PC/Games, desc: "Games Windows"}
|
|
||||||
- {id: 102, cat: Console/XBox, desc: "Games XBox"}
|
|
||||||
# Anime
|
|
||||||
- {id: 103, cat: TV/Anime, desc: "Anime Action"}
|
|
||||||
- {id: 104, cat: TV/Anime, desc: "Anime Adventure"}
|
|
||||||
- {id: 105, cat: TV/Anime, desc: "Anime Comedy"}
|
|
||||||
- {id: 106, cat: TV/Anime, desc: "Anime Drama"}
|
|
||||||
- {id: 107, cat: TV/Anime, desc: "Anime Fantasy"}
|
|
||||||
- {id: 108, cat: TV/Anime, desc: "Anime Horror"}
|
|
||||||
- {id: 109, cat: TV/Anime, desc: "Anime Other"}
|
|
||||||
- {id: 157, cat: TV/Anime, desc: "Anime Romance"}
|
|
||||||
- {id: 158, cat: TV/Anime, desc: "Anime Sci-Fi"}
|
|
||||||
# Movies
|
|
||||||
- {id: 151, cat: Movies, desc: "Movies Action"}
|
|
||||||
- {id: 110, cat: Movies, desc: "Movies Adventure"}
|
|
||||||
- {id: 236, cat: Movies, desc: "Movies Animation"}
|
|
||||||
- {id: 111, cat: Movies, desc: "Movies Biography"}
|
|
||||||
- {id: 152, cat: Movies, desc: "Movies Comedy"}
|
|
||||||
- {id: 112, cat: Movies, desc: "Movies Concerts"}
|
|
||||||
- {id: 113, cat: Movies, desc: "Movies Crime"}
|
|
||||||
- {id: 114, cat: Movies, desc: "Movies Documentary"}
|
|
||||||
- {id: 115, cat: Movies, desc: "Movies Drama"}
|
|
||||||
- {id: 116, cat: Movies, desc: "Movies Family"}
|
|
||||||
- {id: 153, cat: Movies, desc: "Movies Fantasy"}
|
|
||||||
- {id: 117, cat: Movies, desc: "Movies Horror"}
|
|
||||||
- {id: 118, cat: Movies, desc: "Movies Musical"}
|
|
||||||
- {id: 119, cat: Movies, desc: "Movies Mystery"}
|
|
||||||
- {id: 120, cat: Movies, desc: "Movies Other"}
|
|
||||||
- {id: 121, cat: Movies, desc: "Movies Romance"}
|
|
||||||
- {id: 154, cat: Movies, desc: "Movies Sci-Fi"}
|
|
||||||
- {id: 159, cat: Movies, desc: "Movies Short-Film"}
|
|
||||||
- {id: 160, cat: Movies, desc: "Movies Sports"}
|
|
||||||
- {id: 161, cat: Movies, desc: "Movies Thriller"}
|
|
||||||
- {id: 162, cat: Movies, desc: "Movies Trailers"}
|
|
||||||
- {id: 163, cat: Movies, desc: "Movies War"}
|
|
||||||
- {id: 164, cat: Movies, desc: "Movies Western"}
|
|
||||||
# Music
|
|
||||||
- {id: 122, cat: Audio, desc: "Music Alternative"}
|
|
||||||
- {id: 123, cat: Audio, desc: "Music Bluegrass"}
|
|
||||||
- {id: 124, cat: Audio, desc: "Music Blues"}
|
|
||||||
- {id: 125, cat: Audio, desc: "Music Childrens"}
|
|
||||||
- {id: 126, cat: Audio, desc: "Music Christian"}
|
|
||||||
- {id: 127, cat: Audio, desc: "Music Classical"}
|
|
||||||
- {id: 128, cat: Audio, desc: "Music Comedy"}
|
|
||||||
- {id: 129, cat: Audio, desc: "Music Contemporary African"}
|
|
||||||
- {id: 130, cat: Audio, desc: "Music Country"}
|
|
||||||
- {id: 131, cat: Audio, desc: "Music Dance / Disco"}
|
|
||||||
- {id: 132, cat: Audio, desc: "Music Drum and Bass"}
|
|
||||||
- {id: 133, cat: Audio, desc: "Music Electro / Techno"}
|
|
||||||
- {id: 134, cat: Audio, desc: "Music Folk"}
|
|
||||||
- {id: 165, cat: Audio, desc: "Music Gospel"}
|
|
||||||
- {id: 166, cat: Audio, desc: "Music Grunge"}
|
|
||||||
- {id: 167, cat: Audio, desc: "Music Hip-Hop / Rap"}
|
|
||||||
- {id: 168, cat: Audio, desc: "Music Indie"}
|
|
||||||
- {id: 169, cat: Audio, desc: "Music Industrial"}
|
|
||||||
- {id: 170, cat: Audio, desc: "Music J-Pop"}
|
|
||||||
- {id: 171, cat: Audio, desc: "Music Jazz"}
|
|
||||||
- {id: 172, cat: Audio, desc: "Music Latin American"}
|
|
||||||
- {id: 173, cat: Audio, desc: "Music Melodic"}
|
|
||||||
- {id: 174, cat: Audio, desc: "Music Metal"}
|
|
||||||
- {id: 175, cat: Audio, desc: "Music Other"}
|
|
||||||
- {id: 176, cat: Audio, desc: "Music Pop"}
|
|
||||||
- {id: 177, cat: Audio, desc: "Music Punk"}
|
|
||||||
- {id: 178, cat: Audio, desc: "Music Radio Show"}
|
|
||||||
- {id: 179, cat: Audio, desc: "Music Reggae"}
|
|
||||||
- {id: 180, cat: Audio, desc: "Music Rhythm and blues"}
|
|
||||||
- {id: 181, cat: Audio, desc: "Music Rock"}
|
|
||||||
- {id: 182, cat: Audio, desc: "Music Soul"}
|
|
||||||
- {id: 183, cat: Audio, desc: "Music Soundtrack"}
|
|
||||||
- {id: 184, cat: Audio, desc: "Music Trance"}
|
|
||||||
- {id: 185, cat: Audio, desc: "Music Trip Hop"}
|
|
||||||
# Music Videos
|
|
||||||
- {id: 135, cat: Audio/Video, desc: "Music Videos Alternative"}
|
|
||||||
- {id: 136, cat: Audio/Video, desc: "Music Videos Bluegrass"}
|
|
||||||
- {id: 137, cat: Audio/Video, desc: "Music Videos Blues"}
|
|
||||||
- {id: 138, cat: Audio/Video, desc: "Music Videos Childrens"}
|
|
||||||
- {id: 139, cat: Audio/Video, desc: "Music Videos Christian"}
|
|
||||||
- {id: 186, cat: Audio/Video, desc: "Music Videos Classical"}
|
|
||||||
- {id: 187, cat: Audio/Video, desc: "Music Videos Comedy"}
|
|
||||||
- {id: 188, cat: Audio/Video, desc: "Music Videos Contemporary African"}
|
|
||||||
- {id: 189, cat: Audio/Video, desc: "Music Videos Country"}
|
|
||||||
- {id: 190, cat: Audio/Video, desc: "Music Videos Dance / Disco"}
|
|
||||||
- {id: 191, cat: Audio/Video, desc: "Music Videos Drum and Bass"}
|
|
||||||
- {id: 192, cat: Audio/Video, desc: "Music Videos Electro / Techno"}
|
|
||||||
- {id: 193, cat: Audio/Video, desc: "Music Videos Folk"}
|
|
||||||
- {id: 194, cat: Audio/Video, desc: "Music Videos Gospel"}
|
|
||||||
- {id: 195, cat: Audio/Video, desc: "Music Videos Grunge"}
|
|
||||||
- {id: 196, cat: Audio/Video, desc: "Music Videos Hip-Hop / Rap"}
|
|
||||||
- {id: 197, cat: Audio/Video, desc: "Music Videos Indie"}
|
|
||||||
- {id: 198, cat: Audio/Video, desc: "Music Videos Industrial"}
|
|
||||||
- {id: 199, cat: Audio/Video, desc: "Music Videos J-Pop"}
|
|
||||||
- {id: 200, cat: Audio/Video, desc: "Music Videos Jazz"}
|
|
||||||
- {id: 201, cat: Audio/Video, desc: "Music Videos Latin American"}
|
|
||||||
- {id: 202, cat: Audio/Video, desc: "Music Videos Melodic"}
|
|
||||||
- {id: 203, cat: Audio/Video, desc: "Music Videos Metal"}
|
|
||||||
- {id: 204, cat: Audio/Video, desc: "Music Videos Other"}
|
|
||||||
- {id: 205, cat: Audio/Video, desc: "Music Videos Pop"}
|
|
||||||
- {id: 206, cat: Audio/Video, desc: "Music Videos Punk"}
|
|
||||||
- {id: 207, cat: Audio/Video, desc: "Music Videos Radio Show"}
|
|
||||||
- {id: 208, cat: Audio/Video, desc: "Music Videos Reggae"}
|
|
||||||
- {id: 209, cat: Audio/Video, desc: "Music Videos Rhythm and blues"}
|
|
||||||
- {id: 210, cat: Audio/Video, desc: "Music Videos Rock"}
|
|
||||||
- {id: 211, cat: Audio/Video, desc: "Music Videos Soul"}
|
|
||||||
- {id: 212, cat: Audio/Video, desc: "Music Videos Soundtrack"}
|
|
||||||
- {id: 213, cat: Audio/Video, desc: "Music Videos Trance"}
|
|
||||||
- {id: 214, cat: Audio/Video, desc: "Music Videos Trip Hop"}
|
|
||||||
# Pictures
|
|
||||||
- {id: 140, cat: Other, desc: "Pictures Art"}
|
|
||||||
- {id: 141, cat: Other, desc: "Pictures Commercial"}
|
|
||||||
- {id: 142, cat: Other, desc: "Pictures Glamour"}
|
|
||||||
- {id: 215, cat: Other, desc: "Pictures Other"}
|
|
||||||
- {id: 216, cat: Other, desc: "Pictures Photojournalism"}
|
|
||||||
- {id: 217, cat: Other, desc: "Pictures Snapshots"}
|
|
||||||
- {id: 218, cat: Other, desc: "Pictures Sports"}
|
|
||||||
- {id: 219, cat: Other, desc: "Pictures Wildlife"}
|
|
||||||
# TV
|
|
||||||
- {id: 155, cat: TV, desc: "TV Action"}
|
|
||||||
- {id: 143, cat: TV, desc: "TV Adventure"}
|
|
||||||
- {id: 144, cat: TV, desc: "TV Biography"}
|
|
||||||
- {id: 145, cat: TV, desc: "TV Cartoons"}
|
|
||||||
- {id: 146, cat: TV, desc: "TV Comedy"}
|
|
||||||
- {id: 147, cat: TV, desc: "TV Concerts"}
|
|
||||||
- {id: 148, cat: TV, desc: "TV Crime"}
|
|
||||||
- {id: 149, cat: TV, desc: "TV Documentary"}
|
|
||||||
- {id: 156, cat: TV, desc: "TV Drama"}
|
|
||||||
- {id: 220, cat: TV, desc: "TV Family"}
|
|
||||||
- {id: 221, cat: TV, desc: "TV Fantasy"}
|
|
||||||
- {id: 222, cat: TV, desc: "TV Horror"}
|
|
||||||
- {id: 223, cat: TV, desc: "TV Musical"}
|
|
||||||
- {id: 224, cat: TV, desc: "TV Mystery"}
|
|
||||||
- {id: 225, cat: TV, desc: "TV Other"}
|
|
||||||
- {id: 226, cat: TV, desc: "TV Reality"}
|
|
||||||
- {id: 227, cat: TV, desc: "TV Romance"}
|
|
||||||
- {id: 228, cat: TV, desc: "TV Sci-Fi"}
|
|
||||||
- {id: 229, cat: TV, desc: "TV Short film"}
|
|
||||||
- {id: 230, cat: TV, desc: "TV Sports"}
|
|
||||||
- {id: 231, cat: TV, desc: "TV Talk show"}
|
|
||||||
- {id: 232, cat: TV, desc: "TV Thriller"}
|
|
||||||
- {id: 233, cat: TV, desc: "TV Trailers"}
|
|
||||||
- {id: 234, cat: TV, desc: "TV War"}
|
|
||||||
- {id: 235, cat: TV, desc: "TV Western"}
|
|
||||||
# cat 7 Miscellaneous has no subcats
|
|
||||||
|
|
||||||
modes:
|
|
||||||
search: [q]
|
|
||||||
tv-search: [q, season, ep, imdbid]
|
|
||||||
movie-search: [q, imdbid]
|
|
||||||
music-search: [q]
|
|
||||||
book-search: [q]
|
|
||||||
|
|
||||||
settings:
|
|
||||||
- name: cookie
|
|
||||||
type: text
|
|
||||||
label: Cookie
|
|
||||||
- name: info
|
|
||||||
type: info
|
|
||||||
label: How to get the Cookie
|
|
||||||
default: "<ol><li>Access this tracker with your browser</li><li>click on the <b>Apply Filter</b> button on the page to invoke the search and solve the challenge</li><li>Open the <b>DevTools</b> panel by pressing <b>F12</b></li><li>Select the <b>Network</b> tab</li><li>Click on the <b>Doc</b> button (Chrome Browser) or <b>HTML</b> button (FireFox)</li><li>Refresh the page by pressing <b>F5</b></li><li>Click on the first row entry</li><li>Select the <b>Headers</b> tab on the Right panel</li><li>Find <b>'cookie:'</b> in the <b>Request Headers</b> section</li><li><b>Select</b> and <b>Copy</b> the whole cookie string <i>(everything after 'cookie: ')</i> and <b>Paste</b> here.</li></ol>"
|
|
||||||
- name: sort
|
|
||||||
type: select
|
|
||||||
label: Sort requested from site
|
|
||||||
default: _
|
|
||||||
options:
|
|
||||||
_: created
|
|
||||||
S: seeders desc
|
|
||||||
s: seeders asc
|
|
||||||
B: size desc
|
|
||||||
b: size asc
|
|
||||||
|
|
||||||
login:
|
|
||||||
method: cookie
|
|
||||||
inputs:
|
|
||||||
cookie: "{{ .Config.cookie }}"
|
|
||||||
test:
|
|
||||||
path: /
|
|
||||||
selector: a[href^="/account_handler.php"]
|
|
||||||
|
|
||||||
download:
|
|
||||||
infohash:
|
|
||||||
hash:
|
|
||||||
selector: tr:has(td:contains("Torrent hash"))
|
|
||||||
filters:
|
|
||||||
# 907617B7 070AACB6 08CC213C 5277368D 217C1666
|
|
||||||
- name: replace
|
|
||||||
args: [" ", ""]
|
|
||||||
- name: regexp
|
|
||||||
args: ([A-F|0-9]{40})
|
|
||||||
title:
|
|
||||||
selector: td.ctable_header
|
|
||||||
filters:
|
|
||||||
- name: replace
|
|
||||||
args: ["Details for ", ""]
|
|
||||||
|
|
||||||
search:
|
|
||||||
paths:
|
|
||||||
# https://www.demonoid.is/files/?category=0&subcategory=0&quality=0&seeded=2&external=2&query=&sort=S
|
|
||||||
# https://www.demonoid.is/files/?c154&language=0&quality=0&seeded=2&query=world&to=1&sort=
|
|
||||||
# https://www.demonoid.is/files/?seeded=2&language=0&quality=0&to=1&query=world
|
|
||||||
- path: files/
|
|
||||||
inputs:
|
|
||||||
$raw: "{{ range .Categories }}c{{.}}&{{end}}"
|
|
||||||
# 0 seeded, 1 unseeded, 2 both
|
|
||||||
seeded: 2
|
|
||||||
# 0 all
|
|
||||||
quality: 0
|
|
||||||
# 0 Demonoid, 1 External, 2 Both
|
|
||||||
external: 2
|
|
||||||
# search in titles only
|
|
||||||
to: "{{ if .Query.IMDBID }}{{ else }}1{{ end }}"
|
|
||||||
query: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}"
|
|
||||||
sort: "{{ re_replace .Config.sort \"_\" \"\" }}"
|
|
||||||
# does not return imdb link in results
|
|
||||||
|
|
||||||
rows:
|
|
||||||
selector: table.font_12px tbody tr:has(td[class^="tone_1"]):not(:has(script))
|
|
||||||
after: 1
|
|
||||||
dateheaders:
|
|
||||||
selector: td.added_today:not(:contains("Sponsored links"))
|
|
||||||
filters:
|
|
||||||
- name: replace
|
|
||||||
args: ["Added ", ""]
|
|
||||||
- name: replace
|
|
||||||
args: ["on ", ""]
|
|
||||||
|
|
||||||
fields:
|
|
||||||
category:
|
|
||||||
text: 0
|
|
||||||
category|noappend:
|
|
||||||
selector: a.subcategory
|
|
||||||
attribute: href
|
|
||||||
optional: true
|
|
||||||
filters:
|
|
||||||
- name: querystring
|
|
||||||
args: subcategory
|
|
||||||
title:
|
|
||||||
selector: a[href^="/files/details/"]
|
|
||||||
details:
|
|
||||||
selector: a[href^="/files/details/"]
|
|
||||||
attribute: href
|
|
||||||
download:
|
|
||||||
selector: a[href^="/files/details/"]
|
|
||||||
attribute: href
|
|
||||||
description:
|
|
||||||
selector: td:nth-last-child(8)
|
|
||||||
size:
|
|
||||||
selector: td:nth-last-child(6)
|
|
||||||
grabs:
|
|
||||||
selector: td:nth-last-child(4)
|
|
||||||
seeders:
|
|
||||||
selector: td:nth-last-child(3)
|
|
||||||
leechers:
|
|
||||||
selector: td:nth-last-child(2)
|
|
||||||
downloadvolumefactor:
|
|
||||||
text: 0
|
|
||||||
uploadvolumefactor:
|
|
||||||
text: 1
|
|
||||||
# engine n/a
|
|
||||||
@@ -1,169 +0,0 @@
|
|||||||
---
|
|
||||||
id: desitorrents-api
|
|
||||||
name: DesiTorrents (API)
|
|
||||||
description: "Desitorrents is a Private Torrent Tracker for BOLLYWOOD / TOLLYWOOD / MUSIC"
|
|
||||||
language: en-US
|
|
||||||
type: private
|
|
||||||
encoding: UTF-8
|
|
||||||
links:
|
|
||||||
- https://desitorrents.tv/
|
|
||||||
- https://desitorrents.rocks/
|
|
||||||
- https://torrent.desi/
|
|
||||||
|
|
||||||
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: 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://desitorrents.tv/\" target=\"_blank\">DesiTorrents</a> account <i>My Security</i> page and clicking on the <b>API Token</b> tab."
|
|
||||||
- name: freeleech
|
|
||||||
type: checkbox
|
|
||||||
label: Search freeleech only
|
|
||||||
default: false
|
|
||||||
- name: sort
|
|
||||||
type: select
|
|
||||||
label: Sort requested from site
|
|
||||||
default: created_at
|
|
||||||
options:
|
|
||||||
created_at: created
|
|
||||||
seeders: seeders
|
|
||||||
size: size
|
|
||||||
name: title
|
|
||||||
- name: type
|
|
||||||
type: select
|
|
||||||
label: Order requested from site
|
|
||||||
default: desc
|
|
||||||
options:
|
|
||||||
desc: desc
|
|
||||||
asc: asc
|
|
||||||
- name: info_activity
|
|
||||||
type: info
|
|
||||||
label: Account Inactivity
|
|
||||||
default: "<ul><li>Accounts are regarded as inactive when users fail to sign into their accounts for more than 3 months (90 days). Inactive accounts are automatically disabled by a script that runs once every day.</li><li>For new accounts, members must generate some activity by downloading or uploading torrents in the first month (30 days) of their memberships.</li><li>Donors are exempt from automatic account disabling due to inactivity. If you wish to always maintain an active account consider donating.</li></ul>"
|
|
||||||
|
|
||||||
login:
|
|
||||||
path: /api/torrents
|
|
||||||
method: get
|
|
||||||
inputs: {} # TODO: remove in v10
|
|
||||||
error:
|
|
||||||
- selector: a[href*="/login"]
|
|
||||||
message:
|
|
||||||
text: "The API key was not accepted by {{ .Config.sitelink }}."
|
|
||||||
|
|
||||||
search:
|
|
||||||
paths:
|
|
||||||
# https://github.com/HDInnovations/UNIT3D-Community-Edition/wiki/Torrent-API-(UNIT3D-v8.x.x)
|
|
||||||
# https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php#L476
|
|
||||||
- path: "/api/torrents/filter"
|
|
||||||
response:
|
|
||||||
type: json
|
|
||||||
|
|
||||||
headers:
|
|
||||||
Authorization: ["Bearer {{ .Config.apikey }}"]
|
|
||||||
|
|
||||||
inputs:
|
|
||||||
# if we have an id based search, add Season and Episode as query in name for UNIT3D < v6. Else pass S/E Params for UNIT3D >= v6
|
|
||||||
name: "{{ .Keywords }}"
|
|
||||||
$raw: "{{ if .Query.Season }}&seasonNumber={{ .Query.Season }}{{ else }}{{ end }}{{ if .Query.Ep }}&episodeNumber={{ .Query.Ep }}{{ else }}{{ end }}{{ if .Query.TMDBID }}&tmdbId={{ .Query.TMDBID }}{{ else }}{{ end }}{{ if .Query.IMDBIDShort }}&imdbId={{ .Query.IMDBIDShort }}{{ else }}{{ end }}{{ if .Query.TVDBID }}&tvdbId={{ .Query.TVDBID }}{{ else }}{{ end }}{{ range .Categories }}&categories[]={{.}}{{end}}{{ if .Config.freeleech }}&free[]=100{{ else }}{{ end }}"
|
|
||||||
sortField: "{{ .Config.sort }}"
|
|
||||||
sortDirection: "{{ .Config.type }}"
|
|
||||||
perPage: 100
|
|
||||||
|
|
||||||
keywordsfilters:
|
|
||||||
- name: re_replace
|
|
||||||
args: ["\\.", " "]
|
|
||||||
|
|
||||||
rows:
|
|
||||||
selector: data
|
|
||||||
attribute: attributes
|
|
||||||
|
|
||||||
fields:
|
|
||||||
category:
|
|
||||||
selector: category_id
|
|
||||||
title:
|
|
||||||
selector: name
|
|
||||||
details:
|
|
||||||
selector: details_link
|
|
||||||
download:
|
|
||||||
selector: download_link
|
|
||||||
infohash:
|
|
||||||
selector: info_hash
|
|
||||||
poster:
|
|
||||||
selector: meta.poster
|
|
||||||
filters:
|
|
||||||
- name: replace
|
|
||||||
args: ["https://via.placeholder.com/90x135", ""]
|
|
||||||
imdbid:
|
|
||||||
selector: imdb_id
|
|
||||||
tmdbid:
|
|
||||||
selector: tmdb_id
|
|
||||||
tvdbid:
|
|
||||||
selector: tvdb_id
|
|
||||||
genre:
|
|
||||||
selector: meta.genres
|
|
||||||
filters:
|
|
||||||
- name: re_replace
|
|
||||||
args: ["(?i)^None$", ""]
|
|
||||||
- name: re_replace
|
|
||||||
args: ["(?i)(Science Fiction)", "Science_Fiction"]
|
|
||||||
- name: re_replace
|
|
||||||
args: ["(?i)(TV Movie)", "TV_Movie"]
|
|
||||||
- name: replace
|
|
||||||
args: [" & ", "_&_"]
|
|
||||||
description:
|
|
||||||
text: "{{ .Result.genre }}"
|
|
||||||
files:
|
|
||||||
selector: num_file
|
|
||||||
seeders:
|
|
||||||
selector: seeders
|
|
||||||
leechers:
|
|
||||||
selector: leechers
|
|
||||||
grabs:
|
|
||||||
selector: times_completed
|
|
||||||
date:
|
|
||||||
# "created_at": "2021-10-18T00:34:50.000000Z" is returned by Newtonsoft.Json.Linq as 18/10/2021 00:34:50
|
|
||||||
selector: created_at
|
|
||||||
filters:
|
|
||||||
- name: append
|
|
||||||
args: " +00:00" # GMT
|
|
||||||
- name: dateparse
|
|
||||||
args: "MM/dd/yyyy HH:mm:ss zzz"
|
|
||||||
size:
|
|
||||||
selector: size
|
|
||||||
downloadvolumefactor:
|
|
||||||
# api returns 0%, 25%, 50%, 75%, 100%
|
|
||||||
selector: freeleech
|
|
||||||
case:
|
|
||||||
0%: 1 # not free
|
|
||||||
25%: 0.75
|
|
||||||
50%: 0.5
|
|
||||||
75%: 0.25
|
|
||||||
100%: 0 # freeleech
|
|
||||||
"*": 0 # catch errors
|
|
||||||
uploadvolumefactor:
|
|
||||||
# api returns 0=false, 1=true
|
|
||||||
selector: double_upload
|
|
||||||
case:
|
|
||||||
0: 1 # normal
|
|
||||||
1: 2 # double
|
|
||||||
# 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 6.5.0 (custom)
|
|
||||||
@@ -1,188 +0,0 @@
|
|||||||
---
|
|
||||||
id: discfan
|
|
||||||
name: DiscFan
|
|
||||||
description: "DiscFan is a CHINESE Private Torrent Tracker for MOVIES / TV"
|
|
||||||
language: zh-CN
|
|
||||||
type: private
|
|
||||||
encoding: UTF-8
|
|
||||||
links:
|
|
||||||
- https://discfan.net/
|
|
||||||
|
|
||||||
caps:
|
|
||||||
categorymappings:
|
|
||||||
- {id: 401, cat: Movies, desc: "中国大陆(CHN)"}
|
|
||||||
- {id: 404, cat: Movies, desc: "中国香港特别行政区(HKG)"}
|
|
||||||
- {id: 405, cat: Movies, desc: "中国台湾省(TWN)"}
|
|
||||||
- {id: 402, cat: Movies, desc: "泰国(THA)"}
|
|
||||||
- {id: 403, cat: Movies, desc: "日本(JPN)"}
|
|
||||||
- {id: 406, cat: Movies, desc: "韩国(KOR)"}
|
|
||||||
- {id: 410, cat: Movies, desc: "世界(World)"}
|
|
||||||
- {id: 411, cat: TV, desc: "剧集(Series)"}
|
|
||||||
- {id: 414, cat: Audio, desc: "音乐(Music)"}
|
|
||||||
- {id: 413, cat: TV/Documentary, desc: "记录(Documentary)"}
|
|
||||||
- {id: 416, cat: TV, desc: "综艺(Variety Show)"}
|
|
||||||
- {id: 417, cat: TV/Sport, desc: "体育(Sports)"}
|
|
||||||
- {id: 419, cat: TV/Anime, desc: "动漫(Animation)"}
|
|
||||||
|
|
||||||
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: info_tpp
|
|
||||||
type: info
|
|
||||||
label: Results Per Page
|
|
||||||
default: For best results, change the <b>Torrents per page:</b> setting to <b>100</b> on your account profile.
|
|
||||||
- name: sort
|
|
||||||
type: select
|
|
||||||
label: Sort requested from site
|
|
||||||
default: 4
|
|
||||||
options:
|
|
||||||
4: created
|
|
||||||
7: seeders
|
|
||||||
5: size
|
|
||||||
1: title
|
|
||||||
- name: type
|
|
||||||
type: select
|
|
||||||
label: Order requested from site
|
|
||||||
default: desc
|
|
||||||
options:
|
|
||||||
desc: desc
|
|
||||||
asc: asc
|
|
||||||
|
|
||||||
login:
|
|
||||||
path: login.php
|
|
||||||
method: form
|
|
||||||
form: form[action="takelogin.php"]
|
|
||||||
captcha:
|
|
||||||
type: image
|
|
||||||
selector: img[alt="CAPTCHA"]
|
|
||||||
input: imagestring
|
|
||||||
inputs:
|
|
||||||
username: "{{ .Config.username }}"
|
|
||||||
password: "{{ .Config.password }}"
|
|
||||||
logout: ""
|
|
||||||
securelogin: ""
|
|
||||||
ssl: yes
|
|
||||||
trackerssl: yes
|
|
||||||
error:
|
|
||||||
- selector: td.embedded:has(h2:contains("失敗"))
|
|
||||||
message:
|
|
||||||
selector: td.text
|
|
||||||
test:
|
|
||||||
path: index.php
|
|
||||||
selector: a[href*="userdetails.php?id="]
|
|
||||||
|
|
||||||
search:
|
|
||||||
paths:
|
|
||||||
- path: torrents.php
|
|
||||||
inputs:
|
|
||||||
$raw: "{{ range .Categories }}cat{{.}}=1&{{end}}"
|
|
||||||
search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}"
|
|
||||||
# 0 incldead, 1 active, 2 dead
|
|
||||||
incldead: 0
|
|
||||||
# 0 all, 1 normal, 2 free, 3 2x, 4 2xfree, 5 50%, 6 2x50%, 7 30%
|
|
||||||
spstate: "{{ if .Config.freeleech }}2{{ else }}0{{ end }}"
|
|
||||||
# 0 title, 1 descr, 3 uploader, 4 imdburl
|
|
||||||
search_area: "{{ if .Query.IMDBID }}4{{ else }}0{{ end }}"
|
|
||||||
# 0 AND, 1 OR, 2 exact
|
|
||||||
search_mode: 0
|
|
||||||
sort: "{{ .Config.sort }}"
|
|
||||||
type: "{{ .Config.type }}"
|
|
||||||
notnewword: 1
|
|
||||||
|
|
||||||
rows:
|
|
||||||
selector: table.torrents > tbody > tr:has(table.torrentname)
|
|
||||||
|
|
||||||
fields:
|
|
||||||
category:
|
|
||||||
selector: a[href^="?cat="]
|
|
||||||
attribute: href
|
|
||||||
filters:
|
|
||||||
- name: querystring
|
|
||||||
args: cat
|
|
||||||
title_default:
|
|
||||||
selector: a[href^="details.php?id="]
|
|
||||||
title_optional:
|
|
||||||
optional: true
|
|
||||||
selector: a[title][href^="details.php?id="]
|
|
||||||
attribute: title
|
|
||||||
title:
|
|
||||||
text: "{{ if .Result.title_optional }}{{ .Result.title_optional }}{{ else }}{{ .Result.title_default }}{{ end }}"
|
|
||||||
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: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
|
|
||||||
category_title:
|
|
||||||
selector: a[href^="?cat="] > img
|
|
||||||
attribute: title
|
|
||||||
description:
|
|
||||||
selector: td:nth-child(2)
|
|
||||||
remove: a, img
|
|
||||||
filters:
|
|
||||||
- name: prepend
|
|
||||||
args: "cat={{ .Result.category_title }} - "
|
|
||||||
minimumratio:
|
|
||||||
text: 0.9
|
|
||||||
# NexusPHP v1.8.11 2024-03-27
|
|
||||||
@@ -1,164 +0,0 @@
|
|||||||
---
|
|
||||||
id: ebookbay
|
|
||||||
name: EBookBay
|
|
||||||
description: "EBook Bay (EBB) is a Public Torrent Tracker for E-BOOKS"
|
|
||||||
language: en-US
|
|
||||||
type: public
|
|
||||||
encoding: UTF-8
|
|
||||||
requestDelay: 2
|
|
||||||
links:
|
|
||||||
- http://ebb.la/ # site does not support https SSL_ERROR_BAD_CERT_DOMAIN
|
|
||||||
|
|
||||||
caps:
|
|
||||||
categorymappings:
|
|
||||||
- {id: "Action/Adventure", cat: Books/EBook, desc: "Action/Adventure"}
|
|
||||||
- {id: "Animals", cat: Books/EBook, desc: "Animals"}
|
|
||||||
- {id: "Arts", cat: Books/EBook, desc: "Arts"}
|
|
||||||
- {id: "Audio Books", cat: Audio/Audiobook, desc: "Audio Books"}
|
|
||||||
- {id: "Beauty", cat: Books/EBook, desc: "Beauty"}
|
|
||||||
- {id: "Business", cat: Books/EBook, desc: "Business"}
|
|
||||||
- {id: "Certification", cat: Books/EBook, desc: "Certification"}
|
|
||||||
- {id: "Children/Kids", cat: Books/EBook, desc: "Children/Kids"}
|
|
||||||
- {id: "Classic/Literary", cat: Books/EBook, desc: "Classic/Literary"}
|
|
||||||
- {id: "Comics", cat: Books/Comics, desc: "Comics"}
|
|
||||||
- {id: "Computer", cat: Books/EBook, desc: "Computer"}
|
|
||||||
- {id: "Contemporary", cat: Books/EBook, desc: "Contemporary"}
|
|
||||||
- {id: "Cooking", cat: Books/EBook, desc: "Cooking"}
|
|
||||||
- {id: "Crafts & Hobbies", cat: Books/EBook, desc: "Crafts & Hobbies"}
|
|
||||||
- {id: "Education", cat: Books/EBook, desc: "Education"}
|
|
||||||
- {id: "Entertainment", cat: Books/EBook, desc: "Entertainment"}
|
|
||||||
- {id: "Fantasy", cat: Books/EBook, desc: "Fantasy"}
|
|
||||||
- {id: "Gardening", cat: Books/EBook, desc: "Gardening"}
|
|
||||||
- {id: "Health", cat: Books/EBook, desc: "Health"}
|
|
||||||
- {id: "Historical Fiction", cat: Books/EBook, desc: "Historical Fiction"}
|
|
||||||
- {id: "History", cat: Books/EBook, desc: "History"}
|
|
||||||
- {id: "Horror", cat: Books/EBook, desc: "Horror"}
|
|
||||||
- {id: "Humorous", cat: Books/EBook, desc: "Humorous"}
|
|
||||||
- {id: "Internet", cat: Books/EBook, desc: "Internet"}
|
|
||||||
- {id: "Magazine", cat: Books/EBook, desc: "Magazine"}
|
|
||||||
- {id: "Marketing", cat: Books/EBook, desc: "Marketing"}
|
|
||||||
- {id: "Medical", cat: Books/EBook, desc: "Medical"}
|
|
||||||
- {id: "Mystery/Suspense", cat: Books/EBook, desc: "Mystery/Suspense"}
|
|
||||||
- {id: "Nonfiction", cat: Books/EBook, desc: "Nonfiction"}
|
|
||||||
- {id: "Novel", cat: Books/EBook, desc: "Novel"}
|
|
||||||
- {id: "Other", cat: Books/EBook, desc: "Other"}
|
|
||||||
- {id: "Paranormal", cat: Books/EBook, desc: "Paranormal"}
|
|
||||||
- {id: "Political", cat: Books/EBook, desc: "Political"}
|
|
||||||
- {id: "Real Estate", cat: Books/EBook, desc: "Real Estate"}
|
|
||||||
- {id: "Reference", cat: Books/EBook, desc: "Reference"}
|
|
||||||
- {id: "Religion", cat: Books/EBook, desc: "Religion"}
|
|
||||||
- {id: "Romance", cat: Books/EBook, desc: "Romance"}
|
|
||||||
- {id: "Sci-Fi", cat: Books/EBook, desc: "Sci-Fi"}
|
|
||||||
- {id: "Science", cat: Books/EBook, desc: "Science"}
|
|
||||||
- {id: "Self-Help", cat: Books/EBook, desc: "Self-Help"}
|
|
||||||
- {id: "Society", cat: Books/EBook, desc: "Society"}
|
|
||||||
- {id: "Software", cat: Books/EBook, desc: "Software"}
|
|
||||||
- {id: "Sports", cat: Books/EBook, desc: "Sports"}
|
|
||||||
- {id: "Technical", cat: Books/EBook, desc: "Technical"}
|
|
||||||
- {id: "Teen/Young Adult", cat: Books/EBook, desc: "Teen/Young Adult"}
|
|
||||||
- {id: "Textbook", cat: Books/EBook, desc: "Textbook"}
|
|
||||||
- {id: "Thriller", cat: Books/EBook, desc: "Thriller"}
|
|
||||||
- {id: "Travel", cat: Books/EBook, desc: "Travel"}
|
|
||||||
- {id: "Tutorial", cat: Books/EBook, desc: "Tutorial"}
|
|
||||||
- {id: "Western", cat: Books/EBook, desc: "Western"}
|
|
||||||
|
|
||||||
modes:
|
|
||||||
search: [q]
|
|
||||||
book-search: [q]
|
|
||||||
music-search: [q]
|
|
||||||
|
|
||||||
settings: []
|
|
||||||
|
|
||||||
download:
|
|
||||||
infohash:
|
|
||||||
hash:
|
|
||||||
selector: td:contains("Info Hash:") ~ td
|
|
||||||
filters:
|
|
||||||
- name: regexp
|
|
||||||
args: ([A-F|a-f|0-9]{40})
|
|
||||||
title:
|
|
||||||
selector: div#content > div.poststuff > div.postname
|
|
||||||
filters:
|
|
||||||
- name: trim
|
|
||||||
- name: validfilename
|
|
||||||
|
|
||||||
search:
|
|
||||||
paths:
|
|
||||||
# with just 5 results per page, try to grab up to 25 results
|
|
||||||
# http://ebb.la/?s=teeth
|
|
||||||
# http://ebb.la/page/2/?s=teeth
|
|
||||||
- path: /
|
|
||||||
- path: "page/2/"
|
|
||||||
- path: "page/3/"
|
|
||||||
- path: "page/4/"
|
|
||||||
- path: "page/5/"
|
|
||||||
inputs:
|
|
||||||
s: "{{ .Keywords }}"
|
|
||||||
|
|
||||||
headers:
|
|
||||||
User-Agent: ["Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36 Edg/115.0.1901.203"]
|
|
||||||
|
|
||||||
rows:
|
|
||||||
selector: "div#content > div.poststuff:has(~ div.entry a.download), div#content > div.poststuff ~ div.entry:has(a.download)"
|
|
||||||
after: 1
|
|
||||||
|
|
||||||
fields:
|
|
||||||
category:
|
|
||||||
text: Other
|
|
||||||
category|noappend:
|
|
||||||
selector: span.writer
|
|
||||||
filters:
|
|
||||||
- name: re_replace
|
|
||||||
args: ["(?i)\\bEbooks?\\b", ""]
|
|
||||||
- name: regexp
|
|
||||||
args: "E book under:\\s+(.+?)\\s?\\\xA0"
|
|
||||||
title:
|
|
||||||
selector: div.postname a
|
|
||||||
details:
|
|
||||||
selector: a.detail
|
|
||||||
attribute: href
|
|
||||||
download:
|
|
||||||
selector: a.detail
|
|
||||||
attribute: href
|
|
||||||
poster:
|
|
||||||
selector: img[src^="http"]:not(img[src*="images/default_cover.jpg"])
|
|
||||||
attribute: src
|
|
||||||
date:
|
|
||||||
text: now
|
|
||||||
size_optional:
|
|
||||||
optional: true
|
|
||||||
selector: p:contains("File Size")
|
|
||||||
filters:
|
|
||||||
- name: regexp
|
|
||||||
args: "File Size: (.+?)s?$"
|
|
||||||
size:
|
|
||||||
text: "{{ if .Result.size_optional }}{{ .Result.size_optional }}{{ else }}0 B{{ end }}"
|
|
||||||
seeders_optional:
|
|
||||||
optional: true
|
|
||||||
selector: p:contains("Seeds")
|
|
||||||
filters:
|
|
||||||
- name: regexp
|
|
||||||
args: "Seeds: (\\d+)"
|
|
||||||
seeders:
|
|
||||||
text: "{{ if .Result.seeders_optional }}{{ .Result.seeders_optional }}{{ else }}0{{ end }}"
|
|
||||||
leechers_optional:
|
|
||||||
optional: true
|
|
||||||
selector: p:contains("Peers")
|
|
||||||
filters:
|
|
||||||
- name: regexp
|
|
||||||
args: "Peers: (\\d+)"
|
|
||||||
leechers:
|
|
||||||
text: "{{ if .Result.leechers_optional }}{{ .Result.leechers_optional }}{{ else }}0{{ end }}"
|
|
||||||
grabs_optional:
|
|
||||||
optional: true
|
|
||||||
selector: p:contains("Completed Downloads")
|
|
||||||
filters:
|
|
||||||
- name: regexp
|
|
||||||
args: "Completed Downloads: (\\d+)"
|
|
||||||
grabs:
|
|
||||||
text: "{{ if .Result.grabs_optional }}{{ .Result.grabs_optional }}{{ else }}0{{ end }}"
|
|
||||||
downloadvolumefactor:
|
|
||||||
text: 0
|
|
||||||
uploadvolumefactor:
|
|
||||||
text: 1
|
|
||||||
# WordPress 2.5
|
|
||||||
@@ -1,193 +0,0 @@
|
|||||||
---
|
|
||||||
id: electro-torrent
|
|
||||||
name: Electro-Torrent
|
|
||||||
description: "Electro-Torrent is a POLISH Semi-Private Torrent Tracker for MOVIES / TV / GENERAL"
|
|
||||||
language: pl-PL
|
|
||||||
type: semi-private
|
|
||||||
encoding: UTF-8
|
|
||||||
links:
|
|
||||||
- https://electro-torrent.pl/
|
|
||||||
legacylinks:
|
|
||||||
- http://electro-torrent.pl/
|
|
||||||
|
|
||||||
caps:
|
|
||||||
categorymappings:
|
|
||||||
# from https://electro-torrent.pl/szukaj.php
|
|
||||||
# don't forget to update the category case block below
|
|
||||||
- {id: 1298, cat: Movies/SD, desc: "Filmy - Zwiastuny"}
|
|
||||||
- {id: 1, cat: Movies/SD, desc: "Filmy XviD/DivX"}
|
|
||||||
- {id: 769, cat: Movies/HD, desc: "Filmy 1080p AVC"}
|
|
||||||
- {id: 770, cat: Movies/HD, desc: "Filmy x264/1080p"}
|
|
||||||
- {id: 4, cat: Movies/HD, desc: "Filmy x264/720p"}
|
|
||||||
- {id: 642, cat: Movies/HD, desc: "Filmy x264/h264"}
|
|
||||||
- {id: 723, cat: Movies/UHD, desc: "Filmy 4K UHD"}
|
|
||||||
- {id: 1160, cat: Movies/UHD, desc: "Filmy x265/2160p"}
|
|
||||||
- {id: 1116, cat: Movies/HD, desc: "Filmy x265/1080p"}
|
|
||||||
- {id: 1204, cat: Movies/HD, desc: "Filmy x265/720p"}
|
|
||||||
- {id: 596, cat: Movies/HD, desc: "Filmy x265/h265"}
|
|
||||||
- {id: 1072, cat: Movies, desc: "Filmy - WAREZY"}
|
|
||||||
- {id: 3, cat: Movies/DVD, desc: "Filmy DVD"}
|
|
||||||
- {id: 5, cat: Movies/3D, desc: "Filmy 3D"}
|
|
||||||
- {id: 362, cat: Movies/SD, desc: "Filmy IVO"}
|
|
||||||
- {id: 696, cat: Movies/SD, desc: "Filmy TS/CAM"}
|
|
||||||
- {id: 1255, cat: TV, desc: "TV/Seriale - Warezy"}
|
|
||||||
- {id: 7, cat: TV, desc: "TV/Seriale"}
|
|
||||||
- {id: 8, cat: XXX, desc: "Erotyka"}
|
|
||||||
- {id: 10, cat: Audio, desc: "Muzyka"}
|
|
||||||
- {id: 11, cat: PC, desc: "Programy"}
|
|
||||||
- {id: 12, cat: PC/Mobile-Other, desc: "GSM/PDA"}
|
|
||||||
- {id: 13, cat: Console, desc: "Konsole"}
|
|
||||||
- {id: 14, cat: PC/Games, desc: "Gry PC"}
|
|
||||||
- {id: 1045, cat: PC/Games, desc: "Gry PC - Warezy"}
|
|
||||||
- {id: 15, cat: Movies, desc: "Dla Dzieci"}
|
|
||||||
- {id: 16, cat: Books, desc: "Książki"}
|
|
||||||
- {id: 525, cat: PC/Mac, desc: "Mac"}
|
|
||||||
- {id: 18, cat: PC, desc: "Linux"}
|
|
||||||
- {id: 19, cat: TV/Sport, desc: "Sport"}
|
|
||||||
- {id: 907, cat: TV/Anime, desc: "Anime"}
|
|
||||||
- {id: 21, cat: Other, desc: "Inne"}
|
|
||||||
|
|
||||||
modes:
|
|
||||||
search: [q]
|
|
||||||
tv-search: [q, season, ep]
|
|
||||||
movie-search: [q]
|
|
||||||
music-search: [q]
|
|
||||||
book-search: [q]
|
|
||||||
|
|
||||||
settings:
|
|
||||||
- name: cookie
|
|
||||||
type: text
|
|
||||||
label: Cookie
|
|
||||||
- name: info
|
|
||||||
type: info
|
|
||||||
label: How to get the Cookie
|
|
||||||
default: "<ol><li>Login to this tracker with your browser</li><li>Open the <b>DevTools</b> panel by pressing <b>F12</b></li><li>Select the <b>Network</b> tab</li><li>Click on the <b>Doc</b> button (Chrome Browser) or <b>HTML</b> button (FireFox)</li><li>Refresh the page by pressing <b>F5</b></li><li>Click on the first row entry</li><li>Select the <b>Headers</b> tab on the Right panel</li><li>Find <b>'cookie:'</b> in the <b>Request Headers</b> section</li><li><b>Select</b> and <b>Copy</b> the whole cookie string <i>(everything after 'cookie: ')</i> and <b>Paste</b> here.</li></ol>"
|
|
||||||
- name: useragent
|
|
||||||
type: text
|
|
||||||
label: User-Agent
|
|
||||||
- name: info_useragent
|
|
||||||
type: info
|
|
||||||
label: How to get the User-Agent
|
|
||||||
default: "<ol><li>From the same place you fetched the cookie,</li><li>Find <b>'user-agent:'</b> in the <b>Request Headers</b> section</li><li><b>Select</b> and <b>Copy</b> the whole user-agent string <i>(everything after 'user-agent: ')</i> and <b>Paste</b> here.</li></ol>"
|
|
||||||
- name: 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
|
|
||||||
|
|
||||||
login:
|
|
||||||
method: cookie
|
|
||||||
inputs:
|
|
||||||
cookie: "{{ .Config.cookie }}"
|
|
||||||
test:
|
|
||||||
path: /
|
|
||||||
selector: a[href$="/logout.php"]
|
|
||||||
|
|
||||||
search:
|
|
||||||
# http://electro-torrent.pl/szukaj.php?search=&typ=torrent&cat=0
|
|
||||||
headers:
|
|
||||||
User-Agent: ["{{ .Config.useragent }}"]
|
|
||||||
paths:
|
|
||||||
- path: szukaj.php
|
|
||||||
inputs:
|
|
||||||
# does not support multi cat selection, defaulting to all
|
|
||||||
# $raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
|
|
||||||
cat: 0
|
|
||||||
typ: torrent
|
|
||||||
search: "{{ .Keywords }}"
|
|
||||||
|
|
||||||
rows:
|
|
||||||
selector: table.test5 > tbody > tr > td > div[id]:has(a[href*="/download/"])
|
|
||||||
|
|
||||||
fields:
|
|
||||||
category:
|
|
||||||
selector: div#kategoria-gatunek-1
|
|
||||||
case:
|
|
||||||
"div#kategoria-gatunek-1:contains(\"Filmy - Zwiastuny\")": 1298
|
|
||||||
"div#kategoria-gatunek-1:contains(\"Filmy XviD/DivX\")": 1
|
|
||||||
"div#kategoria-gatunek-1:contains(\"Filmy 1080p AVC\")": 769
|
|
||||||
"div#kategoria-gatunek-1:contains(\"Filmy x264/1080p\")": 770
|
|
||||||
"div#kategoria-gatunek-1:contains(\"Filmy x264/720p\")": 4
|
|
||||||
"div#kategoria-gatunek-1:contains(\"Filmy x264/h264\")": 642
|
|
||||||
"div#kategoria-gatunek-1:contains(\"Filmy 4K UHD\")": 723
|
|
||||||
"div#kategoria-gatunek-1:contains(\"Filmy x265/2160p\")": 1160
|
|
||||||
"div#kategoria-gatunek-1:contains(\"Filmy x265/1080p\")": 1116
|
|
||||||
"div#kategoria-gatunek-1:contains(\"Filmy x265/720p\")": 1204
|
|
||||||
"div#kategoria-gatunek-1:contains(\"Filmy x265/h265\")": 596
|
|
||||||
"div#kategoria-gatunek-1:contains(\"Filmy - WAREZY\")": 1072
|
|
||||||
"div#kategoria-gatunek-1:contains(\"Filmy DVD\")": 3
|
|
||||||
"div#kategoria-gatunek-1:contains(\"Filmy 3D\")": 5
|
|
||||||
"div#kategoria-gatunek-1:contains(\"Filmy IVO\")": 362
|
|
||||||
"div#kategoria-gatunek-1:contains(\"Filmy TS/CAM\")": 696
|
|
||||||
"div#kategoria-gatunek-1:contains(\"TV/Seriale - Warezy\")": 1255
|
|
||||||
"div#kategoria-gatunek-1:contains(\"TV/Seriale\")": 7
|
|
||||||
"div#kategoria-gatunek-1:contains(\"Erotyka\")": 8
|
|
||||||
"div#kategoria-gatunek-1:contains(\"Muzyka\")": 10
|
|
||||||
"div#kategoria-gatunek-1:contains(\"Programy\")": 11
|
|
||||||
"div#kategoria-gatunek-1:contains(\"GSM/PDA\")": 12
|
|
||||||
"div#kategoria-gatunek-1:contains(\"Konsole\")": 13
|
|
||||||
"div#kategoria-gatunek-1:contains(\"Gry PC - Warezy\")": 1045
|
|
||||||
"div#kategoria-gatunek-1:contains(\"Gry PC\")": 14
|
|
||||||
"div#kategoria-gatunek-1:contains(\"Dla Dzieci\")": 15
|
|
||||||
"div#kategoria-gatunek-1:contains(\"Książki\")": 16
|
|
||||||
"div#kategoria-gatunek-1:contains(\"Mac\")": 525
|
|
||||||
"div#kategoria-gatunek-1:contains(\"Linux\")": 18
|
|
||||||
"div#kategoria-gatunek-1:contains(\"Sport\")": 19
|
|
||||||
"div#kategoria-gatunek-1:contains(\"Anime\")": 907
|
|
||||||
"div#kategoria-gatunek-1:contains(\"Inne\")": 21
|
|
||||||
title_phase1:
|
|
||||||
selector: a[href^="/torrent/"]
|
|
||||||
attribute: title
|
|
||||||
title_multilang:
|
|
||||||
selector: a[href^="/torrent/"]
|
|
||||||
attribute: title
|
|
||||||
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:
|
|
||||||
text: "{{ if .Config.multilang }}{{ .Result.title_multilang }}{{ else }}{{ .Result.title_phase1 }}{{ end }}"
|
|
||||||
details:
|
|
||||||
selector: a[href^="/torrent/"]
|
|
||||||
attribute: href
|
|
||||||
download:
|
|
||||||
selector: a[href*="/download/"]
|
|
||||||
attribute: href
|
|
||||||
poster:
|
|
||||||
selector: img.browse_poster
|
|
||||||
attribute: src
|
|
||||||
date:
|
|
||||||
selector: td.descr3
|
|
||||||
filters:
|
|
||||||
- name: regexp
|
|
||||||
args: (\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2})
|
|
||||||
- name: append
|
|
||||||
args: " +01:00" # CET
|
|
||||||
- name: dateparse
|
|
||||||
args: "yyyy-MM-dd HH:mm:ss zzz"
|
|
||||||
size:
|
|
||||||
selector: td.descr3
|
|
||||||
filters:
|
|
||||||
- name: regexp
|
|
||||||
args: (\d{1,4}\.\d{2}\s+?[T|G|M|k]B)
|
|
||||||
seeders:
|
|
||||||
selector: font[color="green"] > b, font[color="red"] > b
|
|
||||||
leechers:
|
|
||||||
selector: font[color="green"]:nth-of-type(2) > b, font[color="red"]:nth-of-type(2) > b
|
|
||||||
grabs:
|
|
||||||
selector: td.descr3
|
|
||||||
filters:
|
|
||||||
- name: regexp
|
|
||||||
args: (\d{1,4}) razy
|
|
||||||
downloadvolumefactor:
|
|
||||||
text: 0
|
|
||||||
uploadvolumefactor:
|
|
||||||
text: 1
|
|
||||||
# engine n/a
|
|
||||||
@@ -1,154 +0,0 @@
|
|||||||
---
|
|
||||||
id: extratorrent-st
|
|
||||||
name: ExtraTorrent.st
|
|
||||||
description: "ExtraTorrent.st is a Public tracker for MOVIE / TV / GENERAL magnets"
|
|
||||||
language: en-US
|
|
||||||
type: public
|
|
||||||
encoding: UTF-8
|
|
||||||
links:
|
|
||||||
- https://extratorrent.st/
|
|
||||||
- https://extratorrent.ninjaproxy1.com/
|
|
||||||
- https://extratorrent.proxyninja.org/
|
|
||||||
legacylinks:
|
|
||||||
- https://extratorrent.nocensor.art/
|
|
||||||
- https://extratorrent.unblockit.bio/
|
|
||||||
- https://extratorrent.unblockit.boo/
|
|
||||||
- https://extratorrent.mrunblock.guru/
|
|
||||||
- https://extratorrent.unblockit.click/
|
|
||||||
- https://extratorrent.unblockit.asia/
|
|
||||||
- https://extratorrent.unblockit.mov/
|
|
||||||
- https://extratorrent.mrunblock.life/
|
|
||||||
- https://extratorrent.unblockit.rsvp/
|
|
||||||
- https://extratorrent.nocensor.click/
|
|
||||||
- https://extratorrent.unblockit.vegas/
|
|
||||||
- https://extratorrent.unblockit.esq/
|
|
||||||
- https://extratorrent.unblockit.zip/
|
|
||||||
- https://extratorrent.unblockit.foo/
|
|
||||||
- https://extratorrent.unblockit.ing/
|
|
||||||
- https://extratorrent.mrunblock.bond/
|
|
||||||
- https://extratorrent.nocensor.cloud/
|
|
||||||
- https://extratorrent.unblockit.date/
|
|
||||||
- https://extratorrent.unblockit.dad/
|
|
||||||
- https://extratorrent.unblockit.africa/
|
|
||||||
- https://extratorrent.unblockit.casa/ # 502
|
|
||||||
|
|
||||||
caps:
|
|
||||||
categorymappings:
|
|
||||||
- {id: Movies, cat: Movies, desc: Movies}
|
|
||||||
- {id: Highres Movies, cat: Movies/HD, desc: Movies HD}
|
|
||||||
- {id: UltraHD, cat: Movies/UHD, desc: Movies UHD}
|
|
||||||
- {id: 3D Movies, cat: Movies/3D, desc: Movies 3D}
|
|
||||||
- {id: Bollywood, cat: Movies, desc: Bollywood}
|
|
||||||
- {id: Movie clips, cat: Movies, desc: Movies clips}
|
|
||||||
- {id: DVD, cat: Movies/DVD, desc: Movies DVD}
|
|
||||||
- {id: MP4, cat: Movies, desc: Movies MP4}
|
|
||||||
- {id: Dubbed Movies, cat: Movies/Foreign, desc: Movies Dubbed}
|
|
||||||
- {id: Other Movies, cat: Movies/Other, desc: Movies Other}
|
|
||||||
- {id: Documentary, cat: TV/Documentary, desc: Documentary}
|
|
||||||
- {id: TV, cat: TV, desc: TV}
|
|
||||||
- {id: MP3, cat: Audio/MP3, desc: Music MP3}
|
|
||||||
- {id: AAC, cat: Audio, desc: Music AAC}
|
|
||||||
- {id: Lossless, cat: Audio/Lossless, desc: Music Lossless}
|
|
||||||
- {id: Music videos, cat: Audio/Video, desc: Music Videos}
|
|
||||||
- {id: Other Music, cat: Audio/Other, desc: Music Other}
|
|
||||||
- {id: Radio Shows, cat: Audio/Other, desc: Music Radio}
|
|
||||||
- {id: Video, cat: XXX, desc: Adult / Porn}
|
|
||||||
- {id: "Adult / Porn", cat: XXX, desc: Adult / Porn}
|
|
||||||
- {id: Pictures, cat: XXX/ImageSet, desc: Adult Pictures}
|
|
||||||
- {id: Magazines, cat: XXX/Other, desc: Adult Magazines}
|
|
||||||
- {id: Games, cat: XXX/Other, desc: Adult Games}
|
|
||||||
- {id: Hentai, cat: XXX/Other, desc: Adult Hentai}
|
|
||||||
- {id: Windows, cat: PC, desc: Software Windows}
|
|
||||||
- {id: Android, cat: PC/Mobile-Android, desc: Software Android}
|
|
||||||
- {id: Mac, cat: PC/Mac, desc: Software Mac}
|
|
||||||
- {id: Linux, cat: PC, desc: Software Linux}
|
|
||||||
- {id: PC Games, cat: PC/Games, desc: PC Games}
|
|
||||||
- {id: NDS, cat: Console/NDS, desc: Games NDS}
|
|
||||||
- {id: PS3, cat: Console/PS3, desc: Games PS3}
|
|
||||||
- {id: PS4, cat: Console/PS4, desc: Games PS4}
|
|
||||||
- {id: PSP, cat: Console/PSP, desc: Games PSP}
|
|
||||||
- {id: Wii, cat: Console/Wii, desc: Games Wii}
|
|
||||||
- {id: Xbox360, cat: Console/XBox 360, desc: Games Xbox360}
|
|
||||||
- {id: Switch, cat: Console/Other, desc: Games Switch}
|
|
||||||
- {id: Other Games, cat: Console/Other, desc: Games Other}
|
|
||||||
- {id: English-translated, cat: TV/Anime, desc: Anime English-translated}
|
|
||||||
- {id: Anime, cat: TV/Anime, desc: Anime}
|
|
||||||
- {id: Audio books, cat: Audio/Audiobook, desc: Books Audiobook}
|
|
||||||
- {id: Comics, cat: Books/Comics, desc: Books Comics}
|
|
||||||
- {id: Ebooks, cat: Books/EBook, desc: Books Ebook}
|
|
||||||
- {id: Other, cat: Other/Misc, desc: Other}
|
|
||||||
- {id: Other Applications, cat: PC, desc: Other Applications}
|
|
||||||
|
|
||||||
modes:
|
|
||||||
search: [q]
|
|
||||||
tv-search: [q, season, ep]
|
|
||||||
movie-search: [q]
|
|
||||||
music-search: [q]
|
|
||||||
book-search: [q]
|
|
||||||
|
|
||||||
settings:
|
|
||||||
- name: flaresolverr
|
|
||||||
type: info
|
|
||||||
label: FlareSolverr
|
|
||||||
default: This site may use Cloudflare DDoS Protection, therefore Prowlarr requires <a href="https://wiki.servarr.com/prowlarr/faq#can-i-use-flaresolverr-indexers" target="_blank" rel="noreferrer">FlareSolverr</a> to access it.
|
|
||||||
|
|
||||||
search:
|
|
||||||
paths:
|
|
||||||
# https://extratorrent.st/search/?srt=added&order=desc&search=captain&new=1&x=0&y=0
|
|
||||||
- path: "{{ if .Keywords }}search/?srt=added&order=desc&search={{ .Keywords }}&new=1&x=0&y=0{{ else }}{{ end }}"
|
|
||||||
keywordsfilters:
|
|
||||||
- name: re_replace
|
|
||||||
args: ["[\\s]+", "."]
|
|
||||||
|
|
||||||
rows:
|
|
||||||
selector: tr[class^="tl"]:has(a[href^="magnet:?xt="])
|
|
||||||
filters:
|
|
||||||
- name: andmatch
|
|
||||||
|
|
||||||
fields:
|
|
||||||
category:
|
|
||||||
selector: span.c_tor
|
|
||||||
filters:
|
|
||||||
- name: replace
|
|
||||||
args: ["in ", ""]
|
|
||||||
- name: trim
|
|
||||||
title:
|
|
||||||
selector: a[href^="/torrent/"]
|
|
||||||
details:
|
|
||||||
selector: a[href^="/torrent/"]
|
|
||||||
attribute: href
|
|
||||||
download:
|
|
||||||
selector: a[href^="magnet:?xt="]
|
|
||||||
attribute: href
|
|
||||||
date:
|
|
||||||
# 8m , 13h, 2d , 3w , 1m , 1y # site uses m for both minutes and months!?!?
|
|
||||||
selector: td:nth-last-of-type(5)
|
|
||||||
filters:
|
|
||||||
- name: replace
|
|
||||||
args: ["m", " minutes"]
|
|
||||||
- name: replace
|
|
||||||
args: ["h", " hours"]
|
|
||||||
- name: replace
|
|
||||||
args: ["y", " years"]
|
|
||||||
- name: replace
|
|
||||||
args: ["d", " days"]
|
|
||||||
- name: replace
|
|
||||||
args: ["w", " weeks"]
|
|
||||||
- name: timeago
|
|
||||||
size:
|
|
||||||
selector: td:nth-last-of-type(4)
|
|
||||||
seeders_optional:
|
|
||||||
optional: true
|
|
||||||
selector: td.sy, td.sn
|
|
||||||
seeders:
|
|
||||||
text: "{{ if .Result.seeders_optional }}{{ .Result.seeders_optional }}{{ else }}0{{ end }}"
|
|
||||||
leechers_optional:
|
|
||||||
optional: true
|
|
||||||
selector: td.ly, td.ln
|
|
||||||
leechers:
|
|
||||||
text: "{{ if .Result.leechers_optional }}{{ .Result.leechers_optional }}{{ else }}0{{ end }}"
|
|
||||||
downloadvolumefactor:
|
|
||||||
text: 0
|
|
||||||
uploadvolumefactor:
|
|
||||||
text: 1
|
|
||||||
# engine n/a
|
|
||||||
@@ -1,156 +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/english-translated/", cat: TV/Anime, desc: "Anime English Translated"}
|
|
||||||
- {id: "/applications/", cat: PC, desc: Apps}
|
|
||||||
- {id: "/applications/android/", cat: PC/Mobile-Android, desc: "Apps Android"}
|
|
||||||
- {id: "/applications/ios/", cat: PC/Mobile-iOS, desc: "Apps iOS"}
|
|
||||||
- {id: "/applications/linux/", cat: PC, desc: "Apps Linux"}
|
|
||||||
- {id: "/applications/mac/", cat: PC/Mac, desc: "Apps Mac"}
|
|
||||||
- {id: "/applications/other-applications/", cat: PC/Mobile-Other, desc: "Apps Other"}
|
|
||||||
- {id: "/applications/windows/", cat: PC/0day, desc: "Apps Windows"}
|
|
||||||
- {id: "/books/", cat: Books, desc: Books}
|
|
||||||
- {id: "/books/audio-books/", cat: Audio/Audiobook, desc: "Books Audiobooks"}
|
|
||||||
- {id: "/books/comics/", cat: Books/Comics, desc: "Books Comics"}
|
|
||||||
- {id: "/books/ebooks/", cat: Books/EBook, desc: "Books Ebooks"}
|
|
||||||
- {id: "/games/", cat: PC/Games, desc: Games}
|
|
||||||
- {id: "/games/nds/", cat: Console/NDS, desc: "Games NDS"}
|
|
||||||
- {id: "/games/other-games/", cat: Console/Other, desc: "Games Other"}
|
|
||||||
- {id: "/games/pc-games/", cat: PC/Games, desc: "Games PC"}
|
|
||||||
- {id: "/games/ps3/", cat: Console/PS3, desc: "Games PS3"}
|
|
||||||
- {id: "/games/ps4/", cat: Console/PS4, desc: "Games PS4"}
|
|
||||||
- {id: "/games/psp/", cat: Console/PSP, desc: "Games PSP"}
|
|
||||||
- {id: "/games/switch/", cat: Console/Other, desc: "Games Switch"}
|
|
||||||
- {id: "/games/wii/", cat: Console/Wii, desc: "Games Wii"}
|
|
||||||
- {id: "/games/xbox360/", cat: Console/XBox 360, desc: "Games Xbox360"}
|
|
||||||
- {id: "/games/mac/", cat: PC/Mac, desc: "Games Mac"}
|
|
||||||
- {id: "/movies/", cat: Movies, desc: Movies}
|
|
||||||
- {id: "/movies/3d-movies/", cat: Movies/3D, desc: "Movies 3D"}
|
|
||||||
- {id: "/movies/bollywood/", cat: Movies, desc: "Movies Bollywood"}
|
|
||||||
- {id: "/movies/documentary/", cat: Movies, desc: "Movies Documentary"}
|
|
||||||
- {id: "/movies/dubbed-movies/", cat: Movies, desc: "Movies Dubbed"}
|
|
||||||
- {id: "/movies/dvd/", cat: Movies/DVD, desc: "Movies DVD"}
|
|
||||||
- {id: "/movies/highres-movies/", cat: Movies/HD, desc: "Movies Highres"}
|
|
||||||
- {id: "/movies/mp4/", cat: Movies, desc: "Movies MP4"}
|
|
||||||
- {id: "/movies/other-movies/", cat: Movies, desc: "Movies Other Movies"}
|
|
||||||
- {id: "/movies/ultrahd/", cat: Movies/UHD, desc: "Movies UltraHD"}
|
|
||||||
- {id: "/movies/music-videos/", cat: Audio/Video, desc: "Movies Music videos"}
|
|
||||||
- {id: "/movies/movie-clips/", cat: Movies/Other, desc: "Movies Movie clips"}
|
|
||||||
- {id: "/music/", cat: Audio, desc: Music}
|
|
||||||
- {id: "/music/aac/", cat: Audio, desc: "Music AAC"}
|
|
||||||
- {id: "/music/lossless/", cat: Audio/Lossless, desc: "Music Lossless"}
|
|
||||||
- {id: "/music/mp3/", cat: Audio/MP3, desc: "Music MP3"}
|
|
||||||
- {id: "/music/other-music/", cat: Audio/Other, desc: "Music Other"}
|
|
||||||
- {id: "/music/radio-shows/", cat: Audio, desc: "Music Radio Shows"}
|
|
||||||
- {id: "/other/", cat: Other, desc: Other}
|
|
||||||
- {id: "/tv/", cat: TV, desc: TV}
|
|
||||||
- {id: "/xxx/", cat: XXX, desc: XXX}
|
|
||||||
- {id: "/xxx/games/", cat: XXX/Other, desc: "XXX Games"}
|
|
||||||
- {id: "/xxx/hentai/", cat: XXX/Other, desc: "XXX Hentai"}
|
|
||||||
- {id: "/xxx/magazines/", cat: XXX/Other, desc: "XXX Magazines"}
|
|
||||||
- {id: "/xxx/pictures/", cat: XXX/ImageSet, desc: "XXX Pictures"}
|
|
||||||
- {id: "/xxx/video/", cat: XXX, desc: "XXX Video"}
|
|
||||||
- {id: "/video/", cat: XXX, desc: "XXX Video"}
|
|
||||||
|
|
||||||
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: 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: flaresolverr
|
|
||||||
type: info
|
|
||||||
label: FlareSolverr
|
|
||||||
default: This site may use Cloudflare DDoS Protection, therefore Prowlarr requires <a href="https://wiki.servarr.com/prowlarr/faq#can-i-use-flaresolverr-indexers" target="_blank" rel="noreferrer">FlareSolverr</a> to access it.
|
|
||||||
|
|
||||||
download:
|
|
||||||
selectors:
|
|
||||||
- selector: a[href^="magnet:?xt="]
|
|
||||||
attribute: href
|
|
||||||
|
|
||||||
search:
|
|
||||||
paths:
|
|
||||||
- path: "{{ if .Keywords }}search/{{ .Keywords }}/?order={{ .Config.sort }}&sort={{ .Config.type }}{{ else }}latest/{{ end }}"
|
|
||||||
- path: "{{ if .Keywords }}search/{{ .Keywords }}/2/?order={{ .Config.sort }}&sort={{ .Config.type }}{{ else }}latest/2/{{ end }}"
|
|
||||||
followredirect: true
|
|
||||||
|
|
||||||
keywordsfilters:
|
|
||||||
- name: tolower
|
|
||||||
- name: trim
|
|
||||||
- name: re_replace
|
|
||||||
args: ["[^\\w]+", "-"]
|
|
||||||
|
|
||||||
rows:
|
|
||||||
selector: table.table-striped > tbody > tr
|
|
||||||
|
|
||||||
fields:
|
|
||||||
category_optional:
|
|
||||||
selector: td:nth-child(1) div div a:last-child
|
|
||||||
attribute: href
|
|
||||||
optional: true
|
|
||||||
category:
|
|
||||||
text: "{{ if .Result.category_optional }}{{ .Result.category_optional }}{{ else }}/other/{{ end }}"
|
|
||||||
title:
|
|
||||||
selector: td:nth-child(1) div a
|
|
||||||
details:
|
|
||||||
selector: td:nth-child(1) div a
|
|
||||||
attribute: href
|
|
||||||
download:
|
|
||||||
selector: td:nth-child(1) div a
|
|
||||||
attribute: href
|
|
||||||
size:
|
|
||||||
selector: td:nth-child(2)
|
|
||||||
files_optional:
|
|
||||||
selector: td:nth-child(3)
|
|
||||||
optional: true
|
|
||||||
files:
|
|
||||||
text: "{{ if .Result.files_optional }}{{ .Result.files_optional }}{{ else }}0{{ end }}"
|
|
||||||
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
|
|
||||||
@@ -1,114 +0,0 @@
|
|||||||
---
|
|
||||||
id: eztv
|
|
||||||
name: EZTV
|
|
||||||
description: "EZTV is a Public torrent site for TV shows"
|
|
||||||
language: en-US
|
|
||||||
type: public
|
|
||||||
encoding: UTF-8
|
|
||||||
links:
|
|
||||||
- https://eztvx.to/
|
|
||||||
- https://eztv.wf/
|
|
||||||
- https://eztv.tf/
|
|
||||||
- https://eztv.yt/
|
|
||||||
- https://eztv1.xyz/
|
|
||||||
- https://eztv.abcproxy.org/
|
|
||||||
- https://eztv.unblockit.casa/
|
|
||||||
- https://eztv.unblockninja.com/
|
|
||||||
- https://eztv.ninjaproxy1.com/
|
|
||||||
- https://eztv.proxyninja.org/
|
|
||||||
legacylinks:
|
|
||||||
- https://eztv.ag/ # redirects to .re
|
|
||||||
- https://eztv.it/ # redirects to .re
|
|
||||||
- https://eztv.ch/ # redirects to .re
|
|
||||||
- https://eztv.io/
|
|
||||||
- https://eztv.mrunblock.guru/
|
|
||||||
- https://eztv.unblockit.click/
|
|
||||||
- https://eztv.unblockit.asia/
|
|
||||||
- https://eztv.unblockit.mov/
|
|
||||||
- https://eztv.mrunblock.life/
|
|
||||||
- https://eztv.unblockit.rsvp/
|
|
||||||
- https://eztv.nocensor.click/
|
|
||||||
- https://eztv.unblockit.vegas/
|
|
||||||
- https://eztv.unblockit.esq/
|
|
||||||
- https://eztv.unblockit.zip/
|
|
||||||
- https://eztv.re/
|
|
||||||
- https://eztv.li/
|
|
||||||
- https://eztv.unblockit.foo/
|
|
||||||
- https://eztv.unblockit.ing/
|
|
||||||
- https://eztv.mrunblock.bond/
|
|
||||||
- https://eztv.nocensor.cloud/
|
|
||||||
- https://eztv.unblockit.date/
|
|
||||||
- https://eztv.unblockit.dad/
|
|
||||||
- https://eztv.unblockit.africa/
|
|
||||||
|
|
||||||
caps:
|
|
||||||
categories:
|
|
||||||
1: TV
|
|
||||||
|
|
||||||
modes:
|
|
||||||
search: [q]
|
|
||||||
tv-search: [q, season, ep]
|
|
||||||
|
|
||||||
settings: []
|
|
||||||
|
|
||||||
search:
|
|
||||||
paths:
|
|
||||||
- path: "{{ if .Keywords }}search/{{ .Keywords }}{{ else }}home{{ end }}"
|
|
||||||
|
|
||||||
keywordsfilters:
|
|
||||||
- name: re_replace
|
|
||||||
args: ["S[0-9]{2}([^E]|$)", ""] # remove season tag without episode (search doesn't support it)
|
|
||||||
# fixes for site search issues - Prowlarr #1094
|
|
||||||
- name: replace
|
|
||||||
args: ["-", ""]
|
|
||||||
- name: replace
|
|
||||||
args: [" ", "-"]
|
|
||||||
- name: replace
|
|
||||||
args: ["&", ""]
|
|
||||||
|
|
||||||
headers:
|
|
||||||
cookie: ["sort_no=100; q_filter=all; q_filter_web=on; q_filter_reality=on; q_filter_x265=on; layout=def_wlinks"] # show 100 results for keywordless search and show links in results
|
|
||||||
|
|
||||||
rows:
|
|
||||||
# only use latest added torrents table for keywordless search to avoid duplicates, some torrents don't have any download links so skip them
|
|
||||||
selector: "table.forum_header_border:contains('Latest') tr[name='hover'].forum_header_border:has(a.magnet), table.forum_header_border:contains('Releases') tr[name='hover'].forum_header_border:has(a.magnet)"
|
|
||||||
filters:
|
|
||||||
- name: andmatch
|
|
||||||
|
|
||||||
fields:
|
|
||||||
category:
|
|
||||||
text: 1
|
|
||||||
title:
|
|
||||||
selector: td:nth-child(2) a
|
|
||||||
attribute: title
|
|
||||||
filters:
|
|
||||||
- name: replace
|
|
||||||
args: ["[eztv]", ""]
|
|
||||||
- name: re_replace
|
|
||||||
args: ["\\(.*\\)$", ""]
|
|
||||||
- name: trim
|
|
||||||
details:
|
|
||||||
selector: td:nth-child(2) a
|
|
||||||
attribute: href
|
|
||||||
download:
|
|
||||||
selector: td:nth-child(3) a.magnet, td:nth-child(3) a
|
|
||||||
attribute: href
|
|
||||||
size_optional:
|
|
||||||
optional: true
|
|
||||||
selector: td:nth-child(4)
|
|
||||||
size:
|
|
||||||
text: "{{ if .Result.size_optional }}{{ .Result.size_optional }}{{ else }}512 MB{{ end }}"
|
|
||||||
date:
|
|
||||||
selector: td:nth-child(5)
|
|
||||||
filters:
|
|
||||||
- name: append
|
|
||||||
args: " ago"
|
|
||||||
seeders:
|
|
||||||
selector: td:nth-child(6)
|
|
||||||
leechers:
|
|
||||||
text: 0
|
|
||||||
downloadvolumefactor:
|
|
||||||
text: 0
|
|
||||||
uploadvolumefactor:
|
|
||||||
text: 1
|
|
||||||
# engine n/a
|
|
||||||
@@ -1,165 +0,0 @@
|
|||||||
# Femdomcult 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: femdomcult
|
|
||||||
name: Femdomcult
|
|
||||||
description: "Femdomcult is a Private Torrent Tracker for FETISH 3X"
|
|
||||||
language: en-US
|
|
||||||
type: private
|
|
||||||
encoding: UTF-8
|
|
||||||
links:
|
|
||||||
- https://femdomcult.org/
|
|
||||||
|
|
||||||
caps:
|
|
||||||
categorymappings:
|
|
||||||
- {id: 58, cat: XXX, desc: "Amateur/Mainstream"}
|
|
||||||
- {id: 60, cat: XXX, desc: "Anime Comics"}
|
|
||||||
- {id: 73, cat: XXX, desc: "Asian Femdom"}
|
|
||||||
- {id: 61, cat: XXX, desc: "Audio"}
|
|
||||||
- {id: 78, cat: XXX, desc: "EBook"}
|
|
||||||
- {id: 74, cat: XXX, desc: "Female Muscles"}
|
|
||||||
- {id: 59, cat: XXX, desc: "Femdom"}
|
|
||||||
- {id: 62, cat: XXX, desc: "Femdom Vip"}
|
|
||||||
- {id: 63, cat: XXX, desc: "Fetish"}
|
|
||||||
- {id: 68, cat: XXX, desc: "Fetish Vip"}
|
|
||||||
- {id: 76, cat: XXX, desc: "Game"}
|
|
||||||
- {id: 64, cat: XXX, desc: "Gts-Vore-Crush"}
|
|
||||||
- {id: 72, cat: XXX, desc: "Images"}
|
|
||||||
- {id: 69, cat: XXX, desc: "Lezdom"}
|
|
||||||
- {id: 70, cat: XXX, desc: "Pov"}
|
|
||||||
- {id: 65, cat: XXX, desc: "Scat"}
|
|
||||||
- {id: 71, cat: XXX, desc: "Strapon"}
|
|
||||||
- {id: 66, cat: XXX, desc: "Transdom"}
|
|
||||||
- {id: 77, cat: XXX, desc: "Unknown & Low Quality"}
|
|
||||||
- {id: 75, cat: XXX, desc: "Virtual Reality"}
|
|
||||||
- {id: 0, cat: XXX/Other, desc: "Other"}
|
|
||||||
|
|
||||||
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: 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: "User classes Beginner and Perv have to be inactive (= not logged in on the site, tracker activity/seeding does not count) for 4 months before getting disabled automatically. Member class and higher are exempt."
|
|
||||||
|
|
||||||
login:
|
|
||||||
path: login.php
|
|
||||||
method: form
|
|
||||||
inputs:
|
|
||||||
username: "{{ .Config.username }}"
|
|
||||||
password: "{{ .Config.password }}"
|
|
||||||
cinfo: "2550|1350|24|-60"
|
|
||||||
keeplogged: 1
|
|
||||||
error:
|
|
||||||
- selector: form#loginform > span.warning
|
|
||||||
test:
|
|
||||||
path: torrents.php
|
|
||||||
selector: "#nav_userinfo"
|
|
||||||
|
|
||||||
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[class^="torrent row"]:has(a[href*="action=download"])
|
|
||||||
|
|
||||||
fields:
|
|
||||||
download:
|
|
||||||
selector: a[href^="torrents.php?action=download&id="]
|
|
||||||
attribute: href
|
|
||||||
description_tags:
|
|
||||||
selector: div.tags
|
|
||||||
description:
|
|
||||||
case:
|
|
||||||
span.icon_okay: "Verified: {{ .Result.description_tags }}"
|
|
||||||
"*": "Unverified: {{ .Result.description_tags }}"
|
|
||||||
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: ["\\\\(.)", "$1"]
|
|
||||||
- name: replace
|
|
||||||
args: ["/static/common/noartwork/noimage.png", ""]
|
|
||||||
files:
|
|
||||||
selector: td:nth-child(3)
|
|
||||||
date_optional:
|
|
||||||
selector: td:nth-child(5) > span
|
|
||||||
attribute: title
|
|
||||||
# auto adjusted by site account profile
|
|
||||||
optional: true
|
|
||||||
filters:
|
|
||||||
- name: dateparse
|
|
||||||
args: "MMM dd yyyy, HH:mm"
|
|
||||||
date: # some torrents have "Never" date
|
|
||||||
text: "{{ if .Result.date_optional }}{{ .Result.date_optional }}{{ else }}20 years ago{{ end }}"
|
|
||||||
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[alt=\"Freeleech\"]": 0
|
|
||||||
"*": 1
|
|
||||||
uploadvolumefactor:
|
|
||||||
case:
|
|
||||||
span.icon[title*="DoubleSeed"]: 2
|
|
||||||
"img[alt=\"DoubleSeed\"]": 2
|
|
||||||
"*": 1
|
|
||||||
minimumratio:
|
|
||||||
text: 0.5
|
|
||||||
# MR is reduced but not removed if MST is met
|
|
||||||
# minimumseedtime:
|
|
||||||
# # 3 days (as seconds = 3 x 24 x 60 x 60)
|
|
||||||
# text: 259200
|
|
||||||
# luminance
|
|
||||||
@@ -1,92 +0,0 @@
|
|||||||
---
|
|
||||||
id: gamestorrents
|
|
||||||
name: GamesTorrents
|
|
||||||
description: "GamesTorrents is a SPANISH Public tracker for GAMES"
|
|
||||||
language: es-ES
|
|
||||||
type: public
|
|
||||||
encoding: UTF-8
|
|
||||||
links:
|
|
||||||
- https://www.gamestorrents.fm/
|
|
||||||
legacylinks:
|
|
||||||
- https://www.gamestorrents.com/
|
|
||||||
- https://www.gamestorrents.tv/
|
|
||||||
- https://www.gamestorrents.nu/
|
|
||||||
- https://gamestorrents.nocensor.space/
|
|
||||||
- https://gamestorrents.nocensor.work/
|
|
||||||
- https://gamestorrents.nocensor.biz/
|
|
||||||
- https://gamestorrents.nocensor.sbs/
|
|
||||||
- https://gamestorrents.nocensor.world/
|
|
||||||
|
|
||||||
caps:
|
|
||||||
categorymappings:
|
|
||||||
- {id: juegos-pc, cat: PC/Games, desc: "Games PC"}
|
|
||||||
- {id: juegos-psp, cat: Console/PSP, desc: "Games PSP"}
|
|
||||||
- {id: juegos-ps3, cat: Console/PS3, desc: "Games PS3"}
|
|
||||||
- {id: juegos-ps4, cat: Console/PS4, desc: "Games PS4"}
|
|
||||||
- {id: juegos-ps2, cat: Console/PS Vita, desc: "Games PS2"}
|
|
||||||
- {id: juegos-mac, cat: PC/Mac, desc: "Games Mac"}
|
|
||||||
- {id: juegos-xbox360, cat: Console/XBox 360, desc: "Games Xbox 360"}
|
|
||||||
- {id: juegos-wii, cat: Console/Wii, desc: "Games Wii"}
|
|
||||||
- {id: juegos-nds, cat: Console/NDS, desc: "Games NDS"}
|
|
||||||
|
|
||||||
modes:
|
|
||||||
search: [q]
|
|
||||||
|
|
||||||
settings: []
|
|
||||||
|
|
||||||
download:
|
|
||||||
selectors:
|
|
||||||
- selector: a#download_torrent
|
|
||||||
attribute: href
|
|
||||||
|
|
||||||
search:
|
|
||||||
paths:
|
|
||||||
- path: /
|
|
||||||
inputs:
|
|
||||||
s: "{{ .Keywords }}"
|
|
||||||
|
|
||||||
rows:
|
|
||||||
selector: table.metalion > tbody > tr
|
|
||||||
filters:
|
|
||||||
- name: andmatch
|
|
||||||
|
|
||||||
fields:
|
|
||||||
title:
|
|
||||||
selector: td:nth-child(1) a
|
|
||||||
details:
|
|
||||||
selector: td:nth-child(1) a
|
|
||||||
attribute: href
|
|
||||||
category:
|
|
||||||
selector: td:nth-child(1) a
|
|
||||||
attribute: href
|
|
||||||
filters:
|
|
||||||
- name: split
|
|
||||||
args: ["/", 3]
|
|
||||||
download:
|
|
||||||
selector: td:nth-child(1) a
|
|
||||||
attribute: href
|
|
||||||
date:
|
|
||||||
selector: td:nth-child(2)
|
|
||||||
filters:
|
|
||||||
- name: append
|
|
||||||
args: " +01:00" # CET
|
|
||||||
- name: dateparse
|
|
||||||
args: "dd-MM-yyyy zzz"
|
|
||||||
size:
|
|
||||||
selector: td:nth-child(3)
|
|
||||||
filters:
|
|
||||||
- name: replace
|
|
||||||
args: ["Undefined", "0 B"]
|
|
||||||
- name: replace
|
|
||||||
args: ["s", ""]
|
|
||||||
description:
|
|
||||||
selector: td:nth-child(4)
|
|
||||||
seeders:
|
|
||||||
text: 1
|
|
||||||
leechers:
|
|
||||||
text: 1
|
|
||||||
downloadvolumefactor:
|
|
||||||
text: 0
|
|
||||||
uploadvolumefactor:
|
|
||||||
text: 1
|
|
||||||
# engine n/a
|
|
||||||
@@ -1,210 +0,0 @@
|
|||||||
---
|
|
||||||
id: generationfree-api
|
|
||||||
name: Generation-Free (API)
|
|
||||||
description: "Generation-Free (GF-Free) is a FRENCH Private Torrent Tracker for MOVIES / TV / GENERAL"
|
|
||||||
language: fr-FR
|
|
||||||
type: private
|
|
||||||
encoding: UTF-8
|
|
||||||
links:
|
|
||||||
- https://generation-free.org/
|
|
||||||
legacylinks:
|
|
||||||
- https://generation-free.biz/
|
|
||||||
|
|
||||||
caps:
|
|
||||||
categorymappings:
|
|
||||||
- {id: 1, cat: Movies, desc: "Film"}
|
|
||||||
- {id: 2, cat: TV, desc: "Série"}
|
|
||||||
- {id: 3, cat: Audio, desc: "Musique"}
|
|
||||||
- {id: 4, cat: Console, desc: "Jeux"}
|
|
||||||
- {id: 5, cat: PC, desc: "Logiciel"}
|
|
||||||
- {id: 6, cat: Books, desc: "Ebook"}
|
|
||||||
|
|
||||||
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://generation-free.org/\" target=\"_blank\">Generation-Free</a> account <i>My Security</i> page and clicking on the <b>API Token</b> tab."
|
|
||||||
- name: freeleech
|
|
||||||
type: checkbox
|
|
||||||
label: Search freeleech only
|
|
||||||
default: false
|
|
||||||
- name: 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: vfq
|
|
||||||
type: checkbox
|
|
||||||
label: Replace VFQ with FRENCH
|
|
||||||
default: false
|
|
||||||
- name: sort
|
|
||||||
type: select
|
|
||||||
label: Sort requested from site
|
|
||||||
default: created_at
|
|
||||||
options:
|
|
||||||
created_at: created
|
|
||||||
seeders: seeders
|
|
||||||
size: size
|
|
||||||
name: title
|
|
||||||
- name: type
|
|
||||||
type: select
|
|
||||||
label: Order requested from site
|
|
||||||
default: desc
|
|
||||||
options:
|
|
||||||
desc: desc
|
|
||||||
asc: asc
|
|
||||||
- name: info_activity
|
|
||||||
type: info
|
|
||||||
label: Account Inactivity
|
|
||||||
default: "Accounts will be automatically deleted after 45 days of inactivity, regardless of class. To maintain an active account, all you have to do is authenticate yourself regularly and participate: In the life of the site, in the forum, in the shoot, in the games of the forum and not only in the downloads. Log in regularly to the site the Rules may change, view your messages."
|
|
||||||
|
|
||||||
login:
|
|
||||||
path: /api/torrents
|
|
||||||
method: get
|
|
||||||
inputs: {} # TODO: remove in v10
|
|
||||||
error:
|
|
||||||
- selector: a[href*="/login"]
|
|
||||||
message:
|
|
||||||
text: "The API key was not accepted by {{ .Config.sitelink }}."
|
|
||||||
|
|
||||||
search:
|
|
||||||
paths:
|
|
||||||
# https://github.com/HDInnovations/UNIT3D-Community-Edition/wiki/Torrent-API-(UNIT3D-v8.x.x)
|
|
||||||
# https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php#L476
|
|
||||||
- path: "/api/torrents/filter"
|
|
||||||
response:
|
|
||||||
type: json
|
|
||||||
|
|
||||||
headers:
|
|
||||||
Authorization: ["Bearer {{ .Config.apikey }}"]
|
|
||||||
|
|
||||||
inputs:
|
|
||||||
# if we have an id based search, add Season and Episode as query in name for UNIT3D < v6. Else pass S/E Params for UNIT3D >= v6
|
|
||||||
$raw: "{{ if .Query.Season }}&seasonNumber={{ .Query.Season }}{{ else }}{{ end }}{{ if .Query.Ep }}&episodeNumber={{ .Query.Ep }}{{ else }}{{ end }}{{ if .Query.TMDBID }}&tmdbId={{ .Query.TMDBID }}{{ else }}{{ end }}{{ if .Query.IMDBIDShort }}&imdbId={{ .Query.IMDBIDShort }}{{ else }}{{ end }}{{ if .Query.TVDBID }}&tvdbId={{ .Query.TVDBID }}{{ else }}{{ end }}{{ range .Categories }}&categories[]={{.}}{{end}}{{ if .Config.freeleech }}&free[]=100{{ else }}{{ end }}"
|
|
||||||
name: "{{ .Keywords }}"
|
|
||||||
sortField: "{{ .Config.sort }}"
|
|
||||||
sortDirection: "{{ .Config.type }}"
|
|
||||||
perPage: 100
|
|
||||||
|
|
||||||
keywordsfilters:
|
|
||||||
- name: re_replace
|
|
||||||
args: ["\\.", " "]
|
|
||||||
|
|
||||||
rows:
|
|
||||||
selector: data
|
|
||||||
attribute: attributes
|
|
||||||
|
|
||||||
fields:
|
|
||||||
category:
|
|
||||||
selector: category_id
|
|
||||||
title_phase1:
|
|
||||||
selector: name
|
|
||||||
title_vfq:
|
|
||||||
text: "{{ .Result.title_phase1 }}"
|
|
||||||
filters:
|
|
||||||
- name: re_replace
|
|
||||||
args: ["(?i)\\b(VFQ)\\b", "FRENCH"]
|
|
||||||
title_phase2:
|
|
||||||
text: "{{ if .Config.vfq }}{{ .Result.title_vfq }}{{ else }}{{ .Result.title_phase1 }}{{ 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 }}"
|
|
||||||
details:
|
|
||||||
selector: details_link
|
|
||||||
download:
|
|
||||||
selector: download_link
|
|
||||||
infohash:
|
|
||||||
selector: info_hash
|
|
||||||
poster:
|
|
||||||
selector: meta.poster
|
|
||||||
filters:
|
|
||||||
- name: replace
|
|
||||||
args: ["https://via.placeholder.com/90x135", ""]
|
|
||||||
imdbid:
|
|
||||||
selector: imdb_id
|
|
||||||
tmdbid:
|
|
||||||
selector: tmdb_id
|
|
||||||
tvdbid:
|
|
||||||
selector: tvdb_id
|
|
||||||
genre:
|
|
||||||
selector: meta.genres
|
|
||||||
filters:
|
|
||||||
- name: re_replace
|
|
||||||
args: ["(?i)^None$", ""]
|
|
||||||
- name: replace
|
|
||||||
args: [" & ", "_&_"]
|
|
||||||
description:
|
|
||||||
text: "{{ .Result.genre }}"
|
|
||||||
files:
|
|
||||||
selector: num_file
|
|
||||||
seeders:
|
|
||||||
selector: seeders
|
|
||||||
leechers:
|
|
||||||
selector: leechers
|
|
||||||
grabs:
|
|
||||||
selector: times_completed
|
|
||||||
date:
|
|
||||||
# "created_at": "2021-10-18T00:34:50.000000Z" is returned by Newtonsoft.Json.Linq as 18/10/2021 00:34:50
|
|
||||||
selector: created_at
|
|
||||||
filters:
|
|
||||||
- name: append
|
|
||||||
args: " +00:00" # GMT
|
|
||||||
- name: dateparse
|
|
||||||
args: "MM/dd/yyyy HH:mm:ss zzz"
|
|
||||||
size:
|
|
||||||
selector: size
|
|
||||||
downloadvolumefactor:
|
|
||||||
# api returns 0%, 25%, 50%, 75%, 100%
|
|
||||||
selector: freeleech
|
|
||||||
case:
|
|
||||||
0%: 1 # not free
|
|
||||||
25%: 0.75
|
|
||||||
50%: 0.5
|
|
||||||
75%: 0.25
|
|
||||||
100%: 0 # freeleech
|
|
||||||
"*": 0 # catch errors
|
|
||||||
uploadvolumefactor:
|
|
||||||
# api returns 0=false, 1=true
|
|
||||||
selector: double_upload
|
|
||||||
case:
|
|
||||||
0: 1 # normal
|
|
||||||
1: 2 # double
|
|
||||||
minimumseedtime:
|
|
||||||
# 2 days (as seconds = 2 x 24 x 60 x 60)
|
|
||||||
text: 172800
|
|
||||||
# json UNIT3D 6.5.0
|
|
||||||
@@ -1,192 +0,0 @@
|
|||||||
---
|
|
||||||
id: gigatorrents
|
|
||||||
name: GigaTorrents
|
|
||||||
description: "Giga Torrents is a Hungarian Private site for TV / MOVIES / GENERAL"
|
|
||||||
language: hu-HU
|
|
||||||
type: private
|
|
||||||
encoding: UTF-8
|
|
||||||
links:
|
|
||||||
- https://gigatorrents.ws/
|
|
||||||
|
|
||||||
caps:
|
|
||||||
categorymappings:
|
|
||||||
- {id: 91, cat: Movies/UHD, desc: "4K Blu-Ray"}
|
|
||||||
- {id: 62, cat: Movies/BluRay, desc: "Bluray Disc"}
|
|
||||||
- {id: 80, cat: Movies/SD, desc: "CAM/Eng"}
|
|
||||||
- {id: 79, cat: Movies/SD, desc: "CAM/Hun"}
|
|
||||||
- {id: 71, cat: Movies/DVD, desc: "DVD 9"}
|
|
||||||
- {id: 67, cat: Movies/DVD, desc: "DVD 9 Hun"}
|
|
||||||
- {id: 74, cat: Movies/HD, desc: "Film HD/Eng"}
|
|
||||||
- {id: 75, cat: Movies/HD, desc: "Film HD/Hun"}
|
|
||||||
- {id: 73, cat: Movies/SD, desc: "Film x264/Eng"}
|
|
||||||
- {id: 72, cat: Movies/SD, desc: "Film x264/Hun"}
|
|
||||||
- {id: 19, cat: Movies/SD, desc: "Film Xvid/Eng"}
|
|
||||||
- {id: 37, cat: Movies/SD, desc: "Film Xvid/Hun"}
|
|
||||||
- {id: 20, cat: Movies/DVD, desc: "Film/DVD-R"}
|
|
||||||
- {id: 45, cat: Movies/DVD, desc: "Film/DVD-R Hun"}
|
|
||||||
- {id: 47, cat: PC/Games, desc: "Játékok/ISO"}
|
|
||||||
- {id: 64, cat: PC/Games, desc: "Játékok/Rip"}
|
|
||||||
- {id: 48, cat: Other, desc: "Képek"}
|
|
||||||
- {id: 49, cat: XXX/ImageSet, desc: "Képek XXX"}
|
|
||||||
- {id: 51, cat: Audio/Video, desc: "Klip"}
|
|
||||||
- {id: 39, cat: Books, desc: "Könyvek/Eng"}
|
|
||||||
- {id: 52, cat: Books, desc: "Könyvek/Hun"}
|
|
||||||
- {id: 33, cat: Console, desc: "Konzol"}
|
|
||||||
- {id: 1, cat: Audio/Lossless, desc: "Lossless"}
|
|
||||||
- {id: 55, cat: PC/Mobile-Other, desc: "Mobil/PDA"}
|
|
||||||
- {id: 85, cat: TV/HD, desc: "Sorozat HD/Eng"}
|
|
||||||
- {id: 84, cat: TV/HD, desc: "Sorozat HD/Hun"}
|
|
||||||
- {id: 8, cat: TV/SD, desc: "Sorozat/SD-x264/Eng"}
|
|
||||||
- {id: 81, cat: TV/SD, desc: "Sorozat/SD-x264/Hun"}
|
|
||||||
- {id: 83, cat: TV/SD, desc: "Sorozat/SD-Xvid/Eng"}
|
|
||||||
- {id: 7, cat: TV/SD, desc: "Sorozat/SD-Xvid/Hun"}
|
|
||||||
- {id: 46, cat: XXX, desc: "XXX"}
|
|
||||||
- {id: 42, cat: Audio, desc: "Zene/Eng"}
|
|
||||||
- {id: 53, cat: Audio, desc: "Zene/Hun"}
|
|
||||||
|
|
||||||
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: 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.
|
|
||||||
- name: info_activity
|
|
||||||
type: info
|
|
||||||
label: Account Inactivity
|
|
||||||
default: "Rules for deletion:<ol><li>Users who have registered at least 4 weeks ago and have uploaded 0 bytes will be deleted</li><li>Users who have not accessed the site for 1 year will be permanently deleted</li><li>Users who have not accessed the site for 4 weeks will be deleted.</li></ol>"
|
|
||||||
|
|
||||||
login:
|
|
||||||
path: login.php
|
|
||||||
method: form
|
|
||||||
form: form
|
|
||||||
inputs:
|
|
||||||
username: "{{ .Config.username }}"
|
|
||||||
password: "{{ .Config.password }}"
|
|
||||||
error:
|
|
||||||
- selector: div.box:has(div.title:contains("bejelentkez"))
|
|
||||||
test:
|
|
||||||
path: index.php
|
|
||||||
selector: a[href^="logout.php"]
|
|
||||||
|
|
||||||
search:
|
|
||||||
paths:
|
|
||||||
- path: torrentek.php
|
|
||||||
inputs:
|
|
||||||
$raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
|
|
||||||
search: "{{ .Keywords }}"
|
|
||||||
# 0 active, 1 incldead, 2 onlydead, 5 freeleech, 6 2x upload, 7 highlighted
|
|
||||||
incldead: "{{ if .Config.freeleech }}5{{ else }}1{{ end }}"
|
|
||||||
blah: 0
|
|
||||||
order: "{{ .Config.sort }}"
|
|
||||||
by: "{{ .Config.type }}"
|
|
||||||
|
|
||||||
rows:
|
|
||||||
selector: table#torrenttable > tbody > tr:has()
|
|
||||||
error:
|
|
||||||
- selector: div.content:contains("Meg van vonva a letöltési jogod")
|
|
||||||
|
|
||||||
fields:
|
|
||||||
download:
|
|
||||||
selector: a[href^="/details.php?id="]
|
|
||||||
attribute: href
|
|
||||||
filters:
|
|
||||||
- name: replace
|
|
||||||
args: ["details.php?id=", "download.php?id="]
|
|
||||||
title:
|
|
||||||
selector: a[href^="/details.php?id="]
|
|
||||||
details:
|
|
||||||
selector: a[href^="/details.php?id="]
|
|
||||||
attribute: href
|
|
||||||
imdbid:
|
|
||||||
selector: a[href^="imdb.com/title/tt"]
|
|
||||||
attribute: href
|
|
||||||
poster:
|
|
||||||
selector: img.imdb-info
|
|
||||||
attribute: data-url
|
|
||||||
category:
|
|
||||||
selector: a[href^="/torrentek.php?cat="]
|
|
||||||
attribute: href
|
|
||||||
filters:
|
|
||||||
- name: querystring
|
|
||||||
args: cat
|
|
||||||
seeders:
|
|
||||||
selector: td:nth-child(8)
|
|
||||||
filters:
|
|
||||||
- name: split
|
|
||||||
args: ["/", 0]
|
|
||||||
leechers:
|
|
||||||
selector: td:nth-child(8)
|
|
||||||
filters:
|
|
||||||
- name: split
|
|
||||||
args: ["/", 1]
|
|
||||||
grabs:
|
|
||||||
selector: td:nth-child(7)
|
|
||||||
files:
|
|
||||||
selector: td:nth-child(4)
|
|
||||||
description:
|
|
||||||
case:
|
|
||||||
img[src="pic/staff/yes.png"]: Verified
|
|
||||||
"*": Unverified
|
|
||||||
downloadvolumefactor_optional:
|
|
||||||
selector: td:nth-child(6) > span:nth-last-child(2)
|
|
||||||
optional: true
|
|
||||||
filters:
|
|
||||||
- name: trim
|
|
||||||
args: x
|
|
||||||
downloadvolumefactor:
|
|
||||||
text: "{{ if .Result.downloadvolumefactor_optional }}{{ .Result.downloadvolumefactor_optional }}{{ else }}1{{ end }}"
|
|
||||||
uploadvolumefactor_optional:
|
|
||||||
selector: td:nth-child(6) > span:nth-last-child(1)
|
|
||||||
optional: true
|
|
||||||
filters:
|
|
||||||
- name: trim
|
|
||||||
args: x
|
|
||||||
uploadvolumefactor:
|
|
||||||
text: "{{ if .Result.uploadvolumefactor_optional }}{{ .Result.uploadvolumefactor_optional }}{{ else }}1{{ end }}"
|
|
||||||
minimumratio:
|
|
||||||
text: 0.5
|
|
||||||
minimumseedtime:
|
|
||||||
# 2 days (as seconds = 2 x 24 x 60 x 60)
|
|
||||||
text: 172800
|
|
||||||
date:
|
|
||||||
selector: td:nth-child(2)
|
|
||||||
remove: a
|
|
||||||
filters:
|
|
||||||
- name: regexp
|
|
||||||
args: "Feltöltve:\\s*([\\d-]+\\s*[\\d:]+)"
|
|
||||||
size:
|
|
||||||
selector: td:nth-child(6)
|
|
||||||
remove: span
|
|
||||||
# xbtitFM v2.2.09
|
|
||||||
@@ -1,177 +0,0 @@
|
|||||||
---
|
|
||||||
id: haitang
|
|
||||||
name: Hǎitáng (海棠PT)
|
|
||||||
description: "Hǎitáng (海棠PT) is a CHINESE Private Torrent Tracker for OPERA / CROSSTALK"
|
|
||||||
language: zh-CN
|
|
||||||
type: private
|
|
||||||
encoding: UTF-8
|
|
||||||
requestDelay: 2
|
|
||||||
links:
|
|
||||||
- https://www.htpt.cc/
|
|
||||||
|
|
||||||
caps:
|
|
||||||
categorymappings:
|
|
||||||
- {id: 1, cat: Audio, desc: "相声 Crosstalk", default: true}
|
|
||||||
- {id: 4091, cat: Audio, desc: "评书 Storytelling", default: true}
|
|
||||||
- {id: 4097, cat: Audio, desc: "戏曲 Opera", default: true}
|
|
||||||
- {id: 4098, cat: Audio, desc: "鼓/琴 Drum / Piano", default: true}
|
|
||||||
- {id: 4099, cat: Audio, desc: "小曲 Small Song", default: true}
|
|
||||||
- {id: 4101, cat: Audio, desc: "小品 Sketch", default: true}
|
|
||||||
- {id: 4104, cat: Audio, desc: "二人转 Duets", default: true}
|
|
||||||
- {id: 4105, cat: TV, desc: "小剧种 Puppet shows", default: true}
|
|
||||||
- {id: 4103, cat: Audio/Audiobook, desc: "广播剧 Audiobooks", default: false}
|
|
||||||
|
|
||||||
modes:
|
|
||||||
search: [q]
|
|
||||||
tv-search: [q, season, ep]
|
|
||||||
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>Users with Veteran User (Wen Chou) and above will be retained forever</li><li>Elite User (Wu Sheng) 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 365 consecutive days will be deleted</li><li>Users with a non-parked account who have not logged in for 180 consecutive days be deleted</li><li>Users who have no traffic (i.e. upload/download The data is all 0) will be deleted If they do not log in for 90 consecutive days.</li></ol>"
|
|
||||||
|
|
||||||
login:
|
|
||||||
path: takelogin.php
|
|
||||||
method: post
|
|
||||||
inputs:
|
|
||||||
username: "{{ .Config.username }}"
|
|
||||||
password: "{{ .Config.password }}"
|
|
||||||
logout: ""
|
|
||||||
securelogin: ""
|
|
||||||
ssl: yes
|
|
||||||
trackerssl: yes
|
|
||||||
error:
|
|
||||||
- selector: td.embedded:has(h2:contains("失败"))
|
|
||||||
test:
|
|
||||||
path: index.php
|
|
||||||
selector: a[href="logout.php"]
|
|
||||||
|
|
||||||
search:
|
|
||||||
paths:
|
|
||||||
- path: torrents.php
|
|
||||||
categories: [1, 4091, 4097, 4098, 4099, 4101, 4104, 4105]
|
|
||||||
- path: live.php
|
|
||||||
categories: [4103]
|
|
||||||
inputs:
|
|
||||||
$raw: "{{ range .Categories }}cat{{.}}=1&{{end}}"
|
|
||||||
search: "{{ .Keywords }}"
|
|
||||||
# 0 incldead, 1 onlyactive, 2 onlydead
|
|
||||||
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
|
|
||||||
search_area: 0
|
|
||||||
# 0 AND, 1 OR, 2 exact
|
|
||||||
search_mode: 0
|
|
||||||
sort: "{{ .Config.sort }}"
|
|
||||||
type: "{{ .Config.type }}"
|
|
||||||
notnewword: 1
|
|
||||||
|
|
||||||
rows:
|
|
||||||
selector: table.torrents > tbody > tr:has(table.torrentname)
|
|
||||||
|
|
||||||
fields:
|
|
||||||
category:
|
|
||||||
selector: a[href^="?cat="]
|
|
||||||
attribute: href
|
|
||||||
filters:
|
|
||||||
- name: querystring
|
|
||||||
args: cat
|
|
||||||
title_default:
|
|
||||||
selector: a[href^="details.php?id="]
|
|
||||||
title_optional:
|
|
||||||
optional: true
|
|
||||||
selector: a[title][href^="details.php?id="]
|
|
||||||
attribute: title
|
|
||||||
title:
|
|
||||||
text: "{{ if .Result.title_optional }}{{ .Result.title_optional }}{{ else }}{{ .Result.title_default }}{{ end }}"
|
|
||||||
details:
|
|
||||||
selector: a[href^="details.php?id="]
|
|
||||||
attribute: href
|
|
||||||
download:
|
|
||||||
selector: a[href^="download.php?id="]
|
|
||||||
attribute: href
|
|
||||||
date_elapsed:
|
|
||||||
# time type: time elapsed (default)
|
|
||||||
selector: td:nth-child(4) > span[title]
|
|
||||||
attribute: title
|
|
||||||
optional: true
|
|
||||||
filters:
|
|
||||||
- name: append
|
|
||||||
args: " +08:00" # CST
|
|
||||||
- name: dateparse
|
|
||||||
args: "yyyy-MM-dd HH:mm:ss zzz"
|
|
||||||
date_added:
|
|
||||||
# time added
|
|
||||||
selector: td:nth-child(4):not(:has(span))
|
|
||||||
optional: true
|
|
||||||
filters:
|
|
||||||
- name: append
|
|
||||||
args: " +08:00" # CST
|
|
||||||
- name: dateparse
|
|
||||||
args: "yyyy-MM-ddHH:mm:ss zzz"
|
|
||||||
date:
|
|
||||||
text: "{{ if or .Result.date_elapsed .Result.date_added }}{{ or .Result.date_elapsed .Result.date_added }}{{ else }}now{{ end }}"
|
|
||||||
size:
|
|
||||||
selector: td:nth-child(5)
|
|
||||||
seeders:
|
|
||||||
selector: td:nth-child(6)
|
|
||||||
leechers:
|
|
||||||
selector: td:nth-child(7)
|
|
||||||
grabs:
|
|
||||||
selector: td:nth-child(8)
|
|
||||||
downloadvolumefactor:
|
|
||||||
case:
|
|
||||||
img.pro_free: 0
|
|
||||||
img.pro_free2up: 0
|
|
||||||
img.pro_50pctdown: 0.5
|
|
||||||
img.pro_50pctdown2up: 0.5
|
|
||||||
img.pro_30pctdown: 0.3
|
|
||||||
"*": 1
|
|
||||||
uploadvolumefactor:
|
|
||||||
case:
|
|
||||||
img.pro_50pctdown2up: 2
|
|
||||||
img.pro_free2up: 2
|
|
||||||
img.pro_2up: 2
|
|
||||||
"*": 1
|
|
||||||
minimumratio:
|
|
||||||
text: 1
|
|
||||||
minimumseedtime:
|
|
||||||
# 1 day (as seconds = 24 x 60 x 60)
|
|
||||||
text: 86400
|
|
||||||
description:
|
|
||||||
selector: td:nth-child(2)
|
|
||||||
remove: a, b, font, img, span
|
|
||||||
# NexusPHP v1.1 2021-10-15
|
|
||||||
@@ -1,153 +0,0 @@
|
|||||||
---
|
|
||||||
id: hawke-uno
|
|
||||||
name: hawke-uno
|
|
||||||
description: "hawke-uno (HUNO) is a Private Torrent Tracker for (X265 / HEVC) MOVIES / TV"
|
|
||||||
language: en-US
|
|
||||||
type: private
|
|
||||||
encoding: UTF-8
|
|
||||||
links:
|
|
||||||
- https://hawke.uno/
|
|
||||||
legacylinks:
|
|
||||||
- https://www.hawke.uno/
|
|
||||||
|
|
||||||
caps:
|
|
||||||
categorymappings:
|
|
||||||
- {id: 1, cat: Movies, desc: "Movie"}
|
|
||||||
- {id: 2, cat: TV, desc: "TV"}
|
|
||||||
|
|
||||||
modes:
|
|
||||||
search: [q]
|
|
||||||
tv-search: [q, season, ep, imdbid, tvdbid, tmdbid]
|
|
||||||
movie-search: [q, imdbid, tmdbid]
|
|
||||||
|
|
||||||
settings:
|
|
||||||
- name: apikey
|
|
||||||
type: text
|
|
||||||
label: APIKey
|
|
||||||
- name: info_key
|
|
||||||
type: info
|
|
||||||
label: About your API key
|
|
||||||
default: "Find or Generate a new API Token by accessing your <a href=\"https://www.hawke.uno/\" target=\"_blank\">hawke-uno</a> account <i>My Security</i> page and clicking on the <b>API Token</b> tab."
|
|
||||||
- name: freeleech
|
|
||||||
type: checkbox
|
|
||||||
label: Search freeleech only
|
|
||||||
default: false
|
|
||||||
- name: sort
|
|
||||||
type: select
|
|
||||||
label: Sort requested from site
|
|
||||||
default: created_at
|
|
||||||
options:
|
|
||||||
created_at: created
|
|
||||||
seeders: seeders
|
|
||||||
size: size
|
|
||||||
name: title
|
|
||||||
- name: type
|
|
||||||
type: select
|
|
||||||
label: Order requested from site
|
|
||||||
default: desc
|
|
||||||
options:
|
|
||||||
desc: desc
|
|
||||||
asc: asc
|
|
||||||
- name: info_activity
|
|
||||||
type: info
|
|
||||||
label: Account Inactivity
|
|
||||||
default: "SS and IF members must either login or register any seeding activity in a rolling window of 180 days to retain their account. Failure to do so will result in their account being disabled by the site automatically."
|
|
||||||
|
|
||||||
login:
|
|
||||||
path: /api/torrents
|
|
||||||
method: get
|
|
||||||
inputs: {} # TODO: remove in v10
|
|
||||||
error:
|
|
||||||
- selector: a[href*="/login"]
|
|
||||||
message:
|
|
||||||
text: "The API key was not accepted by {{ .Config.sitelink }}."
|
|
||||||
|
|
||||||
search:
|
|
||||||
paths:
|
|
||||||
# https://github.com/HDInnovations/UNIT3D-Community-Edition/wiki/Torrent-API-(UNIT3D-v8.x.x)
|
|
||||||
# https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php#L476
|
|
||||||
- path: "/api/torrents/filter"
|
|
||||||
response:
|
|
||||||
type: json
|
|
||||||
|
|
||||||
headers:
|
|
||||||
Authorization: ["Bearer {{ .Config.apikey }}"]
|
|
||||||
|
|
||||||
inputs:
|
|
||||||
# if we have an id based search, add Season and Episode as query in name for UNIT3D < v6. Else pass S/E Params for UNIT3D >= v6
|
|
||||||
name: "{{ .Keywords }}"
|
|
||||||
$raw: "{{ if .Query.TMDBID }}&tmdbId={{ .Query.TMDBID }}{{ else }}{{ end }}{{ if .Query.IMDBIDShort }}&imdbId={{ .Query.IMDBIDShort }}{{ else }}{{ end }}{{ if .Query.TVDBID }}&tvdbId={{ .Query.TVDBID }}{{ else }}{{ end }}{{ range .Categories }}&categories[]={{.}}{{end}}{{ if .Config.freeleech }}&free=1{{ else }}{{ end }}"
|
|
||||||
sortField: "{{ .Config.sort }}"
|
|
||||||
sortDirection: "{{ .Config.type }}"
|
|
||||||
perPage: 100
|
|
||||||
|
|
||||||
keywordsfilters:
|
|
||||||
- name: re_replace
|
|
||||||
args: ["\\.", " "]
|
|
||||||
|
|
||||||
rows:
|
|
||||||
selector: data
|
|
||||||
attribute: attributes
|
|
||||||
|
|
||||||
fields:
|
|
||||||
categorydesc:
|
|
||||||
selector: category
|
|
||||||
title:
|
|
||||||
selector: name
|
|
||||||
filters:
|
|
||||||
- name: re_replace
|
|
||||||
args: ["\\(((?>[^()]+|(?<o>)\\(|(?<-o>)\\))*(?(o)(?!)))(?<!\\bHONE)(?<=\\s*- [\\w]+)\\)$", "$1"]
|
|
||||||
- name: re_replace
|
|
||||||
args: ["\\s*-\\s+(\\w+)$", "-$1"]
|
|
||||||
details:
|
|
||||||
selector: details_link
|
|
||||||
download:
|
|
||||||
selector: download_link
|
|
||||||
poster:
|
|
||||||
selector: poster
|
|
||||||
filters:
|
|
||||||
- name: replace
|
|
||||||
args: ["https://via.placeholder.com/90x135", ""]
|
|
||||||
imdbid:
|
|
||||||
selector: imdb_id
|
|
||||||
tmdbid:
|
|
||||||
selector: tmdb_id
|
|
||||||
tvdbid:
|
|
||||||
selector: tvdb_id
|
|
||||||
files:
|
|
||||||
selector: num_file
|
|
||||||
seeders:
|
|
||||||
selector: seeders
|
|
||||||
leechers:
|
|
||||||
selector: leechers
|
|
||||||
grabs:
|
|
||||||
selector: times_completed
|
|
||||||
date:
|
|
||||||
# "created_at": "2021-10-18T00:34:50.000000Z" is returned by Newtonsoft.Json.Linq as 18/10/2021 00:34:50
|
|
||||||
selector: created_at
|
|
||||||
filters:
|
|
||||||
- name: append
|
|
||||||
args: " +00:00" # GMT
|
|
||||||
- name: dateparse
|
|
||||||
args: "MM/dd/yyyy HH:mm:ss zzz"
|
|
||||||
size:
|
|
||||||
selector: size
|
|
||||||
downloadvolumefactor:
|
|
||||||
# api returns 0=false, 1=true
|
|
||||||
selector: freeleech
|
|
||||||
case:
|
|
||||||
0: 1 # not free
|
|
||||||
1: 0 # freeleech
|
|
||||||
uploadvolumefactor:
|
|
||||||
# api returns 0=false, 1=true
|
|
||||||
selector: double_upload
|
|
||||||
case:
|
|
||||||
0: 1 # normal
|
|
||||||
1: 2 # double
|
|
||||||
# global MR is 0.25 but torrents must be seeded for 5 days regardless of ratio
|
|
||||||
# minimumratio:
|
|
||||||
# text: 0.25
|
|
||||||
minimumseedtime:
|
|
||||||
# 5 days (as seconds = 5 x 24 x 60 x 60)
|
|
||||||
text: 432000
|
|
||||||
# json UNIT3D 5.3.0
|
|
||||||
@@ -1,172 +0,0 @@
|
|||||||
---
|
|
||||||
id: hd-unit3d-api
|
|
||||||
name: HD-UNiT3D (API)
|
|
||||||
description: "HD-UNiT3D is a Private Torrent Tracker for HD MOVIES / TV"
|
|
||||||
language: en-US
|
|
||||||
type: private
|
|
||||||
encoding: UTF-8
|
|
||||||
links:
|
|
||||||
- https://hd-united.vn/
|
|
||||||
|
|
||||||
caps:
|
|
||||||
categorymappings:
|
|
||||||
- {id: 1, cat: Movies, desc: "Movie"}
|
|
||||||
- {id: 2, cat: TV, desc: "TV"}
|
|
||||||
- {id: 3, cat: Audio, desc: "Audio"}
|
|
||||||
|
|
||||||
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://hd-united.vn/\" target=\"_blank\">HD-UNiT3D</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: "Inactive accounts will be deleted as scheduled by Staff."
|
|
||||||
|
|
||||||
login:
|
|
||||||
path: /api/torrents
|
|
||||||
method: get
|
|
||||||
inputs: {} # TODO: remove in v10
|
|
||||||
error:
|
|
||||||
- selector: a[href*="/login"]
|
|
||||||
message:
|
|
||||||
text: "The API key was not accepted by {{ .Config.sitelink }}."
|
|
||||||
|
|
||||||
search:
|
|
||||||
paths:
|
|
||||||
# https://github.com/HDInnovations/UNIT3D-Community-Edition/wiki/Torrent-API-(UNIT3D-v8.x.x)
|
|
||||||
# https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php#L476
|
|
||||||
- path: "/api/torrents/filter"
|
|
||||||
response:
|
|
||||||
type: json
|
|
||||||
|
|
||||||
headers:
|
|
||||||
Authorization: ["Bearer {{ .Config.apikey }}"]
|
|
||||||
|
|
||||||
inputs:
|
|
||||||
# if we have an id based search, add Season and Episode as query in name for UNIT3D < v6. Else pass S/E Params for UNIT3D >= v6
|
|
||||||
name: "{{ .Keywords }}"
|
|
||||||
$raw: "{{ if .Query.Season }}&seasonNumber={{ .Query.Season }}{{ else }}{{ end }}{{ if .Query.Ep }}&episodeNumber={{ .Query.Ep }}{{ else }}{{ end }}{{ if .Query.TMDBID }}&tmdbId={{ .Query.TMDBID }}{{ else }}{{ end }}{{ if .Query.IMDBIDShort }}&imdbId={{ .Query.IMDBIDShort }}{{ else }}{{ end }}{{ if .Query.TVDBID }}&tvdbId={{ .Query.TVDBID }}{{ else }}{{ end }}{{ range .Categories }}&categories[]={{.}}{{end}}{{ if .Config.freeleech }}&free[]=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: [" & ", "_&_"]
|
|
||||||
description:
|
|
||||||
text: "{{ .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
|
|
||||||
downloadvolumefactor:
|
|
||||||
# api returns 0%, 25%, 50%, 75%, 100%
|
|
||||||
selector: freeleech
|
|
||||||
case:
|
|
||||||
0%: 1 # not free
|
|
||||||
25%: 0.75
|
|
||||||
50%: 0.5
|
|
||||||
75%: 0.25
|
|
||||||
100%: 0 # freeleech
|
|
||||||
"*": 0 # catch errors
|
|
||||||
uploadvolumefactor:
|
|
||||||
# api returns False, True
|
|
||||||
selector: double_upload
|
|
||||||
case:
|
|
||||||
False: 1 # normal
|
|
||||||
True: 2 # double
|
|
||||||
minimumseedtime:
|
|
||||||
# 3 days (as seconds = 3 x 24 x 60 x 60)
|
|
||||||
text: 259200
|
|
||||||
# json UNIT3D 8.0.2
|
|
||||||
@@ -1,190 +0,0 @@
|
|||||||
---
|
|
||||||
id: hd4fans
|
|
||||||
name: HD4FANS
|
|
||||||
description: "HD4FANS is a CHINESE Private Torrent Tracker for HD MOVIES / TV / GENERAL"
|
|
||||||
language: zh-CN
|
|
||||||
type: private
|
|
||||||
encoding: UTF-8
|
|
||||||
links:
|
|
||||||
- https://pt.hd4fans.org/
|
|
||||||
|
|
||||||
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: "Music"}
|
|
||||||
|
|
||||||
modes:
|
|
||||||
search: [q]
|
|
||||||
tv-search: [q, season, ep, imdbid, doubanid]
|
|
||||||
movie-search: [q, imdbid, doubanid]
|
|
||||||
music-search: [q]
|
|
||||||
|
|
||||||
settings:
|
|
||||||
- name: username
|
|
||||||
type: text
|
|
||||||
label: Username
|
|
||||||
- name: password
|
|
||||||
type: password
|
|
||||||
label: Password
|
|
||||||
- name: 2facode
|
|
||||||
type: text
|
|
||||||
label: 2FA code
|
|
||||||
- name: info_2fa
|
|
||||||
type: info
|
|
||||||
label: "About 2FA code"
|
|
||||||
default: "Only fill in the <b>2FA code</b> box if you have enabled <b>2FA</b> on the Free Farm Web Site. Otherwise just leave it empty."
|
|
||||||
- name: freeleech
|
|
||||||
type: checkbox
|
|
||||||
label: Search freeleech only
|
|
||||||
default: false
|
|
||||||
- name: sort
|
|
||||||
type: select
|
|
||||||
label: Sort requested from site
|
|
||||||
default: 4
|
|
||||||
options:
|
|
||||||
4: created
|
|
||||||
7: seeders
|
|
||||||
5: size
|
|
||||||
1: title
|
|
||||||
- name: type
|
|
||||||
type: select
|
|
||||||
label: Order requested from site
|
|
||||||
default: desc
|
|
||||||
options:
|
|
||||||
desc: desc
|
|
||||||
asc: asc
|
|
||||||
- name: info_tpp
|
|
||||||
type: info
|
|
||||||
label: Results Per Page
|
|
||||||
default: For best results, change the <b>Torrents per page:</b> setting to <b>100</b> on your account profile.
|
|
||||||
|
|
||||||
login:
|
|
||||||
path: login.php
|
|
||||||
method: form
|
|
||||||
form: form[action="takelogin.php"]
|
|
||||||
captcha:
|
|
||||||
type: image
|
|
||||||
selector: img[alt="CAPTCHA"]
|
|
||||||
input: imagestring
|
|
||||||
inputs:
|
|
||||||
secret: ""
|
|
||||||
username: "{{ .Config.username }}"
|
|
||||||
password: "{{ .Config.password }}"
|
|
||||||
two_step_code: "{{ .Config.2facode }}"
|
|
||||||
logout: ""
|
|
||||||
securelogin: ""
|
|
||||||
ssl: yes
|
|
||||||
trackerssl: yes
|
|
||||||
error:
|
|
||||||
- selector: td.embedded:has(h2:contains("失败"))
|
|
||||||
test:
|
|
||||||
path: index.php
|
|
||||||
selector: a[href="logout.php"]
|
|
||||||
|
|
||||||
search:
|
|
||||||
paths:
|
|
||||||
- path: torrents.php
|
|
||||||
inputs:
|
|
||||||
$raw: "{{ range .Categories }}cat{{.}}=1&{{end}}"
|
|
||||||
search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ end }}{{ if or .Query.IMDBID .Query.DoubanID }} {{ else }}{{ .Keywords }}{{ end }}{{ if .Query.DoubanID }}{{ .Query.DoubanID }}{{ else }}{{ end }}"
|
|
||||||
# 0 incldead, 1 active, 2 dead
|
|
||||||
incldead: 0
|
|
||||||
# 0 all, 1 normal, 2 free, 3 2x, 4 2xfree, 5 50%, 6 2x50%, 7 30%
|
|
||||||
spstate: "{{ if .Config.freeleech }}2{{ else }}0{{ end }}"
|
|
||||||
# 0 title, 1 descr, 3 uploader, 4 imdburl
|
|
||||||
search_area: "{{ if .Query.IMDBID }}4{{ else }}{{ end }}{{ if .Query.DoubanID }}1{{ else }}{{ end }}{{ if or .Query.IMDBID .Query.DoubanID }}{{ else }}0{{ end }}"
|
|
||||||
# 0 AND, 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_optional:
|
|
||||||
optional: true
|
|
||||||
selector: a[title][href^="details.php?id="]
|
|
||||||
attribute: title
|
|
||||||
title:
|
|
||||||
text: "{{ if .Result.title_optional }}{{ .Result.title_optional }}{{ else }}{{ .Result.title_default }}{{ end }}"
|
|
||||||
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
|
|
||||||
description:
|
|
||||||
selector: td.rowfollow:nth-child(2)
|
|
||||||
remove: a, b, font, img, span
|
|
||||||
# NexusPHP v1.8.8 2023-09-25
|
|
||||||
@@ -1,179 +0,0 @@
|
|||||||
---
|
|
||||||
id: hdarea
|
|
||||||
name: HDArea
|
|
||||||
description: "HDArea is a CHINESE Private Torrent Tracker for HD MOVIES / TV"
|
|
||||||
language: zh-CN
|
|
||||||
type: private
|
|
||||||
encoding: UTF-8
|
|
||||||
links:
|
|
||||||
- https://hdarea.club/
|
|
||||||
legacylinks:
|
|
||||||
- https://www.hdarea.co/
|
|
||||||
- https://www.hdarea.club/
|
|
||||||
|
|
||||||
caps:
|
|
||||||
categorymappings:
|
|
||||||
- {id: 300, cat: Movies/UHD, desc: "Movies UHD-4K"}
|
|
||||||
- {id: 401, cat: Movies/BluRay, desc: "Movies Blu-ray"}
|
|
||||||
- {id: 415, cat: Movies/HD, desc: "Movies REMUX"}
|
|
||||||
- {id: 416, cat: Movies/3D, desc: "Movies 3D"}
|
|
||||||
- {id: 410, cat: Movies/HD, desc: "Movies 1080p"}
|
|
||||||
- {id: 411, cat: Movies/HD, desc: "Movies 720p"}
|
|
||||||
- {id: 414, cat: Movies/DVD, desc: "Movies DVD"}
|
|
||||||
- {id: 412, cat: Movies/WEB-DL, desc: "Movies WEB-DL"}
|
|
||||||
- {id: 413, cat: Movies/HD, desc: "Movies HDTV"}
|
|
||||||
- {id: 417, cat: Movies/Other, desc: "Movies iPad"}
|
|
||||||
- {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, imdbid]
|
|
||||||
movie-search: [q, imdbid]
|
|
||||||
music-search: [q]
|
|
||||||
|
|
||||||
settings:
|
|
||||||
- name: cookie
|
|
||||||
type: text
|
|
||||||
label: Cookie
|
|
||||||
- name: info
|
|
||||||
type: info
|
|
||||||
label: How to get the Cookie
|
|
||||||
default: "<ol><li>Login to this tracker with your browser</li><li>Open the <b>DevTools</b> panel by pressing <b>F12</b></li><li>Select the <b>Network</b> tab</li><li>Click on the <b>Doc</b> button (Chrome Browser) or <b>HTML</b> button (FireFox)</li><li>Refresh the page by pressing <b>F5</b></li><li>Click on the first row entry</li><li>Select the <b>Headers</b> tab on the Right panel</li><li>Find <b>'cookie:'</b> in the <b>Request Headers</b> section</li><li><b>Select</b> and <b>Copy</b> the whole cookie string <i>(everything after 'cookie: ')</i> and <b>Paste</b> here.</li></ol>"
|
|
||||||
- name: freeleech
|
|
||||||
type: checkbox
|
|
||||||
label: Search freeleech only
|
|
||||||
default: false
|
|
||||||
- name: sort
|
|
||||||
type: select
|
|
||||||
label: Sort requested from site
|
|
||||||
default: 4
|
|
||||||
options:
|
|
||||||
4: created
|
|
||||||
7: seeders
|
|
||||||
5: size
|
|
||||||
1: title
|
|
||||||
- name: type
|
|
||||||
type: select
|
|
||||||
label: Order requested from site
|
|
||||||
default: desc
|
|
||||||
options:
|
|
||||||
desc: desc
|
|
||||||
asc: asc
|
|
||||||
- name: info_tpp
|
|
||||||
type: info
|
|
||||||
label: Results Per Page
|
|
||||||
default: For best results, change the <b>Torrents per page:</b> setting to <b>100</b> on your account profile.
|
|
||||||
- name: info_activity
|
|
||||||
type: info
|
|
||||||
label: Account Inactivity
|
|
||||||
default: "Account Retention Rules:<ol><li>Veteran Users and above will be retained forever</li><li> Insane User and above will not be deleted after parking (in the control panel)</li><li>Users with a parked account will be deleted if they do not log in for 150 consecutive days</li><li>Users with a non-parked account will be deleted if they do not log in for 60 consecutive days.</li><li> Newly registered users who have no traffic for 7 days (i.e., upload/download data is 0) will be deleted.</li></ol>"
|
|
||||||
|
|
||||||
login:
|
|
||||||
method: cookie
|
|
||||||
inputs:
|
|
||||||
cookie: "{{ .Config.cookie }}"
|
|
||||||
test:
|
|
||||||
path: index.php
|
|
||||||
selector: a[href="usercp.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 onlydead
|
|
||||||
incldead: 1
|
|
||||||
# 0 all, 1 normal, 2 free, 2 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_optional:
|
|
||||||
optional: true
|
|
||||||
selector: a[title][href^="details.php?id="]
|
|
||||||
attribute: title
|
|
||||||
title:
|
|
||||||
text: "{{ if .Result.title_optional }}{{ .Result.title_optional }}{{ else }}{{ .Result.title_default }}{{ end }}"
|
|
||||||
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: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: 0.8
|
|
||||||
description:
|
|
||||||
selector: td:nth-child(2)
|
|
||||||
remove: a, b, font, img, span
|
|
||||||
# NexusPHP Standard v1.5 Beta 4
|
|
||||||
@@ -1,183 +0,0 @@
|
|||||||
---
|
|
||||||
id: hdatmos
|
|
||||||
name: HDAtmos
|
|
||||||
description: "HDAtmos is a CHINESE Private Torrent Tracker for HD MOVIES / TV / GENERAL"
|
|
||||||
language: zh-CN
|
|
||||||
type: private
|
|
||||||
encoding: UTF-8
|
|
||||||
links:
|
|
||||||
- https://hdatmos.club/
|
|
||||||
|
|
||||||
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: 406, cat: Audio/Video, desc: "Music Videos/MV演唱会"}
|
|
||||||
- {id: 407, cat: TV/Sport, desc: "Sports/体育"}
|
|
||||||
- {id: 408, cat: Audio, desc: "HQ Audio/音乐"}
|
|
||||||
|
|
||||||
modes:
|
|
||||||
search: [q]
|
|
||||||
tv-search: [q, season, ep, imdbid, doubanid]
|
|
||||||
movie-search: [q, imdbid, doubanid]
|
|
||||||
music-search: [q]
|
|
||||||
|
|
||||||
settings:
|
|
||||||
- name: username
|
|
||||||
type: text
|
|
||||||
label: Username
|
|
||||||
- name: password
|
|
||||||
type: password
|
|
||||||
label: Password
|
|
||||||
- name: 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 HDAtmos Web Site. Otherwise just leave it empty."
|
|
||||||
- name: freeleech
|
|
||||||
type: checkbox
|
|
||||||
label: Search freeleech only
|
|
||||||
default: false
|
|
||||||
- name: sort
|
|
||||||
type: select
|
|
||||||
label: Sort requested from site
|
|
||||||
default: 4
|
|
||||||
options:
|
|
||||||
4: created
|
|
||||||
7: seeders
|
|
||||||
5: size
|
|
||||||
1: title
|
|
||||||
- name: type
|
|
||||||
type: select
|
|
||||||
label: Order requested from site
|
|
||||||
default: desc
|
|
||||||
options:
|
|
||||||
desc: desc
|
|
||||||
asc: asc
|
|
||||||
- name: info_tpp
|
|
||||||
type: info
|
|
||||||
label: Results Per Page
|
|
||||||
default: For best results, change the <b>Torrents per page:</b> setting to <b>100</b> on your account profile.
|
|
||||||
- name: info_activity
|
|
||||||
type: info
|
|
||||||
label: Account Inactivity
|
|
||||||
default: "Cherish your user account. Inactive accounts would be deleted based on the following rules:<ol><li>Veteran User or above would never be deleted.</li><li>Elite User or above would never be deleted if parked (at User CP).</li><li>Parked accounts would be deleted if users have not logged in for more than 400 days in a row.</li><li>Unparked accounts would be deleted if users have not logged in for more than 150 days in a row.</li><li>Accounts with both uploaded and downloaded amount being 0 would be deleted if users have not logged in for more than 100 days in a row.</li></ol>"
|
|
||||||
|
|
||||||
login:
|
|
||||||
path: login.php
|
|
||||||
method: form
|
|
||||||
form: form[action="takelogin.php"]
|
|
||||||
captcha:
|
|
||||||
type: image
|
|
||||||
selector: img[alt="CAPTCHA"]
|
|
||||||
input: imagestring
|
|
||||||
inputs:
|
|
||||||
secret: ""
|
|
||||||
username: "{{ .Config.username }}"
|
|
||||||
password: "{{ .Config.password }}"
|
|
||||||
two_step_code: "{{ .Config.2facode }}"
|
|
||||||
logout: ""
|
|
||||||
securelogin: ""
|
|
||||||
ssl: yes
|
|
||||||
trackerssl: yes
|
|
||||||
error:
|
|
||||||
- selector: td.embedded:has(h2:contains("失败"))
|
|
||||||
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 }}{{ 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_optional:
|
|
||||||
optional: true
|
|
||||||
selector: a[title][href^="details.php?id="]
|
|
||||||
attribute: title
|
|
||||||
title:
|
|
||||||
text: "{{ if .Result.title_optional }}{{ .Result.title_optional }}{{ else }}{{ .Result.title_default }}{{ end }}"
|
|
||||||
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
|
|
||||||
description:
|
|
||||||
selector: td:nth-child(2)
|
|
||||||
remove: a, b, font, img, span
|
|
||||||
# NexusPHP v1.8.8 2023-09-25
|
|
||||||
@@ -1,170 +0,0 @@
|
|||||||
---
|
|
||||||
id: hdc
|
|
||||||
name: HDCiTY
|
|
||||||
description: "HDCiTY (HDC) is a CHINESE Private Torrent Tracker for HD MOVIES / TV / GENERAL"
|
|
||||||
language: zh-CN
|
|
||||||
type: private
|
|
||||||
encoding: UTF-8
|
|
||||||
links:
|
|
||||||
- https://hdcity.city/
|
|
||||||
- https://hdcity.work/
|
|
||||||
- https://hdcity.leniter.org/
|
|
||||||
- https://hdcity4.leniter.org/
|
|
||||||
|
|
||||||
caps:
|
|
||||||
categorymappings:
|
|
||||||
- {id: 401, cat: Movies, desc: "Movies/电影"}
|
|
||||||
- {id: 402, cat: TV, desc: "Series/剧集"}
|
|
||||||
- {id: 404, cat: TV/Documentary, desc: "Doc/档案记录"}
|
|
||||||
- {id: 405, cat: TV/Anime, desc: "Anim/动漫"}
|
|
||||||
- {id: 403, cat: TV, desc: "Shows/节目"}
|
|
||||||
- {id: 406, cat: Audio/Video, desc: "MV/音乐视频"}
|
|
||||||
- {id: 407, cat: TV/Sport, desc: "Sports/体育"}
|
|
||||||
- {id: 408, cat: Audio, desc: "Audio/音频"}
|
|
||||||
- {id: 727, cat: XXX, desc: "XXX/家长指引"}
|
|
||||||
- {id: 728, cat: Other, desc: "Edu/文档/教材"}
|
|
||||||
- {id: 729, cat: PC, desc: "Soft/软件"}
|
|
||||||
- {id: 409, cat: Other, desc: "Other/其他"}
|
|
||||||
|
|
||||||
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
|
|
||||||
type: info
|
|
||||||
label: How to get the Cookie
|
|
||||||
default: "<ol><li>Login to this tracker with your browser</li><li>Open the <b>DevTools</b> panel by pressing <b>F12</b></li><li>Select the <b>Network</b> tab</li><li>Click on the <b>Doc</b> button (Chrome Browser) or <b>HTML</b> button (FireFox)</li><li>Refresh the page by pressing <b>F5</b></li><li>Click on the first row entry</li><li>Select the <b>Headers</b> tab on the Right panel</li><li>Find <b>'cookie:'</b> in the <b>Request Headers</b> section</li><li><b>Select</b> and <b>Copy</b> the whole cookie string <i>(everything after 'cookie: ')</i> and <b>Paste</b> here.</li></ol>"
|
|
||||||
- name: freeleech
|
|
||||||
type: checkbox
|
|
||||||
label: Search freeleech only
|
|
||||||
default: false
|
|
||||||
- name: sort
|
|
||||||
type: select
|
|
||||||
label: Sort requested from site
|
|
||||||
default: 4
|
|
||||||
options:
|
|
||||||
4: created
|
|
||||||
7: seeders
|
|
||||||
5: size
|
|
||||||
- name: type
|
|
||||||
type: select
|
|
||||||
label: Order requested from site
|
|
||||||
default: desc
|
|
||||||
options:
|
|
||||||
desc: desc
|
|
||||||
asc: asc
|
|
||||||
- name: info_Results
|
|
||||||
type: info
|
|
||||||
label: Settings for Results
|
|
||||||
default: "To use this indexer please set the following on your HDC account <b>profile</b>:<ul><li><i>Site Language:</i><b> English</b></li><li><i>Torrent List Profile:</i> <b>Default Modern [preview]</b></li><li><i>Time Type: </i><b>Time Added</b></li><li><i>Torrents per page:</i><b> 100</b></li></ul>"
|
|
||||||
|
|
||||||
login:
|
|
||||||
method: cookie
|
|
||||||
inputs:
|
|
||||||
cookie: "{{ .Config.cookie }}"
|
|
||||||
test:
|
|
||||||
path: pt
|
|
||||||
selector: a[href^="logout?key="]
|
|
||||||
|
|
||||||
search:
|
|
||||||
paths:
|
|
||||||
# https://hdcity.city/pt?incldead=0&spstate=0&inclbookmarked=0&iwannaseethis=shanghai+triad&search_area=0&search_mode=0
|
|
||||||
# https://hdcity.city/pt?incldead=0&spstate=0&inclbookmarked=0&iwannaseethis=115012&search_area=4&search_mode=0
|
|
||||||
- path: pt
|
|
||||||
inputs:
|
|
||||||
$raw: "{{ range .Categories }}cat{{.}}=1&{{end}}"
|
|
||||||
iwannaseethis: "{{ if .Query.IMDBID }}{{ .Query.IMDBIDShort }}{{ 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 imdb number
|
|
||||||
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: div.trblock
|
|
||||||
|
|
||||||
fields:
|
|
||||||
title:
|
|
||||||
selector: div.trtop a[href^="t-"]
|
|
||||||
category:
|
|
||||||
selector: div.trm
|
|
||||||
attribute: style
|
|
||||||
filters:
|
|
||||||
- name: regexp
|
|
||||||
args: (\d+)
|
|
||||||
details:
|
|
||||||
selector: div.trtop a[href^="t-"]
|
|
||||||
attribute: href
|
|
||||||
download:
|
|
||||||
selector: a[href^="download?id="]
|
|
||||||
attribute: href
|
|
||||||
poster:
|
|
||||||
selector: div.trp:not(:has(img[src$="poster.jpg"])) img
|
|
||||||
attribute: src
|
|
||||||
imdbid:
|
|
||||||
selector: a[href*="imdb.com/title/tt"]
|
|
||||||
attribute: href
|
|
||||||
size:
|
|
||||||
selector: div.trbo div:nth-last-child(8)
|
|
||||||
remove: i
|
|
||||||
seeders_optional:
|
|
||||||
selector: div.trbo div:nth-last-child(7)
|
|
||||||
optional: true
|
|
||||||
filters:
|
|
||||||
- name: re_replace
|
|
||||||
args: ["\\s", "0"]
|
|
||||||
seeders:
|
|
||||||
text: "{{ if .Result.seeders_optional }}{{ .Result.seeders_optional }}{{ else }}0{{ end }}"
|
|
||||||
leechers_optional:
|
|
||||||
selector: div.trbo div:nth-last-child(6)
|
|
||||||
optional: true
|
|
||||||
filters:
|
|
||||||
- name: re_replace
|
|
||||||
args: ["\\s", "0"]
|
|
||||||
leechers:
|
|
||||||
text: "{{ if .Result.leechers_optional }}{{ .Result.leechers_optional }}{{ else }}0{{ end }}"
|
|
||||||
grabs_optional:
|
|
||||||
selector: div.trbo div:nth-last-child(5)
|
|
||||||
optional: true
|
|
||||||
filters:
|
|
||||||
- name: re_replace
|
|
||||||
args: ["\\s", "0"]
|
|
||||||
grabs:
|
|
||||||
text: "{{ if .Result.grabs_optional }}{{ .Result.grabs_optional }}{{ else }}0{{ end }}"
|
|
||||||
date:
|
|
||||||
remove: a, span
|
|
||||||
selector: div[style="float:right;"]
|
|
||||||
filters:
|
|
||||||
- name: replace
|
|
||||||
args: ["@", ""]
|
|
||||||
- name: append
|
|
||||||
args: " +08:00" # CST
|
|
||||||
- name: dateparse
|
|
||||||
args: "yyyy-MM-dd HH:mm:ss zzz"
|
|
||||||
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
|
|
||||||
# engine n/a (likely based on NexusPHP)
|
|
||||||
@@ -1,211 +0,0 @@
|
|||||||
---
|
|
||||||
id: hdfans
|
|
||||||
name: HDFans
|
|
||||||
description: "HDFans is a CHINESE Private Torrent Tracker for MOVIES / TV / GENERAL"
|
|
||||||
language: zh-CN
|
|
||||||
type: private
|
|
||||||
encoding: UTF-8
|
|
||||||
links:
|
|
||||||
- https://hdfans.org/
|
|
||||||
|
|
||||||
caps:
|
|
||||||
categorymappings:
|
|
||||||
- {id: 401, cat: Movies, desc: "Movies/电影"}
|
|
||||||
- {id: 402, cat: TV, desc: "TV Series/电视剧"}
|
|
||||||
- {id: 403, cat: TV/Documentary, desc: "Documentaries/纪录片"}
|
|
||||||
- {id: 406, cat: Audio, desc: "Music/音乐"}
|
|
||||||
- {id: 416, cat: TV, desc: "TV Shows/综艺"}
|
|
||||||
- {id: 417, cat: TV/Anime, desc: "Animations/动漫"}
|
|
||||||
- {id: 407, cat: Audio/Video, desc: "Music Videos/音乐视频"}
|
|
||||||
- {id: 408, cat: Audio/Video, desc: "Concert/演唱会"}
|
|
||||||
- {id: 404, cat: Other, desc: "Education/教育"}
|
|
||||||
- {id: 405, cat: Audio/Audiobook, desc: "Audio Books/有声读物"}
|
|
||||||
- {id: 409, cat: Movies/Other, desc: "Drama/戏剧"}
|
|
||||||
- {id: 418, cat: TV/Sport, desc: "Sports/体育"}
|
|
||||||
- {id: 419, cat: PC/0day, desc: "Software/软件"}
|
|
||||||
- {id: 421, cat: PC/Games, desc: "Games/游戏"}
|
|
||||||
- {id: 423, cat: Books/EBook, desc: "E-Books/电子书"}
|
|
||||||
- {id: 410, cat: Other, desc: "Others/其他"}
|
|
||||||
|
|
||||||
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: 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 HDFans 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>Veteran 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 15 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("失败"))
|
|
||||||
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 }}{{ 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_optional:
|
|
||||||
optional: true
|
|
||||||
selector: a[title][href^="details.php?id="]
|
|
||||||
attribute: title
|
|
||||||
title:
|
|
||||||
text: "{{ if .Result.title_optional }}{{ .Result.title_optional }}{{ else }}{{ .Result.title_default }}{{ end }}"
|
|
||||||
details:
|
|
||||||
selector: a[href^="details.php?id="]
|
|
||||||
attribute: href
|
|
||||||
download:
|
|
||||||
selector: a[href^="download.php?id="]
|
|
||||||
attribute: href
|
|
||||||
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
|
|
||||||
minimumratio:
|
|
||||||
text: 0.81
|
|
||||||
description_verified:
|
|
||||||
case:
|
|
||||||
span[title="通过"], span[title="通過"], span[title="Allowed"]: "Verified:"
|
|
||||||
span[title="未审"], span[title="未審"], span[title="Not reviewed"]: "Unverified:"
|
|
||||||
span[title="拒绝"], span[title="拒絕"], span[title="Denied"]: "Banned:"
|
|
||||||
description:
|
|
||||||
selector: td:nth-child(2)
|
|
||||||
remove: a, b, font, img, span
|
|
||||||
filters:
|
|
||||||
- name: prepend
|
|
||||||
args: "{{ .Result.description_verified }} "
|
|
||||||
# NexusPHP v1.8.9 2023-11-15
|
|
||||||
@@ -1,227 +0,0 @@
|
|||||||
---
|
|
||||||
id: hdfun
|
|
||||||
name: HDFun
|
|
||||||
description: "HDFun (HDZone) is a CHINESE Private Torrent Tracker for HD MOVIES / TV"
|
|
||||||
language: zh-CN
|
|
||||||
type: private
|
|
||||||
encoding: UTF-8
|
|
||||||
links:
|
|
||||||
- https://hdzone.me/
|
|
||||||
- https://hdfun.me/
|
|
||||||
|
|
||||||
caps:
|
|
||||||
categorymappings:
|
|
||||||
- {id: 411, cat: Movies/SD, desc: "Movies SD"}
|
|
||||||
- {id: 412, cat: Movies, desc: "Movies IPad"}
|
|
||||||
- {id: 413, cat: Movies/HD, desc: "Movies 720p"}
|
|
||||||
- {id: 414, cat: Movies/HD, desc: "Movies 1080p"}
|
|
||||||
- {id: 415, cat: Movies, desc: "Movies REMUX"}
|
|
||||||
- {id: 450, cat: Movies/BluRay, desc: "Movies Bluray"}
|
|
||||||
- {id: 499, cat: Movies/UHD, desc: "Movies UHD Blu-ray"}
|
|
||||||
- {id: 416, cat: Movies/UHD, desc: "Movies 2160p"}
|
|
||||||
- {id: 417, cat: TV/Documentary, desc: "Doc SD"}
|
|
||||||
- {id: 418, cat: TV/Documentary, desc: "Doc IPad"}
|
|
||||||
- {id: 419, cat: TV/Documentary, desc: "Doc 720p"}
|
|
||||||
- {id: 420, cat: TV/Documentary, desc: "Doc 1080p"}
|
|
||||||
- {id: 421, cat: TV/Documentary, desc: "Doc REMUX"}
|
|
||||||
- {id: 451, cat: TV/Documentary, desc: "Doc Bluray"}
|
|
||||||
- {id: 500, cat: TV/Documentary, desc: "Doc UHD Blu-ray"}
|
|
||||||
- {id: 422, cat: TV/Documentary, desc: "Doc 2160p"}
|
|
||||||
- {id: 423, cat: Audio/Video, desc: "TVMusic 720p"}
|
|
||||||
- {id: 424, cat: Audio/Video, desc: "TVMusic 1080i"}
|
|
||||||
- {id: 425, cat: TV/SD, desc: "TVShow SD"}
|
|
||||||
- {id: 426, cat: TV, desc: "TVShow IPad"}
|
|
||||||
- {id: 471, cat: TV, desc: "TVShow IPad"}
|
|
||||||
- {id: 427, cat: TV/HD, desc: "TVShow 720p"}
|
|
||||||
- {id: 472, cat: TV/HD, desc: "TVShow 720p"}
|
|
||||||
- {id: 428, cat: TV/HD, desc: "TVShow 1080i"}
|
|
||||||
- {id: 429, cat: TV/HD, desc: "TVShow 1080p"}
|
|
||||||
- {id: 430, cat: TV, desc: "TVShow REMUX"}
|
|
||||||
- {id: 452, cat: TV/HD, desc: "TVShow Bluray"}
|
|
||||||
- {id: 431, cat: TV/UHD, desc: "TVShow 2160p"}
|
|
||||||
- {id: 432, cat: TV/SD, desc: "TVSeries SD"}
|
|
||||||
- {id: 433, cat: TV, desc: "TVSeries IPad"}
|
|
||||||
- {id: 434, cat: TV/HD, desc: "TVSeries 720p"}
|
|
||||||
- {id: 435, cat: TV/HD, desc: "TVSeries 1080i"}
|
|
||||||
- {id: 436, cat: TV/HD, desc: "TVSeries 1080p"}
|
|
||||||
- {id: 437, cat: TV, desc: "TVSeries REMUX"}
|
|
||||||
- {id: 453, cat: TV/HD, desc: "TVSeries Bluray"}
|
|
||||||
- {id: 438, cat: TV/UHD, desc: "TVSeries 2160p"}
|
|
||||||
- {id: 439, cat: Audio, desc: "Music APE"}
|
|
||||||
- {id: 440, cat: Audio/Lossless, desc: "Music FLAC"}
|
|
||||||
- {id: 441, cat: Audio/Video, desc: "Music MV"}
|
|
||||||
- {id: 442, cat: TV/Sport, desc: "Sports 720p"}
|
|
||||||
- {id: 443, cat: TV/Sport, desc: "Sports 1080i"}
|
|
||||||
- {id: 444, cat: TV/Anime, desc: "Anime SD"}
|
|
||||||
- {id: 445, cat: TV/Anime, desc: "Anime IPad"}
|
|
||||||
- {id: 446, cat: TV/Anime, desc: "Anime 720p"}
|
|
||||||
- {id: 447, cat: TV/Anime, desc: "Anime 1080p"}
|
|
||||||
- {id: 448, cat: TV/Anime, desc: "Anime REMUX"}
|
|
||||||
- {id: 454, cat: TV/Anime, desc: "Anime Bluray"}
|
|
||||||
- {id: 409, cat: Other, desc: "Misc"}
|
|
||||||
- {id: 449, cat: TV/Anime, desc: "Anime 2160p"}
|
|
||||||
- {id: 501, cat: TV/Anime, desc: "Anime UHD Blu-ray"}
|
|
||||||
|
|
||||||
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: "Cherish your user account. Inactive accounts would be deleted based on the following rules:<ol><li>Nexus Master or above would never be deleted</li><li>Insane 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 120 days in a row</li><li>Un-parked accounts would be deleted if users have not logged in for more than 60 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 7 days in a row.</li></ol>"
|
|
||||||
|
|
||||||
login:
|
|
||||||
path: login.php
|
|
||||||
method: form
|
|
||||||
form: form[action="takelogin.php"]
|
|
||||||
captcha:
|
|
||||||
type: image
|
|
||||||
selector: img[alt="CAPTCHA"]
|
|
||||||
input: imagestring
|
|
||||||
inputs:
|
|
||||||
secret: ""
|
|
||||||
username: "{{ .Config.username }}"
|
|
||||||
password: "{{ .Config.password }}"
|
|
||||||
logout: ""
|
|
||||||
securelogin: ""
|
|
||||||
ssl: yes
|
|
||||||
trackerssl: yes
|
|
||||||
error:
|
|
||||||
- selector: td.embedded:has(h2:contains("失败"))
|
|
||||||
test:
|
|
||||||
path: torrents.php
|
|
||||||
selector: a[href="logout.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 onlydead
|
|
||||||
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 imdb
|
|
||||||
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(table.torrentname)
|
|
||||||
|
|
||||||
fields:
|
|
||||||
category:
|
|
||||||
selector: a[href^="?cat="]
|
|
||||||
attribute: href
|
|
||||||
filters:
|
|
||||||
- name: querystring
|
|
||||||
args: cat
|
|
||||||
title_default:
|
|
||||||
selector: a[href^="details.php?id="]
|
|
||||||
title_optional:
|
|
||||||
optional: true
|
|
||||||
selector: a[title][href^="details.php?id="]
|
|
||||||
attribute: title
|
|
||||||
title:
|
|
||||||
text: "{{ if .Result.title_optional }}{{ .Result.title_optional }}{{ else }}{{ .Result.title_default }}{{ end }}"
|
|
||||||
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: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.2
|
|
||||||
# does not appear to be implemented, no h&r tag found
|
|
||||||
# minimumseedtime:
|
|
||||||
# # 14 days (as seconds = 2 x 24 x 60 x 60)
|
|
||||||
# text: 1209600
|
|
||||||
description:
|
|
||||||
selector: td:nth-child(2)
|
|
||||||
remove: a, b, font, img, span
|
|
||||||
# NexusPHP Standard v1.5 Beta 4
|
|
||||||
@@ -1,268 +0,0 @@
|
|||||||
---
|
|
||||||
id: hdgalaktik
|
|
||||||
name: HDGalaKtik
|
|
||||||
description: "HDGalaKtik is a RUSSIAN Semi-Private tracker for MOVIES / TV / GENERAL"
|
|
||||||
language: ru-RU
|
|
||||||
type: semi-private
|
|
||||||
encoding: UTF-8
|
|
||||||
links:
|
|
||||||
- https://www.trackerpmr.com/
|
|
||||||
- https://freetmd.com/
|
|
||||||
- https://kinoradiomagia.tv/
|
|
||||||
legacylinks:
|
|
||||||
- https://hdgalaktik.com/
|
|
||||||
|
|
||||||
caps:
|
|
||||||
categorymappings:
|
|
||||||
- {id: 13, cat: Movies, desc: "Фильмы (Movies)"}
|
|
||||||
- {id: 6, cat: TV, desc: "Мультфильмы (Cartoons)"}
|
|
||||||
- {id: 10, cat: Audio, desc: "Музыка (Music)"}
|
|
||||||
- {id: 26, cat: PC, desc: "Программы (Programs)"}
|
|
||||||
- {id: 5, cat: Console, desc: "Игры (Games)"}
|
|
||||||
- {id: 25, cat: Other, desc: "Картинки (Pictures)"}
|
|
||||||
- {id: 11, cat: TV, desc: "Сериалы (TV Series)"}
|
|
||||||
- {id: 12, cat: TV/Anime, desc: "Аниме (Anime)"}
|
|
||||||
- {id: 16, cat: Books, desc: "Книги (Books)"}
|
|
||||||
- {id: 18, cat: Audio/Video, desc: "Клипы / Ролики (Clips / Trailers)"}
|
|
||||||
- {id: 22, cat: TV, desc: "ТВ / Передачи (TV)"}
|
|
||||||
- {id: 27, cat: PC/Mobile-Other, desc: "Игры - Мобила / КПК (Mobile)"}
|
|
||||||
- {id: 1, cat: PC/ISO, desc: "Образы (ISO)"}
|
|
||||||
- {id: 4, cat: Other, desc: "Другое (Other)"}
|
|
||||||
|
|
||||||
modes:
|
|
||||||
search: [q]
|
|
||||||
tv-search: [q, season, ep]
|
|
||||||
movie-search: [q]
|
|
||||||
music-search: [q]
|
|
||||||
book-search: [q]
|
|
||||||
|
|
||||||
settings:
|
|
||||||
- name: cookie
|
|
||||||
type: text
|
|
||||||
label: Cookie
|
|
||||||
- name: info
|
|
||||||
type: info
|
|
||||||
label: How to get the Cookie
|
|
||||||
default: "<ol><li>Login to this tracker with your browser</li><li>Open the <b>DevTools</b> panel by pressing <b>F12</b></li><li>Select the <b>Network</b> tab</li><li>Click on the <b>Doc</b> button (Chrome Browser) or <b>HTML</b> button (FireFox)</li><li>Refresh the page by pressing <b>F5</b></li><li>Click on the first row entry</li><li>Select the <b>Headers</b> tab on the Right panel</li><li>Find <b>'cookie:'</b> in the <b>Request Headers</b> section</li><li><b>Select</b> and <b>Copy</b> the whole cookie string <i>(everything after 'cookie: ')</i> and <b>Paste</b> here.</li></ol>"
|
|
||||||
- name: 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: freeleech
|
|
||||||
type: checkbox
|
|
||||||
label: Search freeleech only
|
|
||||||
default: false
|
|
||||||
- name: sort
|
|
||||||
type: select
|
|
||||||
label: Sort requested from site
|
|
||||||
default: 4
|
|
||||||
options:
|
|
||||||
4: created
|
|
||||||
1: title
|
|
||||||
5: size
|
|
||||||
8: 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>Torrents per page:</b> setting to <b>100</b> on your account profile.
|
|
||||||
|
|
||||||
login:
|
|
||||||
method: cookie
|
|
||||||
inputs:
|
|
||||||
cookie: "{{ .Config.cookie }}"
|
|
||||||
test:
|
|
||||||
path: /
|
|
||||||
selector: a[href="mybonus.php"]
|
|
||||||
|
|
||||||
search:
|
|
||||||
# https://www.trackerpmr.com/browse.php?search=&stype=0&s=0&cat=0&gr=0&kp=0&im=0&incldead=1&sort=0&type=desc
|
|
||||||
paths:
|
|
||||||
- path: browse.php
|
|
||||||
inputs:
|
|
||||||
$raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
|
|
||||||
search: "{{ .Keywords }}"
|
|
||||||
# 0 title, 1 descr, 2 filename, 4 infohash
|
|
||||||
stype: 0
|
|
||||||
# 0 AND 1 OR
|
|
||||||
s: 0
|
|
||||||
# release group
|
|
||||||
gr: 0
|
|
||||||
# ratings
|
|
||||||
kp: 0
|
|
||||||
# 1 active, 2 dead, 3 gold, 4 sticky, lots of others
|
|
||||||
incldead: "{{ if .Config.freeleech }}3{{ else }}1{{ end }}"
|
|
||||||
sort: "{{ .Config.sort }}"
|
|
||||||
type: "{{ .Config.type }}"
|
|
||||||
|
|
||||||
keywordsfilters:
|
|
||||||
- name: re_replace # S01 to сезон 1
|
|
||||||
args: ["(?i)\\bS0*(\\d+)\\b", "сезон $1"]
|
|
||||||
- name: re_replace # E02 to сери 1
|
|
||||||
args: ["(?i)\\bE0*(\\d+)\\b", "сери $1"]
|
|
||||||
- name: re_replace # S01E02 to сезон 1 сери 2
|
|
||||||
args: ["(?i)\\bS0*(\\d+)E0*(\\d+)\\b", "сезон $1 сери $2"]
|
|
||||||
- name: re_replace # replace special characters with "%" (wildcard)
|
|
||||||
args: ["[^a-zA-Z0-9]+", "%"]
|
|
||||||
|
|
||||||
rows:
|
|
||||||
selector: table.embedded > tbody > tr.torcontduo
|
|
||||||
|
|
||||||
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 }}4{{ end }}"
|
|
||||||
title:
|
|
||||||
selector: a.alink
|
|
||||||
attribute: onmouseover
|
|
||||||
filters:
|
|
||||||
- name: regexp
|
|
||||||
args: \'>(.+?)</div
|
|
||||||
# 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)\\bFiles-х\\b", "Files-x"]
|
|
||||||
- name: re_replace
|
|
||||||
args: ["(?i)\\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\\/\\|]*(.+)", "$2 $1"]
|
|
||||||
- name: append
|
|
||||||
args: "{{ if .Config.addrussiantotitle }} RUS{{ else }}{{ end }}"
|
|
||||||
details:
|
|
||||||
selector: a.alink
|
|
||||||
attribute: href
|
|
||||||
download:
|
|
||||||
selector: a.alink
|
|
||||||
attribute: href
|
|
||||||
filters:
|
|
||||||
- name: replace
|
|
||||||
args: ["details", "download"]
|
|
||||||
poster:
|
|
||||||
selector: img.s
|
|
||||||
attribute: src
|
|
||||||
imdbid:
|
|
||||||
selector: a[href^="browse.php?imdb="]
|
|
||||||
attribute: href
|
|
||||||
filters:
|
|
||||||
- name: querystring
|
|
||||||
args: imdb
|
|
||||||
size:
|
|
||||||
selector: td:nth-child(4)
|
|
||||||
seeders:
|
|
||||||
selector: td:nth-child(6)
|
|
||||||
filters:
|
|
||||||
- name: split
|
|
||||||
args: ["|", 0]
|
|
||||||
leechers:
|
|
||||||
selector: td:nth-child(6)
|
|
||||||
filters:
|
|
||||||
- name: split
|
|
||||||
args: ["|", 1]
|
|
||||||
date_today:
|
|
||||||
# Сегодня в 18:22
|
|
||||||
selector: a[href^="browse.php?date="]:contains("Сегодня")
|
|
||||||
optional: true
|
|
||||||
filters:
|
|
||||||
- name: regexp
|
|
||||||
args: "(Сегодня в \\d{2}:\\d{2})"
|
|
||||||
- name: replace
|
|
||||||
args: ["Сегодня в", "Today"]
|
|
||||||
- name: fuzzytime
|
|
||||||
date_yday:
|
|
||||||
# Вчера в 20:52
|
|
||||||
selector: a[href^="browse.php?date="]:contains("Вчера")
|
|
||||||
optional: true
|
|
||||||
filters:
|
|
||||||
- name: regexp
|
|
||||||
args: "(Вчера в \\d{2}:\\d{2})"
|
|
||||||
- name: replace
|
|
||||||
args: ["Вчера в", "Yesterday"]
|
|
||||||
- name: fuzzytime
|
|
||||||
date_year:
|
|
||||||
# 23:48 24/07
|
|
||||||
selector: a[href^="browse.php?date="]:contains("/")
|
|
||||||
optional: true
|
|
||||||
filters:
|
|
||||||
- name: regexp
|
|
||||||
args: "(\\d{2}:\\d{2} \\d{2}/\\d{2})"
|
|
||||||
- name: append
|
|
||||||
args: " +03:00" # MSK
|
|
||||||
- name: dateparse
|
|
||||||
args: "HH:mm dd/MM zzz"
|
|
||||||
date:
|
|
||||||
text: "{{ if or .Result.date_year .Result.date_today .Result.date_yday }}{{ or .Result.date_year .Result.date_today .Result.date_yday }}{{ else }}now{{ end }}"
|
|
||||||
downloadvolumefactor:
|
|
||||||
case:
|
|
||||||
img[src="/pic/freedownload.gif"]: 0
|
|
||||||
"*": 1
|
|
||||||
uploadvolumefactor:
|
|
||||||
text: 1
|
|
||||||
minimumratio:
|
|
||||||
text: 1.0
|
|
||||||
description:
|
|
||||||
selector: a.alink
|
|
||||||
attribute: title
|
|
||||||
# engine n/a
|
|
||||||
@@ -1,210 +0,0 @@
|
|||||||
---
|
|
||||||
id: hdmayi
|
|
||||||
name: HDMaYi (小蚂蚁PT站)
|
|
||||||
description: "HDMaYi (小蚂蚁PT站) is a CHINESE Private Torrent Tracker for HD MOVIES / TV / GENERAL"
|
|
||||||
language: zh-CN
|
|
||||||
type: private
|
|
||||||
encoding: UTF-8
|
|
||||||
links:
|
|
||||||
- https://hdmayi.com/
|
|
||||||
legacylinks:
|
|
||||||
- http://hdmayi.com/
|
|
||||||
|
|
||||||
caps:
|
|
||||||
categorymappings:
|
|
||||||
- {id: 401, cat: Movies, desc: "Movies/电影"}
|
|
||||||
- {id: 404, cat: TV/Documentary, desc: "Documentaries/纪录片"}
|
|
||||||
- {id: 405, cat: TV/Anime, desc: "Animations/动漫"}
|
|
||||||
- {id: 402, cat: TV, desc: "TV Series/电视剧"}
|
|
||||||
- {id: 403, cat: TV, desc: "TV Shows/综艺"}
|
|
||||||
- {id: 406, cat: Audio/Video, desc: "MusicVideo/MV"}
|
|
||||||
- {id: 407, cat: TV/Sport, desc: "Sports/体育"}
|
|
||||||
- {id: 409, cat: Other, desc: "Misc/其他"}
|
|
||||||
- {id: 408, cat: Audio, desc: "Music/音乐"}
|
|
||||||
- {id: 410, cat: PC, desc: "Softs/软件"}
|
|
||||||
|
|
||||||
modes:
|
|
||||||
search: [q]
|
|
||||||
tv-search: [q, season, ep, imdbid, doubanid]
|
|
||||||
movie-search: [q, imdbid, doubanid]
|
|
||||||
music-search: [q]
|
|
||||||
|
|
||||||
settings:
|
|
||||||
- name: username
|
|
||||||
type: text
|
|
||||||
label: Username
|
|
||||||
- name: password
|
|
||||||
type: password
|
|
||||||
label: Password
|
|
||||||
- name: 2facode
|
|
||||||
type: text
|
|
||||||
label: 2FA code
|
|
||||||
- name: info_2fa
|
|
||||||
type: info
|
|
||||||
label: "About 2FA code"
|
|
||||||
default: "Only fill in the <b>2FA code</b> box if you have enabled <b>2FA</b> on the HDMaYi Web Site. Otherwise just leave it empty."
|
|
||||||
- name: freeleech
|
|
||||||
type: checkbox
|
|
||||||
label: Search freeleech only
|
|
||||||
default: false
|
|
||||||
- name: sort
|
|
||||||
type: select
|
|
||||||
label: Sort requested from site
|
|
||||||
default: 4
|
|
||||||
options:
|
|
||||||
4: created
|
|
||||||
7: seeders
|
|
||||||
5: size
|
|
||||||
1: title
|
|
||||||
- name: type
|
|
||||||
type: select
|
|
||||||
label: Order requested from site
|
|
||||||
default: desc
|
|
||||||
options:
|
|
||||||
desc: desc
|
|
||||||
asc: asc
|
|
||||||
- name: info_tpp
|
|
||||||
type: info
|
|
||||||
label: Results Per Page
|
|
||||||
default: For best results, change the <b>Torrents per page:</b> setting to <b>100</b> on your account profile.
|
|
||||||
- name: info_activity
|
|
||||||
type: info
|
|
||||||
label: Account Inactivity
|
|
||||||
default: "Cherish your user account. Inactive accounts would be deleted based on the following rules:<ol><li>Veteran User or above would never be deleted</li><li>Elite User or above would never be deleted if parked (at User CP)</li><li>Parked accounts would be deleted if users have not logged in for more than 400 days in a row</li><li>Un-parked accounts would be deleted if users have not logged in for more than 150 days in a row</li><li>Accounts with both uploaded and downloaded amount being 0 would be deleted if users have not logged in for more than 100 days in a row.</li></ol>"
|
|
||||||
|
|
||||||
login:
|
|
||||||
path: login.php
|
|
||||||
method: form
|
|
||||||
form: form[action="takelogin.php"]
|
|
||||||
captcha:
|
|
||||||
type: image
|
|
||||||
selector: img[alt="CAPTCHA"]
|
|
||||||
input: imagestring
|
|
||||||
inputs:
|
|
||||||
secret: ""
|
|
||||||
username: "{{ .Config.username }}"
|
|
||||||
password: "{{ .Config.password }}"
|
|
||||||
two_step_code: "{{ .Config.2facode }}"
|
|
||||||
logout: ""
|
|
||||||
securelogin: ""
|
|
||||||
ssl: yes
|
|
||||||
trackerssl: yes
|
|
||||||
error:
|
|
||||||
- selector: td.embedded:has(h2:contains("失败"))
|
|
||||||
test:
|
|
||||||
path: index.php
|
|
||||||
selector: a[href="logout.php"]
|
|
||||||
|
|
||||||
search:
|
|
||||||
paths:
|
|
||||||
- path: torrents.php
|
|
||||||
inputs:
|
|
||||||
$raw: "{{ range .Categories }}cat{{.}}=1&{{end}}"
|
|
||||||
search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ end }}{{ if or .Query.IMDBID .Query.DoubanID }} {{ else }}{{ .Keywords }}{{ end }}{{ if .Query.DoubanID }}{{ .Query.DoubanID }}{{ else }}{{ end }}"
|
|
||||||
# 0 incldead, 1 active, 2 dead
|
|
||||||
incldead: 0
|
|
||||||
# 0 all, 1 normal, 2 free, 3 2x, 4 2xfree, 5 50%, 6 2x50%, 7 30%
|
|
||||||
spstate: "{{ if .Config.freeleech }}2{{ else }}0{{ end }}"
|
|
||||||
# 0 title, 1 descr, 3 uploader, 4 imdburl (4 does not appear to work)
|
|
||||||
search_area: "{{ if or .Query.IMDBID .Query.DoubanID }}1{{ else }}0{{ end }}"
|
|
||||||
# 0 AND, 1 OR, 2 exact
|
|
||||||
search_mode: 0
|
|
||||||
sort: "{{ .Config.sort }}"
|
|
||||||
type: "{{ .Config.type }}"
|
|
||||||
notnewword: 1
|
|
||||||
|
|
||||||
rows:
|
|
||||||
selector: table.torrents > tbody > tr:has(a[href^="details.php?id="])
|
|
||||||
|
|
||||||
fields:
|
|
||||||
category:
|
|
||||||
selector: a[href^="?cat="]
|
|
||||||
attribute: href
|
|
||||||
filters:
|
|
||||||
- name: querystring
|
|
||||||
args: cat
|
|
||||||
title_default:
|
|
||||||
selector: a[href^="details.php?id="]
|
|
||||||
title_optional:
|
|
||||||
optional: true
|
|
||||||
selector: a[title][href^="details.php?id="]
|
|
||||||
attribute: title
|
|
||||||
title:
|
|
||||||
text: "{{ if .Result.title_optional }}{{ .Result.title_optional }}{{ else }}{{ .Result.title_default }}{{ end }}"
|
|
||||||
details:
|
|
||||||
selector: a[href^="details.php?id="]
|
|
||||||
attribute: href
|
|
||||||
download:
|
|
||||||
selector: a[href^="download.php?id="]
|
|
||||||
attribute: href
|
|
||||||
poster:
|
|
||||||
selector: img[data-src]
|
|
||||||
attribute: data-src
|
|
||||||
imdbid:
|
|
||||||
# site currently only has a badge and rating, the id is not present. just in case a future update.
|
|
||||||
selector: a[href*="imdb.com/title/tt"]
|
|
||||||
attribute: href
|
|
||||||
doubanid:
|
|
||||||
# site currently only has a badge and rating, the id is not present. just in case a future update.
|
|
||||||
selector: a[href*="movie.douban.com/subject/"]
|
|
||||||
attribute: href
|
|
||||||
date_elapsed:
|
|
||||||
# time type: time elapsed (default)
|
|
||||||
selector: td.rowfollow:nth-child(4) > span[title]
|
|
||||||
attribute: title
|
|
||||||
optional: true
|
|
||||||
filters:
|
|
||||||
- name: append
|
|
||||||
args: " +08:00" # CST
|
|
||||||
- name: dateparse
|
|
||||||
args: "yyyy-MM-dd HH:mm:ss zzz"
|
|
||||||
date_added:
|
|
||||||
# time added
|
|
||||||
selector: td.rowfollow:nth-child(4):not(:has(span))
|
|
||||||
optional: true
|
|
||||||
filters:
|
|
||||||
- name: append
|
|
||||||
args: " +08:00" # CST
|
|
||||||
- name: dateparse
|
|
||||||
args: "yyyy-MM-ddHH:mm:ss zzz"
|
|
||||||
date:
|
|
||||||
text: "{{ if or .Result.date_elapsed .Result.date_added }}{{ or .Result.date_elapsed .Result.date_added }}{{ else }}now{{ end }}"
|
|
||||||
size:
|
|
||||||
selector: td.rowfollow:nth-child(5)
|
|
||||||
seeders:
|
|
||||||
selector: td.rowfollow:nth-child(6)
|
|
||||||
leechers:
|
|
||||||
selector: td.rowfollow:nth-child(7)
|
|
||||||
grabs:
|
|
||||||
selector: td.rowfollow:nth-child(8)
|
|
||||||
downloadvolumefactor:
|
|
||||||
case:
|
|
||||||
img.pro_free: 0
|
|
||||||
img.pro_free2up: 0
|
|
||||||
img.pro_50pctdown: 0.5
|
|
||||||
img.pro_50pctdown2up: 0.5
|
|
||||||
img.pro_30pctdown: 0.3
|
|
||||||
"*": 1
|
|
||||||
uploadvolumefactor:
|
|
||||||
case:
|
|
||||||
img.pro_50pctdown2up: 2
|
|
||||||
img.pro_free2up: 2
|
|
||||||
img.pro_2up: 2
|
|
||||||
"*": 1
|
|
||||||
minimumratio:
|
|
||||||
text: 1.0
|
|
||||||
minimumseedtime:
|
|
||||||
# 1 day (as seconds = 24 x 60 x 60)
|
|
||||||
text: 86400
|
|
||||||
description_verified:
|
|
||||||
case:
|
|
||||||
span[title="通过"], span[title="通過"], span[title="Allowed"]: "Verified:"
|
|
||||||
span[title="未审"], span[title="未審"], span[title="Not reviewed"]: "Unverified:"
|
|
||||||
span[title="拒绝"], span[title="拒絕"], span[title="Denied"]: "Banned:"
|
|
||||||
description:
|
|
||||||
selector: td.rowfollow:nth-child(2)
|
|
||||||
remove: a, b, font, img, span
|
|
||||||
filters:
|
|
||||||
- name: prepend
|
|
||||||
args: "{{ .Result.description_verified }} "
|
|
||||||
# NexusPHP v1.8.6 2023-08-18
|
|
||||||
@@ -1,200 +0,0 @@
|
|||||||
---
|
|
||||||
id: hdolimpo-api
|
|
||||||
name: HD-Olimpo (API)
|
|
||||||
description: "HD-Olimpo is a SPANISH site for HD content"
|
|
||||||
language: es-ES
|
|
||||||
type: private
|
|
||||||
encoding: UTF-8
|
|
||||||
links:
|
|
||||||
- https://hd-olimpo.club/
|
|
||||||
legacylinks:
|
|
||||||
- https://hdolimpo.co/
|
|
||||||
|
|
||||||
caps:
|
|
||||||
categorymappings:
|
|
||||||
- {id: 1, cat: Movies, desc: "Películas"}
|
|
||||||
- {id: 2, cat: TV, desc: "Series"}
|
|
||||||
- {id: 3, cat: Audio, desc: "Música"}
|
|
||||||
- {id: 4, cat: TV/Documentary, desc: "Documentales"}
|
|
||||||
|
|
||||||
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 account <i>My configuration / Mi configuración => Secutiy / Seguridad</i> page and clicking on the <b>API Token</b> tab."
|
|
||||||
- name: freeleech
|
|
||||||
type: checkbox
|
|
||||||
label: Search freeleech only
|
|
||||||
default: false
|
|
||||||
- name: sort
|
|
||||||
type: select
|
|
||||||
label: Sort requested from site
|
|
||||||
default: created_at
|
|
||||||
options:
|
|
||||||
created_at: created
|
|
||||||
seeders: seeders
|
|
||||||
size: size
|
|
||||||
name: title
|
|
||||||
- name: type
|
|
||||||
type: select
|
|
||||||
label: Order requested from site
|
|
||||||
default: desc
|
|
||||||
options:
|
|
||||||
desc: desc
|
|
||||||
asc: asc
|
|
||||||
|
|
||||||
login:
|
|
||||||
path: /api/torrents
|
|
||||||
method: get
|
|
||||||
inputs: {} # TODO: remove in v10
|
|
||||||
error:
|
|
||||||
- selector: a[href*="/login"]
|
|
||||||
message:
|
|
||||||
text: "The API key was not accepted by {{ .Config.sitelink }}."
|
|
||||||
|
|
||||||
search:
|
|
||||||
paths:
|
|
||||||
# https://github.com/HDInnovations/UNIT3D-Community-Edition/wiki/Torrent-API-(UNIT3D-v8.x.x)
|
|
||||||
# https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php#L476
|
|
||||||
- path: api/torrents/filter
|
|
||||||
response:
|
|
||||||
type: json
|
|
||||||
|
|
||||||
headers:
|
|
||||||
Authorization: ["Bearer {{ .Config.apikey }}"]
|
|
||||||
|
|
||||||
inputs:
|
|
||||||
# if we have an id based search, add Season and Episode as query in name for UNIT3D < v6. Else pass S/E Params for UNIT3D >= v6
|
|
||||||
name: "{{ .Keywords }}"
|
|
||||||
$raw: "{{ if .Query.Season }}&seasonNumber={{ .Query.Season }}{{ else }}{{ end }}{{ if .Query.Ep }}&episodeNumber={{ .Query.Ep }}{{ else }}{{ end }}{{ if .Query.TMDBID }}&tmdbId={{ .Query.TMDBID }}{{ else }}{{ end }}{{ if .Query.IMDBIDShort }}&imdbId={{ .Query.IMDBIDShort }}{{ else }}{{ end }}{{ if .Query.TVDBID }}&tvdbId={{ .Query.TVDBID }}{{ else }}{{ end }}{{ range .Categories }}&categories[]={{.}}{{end}}{{ if .Config.freeleech }}&free=100{{ else }}{{ end }}"
|
|
||||||
sortField: "{{ .Config.sort }}"
|
|
||||||
sortDirection: "{{ .Config.type }}"
|
|
||||||
perPage: 100
|
|
||||||
|
|
||||||
rows:
|
|
||||||
selector: data
|
|
||||||
attribute: attributes
|
|
||||||
|
|
||||||
fields:
|
|
||||||
categorydesc:
|
|
||||||
selector: category
|
|
||||||
title:
|
|
||||||
selector: name
|
|
||||||
filters:
|
|
||||||
- name: re_replace
|
|
||||||
args: ["\\[", " "]
|
|
||||||
- name: re_replace
|
|
||||||
args: ["\\]", " "]
|
|
||||||
- name: re_replace
|
|
||||||
args: ["(?i)(full(bluray)?)", "BRDISK"] # FULL(BR/UHD) -> BRDISK
|
|
||||||
- name: replace
|
|
||||||
args: ["HDOlimpo", ""] # Delete HDOlimpo
|
|
||||||
- name: replace
|
|
||||||
args: ["HD-Olimpo", ""] # Delete HD-Olimpo
|
|
||||||
- name: replace
|
|
||||||
args: ["E-AC-3", "EAC3"]
|
|
||||||
- name: re_replace
|
|
||||||
args: ["[ -](?i)español[ -]", " SPANiSH "]
|
|
||||||
- name: re_replace
|
|
||||||
args: ["[ -](?i)castellano[ -]", " SPANiSH "]
|
|
||||||
- name: re_replace
|
|
||||||
args: ["[ -](?i)spa[ -]", " SPANiSH "]
|
|
||||||
- name: re_replace
|
|
||||||
args: ["[ -](?i)esp[ -]", " SPANiSH "]
|
|
||||||
- name: re_replace
|
|
||||||
args: [" ES ", " SPANiSH "]
|
|
||||||
- name: re_replace
|
|
||||||
args: ["[ -](?i)ingl[eé]s[ -]", " English "]
|
|
||||||
- name: re_replace
|
|
||||||
args: ["[ -](?i)[ei]ng[ -]", " English "]
|
|
||||||
- name: re_replace
|
|
||||||
args: ["[ -](?i)cat[ -]", " Catalan "]
|
|
||||||
- name: re_replace
|
|
||||||
args: ["[ -](?i)vas[ -]", " Basque "]
|
|
||||||
- name: re_replace
|
|
||||||
args: ["[ -](?i)fr[ae][ -]", " French "]
|
|
||||||
- name: re_replace
|
|
||||||
args: ["[ -](?i)jap[ -]", " Japanese "]
|
|
||||||
- name: re_replace
|
|
||||||
args: ["[ -](?i)ita[ -]", " Italian "]
|
|
||||||
- name: re_replace
|
|
||||||
args: ["[ -](?i)rus[ -]", " Russian "]
|
|
||||||
- name: re_replace
|
|
||||||
args: ["[ -](?i)ger[ -]", " German "]
|
|
||||||
- name: re_replace
|
|
||||||
args: ["(?i)(triaudio)", "MULTi SPANiSH English"]
|
|
||||||
- name: re_replace
|
|
||||||
args: ["(?i)(dual)", " MULTi SPANiSH "]
|
|
||||||
- name: re_replace
|
|
||||||
args: ["(?i)(es-en)", " MULTi SPANiSH "]
|
|
||||||
- name: re_replace
|
|
||||||
args: ["(?i)(en-es)", " MULTi SPANiSH "]
|
|
||||||
- name: re_replace
|
|
||||||
args: ["\\.+", "."] # More than 1 dot -> .
|
|
||||||
- name: re_replace
|
|
||||||
args: ["^\\.", ""] # Delete first dot
|
|
||||||
- name: re_replace
|
|
||||||
args: ["\\s+", " "] # More than 1 space to 1 space
|
|
||||||
details:
|
|
||||||
selector: details_link
|
|
||||||
download:
|
|
||||||
selector: download_link
|
|
||||||
poster:
|
|
||||||
selector: poster
|
|
||||||
filters:
|
|
||||||
- name: replace
|
|
||||||
args: ["https://via.placeholder.com/90x135", ""]
|
|
||||||
imdbid:
|
|
||||||
selector: imdb_id
|
|
||||||
tmdbid:
|
|
||||||
selector: tmdb_id
|
|
||||||
tvdbid:
|
|
||||||
selector: tvdb_id
|
|
||||||
files:
|
|
||||||
selector: num_file
|
|
||||||
seeders:
|
|
||||||
selector: seeders
|
|
||||||
leechers:
|
|
||||||
selector: leechers
|
|
||||||
grabs:
|
|
||||||
selector: times_completed
|
|
||||||
date:
|
|
||||||
# "created_at": "2021-10-18T00:34:50.000000Z" is returned by Newtonsoft.Json.Linq as 18/10/2021 00:34:50
|
|
||||||
selector: created_at
|
|
||||||
filters:
|
|
||||||
- name: append
|
|
||||||
args: " +00:00" # GMT
|
|
||||||
- name: dateparse
|
|
||||||
args: "MM/dd/yyyy HH:mm:ss zzz"
|
|
||||||
size:
|
|
||||||
selector: size
|
|
||||||
downloadvolumefactor:
|
|
||||||
# api returns 0, 25, 50, 75, 100
|
|
||||||
selector: freeleech
|
|
||||||
case:
|
|
||||||
0: 1 # not free
|
|
||||||
25: 0.75
|
|
||||||
50: 0.5
|
|
||||||
75: 0.25
|
|
||||||
100: 0 # freeleech
|
|
||||||
"*": 0 # catch errors
|
|
||||||
uploadvolumefactor:
|
|
||||||
# api returns 0=false, 1=true
|
|
||||||
selector: double_upload
|
|
||||||
case:
|
|
||||||
0: 1 # normal
|
|
||||||
1: 2 # double
|
|
||||||
minimumseedtime:
|
|
||||||
# 4 days (as seconds = 4 x 24 x 60 x 60)
|
|
||||||
text: 345600
|
|
||||||
# json UNIT3D 6.0.x (custom)
|
|
||||||
@@ -1,196 +0,0 @@
|
|||||||
---
|
|
||||||
id: hdtime
|
|
||||||
name: HDtime
|
|
||||||
description: "HDtime is a CHINESE Private Torrent Tracker for HD MOVIES / TV / GENERAL"
|
|
||||||
language: zh-CN
|
|
||||||
type: private
|
|
||||||
encoding: UTF-8
|
|
||||||
links:
|
|
||||||
- https://hdtime.org/
|
|
||||||
|
|
||||||
caps:
|
|
||||||
categorymappings:
|
|
||||||
- {id: 401, cat: Movies, desc: "Movies/电影"}
|
|
||||||
- {id: 424, cat: Movies/BluRay, desc: "Blu-Ray原盘"}
|
|
||||||
- {id: 402, cat: TV, desc: "TV Series/剧集"}
|
|
||||||
- {id: 403, cat: TV, desc: "TV Shows/综艺"}
|
|
||||||
- {id: 405, cat: TV/Anime, desc: "Animations/动漫"}
|
|
||||||
- {id: 414, cat: PC, desc: "Apps/软件"}
|
|
||||||
- {id: 407, cat: TV/Sport, desc: "Sports/运体"}
|
|
||||||
- {id: 404, cat: TV/Documentary, desc: "Documentaries/纪录片"}
|
|
||||||
- {id: 406, cat: Audio/Video, desc: "MusicVideo/音乐MV"}
|
|
||||||
- {id: 408, cat: Audio, desc: "Music/音乐"}
|
|
||||||
- {id: 410, cat: PC/Games, desc: "Games/游戏"}
|
|
||||||
- {id: 411, cat: Books, desc: "Books/文档"}
|
|
||||||
- {id: 409, cat: Other, desc: "Misc/其他"}
|
|
||||||
|
|
||||||
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 HDtime 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 with no traffic (ie, upload/download data are both 0) will be deleted if they do not log in for 100 consecutive days.</li></ol>"
|
|
||||||
|
|
||||||
login:
|
|
||||||
path: takelogin.php
|
|
||||||
method: post
|
|
||||||
inputs:
|
|
||||||
secret: ""
|
|
||||||
username: "{{ .Config.username }}"
|
|
||||||
password: "{{ .Config.password }}"
|
|
||||||
two_step_code: "{{ .Config.2facode }}"
|
|
||||||
logout: ""
|
|
||||||
securelogin: ""
|
|
||||||
ssl: yes
|
|
||||||
trackerssl: yes
|
|
||||||
error:
|
|
||||||
- selector: td.embedded:has(h2:contains("失败"))
|
|
||||||
test:
|
|
||||||
path: index.php
|
|
||||||
selector: a[href="logout.php"]
|
|
||||||
|
|
||||||
search:
|
|
||||||
paths:
|
|
||||||
- path: torrents.php
|
|
||||||
inputs:
|
|
||||||
$raw: "{{ range .Categories }}cat{{.}}=1&{{end}}"
|
|
||||||
search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ end }}{{ if or .Query.IMDBID .Query.DoubanID }} {{ else }}{{ .Keywords }}{{ end }}{{ if .Query.DoubanID }}{{ .Query.DoubanID }}{{ else }}{{ end }}"
|
|
||||||
# 0 incldead, 1 active, 2 dead
|
|
||||||
incldead: 0
|
|
||||||
# 0 all, 1 normal, 2 free, 3 2x, 4 2xfree, 5 50%, 6 2x50%, 7 30%
|
|
||||||
spstate: "{{ if .Config.freeleech }}2{{ else }}0{{ end }}"
|
|
||||||
# 0 title, 1 descr, 3 uploader, 4 imdburl
|
|
||||||
search_area: "{{ if .Query.IMDBID }}4{{ else }}{{ end }}{{ if .Query.DoubanID }}1{{ else }}{{ end }}{{ if or .Query.IMDBID .Query.DoubanID }}{{ else }}0{{ end }}"
|
|
||||||
# 0 AND, 1 OR, 2 exact
|
|
||||||
search_mode: 0
|
|
||||||
sort: "{{ .Config.sort }}"
|
|
||||||
type: "{{ .Config.type }}"
|
|
||||||
notnewword: 1
|
|
||||||
|
|
||||||
rows:
|
|
||||||
selector: table.torrents > tbody > tr:has(a[href^="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_optional:
|
|
||||||
optional: true
|
|
||||||
selector: a[title][href^="details.php?id="]
|
|
||||||
attribute: title
|
|
||||||
title:
|
|
||||||
text: "{{ if .Result.title_optional }}{{ .Result.title_optional }}{{ else }}{{ .Result.title_default }}{{ end }}"
|
|
||||||
details:
|
|
||||||
selector: a[href^="details.php?id="]
|
|
||||||
attribute: href
|
|
||||||
download:
|
|
||||||
selector: a[href^="download.php?id="]
|
|
||||||
attribute: href
|
|
||||||
poster:
|
|
||||||
selector: img[data-src]
|
|
||||||
attribute: data-src
|
|
||||||
imdbid:
|
|
||||||
# site currently only has a badge and rating, the id is not present. just in case a future update.
|
|
||||||
selector: a[href*="imdb.com/title/tt"]
|
|
||||||
attribute: href
|
|
||||||
doubanid:
|
|
||||||
# site currently only has a badge and rating, the id is not present. just in case a future update.
|
|
||||||
selector: a[href*="movie.douban.com/subject/"]
|
|
||||||
attribute: href
|
|
||||||
date_elapsed:
|
|
||||||
# time type: time elapsed (default)
|
|
||||||
selector: td.rowfollow:nth-child(4) > span[title]
|
|
||||||
attribute: title
|
|
||||||
optional: true
|
|
||||||
filters:
|
|
||||||
- name: append
|
|
||||||
args: " +08:00" # CST
|
|
||||||
- name: dateparse
|
|
||||||
args: "yyyy-MM-dd HH:mm:ss zzz"
|
|
||||||
date_added:
|
|
||||||
# time added
|
|
||||||
selector: td.rowfollow:nth-child(4):not(:has(span))
|
|
||||||
optional: true
|
|
||||||
filters:
|
|
||||||
- name: append
|
|
||||||
args: " +08:00" # CST
|
|
||||||
- name: dateparse
|
|
||||||
args: "yyyy-MM-ddHH:mm:ss zzz"
|
|
||||||
date:
|
|
||||||
text: "{{ if or .Result.date_elapsed .Result.date_added }}{{ or .Result.date_elapsed .Result.date_added }}{{ else }}now{{ end }}"
|
|
||||||
size:
|
|
||||||
selector: td.rowfollow:nth-child(5)
|
|
||||||
seeders:
|
|
||||||
selector: td.rowfollow:nth-child(6)
|
|
||||||
leechers:
|
|
||||||
selector: td.rowfollow:nth-child(7)
|
|
||||||
grabs:
|
|
||||||
selector: td.rowfollow:nth-child(8)
|
|
||||||
downloadvolumefactor:
|
|
||||||
case:
|
|
||||||
img.pro_free: 0
|
|
||||||
img.pro_free2up: 0
|
|
||||||
img.pro_50pctdown: 0.5
|
|
||||||
img.pro_50pctdown2up: 0.5
|
|
||||||
img.pro_30pctdown: 0.3
|
|
||||||
"*": 1
|
|
||||||
uploadvolumefactor:
|
|
||||||
case:
|
|
||||||
img.pro_50pctdown2up: 2
|
|
||||||
img.pro_free2up: 2
|
|
||||||
img.pro_2up: 2
|
|
||||||
"*": 1
|
|
||||||
minimumratio:
|
|
||||||
text: 0.81
|
|
||||||
description:
|
|
||||||
selector: td.rowfollow:nth-child(2)
|
|
||||||
remove: a, b, font, img, span
|
|
||||||
# NexusPHP vv1.8.7 2023-08-22
|
|
||||||
@@ -1,180 +0,0 @@
|
|||||||
---
|
|
||||||
id: hdu
|
|
||||||
name: HDU
|
|
||||||
description: "HDU is a CHINESE Private Torrent Tracker for HD MOVIES / TV / GENERAL"
|
|
||||||
language: zh-CN
|
|
||||||
type: private
|
|
||||||
encoding: UTF-8
|
|
||||||
links:
|
|
||||||
- https://pt.upxin.net/
|
|
||||||
legacylinks:
|
|
||||||
- http://pt.upxin.net/
|
|
||||||
|
|
||||||
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/音乐 MV"}
|
|
||||||
- {id: 407, cat: TV/Sport, desc: "Sports/体育"}
|
|
||||||
- {id: 408, cat: Audio, desc: "HQ Audio/无损音乐"}
|
|
||||||
- {id: 411, cat: Other, desc: "Misc/其他"}
|
|
||||||
- {id: 410, cat: PC/Games, desc: "Games/游戏"}
|
|
||||||
|
|
||||||
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.
|
|
||||||
- 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 365 days in a row.</li><li>Unparked accounts would be deleted if users have not logged in for more than 120 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 3 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 }}"
|
|
||||||
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
|
|
||||||
# show promotions: 0=all, 1=normal, 2=free, 3=2x, 4=2xFree, 5=50%, 6=2x50%, 7=30%, 8 all promotions
|
|
||||||
spstate: "{{ if .Config.freeleech }}8{{ 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
|
|
||||||
|
|
||||||
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_optional:
|
|
||||||
optional: true
|
|
||||||
selector: a[title][href^="details.php?id="]
|
|
||||||
attribute: title
|
|
||||||
title:
|
|
||||||
text: "{{ if .Result.title_optional }}{{ .Result.title_optional }}{{ else }}{{ .Result.title_default }}{{ end }}"
|
|
||||||
details:
|
|
||||||
selector: a[href^="details.php?id="]
|
|
||||||
attribute: href
|
|
||||||
download:
|
|
||||||
selector: a[href^="download.php?id="]
|
|
||||||
attribute: href
|
|
||||||
date_elapsed:
|
|
||||||
# time type: time elapsed (default)
|
|
||||||
selector: td.rowfollow:nth-child(4) > span[title]
|
|
||||||
attribute: title
|
|
||||||
optional: true
|
|
||||||
filters:
|
|
||||||
- name: append
|
|
||||||
args: " +08:00" # CST
|
|
||||||
- name: dateparse
|
|
||||||
args: "yyyy-MM-dd HH:mm:ss zzz"
|
|
||||||
date_added:
|
|
||||||
# time added
|
|
||||||
selector: td.rowfollow:nth-child(4):not(:has(span))
|
|
||||||
optional: true
|
|
||||||
filters:
|
|
||||||
- name: append
|
|
||||||
args: " +08:00" # CST
|
|
||||||
- name: dateparse
|
|
||||||
args: "yyyy-MM-ddHH:mm:ss zzz"
|
|
||||||
date:
|
|
||||||
text: "{{ if or .Result.date_elapsed .Result.date_added }}{{ or .Result.date_elapsed .Result.date_added }}{{ else }}now{{ end }}"
|
|
||||||
size:
|
|
||||||
selector: td.rowfollow:nth-child(5)
|
|
||||||
seeders:
|
|
||||||
selector: td.rowfollow:nth-child(6)
|
|
||||||
leechers:
|
|
||||||
selector: td.rowfollow:nth-child(7)
|
|
||||||
grabs:
|
|
||||||
selector: td.rowfollow:nth-child(8)
|
|
||||||
downloadvolumefactor:
|
|
||||||
case:
|
|
||||||
img.pro_free: 0
|
|
||||||
img.pro_free2up: 0
|
|
||||||
img.pro_50pctdown: 0.5
|
|
||||||
img.pro_50pctdown2up: 0.5
|
|
||||||
img.pro_30pctdown: 0.3
|
|
||||||
"*": 1
|
|
||||||
uploadvolumefactor:
|
|
||||||
case:
|
|
||||||
img.pro_50pctdown2up: 2
|
|
||||||
img.pro_free2up: 2
|
|
||||||
img.pro_2up: 2
|
|
||||||
"*": 1
|
|
||||||
minimumratio:
|
|
||||||
text: 1.0
|
|
||||||
minimumseedtime:
|
|
||||||
# 3 days (as seconds = 3 x 24 x 60 x 60)
|
|
||||||
text: 259200
|
|
||||||
description:
|
|
||||||
selector: td.rowfollow:nth-child(2)
|
|
||||||
remove: a, b, font, img, span
|
|
||||||
# NexusPHP Standard v1.5 Beta 4
|
|
||||||
@@ -1,197 +0,0 @@
|
|||||||
---
|
|
||||||
id: icc2022
|
|
||||||
name: ICC2022 (冰淇淋)
|
|
||||||
description: "ICC2022 (冰淇淋) is a CHINESE Private Torrent Tracker for HD MOVIES / TV / GENERAL"
|
|
||||||
language: zh-CN
|
|
||||||
type: private
|
|
||||||
encoding: UTF-8
|
|
||||||
requestDelay: 2
|
|
||||||
links:
|
|
||||||
- https://www.icc2022.com/
|
|
||||||
|
|
||||||
caps:
|
|
||||||
categorymappings:
|
|
||||||
- {id: 401, cat: Movies, desc: "Movies/电影", default: true}
|
|
||||||
- {id: 404, cat: TV/Documentary, desc: "Documentaries/纪录片", default: true}
|
|
||||||
- {id: 405, cat: TV/Anime, desc: "Animations/动漫", default: true}
|
|
||||||
- {id: 402, cat: TV, desc: "TV Series/电视剧", default: true}
|
|
||||||
- {id: 403, cat: TV, desc: "TV Shows/综艺", default: true}
|
|
||||||
- {id: 406, cat: Audio/Video, desc: "MusicVideo/MV", default: true}
|
|
||||||
- {id: 407, cat: TV/Sport, desc: "Sports/体育", default: true}
|
|
||||||
- {id: 409, cat: Other, desc: "Misc/其他", default: true}
|
|
||||||
- {id: 408, cat: Audio, desc: "Music/音乐", default: true}
|
|
||||||
# special
|
|
||||||
- {id: 410, cat: Movies, desc: "Video/视频资料", default: false}
|
|
||||||
- {id: 411, cat: Audio, desc: "Audio/音频资料", default: false}
|
|
||||||
- {id: 412, cat: Other, desc: "Other/其他资料", default: false}
|
|
||||||
|
|
||||||
modes:
|
|
||||||
search: [q]
|
|
||||||
tv-search: [q, season, ep, imdbid, doubanid]
|
|
||||||
movie-search: [q, imdbid, doubanid]
|
|
||||||
music-search: [q]
|
|
||||||
|
|
||||||
settings:
|
|
||||||
- name: username
|
|
||||||
type: text
|
|
||||||
label: Username
|
|
||||||
- name: password
|
|
||||||
type: password
|
|
||||||
label: Password
|
|
||||||
- name: 2facode
|
|
||||||
type: text
|
|
||||||
label: 2FA code
|
|
||||||
- name: info_2fa
|
|
||||||
type: info
|
|
||||||
label: "About 2FA code"
|
|
||||||
default: "Only fill in the <b>2FA code</b> box if you have enabled <b>2FA</b> on the ICC2022 Web Site. Otherwise just leave it empty."
|
|
||||||
- name: freeleech
|
|
||||||
type: checkbox
|
|
||||||
label: Search freeleech only
|
|
||||||
default: false
|
|
||||||
- name: sort
|
|
||||||
type: select
|
|
||||||
label: Sort requested from site
|
|
||||||
default: 4
|
|
||||||
options:
|
|
||||||
4: created
|
|
||||||
7: seeders
|
|
||||||
5: size
|
|
||||||
1: title
|
|
||||||
- name: type
|
|
||||||
type: select
|
|
||||||
label: Order requested from site
|
|
||||||
default: desc
|
|
||||||
options:
|
|
||||||
desc: desc
|
|
||||||
asc: asc
|
|
||||||
- name: info_tpp
|
|
||||||
type: info
|
|
||||||
label: Results Per Page
|
|
||||||
default: For best results, change the <b>Torrents per page:</b> setting to <b>100</b> on your account profile.
|
|
||||||
- name: info_activity
|
|
||||||
type: info
|
|
||||||
label: Account Inactivity
|
|
||||||
default: "Cherish your user account. Inactive accounts would be deleted based on the following rules:<ol><li>Veteran User or above would never be deleted.</li><li>Elite User or above would never be deleted if parked (at User CP).</li><li>Parked accounts would be deleted if users have not logged in for more than 400 days in a row.</li><li>Unparked accounts would be deleted if users have not logged in for more than 150 days in a row.</li><li>Accounts with both uploaded and downloaded amount being 0 would be deleted if users have not logged in for more than 100 days in a row.</li></ol>"
|
|
||||||
|
|
||||||
login:
|
|
||||||
path: login.php
|
|
||||||
method: form
|
|
||||||
form: form[action="takelogin.php"]
|
|
||||||
captcha:
|
|
||||||
type: image
|
|
||||||
selector: img[alt="CAPTCHA"]
|
|
||||||
input: imagestring
|
|
||||||
inputs:
|
|
||||||
secret: ""
|
|
||||||
username: "{{ .Config.username }}"
|
|
||||||
password: "{{ .Config.password }}"
|
|
||||||
two_step_code: "{{ .Config.2facode }}"
|
|
||||||
logout: ""
|
|
||||||
securelogin: ""
|
|
||||||
ssl: yes
|
|
||||||
trackerssl: yes
|
|
||||||
error:
|
|
||||||
- selector: td.embedded:has(h2:contains("失败"))
|
|
||||||
test:
|
|
||||||
path: index.php
|
|
||||||
selector: a[href="logout.php"]
|
|
||||||
|
|
||||||
search:
|
|
||||||
paths:
|
|
||||||
- path: torrents.php
|
|
||||||
categories: [401, 402, 403, 404, 405, 406, 407, 408, 409]
|
|
||||||
- path: special.php
|
|
||||||
categories: [410, 411, 412]
|
|
||||||
inputs:
|
|
||||||
$raw: "{{ range .Categories }}cat{{.}}=1&{{end}}"
|
|
||||||
search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ end }}{{ if or .Query.IMDBID .Query.DoubanID }} {{ else }}{{ .Keywords }}{{ end }}{{ if .Query.DoubanID }}{{ .Query.DoubanID }}{{ else }}{{ end }}"
|
|
||||||
# 0 incldead, 1 active, 2 dead
|
|
||||||
incldead: 0
|
|
||||||
# 0 all, 1 normal, 2 free, 3 2x, 4 2xfree, 5 50%, 6 2x50%, 7 30%
|
|
||||||
spstate: "{{ if .Config.freeleech }}2{{ else }}0{{ end }}"
|
|
||||||
# 0 title, 1 descr, 3 uploader, 4 imdburl (4 does not appear to work)
|
|
||||||
search_area: "{{ if or .Query.IMDBID .Query.DoubanID }}1{{ else }}0{{ end }}"
|
|
||||||
# 0 AND, 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_optional:
|
|
||||||
optional: true
|
|
||||||
selector: a[title][href^="details.php?id="]
|
|
||||||
attribute: title
|
|
||||||
title:
|
|
||||||
text: "{{ if .Result.title_optional }}{{ .Result.title_optional }}{{ else }}{{ .Result.title_default }}{{ end }}"
|
|
||||||
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
|
|
||||||
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.11 2024-03-27
|
|
||||||
@@ -1,128 +0,0 @@
|
|||||||
---
|
|
||||||
id: idope
|
|
||||||
name: iDope
|
|
||||||
description: "iDope is a Public torrent search engine presenting direct magnet links"
|
|
||||||
language: en-US
|
|
||||||
type: public
|
|
||||||
encoding: UTF-8
|
|
||||||
requestDelay: 2
|
|
||||||
links:
|
|
||||||
- https://idope.se/
|
|
||||||
legacylinks:
|
|
||||||
- https://idope.black-mirror.xyz/
|
|
||||||
- https://idope.unblocked.casa/
|
|
||||||
- https://idope.proxyportal.fun/
|
|
||||||
- https://idope.uk-unblock.xyz/
|
|
||||||
- https://idope.ind-unblock.xyz/
|
|
||||||
- https://idope.unblocked.bar/
|
|
||||||
- https://idope.proxyportal.pw/
|
|
||||||
- https://idope.uk-unblock.pro/
|
|
||||||
- https://idope.unblocked.rest/
|
|
||||||
- https://idope.unblocked.monster/
|
|
||||||
|
|
||||||
caps:
|
|
||||||
categorymappings:
|
|
||||||
- {id: 0, cat: Other, desc: Others}
|
|
||||||
- {id: 1, cat: Movies, desc: Movies}
|
|
||||||
- {id: 2, cat: Other, desc: Video}
|
|
||||||
- {id: 3, cat: TV, desc: TV}
|
|
||||||
- {id: 4, cat: TV/Anime, desc: Anime}
|
|
||||||
- {id: 5, cat: XXX, desc: XXX}
|
|
||||||
- {id: 6, cat: Audio, desc: Music}
|
|
||||||
- {id: 7, cat: PC/Games, desc: Games}
|
|
||||||
- {id: 8, cat: PC, desc: Apps}
|
|
||||||
- {id: 9, cat: Books, desc: Books}
|
|
||||||
|
|
||||||
modes:
|
|
||||||
search: [q]
|
|
||||||
tv-search: [q, season, ep]
|
|
||||||
movie-search: [q]
|
|
||||||
music-search: [q]
|
|
||||||
book-search: [q]
|
|
||||||
|
|
||||||
settings:
|
|
||||||
- name: itorrents-links
|
|
||||||
type: checkbox
|
|
||||||
label: Add download links via itorrents.org
|
|
||||||
default: false
|
|
||||||
- name: info
|
|
||||||
type: info
|
|
||||||
label: ITorrents Note
|
|
||||||
default: Without the itorrents option only magnet links will be provided.
|
|
||||||
- name: sort
|
|
||||||
type: select
|
|
||||||
label: Sort requested from site (Applies only to search with Keywords)
|
|
||||||
default: -3
|
|
||||||
options:
|
|
||||||
-3: "created desc"
|
|
||||||
-1: "seeders desc"
|
|
||||||
-2: "size desc"
|
|
||||||
3: "created asc"
|
|
||||||
1: "seeders asc"
|
|
||||||
2: "size asc"
|
|
||||||
- name: flaresolverr
|
|
||||||
type: info
|
|
||||||
label: FlareSolverr
|
|
||||||
default: This site may use Cloudflare DDoS Protection, therefore Prowlarr requires <a href="https://wiki.servarr.com/prowlarr/faq#can-i-use-flaresolverr-indexers" target="_blank" rel="noreferrer">FlareSolverr</a> to access it.
|
|
||||||
|
|
||||||
search:
|
|
||||||
paths:
|
|
||||||
# present trending results if there are no search parms supplied
|
|
||||||
# sort torrent-list by age in descending order
|
|
||||||
- path: "{{ if .Keywords }}torrent-list/{{ .Keywords }}?o={{ .Config.sort }}&c={{ range .Categories }}{{.}}{{end}}{{ else }}browse.html{{ end }}"
|
|
||||||
- path: "{{ if .Keywords }}torrent-list/{{ .Keywords }}?p=2&o={{ .Config.sort }}&c={{ range .Categories }}{{.}}{{end}}{{ else }}browse.html?&p=2{{ end }}"
|
|
||||||
|
|
||||||
rows:
|
|
||||||
selector: div.resultdiv
|
|
||||||
|
|
||||||
fields:
|
|
||||||
category:
|
|
||||||
text: 0
|
|
||||||
category|noappend:
|
|
||||||
optional: true
|
|
||||||
selector: div.resultdivbotton div.resultdivbottoncategory
|
|
||||||
case:
|
|
||||||
":contains(\"Others\")": 0
|
|
||||||
":contains(\"Movies\")": 1
|
|
||||||
":contains(\"Video\")": 2
|
|
||||||
":contains(\"TV\")": 3
|
|
||||||
":contains(\"Anime\")": 4
|
|
||||||
":contains(\"XXX\")": 5
|
|
||||||
":contains(\"Music\")": 6
|
|
||||||
":contains(\"Games\")": 7
|
|
||||||
":contains(\"Apps\")": 8
|
|
||||||
":contains(\"Books\")": 9
|
|
||||||
title:
|
|
||||||
selector: div.resultdivtop a div.resultdivtopname
|
|
||||||
details:
|
|
||||||
selector: div.resultdivtop a
|
|
||||||
attribute: href
|
|
||||||
download_itorrents:
|
|
||||||
selector: div.resultdivbotton div.hideinfohash
|
|
||||||
filters:
|
|
||||||
- name: toupper
|
|
||||||
- name: prepend
|
|
||||||
args: http://itorrents.org/torrent/
|
|
||||||
- name: append
|
|
||||||
args: ".torrent"
|
|
||||||
download:
|
|
||||||
text: "{{ if .Config.itorrents-links }}{{ .Result.download_itorrents }}{{ else }}{{ end }}"
|
|
||||||
infohash:
|
|
||||||
selector: div.resultdivbotton div.hideinfohash
|
|
||||||
date:
|
|
||||||
selector: div.resultdivbotton div.resulttime div.resultdivbottontime
|
|
||||||
filters:
|
|
||||||
- name: timeago
|
|
||||||
size:
|
|
||||||
selector: div.resultdivbotton div.resultlength div.resultdivbottonlength
|
|
||||||
files:
|
|
||||||
selector: div.resultdivbotton div.resultfile div.resultdivbottonfiles
|
|
||||||
seeders:
|
|
||||||
selector: div.resultdivbotton div.resultseed div.resultdivbottonseed
|
|
||||||
leechers:
|
|
||||||
text: 0
|
|
||||||
downloadvolumefactor:
|
|
||||||
text: 0
|
|
||||||
uploadvolumefactor:
|
|
||||||
text: 1
|
|
||||||
# engine n/a
|
|
||||||
@@ -1,111 +0,0 @@
|
|||||||
---
|
|
||||||
id: internetarchive
|
|
||||||
name: Internet Archive
|
|
||||||
description: "Internet Archive is a non-profit digital library offering free universal access to books, movies & music, as well as 406 billion archived web pages"
|
|
||||||
language: en-US
|
|
||||||
type: public
|
|
||||||
encoding: UTF-8
|
|
||||||
links:
|
|
||||||
- https://archive.org/
|
|
||||||
|
|
||||||
caps:
|
|
||||||
categorymappings:
|
|
||||||
- {id: audio, cat: Audio, desc: audio}
|
|
||||||
- {id: etree, cat: Audio, desc: etree}
|
|
||||||
- {id: movies, cat: Movies, desc: movies}
|
|
||||||
- {id: movies, cat: TV, desc: movies}
|
|
||||||
- {id: image, cat: Other/Misc, desc: image}
|
|
||||||
- {id: texts, cat: Books, desc: texts}
|
|
||||||
- {id: software, cat: PC, desc: software}
|
|
||||||
- {id: web, cat: Other, desc: web}
|
|
||||||
- {id: collection, cat: Other, desc: collection}
|
|
||||||
- {id: account, cat: Other, desc: account}
|
|
||||||
- {id: data, cat: Other, desc: data}
|
|
||||||
- {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: titleOnly
|
|
||||||
type: checkbox
|
|
||||||
label: Search only in title
|
|
||||||
default: true
|
|
||||||
- name: noMagnet
|
|
||||||
type: checkbox
|
|
||||||
label: Download using .torrent only. No Magnets.
|
|
||||||
default: false
|
|
||||||
- name: sort
|
|
||||||
type: select
|
|
||||||
label: Sort requested from site
|
|
||||||
default: publicdate
|
|
||||||
options:
|
|
||||||
publicdate: created
|
|
||||||
downloads: downloads
|
|
||||||
item_size: size
|
|
||||||
- name: type
|
|
||||||
type: select
|
|
||||||
label: Order requested from site
|
|
||||||
default: "-"
|
|
||||||
options:
|
|
||||||
"-": desc
|
|
||||||
"_": asc
|
|
||||||
|
|
||||||
search:
|
|
||||||
paths:
|
|
||||||
- path: advancedsearch.php
|
|
||||||
response:
|
|
||||||
type: json
|
|
||||||
|
|
||||||
inputs:
|
|
||||||
q: "{{ if and .Config.titleOnly .Keywords }}title:({{ else }}{{ end }}{{ if .Keywords }}{{ .Keywords }}{{ else }}{{ end }}{{ if and .Config.titleOnly .Keywords }}){{ else }}{{ end }}{{ if .Keywords }} AND {{ else }}{{ end }}format:(\"Archive BitTorrent\"){{ if .Categories }} AND mediatype:({{ join .Categories \" OR \" }}){{ else }}{{ end }}"
|
|
||||||
fl[]: "identifier,title,mediatype,item_size,downloads,btih,publicdate"
|
|
||||||
sort: "{{ if .Keywords }}{{ re_replace .Config.type \"_\" \"\" }}{{ .Config.sort }}{{ else }}-publicdate{{ end }}"
|
|
||||||
rows: 100
|
|
||||||
output: json
|
|
||||||
|
|
||||||
rows:
|
|
||||||
selector: response.docs
|
|
||||||
count:
|
|
||||||
selector: response.numFound
|
|
||||||
|
|
||||||
fields:
|
|
||||||
_id:
|
|
||||||
selector: identifier
|
|
||||||
category:
|
|
||||||
selector: mediatype
|
|
||||||
title_optional:
|
|
||||||
selector: title
|
|
||||||
optional: true
|
|
||||||
title:
|
|
||||||
text: "{{ if .Result.title_optional }}{{ .Result.title_optional }}{{ else }}Missing title for {{ .Result._id }}{{ end }}"
|
|
||||||
details:
|
|
||||||
text: "details/{{ .Result._id }}"
|
|
||||||
download:
|
|
||||||
text: "download/{{ .Result._id }}/{{ .Result._id }}_archive.torrent"
|
|
||||||
_btih:
|
|
||||||
selector: btih
|
|
||||||
optional: true
|
|
||||||
infohash:
|
|
||||||
text: "{{ if .Config.noMagnet }}{{ else }}{{ .Result._btih }}{{ end }}"
|
|
||||||
date:
|
|
||||||
# 2021-10-25T16:44:43Z
|
|
||||||
selector: publicdate
|
|
||||||
size:
|
|
||||||
selector: item_size
|
|
||||||
grabs:
|
|
||||||
selector: downloads
|
|
||||||
optional: true
|
|
||||||
seeders:
|
|
||||||
text: 1
|
|
||||||
leechers:
|
|
||||||
text: 1
|
|
||||||
downloadvolumefactor:
|
|
||||||
text: 0
|
|
||||||
uploadvolumefactor:
|
|
||||||
text: 1
|
|
||||||
# json Elasticsearch
|
|
||||||
@@ -1,158 +0,0 @@
|
|||||||
---
|
|
||||||
id: jme-reunit3d-api
|
|
||||||
name: JME-REUNIT3D (API)
|
|
||||||
description: "JME-REUNIT3D is a GERMAN Private Torrent Tracker for MOVIES / TV / GENERAL"
|
|
||||||
language: de-DE
|
|
||||||
type: private
|
|
||||||
encoding: UTF-8
|
|
||||||
links:
|
|
||||||
- https://jme-reunit3d.de/
|
|
||||||
legacylinks:
|
|
||||||
- https://jme-reunit3d.eu/
|
|
||||||
|
|
||||||
caps:
|
|
||||||
categorymappings:
|
|
||||||
- {id: 1, cat: Movies, desc: "Movies"}
|
|
||||||
- {id: 2, cat: TV, desc: "TV"}
|
|
||||||
- {id: 3, cat: Audio, desc: "Music"}
|
|
||||||
- {id: 4, cat: Console, desc: "Game"}
|
|
||||||
- {id: 5, cat: PC, desc: "Application"}
|
|
||||||
- {id: 6, cat: XXX, desc: "XXX"}
|
|
||||||
- {id: 7, cat: TV/Sport, desc: "Sport"}
|
|
||||||
- {id: 8, cat: Books, desc: "E-Books"}
|
|
||||||
- {id: 9, cat: Audio/Audiobook, desc: "Audio-Books"}
|
|
||||||
|
|
||||||
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://jme-reunit3d.de/\" target=\"_blank\">JME-REUNIT3D</a> account <i>My Security</i> page and clicking on the <b>API Token</b> tab."
|
|
||||||
- name: freeleech
|
|
||||||
type: checkbox
|
|
||||||
label: Search freeleech only
|
|
||||||
default: false
|
|
||||||
- name: sort
|
|
||||||
type: select
|
|
||||||
label: Sort requested from site
|
|
||||||
default: created_at
|
|
||||||
options:
|
|
||||||
created_at: created
|
|
||||||
seeders: seeders
|
|
||||||
size: size
|
|
||||||
name: title
|
|
||||||
- name: type
|
|
||||||
type: select
|
|
||||||
label: Order requested from site
|
|
||||||
default: desc
|
|
||||||
options:
|
|
||||||
desc: desc
|
|
||||||
asc: asc
|
|
||||||
- name: info_activity
|
|
||||||
type: info
|
|
||||||
label: Account Inactivity
|
|
||||||
default: "You must seed at least 1 torrent or log in every 90 days to avoid being pruned."
|
|
||||||
|
|
||||||
login:
|
|
||||||
path: /api/torrents
|
|
||||||
method: get
|
|
||||||
inputs: {} # TODO: remove in v10
|
|
||||||
error:
|
|
||||||
- selector: a[href*="/login"]
|
|
||||||
message:
|
|
||||||
text: "The API key was not accepted by {{ .Config.sitelink }}."
|
|
||||||
|
|
||||||
search:
|
|
||||||
paths:
|
|
||||||
# https://github.com/HDInnovations/UNIT3D-Community-Edition/wiki/Torrent-API-(UNIT3D-v8.x.x)
|
|
||||||
# https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php#L476
|
|
||||||
- path: "/api/torrents/filter"
|
|
||||||
response:
|
|
||||||
type: json
|
|
||||||
|
|
||||||
headers:
|
|
||||||
Authorization: ["Bearer {{ .Config.apikey }}"]
|
|
||||||
|
|
||||||
inputs:
|
|
||||||
# if we have an id based search, add Season and Episode as query in name for UNIT3D < v6. Else pass S/E Params for UNIT3D >= v6
|
|
||||||
name: "{{ .Keywords }}"
|
|
||||||
$raw: "{{ if .Query.Season }}&seasonNumber={{ .Query.Season }}{{ else }}{{ end }}{{ if .Query.Ep }}&episodeNumber={{ .Query.Ep }}{{ else }}{{ end }}{{ if .Query.TMDBID }}&tmdbId={{ .Query.TMDBID }}{{ else }}{{ end }}{{ if .Query.IMDBIDShort }}&imdbId={{ .Query.IMDBIDShort }}{{ else }}{{ end }}{{ if .Query.TVDBID }}&tvdbId={{ .Query.TVDBID }}{{ else }}{{ end }}{{ range .Categories }}&categories[]={{.}}{{end}}{{ if .Config.freeleech }}&free=1{{ else }}{{ end }}"
|
|
||||||
sortField: "{{ .Config.sort }}"
|
|
||||||
sortDirection: "{{ .Config.type }}"
|
|
||||||
perPage: 100
|
|
||||||
|
|
||||||
keywordsfilters:
|
|
||||||
- name: re_replace
|
|
||||||
args: ["\\.", " "]
|
|
||||||
|
|
||||||
rows:
|
|
||||||
selector: data
|
|
||||||
attribute: attributes
|
|
||||||
|
|
||||||
fields:
|
|
||||||
categorydesc:
|
|
||||||
selector: category
|
|
||||||
title:
|
|
||||||
selector: name
|
|
||||||
details:
|
|
||||||
selector: details_link
|
|
||||||
download:
|
|
||||||
selector: download_link
|
|
||||||
poster:
|
|
||||||
selector: poster
|
|
||||||
filters:
|
|
||||||
- name: replace
|
|
||||||
args: ["https://via.placeholder.com/90x135", ""]
|
|
||||||
imdbid:
|
|
||||||
selector: imdb_id
|
|
||||||
tmdbid:
|
|
||||||
selector: tmdb_id
|
|
||||||
tvdbid:
|
|
||||||
selector: tvdb_id
|
|
||||||
files:
|
|
||||||
selector: num_file
|
|
||||||
seeders:
|
|
||||||
selector: seeders
|
|
||||||
leechers:
|
|
||||||
selector: leechers
|
|
||||||
grabs:
|
|
||||||
selector: times_completed
|
|
||||||
date:
|
|
||||||
# "created_at": "2021-10-18T00:34:50.000000Z" is returned by Newtonsoft.Json.Linq as 18/10/2021 00:34:50
|
|
||||||
selector: created_at
|
|
||||||
filters:
|
|
||||||
- name: append
|
|
||||||
args: " +00:00" # GMT
|
|
||||||
- name: dateparse
|
|
||||||
args: "MM/dd/yyyy HH:mm:ss zzz"
|
|
||||||
size:
|
|
||||||
selector: size
|
|
||||||
downloadvolumefactor:
|
|
||||||
# api returns 0%, 25%, 50%, 75%, 100%
|
|
||||||
selector: freeleech
|
|
||||||
case:
|
|
||||||
0%: 1 # not free
|
|
||||||
25%: 0.75
|
|
||||||
50%: 0.5
|
|
||||||
75%: 0.25
|
|
||||||
100%: 0 # freeleech
|
|
||||||
"*": 0 # catch errors
|
|
||||||
uploadvolumefactor:
|
|
||||||
# api returns 0=false, 1=true
|
|
||||||
selector: double_upload
|
|
||||||
case:
|
|
||||||
0: 1 # normal
|
|
||||||
1: 2 # double
|
|
||||||
minimumseedtime:
|
|
||||||
# 5 days (as seconds = 5 x 24 x 60 x 60)
|
|
||||||
text: 432000
|
|
||||||
# json UNIT3D 6.0.4
|
|
||||||
@@ -1,175 +0,0 @@
|
|||||||
---
|
|
||||||
id: joyhd
|
|
||||||
name: JoyHD
|
|
||||||
description: "JoyHD (JHD) is a CHINESE Private Torrent Tracker for HD MOVIES / TV / GENERAL"
|
|
||||||
language: zh-CN
|
|
||||||
type: private
|
|
||||||
encoding: UTF-8
|
|
||||||
links:
|
|
||||||
- https://www.joyhd.net/
|
|
||||||
|
|
||||||
caps:
|
|
||||||
categorymappings:
|
|
||||||
- {id: 401, cat: Movies, desc: "电影Movies"}
|
|
||||||
- {id: 402, cat: TV, desc: "剧集TV Series"}
|
|
||||||
- {id: 403, cat: TV/Other, desc: "综艺TV Shows"}
|
|
||||||
- {id: 405, cat: TV/Anime, desc: "动漫Animations"}
|
|
||||||
- {id: 414, cat: Audio, desc: "音乐Music"}
|
|
||||||
- {id: 407, cat: TV/Sport, desc: "体育Sports"}
|
|
||||||
- {id: 404, cat: TV/Documentary, desc: "纪录片Documentaries"}
|
|
||||||
- {id: 406, cat: Audio/Video, desc: "音乐视频Music Videos"}
|
|
||||||
- {id: 410, cat: PC/Games, desc: "游戏Game"}
|
|
||||||
- {id: 411, cat: Other, desc: "学习Study"}
|
|
||||||
- {id: 409, cat: Other, desc: "其他Misc"}
|
|
||||||
|
|
||||||
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: 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:
|
|
||||||
loginmethod: username
|
|
||||||
username: "{{ .Config.username }}"
|
|
||||||
password: "{{ .Config.password }}"
|
|
||||||
dutime: month
|
|
||||||
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}}"
|
|
||||||
# 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
|
|
||||||
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 title, 1 descr, 3 uploader, 4 imdburl (4 does not appear to work).
|
|
||||||
search_area: "{{ if or .Query.IMDBID .Query.DoubanID }}1{{ else }}0{{ end }}"
|
|
||||||
# 0 AND, 1 OR, 2 exact
|
|
||||||
search_mode: 0
|
|
||||||
sort: "{{ .Config.sort }}"
|
|
||||||
type: "{{ .Config.type }}"
|
|
||||||
notnewword: 1
|
|
||||||
|
|
||||||
rows:
|
|
||||||
selector: table.torrents > tbody > tr:has(table.torrentname)
|
|
||||||
|
|
||||||
fields:
|
|
||||||
category:
|
|
||||||
selector: a[href^="?cat="]
|
|
||||||
attribute: href
|
|
||||||
filters:
|
|
||||||
- name: querystring
|
|
||||||
args: cat
|
|
||||||
title_default:
|
|
||||||
selector: a[href^="details.php?id="]
|
|
||||||
title_optional:
|
|
||||||
optional: true
|
|
||||||
selector: a[title][href^="details.php?id="]
|
|
||||||
attribute: title
|
|
||||||
title:
|
|
||||||
text: "{{ if .Result.title_optional }}{{ .Result.title_optional }}{{ else }}{{ .Result.title_default }}{{ end }}"
|
|
||||||
details:
|
|
||||||
selector: a[href^="details.php?id="]
|
|
||||||
attribute: href
|
|
||||||
download:
|
|
||||||
selector: a[href^="download.php?id="]
|
|
||||||
attribute: href
|
|
||||||
imdbid:
|
|
||||||
# currently not present. just in case a future update.
|
|
||||||
selector: a[href*="imdb.com/title/tt"]
|
|
||||||
attribute: href
|
|
||||||
doubanid:
|
|
||||||
# currently 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
|
|
||||||
minimumratio:
|
|
||||||
text: 0.81
|
|
||||||
description:
|
|
||||||
selector: td:nth-child(2)
|
|
||||||
remove: a, b, font, img, span
|
|
||||||
# NexusPHP Standard v0.3 2013-10-01
|
|
||||||
@@ -1,167 +0,0 @@
|
|||||||
---
|
|
||||||
id: kamept
|
|
||||||
name: KamePT
|
|
||||||
description: "KamePT is a CHINESE Private Torrent Tracker for 3X"
|
|
||||||
language: zh-CN
|
|
||||||
type: private
|
|
||||||
encoding: UTF-8
|
|
||||||
links:
|
|
||||||
- https://kamept.com/
|
|
||||||
|
|
||||||
caps:
|
|
||||||
categorymappings:
|
|
||||||
- {id: 410, cat: XXX, desc: "同人AV"}
|
|
||||||
- {id: 413, cat: XXX, desc: "男娘"}
|
|
||||||
- {id: 414, cat: XXX, desc: "同人VR"}
|
|
||||||
- {id: 417, cat: XXX, desc: "Cosplay套图"}
|
|
||||||
- {id: 419, cat: XXX, desc: "里番"}
|
|
||||||
- {id: 411, cat: XXX, desc: "2D动画"}
|
|
||||||
- {id: 423, cat: XXX, desc: "3D动画"}
|
|
||||||
- {id: 424, cat: XXX/ImageSet, desc: "单行本"}
|
|
||||||
- {id: 435, cat: XXX/ImageSet, desc: "同人志"}
|
|
||||||
- {id: 433, cat: XXX/ImageSet, desc: "画师CG"}
|
|
||||||
- {id: 415, cat: XXX/Other, desc: "游戏"}
|
|
||||||
- {id: 418, cat: XXX/Other, desc: "中文游戏"}
|
|
||||||
- {id: 434, cat: XXX/ImageSet, desc: "游戏CG"}
|
|
||||||
- {id: 420, cat: XXX/Other, desc: "外语音声"}
|
|
||||||
- {id: 421, cat: XXX/Other, desc: "中文音声"}
|
|
||||||
- {id: 422, cat: XXX/Other, desc: "视频音声"}
|
|
||||||
|
|
||||||
modes:
|
|
||||||
search: [q]
|
|
||||||
|
|
||||||
settings:
|
|
||||||
- name: cookie
|
|
||||||
type: text
|
|
||||||
label: Cookie
|
|
||||||
- name: info
|
|
||||||
type: info
|
|
||||||
label: How to get the Cookie
|
|
||||||
default: "<ol><li>Login to this tracker with your browser</li><li>Open the <b>DevTools</b> panel by pressing <b>F12</b></li><li>Select the <b>Network</b> tab</li><li>Click on the <b>Doc</b> button (Chrome Browser) or <b>HTML</b> button (FireFox)</li><li>Refresh the page by pressing <b>F5</b></li><li>Click on the first row entry</li><li>Select the <b>Headers</b> tab on the Right panel</li><li>Find <b>'cookie:'</b> in the <b>Request Headers</b> section</li><li><b>Select</b> and <b>Copy</b> the whole cookie string <i>(everything after 'cookie: ')</i> and <b>Paste</b> here.</li></ol>"
|
|
||||||
- name: freeleech
|
|
||||||
type: checkbox
|
|
||||||
label: Search freeleech only
|
|
||||||
default: false
|
|
||||||
- name: sort
|
|
||||||
type: select
|
|
||||||
label: Sort requested from site
|
|
||||||
default: 4
|
|
||||||
options:
|
|
||||||
4: created
|
|
||||||
7: seeders
|
|
||||||
5: size
|
|
||||||
1: title
|
|
||||||
- name: type
|
|
||||||
type: select
|
|
||||||
label: Order requested from site
|
|
||||||
default: desc
|
|
||||||
options:
|
|
||||||
desc: desc
|
|
||||||
asc: asc
|
|
||||||
- name: info_tpp
|
|
||||||
type: info
|
|
||||||
label: Results Per Page
|
|
||||||
default: For best results, change the <b>Torrents per page:</b> setting to <b>100</b> on your account profile.
|
|
||||||
|
|
||||||
login:
|
|
||||||
method: cookie
|
|
||||||
inputs:
|
|
||||||
cookie: "{{ .Config.cookie }}"
|
|
||||||
test:
|
|
||||||
path: index.php
|
|
||||||
selector: a[href*="usercp.php"]
|
|
||||||
|
|
||||||
search:
|
|
||||||
paths:
|
|
||||||
- path: torrents.php
|
|
||||||
inputs:
|
|
||||||
$raw: "{{ range .Categories }}cat{{.}}=1&{{end}}"
|
|
||||||
search: "{{ .Keywords }}"
|
|
||||||
# 0 incldead, 1 active, 2 dead
|
|
||||||
incldead: 0
|
|
||||||
# 0 all, 1 normal, 2 free, 3 2x, 4 2xfree, 5 50%, 6 2x50%, 7 30%
|
|
||||||
spstate: "{{ if .Config.freeleech }}2{{ else }}0{{ end }}"
|
|
||||||
# 0 title, 1 descr, 3 uploader
|
|
||||||
search_area: 0
|
|
||||||
# 0 AND, 1 OR, 2 exact
|
|
||||||
search_mode: 0
|
|
||||||
sort: "{{ .Config.sort }}"
|
|
||||||
type: "{{ .Config.type }}"
|
|
||||||
notnewword: 1
|
|
||||||
|
|
||||||
rows:
|
|
||||||
selector: table.torrents > tbody > tr:has(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_optional:
|
|
||||||
optional: true
|
|
||||||
selector: a[title][href^="details.php?id="]
|
|
||||||
attribute: title
|
|
||||||
title:
|
|
||||||
text: "{{ if .Result.title_optional }}{{ .Result.title_optional }}{{ else }}{{ .Result.title_default }}{{ end }}"
|
|
||||||
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: 0.9
|
|
||||||
description:
|
|
||||||
selector: td.rowfollow:nth-child(2)
|
|
||||||
remove: a, b, font, img, span
|
|
||||||
# NexusPHP KEMURIKUSA 2019-01-09
|
|
||||||
@@ -1,189 +0,0 @@
|
|||||||
---
|
|
||||||
id: keepfriends
|
|
||||||
name: Keep Friends
|
|
||||||
description: "Keep Friends is a CHINESE Private Torrent Tracker for HD MOVIES / TV"
|
|
||||||
language: zh-CN
|
|
||||||
type: private
|
|
||||||
encoding: UTF-8
|
|
||||||
links:
|
|
||||||
- https://pt.keepfrds.com/
|
|
||||||
|
|
||||||
caps:
|
|
||||||
categorymappings:
|
|
||||||
- {id: 401, cat: Movies, desc: "Movies/电影"}
|
|
||||||
- {id: 301, cat: Movies, desc: "Movie Packs/电影(合集)"}
|
|
||||||
- {id: 404, cat: TV/Documentary, desc: "Documentaries/纪录片"}
|
|
||||||
- {id: 304, cat: TV/Documentary, desc: "Documentary Packs/纪录片(合集)"}
|
|
||||||
- {id: 405, cat: TV/Anime, desc: "Animations/动漫"}
|
|
||||||
- {id: 305, cat: TV/Anime, desc: "Animation Packs/动漫(合集)"}
|
|
||||||
- {id: 402, cat: TV, desc: "TV Series/剧集"}
|
|
||||||
- {id: 302, cat: TV, desc: "TV Serie Packs/剧集(合集)"}
|
|
||||||
- {id: 403, cat: TV, desc: "TV Shows/综艺"}
|
|
||||||
- {id: 303, cat: TV, desc: "TV Show Packs/综艺(合集)"}
|
|
||||||
- {id: 407, cat: TV/Sport, desc: "Sports/体育"}
|
|
||||||
- {id: 307, cat: TV/Sport, desc: "Sport Packs/体育(合集)"}
|
|
||||||
- {id: 406, cat: Audio/Video, desc: "MusicVideo/音乐录影带"}
|
|
||||||
- {id: 306, cat: Audio/Video, desc: "MusicVideo Packs/音乐录影带(合集)"}
|
|
||||||
- {id: 408, cat: Audio, desc: "Music/音乐"}
|
|
||||||
- {id: 308, cat: Audio, desc: "Music Packs/音乐(合集)"}
|
|
||||||
- {id: 409, cat: Other, desc: "Misc/其他"}
|
|
||||||
- {id: 309, cat: Other, desc: "Misc Packs/其他(合集)"}
|
|
||||||
- {id: 300, cat: Other, desc: "Recycle Bin/回收站"}
|
|
||||||
|
|
||||||
modes:
|
|
||||||
search: [q]
|
|
||||||
tv-search: [q, season, ep, imdbid, doubanid]
|
|
||||||
movie-search: [q, imdbid, doubanid]
|
|
||||||
music-search: [q]
|
|
||||||
|
|
||||||
settings:
|
|
||||||
- name: cookie
|
|
||||||
type: text
|
|
||||||
label: Cookie
|
|
||||||
- name: info
|
|
||||||
type: info
|
|
||||||
label: How to get the Cookie
|
|
||||||
default: "<ol><li>Login to this tracker with your browser</li><li>Open the <b>DevTools</b> panel by pressing <b>F12</b></li><li>Select the <b>Network</b> tab</li><li>Click on the <b>Doc</b> button (Chrome Browser) or <b>HTML</b> button (FireFox)</li><li>Refresh the page by pressing <b>F5</b></li><li>Click on the first row entry</li><li>Select the <b>Headers</b> tab on the Right panel</li><li>Find <b>'cookie:'</b> in the <b>Request Headers</b> section</li><li><b>Select</b> and <b>Copy</b> the whole cookie string <i>(everything after 'cookie: ')</i> and <b>Paste</b> here.</li></ol>"
|
|
||||||
- name: freeleech
|
|
||||||
type: checkbox
|
|
||||||
label: Search freeleech only
|
|
||||||
default: false
|
|
||||||
- name: english_title
|
|
||||||
type: checkbox
|
|
||||||
label: "Use English titles instead of Chinese ones (when available)."
|
|
||||||
default: false
|
|
||||||
- name: sort
|
|
||||||
type: select
|
|
||||||
label: Sort requested from site
|
|
||||||
default: 4
|
|
||||||
options:
|
|
||||||
4: created
|
|
||||||
7: seeders
|
|
||||||
5: size
|
|
||||||
10: 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:
|
|
||||||
method: cookie
|
|
||||||
inputs:
|
|
||||||
cookie: "{{ .Config.cookie }}"
|
|
||||||
test:
|
|
||||||
path: index.php
|
|
||||||
selector: a[onclick="document.getElementById('logout').submit();"]
|
|
||||||
|
|
||||||
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, 5 doubankeywords (not working)
|
|
||||||
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
|
|
||||||
# supports imdbid searches but does not display imdb links 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_optional:
|
|
||||||
optional: true
|
|
||||||
selector: a[title][href^="details.php?id="]
|
|
||||||
attribute: title
|
|
||||||
title_raw:
|
|
||||||
text: "{{ if .Result.title_optional }}{{ .Result.title_optional }}{{ else }}{{ .Result.title_default }}{{ end }}"
|
|
||||||
# note: final title processing is at the bottom after descrptions is fetched.
|
|
||||||
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
|
|
||||||
doubanid:
|
|
||||||
selector: a[href*="movie.douban.com/subject/"]
|
|
||||||
attribute: href
|
|
||||||
_staff_edit:
|
|
||||||
selector: a[href^="edit.php?"]
|
|
||||||
attribute: href
|
|
||||||
optional: true
|
|
||||||
date_elapsed:
|
|
||||||
# time type: time elapsed (default)
|
|
||||||
selector: "{{ if .Result._staff_edit }}td:nth-child(5) > span[title]{{ else }}td:nth-child(4) > span[title]{{ end }}"
|
|
||||||
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: "{{ if .Result._staff_edit }}td:nth-child(5):not(:has(span)){{ else }}td:nth-child(4):not(:has(span)){{ end }}"
|
|
||||||
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: "{{ if .Result._staff_edit }}td:nth-child(6){{ else }}td:nth-child(5){{ end }}"
|
|
||||||
seeders:
|
|
||||||
selector: "{{ if .Result._staff_edit }}td:nth-child(7){{ else }}td:nth-child(6){{ end }}"
|
|
||||||
leechers:
|
|
||||||
selector: "{{ if .Result._staff_edit }}td:nth-child(8){{ else }}td:nth-child(7){{ end }}"
|
|
||||||
grabs:
|
|
||||||
selector: "{{ if .Result._staff_edit }}td:nth-child(9){{ else }}td:nth-child(8){{ end }}"
|
|
||||||
downloadvolumefactor:
|
|
||||||
case:
|
|
||||||
img.pro_free: 0
|
|
||||||
img.pro_free2up: 0
|
|
||||||
img.pro_50pctdown: 0.5
|
|
||||||
img.pro_50pctdown2up: 0.5
|
|
||||||
img.pro_30pctdown: 0.3
|
|
||||||
"*": 1
|
|
||||||
uploadvolumefactor:
|
|
||||||
case:
|
|
||||||
img.pro_50pctdown2up: 2
|
|
||||||
img.pro_free2up: 2
|
|
||||||
img.pro_2up: 2
|
|
||||||
"*": 1
|
|
||||||
description:
|
|
||||||
selector: "{{ if .Result._staff_edit }}td:nth-child(3){{ else }}td:nth-child(2){{ end }}"
|
|
||||||
remove: a, b, font, img, span
|
|
||||||
title_english:
|
|
||||||
selector: table.torrentname > tbody > tr > td.embedded
|
|
||||||
title:
|
|
||||||
text: "{{ if and .Config.english_title .Result.title_english }}{{ .Result.title_english }}{{ else }}{{ .Result.title_raw }}{{ end }}"
|
|
||||||
# NexusPHP Standard v1.5 Beta 4 (custom title search)
|
|
||||||
@@ -1,189 +0,0 @@
|
|||||||
---
|
|
||||||
id: lat-team-api
|
|
||||||
name: Lat-Team (API)
|
|
||||||
description: "Lat-Team is a SPANISH Private Torrent Tracker for MOVIES / TV"
|
|
||||||
language: es-ES
|
|
||||||
type: private
|
|
||||||
encoding: UTF-8
|
|
||||||
links:
|
|
||||||
- https://lat-team.com/
|
|
||||||
|
|
||||||
caps:
|
|
||||||
categorymappings:
|
|
||||||
- {id: 1, cat: Movies, desc: "Peliculas"}
|
|
||||||
- {id: 2, cat: TV, desc: "TV Series"}
|
|
||||||
- {id: 5, cat: TV/Anime, desc: "Anime"}
|
|
||||||
- {id: 20, cat: TV/Foreign, desc: "Doramas & Turcas"}
|
|
||||||
- {id: 8, cat: TV/Foreign, desc: "Telenovelas"}
|
|
||||||
- {id: 3, cat: Audio, desc: "Musica"}
|
|
||||||
- {id: 9, cat: Audio/Video, desc: "Conciertos"}
|
|
||||||
- {id: 16, cat: TV/Sport, desc: "Eventos Deportivos"}
|
|
||||||
- {id: 22, cat: TV/Other, desc: "Playlist_Collection"}
|
|
||||||
- {id: 17, cat: PC, desc: "Software & O.S."}
|
|
||||||
- {id: 12, cat: XXX, desc: "XXX"}
|
|
||||||
- {id: 18, cat: Books, desc: "E-Books"}
|
|
||||||
- {id: 11, cat: Audio/Audiobook, desc: "Audiolibros"}
|
|
||||||
- {id: 4, cat: Console, desc: "Juegos"}
|
|
||||||
- {id: 24, cat: Other, desc: "Cursos"}
|
|
||||||
- {id: 28, cat: TV/Documentary, desc: "Documental"}
|
|
||||||
|
|
||||||
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://lat-team.com/\" target=\"_blank\">Lat-Team</a> account <i>My Settings</i> page and clicking on the <b>API Key</b> tab."
|
|
||||||
- name: freeleech
|
|
||||||
type: checkbox
|
|
||||||
label: Search freeleech only
|
|
||||||
default: false
|
|
||||||
- name: single_file_release_use_filename
|
|
||||||
type: checkbox
|
|
||||||
label: Use filename as title for single file releases
|
|
||||||
default: true
|
|
||||||
- name: sort
|
|
||||||
type: select
|
|
||||||
label: Sort requested from site
|
|
||||||
default: created_at
|
|
||||||
options:
|
|
||||||
created_at: created
|
|
||||||
seeders: seeders
|
|
||||||
size: size
|
|
||||||
name: title
|
|
||||||
- name: type
|
|
||||||
type: select
|
|
||||||
label: Order requested from site
|
|
||||||
default: desc
|
|
||||||
options:
|
|
||||||
desc: desc
|
|
||||||
asc: asc
|
|
||||||
|
|
||||||
login:
|
|
||||||
path: /api/torrents
|
|
||||||
method: get
|
|
||||||
inputs: {} # TODO: remove in v10
|
|
||||||
error:
|
|
||||||
- selector: a[href*="/login"]
|
|
||||||
message:
|
|
||||||
text: "The API key was not accepted by {{ .Config.sitelink }}."
|
|
||||||
|
|
||||||
search:
|
|
||||||
paths:
|
|
||||||
# https://github.com/HDInnovations/UNIT3D-Community-Edition/wiki/Torrent-API-(UNIT3D-v8.x.x)
|
|
||||||
# https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php#L476
|
|
||||||
- path: "/api/torrents/filter"
|
|
||||||
response:
|
|
||||||
type: json
|
|
||||||
|
|
||||||
headers:
|
|
||||||
Authorization: ["Bearer {{ .Config.apikey }}"]
|
|
||||||
|
|
||||||
inputs:
|
|
||||||
# if we have an id based search, add Season and Episode as query in name for UNIT3D < v6. Else pass S/E Params for UNIT3D >= v6
|
|
||||||
name: "{{ .Keywords }}"
|
|
||||||
$raw: "{{ if .Query.Season }}&seasonNumber={{ .Query.Season }}{{ else }}{{ end }}{{ if .Query.Ep }}&episodeNumber={{ .Query.Ep }}{{ else }}{{ end }}{{ if .Query.TMDBID }}&tmdbId={{ .Query.TMDBID }}{{ else }}{{ end }}{{ if .Query.IMDBIDShort }}&imdbId={{ .Query.IMDBIDShort }}{{ else }}{{ end }}{{ if .Query.TVDBID }}&tvdbId={{ .Query.TVDBID }}{{ else }}{{ end }}{{ range .Categories }}&categories[]={{.}}{{end}}{{ if .Config.freeleech }}&free[]=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_phase1:
|
|
||||||
text: "{{ if and (.Config.single_file_release_use_filename) (eq .Result.files \"1\") (.Result.title_filename) }}{{ .Result.title_filename }}{{ else }}{{ .Result.title_optional }}{{ end }}"
|
|
||||||
title_vose:
|
|
||||||
selector: name:contains(VOSE)
|
|
||||||
optional: true
|
|
||||||
title:
|
|
||||||
text: "{{ .Result.title_phase1 }}{{ if .Result.title_vose }} ENGLiSH{{ else }} SPANiSH{{ 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: [" & ", "_&_"]
|
|
||||||
description:
|
|
||||||
text: "{{ .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
|
|
||||||
downloadvolumefactor:
|
|
||||||
# api returns 0%, 25%, 50%, 75%, 100%
|
|
||||||
selector: freeleech
|
|
||||||
case:
|
|
||||||
0%: 1 # not free
|
|
||||||
25%: 0.75
|
|
||||||
50%: 0.5
|
|
||||||
75%: 0.25
|
|
||||||
100%: 0 # freeleech
|
|
||||||
"*": 0 # catch errors
|
|
||||||
uploadvolumefactor:
|
|
||||||
# api returns False, True
|
|
||||||
selector: double_upload
|
|
||||||
case:
|
|
||||||
False: 1 # normal
|
|
||||||
True: 2 # double
|
|
||||||
# global MR is 0.25 but torrents must be seeded for 3 days regardless of ratio
|
|
||||||
# minimumratio:
|
|
||||||
# text: 0.25
|
|
||||||
minimumseedtime:
|
|
||||||
# 3 days (as seconds = 3 x 24 x 60 x 60)
|
|
||||||
text: 259200
|
|
||||||
# json UNIT3D 8.0.2 (custom)
|
|
||||||
@@ -1,154 +0,0 @@
|
|||||||
---
|
|
||||||
id: limetorrents
|
|
||||||
name: LimeTorrents
|
|
||||||
description: "LimeTorrents is a Public general torrent index with mostly verified torrents"
|
|
||||||
language: en-US
|
|
||||||
type: public
|
|
||||||
encoding: UTF-8
|
|
||||||
# changes to this indexer should also be made to limetorrentsclone
|
|
||||||
links:
|
|
||||||
- https://www.limetorrents.lol/
|
|
||||||
- https://limetorrents.abcproxy.org/
|
|
||||||
- https://limetorrents.unblockit.casa/
|
|
||||||
- https://limetorrents.unblockninja.com/
|
|
||||||
- https://limetorrents.ninjaproxy1.com/
|
|
||||||
- https://limetorrents.proxyninja.org/
|
|
||||||
- https://limetorrents.torrentbay.st/
|
|
||||||
legacylinks:
|
|
||||||
- https://limetorrents.nocensor.art/
|
|
||||||
- https://limetorrents.unblockit.bio/
|
|
||||||
- https://limetorrents.unblockit.boo/
|
|
||||||
- https://limetorrents.mrunblock.guru/
|
|
||||||
- https://limetorrents.unblockit.click/
|
|
||||||
- https://limetorrents.unblockit.asia/
|
|
||||||
- https://limetorrents.unblockit.mov/
|
|
||||||
- https://limetorrents.mrunblock.life/
|
|
||||||
- https://limetorrents.unblockit.rsvp/
|
|
||||||
- https://limetorrents.nocensor.click/
|
|
||||||
- https://limetorrents.unblockit.vegas/
|
|
||||||
- https://limetorrents.unblockit.esq/
|
|
||||||
- https://limetorrents.unblockit.zip/
|
|
||||||
- https://limetorrents.unblockit.foo/
|
|
||||||
- https://limetorrents.unblockit.ing/
|
|
||||||
- https://limetorrents.mrunblock.bond/
|
|
||||||
- https://limetorrents.nocensor.cloud/
|
|
||||||
- https://limetorrents.unblockit.date/
|
|
||||||
- https://limetorrents.unblockit.dad/
|
|
||||||
- https://limetorrents.unblockit.africa/
|
|
||||||
|
|
||||||
caps:
|
|
||||||
categorymappings:
|
|
||||||
- {id: "TV shows", cat: TV, desc: "TV shows"}
|
|
||||||
- {id: Movies, cat: Movies, desc: Movies}
|
|
||||||
- {id: Music, cat: Audio, desc: Music}
|
|
||||||
- {id: Games, cat: Console, desc: Games}
|
|
||||||
- {id: Applications, cat: PC/0day, desc: Applications}
|
|
||||||
- {id: Other, cat: Other, desc: Other}
|
|
||||||
- {id: Anime, cat: TV/Anime, desc: Anime}
|
|
||||||
- {id: E-books, cat: Books/EBook, desc: E-books}
|
|
||||||
|
|
||||||
modes:
|
|
||||||
search: [q]
|
|
||||||
tv-search: [q, season, ep]
|
|
||||||
movie-search: [q]
|
|
||||||
music-search: [q]
|
|
||||||
book-search: [q]
|
|
||||||
|
|
||||||
settings:
|
|
||||||
- name: downloadlink
|
|
||||||
type: select
|
|
||||||
label: Download link
|
|
||||||
default: "magnet:"
|
|
||||||
options:
|
|
||||||
"http://itorrents.org/": iTorrents.org
|
|
||||||
"magnet:": magnet
|
|
||||||
- name: downloadlink2
|
|
||||||
type: select
|
|
||||||
label: Download link (fallback)
|
|
||||||
default: "http://itorrents.org/"
|
|
||||||
options:
|
|
||||||
"http://itorrents.org/": iTorrents.org
|
|
||||||
"magnet:": magnet
|
|
||||||
- name: info_download
|
|
||||||
type: info
|
|
||||||
label: About the Download links
|
|
||||||
default: As the .torrent download links on this site are known to fail from time to time, you can optionally set as a fallback an automatic alternate link.
|
|
||||||
- name: sort
|
|
||||||
type: select
|
|
||||||
label: Sort requested from site
|
|
||||||
default: date
|
|
||||||
options:
|
|
||||||
date: created
|
|
||||||
seeds: seeders
|
|
||||||
size: size
|
|
||||||
- name: info_8000
|
|
||||||
type: info
|
|
||||||
label: About LimeTorrents Categories
|
|
||||||
default: LimeTorrents only returns category <b>Other</b> in its <i>Keywordless</i> search results page.</br>To pass your apps' indexer TEST you will need to include the 8000(Other) category.
|
|
||||||
|
|
||||||
download:
|
|
||||||
# the .torrent url is on the on the details page
|
|
||||||
selectors:
|
|
||||||
- selector: a.csprite_dltorrent[href^="{{ .Config.downloadlink }}"]
|
|
||||||
attribute: href
|
|
||||||
- selector: a.csprite_dltorrent[href^="{{ .Config.downloadlink2 }}"]
|
|
||||||
attribute: href
|
|
||||||
|
|
||||||
search:
|
|
||||||
paths:
|
|
||||||
- path: "{{ if .Keywords }}search/all/{{ .Keywords }}/{{ .Config.sort }}/1/{{ else }}/latest100{{ end }}"
|
|
||||||
keywordsfilters:
|
|
||||||
- name: re_replace
|
|
||||||
args: ["S[0-9]{2}([^E]|$)", ""] # remove season tag without episode
|
|
||||||
|
|
||||||
rows:
|
|
||||||
selector: .table2 > tbody > tr[bgcolor]
|
|
||||||
|
|
||||||
fields:
|
|
||||||
title:
|
|
||||||
selector: div.tt-name > a[href^="/"]
|
|
||||||
attribute: href
|
|
||||||
filters:
|
|
||||||
- name: regexp
|
|
||||||
args: "/(.+?)-torrent-\\d+\\.html"
|
|
||||||
- name: re_replace
|
|
||||||
args: ["-", " "]
|
|
||||||
category_is_tv_show:
|
|
||||||
text: "{{ .Result.title }}"
|
|
||||||
filters:
|
|
||||||
- name: regexp
|
|
||||||
args: "\\b(S\\d+(?:E\\d+)?)\\b"
|
|
||||||
category:
|
|
||||||
text: "{{ if .Result.category_is_tv_show }}TV shows{{ else }}Other{{ end }}"
|
|
||||||
category|noappend:
|
|
||||||
optional: true
|
|
||||||
selector: td:nth-child(2)
|
|
||||||
filters:
|
|
||||||
- name: regexp
|
|
||||||
args: " in (.+?)[.]?$"
|
|
||||||
details:
|
|
||||||
selector: div.tt-name > a[href^="/"]
|
|
||||||
attribute: href
|
|
||||||
download:
|
|
||||||
selector: div.tt-name > a[href^="/"]
|
|
||||||
attribute: href
|
|
||||||
date:
|
|
||||||
selector: td:nth-child(2)
|
|
||||||
filters:
|
|
||||||
- name: split
|
|
||||||
args: ["-", 0]
|
|
||||||
- name: replace
|
|
||||||
args: ["Last Month", "1 month ago"]
|
|
||||||
- name: replace
|
|
||||||
args: ["+", " ago"]
|
|
||||||
size:
|
|
||||||
selector: td:nth-child(3)
|
|
||||||
seeders:
|
|
||||||
selector: .tdseed
|
|
||||||
leechers:
|
|
||||||
selector: .tdleech
|
|
||||||
downloadvolumefactor:
|
|
||||||
text: 0
|
|
||||||
uploadvolumefactor:
|
|
||||||
text: 1
|
|
||||||
# engine n/a
|
|
||||||
@@ -1,160 +0,0 @@
|
|||||||
---
|
|
||||||
id: locadora
|
|
||||||
name: Locadora
|
|
||||||
description: "Locadora is a BRAZILIAN Private Tracker for MOVIES and TV"
|
|
||||||
language: pt-BR
|
|
||||||
type: private
|
|
||||||
encoding: UTF-8
|
|
||||||
links:
|
|
||||||
- https://locadora.cc/
|
|
||||||
legacylinks:
|
|
||||||
- https://locadora.xyz/
|
|
||||||
|
|
||||||
caps:
|
|
||||||
categorymappings:
|
|
||||||
- {id: 1, cat: Movies, desc: "Filmes"}
|
|
||||||
- {id: 2, cat: TV, desc: "Series"}
|
|
||||||
- {id: 6, cat: TV/Anime, desc: "Animes"}
|
|
||||||
- {id: 7, cat: Audio/Video, desc: "Shows"}
|
|
||||||
|
|
||||||
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://locadora.cc/\" target=\"_blank\">Locadora</a> account <i>My Security</i> page and clicking on the <b>API Token</b> tab."
|
|
||||||
- name: freeleech
|
|
||||||
type: checkbox
|
|
||||||
label: Search freeleech only
|
|
||||||
default: false
|
|
||||||
- name: sort
|
|
||||||
type: select
|
|
||||||
label: Sort requested from site
|
|
||||||
default: created_at
|
|
||||||
options:
|
|
||||||
created_at: created
|
|
||||||
seeders: seeders
|
|
||||||
size: size
|
|
||||||
name: title
|
|
||||||
- name: type
|
|
||||||
type: select
|
|
||||||
label: Order requested from site
|
|
||||||
default: desc
|
|
||||||
options:
|
|
||||||
desc: desc
|
|
||||||
asc: asc
|
|
||||||
- name: info_activity
|
|
||||||
type: info
|
|
||||||
label: Account Inactivity
|
|
||||||
default: "Accounts inactive for 90 days are deactivated."
|
|
||||||
|
|
||||||
login:
|
|
||||||
path: /api/torrents
|
|
||||||
method: get
|
|
||||||
inputs: {} # TODO: remove in v10
|
|
||||||
error:
|
|
||||||
- selector: a[href*="/login"]
|
|
||||||
message:
|
|
||||||
text: "The API key was not accepted by {{ .Config.sitelink }}."
|
|
||||||
|
|
||||||
search:
|
|
||||||
paths:
|
|
||||||
# https://github.com/HDInnovations/UNIT3D-Community-Edition/wiki/Torrent-API-(UNIT3D-v8.x.x)
|
|
||||||
# https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php#L476
|
|
||||||
- path: "/api/torrents/filter"
|
|
||||||
response:
|
|
||||||
type: json
|
|
||||||
|
|
||||||
headers:
|
|
||||||
Authorization: ["Bearer {{ .Config.apikey }}"]
|
|
||||||
|
|
||||||
inputs:
|
|
||||||
# if we have an id based search, add Season and Episode as query in name for UNIT3D < v6. Else pass S/E Params for UNIT3D >= v6
|
|
||||||
name: "{{ .Keywords }}"
|
|
||||||
$raw: "{{ if .Query.Season }}&seasonNumber={{ .Query.Season }}{{ else }}{{ end }}{{ if .Query.Ep }}&episodeNumber={{ .Query.Ep }}{{ else }}{{ end }}{{ if .Query.TMDBID }}&tmdbId={{ .Query.TMDBID }}{{ else }}{{ end }}{{ if .Query.IMDBIDShort }}&imdbId={{ .Query.IMDBIDShort }}{{ else }}{{ end }}{{ if .Query.TVDBID }}&tvdbId={{ .Query.TVDBID }}{{ else }}{{ end }}{{ range .Categories }}&categories[]={{.}}{{end}}{{ if .Config.freeleech }}&free=1{{ else }}{{ end }}"
|
|
||||||
sortField: "{{ .Config.sort }}"
|
|
||||||
sortDirection: "{{ .Config.type }}"
|
|
||||||
perPage: 100
|
|
||||||
|
|
||||||
keywordsfilters:
|
|
||||||
# strip season and/or ep
|
|
||||||
- name: re_replace
|
|
||||||
args: ["\\b([SE]\\d{1,4}){1,2}\\b", ""]
|
|
||||||
- name: re_replace
|
|
||||||
args: ["\\.", " "]
|
|
||||||
|
|
||||||
rows:
|
|
||||||
selector: data
|
|
||||||
attribute: attributes
|
|
||||||
|
|
||||||
fields:
|
|
||||||
category:
|
|
||||||
selector: category_id
|
|
||||||
title:
|
|
||||||
selector: name
|
|
||||||
details:
|
|
||||||
selector: details_link
|
|
||||||
download:
|
|
||||||
selector: download_link
|
|
||||||
infohash:
|
|
||||||
selector: info_hash
|
|
||||||
poster:
|
|
||||||
selector: poster
|
|
||||||
filters:
|
|
||||||
- name: replace
|
|
||||||
args: ["https://via.placeholder.com/90x135", ""]
|
|
||||||
imdbid:
|
|
||||||
selector: imdb_id
|
|
||||||
tmdbid:
|
|
||||||
selector: tmdb_id
|
|
||||||
tvdbid:
|
|
||||||
selector: tvdb_id
|
|
||||||
files:
|
|
||||||
selector: num_file
|
|
||||||
seeders:
|
|
||||||
selector: seeders
|
|
||||||
leechers:
|
|
||||||
selector: leechers
|
|
||||||
grabs:
|
|
||||||
selector: times_completed
|
|
||||||
date:
|
|
||||||
# "created_at": "2021-10-18T00:34:50.000000Z" is returned by Newtonsoft.Json.Linq as 18/10/2021 00:34:50
|
|
||||||
selector: created_at
|
|
||||||
filters:
|
|
||||||
- name: append
|
|
||||||
args: " +00:00" # GMT
|
|
||||||
- name: dateparse
|
|
||||||
args: "MM/dd/yyyy HH:mm:ss zzz"
|
|
||||||
size:
|
|
||||||
selector: size
|
|
||||||
downloadvolumefactor:
|
|
||||||
# api returns 0%, 25%, 50%, 75%, 100%
|
|
||||||
selector: freeleech
|
|
||||||
case:
|
|
||||||
0%: 1 # not free
|
|
||||||
25%: 0.75
|
|
||||||
50%: 0.5
|
|
||||||
75%: 0.25
|
|
||||||
100%: 0 # freeleech
|
|
||||||
"*": 0 # catch errors
|
|
||||||
uploadvolumefactor:
|
|
||||||
# api returns 0=false, 1=true
|
|
||||||
selector: double_upload
|
|
||||||
case:
|
|
||||||
0: 1 # normal
|
|
||||||
1: 2 # double
|
|
||||||
# global MR is 0.4 but torrents must be seeded for 3 days regardless of ratio
|
|
||||||
# minimumratio:
|
|
||||||
# text: 0.4
|
|
||||||
minimumseedtime:
|
|
||||||
# 3 days (as seconds = 3 x 24 x 60 x 60)
|
|
||||||
text: 259200
|
|
||||||
# json UNIT3D 6.3.0
|
|
||||||
@@ -1,180 +0,0 @@
|
|||||||
---
|
|
||||||
id: lst
|
|
||||||
name: LST
|
|
||||||
description: "LST is an English Private tracker for MOVIES / TV / GENERAL"
|
|
||||||
language: en-US
|
|
||||||
type: private
|
|
||||||
encoding: UTF-8
|
|
||||||
links:
|
|
||||||
- https://lst.gg/
|
|
||||||
|
|
||||||
caps:
|
|
||||||
categorymappings:
|
|
||||||
- {id: 1, cat: Movies, desc: "Movies"}
|
|
||||||
- {id: 2, cat: TV, desc: "TV"}
|
|
||||||
- {id: 6, cat: TV/Anime, desc: "Anime"}
|
|
||||||
- {id: 3, cat: Audio, desc: "Music"}
|
|
||||||
- {id: 4, cat: Console, desc: "Game"}
|
|
||||||
- {id: 5, cat: PC, desc: "Application"}
|
|
||||||
- {id: 8, cat: XXX, desc: "XXX"}
|
|
||||||
- {id: 9, cat: Books/EBook, desc: "Ebook/Manga"}
|
|
||||||
- {id: 10, cat: Other, desc: "Education"}
|
|
||||||
|
|
||||||
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://lst.gg/\" target=\"_blank\">LST</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 get disabled after 90 days of no logins or any sort of activity. Accounts will also get soft deleted after 120 days."
|
|
||||||
|
|
||||||
login:
|
|
||||||
path: /api/torrents
|
|
||||||
method: get
|
|
||||||
inputs: {} # TODO: remove in v10
|
|
||||||
error:
|
|
||||||
- selector: a[href*="/login"]
|
|
||||||
message:
|
|
||||||
text: "The API key was not accepted by {{ .Config.sitelink }}."
|
|
||||||
|
|
||||||
search:
|
|
||||||
paths:
|
|
||||||
# https://github.com/HDInnovations/UNIT3D-Community-Edition/wiki/Torrent-API-(UNIT3D-v8.x.x)
|
|
||||||
# https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php#L476
|
|
||||||
- path: "/api/torrents/filter"
|
|
||||||
response:
|
|
||||||
type: json
|
|
||||||
|
|
||||||
headers:
|
|
||||||
Authorization: ["Bearer {{ .Config.apikey }}"]
|
|
||||||
|
|
||||||
inputs:
|
|
||||||
# if we have an id based search, add Season and Episode as query in name for UNIT3D < v6. Else pass S/E Params for UNIT3D >= v6
|
|
||||||
name: "{{ .Keywords }}"
|
|
||||||
$raw: "{{ if .Query.Season }}&seasonNumber={{ .Query.Season }}{{ else }}{{ end }}{{ if .Query.Ep }}&episodeNumber={{ .Query.Ep }}{{ else }}{{ end }}{{ if .Query.TMDBID }}&tmdbId={{ .Query.TMDBID }}{{ else }}{{ end }}{{ if .Query.IMDBIDShort }}&imdbId={{ .Query.IMDBIDShort }}{{ else }}{{ end }}{{ if .Query.TVDBID }}&tvdbId={{ .Query.TVDBID }}{{ else }}{{ end }}{{ range .Categories }}&categories[]={{.}}{{end}}{{ if .Config.freeleech }}&free[]=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: [" & ", "_&_"]
|
|
||||||
description:
|
|
||||||
text: "{{ .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
|
|
||||||
downloadvolumefactor:
|
|
||||||
# api returns 0%, 25%, 50%, 75%, 100%
|
|
||||||
selector: freeleech
|
|
||||||
case:
|
|
||||||
0%: 1 # not free
|
|
||||||
25%: 0.75
|
|
||||||
50%: 0.5
|
|
||||||
75%: 0.25
|
|
||||||
100%: 0 # freeleech
|
|
||||||
"*": 0 # catch errors
|
|
||||||
uploadvolumefactor:
|
|
||||||
# api returns False, True
|
|
||||||
selector: double_upload
|
|
||||||
case:
|
|
||||||
False: 1 # normal
|
|
||||||
True: 2 # double
|
|
||||||
# global MR is 1.0 but torrents must be seeded for 5 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.0.2
|
|
||||||
@@ -1,191 +0,0 @@
|
|||||||
---
|
|
||||||
id: madsrevolution
|
|
||||||
name: MaDs Revolution
|
|
||||||
description: "MaDs Revolution is a Private GERMAN site for MOVIES / TV / GENERAL"
|
|
||||||
language: de-DE
|
|
||||||
type: private
|
|
||||||
encoding: UTF-8
|
|
||||||
links:
|
|
||||||
- https://madsrevolution.net/
|
|
||||||
|
|
||||||
caps:
|
|
||||||
categorymappings:
|
|
||||||
- {id: 52, cat: Movies/UHD, desc: "Filme UHD"}
|
|
||||||
- {id: 3, cat: Movies/HD, desc: "Filme 1080p"}
|
|
||||||
- {id: 4, cat: Movies/HD, desc: "Filme 720p"}
|
|
||||||
- {id: 47, cat: Movies/HD, desc: "Filme x264"}
|
|
||||||
- {id: 2, cat: Movies/SD, desc: "Filme DivX/XviD"}
|
|
||||||
- {id: 1, cat: Movies/DVD, desc: "Filme DVD-R"}
|
|
||||||
- {id: 20, cat: Movies/3D, desc: "Filme 3D"}
|
|
||||||
- {id: 54, cat: TV/UHD, desc: "Serien UHD"}
|
|
||||||
- {id: 28, cat: TV/HD, desc: "Serien 1080p"}
|
|
||||||
- {id: 26, cat: TV/HD, desc: "Serien 720p"}
|
|
||||||
- {id: 48, cat: TV/HD, desc: "Serien x264"}
|
|
||||||
- {id: 27, cat: TV/SD, desc: "Serien DivX/XviD"}
|
|
||||||
- {id: 25, cat: TV/SD, desc: "Serien DVD-R"}
|
|
||||||
- {id: 8, cat: TV/Other, desc: "Serien Unsorted"}
|
|
||||||
- {id: 38, cat: Audio, desc: "Musik Album"}
|
|
||||||
- {id: 37, cat: Audio, desc: "Musik Single/EP"}
|
|
||||||
- {id: 40, cat: Audio/Video, desc: "Musik Video"}
|
|
||||||
- {id: 39, cat: Audio, desc: "Musik Pack"}
|
|
||||||
- {id: 14, cat: Audio/Other, desc: "Musik Unsorted"}
|
|
||||||
- {id: 44, cat: PC/0day, desc: "Software Windows"}
|
|
||||||
- {id: 42, cat: PC/Mac, desc: "Software Mac"}
|
|
||||||
- {id: 41, cat: PC, desc: "Software Linux"}
|
|
||||||
- {id: 43, cat: PC/Mobile-Other, desc: "Software Mobile"}
|
|
||||||
- {id: 11, cat: PC, desc: "Software Unsorted"}
|
|
||||||
- {id: 12, cat: PC/Games, desc: "Spiele PC"}
|
|
||||||
- {id: 13, cat: Console, desc: "Spiele Konsole"}
|
|
||||||
- {id: 17, cat: Console, desc: "Spiele Portable"}
|
|
||||||
- {id: 46, cat: Console, desc: "Spiele Other"}
|
|
||||||
- {id: 53, cat: TV/Documentary, desc: "Dokus UHD"}
|
|
||||||
- {id: 24, cat: TV/Documentary, desc: "Dokus 1080p"}
|
|
||||||
- {id: 22, cat: TV/Documentary, desc: "Dokus 720p"}
|
|
||||||
- {id: 49, cat: TV/Documentary, desc: "Dokus x264"}
|
|
||||||
- {id: 23, cat: TV/Documentary, desc: "Dokus DivX/XviD"}
|
|
||||||
- {id: 21, cat: TV/Documentary, desc: "Dokus DVD-R"}
|
|
||||||
- {id: 7, cat: TV/Documentary, desc: "Dokus Unsorted"}
|
|
||||||
- {id: 55, cat: TV/Sport, desc: "Sport UHD"}
|
|
||||||
- {id: 32, cat: TV/Sport, desc: "Sport 1080p"}
|
|
||||||
- {id: 30, cat: TV/Sport, desc: "Sport 720p"}
|
|
||||||
- {id: 50, cat: TV/Sport, desc: "Sport x264"}
|
|
||||||
- {id: 31, cat: TV/Sport, desc: "Sport DivX/XviD"}
|
|
||||||
- {id: 29, cat: TV/Sport, desc: "Sport DVD-R"}
|
|
||||||
- {id: 9, cat: TV/Sport, desc: "Sport Unsorted"}
|
|
||||||
- {id: 15, cat: Audio/Audiobook, desc: "Books aBooks"}
|
|
||||||
- {id: 18, cat: Books/EBook, desc: "Books eBooks"}
|
|
||||||
- {id: 56, cat: XXX, desc: "XXX UHD"}
|
|
||||||
- {id: 36, cat: XXX, desc: "XXX 1080p"}
|
|
||||||
- {id: 34, cat: XXX, desc: "XXX 720p"}
|
|
||||||
- {id: 51, cat: XXX, desc: "XXX x264"}
|
|
||||||
- {id: 35, cat: XXX, desc: "XXX DivX/XviD"}
|
|
||||||
- {id: 33, cat: XXX, desc: "XXX DVD-R"}
|
|
||||||
- {id: 10, cat: XXX, desc: "XXX Unsorted"}
|
|
||||||
- {id: 5, cat: TV/Anime, desc: "Misc Anime"}
|
|
||||||
- {id: 6, cat: XXX, desc: "Misc Hentai"}
|
|
||||||
- {id: 19, cat: Other, desc: "Misc Other"}
|
|
||||||
|
|
||||||
modes:
|
|
||||||
search: [q]
|
|
||||||
tv-search: [q, season, ep, genre]
|
|
||||||
movie-search: [q, genre]
|
|
||||||
music-search: [q, genre]
|
|
||||||
book-search: [q, genre]
|
|
||||||
|
|
||||||
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: s3
|
|
||||||
options:
|
|
||||||
s3: created
|
|
||||||
s6: seeders
|
|
||||||
s4: size
|
|
||||||
s1: 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: "After 8 weeks of inactivity, the account will be automatically deleted."
|
|
||||||
|
|
||||||
login:
|
|
||||||
path: login.php
|
|
||||||
method: post
|
|
||||||
inputs:
|
|
||||||
username: "{{ .Config.username }}"
|
|
||||||
password: "{{ .Config.password }}"
|
|
||||||
keeplogged: 1
|
|
||||||
error:
|
|
||||||
- selector: div#error-text
|
|
||||||
test:
|
|
||||||
path: index.php
|
|
||||||
selector: a[href^="logout.php?auth="]
|
|
||||||
|
|
||||||
search:
|
|
||||||
paths:
|
|
||||||
- path: torrents.php
|
|
||||||
inputs:
|
|
||||||
$raw: "{{ range .Categories }}filter_cat[{{.}}]=1&{{end}}{{ if .Config.freeleech }}action=uploadonly&{{ else }}{{ end }}"
|
|
||||||
searchstr: "{{ .Keywords }}"
|
|
||||||
searchtags: "{{ .Query.Genre }}"
|
|
||||||
# 0 any, 1 all
|
|
||||||
tags_type: 0
|
|
||||||
order_by: "{{ .Config.sort }}"
|
|
||||||
order_way: "{{ .Config.type }}"
|
|
||||||
# site does not support imdbid searching or present imdb links in results.
|
|
||||||
|
|
||||||
rows:
|
|
||||||
selector: table#torrent_table > tbody > tr.torrent:has(a[href^="torrents.php?action=download&id="])
|
|
||||||
|
|
||||||
fields:
|
|
||||||
category:
|
|
||||||
selector: a.c-sub
|
|
||||||
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
|
|
||||||
poster:
|
|
||||||
selector: a[href^="torrents.php?id="]
|
|
||||||
attribute: onmouseover
|
|
||||||
filters:
|
|
||||||
- name: regexp
|
|
||||||
args: "src=(.+?) "
|
|
||||||
genre:
|
|
||||||
selector: div.tags
|
|
||||||
description:
|
|
||||||
text: "{{ .Result.genre }}"
|
|
||||||
date:
|
|
||||||
selector: td:nth-last-child(5)
|
|
||||||
filters:
|
|
||||||
- name: append
|
|
||||||
args: " +01:00" # CET
|
|
||||||
- name: dateparse
|
|
||||||
args: "dd MMM yyyy, HH:mm zzz"
|
|
||||||
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:contains(\"UploadOnly!\")": 0
|
|
||||||
"*": 1
|
|
||||||
uploadvolumefactor:
|
|
||||||
text: 1
|
|
||||||
minimumratio:
|
|
||||||
text: 0.8
|
|
||||||
minimumseedtime:
|
|
||||||
# 3 days (as seconds = 3 x 24 x 60 x 60)
|
|
||||||
text: 259200
|
|
||||||
# engine n/a
|
|
||||||
@@ -1,191 +0,0 @@
|
|||||||
---
|
|
||||||
id: majomparade
|
|
||||||
name: Majomparádé
|
|
||||||
description: "Majomparádé (TurkDepo) is a HUNGARIAN Private Torrent Tracker for 0DAY / GENERAL"
|
|
||||||
language: hu-HU
|
|
||||||
type: private
|
|
||||||
encoding: UTF-8
|
|
||||||
requestDelay: 2
|
|
||||||
links:
|
|
||||||
- https://majomparade.eu/
|
|
||||||
|
|
||||||
caps:
|
|
||||||
categorymappings:
|
|
||||||
- {id: 4, cat: Movies/3D, desc: "3D/Magyar", default: true}
|
|
||||||
- {id: 5, cat: Movies/3D, desc: "3D/Külföldi", default: true}
|
|
||||||
- {id: 48, cat: Movies/HD, desc: "Film/BR-BDRIP/Külföldi", default: true}
|
|
||||||
- {id: 50, cat: Movies/HD, desc: "Film/BR-BDRIP/Magyar", default: true}
|
|
||||||
- {id: 75, cat: Movies/SD, desc: "Film/Cam/Külföldi", default: true}
|
|
||||||
- {id: 76, cat: Movies/SD, desc: "Film/Cam/Magyar", default: true}
|
|
||||||
- {id: 26, cat: Movies/DVD, desc: "Film/DVD/Külföldi", default: true}
|
|
||||||
- {id: 25, cat: Movies/DVD, desc: "Film/DVD/Magyar", default: true}
|
|
||||||
- {id: 58, cat: Movies/DVD, desc: "Film/DVD9/Külföld", default: true}
|
|
||||||
- {id: 59, cat: Movies/DVD, desc: "Film/DVD9/Magyar", default: true}
|
|
||||||
- {id: 42, cat: Movies/HD, desc: "Film/HD/Külföldi", default: true}
|
|
||||||
- {id: 51, cat: Movies/HD, desc: "Film/HD/Magyar", default: true}
|
|
||||||
- {id: 38, cat: Movies/SD, desc: "Film/XviD/Külföldi", default: true}
|
|
||||||
- {id: 24, cat: Movies/SD, desc: "Film/XviD/Magyar", default: true}
|
|
||||||
- {id: 85, cat: TV/Sport, desc: "Sport/Külföldi", default: true}
|
|
||||||
- {id: 87, cat: TV/Sport, desc: "Sport/Magyar", default: true}
|
|
||||||
- {id: 47, cat: TV/SD, desc: "Sorozat/Külföldi", default: true}
|
|
||||||
- {id: 36, cat: TV/SD, desc: "Sorozat/Magyar", default: true}
|
|
||||||
- {id: 6, cat: TV/HD, desc: "Sorozat/HD/Magyar", default: true}
|
|
||||||
- {id: 7, cat: TV/HD, desc: "Sorozat/HD/Külföldi", default: true}
|
|
||||||
- {id: 56, cat: Audio/Audiobook, desc: "Hangoskönyv", default: true}
|
|
||||||
- {id: 33, cat: Books, desc: "Könyv/Külföldi", default: true}
|
|
||||||
- {id: 44, cat: Books, desc: "Könyv/Magyar", default: true}
|
|
||||||
- {id: 28, cat: PC/Games, desc: "Játék/ISO", default: true}
|
|
||||||
- {id: 32, cat: Console, desc: "Játék/Konzol", default: true}
|
|
||||||
- {id: 30, cat: PC/Games, desc: "Játék/RIP", default: true}
|
|
||||||
- {id: 53, cat: Audio/Lossless, desc: "Lossless/Külföldi", default: true}
|
|
||||||
- {id: 74, cat: Audio/Lossless, desc: "Lossless/Magyar", default: true}
|
|
||||||
- {id: 40, cat: Audio/Other, desc: "Zene/Külföldi", default: true}
|
|
||||||
- {id: 41, cat: Audio/Other, desc: "Zene/Magyar", default: true}
|
|
||||||
- {id: 34, cat: PC/Mobile-Other, desc: "Mobil", default: true}
|
|
||||||
- {id: 35, cat: PC/ISO, desc: "Programok/ISO", default: true}
|
|
||||||
- {id: 46, cat: PC/0day, desc: "Programok/RIP", default: true}
|
|
||||||
- {id: 70, cat: XXX/DVD, desc: "XXX/DVD", default: false}
|
|
||||||
- {id: 39, cat: XXX/XviD, desc: "XXX/XviD", default: false}
|
|
||||||
- {id: 57, cat: XXX, desc: "XXX/HD", default: false}
|
|
||||||
|
|
||||||
modes:
|
|
||||||
search: [q]
|
|
||||||
tv-search: [q, season, ep, imdbid]
|
|
||||||
movie-search: [q, imdbid]
|
|
||||||
music-search: [q]
|
|
||||||
book-search: [q]
|
|
||||||
|
|
||||||
settings:
|
|
||||||
- name: cookie
|
|
||||||
type: text
|
|
||||||
label: Cookie
|
|
||||||
- name: info
|
|
||||||
type: info
|
|
||||||
label: How to get the Cookie
|
|
||||||
default: "<ol><li>Login to this tracker with your browser</li><li>Open the <b>DevTools</b> panel by pressing <b>F12</b></li><li>Select the <b>Network</b> tab</li><li>Click on the <b>Doc</b> button (Chrome Browser) or <b>HTML</b> button (FireFox)</li><li>Refresh the page by pressing <b>F5</b></li><li>Click on the first row entry</li><li>Select the <b>Headers</b> tab on the Right panel</li><li>Find <b>'cookie:'</b> in the <b>Request Headers</b> section</li><li><b>Select</b> and <b>Copy</b> the whole cookie string <i>(everything after 'cookie: ')</i> and <b>Paste</b> here.</li></ol>"
|
|
||||||
- name: useragent
|
|
||||||
type: text
|
|
||||||
label: User-Agent
|
|
||||||
- name: info_useragent
|
|
||||||
type: info
|
|
||||||
label: How to get the User-Agent
|
|
||||||
default: "<ol><li>From the same place you fetched the cookie,</li><li>Find <b>'user-agent:'</b> in the <b>Request Headers</b> section</li><li><b>Select</b> and <b>Copy</b> the whole user-agent string <i>(everything after 'user-agent: ')</i> and <b>Paste</b> here.</li></ol>"
|
|
||||||
- name: info_activity
|
|
||||||
type: info
|
|
||||||
label: Account Inactivity
|
|
||||||
default: "Users who have been inactive for more than 25 weeks are automatically deleted."
|
|
||||||
|
|
||||||
login:
|
|
||||||
method: cookie
|
|
||||||
inputs:
|
|
||||||
cookie: "{{ .Config.cookie }}"
|
|
||||||
test:
|
|
||||||
path: letoltes.php
|
|
||||||
selector: a[href^="logout.php?getUnique="]
|
|
||||||
|
|
||||||
search:
|
|
||||||
paths:
|
|
||||||
- path: letoltes.php
|
|
||||||
categories: [4, 5, 48, 50, 75, 76, 26, 25, 58, 59, 42, 51, 38, 24, 85, 87, 47, 36, 6, 7, 56, 33, 44, 28, 32, 30, 53, 74, 40, 41, 34, 35, 46]
|
|
||||||
inputs:
|
|
||||||
tipus: 1
|
|
||||||
- path: letoltes.php
|
|
||||||
categories: [4, 5, 48, 50, 75, 76, 26, 25, 58, 59, 42, 51, 38, 24, 85, 87, 47, 36, 6, 7, 56, 33, 44, 28, 32, 30, 53, 74, 40, 41, 34, 35, 46]
|
|
||||||
inputs:
|
|
||||||
tipus: 2
|
|
||||||
- path: xxx.php
|
|
||||||
categories: [70, 39, 57]
|
|
||||||
inputs:
|
|
||||||
$raw: "{{ range .Categories }}category[]={{.}}&{{end}}"
|
|
||||||
name: "{{ if .Query.IMDBID }}http://www.imdb.com/title/{{ .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}"
|
|
||||||
imdb_search: "{{ if .Query.IMDBID }}yes{{ else }}{{ end }}"
|
|
||||||
k: yes
|
|
||||||
tipuska: 1
|
|
||||||
|
|
||||||
headers:
|
|
||||||
User-Agent: ["{{ .Config.useragent }}"]
|
|
||||||
|
|
||||||
rows:
|
|
||||||
selector: table#table > tbody > tr:has(a[href^="download.php?torrent="])
|
|
||||||
|
|
||||||
fields:
|
|
||||||
download:
|
|
||||||
selector: a[href^="download.php?torrent="]
|
|
||||||
attribute: href
|
|
||||||
title_default:
|
|
||||||
selector: a[href^="details.php?id="] > b
|
|
||||||
attribute: title
|
|
||||||
title_optional:
|
|
||||||
selector: a[href^="details.php?id="] > b[title*="Torrent neve:"]
|
|
||||||
attribute: title
|
|
||||||
optional: true
|
|
||||||
filters:
|
|
||||||
- name: regexp
|
|
||||||
args: "Torrent neve: (.*?)<"
|
|
||||||
title:
|
|
||||||
text: "{{ if .Result.title_optional }}{{ .Result.title_optional }}{{ else }}{{ .Result.title_default }}{{ end }}"
|
|
||||||
title_hungarian:
|
|
||||||
selector: a[href^="details.php?id="] > b
|
|
||||||
attribute: title
|
|
||||||
filters:
|
|
||||||
- name: regexp
|
|
||||||
args: "<br />(.*)"
|
|
||||||
category:
|
|
||||||
selector: a[href*="&category[]="]
|
|
||||||
attribute: href
|
|
||||||
filters:
|
|
||||||
- name: querystring
|
|
||||||
args: category[]
|
|
||||||
details:
|
|
||||||
selector: a[href^="details.php?id="]
|
|
||||||
attribute: href
|
|
||||||
imdbid:
|
|
||||||
selector: a[href*="imdb.com/title/tt"]
|
|
||||||
attribute: href
|
|
||||||
poster:
|
|
||||||
selector: img[src="pic/borito.png"], a[href^="details.php?id="] > b[title*="Torrent neve:"]
|
|
||||||
attribute: title
|
|
||||||
filters:
|
|
||||||
- name: regexp
|
|
||||||
args: src='(.*?)'
|
|
||||||
files:
|
|
||||||
selector: td:nth-child(5)
|
|
||||||
size:
|
|
||||||
selector: td:nth-child(7)
|
|
||||||
grabs:
|
|
||||||
selector: td:nth-child(8)
|
|
||||||
seeders:
|
|
||||||
selector: td:nth-child(9)
|
|
||||||
leechers:
|
|
||||||
selector: td:nth-child(10)
|
|
||||||
date:
|
|
||||||
selector: td:nth-child(6)
|
|
||||||
filters:
|
|
||||||
- name: append
|
|
||||||
args: " +01:00" # CET
|
|
||||||
- name: dateparse
|
|
||||||
args: "yyyy-MM-dd HH:mm:ss zzz"
|
|
||||||
downloadvolumefactor:
|
|
||||||
text: 0
|
|
||||||
uploadvolumefactor:
|
|
||||||
case:
|
|
||||||
img[title="Ennél a torrentnél 2x szorzó van."]: 2
|
|
||||||
img[title="Ennél a torrentnél 3x szorzó van."]: 3
|
|
||||||
img[title="Ennél a torrentnél 4x szorzó van."]: 4
|
|
||||||
"*": 1
|
|
||||||
genre:
|
|
||||||
selector: td:nth-child(2)
|
|
||||||
remove: a, img
|
|
||||||
filters:
|
|
||||||
- name: re_replace
|
|
||||||
args: ["(?i)(0.5x|2x|3x|4x)", ""]
|
|
||||||
description:
|
|
||||||
case:
|
|
||||||
img[src$="/pic/yes.png"]: "Verified: {{ if .Result.genre }}{{ .Result.genre }}<br>{{ else }}{{ end }}{{ .Result.title_hungarian }}"
|
|
||||||
img[src$="/pic/nincs.png"]: "Unverified: {{ if .Result.genre }}{{ .Result.genre }}<br>{{ else }}{{ end }}{{ .Result.title_hungarian }}"
|
|
||||||
minimumratio:
|
|
||||||
text: 1.0
|
|
||||||
minimumseedtime:
|
|
||||||
# 2 days (as seconds = 2 x 24 x 60 x 60)
|
|
||||||
text: 172800
|
|
||||||
# engine n/a
|
|
||||||
@@ -1,341 +0,0 @@
|
|||||||
---
|
|
||||||
id: marinetracker
|
|
||||||
name: Marine Tracker
|
|
||||||
description: "Marine Tracker is a RUSSIAN Semi-Private Torrent Tracker for MARITIME E-LEARNING"
|
|
||||||
language: ru-RU
|
|
||||||
type: semi-private
|
|
||||||
encoding: UTF-8
|
|
||||||
links:
|
|
||||||
- https://seatracker.ru/
|
|
||||||
|
|
||||||
caps:
|
|
||||||
categorymappings:
|
|
||||||
- {id: 5, cat: Books, desc: "Shipbuilding & Shiprepairing"}
|
|
||||||
- {id: 314, cat: Books, desc: "Shipbuilding & Shiprepairing-Ship supply (chemicals, paints, oils)"}
|
|
||||||
- {id: 313, cat: Books, desc: "Shipbuilding & Shiprepairing-Shipbuilding materials"}
|
|
||||||
- {id: 312, cat: Books, desc: "Shipbuilding & Shiprepairing-Shipbuilding Management"}
|
|
||||||
- {id: 311, cat: Books, desc: "Shipbuilding & Shiprepairing-Mathematical Modeling"}
|
|
||||||
- {id: 310, cat: Books, desc: "Shipbuilding & Shiprepairing-Hydrodynamics"}
|
|
||||||
- {id: 309, cat: Books, desc: "Shipbuilding & Shiprepairing-Naval Architecture & Marine Engineering"}
|
|
||||||
- {id: 308, cat: Books, desc: "Shipbuilding & Shiprepairing-Shipbuilding Standard @ Register"}
|
|
||||||
- {id: 196, cat: Books, desc: "Shipbuilding & Shiprepairing-Welding"}
|
|
||||||
- {id: 195, cat: Books, desc: "Shipbuilding & Shiprepairing-Turnary"}
|
|
||||||
- {id: 226, cat: Books, desc: "Mobile Apps for Seafarers"}
|
|
||||||
- {id: 6, cat: PC, desc: "Maritime Software"}
|
|
||||||
- {id: 12, cat: PC, desc: "Maritime Software-Answers to tests"}
|
|
||||||
- {id: 211, cat: PC, desc: "Maritime Software-Navigation soft & Charts"}
|
|
||||||
- {id: 13, cat: PC, desc: "Maritime Software-Marine Tests"}
|
|
||||||
- {id: 19, cat: PC, desc: "Maritime Software-Training software"}
|
|
||||||
- {id: 14, cat: PC, desc: "Maritime Software-Maritime Simulators"}
|
|
||||||
- {id: 20, cat: PC, desc: "Maritime Software-Calculation soft"}
|
|
||||||
- {id: 179, cat: PC, desc: "Maritime Software-Programming and SDK software"}
|
|
||||||
- {id: 317, cat: PC, desc: "Maritime Software-Shareware (demo, trial)"}
|
|
||||||
- {id: 188, cat: PC, desc: "Maritime Software-Other soft"}
|
|
||||||
- {id: 21, cat: Books, desc: "Deckofficer's Library"}
|
|
||||||
- {id: 283, cat: Books, desc: "Deckofficer's Library-Radar at sea"}
|
|
||||||
- {id: 114, cat: Books, desc: "Deckofficer's Library-Watch keeping"}
|
|
||||||
- {id: 115, cat: Books, desc: "Deckofficer's Library-Keeping the ship documentation"}
|
|
||||||
- {id: 32, cat: Books, desc: "Deckofficer's Library-Cargo operations"}
|
|
||||||
- {id: 34, cat: Books, desc: "Deckofficer's Library-Navigation"}
|
|
||||||
- {id: 35, cat: Books, desc: "Deckofficer's Library-Ship handling"}
|
|
||||||
- {id: 36, cat: Books, desc: "Deckofficer's Library-Technical equipment of navigation"}
|
|
||||||
- {id: 95, cat: Books, desc: "Deckofficer's Library-Hydrometeorology"}
|
|
||||||
- {id: 100, cat: Books, desc: "Deckofficer's Library-Ship Theory"}
|
|
||||||
- {id: 110, cat: Books, desc: "Deckofficer's Library-Nautical Astronomy"}
|
|
||||||
- {id: 94, cat: Books, desc: "Deckofficer's Library-Nautical charts, tables, sailing directions"}
|
|
||||||
- {id: 116, cat: Books, desc: "Deckofficer's Library-Global Maritime Distress and Safety System (GMDSS)"}
|
|
||||||
- {id: 192, cat: Books, desc: "Deckofficer's Library-Navigation in the ice"}
|
|
||||||
- {id: 42, cat: Books, desc: "Safety of Navigation"}
|
|
||||||
- {id: 307, cat: Books, desc: "Safety of Navigation-Life Safety at Sea"}
|
|
||||||
- {id: 306, cat: Books, desc: "Safety of Navigation-Casualties and Incidents"}
|
|
||||||
- {id: 305, cat: Books, desc: "Safety of Navigation-Safety Digest, Lessons from Marine Accident Reports"}
|
|
||||||
- {id: 304, cat: Books, desc: "Safety of Navigation-Fire fighting at sea"}
|
|
||||||
- {id: 303, cat: Books, desc: "Safety of Navigation-Anti-Piracy Security"}
|
|
||||||
- {id: 302, cat: Books, desc: "Safety of Navigation-Emergency and life-saving equipment"}
|
|
||||||
- {id: 301, cat: Books, desc: "Safety of Navigation-Cybersecurity"}
|
|
||||||
- {id: 8, cat: Movies, desc: "Video for Seamen"}
|
|
||||||
- {id: 234, cat: Movies, desc: "Video for Seamen-Video for Deck Officers"}
|
|
||||||
- {id: 233, cat: Movies, desc: "Video for Seamen-Video for Marine Engineers"}
|
|
||||||
- {id: 235, cat: Movies, desc: "Video for Seamen-Other videos"}
|
|
||||||
- {id: 102, cat: Books, desc: "Marine Engineer's Library"}
|
|
||||||
- {id: 316, cat: Books, desc: "Marine Engineer's Library-Marine Fuels & Lubricants"}
|
|
||||||
- {id: 28, cat: Books, desc: Marine Engineer's Library-Ship's systems and mechanisms"}
|
|
||||||
- {id: 22, cat: Books, desc: Marine Engineer's Library-Daihatsu"}
|
|
||||||
- {id: 164, cat: Books, desc: Marine Engineer's Library-Operation of ship's power plants"}
|
|
||||||
- {id: 199, cat: Books, desc: Marine Engineer's Library-Ship Propulsion"}
|
|
||||||
- {id: 176, cat: Books, desc: Marine Engineer's Library-Marine refrigeration plants"}
|
|
||||||
- {id: 175, cat: Books, desc: Marine Engineer's Library-Marine boilers"}
|
|
||||||
- {id: 173, cat: Books, desc: Marine Engineer's Library-MAK & Caterpillar"}
|
|
||||||
- {id: 166, cat: Books, desc: Marine Engineer's Library-Ship's steam and gas turbines"}
|
|
||||||
- {id: 134, cat: Books, desc: Marine Engineer's Library-Marine Pumps"}
|
|
||||||
- {id: 108, cat: Books, desc: Marine Engineer's Library-Hydraulics"}
|
|
||||||
- {id: 16, cat: Books, desc: Marine Engineer's Library-MAN B&W"}
|
|
||||||
- {id: 17, cat: Books, desc: Marine Engineer's Library-Wärtsilä & Sulzer"}
|
|
||||||
- {id: 10, cat: Books, desc: "English for seamen"}
|
|
||||||
- {id: 266, cat: Books, desc: "English for seamen-English for Deck Officers"}
|
|
||||||
- {id: 267, cat: Books, desc: "English for seamen-English for Marine Engineers"}
|
|
||||||
- {id: 268, cat: Books, desc: "English for seamen-English for ETO's"}
|
|
||||||
- {id: 269, cat: Books, desc: "English for seamen-English for Shipbuilders"}
|
|
||||||
- {id: 270, cat: Books, desc: "English for seamen-RU↔EN dictionaries & phrasebooks"}
|
|
||||||
- {id: 265, cat: Books, desc: "English for seamen-Marine dictionaries and glossaries RU↔RU/EN↔EN"}
|
|
||||||
- {id: 271, cat: Books, desc: "English for seamen-Business English and Correspondence"}
|
|
||||||
- {id: 205, cat: Books, desc: "General english"}
|
|
||||||
- {id: 101, cat: Books, desc: "Electrical Technical Officer's Library"}
|
|
||||||
- {id: 29, cat: Books, desc: "Electrical Technical Officer's Library-Marine Electronics"}
|
|
||||||
- {id: 103, cat: Books, desc: "Electrical Technical Officer's Library-Ship's automatics"}
|
|
||||||
- {id: 104, cat: Books, desc: "Electrical Technical Officer's Library-Electrical machines"}
|
|
||||||
- {id: 210, cat: Books, desc: "Electrical Technical Officer's Library-Programmable Logic Controllers (PLC)"}
|
|
||||||
- {id: 172, cat: Books, desc: "Electrical Technical Officer's Library-Incinerators"}
|
|
||||||
- {id: 167, cat: Books, desc: "Electrical Technical Officer's Library-Cranes"}
|
|
||||||
- {id: 107, cat: Books, desc: "Electrical Technical Officer's Library-ETO Handbooks"}
|
|
||||||
- {id: 105, cat: Books, desc: "Electrical Technical Officer's Library-Sources of electricity"}
|
|
||||||
- {id: 37, cat: Books, desc: "Organization and management of maritime transport"}
|
|
||||||
- {id: 11, cat: Books, desc: "Section for cadets"}
|
|
||||||
- {id: 285, cat: Books, desc: "Section for cadets-Encyclopedias and atlases"}
|
|
||||||
- {id: 191, cat: Books, desc: "Maritime Law"}
|
|
||||||
- {id: 329, cat: Books, desc: "Maritime Law-Lloyd's, ABS, BV, DNV-GL, TÜV, NKK, RMRS and other approvals"}
|
|
||||||
- {id: 240, cat: Books, desc: "Maritime Law-IMO Resolutions"}
|
|
||||||
- {id: 212, cat: Books, desc: "Ship's documentation"}
|
|
||||||
- {id: 190, cat: Books, desc: "Catalogs"}
|
|
||||||
- {id: 113, cat: Books, desc: "Medicine"}
|
|
||||||
- {id: 299, cat: Books, desc: "Sailing Kitchen"}
|
|
||||||
- {id: 39, cat: Books, desc: "Purpose-built ships"}
|
|
||||||
- {id: 51, cat: Books, desc: "Purpose-built ships-Oil & Chemical Tankers"}
|
|
||||||
- {id: 52, cat: Books, desc: "Purpose-built ships-Dry cargo vessels"}
|
|
||||||
- {id: 250, cat: Books, desc: "Purpose-built ships-LNG \ LPG"}
|
|
||||||
- {id: 284, cat: Books, desc: "Purpose-built ships-Nuclear powered ships"}
|
|
||||||
- {id: 54, cat: Books, desc: "Purpose-built ships-Passenger ships"}
|
|
||||||
- {id: 248, cat: Books, desc: "Purpose-built ships-Fishing vessels"}
|
|
||||||
- {id: 239, cat: Books, desc: "Purpose-built ships-Offshore"}
|
|
||||||
- {id: 349, cat: Books, desc: "Purpose-built ships-Dynamic positioning vessels"}
|
|
||||||
- {id: 330, cat: Books, desc: "Examinations"}
|
|
||||||
- {id: 333, cat: Books, desc: "Examinations-IMU CET"}
|
|
||||||
- {id: 334, cat: Books, desc: "Examinations-NCV"}
|
|
||||||
- {id: 336, cat: Books, desc: "Examinations-ASM"}
|
|
||||||
- {id: 337, cat: Books, desc: "Examinations-TME"}
|
|
||||||
- {id: 338, cat: Books, desc: "Examinations-MEO"}
|
|
||||||
- {id: 341, cat: Books, desc: "Examinations-Chief Mates (Phase I)"}
|
|
||||||
- {id: 343, cat: Books, desc: "Examinations-ROR - Colregs"}
|
|
||||||
- {id: 335, cat: Books, desc: "Examinations-Second Mates"}
|
|
||||||
- {id: 342, cat: Books, desc: "Examinations-Chief Mates (Phase II)"}
|
|
||||||
- {id: 340, cat: Books, desc: "Examinations-Text books"}
|
|
||||||
- {id: 339, cat: Books, desc: "Examinations-Miscellaneous"}
|
|
||||||
- {id: 99, cat: Audio, desc: "Audio"}
|
|
||||||
- {id: 288, cat: Audio, desc: "Audio-♬ Music"}
|
|
||||||
- {id: 287, cat: Audio, desc: "Audio-Non-Fiction"}
|
|
||||||
- {id: 286, cat: Audio, desc: "Audio-Fiction"}
|
|
||||||
- {id: 111, cat: Books, desc: "Yachting, sailing, boating"}
|
|
||||||
- {id: 345, cat: Books, desc: "Yachting, sailing, boating-Solar boats"}
|
|
||||||
- {id: 318, cat: Books, desc: "Yachting, sailing, boating-Sailing life"}
|
|
||||||
- {id: 300, cat: Books, desc: "Yachting, sailing, boating-RYA"}
|
|
||||||
- {id: 298, cat: Books, desc: "Yachting, sailing, boating-Cruising Guides"}
|
|
||||||
- {id: 297, cat: Books, desc: "Yachting, sailing, boating-Weather Sailing"}
|
|
||||||
- {id: 296, cat: Books, desc: "Yachting, sailing, boating-How to Buy a Boat?"}
|
|
||||||
- {id: 258, cat: Books, desc: "Yachting, sailing, boating-Inflatable boats, boats, kayaks"}
|
|
||||||
- {id: 237, cat: Books, desc: "Yachting, sailing, boating-Yachting, sailing videos"}
|
|
||||||
- {id: 257, cat: Books, desc: "Yachting, sailing, boating-Motor Boat & Yachting magazines"}
|
|
||||||
- {id: 253, cat: Books, desc: "Yachting, sailing, boating-Seamanship practice"}
|
|
||||||
- {id: 254, cat: Books, desc: "Yachting, sailing, boating-Repair and Restoration"}
|
|
||||||
- {id: 255, cat: Books, desc: "Yachting, sailing, boating-Sailing Alone"}
|
|
||||||
- {id: 256, cat: Books, desc: "Yachting, sailing, boating-Rigging, sails, knots"}
|
|
||||||
- {id: 252, cat: Books, desc: "Yachting, sailing, boating-Projects, design, construction"}
|
|
||||||
- {id: 251, cat: Books, desc: "Diving"}
|
|
||||||
- {id: 177, cat: Books, desc: "Shipmodeling"}
|
|
||||||
- {id: 352, cat: Books, desc: "Shipmodeling-Paper models"}
|
|
||||||
- {id: 293, cat: Books, desc: "Shipmodeling-Radio controlled models"}
|
|
||||||
- {id: 292, cat: Books, desc: "Shipmodeling-Marine Modelling Magazines"}
|
|
||||||
- {id: 291, cat: Books, desc: "Shipmodeling-Drawings and models of ships (CAD, 3D)"}
|
|
||||||
- {id: 346, cat: Books, desc: "Shipmodeling-Raster drawings (JPG, PDF, TIFF)"}
|
|
||||||
- {id: 290, cat: Books, desc: "Shipmodeling-Reference Material"}
|
|
||||||
- {id: 289, cat: Books, desc: "Shipmodeling-Ships in Bottles"}
|
|
||||||
- {id: 197, cat: Books, desc: "Marine bulletins"}
|
|
||||||
- {id: 219, cat: Books, desc: "Marine History"}
|
|
||||||
- {id: 347, cat: Books, desc: "Marine History-Sea Life"}
|
|
||||||
- {id: 281, cat: Books, desc: "Marine History-History of Merchant Marine"}
|
|
||||||
- {id: 259, cat: Books, desc: "Marine History-Shipbuilding history"}
|
|
||||||
- {id: 273, cat: Books, desc: "Marine History-History of Seafaring"}
|
|
||||||
- {id: 275, cat: Books, desc: "Marine History-Accidents and disasters at sea"}
|
|
||||||
- {id: 264, cat: Books, desc: "Marine History-Marine cartography"}
|
|
||||||
- {id: 274, cat: Books, desc: "Marine History-Pirates"}
|
|
||||||
- {id: 282, cat: Books, desc: "Fleets history"}
|
|
||||||
- {id: 370, cat: Books, desc: "Fleets history-Maritime museums of the world"}
|
|
||||||
- {id: 357, cat: Books, desc: "Fleets history-China"}
|
|
||||||
- {id: 354, cat: Books, desc: "Fleets history-USA"}
|
|
||||||
- {id: 356, cat: Books, desc: "Fleets history-Russia | USSR"}
|
|
||||||
- {id: 358, cat: Books, desc: "Fleets history-India"}
|
|
||||||
- {id: 355, cat: Books, desc: "Fleets history-Japan"}
|
|
||||||
- {id: 364, cat: Books, desc: "Fleets history-The United Kingdom"}
|
|
||||||
- {id: 359, cat: Books, desc: "Fleets history-Germany"}
|
|
||||||
- {id: 360, cat: Books, desc: "Fleets history-France"}
|
|
||||||
- {id: 368, cat: Books, desc: "Fleets history-Netherlands"}
|
|
||||||
- {id: 369, cat: Books, desc: "Fleets history-Spain"}
|
|
||||||
- {id: 277, cat: Books, desc: "Wars at Sea"}
|
|
||||||
- {id: 276, cat: Books, desc: "Wars at Sea-War at sea (World War I)"}
|
|
||||||
- {id: 261, cat: Books, desc: "Wars at Sea-War at sea (World War II)"}
|
|
||||||
- {id: 363, cat: Books, desc: "Wars at Sea-Russo-Japanese War"}
|
|
||||||
- {id: 362, cat: Books, desc: "History of Naval Shipbuilding"}
|
|
||||||
- {id: 280, cat: Books, desc: "History of Naval Shipbuilding-Historic ships"}
|
|
||||||
- {id: 279, cat: Books, desc: "History of Naval Shipbuilding-Marine vessels"}
|
|
||||||
- {id: 278, cat: Books, desc: "History of Naval Shipbuilding-Warships"}
|
|
||||||
- {id: 351, cat: Books, desc: "History of Naval Shipbuilding-Battleships"}
|
|
||||||
- {id: 353, cat: Books, desc: "History of Naval Shipbuilding-Cruisers"}
|
|
||||||
- {id: 365, cat: Books, desc: "History of Naval Shipbuilding-Aircraft carriers"}
|
|
||||||
- {id: 366, cat: Books, desc: "History of Naval Shipbuilding-Destroyers"}
|
|
||||||
- {id: 367, cat: Books, desc: "History of Naval Shipbuilding-Frigates"}
|
|
||||||
- {id: 371, cat: Books, desc: "History of Naval Shipbuilding-Combat boats"}
|
|
||||||
- {id: 372, cat: Books, desc: "History of Naval Shipbuilding-Coastal defense ships"}
|
|
||||||
- {id: 262, cat: Books, desc: "History of Naval Shipbuilding-The history of sailing ships"}
|
|
||||||
- {id: 323, cat: Books, desc: "History of Naval Shipbuilding-History of Submarines"}
|
|
||||||
- {id: 198, cat: Books, desc: "Navy"}
|
|
||||||
- {id: 260, cat: Books, desc: "Navy-Naval shipbuilding (1950 - 20??)"}
|
|
||||||
- {id: 272, cat: Books, desc: "Navy-Naval magazines"}
|
|
||||||
- {id: 218, cat: Books, desc: "Maritime Fiction"}
|
|
||||||
- {id: 243, cat: Books, desc: "Rarity"}
|
|
||||||
- {id: 244, cat: Books, desc: "Rarity-1900 - 1950"}
|
|
||||||
- {id: 245, cat: Books, desc: "Rarity-1800 - 1900"}
|
|
||||||
- {id: 246, cat: Books, desc: "Rarity-1700 - 1800"}
|
|
||||||
- {id: 247, cat: Books, desc: "Rarity-1600 - 1700"}
|
|
||||||
- {id: 220, cat: Books, desc: "Fishing & Spearfishing"}
|
|
||||||
- {id: 319, cat: Books, desc: "Fishing tackle and knots"}
|
|
||||||
- {id: 294, cat: Books, desc: "Environmental protection"}
|
|
||||||
- {id: 7, cat: Books, desc: "Technical Books (Not maritime)"}
|
|
||||||
- {id: 328, cat: Books, desc: "Technical Books (Not maritime)-Hydraulics"}
|
|
||||||
- {id: 327, cat: Books, desc: "Technical Books (Not maritime)-Mechanics"}
|
|
||||||
- {id: 326, cat: Books, desc: "Technical Books (Not maritime)-Electricity"}
|
|
||||||
- {id: 242, cat: Books, desc: "Foreign language books"}
|
|
||||||
- {id: 344, cat: Books, desc: "Foreign language books-Yachting"}
|
|
||||||
- {id: 350, cat: Other, desc: "Art"}
|
|
||||||
- {id: 324, cat: Other, desc: "Posters, placards, signs"}
|
|
||||||
- {id: 187, cat: Books, desc: "Others (not maritime)"}
|
|
||||||
- {id: 38, cat: Books, desc: "Archive-Uncategorized"}
|
|
||||||
- {id: 162, cat: Books, desc: "Archive"}
|
|
||||||
# - {id: 325, cat: Other, desc: "Corrupt torrents (hash errors)"} # we filter these out in the rows selector
|
|
||||||
- {id: 322, cat: Books, desc: "Archive-No seeds"}
|
|
||||||
- {id: 321, cat: Books, desc: "Archive-Outdated software"}
|
|
||||||
- {id: 295, cat: Books, desc: "Archive-Unregistered"}
|
|
||||||
|
|
||||||
modes:
|
|
||||||
search: [q]
|
|
||||||
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 and 50% freeleech only
|
|
||||||
default: false
|
|
||||||
- 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: flaresolverr
|
|
||||||
type: info
|
|
||||||
label: FlareSolverr
|
|
||||||
default: This site may use Cloudflare DDoS Protection, therefore Prowlarr requires <a href="https://wiki.servarr.com/prowlarr/faq#can-i-use-flaresolverr-indexers" target="_blank" rel="noreferrer">FlareSolverr</a> to access it.
|
|
||||||
|
|
||||||
login:
|
|
||||||
path: /
|
|
||||||
method: form
|
|
||||||
form: form.logform
|
|
||||||
inputs:
|
|
||||||
login_username: "{{ .Config.username }}"
|
|
||||||
login_password: "{{ .Config.password }}"
|
|
||||||
autologin: 1
|
|
||||||
error:
|
|
||||||
- selector: div#error_fon
|
|
||||||
test:
|
|
||||||
path: /
|
|
||||||
selector: a[href^="/./login.php?logout="]
|
|
||||||
|
|
||||||
search:
|
|
||||||
paths:
|
|
||||||
- path: tracker.php
|
|
||||||
method: post
|
|
||||||
inputs:
|
|
||||||
$raw: "{{ if .Categories }}{{ range .Categories }}f[]={{.}}&{{end}}{{ else }}f[]=-1{{ end }}"
|
|
||||||
nm: "{{ .Keywords }}"
|
|
||||||
allw: 1
|
|
||||||
o: "{{ .Config.sort }}"
|
|
||||||
s: "{{ .Config.type }}"
|
|
||||||
tm: -1
|
|
||||||
sns: -1
|
|
||||||
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_dl: 1
|
|
||||||
prev_ds: 0
|
|
||||||
prev_tor_type: 0
|
|
||||||
df: 1
|
|
||||||
da: 1
|
|
||||||
dl: 1
|
|
||||||
tor_type: "{{ if .Config.freeleech }}1{{ else }}{{ end }}"
|
|
||||||
submit: "%C2%A0%C2%A0Search%C2%A0%C2%A0"
|
|
||||||
|
|
||||||
rows:
|
|
||||||
selector: tr[id^="tor_"]:has(a[href^="./download.php?id="]):not(:has(a[href="tracker.php?f=325"]))
|
|
||||||
|
|
||||||
fields:
|
|
||||||
title:
|
|
||||||
selector: a.tLink
|
|
||||||
details:
|
|
||||||
selector: a.tLink
|
|
||||||
attribute: href
|
|
||||||
download:
|
|
||||||
selector: a[href^="./download.php?id="]
|
|
||||||
attribute: href
|
|
||||||
category:
|
|
||||||
selector: td a.gen
|
|
||||||
attribute: href
|
|
||||||
filters:
|
|
||||||
- name: querystring
|
|
||||||
args: f
|
|
||||||
description:
|
|
||||||
selector: td span.iconDL
|
|
||||||
size_optional:
|
|
||||||
selector: td:nth-last-child(5) > u
|
|
||||||
optional: true
|
|
||||||
size:
|
|
||||||
text: "{{ if .Result.size_optional }}{{ .Result.size_optional }}{{ else }}0 B{{ end }}"
|
|
||||||
seeders:
|
|
||||||
selector: td.seedmed
|
|
||||||
leechers:
|
|
||||||
selector: td.leechmed
|
|
||||||
grabs:
|
|
||||||
selector: td:nth-last-child(2)
|
|
||||||
date:
|
|
||||||
selector: td:last-child > u
|
|
||||||
downloadvolumefactor:
|
|
||||||
case:
|
|
||||||
img[src="images/tor_gold.gif"]: 0
|
|
||||||
img[src="images/tor_silver.gif"]: 0.5
|
|
||||||
"*": 1
|
|
||||||
uploadvolumefactor:
|
|
||||||
text: 1
|
|
||||||
# Engine n/a
|
|
||||||
@@ -1,173 +0,0 @@
|
|||||||
---
|
|
||||||
id: masters-tb
|
|
||||||
name: Masters-TB
|
|
||||||
description: "Masters-TB is a BULGARIAN Semi-Private Torrent Tracker for 0DAY / GENERAL"
|
|
||||||
language: bg-BG
|
|
||||||
type: semi-private
|
|
||||||
encoding: windows-1251
|
|
||||||
links:
|
|
||||||
- https://masters-tb.com/
|
|
||||||
|
|
||||||
caps:
|
|
||||||
categorymappings:
|
|
||||||
- {id: 23, cat: TV/Anime, desc: "Анимации"}
|
|
||||||
- {id: 56, cat: PC/Mobile-Android, desc: "Android"}
|
|
||||||
- {id: 53, cat: Books/EBook, desc: "e-Books"}
|
|
||||||
- {id: 17, cat: Console, desc: "Игри/конзоли"}
|
|
||||||
- {id: 4, cat: PC/Games, desc: "Игри/PC ISO"}
|
|
||||||
- {id: 21, cat: PC/Games, desc: "Игри/PC Rip"}
|
|
||||||
- {id: 1, cat: PC/ISO, desc: "Програми/PC ISO"}
|
|
||||||
- {id: 22, cat: PC, desc: "Програми/други"}
|
|
||||||
- {id: 57, cat: TV, desc: "Препоръчано MastersTB"}
|
|
||||||
- {id: 57, cat: Movies, desc: "Препоръчано MastersTB"}
|
|
||||||
- {id: 6, cat: Audio, desc: "Музика"}
|
|
||||||
- {id: 12, cat: Audio/Video, desc: "Музика/Видео"}
|
|
||||||
- {id: 33, cat: Audio/Video, desc: "Музика/DVD-R"}
|
|
||||||
- {id: 52, cat: Audio/Lossless, desc: "Музика/Lossless"}
|
|
||||||
- {id: 35, cat: TV, desc: "Сериали/BoxSet"}
|
|
||||||
- {id: 7, cat: TV, desc: "Сериали/TV"}
|
|
||||||
- {id: 32, cat: Movies, desc: "Филми/БГ"}
|
|
||||||
- {id: 55, cat: Movies, desc: "Филми/Asian"}
|
|
||||||
- {id: 36, cat: Movies, desc: "Филми/BoxSet"}
|
|
||||||
- {id: 28, cat: Movies, desc: "Филми/Руски"}
|
|
||||||
- {id: 34, cat: Movies/DVD, desc: "Филми/Руски DVD-R"}
|
|
||||||
- {id: 20, cat: Movies/DVD, desc: "Филми/DVD-R"}
|
|
||||||
- {id: 37, cat: Movies/HD, desc: "Филми/HD"}
|
|
||||||
- {id: 30, cat: TV/Sport, desc: "Филми/Спорт"}
|
|
||||||
- {id: 19, cat: Movies/SD, desc: "Филми/XviD"}
|
|
||||||
- {id: 29, cat: TV/Documentary, desc: "Филми/Документални"}
|
|
||||||
- {id: 54, cat: TV, desc: "TV Show"}
|
|
||||||
- {id: 2, cat: Other, desc: "Други"}
|
|
||||||
|
|
||||||
modes:
|
|
||||||
search: [q]
|
|
||||||
tv-search: [q, season, ep]
|
|
||||||
movie-search: [q]
|
|
||||||
music-search: [q]
|
|
||||||
book-search: [q]
|
|
||||||
|
|
||||||
settings:
|
|
||||||
- name: cookie
|
|
||||||
type: text
|
|
||||||
label: Cookie
|
|
||||||
- name: info
|
|
||||||
type: info
|
|
||||||
label: How to get the Cookie
|
|
||||||
default: "<ol><li>Login to this tracker with your browser</li><li>Open the <b>DevTools</b> panel by pressing <b>F12</b></li><li>Select the <b>Network</b> tab</li><li>Click on the <b>Doc</b> button (Chrome Browser) or <b>HTML</b> button (FireFox)</li><li>Refresh the page by pressing <b>F5</b></li><li>Click on the first row entry</li><li>Select the <b>Headers</b> tab on the Right panel</li><li>Find <b>'cookie:'</b> in the <b>Request Headers</b> section</li><li><b>Select</b> and <b>Copy</b> the whole cookie string <i>(everything after 'cookie: ')</i> and <b>Paste</b> here.</li></ol>"
|
|
||||||
- name: freeleech
|
|
||||||
type: checkbox
|
|
||||||
label: 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
|
|
||||||
- name: info_tpp
|
|
||||||
type: info
|
|
||||||
label: Results Per Page
|
|
||||||
default: For best results, change the <b>Tоренти на страница:</b> setting to <b>100</b> on your account profile. The default is <i>20</i>.
|
|
||||||
|
|
||||||
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 }}cat{{.}}=1&{{end}}"
|
|
||||||
search: "{{ .Keywords }}"
|
|
||||||
# 0 active, 1 all, 2 dead
|
|
||||||
incldead: 1
|
|
||||||
# 0 name, 1 descr
|
|
||||||
searchrs: 0
|
|
||||||
sort: "{{ .Config.sort }}"
|
|
||||||
type: "{{ .Config.type }}"
|
|
||||||
|
|
||||||
rows:
|
|
||||||
selector: "table[width=\"65%\\\"\"]:nth-child(3) > tbody > tr[onmouseover]{{ if .Config.freeleech }}:has(img[src=\"pic/freeleech.png\"]){{ else }}{{ end }}"
|
|
||||||
|
|
||||||
fields:
|
|
||||||
category:
|
|
||||||
selector: a[href^="browse.php?cat="]
|
|
||||||
attribute: href
|
|
||||||
filters:
|
|
||||||
- name: querystring
|
|
||||||
args: cat
|
|
||||||
title_default:
|
|
||||||
selector: a[href^="download.php?id="]
|
|
||||||
attribute: href
|
|
||||||
filters:
|
|
||||||
- name: querystring
|
|
||||||
args: name
|
|
||||||
- name: regexp
|
|
||||||
args: ^(.+?)\.torrent
|
|
||||||
title_optional:
|
|
||||||
selector: a[href^="details.php?id="]
|
|
||||||
optional: true
|
|
||||||
title:
|
|
||||||
text: "{{ if .Result.title_optional }}{{ .Result.title_optional }}{{ else }}{{ .Result.title_default }}{{ end }}"
|
|
||||||
details:
|
|
||||||
selector: a[href^="details.php?id="]
|
|
||||||
attribute: href
|
|
||||||
download:
|
|
||||||
selector: a[href^="download.php?id="]
|
|
||||||
attribute: href
|
|
||||||
magnet:
|
|
||||||
selector: a[href^="magnet:?xt="]
|
|
||||||
optional: true
|
|
||||||
attribute: href
|
|
||||||
poster:
|
|
||||||
selector: a[href^="details.php?id="]
|
|
||||||
attribute: onmouseover
|
|
||||||
filters:
|
|
||||||
- name: regexp
|
|
||||||
args: src=([^\s]+)
|
|
||||||
- name: replace
|
|
||||||
args: ["pic/not-available.jpg>');", ""]
|
|
||||||
files:
|
|
||||||
selector: td:nth-last-child(8)
|
|
||||||
date:
|
|
||||||
# 2023-05-19<br/>14:10:17
|
|
||||||
selector: td:nth-last-child(6)
|
|
||||||
filters:
|
|
||||||
- name: append
|
|
||||||
args: " +02:00" # EET
|
|
||||||
- name: dateparse
|
|
||||||
args: "yyyy-MM-ddHH:mm:ss zzz"
|
|
||||||
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:
|
|
||||||
img[src="pic/freeleech.png"]: 0
|
|
||||||
"*": 1
|
|
||||||
uploadvolumefactor:
|
|
||||||
text: 1
|
|
||||||
minimumratio:
|
|
||||||
text: 1.0
|
|
||||||
description:
|
|
||||||
selector: td:has(a[href^="details.php?id="])
|
|
||||||
remove: a
|
|
||||||
# engine tbd
|
|
||||||
@@ -1,166 +0,0 @@
|
|||||||
---
|
|
||||||
id: mdan
|
|
||||||
name: MDAN
|
|
||||||
description: "Mansão dos Animes (MDAN) is a BRAZILIAN Private Torrent Tracker for ANIME"
|
|
||||||
language: pt-BR
|
|
||||||
type: private
|
|
||||||
encoding: UTF-8
|
|
||||||
links:
|
|
||||||
- https://bt.mdan.org/
|
|
||||||
|
|
||||||
caps:
|
|
||||||
categorymappings:
|
|
||||||
- {id: 5, cat: TV/Anime, desc: "Animes Completo"}
|
|
||||||
- {id: 1, cat: TV/Anime, desc: "Animes Episódios"}
|
|
||||||
- {id: 2, cat: TV/Anime, desc: "Animes OVAs"}
|
|
||||||
- {id: 3, cat: Movies, desc: "Filmes"}
|
|
||||||
- {id: 6, cat: Movies/Other, desc: "Live"}
|
|
||||||
- {id: 7, cat: Books/Comics, desc: "Mangá"}
|
|
||||||
- {id: 4, cat: Audio, desc: "OST"}
|
|
||||||
|
|
||||||
modes:
|
|
||||||
search: [q]
|
|
||||||
tv-search: [q, season, ep]
|
|
||||||
movie-search: [q]
|
|
||||||
music-search: [q]
|
|
||||||
book-search: [q]
|
|
||||||
|
|
||||||
settings:
|
|
||||||
- name: username
|
|
||||||
type: text
|
|
||||||
label: Username
|
|
||||||
- name: password
|
|
||||||
type: password
|
|
||||||
label: Password
|
|
||||||
- name: freeleech
|
|
||||||
type: checkbox
|
|
||||||
label: Search freeleech only
|
|
||||||
default: false
|
|
||||||
- name: sort
|
|
||||||
type: select
|
|
||||||
label: Sort requested from site
|
|
||||||
default: 4
|
|
||||||
options:
|
|
||||||
4: created
|
|
||||||
7: seeders
|
|
||||||
5: size
|
|
||||||
1: title
|
|
||||||
- name: type
|
|
||||||
type: select
|
|
||||||
label: Order requested from site
|
|
||||||
default: desc
|
|
||||||
options:
|
|
||||||
desc: desc
|
|
||||||
asc: asc
|
|
||||||
- name: info_tpp
|
|
||||||
type: info
|
|
||||||
label: Results Per Page
|
|
||||||
default: For best results, change the <b>Torrents por página (Torrents per Page):</b> setting to <b>100</b> on your Perfil (Profile). The default is <i>30</i>.
|
|
||||||
- name: info_activity
|
|
||||||
type: info
|
|
||||||
label: Account Inactivity
|
|
||||||
default: "Inactive accounts are automatically deleted."
|
|
||||||
|
|
||||||
login:
|
|
||||||
path: takelogin.php
|
|
||||||
method: post
|
|
||||||
inputs:
|
|
||||||
username: "{{ .Config.username }}"
|
|
||||||
password: "{{ .Config.password }}"
|
|
||||||
error:
|
|
||||||
- selector: :contains("incorret")
|
|
||||||
- selector: :root:contains("Too many users. Please")
|
|
||||||
test:
|
|
||||||
path: index.php
|
|
||||||
selector: a[href^="logout.php?hash_please="]
|
|
||||||
|
|
||||||
search:
|
|
||||||
paths:
|
|
||||||
- path: browse.php
|
|
||||||
inputs:
|
|
||||||
# note: site uses the catsX[]=nn method which cardigann does not support.
|
|
||||||
search: "{{ .Keywords }}"
|
|
||||||
# title, descr, genre, all
|
|
||||||
searchin: title
|
|
||||||
# 0 active, 1 incldead, 2 onlydead
|
|
||||||
incldead: 1
|
|
||||||
# 0 no, 1 yes
|
|
||||||
only_free: "{{ if .Config.freeleech }}1{{else}}{{end}}"
|
|
||||||
sort: "{{ .Config.sort }}"
|
|
||||||
type: "{{ .Config.type }}"
|
|
||||||
|
|
||||||
rows:
|
|
||||||
selector: table[style^="width"] > tbody > tr:has(a[href^="details.php?id="]), table[style^="width"] > tbody > tr[id^="kdescr"]
|
|
||||||
after: 1
|
|
||||||
|
|
||||||
fields:
|
|
||||||
category:
|
|
||||||
selector: a[href^="browse.php?cat="]
|
|
||||||
attribute: href
|
|
||||||
filters:
|
|
||||||
- name: querystring
|
|
||||||
args: cat
|
|
||||||
title:
|
|
||||||
# titles are abbreviated :-(
|
|
||||||
selector: a[href^="details.php?id="]
|
|
||||||
details:
|
|
||||||
selector: a[href^="details.php?id="]
|
|
||||||
attribute: href
|
|
||||||
_id:
|
|
||||||
selector: a[href^="details.php?id="]
|
|
||||||
attribute: href
|
|
||||||
filters:
|
|
||||||
- name: querystring
|
|
||||||
args: id
|
|
||||||
download:
|
|
||||||
text: "download.php?torrent={{ .Result._id }}&ssl=1"
|
|
||||||
poster:
|
|
||||||
selector: td:nth-child(9) img
|
|
||||||
attribute: src
|
|
||||||
date_day:
|
|
||||||
# 10:50<br/>Hoje
|
|
||||||
# 13:15<br/>Ontem
|
|
||||||
selector: td:nth-child(7):contains("e")
|
|
||||||
# auto adjusted by site account profile
|
|
||||||
optional: true
|
|
||||||
filters:
|
|
||||||
- name: replace
|
|
||||||
args: ["Hoje", "Today"]
|
|
||||||
- name: replace
|
|
||||||
args: ["Ontem", "Yesterday"]
|
|
||||||
date_year:
|
|
||||||
# 18:55<br/>03-05-2023
|
|
||||||
selector: td:nth-child(7):not(:contains("e"))
|
|
||||||
# auto adjusted by site account profile
|
|
||||||
optional: true
|
|
||||||
filters:
|
|
||||||
- name: dateparse
|
|
||||||
args: "HH:mm dd-MM-yyyy"
|
|
||||||
date:
|
|
||||||
text: "{{ if or .Result.date_day .Result.date_year }}{{ or .Result.date_day .Result.date_year }}{{ else }}now{{ end }}"
|
|
||||||
size:
|
|
||||||
selector: td:nth-child(6)
|
|
||||||
files:
|
|
||||||
selector: td:nth-child(5)
|
|
||||||
grabs:
|
|
||||||
selector: td:nth-child(4)
|
|
||||||
seeders_optional:
|
|
||||||
selector: a[href$="seeders"]
|
|
||||||
optional: true
|
|
||||||
seeders:
|
|
||||||
text: "{{ if .Result.seeders_optional }}{{ .Result.seeders_optional }}{{ else }}0{{ end }}"
|
|
||||||
leechers_optional:
|
|
||||||
selector: a[href$="leechers"]
|
|
||||||
optional: true
|
|
||||||
leechers:
|
|
||||||
text: "{{ if .Result.leechers_optional }}{{ .Result.leechers_optional }}{{ else }}0{{ end }}"
|
|
||||||
downloadvolumefactor:
|
|
||||||
case:
|
|
||||||
img[src="./pic/free.gif"]: 0
|
|
||||||
img[src="./pic/silver2.gif"]: 0.5
|
|
||||||
"*": 1
|
|
||||||
uploadvolumefactor:
|
|
||||||
text: 1
|
|
||||||
minimumratio:
|
|
||||||
text: 0.4
|
|
||||||
# U-232
|
|
||||||
@@ -1,230 +0,0 @@
|
|||||||
---
|
|
||||||
id: mvgroupforum
|
|
||||||
name: MVGroup Forum
|
|
||||||
description: "MVGroup is a Semi-Private site dedicated to UK TV and DOCUMENTARIES. This definition is for the Forum Tracker site."
|
|
||||||
language: en-US
|
|
||||||
type: semi-private
|
|
||||||
encoding: UTF-8
|
|
||||||
links:
|
|
||||||
- https://forums.mvgroup.org/
|
|
||||||
legacylinks:
|
|
||||||
- http://forums.mvgroup.org/
|
|
||||||
|
|
||||||
caps:
|
|
||||||
categories:
|
|
||||||
Other: Other
|
|
||||||
|
|
||||||
modes:
|
|
||||||
search: [q]
|
|
||||||
tv-search: [q, season, ep]
|
|
||||||
movie-search: [q]
|
|
||||||
|
|
||||||
settings:
|
|
||||||
- name: username
|
|
||||||
type: text
|
|
||||||
label: Username
|
|
||||||
- name: password
|
|
||||||
type: password
|
|
||||||
label: Password
|
|
||||||
- name: info_8000
|
|
||||||
type: info
|
|
||||||
label: About MVGroup Categories
|
|
||||||
default: MVGroup does not return categories in its search results.</br>To add to your Apps' Torznab indexer, replace all categories with 8000(Other).
|
|
||||||
- name: hidef
|
|
||||||
type: checkbox
|
|
||||||
label: Show MVGroup HiDef Releases only
|
|
||||||
default: false
|
|
||||||
- name: withsubs
|
|
||||||
type: select
|
|
||||||
label: Subtitles
|
|
||||||
default: _
|
|
||||||
options:
|
|
||||||
_: -OFF-
|
|
||||||
alb: Albanian
|
|
||||||
ara: Arabic
|
|
||||||
arm: Armenian
|
|
||||||
ass: Assyrian
|
|
||||||
bos: Bosnian
|
|
||||||
bul: Bulgarian
|
|
||||||
cat: Catalan
|
|
||||||
chi: "Chinese, simplified"
|
|
||||||
zho: "Chinese, traditional"
|
|
||||||
hrv: Croatian
|
|
||||||
cze: Czech
|
|
||||||
dan: Danish
|
|
||||||
dut: Dutch
|
|
||||||
eng: English
|
|
||||||
est: Estonian
|
|
||||||
fin: Finnish
|
|
||||||
fre: French
|
|
||||||
glg: Galician
|
|
||||||
geo: Georgian
|
|
||||||
ger: German
|
|
||||||
ell: Greek
|
|
||||||
heb: Hebrew
|
|
||||||
hin: Hindi
|
|
||||||
hun: Hungarian
|
|
||||||
ice: Icelandic
|
|
||||||
ind: Indonesian
|
|
||||||
ita: Italian
|
|
||||||
jpn: Japanese
|
|
||||||
kaz: Kazakh
|
|
||||||
kor: Korean
|
|
||||||
lav: Latvian
|
|
||||||
lit: Lithuanian
|
|
||||||
ltz: Luxembourgish
|
|
||||||
mac: Macedonian
|
|
||||||
may: Malay
|
|
||||||
nor: Norwegian
|
|
||||||
per: Persian
|
|
||||||
pol: Polish
|
|
||||||
por: Portuguese
|
|
||||||
rum: Romanian
|
|
||||||
rus: Russian
|
|
||||||
scc: Serbian
|
|
||||||
slo: Slovak
|
|
||||||
slv: Slovenian
|
|
||||||
spa: Spanish
|
|
||||||
swe: Swedish
|
|
||||||
tha: Thai
|
|
||||||
tur: Turkish
|
|
||||||
ukr: Ukrainian
|
|
||||||
vie: Vietnamese
|
|
||||||
- name: seed
|
|
||||||
type: checkbox
|
|
||||||
label: Only released and seeded torrents
|
|
||||||
default: false
|
|
||||||
- name: dropbbc
|
|
||||||
type: checkbox
|
|
||||||
label: Drop BBC & other channels from the front of result titles
|
|
||||||
default: false
|
|
||||||
- name: stripS01E01
|
|
||||||
type: checkbox
|
|
||||||
label: Strip the S01E01 from the Torznab search requests
|
|
||||||
default: false
|
|
||||||
- name: sort
|
|
||||||
type: select
|
|
||||||
label: Sort requested from site
|
|
||||||
default: added
|
|
||||||
options:
|
|
||||||
added: created
|
|
||||||
seeders: seeders
|
|
||||||
filename: title
|
|
||||||
- name: type
|
|
||||||
type: select
|
|
||||||
label: Order requested from site
|
|
||||||
default: DESC
|
|
||||||
options:
|
|
||||||
DESC: desc
|
|
||||||
ASC: asc
|
|
||||||
|
|
||||||
login:
|
|
||||||
path: index.php?act=Login&CODE=00
|
|
||||||
method: form
|
|
||||||
form: form[action$="act=Login&CODE=01"]
|
|
||||||
inputs:
|
|
||||||
UserName: "{{ .Config.username }}"
|
|
||||||
PassWord: "{{ .Config.password }}"
|
|
||||||
Privacy: 1
|
|
||||||
CookieDate: 1
|
|
||||||
CODE: 01
|
|
||||||
referer: "https://forums.mvgroup.org/index.php?"
|
|
||||||
act: Login
|
|
||||||
error:
|
|
||||||
- selector: div.borderwrap:has(div.tablepad)
|
|
||||||
message:
|
|
||||||
selector: div.borderwrap div.tablepad
|
|
||||||
test:
|
|
||||||
path: index.php
|
|
||||||
selector: tr td.nav_mem div span[id="member_menu"], a[href^="/maintracker.php?filter="]
|
|
||||||
|
|
||||||
search:
|
|
||||||
paths:
|
|
||||||
- path: forumtracker.php
|
|
||||||
inputs:
|
|
||||||
seed: "{{ if .Config.seed }}1{{ else }}0{{ end }}"
|
|
||||||
withsubs: "{{ re_replace .Config.withsubs \"_\" \"\" }}"
|
|
||||||
filter: "{{ if .Config.hidef }}hd+{{ else }}{{ end }}{{ .Keywords }}"
|
|
||||||
orderby: "{{ .Config.sort }}"
|
|
||||||
order: "{{ .Config.type }}"
|
|
||||||
keywordsfilters:
|
|
||||||
- name: re_replace
|
|
||||||
args: ["(?i)S01E01", "{{ if .Config.stripS01E01 }}{{ else }}S01E01{{ end }}"] # optionally remove S01E01 from search
|
|
||||||
|
|
||||||
rows:
|
|
||||||
selector: tr:has(a.magnetlink)
|
|
||||||
|
|
||||||
fields:
|
|
||||||
category:
|
|
||||||
text: Other
|
|
||||||
title_default:
|
|
||||||
# fallback title (to prevent abend if optional is not found)
|
|
||||||
text: "title not found"
|
|
||||||
title_optional:
|
|
||||||
optional: true
|
|
||||||
selector: td.doubleindent, td.singleindent a[href^="/index.php?showtopic="]
|
|
||||||
filters:
|
|
||||||
- name: re_replace
|
|
||||||
args: ["(?i)^BBC (.*)", "{{ if .Config.dropbbc }}{{ else }}BBC {{ end }}$1"]
|
|
||||||
- name: re_replace
|
|
||||||
args: ["(?i)^PBS (.*)", "{{ if .Config.dropbbc }}{{ else }}PBS {{ end }}$1"]
|
|
||||||
- name: re_replace
|
|
||||||
args: ["(?i)^CH5 (.*)", "{{ if .Config.dropbbc }}{{ else }}Ch5 {{ end }}$1"]
|
|
||||||
- name: re_replace
|
|
||||||
args: ["(?i)^CH4 (.*)", "{{ if .Config.dropbbc }}{{ else }}Ch4 {{ end }}$1"]
|
|
||||||
- name: re_replace
|
|
||||||
args: ["(?i)^DC (.*)", "{{ if .Config.dropbbc }}{{ else }}DC {{ end }}$1"]
|
|
||||||
- name: re_replace
|
|
||||||
args: ["(?i)^DW (.*)", "{{ if .Config.dropbbc }}{{ else }}DW {{ end }}$1"]
|
|
||||||
- name: re_replace
|
|
||||||
args: ["(?i)^HC (.*)", "{{ if .Config.dropbbc }}{{ else }}HC {{ end }}$1"]
|
|
||||||
- name: re_replace
|
|
||||||
args: ["(?i)^RTE (.*)", "{{ if .Config.dropbbc }}{{ else }}RTE {{ end }}$1"]
|
|
||||||
- name: re_replace
|
|
||||||
args: ["(?i)^ITV (.*)", "{{ if .Config.dropbbc }}{{ else }}ITV {{ end }}$1"]
|
|
||||||
- name: re_replace
|
|
||||||
args: ["(?i)^HBO (.*)", "{{ if .Config.dropbbc }}{{ else }}HBO {{ end }}$1"]
|
|
||||||
- name: re_replace
|
|
||||||
args: ["(?i)^NHK (.*)", "{{ if .Config.dropbbc }}{{ else }}NHK {{ end }}$1"]
|
|
||||||
- name: re_replace
|
|
||||||
args: ["(?i)^UKTV (.*)", "{{ if .Config.dropbbc }}{{ else }}UKTV {{ end }}$1"]
|
|
||||||
- name: re_replace
|
|
||||||
args: ["(?i)^NOVA (.*)", "{{ if .Config.dropbbc }}{{ else }}NOVA {{ end }}$1"]
|
|
||||||
- name: re_replace
|
|
||||||
args: ["(?i)^TV5Monde (.*)", "{{ if .Config.dropbbc }}{{ else }}TV5Monde {{ end }}$1"]
|
|
||||||
- name: re_replace
|
|
||||||
args: ["(?i)^Al-Jazeera (.*)", "{{ if .Config.dropbbc }}{{ else }}Al-Jazeera {{ end }}$1"]
|
|
||||||
- name: append
|
|
||||||
args: "{{ if .Config.stripS01E01 }}{{ else }} S01E01{{ end }}"
|
|
||||||
title:
|
|
||||||
text: "{{ if .Result.title_optional }}{{ .Result.title_optional }}{{ else }}{{ .Result.title_default }}{{ end }}"
|
|
||||||
details:
|
|
||||||
optional: true
|
|
||||||
selector: td.singleindent a[href^="/index.php?showtopic="]
|
|
||||||
attribute: href
|
|
||||||
download:
|
|
||||||
selector: td a.torrentlink
|
|
||||||
attribute: href
|
|
||||||
magnet:
|
|
||||||
selector: td a.magnetlink
|
|
||||||
attribute: href
|
|
||||||
size:
|
|
||||||
text: "512 MB"
|
|
||||||
date:
|
|
||||||
selector: td:nth-of-type(3)
|
|
||||||
filters:
|
|
||||||
- name: append
|
|
||||||
args: " +00:00" # GMT
|
|
||||||
- name: dateparse
|
|
||||||
args: "yyyy/MM/dd zzz"
|
|
||||||
seeders:
|
|
||||||
selector: td:nth-of-type(4)
|
|
||||||
leechers:
|
|
||||||
selector: td:nth-of-type(5)
|
|
||||||
grabs:
|
|
||||||
selector: td:nth-of-type(6)
|
|
||||||
downloadvolumefactor:
|
|
||||||
text: 0
|
|
||||||
uploadvolumefactor:
|
|
||||||
text: 1
|
|
||||||
# Invision Power Board
|
|
||||||
@@ -1,230 +0,0 @@
|
|||||||
---
|
|
||||||
id: mvgroupmain
|
|
||||||
name: MVGroup Main
|
|
||||||
description: "MVGroup is a Semi-Private site dedicated to UK TV and DOCUMENTARIES. This definition is for the Main Tracker site."
|
|
||||||
language: en-US
|
|
||||||
type: semi-private
|
|
||||||
encoding: UTF-8
|
|
||||||
links:
|
|
||||||
- https://forums.mvgroup.org/
|
|
||||||
legacylinks:
|
|
||||||
- http://forums.mvgroup.org/
|
|
||||||
|
|
||||||
caps:
|
|
||||||
categories:
|
|
||||||
Other: Other
|
|
||||||
|
|
||||||
modes:
|
|
||||||
search: [q]
|
|
||||||
tv-search: [q, season, ep]
|
|
||||||
movie-search: [q]
|
|
||||||
|
|
||||||
settings:
|
|
||||||
- name: username
|
|
||||||
type: text
|
|
||||||
label: Username
|
|
||||||
- name: password
|
|
||||||
type: password
|
|
||||||
label: Password
|
|
||||||
- name: info_8000
|
|
||||||
type: info
|
|
||||||
label: About MVGroup Categories
|
|
||||||
default: MVGroup does not return categories in its search results.</br>To add to your Apps' Torznab indexer, replace all categories with 8000(Other).
|
|
||||||
- name: hidef
|
|
||||||
type: checkbox
|
|
||||||
label: Show MVGroup HiDef Releases only
|
|
||||||
default: false
|
|
||||||
- name: withsubs
|
|
||||||
type: select
|
|
||||||
label: Subtitles
|
|
||||||
default: _
|
|
||||||
options:
|
|
||||||
_: -OFF-
|
|
||||||
alb: Albanian
|
|
||||||
ara: Arabic
|
|
||||||
arm: Armenian
|
|
||||||
ass: Assyrian
|
|
||||||
bos: Bosnian
|
|
||||||
bul: Bulgarian
|
|
||||||
cat: Catalan
|
|
||||||
chi: "Chinese, simplified"
|
|
||||||
zho: "Chinese, traditional"
|
|
||||||
hrv: Croatian
|
|
||||||
cze: Czech
|
|
||||||
dan: Danish
|
|
||||||
dut: Dutch
|
|
||||||
eng: English
|
|
||||||
est: Estonian
|
|
||||||
fin: Finnish
|
|
||||||
fre: French
|
|
||||||
glg: Galician
|
|
||||||
geo: Georgian
|
|
||||||
ger: German
|
|
||||||
ell: Greek
|
|
||||||
heb: Hebrew
|
|
||||||
hin: Hindi
|
|
||||||
hun: Hungarian
|
|
||||||
ice: Icelandic
|
|
||||||
ind: Indonesian
|
|
||||||
ita: Italian
|
|
||||||
jpn: Japanese
|
|
||||||
kaz: Kazakh
|
|
||||||
kor: Korean
|
|
||||||
lav: Latvian
|
|
||||||
lit: Lithuanian
|
|
||||||
ltz: Luxembourgish
|
|
||||||
mac: Macedonian
|
|
||||||
may: Malay
|
|
||||||
nor: Norwegian
|
|
||||||
per: Persian
|
|
||||||
pol: Polish
|
|
||||||
por: Portuguese
|
|
||||||
rum: Romanian
|
|
||||||
rus: Russian
|
|
||||||
scc: Serbian
|
|
||||||
slo: Slovak
|
|
||||||
slv: Slovenian
|
|
||||||
spa: Spanish
|
|
||||||
swe: Swedish
|
|
||||||
tha: Thai
|
|
||||||
tur: Turkish
|
|
||||||
ukr: Ukrainian
|
|
||||||
vie: Vietnamese
|
|
||||||
- name: seed
|
|
||||||
type: checkbox
|
|
||||||
label: Only released and seeded torrents
|
|
||||||
default: false
|
|
||||||
- name: dropbbc
|
|
||||||
type: checkbox
|
|
||||||
label: Drop BBC & other channels from the front of result titles
|
|
||||||
default: false
|
|
||||||
- name: stripS01E01
|
|
||||||
type: checkbox
|
|
||||||
label: Strip the S01E01 from the Torznab search requests
|
|
||||||
default: false
|
|
||||||
- name: sort
|
|
||||||
type: select
|
|
||||||
label: Sort requested from site
|
|
||||||
default: added
|
|
||||||
options:
|
|
||||||
added: created
|
|
||||||
seeders: seeders
|
|
||||||
filename: title
|
|
||||||
- name: type
|
|
||||||
type: select
|
|
||||||
label: Order requested from site
|
|
||||||
default: DESC
|
|
||||||
options:
|
|
||||||
DESC: desc
|
|
||||||
ASC: asc
|
|
||||||
|
|
||||||
login:
|
|
||||||
path: index.php?act=Login&CODE=00
|
|
||||||
method: form
|
|
||||||
form: form[action$="act=Login&CODE=01"]
|
|
||||||
inputs:
|
|
||||||
UserName: "{{ .Config.username }}"
|
|
||||||
PassWord: "{{ .Config.password }}"
|
|
||||||
Privacy: 1
|
|
||||||
CookieDate: 1
|
|
||||||
CODE: 01
|
|
||||||
referer: "https://forums.mvgroup.org/index.php?"
|
|
||||||
act: Login
|
|
||||||
error:
|
|
||||||
- selector: div.borderwrap:has(div.tablepad)
|
|
||||||
message:
|
|
||||||
selector: div.borderwrap div.tablepad
|
|
||||||
test:
|
|
||||||
path: index.php
|
|
||||||
selector: tr td.nav_mem div span[id="member_menu"], a[href^="/forumtracker.php?filter="]
|
|
||||||
|
|
||||||
search:
|
|
||||||
paths:
|
|
||||||
- path: maintracker.php
|
|
||||||
inputs:
|
|
||||||
seed: "{{ if .Config.seed }}1{{ else }}0{{ end }}"
|
|
||||||
withsubs: "{{ re_replace .Config.withsubs \"_\" \"\" }}"
|
|
||||||
filter: "{{ if .Config.hidef }}hd+{{ else }}{{ end }}{{ .Keywords }}"
|
|
||||||
orderby: "{{ .Config.sort }}"
|
|
||||||
order: "{{ .Config.type }}"
|
|
||||||
keywordsfilters:
|
|
||||||
- name: re_replace
|
|
||||||
args: ["(?i)S01E01", "{{ if .Config.stripS01E01 }}{{ else }}S01E01{{ end }}"] # optionally remove S01E01 from search
|
|
||||||
|
|
||||||
rows:
|
|
||||||
selector: tr:has(a.magnetlink)
|
|
||||||
|
|
||||||
fields:
|
|
||||||
category:
|
|
||||||
text: Other
|
|
||||||
title_default:
|
|
||||||
# fallback title (to prevent abend if optional is not found)
|
|
||||||
text: "title not found"
|
|
||||||
title_optional:
|
|
||||||
optional: true
|
|
||||||
selector: td.doubleindent, td.singleindent a[href^="/index.php?showtopic="]
|
|
||||||
filters:
|
|
||||||
- name: re_replace
|
|
||||||
args: ["(?i)^BBC (.*)", "{{ if .Config.dropbbc }}{{ else }}BBC {{ end }}$1"]
|
|
||||||
- name: re_replace
|
|
||||||
args: ["(?i)^PBS (.*)", "{{ if .Config.dropbbc }}{{ else }}PBS {{ end }}$1"]
|
|
||||||
- name: re_replace
|
|
||||||
args: ["(?i)^CH5 (.*)", "{{ if .Config.dropbbc }}{{ else }}Ch5 {{ end }}$1"]
|
|
||||||
- name: re_replace
|
|
||||||
args: ["(?i)^CH4 (.*)", "{{ if .Config.dropbbc }}{{ else }}Ch4 {{ end }}$1"]
|
|
||||||
- name: re_replace
|
|
||||||
args: ["(?i)^DC (.*)", "{{ if .Config.dropbbc }}{{ else }}DC {{ end }}$1"]
|
|
||||||
- name: re_replace
|
|
||||||
args: ["(?i)^DW (.*)", "{{ if .Config.dropbbc }}{{ else }}DW {{ end }}$1"]
|
|
||||||
- name: re_replace
|
|
||||||
args: ["(?i)^HC (.*)", "{{ if .Config.dropbbc }}{{ else }}HC {{ end }}$1"]
|
|
||||||
- name: re_replace
|
|
||||||
args: ["(?i)^RTE (.*)", "{{ if .Config.dropbbc }}{{ else }}RTE {{ end }}$1"]
|
|
||||||
- name: re_replace
|
|
||||||
args: ["(?i)^ITV (.*)", "{{ if .Config.dropbbc }}{{ else }}ITV {{ end }}$1"]
|
|
||||||
- name: re_replace
|
|
||||||
args: ["(?i)^HBO (.*)", "{{ if .Config.dropbbc }}{{ else }}HBO {{ end }}$1"]
|
|
||||||
- name: re_replace
|
|
||||||
args: ["(?i)^NHK (.*)", "{{ if .Config.dropbbc }}{{ else }}NHK {{ end }}$1"]
|
|
||||||
- name: re_replace
|
|
||||||
args: ["(?i)^UKTV (.*)", "{{ if .Config.dropbbc }}{{ else }}UKTV {{ end }}$1"]
|
|
||||||
- name: re_replace
|
|
||||||
args: ["(?i)^NOVA (.*)", "{{ if .Config.dropbbc }}{{ else }}NOVA {{ end }}$1"]
|
|
||||||
- name: re_replace
|
|
||||||
args: ["(?i)^TV5Monde (.*)", "{{ if .Config.dropbbc }}{{ else }}TV5Monde {{ end }}$1"]
|
|
||||||
- name: re_replace
|
|
||||||
args: ["(?i)^Al-Jazeera (.*)", "{{ if .Config.dropbbc }}{{ else }}Al-Jazeera {{ end }}$1"]
|
|
||||||
- name: append
|
|
||||||
args: "{{ if .Config.stripS01E01 }}{{ else }} S01E01{{ end }}"
|
|
||||||
title:
|
|
||||||
text: "{{ if .Result.title_optional }}{{ .Result.title_optional }}{{ else }}{{ .Result.title_default }}{{ end }}"
|
|
||||||
details:
|
|
||||||
optional: true
|
|
||||||
selector: td.singleindent a[href^="/index.php?showtopic="]
|
|
||||||
attribute: href
|
|
||||||
download:
|
|
||||||
selector: td a.torrentlink
|
|
||||||
attribute: href
|
|
||||||
magnet:
|
|
||||||
selector: td a.magnetlink
|
|
||||||
attribute: href
|
|
||||||
size:
|
|
||||||
text: "512 MB"
|
|
||||||
date:
|
|
||||||
selector: td:nth-of-type(3)
|
|
||||||
filters:
|
|
||||||
- name: append
|
|
||||||
args: " +00:00" # GMT
|
|
||||||
- name: dateparse
|
|
||||||
args: "yyyy/MM/dd zzz"
|
|
||||||
seeders:
|
|
||||||
selector: td:nth-of-type(4)
|
|
||||||
leechers:
|
|
||||||
selector: td:nth-of-type(5)
|
|
||||||
grabs:
|
|
||||||
selector: td:nth-of-type(6)
|
|
||||||
downloadvolumefactor:
|
|
||||||
text: 0
|
|
||||||
uploadvolumefactor:
|
|
||||||
text: 1
|
|
||||||
# Invision Power Board
|
|
||||||
@@ -1,191 +0,0 @@
|
|||||||
---
|
|
||||||
id: nicept
|
|
||||||
name: NicePT
|
|
||||||
description: "NicePT is a CHINESE Private Torrent Tracker for 3X"
|
|
||||||
language: zh-CN
|
|
||||||
type: private
|
|
||||||
encoding: UTF-8
|
|
||||||
links:
|
|
||||||
- https://www.nicept.net/
|
|
||||||
|
|
||||||
caps:
|
|
||||||
categorymappings:
|
|
||||||
- {id: 500, cat: XXX, desc: "日本有码"}
|
|
||||||
- {id: 401, cat: XXX, desc: "日本无码"}
|
|
||||||
- {id: 402, cat: XXX, desc: "欧美"}
|
|
||||||
- {id: 501, cat: XXX, desc: "其他(限制级)"}
|
|
||||||
- {id: 403, cat: XXX/Other, desc: "动漫(限制级)"}
|
|
||||||
- {id: 503, cat: XXX, desc: "真人秀,自拍(限制级)"}
|
|
||||||
- {id: 404, cat: XXX/ImageSet, desc: "写真、套图"}
|
|
||||||
- {id: 504, cat: XXX, desc: "SM调教(限制级)"}
|
|
||||||
|
|
||||||
modes:
|
|
||||||
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 NicePT 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 Users users and above will be retained forever</li><li>Elite Users 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 banned if they do not log in for 40 consecutive days</li><li>Users with no traffic (ie, upload/download data are both 0) will be banned if they do not log in for 7 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 }}"
|
|
||||||
error:
|
|
||||||
- selector: td.embedded:has(h2:contains("失败"))
|
|
||||||
test:
|
|
||||||
path: index.php
|
|
||||||
selector: a[href="logout.php"]
|
|
||||||
|
|
||||||
search:
|
|
||||||
paths:
|
|
||||||
- path: torrents.php
|
|
||||||
inputs:
|
|
||||||
$raw: "{{ range .Categories }}cat{{.}}=1&{{end}}"
|
|
||||||
search: "{{ .Keywords }}"
|
|
||||||
# 0 incldead, 1 active, 2 dead
|
|
||||||
incldead: 0
|
|
||||||
# 0 all, 1 normal, 2 free, 3 2x, 4 2xfree, 5 50%, 6 2x50%, 7 30%
|
|
||||||
spstate: "{{ if .Config.freeleech }}2{{ else }}0{{ end }}"
|
|
||||||
# 0 title, 1 descr, 3 uploader, 4 imdburl (unused)
|
|
||||||
search_area: 0
|
|
||||||
# 0 AND, 1 OR, 2 exact
|
|
||||||
search_mode: 0
|
|
||||||
sort: "{{ .Config.sort }}"
|
|
||||||
type: "{{ .Config.type }}"
|
|
||||||
notnewword: 1
|
|
||||||
|
|
||||||
rows:
|
|
||||||
selector: table.torrents > tbody > tr:has(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_optional:
|
|
||||||
optional: true
|
|
||||||
selector: a[title][href^="details.php?id="]
|
|
||||||
attribute: title
|
|
||||||
title:
|
|
||||||
text: "{{ if .Result.title_optional }}{{ .Result.title_optional }}{{ else }}{{ .Result.title_default }}{{ end }}"
|
|
||||||
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="通过"], span[title="通過"], span[title="Allowed"]: "Verified:"
|
|
||||||
span[title="未审"], span[title="未審"], span[title="Not reviewed"]: "Unverified:"
|
|
||||||
span[title="拒绝"], span[title="拒絕"], span[title="Denied"]: "Banned:"
|
|
||||||
description:
|
|
||||||
selector: td.rowfollow:nth-child(2)
|
|
||||||
remove: a, b, font, img, span
|
|
||||||
filters:
|
|
||||||
- name: prepend
|
|
||||||
args: "{{ .Result.description_verified }} "
|
|
||||||
# NexusPHP v1.8.8 2023-09-25
|
|
||||||
@@ -1,68 +0,0 @@
|
|||||||
---
|
|
||||||
id: nipponsei
|
|
||||||
name: Nipponsei
|
|
||||||
description: "Nipponsei is a Public site for MUSIC fresh from Japan"
|
|
||||||
language: en-US
|
|
||||||
type: public
|
|
||||||
encoding: UTF-8
|
|
||||||
links:
|
|
||||||
- https://nipponsei.minglong.org/
|
|
||||||
|
|
||||||
caps:
|
|
||||||
categorymappings:
|
|
||||||
- {id: music, cat: Audio, desc: Music}
|
|
||||||
|
|
||||||
modes:
|
|
||||||
search: [q]
|
|
||||||
music-search: [q]
|
|
||||||
|
|
||||||
settings: []
|
|
||||||
|
|
||||||
search:
|
|
||||||
# https://nipponsei.minglong.org/index.php?section=Tracker&search=Kanojo+mo+Kanojo+ED+Single
|
|
||||||
paths:
|
|
||||||
- path: index.php
|
|
||||||
inputs:
|
|
||||||
section: Tracker
|
|
||||||
search: "{{ .Keywords }}"
|
|
||||||
|
|
||||||
rows:
|
|
||||||
selector: tr.odd, tr.even
|
|
||||||
|
|
||||||
fields:
|
|
||||||
category:
|
|
||||||
text: music
|
|
||||||
title:
|
|
||||||
selector: a
|
|
||||||
filters:
|
|
||||||
- name: replace
|
|
||||||
args: ["[Nipponsei] ", ""]
|
|
||||||
details:
|
|
||||||
text: /
|
|
||||||
download:
|
|
||||||
selector: a
|
|
||||||
attribute: href
|
|
||||||
date_optional:
|
|
||||||
optional: true
|
|
||||||
selector: td.date
|
|
||||||
filters:
|
|
||||||
- name: dateparse
|
|
||||||
args: "yyyy-MM-dd HH:mm"
|
|
||||||
date:
|
|
||||||
text: "{{ if .Result.date_optional }}{{ .Result.date_optional }}{{ else }}now{{ end }}"
|
|
||||||
size_optional:
|
|
||||||
optional: true
|
|
||||||
selector: td.bytes
|
|
||||||
size:
|
|
||||||
text: "{{ if .Result.size_optional }}{{ .Result.size_optional }}{{ else }}128 MB{{ end }}"
|
|
||||||
seeders:
|
|
||||||
selector: "{{ if .Keywords }}td:nth-child(2){{ else }}td:nth-child(4){{ end }}"
|
|
||||||
leechers:
|
|
||||||
selector: "{{ if .Keywords }}td:nth-child(3){{ else }}td:nth-child(5){{ end }}"
|
|
||||||
grabs:
|
|
||||||
selector: td.number
|
|
||||||
downloadvolumefactor:
|
|
||||||
text: 0
|
|
||||||
uploadvolumefactor:
|
|
||||||
text: 1
|
|
||||||
# engine n/a
|
|
||||||
@@ -1,309 +0,0 @@
|
|||||||
---
|
|
||||||
id: nyaasi
|
|
||||||
name: Nyaa.si
|
|
||||||
description: "Nyaa is a Public torrent site focused on Eastern Asian media including anime, manga, literature and music"
|
|
||||||
language: en-US
|
|
||||||
type: public
|
|
||||||
encoding: UTF-8
|
|
||||||
requestDelay: 2
|
|
||||||
links:
|
|
||||||
- https://nyaa.si/
|
|
||||||
- https://nyaa.iss.ink/
|
|
||||||
- https://nyaa.land/
|
|
||||||
- https://nyaa.unblockninja.com/ # for magnets only
|
|
||||||
legacylinks:
|
|
||||||
- https://nyaa.black-mirror.xyz/
|
|
||||||
- https://nyaa.unblocked.casa/
|
|
||||||
- https://nyaa.proxyportal.fun/
|
|
||||||
- https://nyaa.uk-unblock.xyz/
|
|
||||||
- https://nyaa.ind-unblock.xyz/
|
|
||||||
- https://nyaa.unblocked.bar/
|
|
||||||
- https://nyaa.proxyportal.pw/
|
|
||||||
- https://nyaa.uk-unblock.pro/
|
|
||||||
- https://nyaa.root.yt/
|
|
||||||
- https://nyaa.lol/ # dropped at request of owner
|
|
||||||
- https://nyaa.nocensor.world/
|
|
||||||
- https://nyaa.nocensor.lol/
|
|
||||||
- https://nyaa.nocensor.art/
|
|
||||||
- https://nyaa.mrunblock.guru/
|
|
||||||
- https://nyaa.mrunblock.life/
|
|
||||||
- https://nyaa.nocensor.click/
|
|
||||||
- https://nyaa.mrunblock.bond/ # for magnets only
|
|
||||||
- https://nyaa.nocensor.cloud/
|
|
||||||
|
|
||||||
caps:
|
|
||||||
categorymappings:
|
|
||||||
# Anime
|
|
||||||
- {id: 1_0, cat: TV/Anime, desc: "Anime"}
|
|
||||||
- {id: 1_1, cat: TV/Anime, desc: "Anime music videos"}
|
|
||||||
- {id: 1_2, cat: TV/Anime, desc: "English subtitled animes"}
|
|
||||||
- {id: 1_3, cat: TV/Anime, desc: "Non-english subtitled animes"}
|
|
||||||
- {id: 1_4, cat: TV/Anime, desc: "Raw animes"}
|
|
||||||
# Anime as Movies (Radarr uses t=movie):
|
|
||||||
- {id: 1_0, cat: Movies/Other, desc: "Anime"}
|
|
||||||
- {id: 1_1, cat: Movies/Other, desc: "Anime music videos"}
|
|
||||||
- {id: 1_2, cat: Movies/Other, desc: "English subtitled animes"}
|
|
||||||
- {id: 1_3, cat: Movies/Other, desc: "Non-english subtitled animes"}
|
|
||||||
- {id: 1_4, cat: Movies/Other, desc: "Raw animes"}
|
|
||||||
# Audio
|
|
||||||
- {id: 2_0, cat: Audio, desc: "Audio"}
|
|
||||||
- {id: 2_1, cat: Audio, desc: "Lossless audio"}
|
|
||||||
- {id: 2_2, cat: Audio, desc: "Lossy audio"}
|
|
||||||
# Literature
|
|
||||||
- {id: 3_0, cat: Books, desc: "Literature"}
|
|
||||||
- {id: 3_1, cat: Books, desc: "Literature english translated"}
|
|
||||||
- {id: 3_2, cat: Books, desc: "Literature non-english translated"}
|
|
||||||
- {id: 3_3, cat: Books, desc: "Raw literature"}
|
|
||||||
# Live
|
|
||||||
- {id: 4_0, cat: TV, desc: "Live Action"}
|
|
||||||
- {id: 4_1, cat: TV, desc: "Live Action - English"}
|
|
||||||
- {id: 4_2, cat: TV, desc: "Live Action - Idol/PV"}
|
|
||||||
- {id: 4_3, cat: TV, desc: "Live Action - Non-English"}
|
|
||||||
- {id: 4_4, cat: TV, desc: "Live Action - Raw"}
|
|
||||||
# Pics
|
|
||||||
- {id: 5_0, cat: Other, desc: "Pictures"}
|
|
||||||
- {id: 5_1, cat: Other, desc: "Pictures - Graphics"}
|
|
||||||
- {id: 5_2, cat: Other, desc: "Pictures - Photos"}
|
|
||||||
# Software
|
|
||||||
- {id: 6_0, cat: PC, desc: "Software"}
|
|
||||||
- {id: 6_1, cat: PC/ISO, desc: "Applications"}
|
|
||||||
- {id: 6_2, cat: PC/Games, desc: "Games"}
|
|
||||||
|
|
||||||
modes:
|
|
||||||
search: [q]
|
|
||||||
tv-search: [q, season, ep]
|
|
||||||
movie-search: [q]
|
|
||||||
book-search: [q]
|
|
||||||
allowrawsearch: true
|
|
||||||
|
|
||||||
settings:
|
|
||||||
- name: prefer_magnet_links
|
|
||||||
type: checkbox
|
|
||||||
label: Prefer Magnet Links
|
|
||||||
default: true
|
|
||||||
- name: sonarr_compatibility
|
|
||||||
type: checkbox
|
|
||||||
label: Improve Sonarr compatibility by trying to add Season information into Release Titles
|
|
||||||
default: false
|
|
||||||
- name: strip_s01
|
|
||||||
type: checkbox
|
|
||||||
label: Remove first season keywords (S1/S01/Season 1), as some results do not include this for first/single season releases
|
|
||||||
default: false
|
|
||||||
- name: radarr_compatibility
|
|
||||||
type: checkbox
|
|
||||||
label: Improve Radarr compatibility by removing year information from keywords and adding it to Release Titles
|
|
||||||
default: false
|
|
||||||
- name: filter-id
|
|
||||||
type: select
|
|
||||||
label: Filter
|
|
||||||
default: 0
|
|
||||||
options:
|
|
||||||
0: No filter
|
|
||||||
1: No remakes
|
|
||||||
2: Trusted only
|
|
||||||
- name: cat-id
|
|
||||||
type: select
|
|
||||||
label: Category
|
|
||||||
default: 0_0
|
|
||||||
options:
|
|
||||||
0_0: "All categories"
|
|
||||||
1_0: "Anime"
|
|
||||||
1_1: "Anime - Anime Music Video"
|
|
||||||
1_2: "Anime - English-translated"
|
|
||||||
1_3: "Anime - Non-English-translated"
|
|
||||||
1_4: "Anime - Raw"
|
|
||||||
2_0: "Audio"
|
|
||||||
2_1: "Audio - Lossless"
|
|
||||||
2_2: "Audio - Lossy"
|
|
||||||
3_0: "Literature"
|
|
||||||
3_1: "Literature - English-translated"
|
|
||||||
3_2: "Literature - Non-English-translated"
|
|
||||||
3_3: "Literature - Lossy"
|
|
||||||
4_0: "Live Action"
|
|
||||||
4_1: "Live Action - English"
|
|
||||||
4_2: "Live Action - Idol/PV"
|
|
||||||
4_3: "Live Action - Non-English"
|
|
||||||
4_4: "Live Action - Raw"
|
|
||||||
5_0: "Pictures"
|
|
||||||
5_1: "Pictures - Graphics"
|
|
||||||
5_2: "Pictures - Photos"
|
|
||||||
6_0: "Software"
|
|
||||||
6_1: "Software - Applications"
|
|
||||||
6_2: "Software - Games"
|
|
||||||
- name: sort
|
|
||||||
type: select
|
|
||||||
label: Sort requested from site
|
|
||||||
default: id
|
|
||||||
options:
|
|
||||||
id: created
|
|
||||||
seeders: seeders
|
|
||||||
size: size
|
|
||||||
- name: type
|
|
||||||
type: select
|
|
||||||
label: Order requested from site
|
|
||||||
default: desc
|
|
||||||
options:
|
|
||||||
desc: desc
|
|
||||||
asc: asc
|
|
||||||
|
|
||||||
search:
|
|
||||||
paths:
|
|
||||||
- path: /
|
|
||||||
inputs:
|
|
||||||
q: "{{ .Keywords }}"
|
|
||||||
# strip 0 from start of episode number - #11019, or fetch page 2 for keywordless
|
|
||||||
- path: /
|
|
||||||
inputs:
|
|
||||||
q: "{{ if .Keywords }}{{ re_replace .Keywords \"\\b0(\\d{1})\\b\" \"$1\" }}{{ else }}{{ end }}"
|
|
||||||
p: "{{ if .Keywords }}{{ else }}2{{ end }}"
|
|
||||||
inputs:
|
|
||||||
f: "{{ .Config.filter-id }}"
|
|
||||||
c: "{{ .Config.cat-id }}"
|
|
||||||
s: "{{ .Config.sort }}"
|
|
||||||
o: "{{ .Config.type }}"
|
|
||||||
|
|
||||||
keywordsfilters:
|
|
||||||
- name: re_replace
|
|
||||||
args: [" *\\b((?:19|20)\\d{2})\\b", "{{ if .Config.radarr_compatibility }}{{ else }} $1{{ end }}"]
|
|
||||||
- name: re_replace
|
|
||||||
args: ["(?i) *\\b(S(?:0|eason *)?1)\\b", "{{ if .Config.strip_s01 }}{{ else }} $1{{ end }}"]
|
|
||||||
|
|
||||||
rows:
|
|
||||||
selector: tr.default,tr.danger,tr.success
|
|
||||||
|
|
||||||
fields:
|
|
||||||
category:
|
|
||||||
selector: td:nth-child(1) a
|
|
||||||
attribute: href
|
|
||||||
filters:
|
|
||||||
- name: split
|
|
||||||
args: ["=", -1]
|
|
||||||
category_group_id:
|
|
||||||
selector: td:nth-child(1) a
|
|
||||||
attribute: href
|
|
||||||
filters:
|
|
||||||
- name: split
|
|
||||||
args: ["=", -1]
|
|
||||||
- name: split
|
|
||||||
args: ["_", 0]
|
|
||||||
title_default:
|
|
||||||
selector: td:nth-child(2) a:last-of-type
|
|
||||||
title_phase1:
|
|
||||||
selector: td:nth-child(2) a:last-of-type:contains("[PuyaSubs!] ")
|
|
||||||
optional: true
|
|
||||||
filters:
|
|
||||||
- name: append
|
|
||||||
args: " Spanish"
|
|
||||||
title_keyword_year:
|
|
||||||
text: "{{ .Query.Keywords }}"
|
|
||||||
filters:
|
|
||||||
- name: regexp
|
|
||||||
args: "\\b((19|20)\\d{2})\\b"
|
|
||||||
title_phase2:
|
|
||||||
text: "{{ or (.Result.title_phase1) (.Result.title_default) }}"
|
|
||||||
filters:
|
|
||||||
- name: re_replace
|
|
||||||
args: ["^(\\[.+?\\] ?)?(\\[.+?\\] ?)?(.+?)(\\[)", "$1$2$3{{ if .Config.radarr_compatibility }} {{ .Result.title_keyword_year }} $4{{ else }}$4{{ end }}"]
|
|
||||||
title_phase3:
|
|
||||||
text: "{{ .Result.title_phase2 }}"
|
|
||||||
filters:
|
|
||||||
- name: re_replace
|
|
||||||
args: ["(?i)\\b((?:S|Seasons?|EP?|Episodes?)\\s?)(\\d+)(?:\\-|[\\s~\\+àa&]+)(\\d+)\\b", "$1$2-$3"]
|
|
||||||
- name: re_replace
|
|
||||||
args: ["(?i)\\b(?:S|Seasons?)\\s?(\\d+(?:-\\d+)?)[\\s\\-]+(?:EP|Episodes?)\\s?(\\d+(?:-\\d+)?)\\b", "$0 S$1E$2"]
|
|
||||||
- name: re_replace
|
|
||||||
args: ["(?i)\\b(?:S|Seasons?)\\s?(\\d+(?:-\\d+)?)(?:.+?)(?:EP|Episodes?)\\s?(\\d+(?:-\\d+)?)\\b(?!(?:-\\d+)?\\sS\\d+(?:-\\d+)?E\\d+(?:-\\d+)?)", "$0 S$1E$2"]
|
|
||||||
- name: re_replace
|
|
||||||
args: ["\\b (II) - (\\d+)[\\s\\-~\\+àa&]+(\\d+)", " $1 S02 - $2-$3"]
|
|
||||||
- name: re_replace
|
|
||||||
args: ["\\b (II) - (\\d+)", " $1 S02 - $2"]
|
|
||||||
- name: re_replace
|
|
||||||
args: ["\\b (III) - (\\d+)[\\s\\-~\\+àa&]+(\\d+)", " $1 S03 - $2-$3"]
|
|
||||||
- name: re_replace
|
|
||||||
args: ["\\b (III) - (\\d+)", " $1 S03 - $2"]
|
|
||||||
- name: re_replace
|
|
||||||
args: ["(?i)\\b(\\d+)(st|nd|rd|th) Season\\b", "$0 S$1"]
|
|
||||||
- name: re_replace
|
|
||||||
args: ["(?i)_(\\d+)(st|nd|rd|th)_season_(\\d+)_", "$0S$1E$3_"]
|
|
||||||
- name: re_replace
|
|
||||||
args: ["(?i)_(\\d+)(st|nd|rd|th)_season_", "$0S$1_"]
|
|
||||||
- name: re_replace
|
|
||||||
args: ["(?i)\\b(S\\d+(?:-\\d+)?) - (\\d+)[\\s\\-~\\+àa&]+(\\d+)\\b", "$1E$2-$3"]
|
|
||||||
- name: re_replace
|
|
||||||
args: ["(?i)\\b(S\\d+(?:-\\d+)?) - (\\d+)\\b", "$1E$2"]
|
|
||||||
- name: re_replace
|
|
||||||
args: ["(?i)\\b(?:S\\s|Seasons?\\s?)(\\d+(?:-\\d+)?)\\b(?!(?:-\\d+)?\\s(?:EP|Episodes?)?\\s?(?:\\d+(?:-\\d+)?)?\\s?S\\d+(?:E\\d+(?:-\\d+)?)?)", "$0 S$1"]
|
|
||||||
- name: re_replace
|
|
||||||
args: ["(?i)\\b(?:EP|Episodes?)\\s?(\\d+(?:-\\d+)?)\\b(?!(?:-\\d+)?\\sS\\d+(?:-\\d+)?(?:E\\d+(?:-\\d+)?)?)", "$0 S01E$1"]
|
|
||||||
title_has_season:
|
|
||||||
text: "{{ .Result.title_phase3 }}"
|
|
||||||
filters:
|
|
||||||
- name: regexp
|
|
||||||
args: "(?i)(S\\d{1,3}(E\\d+)?)"
|
|
||||||
- name: append
|
|
||||||
args: "NULL"
|
|
||||||
title_has_episode:
|
|
||||||
text: "{{ .Result.title_phase3 }}"
|
|
||||||
filters:
|
|
||||||
- name: regexp
|
|
||||||
args: "\\b(.+? - ?)(\\d+(-\\d+)?) ([\\[\\(])\\b"
|
|
||||||
- name: append
|
|
||||||
args: "NULL"
|
|
||||||
title_has_movie_ova:
|
|
||||||
text: "{{ .Result.title_phase3 }}"
|
|
||||||
filters:
|
|
||||||
- name: regexp
|
|
||||||
args: "(?i)(?<![A-Za-z0-9])(Movies?|OVA|OAV)(?![A-Za-z0-9])"
|
|
||||||
- name: re_replace
|
|
||||||
args: ["(?i)(Movies?|OVA|OAV)", "YES"]
|
|
||||||
title_optional:
|
|
||||||
text: "{{ .Result.title_phase3 }}"
|
|
||||||
filters:
|
|
||||||
- name: re_replace
|
|
||||||
args: ["^(\\[.+?].+?)\\s*(?<![\\]\\)])((?:\\[|\\(| - ).+)", "{{ if and (and (eq .Result.category_group_id \"1\") (ne .Result.title_has_movie_ova \"YES\")) (and (eq .Result.title_has_season \"NULL\") (eq .Result.title_has_episode \"NULL\")) }}$1 S01 $2{{ else }}$1 $2{{ end }}"]
|
|
||||||
title:
|
|
||||||
text: "{{ if .Config.sonarr_compatibility }}{{ .Result.title_optional }}{{ else }}{{ .Result.title_phase2 }}{{ end }}"
|
|
||||||
details:
|
|
||||||
selector: td:nth-child(2) a:last-of-type
|
|
||||||
attribute: href
|
|
||||||
download_optional:
|
|
||||||
selector: td:nth-child(3) a[href$=".torrent"]
|
|
||||||
attribute: href
|
|
||||||
optional: true
|
|
||||||
download:
|
|
||||||
text: "{{ if .Config.prefer_magnet_links }}{{ else }}{{ .Result.download_optional }}{{ end }}"
|
|
||||||
optional: true
|
|
||||||
magnet:
|
|
||||||
selector: td:nth-child(3) a[href^="magnet:?"]
|
|
||||||
attribute: href
|
|
||||||
size:
|
|
||||||
selector: td:nth-child(4)
|
|
||||||
date:
|
|
||||||
selector: td:nth-child(5)
|
|
||||||
filters:
|
|
||||||
- name: append
|
|
||||||
args: " -00:00" # GMT
|
|
||||||
- name: dateparse
|
|
||||||
args: "yyyy-MM-dd HH:mm zzz"
|
|
||||||
seeders_optional:
|
|
||||||
selector: td:nth-child(6):not(:empty)
|
|
||||||
optional: true
|
|
||||||
seeders:
|
|
||||||
text: "{{ if .Result.seeders_optional }}{{ .Result.seeders_optional }}{{ else }}0{{ end }}"
|
|
||||||
leechers_optional:
|
|
||||||
selector: td:nth-child(7):not(:empty)
|
|
||||||
optional: true
|
|
||||||
leechers:
|
|
||||||
text: "{{ if .Result.leechers_optional }}{{ .Result.leechers_optional }}{{ else }}0{{ end }}"
|
|
||||||
grabs_optional:
|
|
||||||
selector: td:nth-child(8):not(:empty)
|
|
||||||
optional: true
|
|
||||||
grabs:
|
|
||||||
text: "{{ if .Result.grabs_optional }}{{ .Result.grabs_optional }}{{ else }}0{{ end }}"
|
|
||||||
downloadvolumefactor:
|
|
||||||
text: 0
|
|
||||||
uploadvolumefactor:
|
|
||||||
text: 1
|
|
||||||
description:
|
|
||||||
selector: td:nth-child(2) a:last-of-type
|
|
||||||
# engine n/a
|
|
||||||
@@ -1,195 +0,0 @@
|
|||||||
---
|
|
||||||
id: opencd
|
|
||||||
name: OpenCD
|
|
||||||
description: "OpenCD is a CHINESE Private Torrent Tracker for MUSIC"
|
|
||||||
language: zh-CN
|
|
||||||
type: private
|
|
||||||
encoding: UTF-8
|
|
||||||
links:
|
|
||||||
- https://open.cd/
|
|
||||||
|
|
||||||
caps:
|
|
||||||
categorymappings:
|
|
||||||
- {id: 2, cat: Audio, desc: "华语流行(Pop)"}
|
|
||||||
- {id: 3, cat: Audio, desc: "古典音乐(Classical)"}
|
|
||||||
- {id: 11, cat: Audio, desc: "民族音乐(Instrumental)"}
|
|
||||||
- {id: 4, cat: Audio, desc: "原声配乐(OST)"}
|
|
||||||
- {id: 5, cat: Audio, desc: "泛摇滚乐(Rock)"}
|
|
||||||
- {id: 8, cat: Audio, desc: "爵士乡村(Jazz)"}
|
|
||||||
- {id: 12, cat: Audio, desc: "新世纪(NewAge)"}
|
|
||||||
- {id: 13, cat: Audio, desc: "舞曲(Dance)"}
|
|
||||||
- {id: 14, cat: Audio, desc: "电子(Electronic)"}
|
|
||||||
- {id: 15, cat: Audio, desc: "民谣(Folk)"}
|
|
||||||
- {id: 16, cat: Audio, desc: "独立(Indie)"}
|
|
||||||
- {id: 17, cat: Audio, desc: "嘻哈(Hip Hop)"}
|
|
||||||
- {id: 18, cat: Audio, desc: "音乐剧(Musical)"}
|
|
||||||
- {id: 19, cat: Audio, desc: "乡村(Country)"}
|
|
||||||
- {id: 20, cat: Audio, desc: "另类(Alternative)"}
|
|
||||||
- {id: 21, cat: Audio, desc: "世界音樂(World))"}
|
|
||||||
- {id: 9, cat: Audio, desc: "其它类型(Others)"}
|
|
||||||
|
|
||||||
modes:
|
|
||||||
search: [q]
|
|
||||||
music-search: [q, artist]
|
|
||||||
|
|
||||||
settings:
|
|
||||||
- name: cookie
|
|
||||||
type: text
|
|
||||||
label: Cookie
|
|
||||||
- name: info
|
|
||||||
type: info
|
|
||||||
label: How to get the Cookie
|
|
||||||
default: "<ol><li>Login to this tracker with your browser</li><li>Open the <b>DevTools</b> panel by pressing <b>F12</b></li><li>Select the <b>Network</b> tab</li><li>Click on the <b>Doc</b> button (Chrome Browser) or <b>HTML</b> button (FireFox)</li><li>Refresh the page by pressing <b>F5</b></li><li>Click on the first row entry</li><li>Select the <b>Headers</b> tab on the Right panel</li><li>Find <b>'cookie:'</b> in the <b>Request Headers</b> section</li><li><b>Select</b> and <b>Copy</b> the whole cookie string <i>(everything after 'cookie: ')</i> and <b>Paste</b> here.</li></ol>"
|
|
||||||
- name: freeleech
|
|
||||||
type: checkbox
|
|
||||||
label: Search freeleech only
|
|
||||||
default: false
|
|
||||||
- name: sort
|
|
||||||
type: select
|
|
||||||
label: Sort requested from site
|
|
||||||
default: 4
|
|
||||||
options:
|
|
||||||
4: created
|
|
||||||
7: seeders
|
|
||||||
5: size
|
|
||||||
1: title
|
|
||||||
- name: type
|
|
||||||
type: select
|
|
||||||
label: Order requested from site
|
|
||||||
default: desc
|
|
||||||
options:
|
|
||||||
desc: desc
|
|
||||||
asc: asc
|
|
||||||
- name: info_tpp
|
|
||||||
type: info
|
|
||||||
label: Results Per Page
|
|
||||||
default: For best results, change the <b>Torrents per page:</b> setting to <b>100</b> on your account profile. Default is 50.
|
|
||||||
|
|
||||||
login:
|
|
||||||
method: cookie
|
|
||||||
inputs:
|
|
||||||
cookie: "{{ .Config.cookie }}"
|
|
||||||
test:
|
|
||||||
path: index.php
|
|
||||||
selector: a[href="logout.php"]
|
|
||||||
|
|
||||||
search:
|
|
||||||
paths:
|
|
||||||
# https://open.cd/torrents.php?source11=1&source18=1&incldead=0&spstate=0&search=&search_area=0&search_mode=0
|
|
||||||
- path: torrents.php
|
|
||||||
inputs:
|
|
||||||
$raw: "{{ range .Categories }}source{{.}}=1&{{end}}"
|
|
||||||
search: "{{ if .Query.Artist }}{{ .Query.Artist }}{{ 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, 5 traklist, 6 artistname
|
|
||||||
search_area: "{{ if .Query.Artist }}6{{ 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: td:nth-child(1)
|
|
||||||
attribute: title
|
|
||||||
case:
|
|
||||||
td[title="华语流行"]: 2
|
|
||||||
td[title="古典音乐"]: 3
|
|
||||||
td[title="民族音乐"]: 11
|
|
||||||
td[title="原声配乐"]: 4
|
|
||||||
td[title="泛摇滚乐"]: 5
|
|
||||||
td[title="爵士乡村"]: 8
|
|
||||||
td[title="新世纪"]: 12
|
|
||||||
td[title="舞曲"]: 13
|
|
||||||
td[title="电子"]: 14
|
|
||||||
td[title="民谣"]: 15
|
|
||||||
td[title="独立"]: 16
|
|
||||||
td[title="嘻哈"]: 17
|
|
||||||
td[title="音乐剧"]: 18
|
|
||||||
td[title="乡村(Country)"]: 19
|
|
||||||
td[title="另类(Alternative)"]: 20
|
|
||||||
td[title="世界音樂(World)"]: 21
|
|
||||||
td[title="其它类型"]: 9
|
|
||||||
# Some torrents have no title set on td
|
|
||||||
td:not([title]): 9
|
|
||||||
title_default:
|
|
||||||
selector: a[href*="details.php?id="]
|
|
||||||
title_optional:
|
|
||||||
optional: true
|
|
||||||
selector: a[title][href*="details.php?id="]
|
|
||||||
attribute: title
|
|
||||||
title:
|
|
||||||
text: "{{ if .Result.title_optional }}{{ .Result.title_optional }}{{ else }}{{ .Result.title_default }}{{ end }}"
|
|
||||||
details:
|
|
||||||
selector: a[href*="details.php?id="]
|
|
||||||
attribute: href
|
|
||||||
download:
|
|
||||||
selector: a[href^="download.php?id="]
|
|
||||||
attribute: href
|
|
||||||
poster:
|
|
||||||
selector: img[id^="attach"]
|
|
||||||
attribute: src
|
|
||||||
filters:
|
|
||||||
- name: prepend
|
|
||||||
args: "https://images.weserv.nl/?url={{ .Config.sitelink }}" # for display on dashboard
|
|
||||||
- name: append
|
|
||||||
args: "&w=180&h=270" # for display on dashboard
|
|
||||||
date_elapsed:
|
|
||||||
# time type: time elapsed (default)
|
|
||||||
selector: td:nth-child(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:nth-child(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:nth-child(7)
|
|
||||||
seeders:
|
|
||||||
selector: td:nth-child(8)
|
|
||||||
leechers:
|
|
||||||
selector: td:nth-child(9)
|
|
||||||
grabs:
|
|
||||||
selector: td:nth-child(10)
|
|
||||||
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:
|
|
||||||
# 36 hours (as seconds = 36 x 60 x 60)
|
|
||||||
text: 129600
|
|
||||||
description:
|
|
||||||
selector: td:nth-child(3)
|
|
||||||
remove: a, b, font, img, span
|
|
||||||
# NexusPHP Standard v1.5 Beta 4 (customised)
|
|
||||||
@@ -1,196 +0,0 @@
|
|||||||
---
|
|
||||||
id: oshenpt
|
|
||||||
name: OshenPT
|
|
||||||
description: "OshenPT is a CHINESE Private Torrent Tracker for HD Movies, TV, Music"
|
|
||||||
language: zh-CN
|
|
||||||
type: private
|
|
||||||
encoding: UTF-8
|
|
||||||
links:
|
|
||||||
- http://www.oshen.win/
|
|
||||||
legacylinks:
|
|
||||||
- https://www.oshen.win/ # forces http
|
|
||||||
|
|
||||||
caps:
|
|
||||||
categorymappings:
|
|
||||||
- {id: 401, cat: Movies, desc: "Movies/电影"}
|
|
||||||
- {id: 404, cat: TV/Documentary, desc: "Documentaries/纪录片"}
|
|
||||||
- {id: 405, cat: TV/Anime, desc: "Animations/动漫"}
|
|
||||||
- {id: 402, cat: TV, desc: "TV Series/剧集"}
|
|
||||||
- {id: 403, cat: TV, desc: "TV Shows/综艺"}
|
|
||||||
- {id: 406, cat: Audio/Video, desc: "MusicVideo/音乐MV"}
|
|
||||||
- {id: 407, cat: TV/Sport, desc: "Sports/运体"}
|
|
||||||
- {id: 409, cat: Other, desc: "Misc/音乐"}
|
|
||||||
- {id: 408, cat: Audio, desc: "HQ Audio/无损音乐"}
|
|
||||||
- {id: 410, cat: Console, desc: "Games/游戏"}
|
|
||||||
|
|
||||||
modes:
|
|
||||||
search: [q]
|
|
||||||
tv-search: [q, season, ep, imdbid, doubanid]
|
|
||||||
movie-search: [q, imdbid, doubanid]
|
|
||||||
music-search: [q]
|
|
||||||
|
|
||||||
settings:
|
|
||||||
- name: username
|
|
||||||
type: text
|
|
||||||
label: Username
|
|
||||||
- name: password
|
|
||||||
type: password
|
|
||||||
label: Password
|
|
||||||
- name: 2facode
|
|
||||||
type: text
|
|
||||||
label: 2FA code
|
|
||||||
- name: info_2fa
|
|
||||||
type: info
|
|
||||||
label: "About 2FA code"
|
|
||||||
default: "Only fill in the <b>2FA code</b> box if you have enabled <b>2FA</b> on the OshenPT Web Site. Otherwise just leave it empty."
|
|
||||||
- name: freeleech
|
|
||||||
type: checkbox
|
|
||||||
label: Search freeleech only
|
|
||||||
default: false
|
|
||||||
- name: sort
|
|
||||||
type: select
|
|
||||||
label: Sort requested from site
|
|
||||||
default: 4
|
|
||||||
options:
|
|
||||||
4: created
|
|
||||||
7: seeders
|
|
||||||
5: size
|
|
||||||
1: title
|
|
||||||
- name: type
|
|
||||||
type: select
|
|
||||||
label: Order requested from site
|
|
||||||
default: desc
|
|
||||||
options:
|
|
||||||
desc: desc
|
|
||||||
asc: asc
|
|
||||||
- name: info_tpp
|
|
||||||
type: info
|
|
||||||
label: Results Per Page
|
|
||||||
default: For best results, change the <b>Torrents per page:</b> setting to <b>100</b> on your account profile.
|
|
||||||
- name: info_activity
|
|
||||||
type: info
|
|
||||||
label: Account Inactivity
|
|
||||||
default: "Cherish your user account. Inactive accounts would be deleted based on the following rules:<ol><li>Veteran User or above would never be deleted</li><li>Elite User or above would never be deleted if parked (at User CP)</li><li>Parked accounts would be deleted if users have not logged in for more than 400 days in a row</li><li>Un-parked accounts would be deleted if users have not logged in for more than 150 days in a row</li><li>Accounts with both uploaded and downloaded amount being 0 would be deleted if users have not logged in for more than 100 days in a row.</li></ol>"
|
|
||||||
|
|
||||||
login:
|
|
||||||
path: login.php
|
|
||||||
method: form
|
|
||||||
form: form[action="takelogin.php"]
|
|
||||||
captcha:
|
|
||||||
type: image
|
|
||||||
selector: img[alt="CAPTCHA"]
|
|
||||||
input: imagestring
|
|
||||||
inputs:
|
|
||||||
username: "{{ .Config.username }}"
|
|
||||||
password: "{{ .Config.password }}"
|
|
||||||
two_step_code: "{{ .Config.2facode }}"
|
|
||||||
logout: ""
|
|
||||||
securelogin: ""
|
|
||||||
ssl: yes
|
|
||||||
trackerssl: yes
|
|
||||||
error:
|
|
||||||
- selector: td.embedded:has(h2:contains("失败"))
|
|
||||||
test:
|
|
||||||
path: index.php
|
|
||||||
selector: a[href="logout.php"]
|
|
||||||
|
|
||||||
search:
|
|
||||||
paths:
|
|
||||||
- path: torrents.php
|
|
||||||
inputs:
|
|
||||||
$raw: "{{ range .Categories }}cat{{.}}=1&{{end}}"
|
|
||||||
search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ end }}{{ if or .Query.IMDBID .Query.DoubanID }} {{ else }}{{ .Keywords }}{{ end }}{{ if .Query.DoubanID }}{{ .Query.DoubanID }}{{ else }}{{ end }}"
|
|
||||||
# 0 incldead, 1 active, 2 dead
|
|
||||||
incldead: 0
|
|
||||||
# 0 all, 1 normal, 2 free, 3 2x, 4 2xfree, 5 50%, 6 2x50%, 7 30%
|
|
||||||
spstate: "{{ if .Config.freeleech }}2{{ else }}0{{ end }}"
|
|
||||||
# 0 title, 1 descr, 3 uploader, 4 imdburl (4 does not appear to work).
|
|
||||||
search_area: "{{ if or .Query.IMDBID .Query.DoubanID }}1{{ else }}0{{ end }}"
|
|
||||||
# 0 AND, 1 OR, 2 exact
|
|
||||||
search_mode: 0
|
|
||||||
sort: "{{ .Config.sort }}"
|
|
||||||
type: "{{ .Config.type }}"
|
|
||||||
notnewword: 1
|
|
||||||
|
|
||||||
rows:
|
|
||||||
selector: table.torrents > tbody > tr:has(table.torrentname)
|
|
||||||
|
|
||||||
fields:
|
|
||||||
category:
|
|
||||||
selector: a[href^="?cat="]
|
|
||||||
attribute: href
|
|
||||||
filters:
|
|
||||||
- name: querystring
|
|
||||||
args: cat
|
|
||||||
title_default:
|
|
||||||
selector: a[href^="details.php?id="]
|
|
||||||
title_optional:
|
|
||||||
optional: true
|
|
||||||
selector: a[title][href^="details.php?id="]
|
|
||||||
attribute: title
|
|
||||||
title:
|
|
||||||
text: "{{ if .Result.title_optional }}{{ .Result.title_optional }}{{ else }}{{ .Result.title_default }}{{ end }}"
|
|
||||||
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
|
|
||||||
description:
|
|
||||||
selector: td:nth-child(2)
|
|
||||||
remove: a, b, font, img, span
|
|
||||||
# NexusPHP v1.8.11 2024-03-27
|
|
||||||
@@ -1,180 +0,0 @@
|
|||||||
---
|
|
||||||
id: ourbits
|
|
||||||
name: OurBits
|
|
||||||
description: "OurBits (HDPter) is a CHINESE Private Torrent Tracker for HD MOVIES / TV / GENERAL"
|
|
||||||
language: zh-CN
|
|
||||||
type: private
|
|
||||||
encoding: UTF-8
|
|
||||||
links:
|
|
||||||
- https://ourbits.club/
|
|
||||||
|
|
||||||
caps:
|
|
||||||
categorymappings:
|
|
||||||
- {id: 401, cat: Movies, desc: "Movies"}
|
|
||||||
- {id: 402, cat: Movies/3D, desc: "Movies 3D"}
|
|
||||||
- {id: 405, cat: TV, desc: "TV Packs"}
|
|
||||||
- {id: 410, cat: TV/Documentary, desc: "Documentaries"}
|
|
||||||
- {id: 411, cat: TV/Anime, desc: "Animations"}
|
|
||||||
- {id: 412, cat: TV, desc: "TV Episodes"}
|
|
||||||
- {id: 413, cat: TV, desc: "TV Shows"}
|
|
||||||
- {id: 414, cat: Audio/Video, desc: "Music Videos"}
|
|
||||||
- {id: 415, cat: TV/Sport, desc: "Sports"}
|
|
||||||
- {id: 416, cat: Audio, desc: "Music"}
|
|
||||||
- {id: 419, cat: TV, desc: "Concert"}
|
|
||||||
|
|
||||||
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
|
|
||||||
type: info
|
|
||||||
label: How to get the Cookie
|
|
||||||
default: "<ol><li>Login to this tracker with your browser</li><li>Open the <b>DevTools</b> panel by pressing <b>F12</b></li><li>Select the <b>Network</b> tab</li><li>Click on the <b>Doc</b> button (Chrome Browser) or <b>HTML</b> button (FireFox)</li><li>Refresh the page by pressing <b>F5</b></li><li>Click on the first row entry</li><li>Select the <b>Headers</b> tab on the Right panel</li><li>Find <b>'cookie:'</b> in the <b>Request Headers</b> section</li><li><b>Select</b> and <b>Copy</b> the whole cookie string <i>(everything after 'cookie: ')</i> and <b>Paste</b> here.</li></ol>"
|
|
||||||
- name: freeleech
|
|
||||||
type: checkbox
|
|
||||||
label: Search freeleech only
|
|
||||||
default: false
|
|
||||||
- name: sort
|
|
||||||
type: select
|
|
||||||
label: Sort requested from site
|
|
||||||
default: 4
|
|
||||||
options:
|
|
||||||
4: created
|
|
||||||
7: seeders
|
|
||||||
5: size
|
|
||||||
1: title
|
|
||||||
- name: type
|
|
||||||
type: select
|
|
||||||
label: Order requested from site
|
|
||||||
default: desc
|
|
||||||
options:
|
|
||||||
desc: desc
|
|
||||||
asc: asc
|
|
||||||
- name: info_tpp
|
|
||||||
type: info
|
|
||||||
label: Results Per Page
|
|
||||||
default: For best results, change the <b>Torrents per page:</b> setting to <b>100</b> on your account profile.
|
|
||||||
- name: info_activity
|
|
||||||
type: info
|
|
||||||
label: Account Inactivity
|
|
||||||
default: "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>Un-parked 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 7 days in a row.</li></ol>"
|
|
||||||
|
|
||||||
login:
|
|
||||||
method: cookie
|
|
||||||
inputs:
|
|
||||||
cookie: "{{ .Config.cookie }}"
|
|
||||||
test:
|
|
||||||
path: index.php
|
|
||||||
selector: a[href="logout.php"]
|
|
||||||
|
|
||||||
search:
|
|
||||||
paths:
|
|
||||||
- path: torrents.php
|
|
||||||
inputs:
|
|
||||||
$raw: "{{ range .Categories }}cat[]={{.}}&{{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, 3=uploader, 4=imdb URL, 5=douban 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
|
|
||||||
|
|
||||||
rows:
|
|
||||||
selector: table.torrents > tbody > tr:has(table.torrentname)
|
|
||||||
|
|
||||||
fields:
|
|
||||||
title_default:
|
|
||||||
selector: a[href^="details.php?id="]
|
|
||||||
title_optional:
|
|
||||||
optional: true
|
|
||||||
selector: a[title][href^="details.php?id="]
|
|
||||||
attribute: title
|
|
||||||
title:
|
|
||||||
text: "{{ if .Result.title_optional }}{{ .Result.title_optional }}{{ else }}{{ .Result.title_default }}{{ end }}"
|
|
||||||
category:
|
|
||||||
selector: a[href^="?cat="]
|
|
||||||
attribute: href
|
|
||||||
filters:
|
|
||||||
- name: querystring
|
|
||||||
args: cat
|
|
||||||
details:
|
|
||||||
selector: a[href^="details.php?id="]
|
|
||||||
attribute: href
|
|
||||||
download:
|
|
||||||
selector: a[href^="download.php?id="]
|
|
||||||
attribute: href
|
|
||||||
imdbid:
|
|
||||||
# site currently only has a badge and rating, the id is not present. just in case a future update.
|
|
||||||
selector: a[href*="imdb.com/title/tt"]
|
|
||||||
attribute: href
|
|
||||||
doubanid:
|
|
||||||
# site currently only has a badge and rating, the id is not present. just in case a future update.
|
|
||||||
selector: a[href*="movie.douban.com/subject/"]
|
|
||||||
attribute: href
|
|
||||||
date_elapsed:
|
|
||||||
# time type: time elapsed (default)
|
|
||||||
selector: td.rowfollow:nth-child(4) > span[title]
|
|
||||||
attribute: title
|
|
||||||
optional: true
|
|
||||||
filters:
|
|
||||||
- name: append
|
|
||||||
args: " +08:00" # CST
|
|
||||||
- name: dateparse
|
|
||||||
args: "yyyy-MM-dd HH:mm:ss zzz"
|
|
||||||
date_added:
|
|
||||||
# time added
|
|
||||||
selector: td.rowfollow:nth-child(4):not(:has(span))
|
|
||||||
optional: true
|
|
||||||
filters:
|
|
||||||
- name: append
|
|
||||||
args: " +08:00" # CST
|
|
||||||
- name: dateparse
|
|
||||||
args: "yyyy-MM-ddHH:mm:ss zzz"
|
|
||||||
date:
|
|
||||||
text: "{{ if or .Result.date_elapsed .Result.date_added }}{{ or .Result.date_elapsed .Result.date_added }}{{ else }}now{{ end }}"
|
|
||||||
size:
|
|
||||||
selector: td.rowfollow:nth-child(5)
|
|
||||||
seeders:
|
|
||||||
selector: td.rowfollow:nth-child(6)
|
|
||||||
leechers:
|
|
||||||
selector: td.rowfollow:nth-child(7)
|
|
||||||
grabs:
|
|
||||||
selector: td.rowfollow:nth-child(8)
|
|
||||||
downloadvolumefactor:
|
|
||||||
case:
|
|
||||||
img.pro_free: 0
|
|
||||||
img.pro_free2up: 0
|
|
||||||
img.pro_50pctdown: 0.5
|
|
||||||
img.pro_50pctdown2up: 0.5
|
|
||||||
img.pro_30pctdown: 0.3
|
|
||||||
"*": 1
|
|
||||||
uploadvolumefactor:
|
|
||||||
case:
|
|
||||||
img.pro_50pctdown2up: 2
|
|
||||||
img.pro_free2up: 2
|
|
||||||
img.pro_2up: 2
|
|
||||||
"*": 1
|
|
||||||
minimumratio:
|
|
||||||
text: 1.0
|
|
||||||
minimumseedtime:
|
|
||||||
# 2 days (as seconds = 2 x 24 x 60 x 60)
|
|
||||||
text: 172800
|
|
||||||
description:
|
|
||||||
selector: td.rowfollow:nth-child(2) > table > tbody > tr > td
|
|
||||||
remove: a, b, font, img, span
|
|
||||||
filters:
|
|
||||||
- name: replace
|
|
||||||
args: [" 剩余时间:", ""]
|
|
||||||
# Ourbits 1.1.0 (Based on NexusPHP Standard v1.5 Beta 4) 9169dad 2023-11-20
|
|
||||||
@@ -1,209 +0,0 @@
|
|||||||
---
|
|
||||||
id: p2pbg
|
|
||||||
name: P2PBG
|
|
||||||
description: "P2PBG is a BULGARIAN Private Torrent Tracker for 0DAY / GENERAL"
|
|
||||||
language: bg-BG
|
|
||||||
type: private
|
|
||||||
encoding: UTF-8
|
|
||||||
links:
|
|
||||||
- http://www.p2pbg.com/ # site does not support https ERR_CONNECTION_REFUSED
|
|
||||||
legacylinks:
|
|
||||||
- http://p2pbg.com/ # site does not support https ERR_CONNECTION_REFUSED
|
|
||||||
|
|
||||||
caps:
|
|
||||||
categorymappings:
|
|
||||||
# movies
|
|
||||||
- {id: 1, cat: Movies/SD, desc: "Movies XviD"}
|
|
||||||
- {id: 55, cat: Movies/3D, desc: "Movies 3D"}
|
|
||||||
- {id: 16, cat: Movies/HD, desc: "Movies x264"}
|
|
||||||
- {id: 11, cat: Movies/DVD, desc: "Movies DVD"}
|
|
||||||
- {id: 17, cat: Movies/HD, desc: "Movies MPEG2"}
|
|
||||||
- {id: 18, cat: Movies/BluRay, desc: "Movies BR/HD DVD"}
|
|
||||||
- {id: 7, cat: TV/Documentary, desc: "Movies Documentaries"}
|
|
||||||
- {id: 35, cat: Movies, desc: "Movies GSM"}
|
|
||||||
- {id: 34, cat: Movies, desc: "Movies BG"}
|
|
||||||
- {id: 24, cat: TV/SD, desc: "TV BG"}
|
|
||||||
- {id: 14, cat: TV, desc: "TV Shows"}
|
|
||||||
- {id: 15, cat: TV, desc: "TV Boxset"}
|
|
||||||
- {id: 38, cat: TV/Anime, desc: "TV Cartoons"}
|
|
||||||
# music
|
|
||||||
- {id: 2, cat: Audio/MP3, desc: "Music Song"}
|
|
||||||
- {id: 28, cat: Audio, desc: "Music Album"}
|
|
||||||
- {id: 29, cat: Audio, desc: "Music Discography"}
|
|
||||||
- {id: 3, cat: Audio/Video, desc: "Music DVD"}
|
|
||||||
- {id: 19, cat: Audio/Video, desc: "Music Video"}
|
|
||||||
# games
|
|
||||||
- {id: 8, cat: PC/Games, desc: "Games PC ISO"}
|
|
||||||
- {id: 9, cat: PC/Games, desc: "Games PC Rips"}
|
|
||||||
- {id: 33, cat: Console/Wii, desc: "Games Wii"}
|
|
||||||
- {id: 12, cat: Console/PS3, desc: "Games PS2"}
|
|
||||||
- {id: 23, cat: Console/PS3, desc: "Games PS3"}
|
|
||||||
- {id: 20, cat: Console/PSP, desc: "Games PSP"}
|
|
||||||
- {id: 21, cat: Console/XBox, desc: "Games XboX"}
|
|
||||||
- {id: 22, cat: Console/XBox 360, desc: "Games X360"}
|
|
||||||
# appz
|
|
||||||
- {id: 26, cat: PC/ISO, desc: "Appz PC ISO"}
|
|
||||||
- {id: 31, cat: PC/0day, desc: "Appz Ripped"}
|
|
||||||
- {id: 30, cat: PC, desc: "Appz Linux"}
|
|
||||||
- {id: 49, cat: PC/Mac, desc: "Appz MacOS"}
|
|
||||||
- {id: 27, cat: PC, desc: "Appz GSM"}
|
|
||||||
# sports
|
|
||||||
- {id: 5, cat: TV/Sport, desc: "Sport F1"}
|
|
||||||
- {id: 51, cat: TV/Sport, desc: "Sport"}
|
|
||||||
# other
|
|
||||||
- {id: 6, cat: Books, desc: "Books"}
|
|
||||||
- {id: 4, cat: Other, desc: "Other"}
|
|
||||||
- {id: 37, cat: Other/Misc, desc: "Pictures"}
|
|
||||||
- {id: 39, cat: Other, desc: "e-Learning"}
|
|
||||||
- {id: 52, cat: PC/Mobile-Other, desc: "Mobile GSM"}
|
|
||||||
- {id: 40, cat: PC/Mobile-iOS, desc: "Mobile iPhone"}
|
|
||||||
# 3x
|
|
||||||
- {id: 13, cat: XXX, desc: "XXX"}
|
|
||||||
- {id: 54, cat: XXX/x264, desc: "XXX HD"}
|
|
||||||
- {id: 32, cat: XXX/ImageSet, desc: "XXX Pictures"}
|
|
||||||
- {id: 48, cat: XXX, desc: "XXX BG Amateurs"}
|
|
||||||
- {id: 53, cat: XXX, desc: "XXX Hentai"}
|
|
||||||
- {id: 56, cat: XXX, desc: "XXX 3D"}
|
|
||||||
|
|
||||||
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: "Only the <b>Base</b> style is supported with this indexer.<br />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: data
|
|
||||||
options:
|
|
||||||
data: created
|
|
||||||
size: size
|
|
||||||
- name: type
|
|
||||||
type: select
|
|
||||||
label: Order requested from site
|
|
||||||
default: DESC
|
|
||||||
options:
|
|
||||||
DESC: desc
|
|
||||||
ASC: asc
|
|
||||||
|
|
||||||
login:
|
|
||||||
path: index.php?page=login
|
|
||||||
method: form
|
|
||||||
form: form[action="index.php?page=login"]
|
|
||||||
inputs:
|
|
||||||
uid: "{{ .Config.username }}"
|
|
||||||
pwd: "{{ .Config.password }}"
|
|
||||||
error:
|
|
||||||
- selector: td.lista span[style="color:#FF0000;"]
|
|
||||||
test:
|
|
||||||
path: index.php
|
|
||||||
selector: a[href="logout.php"]
|
|
||||||
|
|
||||||
search:
|
|
||||||
paths:
|
|
||||||
# http://p2pbg.com/index.php?page=torrents&search=%D0%9A%D0%B0%D1%82%D0%BE&category=0&active=0
|
|
||||||
- path: index.php
|
|
||||||
inputs:
|
|
||||||
page: torrents
|
|
||||||
category: "{{ if .Categories }}{{ range .Categories }}{{.}};{{end}}{{ else }}0;{{ end }}"
|
|
||||||
search: "{{ if .Keywords }}{{ .Keywords }}{{ else }}{{ end }}"
|
|
||||||
# 0 all 1, active, 2 dead
|
|
||||||
active: 0
|
|
||||||
order: "{{ .Config.sort }}"
|
|
||||||
by: "{{ .Config.type }}"
|
|
||||||
|
|
||||||
rows:
|
|
||||||
selector: table.lista tr td table.lista tr:has(a[href^="index.php?page=torrent-details"])
|
|
||||||
|
|
||||||
fields:
|
|
||||||
category:
|
|
||||||
selector: td a[href*="category="]
|
|
||||||
attribute: href
|
|
||||||
filters:
|
|
||||||
- name: querystring
|
|
||||||
args: category
|
|
||||||
title_default:
|
|
||||||
# often abbreviated
|
|
||||||
selector: td:nth-child(2) a
|
|
||||||
title_optional:
|
|
||||||
# usually full length
|
|
||||||
selector: td a[title]
|
|
||||||
attribute: title
|
|
||||||
optional: true
|
|
||||||
filters:
|
|
||||||
- name: replace
|
|
||||||
args: ["View details: ", ""]
|
|
||||||
- name: replace
|
|
||||||
args: ["Преглед на детайли: ", ""]
|
|
||||||
title:
|
|
||||||
text: "{{ if .Result.title_optional }}{{ .Result.title_optional }}{{ else }}{{ .Result.title_default }}{{ end }}"
|
|
||||||
details:
|
|
||||||
selector: td a[href*="id="]
|
|
||||||
attribute: href
|
|
||||||
download:
|
|
||||||
selector: td a[href*="id="]
|
|
||||||
attribute: href
|
|
||||||
filters:
|
|
||||||
- name: querystring
|
|
||||||
args: id
|
|
||||||
- name: prepend
|
|
||||||
args: "download.php?id="
|
|
||||||
- name: append
|
|
||||||
args: "&f={{ .Result.title }}.torrent"
|
|
||||||
poster:
|
|
||||||
selector: td a:has(img[src^="/torrentimg/pic"])
|
|
||||||
attribute: onmouseover
|
|
||||||
filters:
|
|
||||||
- name: regexp
|
|
||||||
args: src=([^\s]+)
|
|
||||||
# two flavours
|
|
||||||
date_day:
|
|
||||||
# Yesterday
|
|
||||||
# Вчера
|
|
||||||
selector: td:nth-last-child(5):not(:contains("/"))
|
|
||||||
# auto adjusted by site account profile
|
|
||||||
optional: true
|
|
||||||
filters:
|
|
||||||
- name: re_replace
|
|
||||||
args: ["(?i)сейчас|Сега", "now"]
|
|
||||||
- name: re_replace
|
|
||||||
args: ["(?i)сегодня|Днес", "Today"]
|
|
||||||
- name: re_replace
|
|
||||||
args: ["(?i)вчера|Вчера", "Yesterday"]
|
|
||||||
date_year:
|
|
||||||
# 14/03/2019
|
|
||||||
selector: td:nth-last-child(5):contains("/")
|
|
||||||
# auto adjusted by site account profile
|
|
||||||
optional: true
|
|
||||||
filters:
|
|
||||||
- name: dateparse
|
|
||||||
args: "dd/MM/yyyy"
|
|
||||||
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)
|
|
||||||
seeders:
|
|
||||||
selector: td:nth-last-child(3)
|
|
||||||
leechers:
|
|
||||||
selector: td:nth-last-child(2)
|
|
||||||
grabs:
|
|
||||||
selector: td:nth-last-child(1)
|
|
||||||
downloadvolumefactor:
|
|
||||||
text: 1
|
|
||||||
uploadvolumefactor:
|
|
||||||
text: 1
|
|
||||||
minimumratio:
|
|
||||||
text: 1.0
|
|
||||||
# xbtit customised
|
|
||||||
@@ -1,248 +0,0 @@
|
|||||||
---
|
|
||||||
id: parnuxi
|
|
||||||
name: ParnuXi
|
|
||||||
description: "ParnuXi is a RUSSIAN Public Torrent Tracker for 3X"
|
|
||||||
language: ru-RU
|
|
||||||
type: public
|
|
||||||
encoding: UTF-8
|
|
||||||
links:
|
|
||||||
- http://parnuxi.com/ # site does not support https ERR_CONNECTION_REFUSED
|
|
||||||
|
|
||||||
caps:
|
|
||||||
categorymappings:
|
|
||||||
- {id: 144, cat: XXX, desc: "Форум"}
|
|
||||||
- {id: 145, cat: XXX, desc: " Свободное общение"}
|
|
||||||
- {id: 147, cat: XXX, desc: " Помощь в поиске порно"}
|
|
||||||
- {id: 148, cat: XXX, desc: " Правила, помощь, вопросы, предложения по улучшению трекера"}
|
|
||||||
- {id: 1, cat: XXX, desc: "Порно торрент"}
|
|
||||||
- {id: 9, cat: XXX, desc: " Любительское порно"}
|
|
||||||
- {id: 48, cat: XXX, desc: " HD Любительское порно"}
|
|
||||||
- {id: 49, cat: XXX, desc: " Гонзо"}
|
|
||||||
- {id: 50, cat: XXX, desc: " HD Гонзо"}
|
|
||||||
- {id: 51, cat: XXX, desc: " Любительское. Паки и сборники"}
|
|
||||||
- {id: 11, cat: XXX, desc: " Русское порно"}
|
|
||||||
- {id: 150, cat: XXX, desc: " Порно с русскими актрисами"}
|
|
||||||
- {id: 52, cat: XXX, desc: " Русские порнофильмы"}
|
|
||||||
- {id: 53, cat: XXX, desc: " HD Порно с Русскими актрисами"}
|
|
||||||
- {id: 54, cat: XXX, desc: " Русское порно. Паки и сборники"}
|
|
||||||
- {id: 2, cat: XXX, desc: " Анал"}
|
|
||||||
- {id: 29, cat: XXX, desc: " HD Анал"}
|
|
||||||
- {id: 30, cat: XXX, desc: " Анал. Паки и сборники"}
|
|
||||||
- {id: 10, cat: XXX, desc: " Молоденькие"}
|
|
||||||
- {id: 36, cat: XXX, desc: " HD Молоденькие"}
|
|
||||||
- {id: 37, cat: XXX, desc: " Молоденькие. Паки и сборники"}
|
|
||||||
- {id: 6, cat: XXX, desc: " Групповой секс"}
|
|
||||||
- {id: 42, cat: XXX, desc: " HD Групповой секс"}
|
|
||||||
- {id: 3, cat: XXX, desc: " Взрослые"}
|
|
||||||
- {id: 31, cat: XXX, desc: " HD Взрослые"}
|
|
||||||
- {id: 32, cat: XXX, desc: " Взрослые. Паки и сборники"}
|
|
||||||
- {id: 33, cat: XXX, desc: " Бабушки"}
|
|
||||||
- {id: 7, cat: XXX, desc: " Порнозвезды"}
|
|
||||||
- {id: 43, cat: XXX, desc: " HD Порнозвезды"}
|
|
||||||
- {id: 44, cat: XXX, desc: " Порнозвезды. Паки и сборники по актрисам"}
|
|
||||||
- {id: 18, cat: XXX, desc: " Лесбиянки"}
|
|
||||||
- {id: 34, cat: XXX, desc: " HD Лесбиянки"}
|
|
||||||
- {id: 35, cat: XXX, desc: " Лесбиянки. Паки и сборники"}
|
|
||||||
- {id: 4, cat: XXX, desc: " Оральный секс и сперма"}
|
|
||||||
- {id: 38, cat: XXX, desc: " HD Оральный секс и сперма"}
|
|
||||||
- {id: 39, cat: XXX, desc: " Bukkake"}
|
|
||||||
- {id: 40, cat: XXX, desc: " Glory Hole"}
|
|
||||||
- {id: 5, cat: XXX, desc: " Толстушки"}
|
|
||||||
- {id: 41, cat: XXX, desc: " HD Толстушки"}
|
|
||||||
- {id: 13, cat: XXX, desc: " Фетиш"}
|
|
||||||
- {id: 56, cat: XXX, desc: " Фистинг, фаллоимитаторы, игрушки"}
|
|
||||||
- {id: 57, cat: XXX, desc: " Гинекологические осмотры"}
|
|
||||||
- {id: 58, cat: XXX, desc: " Переодевание, униформа"}
|
|
||||||
- {id: 59, cat: XXX, desc: " Трусики, чулки, колготки"}
|
|
||||||
- {id: 60, cat: XXX, desc: " Большие сиськи"}
|
|
||||||
- {id: 62, cat: XXX, desc: " Фут фетиш"}
|
|
||||||
- {id: 63, cat: XXX, desc: " Спящие, Пьяные"}
|
|
||||||
- {id: 64, cat: XXX, desc: " Голый спорт"}
|
|
||||||
- {id: 65, cat: XXX, desc: " Волосатые"}
|
|
||||||
- {id: 14, cat: XXX, desc: " Порно со всего мира"}
|
|
||||||
- {id: 67, cat: XXX, desc: " Азиатки"}
|
|
||||||
- {id: 68, cat: XXX, desc: " Арабки, мусульманки"}
|
|
||||||
- {id: 69, cat: XXX, desc: " Индианки"}
|
|
||||||
- {id: 70, cat: XXX, desc: " Латинки"}
|
|
||||||
- {id: 71, cat: XXX, desc: " Негритянки"}
|
|
||||||
- {id: 153, cat: XXX, desc: " Межрасовый секс"}
|
|
||||||
- {id: 15, cat: XXX, desc: " Японское порно"}
|
|
||||||
- {id: 72, cat: XXX, desc: " Японское порно с цензурой"}
|
|
||||||
- {id: 73, cat: XXX, desc: " Японское порно без цензуры"}
|
|
||||||
- {id: 74, cat: XXX, desc: " HD Японское порно без цензуры"}
|
|
||||||
- {id: 97, cat: XXX, desc: " Полнометражные фильмы"}
|
|
||||||
- {id: 98, cat: XXX, desc: " Порно с сюжетом"}
|
|
||||||
- {id: 99, cat: XXX, desc: " Порно пародии"}
|
|
||||||
- {id: 100, cat: XXX, desc: " HD Полнометражные с сюжетом"}
|
|
||||||
- {id: 101, cat: XXX, desc: " Порно без сюжета"}
|
|
||||||
- {id: 102, cat: XXX, desc: " HD Полнометражные без сюжета"}
|
|
||||||
- {id: 103, cat: XXX, desc: " Эротические и документальные"}
|
|
||||||
- {id: 152, cat: XXX, desc: " Фильмы с Русским переводом"}
|
|
||||||
- {id: 155, cat: XXX, desc: " Этнические фильмы"}
|
|
||||||
- {id: 156, cat: XXX, desc: " Лесбо-фильмы"}
|
|
||||||
- {id: 8, cat: XXX, desc: " Ретро"}
|
|
||||||
- {id: 45, cat: XXX, desc: " 90-е"}
|
|
||||||
- {id: 46, cat: XXX, desc: " 80-е"}
|
|
||||||
- {id: 47, cat: XXX, desc: " 70-е"}
|
|
||||||
- {id: 12, cat: XXX, desc: " Вуайеризм и эксгибиционизм, нудизм"}
|
|
||||||
- {id: 55, cat: XXX, desc: " HD Вуайеризм и эксгибиционизм, нудизм"}
|
|
||||||
- {id: 154, cat: XXX, desc: " Casting"}
|
|
||||||
- {id: 157, cat: XXX, desc: " Public & Reality"}
|
|
||||||
- {id: 75, cat: XXX, desc: "Нетрадиционное порно"}
|
|
||||||
- {id: 76, cat: XXX, desc: " Извращения"}
|
|
||||||
- {id: 77, cat: XXX, desc: " Изнасилования"}
|
|
||||||
- {id: 78, cat: XXX, desc: " Измена"}
|
|
||||||
- {id: 79, cat: XXX, desc: " Инцест"}
|
|
||||||
- {id: 80, cat: XXX, desc: " Писающие"}
|
|
||||||
- {id: 81, cat: XXX, desc: " Копро"}
|
|
||||||
- {id: 82, cat: XXX, desc: " Беременные"}
|
|
||||||
- {id: 89, cat: XXX, desc: " Транссексуалы"}
|
|
||||||
- {id: 90, cat: XXX, desc: " HD Транссексуалы"}
|
|
||||||
- {id: 91, cat: XXX, desc: " BDSM"}
|
|
||||||
- {id: 92, cat: XXX, desc: " HD BDSM"}
|
|
||||||
- {id: 86, cat: XXX, desc: " Геи"}
|
|
||||||
- {id: 87, cat: XXX, desc: " HD Геи"}
|
|
||||||
- {id: 88, cat: XXX, desc: " Бисексуалы"}
|
|
||||||
- {id: 93, cat: XXX, desc: " Femdom и страпон"}
|
|
||||||
- {id: 94, cat: XXX, desc: " HD Femdom и страпон"}
|
|
||||||
- {id: 95, cat: XXX, desc: " Лесби страпон"}
|
|
||||||
- {id: 83, cat: XXX, desc: " Зоо порно"}
|
|
||||||
- {id: 84, cat: XXX, desc: " Собаки"}
|
|
||||||
- {id: 85, cat: XXX, desc: " Лошади"}
|
|
||||||
- {id: 158, cat: XXX, desc: " LegalPorno"}
|
|
||||||
- {id: 96, cat: XXX, desc: "Разное"}
|
|
||||||
- {id: 119, cat: XXX, desc: " Фото, журналы, комиксы"}
|
|
||||||
- {id: 120, cat: XXX, desc: " Любительские фото"}
|
|
||||||
- {id: 121, cat: XXX, desc: " Профессиональное, студийное фото"}
|
|
||||||
- {id: 122, cat: XXX, desc: " Фото эро и порноактрис"}
|
|
||||||
- {id: 123, cat: XXX, desc: " Журналы"}
|
|
||||||
- {id: 124, cat: XXX, desc: " Комиксы, картинки"}
|
|
||||||
- {id: 104, cat: XXX, desc: " Эротика"}
|
|
||||||
- {id: 105, cat: XXX, desc: " HD Эротика"}
|
|
||||||
- {id: 106, cat: XXX, desc: " Соло, Мастурбация"}
|
|
||||||
- {id: 107, cat: XXX, desc: " Стриптиз"}
|
|
||||||
- {id: 108, cat: XXX, desc: " Web камеры, видео чаты"}
|
|
||||||
- {id: 125, cat: XXX, desc: " Хентай и мультфильмы"}
|
|
||||||
- {id: 126, cat: XXX, desc: " Лоликон"}
|
|
||||||
- {id: 127, cat: XXX, desc: " Тентакли"}
|
|
||||||
- {id: 128, cat: XXX, desc: " Шотакон"}
|
|
||||||
- {id: 129, cat: XXX, desc: " Юри"}
|
|
||||||
- {id: 130, cat: XXX, desc: " Яой"}
|
|
||||||
- {id: 109, cat: XXX, desc: " Порно для мобильных устройств"}
|
|
||||||
- {id: 110, cat: XXX, desc: " Порно для смартфонов и КПК"}
|
|
||||||
- {id: 111, cat: XXX, desc: " Порно на телефон (3GP)"}
|
|
||||||
- {id: 112, cat: XXX, desc: " Порно для iPhone, iPad"}
|
|
||||||
- {id: 113, cat: XXX, desc: " 3D Порно"}
|
|
||||||
- {id: 114, cat: XXX, desc: " Анаглиф"}
|
|
||||||
- {id: 115, cat: XXX, desc: " Анаморфная стереопара"}
|
|
||||||
- {id: 116, cat: XXX, desc: " Стереопара"}
|
|
||||||
- {id: 117, cat: XXX, desc: " Blu-Ray 3D"}
|
|
||||||
- {id: 118, cat: XXX, desc: " 3D порно фото"}
|
|
||||||
- {id: 142, cat: XXX, desc: " Порно игры"}
|
|
||||||
- {id: 131, cat: XXX, desc: " Furry & Yiff"}
|
|
||||||
- {id: 132, cat: XXX, desc: " Furry Art"}
|
|
||||||
- {id: 133, cat: XXX, desc: " Yiff Art"}
|
|
||||||
- {id: 134, cat: XXX, desc: " Yiff Video"}
|
|
||||||
- {id: 135, cat: XXX, desc: " Furpile"}
|
|
||||||
- {id: 136, cat: XXX, desc: " Comics Rus"}
|
|
||||||
- {id: 137, cat: XXX, desc: " Comics Eng"}
|
|
||||||
- {id: 138, cat: XXX, desc: " Flash"}
|
|
||||||
- {id: 139, cat: XXX, desc: " Artist"}
|
|
||||||
- {id: 140, cat: XXX, desc: " Sex in fursuit"}
|
|
||||||
- {id: 141, cat: XXX, desc: " Furry and Yiff Рассказы"}
|
|
||||||
- {id: 151, cat: XXX, desc: " Мусор"}
|
|
||||||
|
|
||||||
modes:
|
|
||||||
search: [q]
|
|
||||||
|
|
||||||
settings:
|
|
||||||
- name: sort
|
|
||||||
type: select
|
|
||||||
label: Sort requested from site
|
|
||||||
default: t
|
|
||||||
options:
|
|
||||||
t: created
|
|
||||||
ts: seeders
|
|
||||||
sz: size
|
|
||||||
i: title
|
|
||||||
- name: type
|
|
||||||
type: select
|
|
||||||
label: Order requested from site
|
|
||||||
default: d
|
|
||||||
options:
|
|
||||||
d: desc
|
|
||||||
a: asc
|
|
||||||
|
|
||||||
search:
|
|
||||||
paths:
|
|
||||||
# http://parnuxi.com/search.php?tracker_search=torrent&keywords=2020&terms=all&fp=1&author=&sc=1&sf=titleonly&sk=t&sd=d&sr=topics&st=0&ch=300&t=0&submit=%D0%9F%D0%BE%D0%B8%D1%81%D0%BA
|
|
||||||
- path: search.php
|
|
||||||
inputs:
|
|
||||||
tracker_search: torrent
|
|
||||||
keywords: "{{ if .Keywords }}{{ .Keywords }}{{ else }}{{ .Today.Year }}{{ end }}"
|
|
||||||
terms: all
|
|
||||||
fp: 1
|
|
||||||
author: ""
|
|
||||||
sc: 1
|
|
||||||
sf: titleonly
|
|
||||||
sr: topics
|
|
||||||
sk: "{{ .Config.sort }}"
|
|
||||||
sd: "{{ .Config.type }}"
|
|
||||||
st: 0
|
|
||||||
ch: 300
|
|
||||||
t: 0
|
|
||||||
submit: Перейти
|
|
||||||
$raw: "{{ range .Categories }}&fid[]={{.}}{{end}}"
|
|
||||||
|
|
||||||
rows:
|
|
||||||
selector: table.tablebg > tbody > tr:has(a[href^="./download/file.php?id="])
|
|
||||||
|
|
||||||
fields:
|
|
||||||
title:
|
|
||||||
selector: a.topictitle
|
|
||||||
details:
|
|
||||||
selector: a.topictitle
|
|
||||||
attribute: href
|
|
||||||
category:
|
|
||||||
selector: a[href^="./viewtopic.php?f="]
|
|
||||||
attribute: href
|
|
||||||
filters:
|
|
||||||
- name: querystring
|
|
||||||
args: f
|
|
||||||
download:
|
|
||||||
selector: a[href^="./download/file.php?id="]
|
|
||||||
attribute: href
|
|
||||||
size:
|
|
||||||
selector: span[title="Размер"] > b
|
|
||||||
filters:
|
|
||||||
- name: replace
|
|
||||||
args: ["ТБ", "TB"]
|
|
||||||
- name: replace
|
|
||||||
args: ["ГБ", "GB"]
|
|
||||||
- name: replace
|
|
||||||
args: ["МБ", "MB"]
|
|
||||||
- name: replace
|
|
||||||
args: ["КБ", "KB"]
|
|
||||||
seeders:
|
|
||||||
selector: span.seed
|
|
||||||
leechers:
|
|
||||||
selector: span.leech
|
|
||||||
grabs:
|
|
||||||
selector: span.complet
|
|
||||||
date_optional:
|
|
||||||
# (09.03.2020)
|
|
||||||
selector: a.topictitle
|
|
||||||
optional: true
|
|
||||||
# do not append TZ else text {{if}} will not work if date not found
|
|
||||||
filters:
|
|
||||||
- name: regexp
|
|
||||||
args: (\d{2}\.\d{2}\.\d{4})
|
|
||||||
- name: dateparse
|
|
||||||
args: "dd.MM.yyyy"
|
|
||||||
date:
|
|
||||||
text: "{{ if .Result.date_optional }}{{ .Result.date_optional }}{{ else }}now{{ end }}"
|
|
||||||
downloadvolumefactor:
|
|
||||||
text: 0
|
|
||||||
uploadvolumefactor:
|
|
||||||
text: 1
|
|
||||||
# phpBB
|
|
||||||
@@ -1,204 +0,0 @@
|
|||||||
---
|
|
||||||
id: pier720
|
|
||||||
name: 720pier
|
|
||||||
description: "720pier is a RUSSIAN Private Torrent Tracker for HD SPORTS"
|
|
||||||
language: ru-RU
|
|
||||||
type: private
|
|
||||||
encoding: UTF-8
|
|
||||||
links:
|
|
||||||
- https://720pier.ru/
|
|
||||||
legacylinks:
|
|
||||||
- http://720pier.ru/
|
|
||||||
|
|
||||||
caps:
|
|
||||||
categorymappings:
|
|
||||||
- {id: 30, cat: TV/Sport, desc: "Sports"}
|
|
||||||
- {id: 32, cat: TV/Sport, desc: "Basketball"}
|
|
||||||
- {id: 34, cat: TV/Sport, desc: "Basketball - NBA"}
|
|
||||||
- {id: 87, cat: TV/Sport, desc: "Basketball - NBA Playoffs"}
|
|
||||||
- {id: 119, cat: TV/Sport, desc: "Basketball - NBA Playoffs - 2024"}
|
|
||||||
- {id: 117, cat: TV/Sport, desc: "Basketball - NBA Playoffs - 2023"}
|
|
||||||
- {id: 113, cat: TV/Sport, desc: "Basketball - NBA Playoffs - 2022"}
|
|
||||||
- {id: 111, cat: TV/Sport, desc: "Basketball - NBA Playoffs - 2021"}
|
|
||||||
- {id: 108, cat: TV/Sport, desc: "Basketball - NBA Playoffs - 2020"}
|
|
||||||
- {id: 106, cat: TV/Sport, desc: "Basketball - NBA Playoffs - 2019"}
|
|
||||||
- {id: 103, cat: TV/Sport, desc: "Basketball - NBA Playoffs - 2018"}
|
|
||||||
- {id: 95, cat: TV/Sport, desc: "Basketball - NBA Playoffs - 2017"}
|
|
||||||
- {id: 81, cat: TV/Sport, desc: "Basketball - NBA Playoffs - 2016"}
|
|
||||||
- {id: 58, cat: TV/Sport, desc: "Basketball - NBA Classic Games"}
|
|
||||||
- {id: 105, cat: TV/Sport, desc: "Basketball - NBA The Finals"}
|
|
||||||
- {id: 52, cat: TV/Sport, desc: "Basketball - NCAA"}
|
|
||||||
- {id: 82, cat: TV/Sport, desc: "Basketball - WNBA"}
|
|
||||||
- {id: 36, cat: TV/Sport, desc: "Basketball - European basketball"}
|
|
||||||
- {id: 37, cat: TV/Sport, desc: "Basketball - World Championship"}
|
|
||||||
- {id: 51, cat: TV/Sport, desc: "Basketball - Reviews and highlights"}
|
|
||||||
- {id: 41, cat: TV/Sport, desc: "Basketball - Other"}
|
|
||||||
- {id: 38, cat: TV/Sport, desc: "Basketball - Olympic Games"}
|
|
||||||
- {id: 42, cat: TV/Sport, desc: "Football"}
|
|
||||||
- {id: 43, cat: TV/Sport, desc: "Football - NFL"}
|
|
||||||
- {id: 66, cat: TV/Sport, desc: "Football - Super Bowls"}
|
|
||||||
- {id: 53, cat: TV/Sport, desc: "Football - NCAA"}
|
|
||||||
- {id: 99, cat: TV/Sport, desc: "Football - CFL"}
|
|
||||||
- {id: 110, cat: TV/Sport, desc: "Football - USFL"}
|
|
||||||
- {id: 54, cat: TV/Sport, desc: "Football - Reviews and highlights"}
|
|
||||||
- {id: 97, cat: TV/Sport, desc: "Football - Documentaries"}
|
|
||||||
- {id: 44, cat: TV/Sport, desc: "Football - Other"}
|
|
||||||
- {id: 101, cat: TV/Sport, desc: "Football - AAF"}
|
|
||||||
- {id: 46, cat: TV/Sport, desc: "Hockey"}
|
|
||||||
- {id: 48, cat: TV/Sport, desc: "Hockey - NHL"}
|
|
||||||
- {id: 88, cat: TV/Sport, desc: "Hockey - NHL Playoffs"}
|
|
||||||
- {id: 120, cat: TV/Sport, desc: "Hockey - NHL Playoffs - 2024"}
|
|
||||||
- {id: 118, cat: TV/Sport, desc: "Hockey - NHL Playoffs - 2023"}
|
|
||||||
- {id: 114, cat: TV/Sport, desc: "Hockey - NHL Playoffs - 2022"}
|
|
||||||
- {id: 112, cat: TV/Sport, desc: "Hockey - NHL Playoffs - 2021"}
|
|
||||||
- {id: 102, cat: TV/Sport, desc: "Hockey - NHL Playoffs 2018-2020"}
|
|
||||||
- {id: 93, cat: TV/Sport, desc: "Hockey - NHL Playoffs - 2017"}
|
|
||||||
- {id: 80, cat: TV/Sport, desc: "Hockey - NHL Playoffs - 2016"}
|
|
||||||
- {id: 65, cat: TV/Sport, desc: "Hockey - Stanley Cup Finals"}
|
|
||||||
- {id: 92, cat: TV/Sport, desc: "Hockey - NCAA"}
|
|
||||||
- {id: 49, cat: TV/Sport, desc: "Hockey - World Championship"}
|
|
||||||
- {id: 68, cat: TV/Sport, desc: "Hockey - Documentaries"}
|
|
||||||
- {id: 64, cat: TV/Sport, desc: "Hockey - Reviews and highlights"}
|
|
||||||
- {id: 50, cat: TV/Sport, desc: "Hockey - Other"}
|
|
||||||
- {id: 55, cat: TV/Sport, desc: "Baseball"}
|
|
||||||
- {id: 71, cat: TV/Sport, desc: "Baseball - MLB"}
|
|
||||||
- {id: 107, cat: TV/Sport, desc: "Baseball - MLB World Series"}
|
|
||||||
- {id: 72, cat: TV/Sport, desc: "Baseball - Other"}
|
|
||||||
- {id: 85, cat: TV/Sport, desc: "Baseball - Reviews, highlights, documentaries"}
|
|
||||||
- {id: 45, cat: TV/Sport, desc: "Other sports"}
|
|
||||||
- {id: 79, cat: TV/Sport, desc: "Other sports - Rugby"}
|
|
||||||
- {id: 78, cat: TV/Sport, desc: "Other sports - Lacrosse"}
|
|
||||||
- {id: 77, cat: TV/Sport, desc: "Other sports - Cricket"}
|
|
||||||
- {id: 76, cat: TV/Sport, desc: "Other sports - Volleyball"}
|
|
||||||
- {id: 75, cat: TV/Sport, desc: "Other sports - Tennis"}
|
|
||||||
- {id: 74, cat: TV/Sport, desc: "Other sports - Fighting"}
|
|
||||||
- {id: 94, cat: TV/Sport, desc: "Other sports - Misc"}
|
|
||||||
- {id: 100, cat: TV/Sport, desc: "Soccer"}
|
|
||||||
- {id: 98, cat: TV/Sport, desc: "Soccer - FIFA World Cup"}
|
|
||||||
- {id: 56, cat: TV/Sport, desc: "Sports on tv"}
|
|
||||||
- {id: 70, cat: TV/Sport, desc: "Sports on tv ESPN Films"}
|
|
||||||
# not in search_forum drop down
|
|
||||||
- {id: 73, cat: TV/Sport, desc: "Other sports - Auto, moto racing"}
|
|
||||||
# left out 39, 60 and 40 since they are not torrent forums
|
|
||||||
|
|
||||||
modes:
|
|
||||||
search: [q]
|
|
||||||
tv-search: [q, season, ep]
|
|
||||||
|
|
||||||
settings:
|
|
||||||
- name: cookie
|
|
||||||
type: text
|
|
||||||
label: Cookie
|
|
||||||
- name: info_cookie
|
|
||||||
type: info
|
|
||||||
label: How to get the Cookie
|
|
||||||
default: "<ol><li>Login to this tracker with your browser</li><li>Open the <b>DevTools</b> panel by pressing <b>F12</b></li><li>Select the <b>Network</b> tab</li><li>Click on the <b>Doc</b> button (Chrome Browser) or <b>HTML</b> button (FireFox)</li><li>Refresh the page by pressing <b>F5</b></li><li>Click on the first row entry</li><li>Select the <b>Headers</b> tab on the Right panel</li><li>Find <b>'cookie:'</b> in the <b>Request Headers</b> section</li><li><b>Select</b> and <b>Copy</b> the whole cookie string <i>(everything after 'cookie: ')</i> and <b>Paste</b> here.</li></ol>"
|
|
||||||
- name: useragent
|
|
||||||
type: text
|
|
||||||
label: User-Agent
|
|
||||||
- name: info_useragent
|
|
||||||
type: info
|
|
||||||
label: How to get the User-Agent
|
|
||||||
default: "<ol><li>From the same place you fetched the cookie,</li><li>Find <b>'user-agent:'</b> in the <b>Request Headers</b> section</li><li><b>Select</b> and <b>Copy</b> the whole user-agent string <i>(everything after 'user-agent: ')</i> and <b>Paste</b> here.</li></ol>"
|
|
||||||
- name: sort
|
|
||||||
type: select
|
|
||||||
label: Sort requested from site
|
|
||||||
default: t
|
|
||||||
options:
|
|
||||||
t: created
|
|
||||||
ts: seeders
|
|
||||||
sz: size
|
|
||||||
i: title
|
|
||||||
- name: type
|
|
||||||
type: select
|
|
||||||
label: Order requested from site
|
|
||||||
default: d
|
|
||||||
options:
|
|
||||||
d: desc
|
|
||||||
a: asc
|
|
||||||
|
|
||||||
login:
|
|
||||||
method: cookie
|
|
||||||
inputs:
|
|
||||||
cookie: "{{ .Config.cookie }}"
|
|
||||||
test:
|
|
||||||
path: /
|
|
||||||
selector: :has(a[href^="./ucp.php?mode=logout&"])
|
|
||||||
|
|
||||||
download:
|
|
||||||
selectors:
|
|
||||||
- selector: a[href*="/download/torrent?id="]
|
|
||||||
attribute: href
|
|
||||||
|
|
||||||
search:
|
|
||||||
headers:
|
|
||||||
User-Agent: ["{{ .Config.useragent }}"]
|
|
||||||
paths:
|
|
||||||
- path: search.php
|
|
||||||
inputs:
|
|
||||||
keywords: "{{ if .Keywords }}{{ .Keywords }}{{ else }}{{ .Today.Year }}{{ end }}"
|
|
||||||
terms: all
|
|
||||||
author: ""
|
|
||||||
sc: 1
|
|
||||||
sf: firstpost
|
|
||||||
sr: topics
|
|
||||||
sk: "{{ .Config.sort }}"
|
|
||||||
sd: "{{ .Config.type }}"
|
|
||||||
st: 0
|
|
||||||
ch: 300
|
|
||||||
t: 0
|
|
||||||
submit: Search
|
|
||||||
|
|
||||||
rows:
|
|
||||||
# drop topics without size as they will not have download links in details page
|
|
||||||
selector: li.row:has(div.list-inner div[style="float:right;"])
|
|
||||||
filters:
|
|
||||||
- name: andmatch
|
|
||||||
|
|
||||||
fields:
|
|
||||||
title:
|
|
||||||
selector: a.topictitle
|
|
||||||
details:
|
|
||||||
selector: a.topictitle
|
|
||||||
attribute: href
|
|
||||||
category:
|
|
||||||
selector: a[href^="./viewforum.php?f="]
|
|
||||||
attribute: href
|
|
||||||
filters:
|
|
||||||
- name: querystring
|
|
||||||
args: f
|
|
||||||
download:
|
|
||||||
selector: a.topictitle
|
|
||||||
attribute: href
|
|
||||||
size_optional:
|
|
||||||
selector: div.list-inner div[style="float:right;"]
|
|
||||||
optional: true
|
|
||||||
size:
|
|
||||||
text: "{{ if .Result.size_optional }}{{ .Result.size_optional }}{{ else }}1 GB{{ end }}"
|
|
||||||
seeders_optional:
|
|
||||||
selector: dd.posts span.my_tt.seed
|
|
||||||
optional: true
|
|
||||||
seeders:
|
|
||||||
text: "{{ if .Result.seeders_optional }}{{ .Result.seeders_optional }}{{ else }}0{{ end }}"
|
|
||||||
leechers_optional:
|
|
||||||
selector: dd.posts span.my_tt.leech
|
|
||||||
optional: true
|
|
||||||
leechers:
|
|
||||||
text: "{{ if .Result.leechers_optional }}{{ .Result.leechers_optional }}{{ else }}0{{ end }}"
|
|
||||||
grabs_optional:
|
|
||||||
selector: dd.views span.my_tt.complet
|
|
||||||
optional: true
|
|
||||||
grabs:
|
|
||||||
text: "{{ if .Result.grabs_optional }}{{ .Result.grabs_optional }}{{ else }}0{{ end }}"
|
|
||||||
date:
|
|
||||||
selector: div.left-box time
|
|
||||||
downloadvolumefactor:
|
|
||||||
text: 1
|
|
||||||
uploadvolumefactor:
|
|
||||||
text: 1
|
|
||||||
minimumratio:
|
|
||||||
text: 0.8
|
|
||||||
minimumseedtime:
|
|
||||||
# 60 hours (as seconds = 60 x 60 x 60)
|
|
||||||
text: 216000
|
|
||||||
# phpBB
|
|
||||||
@@ -1,194 +0,0 @@
|
|||||||
---
|
|
||||||
id: pignetwork
|
|
||||||
name: PigNetwork (猪猪网)
|
|
||||||
description: "PigNetwork (猪猪网) is a CHINESE Private Torrent Tracker for HD MOVIES / TV / GENERAL"
|
|
||||||
language: zh-CN
|
|
||||||
type: private
|
|
||||||
encoding: UTF-8
|
|
||||||
requestDelay: 2
|
|
||||||
links:
|
|
||||||
- https://piggo.me/
|
|
||||||
|
|
||||||
caps:
|
|
||||||
categorymappings:
|
|
||||||
- {id: 401, cat: Movies, desc: "Movies/电影", default: true}
|
|
||||||
- {id: 404, cat: TV/Documentary, desc: "Documentaries/纪录片", default: true}
|
|
||||||
- {id: 405, cat: TV/Anime, desc: "Animations/动漫", default: true}
|
|
||||||
- {id: 402, cat: TV, desc: "TV Series/电视剧", default: true}
|
|
||||||
- {id: 403, cat: TV, desc: "TV Shows/综艺", default: true}
|
|
||||||
- {id: 406, cat: Audio/Video, desc: "MusicVideo/MV", default: true}
|
|
||||||
- {id: 407, cat: TV/Sport, desc: "Sports/体育", default: true}
|
|
||||||
- {id: 409, cat: Other, desc: "Misc/其他", default: true}
|
|
||||||
- {id: 408, cat: Audio, desc: "Music/音乐", default: true}
|
|
||||||
# kids zone
|
|
||||||
- {id: 908, cat: TV, desc: "TV Series/剧集", default: false}
|
|
||||||
- {id: 909, cat: Movies, desc: "Movies/电影", default: false}
|
|
||||||
- {id: 905, cat: Audio/Video, desc: "MusicVideo/MV", default: false}
|
|
||||||
- {id: 907, cat: Audio, desc: "Music/音乐", default: false}
|
|
||||||
|
|
||||||
modes:
|
|
||||||
search: [q]
|
|
||||||
tv-search: [q, season, ep, imdbid, doubanid]
|
|
||||||
movie-search: [q, imdbid, doubanid]
|
|
||||||
music-search: [q]
|
|
||||||
|
|
||||||
settings:
|
|
||||||
- name: cookie
|
|
||||||
type: text
|
|
||||||
label: Cookie
|
|
||||||
- name: info
|
|
||||||
type: info
|
|
||||||
label: How to get the Cookie
|
|
||||||
default: "<ol><li>Login to this tracker with your browser</li><li>Open the <b>DevTools</b> panel by pressing <b>F12</b></li><li>Select the <b>Network</b> tab</li><li>Click on the <b>Doc</b> button (Chrome Browser) or <b>HTML</b> button (FireFox)</li><li>Refresh the page by pressing <b>F5</b></li><li>Click on the first row entry</li><li>Select the <b>Headers</b> tab on the Right panel</li><li>Find <b>'cookie:'</b> in the <b>Request Headers</b> section</li><li><b>Select</b> and <b>Copy</b> the whole cookie string <i>(everything after 'cookie: ')</i> and <b>Paste</b> here.</li></ol>"
|
|
||||||
- name: useragent
|
|
||||||
type: text
|
|
||||||
label: User-Agent
|
|
||||||
- name: info_useragent
|
|
||||||
type: info
|
|
||||||
label: How to get the User-Agent
|
|
||||||
default: "<ol><li>From the same place you fetched the cookie,</li><li>Find <b>'user-agent:'</b> in the <b>Request Headers</b> section</li><li><b>Select</b> and <b>Copy</b> the whole user-agent string <i>(everything after 'user-agent: ')</i> and <b>Paste</b> here.</li></ol>"
|
|
||||||
- name: freeleech
|
|
||||||
type: checkbox
|
|
||||||
label: Search freeleech only
|
|
||||||
default: false
|
|
||||||
- name: sort
|
|
||||||
type: select
|
|
||||||
label: Sort requested from site
|
|
||||||
default: 4
|
|
||||||
options:
|
|
||||||
4: created
|
|
||||||
7: seeders
|
|
||||||
5: size
|
|
||||||
1: title
|
|
||||||
- name: type
|
|
||||||
type: select
|
|
||||||
label: Order requested from site
|
|
||||||
default: desc
|
|
||||||
options:
|
|
||||||
desc: desc
|
|
||||||
asc: asc
|
|
||||||
- name: info_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_date
|
|
||||||
type: info
|
|
||||||
label: Date Setting
|
|
||||||
default: Access your <a href="https://piggo.me/usercp.php?action=tracker" target =_blank>个人中心 网站设定 (UserCP Website settings) </a> and set <b>时间显示类型 (Time Display Type)</b> to <b>发生时间 (Time of Occurence)</b>. <i>Elapsed Time</i> is not supported by this indexer and will see zero results.
|
|
||||||
- name: info_activity
|
|
||||||
type: info
|
|
||||||
label: Account Inactivity
|
|
||||||
default: "Account retention rules:<ul><li>Nexus Master users and above will be retained forever</li><li>Elite User users and above will not have their accounts deleted after parking their accounts (in the control panel)</li><li>Users who have parked their accounts will be deleted if they do not log in for 180 consecutive days</li><li>Users whose accounts have not been parked will have their accounts deleted if they do not log in for 90 consecutive days</li><li>Users who have no traffic for 7 consecutive days or who have not logged in for 30 consecutive days (that is, the upload/download data are both 0) will be automatically banned by the system.</li></ul>"
|
|
||||||
|
|
||||||
login:
|
|
||||||
method: cookie
|
|
||||||
inputs:
|
|
||||||
cookie: "{{ .Config.cookie }}"
|
|
||||||
test:
|
|
||||||
path: index.php
|
|
||||||
selector: a[href^="/usercp.php"]
|
|
||||||
|
|
||||||
search:
|
|
||||||
paths:
|
|
||||||
- path: torrents.php
|
|
||||||
categories: [401, 402, 403, 404, 405, 406, 407, 408, 409]
|
|
||||||
- path: special.php
|
|
||||||
categories: [905, 907, 908, 909]
|
|
||||||
inputs:
|
|
||||||
$raw: "{{ range .Categories }}cat{{.}}=1&{{end}}"
|
|
||||||
search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ end }}{{ if or .Query.IMDBID .Query.DoubanID }} {{ else }}{{ .Keywords }}{{ end }}{{ if .Query.DoubanID }}{{ .Query.DoubanID }}{{ else }}{{ end }}"
|
|
||||||
# 0 incldead, 1 active, 2 dead
|
|
||||||
incldead: 0
|
|
||||||
# 0 all, 1 normal, 2 free, 3 2x, 4 2xfree, 5 50%, 6 2x50%, 7 30%
|
|
||||||
spstate: "{{ if .Config.freeleech }}2{{ else }}0{{ end }}"
|
|
||||||
# 0 title, 1 descr, 3 uploader, 4 imdburl (4 does not appear to work)
|
|
||||||
search_area: "{{ if or .Query.IMDBID .Query.DoubanID }}1{{ else }}0{{ end }}"
|
|
||||||
# 0 AND, 1 OR, 2 exact
|
|
||||||
search_mode: 0
|
|
||||||
sort: "{{ .Config.sort }}"
|
|
||||||
type: "{{ .Config.type }}"
|
|
||||||
notnewword: 1
|
|
||||||
|
|
||||||
headers:
|
|
||||||
User-Agent: ["{{ .Config.useragent }}"]
|
|
||||||
|
|
||||||
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_optional:
|
|
||||||
optional: true
|
|
||||||
selector: a[title][href^="details.php?id="]
|
|
||||||
attribute: title
|
|
||||||
title:
|
|
||||||
text: "{{ if .Result.title_optional }}{{ .Result.title_optional }}{{ else }}{{ .Result.title_default }}{{ end }}"
|
|
||||||
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:
|
|
||||||
# time added
|
|
||||||
selector: td.rowfollow:nth-child(4)
|
|
||||||
filters:
|
|
||||||
- name: append
|
|
||||||
args: " +08:00" # CST
|
|
||||||
- name: dateparse
|
|
||||||
args: "yyyy-MM-ddHH:mm:ss zzz"
|
|
||||||
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:
|
|
||||||
# 3 days (as seconds = 3 x 24 x 60 x 60)
|
|
||||||
text: 259200
|
|
||||||
description_verified:
|
|
||||||
case:
|
|
||||||
span[title="通过"], span[title="通過"], span[title="Allowed"]: "Verified:"
|
|
||||||
span[title="未审"], span[title="未審"], span[title="Not reviewed"]: "Unverified:"
|
|
||||||
span[title="拒绝"], span[title="拒絕"], span[title="Denied"]: "Banned:"
|
|
||||||
description:
|
|
||||||
selector: td.rowfollow:nth-child(2)
|
|
||||||
remove: a, b, font, img, span
|
|
||||||
filters:
|
|
||||||
- name: prepend
|
|
||||||
args: "{{ .Result.description_verified }} "
|
|
||||||
# NexusPHP v1.8.0 2023-04-16
|
|
||||||
@@ -1,178 +0,0 @@
|
|||||||
---
|
|
||||||
id: portugas-api
|
|
||||||
name: Portugas (API)
|
|
||||||
description: "Portugas is a Private PORTUGUESE Tracker"
|
|
||||||
language: pt-PT
|
|
||||||
type: private
|
|
||||||
encoding: UTF-8
|
|
||||||
links:
|
|
||||||
- https://portugas.org/
|
|
||||||
|
|
||||||
caps:
|
|
||||||
categorymappings:
|
|
||||||
- {id: 1, cat: Movies, desc: "Filmes"}
|
|
||||||
- {id: 2, cat: TV, desc: "TV"}
|
|
||||||
- {id: 3, cat: Audio, desc: "Músicas"}
|
|
||||||
- {id: 4, cat: PC/Games, desc: "Jogos"}
|
|
||||||
- {id: 5, cat: PC/0day, desc: "Appz"}
|
|
||||||
- {id: 7, cat: XXX, desc: "XXX"}
|
|
||||||
- {id: 9, cat: Books, desc: "E-Books"}
|
|
||||||
- {id: 10, cat: Movies, desc: "Animação Filmes"}
|
|
||||||
- {id: 11, cat: TV/Anime, desc: "Animação TV"}
|
|
||||||
|
|
||||||
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://portugas.org/\" target=\"_blank\">Portugas</a> account <i>My Security</i> page and clicking on the <b>API Token</b> tab."
|
|
||||||
- name: freeleech
|
|
||||||
type: checkbox
|
|
||||||
label: Search freeleech only
|
|
||||||
default: false
|
|
||||||
- name: sort
|
|
||||||
type: select
|
|
||||||
label: Sort requested from site
|
|
||||||
default: created_at
|
|
||||||
options:
|
|
||||||
created_at: created
|
|
||||||
seeders: seeders
|
|
||||||
size: size
|
|
||||||
name: title
|
|
||||||
- name: type
|
|
||||||
type: select
|
|
||||||
label: Order requested from site
|
|
||||||
default: desc
|
|
||||||
options:
|
|
||||||
desc: desc
|
|
||||||
asc: asc
|
|
||||||
- name: info_activity
|
|
||||||
type: info
|
|
||||||
label: Account Inactivity
|
|
||||||
default: "All users must log into their account at least once every 60 days, otherwise the account will be deactivated."
|
|
||||||
|
|
||||||
login:
|
|
||||||
path: /api/torrents
|
|
||||||
method: get
|
|
||||||
inputs: {} # TODO: remove in v10
|
|
||||||
error:
|
|
||||||
- selector: a[href*="/login"]
|
|
||||||
message:
|
|
||||||
text: "The API key was not accepted by {{ .Config.sitelink }}."
|
|
||||||
|
|
||||||
search:
|
|
||||||
paths:
|
|
||||||
# https://github.com/HDInnovations/UNIT3D-Community-Edition/wiki/Torrent-API-(UNIT3D-v8.x.x)
|
|
||||||
# https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php#L476
|
|
||||||
- path: "/api/torrents/filter"
|
|
||||||
response:
|
|
||||||
type: json
|
|
||||||
|
|
||||||
headers:
|
|
||||||
Authorization: ["Bearer {{ .Config.apikey }}"]
|
|
||||||
|
|
||||||
inputs:
|
|
||||||
# if we have an id based search, add Season and Episode as query in name for UNIT3D < v6. Else pass S/E Params for UNIT3D >= v6
|
|
||||||
name: "{{ .Keywords }}"
|
|
||||||
$raw: "{{ if .Query.Season }}&seasonNumber={{ .Query.Season }}{{ else }}{{ end }}{{ if .Query.Ep }}&episodeNumber={{ .Query.Ep }}{{ else }}{{ end }}{{ if .Query.TMDBID }}&tmdbId={{ .Query.TMDBID }}{{ else }}{{ end }}{{ if .Query.IMDBIDShort }}&imdbId={{ .Query.IMDBIDShort }}{{ else }}{{ end }}{{ if .Query.TVDBID }}&tvdbId={{ .Query.TVDBID }}{{ else }}{{ end }}{{ range .Categories }}&categories[]={{.}}{{end}}{{ if .Config.freeleech }}&free=1{{ 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
|
|
||||||
_audiopt:
|
|
||||||
selector: audio_pt
|
|
||||||
title:
|
|
||||||
selector: name
|
|
||||||
filters:
|
|
||||||
- name: append
|
|
||||||
args: "{{ if eq .Result._audiopt \"1\" }} Portuguese PT-PT{{ else }}{{ 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)^None$", ""]
|
|
||||||
- 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: [" & ", "_&_"]
|
|
||||||
description:
|
|
||||||
text: "{{ .Result.genre }}"
|
|
||||||
files:
|
|
||||||
selector: num_file
|
|
||||||
seeders:
|
|
||||||
selector: seeders
|
|
||||||
leechers:
|
|
||||||
selector: leechers
|
|
||||||
grabs:
|
|
||||||
selector: times_completed
|
|
||||||
date:
|
|
||||||
# "created_at": "2021-10-18T00:34:50.000000Z" is returned by Newtonsoft.Json.Linq as 18/10/2021 00:34:50
|
|
||||||
selector: created_at
|
|
||||||
filters:
|
|
||||||
- name: append
|
|
||||||
args: " +00:00" # GMT
|
|
||||||
- name: dateparse
|
|
||||||
args: "MM/dd/yyyy HH:mm:ss zzz"
|
|
||||||
size:
|
|
||||||
selector: size
|
|
||||||
downloadvolumefactor:
|
|
||||||
# api returns 0%, 25%, 50%, 75%, 100%
|
|
||||||
selector: freeleech
|
|
||||||
case:
|
|
||||||
0%: 1 # not free
|
|
||||||
25%: 0.75
|
|
||||||
50%: 0.5
|
|
||||||
75%: 0.25
|
|
||||||
100%: 0 # freeleech
|
|
||||||
"*": 0 # catch errors
|
|
||||||
uploadvolumefactor:
|
|
||||||
# api returns 0=false, 1=true
|
|
||||||
selector: double_upload
|
|
||||||
case:
|
|
||||||
0: 1 # normal
|
|
||||||
1: 2 # double
|
|
||||||
minimumratio:
|
|
||||||
text: 1.1
|
|
||||||
minimumseedtime:
|
|
||||||
# 3 days (as seconds = 3 x 24 x 60 x 60)
|
|
||||||
text: 259200
|
|
||||||
# json UNIT3D 6.3.0 (custom)
|
|
||||||
@@ -1,201 +0,0 @@
|
|||||||
---
|
|
||||||
id: ptchina
|
|
||||||
name: PTChina (铂金学院)
|
|
||||||
description: "PTChina (铂金学院) is a CHINESE Private site for MOVIES / TV"
|
|
||||||
language: zh-CN
|
|
||||||
type: private
|
|
||||||
encoding: UTF-8
|
|
||||||
links:
|
|
||||||
- https://ptchina.org/
|
|
||||||
|
|
||||||
caps:
|
|
||||||
categorymappings:
|
|
||||||
- {id: 401, cat: Movies, desc: "Movies/电影"}
|
|
||||||
- {id: 402, cat: TV, desc: "TV Series/电视剧"}
|
|
||||||
- {id: 404, cat: TV/Documentary, desc: "Documentaries/纪录片"}
|
|
||||||
|
|
||||||
modes:
|
|
||||||
search: [q]
|
|
||||||
tv-search: [q, season, ep, imdbid, doubanid]
|
|
||||||
movie-search: [q, imdbid, doubanid]
|
|
||||||
|
|
||||||
settings:
|
|
||||||
- name: username
|
|
||||||
type: text
|
|
||||||
label: Username
|
|
||||||
- name: password
|
|
||||||
type: password
|
|
||||||
label: Password
|
|
||||||
- name: 2facode
|
|
||||||
type: text
|
|
||||||
label: 2FA code
|
|
||||||
- name: info_2fa
|
|
||||||
type: info
|
|
||||||
label: "About 2FA code"
|
|
||||||
default: "Only fill in the <b>2FA code</b> box if you have enabled <b>2FA</b> on the PTChina 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 be deleted after parking (in the control panel)</li><li>Users with a parked account will be deleted if they do not log in for 400 consecutive days</li><li>Users with a non-parked account will be deleted if they do not log in for 150 consecutive days</li><li>Users with no traffic (ie, upload/download data are both 0) will be deleted if they do not log in for 100 consecutive days.</li></ol>"
|
|
||||||
|
|
||||||
login:
|
|
||||||
path: login.php
|
|
||||||
method: form
|
|
||||||
form: form[action="takelogin.php"]
|
|
||||||
captcha:
|
|
||||||
type: image
|
|
||||||
selector: img[alt="CAPTCHA"]
|
|
||||||
input: imagestring
|
|
||||||
inputs:
|
|
||||||
secret: ""
|
|
||||||
username: "{{ .Config.username }}"
|
|
||||||
password: "{{ .Config.password }}"
|
|
||||||
two_step_code: "{{ .Config.2facode }}"
|
|
||||||
logout: ""
|
|
||||||
securelogin: ""
|
|
||||||
ssl: yes
|
|
||||||
trackerssl: yes
|
|
||||||
error:
|
|
||||||
- selector: td.embedded:has(h2:contains("失败"))
|
|
||||||
test:
|
|
||||||
path: index.php
|
|
||||||
selector: a[href="logout.php"]
|
|
||||||
|
|
||||||
search:
|
|
||||||
paths:
|
|
||||||
- path: torrents.php
|
|
||||||
inputs:
|
|
||||||
$raw: "{{ range .Categories }}cat{{.}}=1&{{end}}"
|
|
||||||
search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ end }}{{ if or .Query.IMDBID .Query.DoubanID }} {{ else }}{{ .Keywords }}{{ end }}{{ if .Query.DoubanID }}{{ .Query.DoubanID }}{{ else }}{{ end }}"
|
|
||||||
# 0 incldead, 1 active, 2 dead
|
|
||||||
incldead: 0
|
|
||||||
# 0 all, 1 normal, 2 free, 3 2x, 4 2xfree, 5 50%, 6 2x50%, 7 30%
|
|
||||||
spstate: "{{ if .Config.freeleech }}2{{ else }}0{{ end }}"
|
|
||||||
# 0 title, 1 descr, 3 uploader, 4 imdburl (not working)
|
|
||||||
search_area: "{{ if or .Query.IMDBID .Query.DoubanID }}1{{ else }}0{{ end }}"
|
|
||||||
# 0 AND, 1 OR, 2 exact
|
|
||||||
search_mode: 0
|
|
||||||
sort: "{{ .Config.sort }}"
|
|
||||||
type: "{{ .Config.type }}"
|
|
||||||
notnewword: 1
|
|
||||||
|
|
||||||
rows:
|
|
||||||
selector: table.torrents > tbody > tr:has(a[href^="details.php?id="])
|
|
||||||
|
|
||||||
fields:
|
|
||||||
category:
|
|
||||||
selector: a[href^="?cat="]
|
|
||||||
attribute: href
|
|
||||||
filters:
|
|
||||||
- name: querystring
|
|
||||||
args: cat
|
|
||||||
title_default:
|
|
||||||
selector: a[href^="details.php?id="]
|
|
||||||
title_optional:
|
|
||||||
optional: true
|
|
||||||
selector: a[title][href^="details.php?id="]
|
|
||||||
attribute: title
|
|
||||||
title:
|
|
||||||
text: "{{ if .Result.title_optional }}{{ .Result.title_optional }}{{ else }}{{ .Result.title_default }}{{ end }}"
|
|
||||||
details:
|
|
||||||
selector: a[href^="details.php?id="]
|
|
||||||
attribute: href
|
|
||||||
download:
|
|
||||||
selector: a[href^="download.php?id="]
|
|
||||||
attribute: href
|
|
||||||
# site does not have posters enabled. just in case a future update.
|
|
||||||
poster:
|
|
||||||
selector: img[data-src]
|
|
||||||
attribute: data-src
|
|
||||||
imdbid:
|
|
||||||
# site currently only has a badge and rating, the id is not present. just in case a future update.
|
|
||||||
selector: a[href*="imdb.com/title/tt"]
|
|
||||||
attribute: href
|
|
||||||
doubanid:
|
|
||||||
# site currently only has a badge and rating, the id is not present. just in case a future update.
|
|
||||||
selector: a[href*="movie.douban.com/subject/"]
|
|
||||||
attribute: href
|
|
||||||
date_elapsed:
|
|
||||||
# time type: time elapsed (default)
|
|
||||||
selector: td.rowfollow:nth-child(4) > span[title]
|
|
||||||
attribute: title
|
|
||||||
optional: true
|
|
||||||
filters:
|
|
||||||
- name: append
|
|
||||||
args: " +08:00" # CST
|
|
||||||
- name: dateparse
|
|
||||||
args: "yyyy-MM-dd HH:mm:ss zzz"
|
|
||||||
date_added:
|
|
||||||
# time added
|
|
||||||
selector: td.rowfollow:nth-child(4):not(:has(span))
|
|
||||||
optional: true
|
|
||||||
filters:
|
|
||||||
- name: append
|
|
||||||
args: " +08:00" # CST
|
|
||||||
- name: dateparse
|
|
||||||
args: "yyyy-MM-ddHH:mm:ss zzz"
|
|
||||||
date:
|
|
||||||
text: "{{ if or .Result.date_elapsed .Result.date_added }}{{ or .Result.date_elapsed .Result.date_added }}{{ else }}now{{ end }}"
|
|
||||||
size:
|
|
||||||
selector: td.rowfollow:nth-child(5)
|
|
||||||
seeders:
|
|
||||||
selector: td.rowfollow:nth-child(6)
|
|
||||||
leechers:
|
|
||||||
selector: td.rowfollow:nth-child(7)
|
|
||||||
grabs:
|
|
||||||
selector: td.rowfollow:nth-child(8)
|
|
||||||
downloadvolumefactor:
|
|
||||||
case:
|
|
||||||
img.pro_free: 0
|
|
||||||
img.pro_free2up: 0
|
|
||||||
img.pro_50pctdown: 0.5
|
|
||||||
img.pro_50pctdown2up: 0.5
|
|
||||||
img.pro_30pctdown: 0.3
|
|
||||||
"*": 1
|
|
||||||
uploadvolumefactor:
|
|
||||||
case:
|
|
||||||
img.pro_50pctdown2up: 2
|
|
||||||
img.pro_free2up: 2
|
|
||||||
img.pro_2up: 2
|
|
||||||
"*": 1
|
|
||||||
minimumratio:
|
|
||||||
text: 1.0
|
|
||||||
minimumseedtime:
|
|
||||||
# 1 day (as seconds = 24 x 60 x 60)
|
|
||||||
text: 86400
|
|
||||||
description_verified:
|
|
||||||
case:
|
|
||||||
span[title="通过"], span[title="通過"], span[title="Allowed"]: "Verified:"
|
|
||||||
span[title="未审"], span[title="未審"], span[title="Not reviewed"]: "Unverified:"
|
|
||||||
span[title="拒绝"], span[title="拒絕"], span[title="Denied"]: "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-13
|
|
||||||
@@ -1,194 +0,0 @@
|
|||||||
---
|
|
||||||
id: pterclub
|
|
||||||
name: PTerClub (PT之友俱乐部)
|
|
||||||
description: "PTerClub (PT之友俱乐部) is a CHINESE Private Torrent Tracker for HD MUSIC VIDEOS, MOVIES, TV & ANIME"
|
|
||||||
language: zh-CN
|
|
||||||
type: private
|
|
||||||
encoding: UTF-8
|
|
||||||
links:
|
|
||||||
- https://pterclub.com/
|
|
||||||
|
|
||||||
caps:
|
|
||||||
categorymappings:
|
|
||||||
- {id: 401, cat: Movies, desc: "电影 (Movie)"}
|
|
||||||
- {id: 404, cat: TV, desc: "电视剧 (TV Play)"}
|
|
||||||
- {id: 403, cat: TV/Anime, desc: "动漫 (Anime)"}
|
|
||||||
- {id: 405, cat: TV, desc: "综艺 (TV Show)"}
|
|
||||||
- {id: 413, cat: Audio/Video, desc: "音乐短片 (MV)"}
|
|
||||||
- {id: 418, cat: Audio/Video, desc: "舞台演出(Stage Performance)"}
|
|
||||||
- {id: 406, cat: Audio, desc: "音乐 (Music)"}
|
|
||||||
- {id: 402, cat: TV/Documentary, desc: "纪录片 (Documentary)"}
|
|
||||||
- {id: 407, cat: TV/Sport, desc: "体育 (Sport)"}
|
|
||||||
- {id: 408, cat: Books, desc: "电子书 (Ebook)"}
|
|
||||||
- {id: 409, cat: Console, desc: "游戏 (Game)"}
|
|
||||||
- {id: 410, cat: PC, desc: "软件 (Software)"}
|
|
||||||
- {id: 411, cat: Other, desc: "学习 (Study)"}
|
|
||||||
- {id: 412, cat: Other, desc: "其它 (Other)"}
|
|
||||||
|
|
||||||
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
|
|
||||||
type: info
|
|
||||||
label: How to get the Cookie
|
|
||||||
default: "<ol><li>Login to this tracker with your browser</li><li>Open the <b>DevTools</b> panel by pressing <b>F12</b></li><li>Select the <b>Network</b> tab</li><li>Click on the <b>Doc</b> button (Chrome Browser) or <b>HTML</b> button (FireFox)</li><li>Refresh the page by pressing <b>F5</b></li><li>Click on the first row entry</li><li>Select the <b>Headers</b> tab on the Right panel</li><li>Find <b>'cookie:'</b> in the <b>Request Headers</b> section</li><li><b>Select</b> and <b>Copy</b> the whole cookie string <i>(everything after 'cookie: ')</i> and <b>Paste</b> here.</li></ol>"
|
|
||||||
- name: useragent
|
|
||||||
type: text
|
|
||||||
label: User-Agent
|
|
||||||
- name: info_useragent
|
|
||||||
type: info
|
|
||||||
label: How to get the User-Agent
|
|
||||||
default: "<ol><li>From the same place you fetched the cookie,</li><li>Find <b>'user-agent:'</b> in the <b>Request Headers</b> section</li><li><b>Select</b> and <b>Copy</b> the whole user-agent string <i>(everything after 'user-agent: ')</i> and <b>Paste</b> here.</li></ol>"
|
|
||||||
- name: freeleech
|
|
||||||
type: checkbox
|
|
||||||
label: Search freeleech only
|
|
||||||
default: false
|
|
||||||
- name: sort
|
|
||||||
type: select
|
|
||||||
label: Sort requested from site
|
|
||||||
default: 4
|
|
||||||
options:
|
|
||||||
4: created
|
|
||||||
7: seeders
|
|
||||||
5: size
|
|
||||||
1: title
|
|
||||||
- name: type
|
|
||||||
type: select
|
|
||||||
label: Order requested from site
|
|
||||||
default: desc
|
|
||||||
options:
|
|
||||||
desc: desc
|
|
||||||
asc: asc
|
|
||||||
- name: info_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>All accounts will be permanently protected and will not be deleted; however, due to site security, some users will be temporarily banned due to activity rules</li><li>New users with no traffic changes will be disabled after 7 days of registration (not the actual download volume)</li><li>Those who download free torrents without generating any upload volume, or simply auxiliary torrents that generate magic power without any uploads will still be banned</li><li>Users with a non-parked account will be disabled if they do not log in for 60 consecutive days</li><li>Users with a parked account will be disabled if they do not log in for 180 consecutive days</li><li>Angora/Veteran User and above will not be disabled after parking</li><li>Sichuan Jianzhou Cat/Nexus Master users and above will be retained forever.</li></ol>"
|
|
||||||
|
|
||||||
login:
|
|
||||||
method: cookie
|
|
||||||
inputs:
|
|
||||||
cookie: "{{ .Config.cookie }}"
|
|
||||||
test:
|
|
||||||
path: index.php?&noredir=1
|
|
||||||
selector: a[data-url="logout.php"]
|
|
||||||
|
|
||||||
search:
|
|
||||||
headers:
|
|
||||||
User-Agent: ["{{ .Config.useragent }}"]
|
|
||||||
|
|
||||||
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, 3 uploader, 4 imdburl, 5 DoubanID
|
|
||||||
search_area: "{{ if .Query.IMDBID }}4{{ else }}{{ end }}{{ if .Query.DoubanID }}5{{ 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(table.torrentname)
|
|
||||||
|
|
||||||
fields:
|
|
||||||
category:
|
|
||||||
selector: a[href^="?cat="]
|
|
||||||
attribute: href
|
|
||||||
filters:
|
|
||||||
- name: querystring
|
|
||||||
args: cat
|
|
||||||
title_default:
|
|
||||||
selector: a[href^="details.php?id="], a[href^="detailsgame.php?"]
|
|
||||||
title_optional:
|
|
||||||
optional: true
|
|
||||||
selector: a[title][href^="details.php?id="], a[title][href^="detailsgame.php?id="]
|
|
||||||
attribute: title
|
|
||||||
title:
|
|
||||||
text: "{{ if .Result.title_optional }}{{ .Result.title_optional }}{{ else }}{{ .Result.title_default }}{{ end }}"
|
|
||||||
details:
|
|
||||||
selector: a[href^="details.php?id="], a[href^="detailsgame.php?"]
|
|
||||||
attribute: href
|
|
||||||
download:
|
|
||||||
selector: a[href^="download.php?id="]
|
|
||||||
attribute: href
|
|
||||||
poster:
|
|
||||||
selector: img[data-src]
|
|
||||||
attribute: data-src
|
|
||||||
imdbid:
|
|
||||||
selector: a[href$="&search_area=4"]
|
|
||||||
attribute: href
|
|
||||||
doubanid:
|
|
||||||
selector: a[href$="&search_area=5"]
|
|
||||||
attribute: href
|
|
||||||
# staff have extra columns at the start and end of a row, so we have to float the next lot of selectors off an anchor
|
|
||||||
_anchor1:
|
|
||||||
selector: td:has(a[href^="comment.php?"])
|
|
||||||
optional: true
|
|
||||||
date_elapsed:
|
|
||||||
# time type: time elapsed (default)
|
|
||||||
selector: "td:has(a[{{ if .Result._anchor1 }}href^=\"comment.php\"{{ else }}href$=\"startcomments\"{{ end }}]) ~ td > 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:has(a[{{ if .Result._anchor1 }}href^=\"comment.php\"{{ else }}href$=\"startcomments\"{{ end }}]) ~ td:not(:has(span[title]))"
|
|
||||||
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:has(a[{{ if .Result._anchor1 }}href^=\"comment.php\"{{ else }}href$=\"startcomments\"{{ end }}]) ~ td ~ td"
|
|
||||||
seeders:
|
|
||||||
selector: "td:has(a[{{ if .Result._anchor1 }}href^=\"comment.php\"{{ else }}href$=\"startcomments\"{{ end }}]) ~ td ~ td ~ td"
|
|
||||||
leechers:
|
|
||||||
selector: "td:has(a[{{ if .Result._anchor1 }}href^=\"comment.php\"{{ else }}href$=\"startcomments\"{{ end }}]) ~ td ~ td ~ td ~ td"
|
|
||||||
grabs:
|
|
||||||
selector: "td:has(a[{{ if .Result._anchor1 }}href^=\"comment.php\"{{ else }}href$=\"startcomments\"{{ end }}]) ~ td ~ td ~ td ~ td ~ td"
|
|
||||||
downloadvolumefactor:
|
|
||||||
case:
|
|
||||||
img.pro_free: 0
|
|
||||||
img.pro_free2up: 0
|
|
||||||
img.pro_50pctdown: 0.5
|
|
||||||
img.pro_50pctdown2up: 0.5
|
|
||||||
img.pro_30pctdown: 0.3
|
|
||||||
"*": 1
|
|
||||||
uploadvolumefactor:
|
|
||||||
case:
|
|
||||||
img.pro_50pctdown2up: 2
|
|
||||||
img.pro_free2up: 2
|
|
||||||
img.pro_2up: 2
|
|
||||||
"*": 1
|
|
||||||
minimumratio:
|
|
||||||
text: 0.9
|
|
||||||
description:
|
|
||||||
selector: td:has(table.torrentname)
|
|
||||||
remove: a, img
|
|
||||||
# NexusPHP prod#60d2fdc724a 2023-05-10
|
|
||||||
@@ -1,163 +0,0 @@
|
|||||||
---
|
|
||||||
id: ptsbao
|
|
||||||
name: PTSBAO (烧包)
|
|
||||||
description: "PTSBAO (烧包) is a CHINESE Private Torrent Tracker for HD MOVIES / TV"
|
|
||||||
language: zh-CN
|
|
||||||
type: private
|
|
||||||
encoding: UTF-8
|
|
||||||
followredirect: true
|
|
||||||
links:
|
|
||||||
- https://ptsbao.club/
|
|
||||||
|
|
||||||
caps:
|
|
||||||
categorymappings:
|
|
||||||
- {id: 401, cat: Movies, desc: "Movies(电影)"}
|
|
||||||
- {id: 402, cat: TV, desc: "TV Series(电视剧)"}
|
|
||||||
- {id: 403, cat: TV/Other, desc: "TV Shows(电视节目)"}
|
|
||||||
- {id: 405, cat: TV/Anime, desc: "Animations(动漫)"}
|
|
||||||
- {id: 414, cat: Audio, desc: "Music(音乐)"}
|
|
||||||
- {id: 404, cat: TV/Documentary, desc: "Documentaries(记录片)"}
|
|
||||||
- {id: 423, cat: Movies, desc: "Movies Original(原创)"}
|
|
||||||
- {id: 409, cat: Other, desc: "Misc(其他)"}
|
|
||||||
- {id: 424, cat: Other, desc: "Limit(限制)"}
|
|
||||||
|
|
||||||
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
|
|
||||||
type: info
|
|
||||||
label: How to get the Cookie
|
|
||||||
default: "<ol><li>Login to this tracker with your browser</li><li>Open the <b>DevTools</b> panel by pressing <b>F12</b></li><li>Select the <b>Network</b> tab</li><li>Click on the <b>Doc</b> button (Chrome Browser) or <b>HTML</b> button (FireFox)</li><li>Refresh the page by pressing <b>F5</b></li><li>Click on the first row entry</li><li>Select the <b>Headers</b> tab on the Right panel</li><li>Find <b>'cookie:'</b> in the <b>Request Headers</b> section</li><li><b>Select</b> and <b>Copy</b> the whole cookie string <i>(everything after 'cookie: ')</i> and <b>Paste</b> here.</li></ol>"
|
|
||||||
- name: freeleech
|
|
||||||
type: checkbox
|
|
||||||
label: Search freeleech only
|
|
||||||
default: false
|
|
||||||
- name: sort
|
|
||||||
type: select
|
|
||||||
label: Sort requested from site
|
|
||||||
default: 4
|
|
||||||
options:
|
|
||||||
4: created
|
|
||||||
7: seeders
|
|
||||||
5: size
|
|
||||||
1: title
|
|
||||||
- name: type
|
|
||||||
type: select
|
|
||||||
label: Order requested from site
|
|
||||||
default: desc
|
|
||||||
options:
|
|
||||||
desc: desc
|
|
||||||
asc: asc
|
|
||||||
- name: info_tpp
|
|
||||||
type: info
|
|
||||||
label: Results Per Page
|
|
||||||
default: For best results, change the <b>Torrents per page:</b> setting to <b>100</b> on your account profile.
|
|
||||||
|
|
||||||
login:
|
|
||||||
method: cookie
|
|
||||||
inputs:
|
|
||||||
cookie: "{{ .Config.cookie }}"
|
|
||||||
test:
|
|
||||||
path: index.php
|
|
||||||
selector: a[href="logout.php"]
|
|
||||||
|
|
||||||
search:
|
|
||||||
paths:
|
|
||||||
- path: torrents.php
|
|
||||||
inputs:
|
|
||||||
$raw: "{{ range .Categories }}cat{{.}}=1&{{end}}"
|
|
||||||
search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ .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
|
|
||||||
# does not return imdb link in results
|
|
||||||
|
|
||||||
rows:
|
|
||||||
selector: table.torrents > tbody > tr:has(a[href^="download.php?id="])
|
|
||||||
|
|
||||||
fields:
|
|
||||||
category:
|
|
||||||
selector: a[href^="torrents.php?cat="]
|
|
||||||
attribute: href
|
|
||||||
filters:
|
|
||||||
- name: querystring
|
|
||||||
args: cat
|
|
||||||
title_default:
|
|
||||||
selector: table.torrentname td a[href^="details.php?id="]
|
|
||||||
title_optional:
|
|
||||||
optional: true
|
|
||||||
selector: a[title][href^="details.php?id="]
|
|
||||||
attribute: title
|
|
||||||
title:
|
|
||||||
text: "{{ if .Result.title_optional }}{{ .Result.title_optional }}{{ else }}{{ .Result.title_default }}{{ end }}"
|
|
||||||
details:
|
|
||||||
selector: a[href^="details.php?id="]
|
|
||||||
attribute: href
|
|
||||||
download:
|
|
||||||
selector: a[href^="download.php?id="]
|
|
||||||
attribute: href
|
|
||||||
poster:
|
|
||||||
selector: img.tooltip
|
|
||||||
attribute: src
|
|
||||||
filters:
|
|
||||||
- name: replace
|
|
||||||
args: ["pic/imdb_pic/nophoto.gif", ""]
|
|
||||||
date_elapsed:
|
|
||||||
# time type: time elapsed (default)
|
|
||||||
selector: td.rowfollow:nth-child(5) > 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(5):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(6)
|
|
||||||
seeders:
|
|
||||||
selector: td.rowfollow:nth-child(7)
|
|
||||||
leechers:
|
|
||||||
selector: td.rowfollow:nth-child(8)
|
|
||||||
grabs:
|
|
||||||
selector: td.rowfollow:nth-child(9)
|
|
||||||
downloadvolumefactor:
|
|
||||||
case:
|
|
||||||
img.pro_free: 0
|
|
||||||
img.pro_free2up: 0
|
|
||||||
img.pro_50pctdown: 0.5
|
|
||||||
img.pro_50pctdown2up: 0.5
|
|
||||||
img.pro_30pctdown: 0.3
|
|
||||||
"*": 1
|
|
||||||
uploadvolumefactor:
|
|
||||||
case:
|
|
||||||
img.pro_50pctdown2up: 2
|
|
||||||
img.pro_free2up: 2
|
|
||||||
img.pro_2up: 2
|
|
||||||
"*": 1
|
|
||||||
# NexusPHP custom 22082802
|
|
||||||
@@ -1,199 +0,0 @@
|
|||||||
---
|
|
||||||
id: pttime
|
|
||||||
name: PTTime
|
|
||||||
description: "PTTime is a ratioless CHINESE Private Torrent Tracker for HD MOVIES / TV / GENERAL"
|
|
||||||
language: zh-CN
|
|
||||||
type: private
|
|
||||||
encoding: UTF-8
|
|
||||||
requestDelay: 2
|
|
||||||
links:
|
|
||||||
- https://www.pttime.org/
|
|
||||||
|
|
||||||
caps:
|
|
||||||
categorymappings:
|
|
||||||
- {id: 401, cat: Movies, desc: "Movies(电影)", 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/Sport, desc: "Sport(体育、竞技、武术及相关)", default: true}
|
|
||||||
- {id: 406, cat: PC/Games, desc: "Games(游戏及相关)", default: true}
|
|
||||||
- {id: 408, cat: Audio, desc: "Music(音乐、专辑、MV、演唱会)", default: true}
|
|
||||||
- {id: 409, cat: Other, desc: "Art(舞蹈、歌剧、戏曲、相声、评书等)", default: true}
|
|
||||||
- {id: 411, cat: Other, desc: "Science(科学、知识、技能)", default: true}
|
|
||||||
- {id: 412, cat: Other, desc: "School(应试、考级、初中以上教育)", default: true}
|
|
||||||
- {id: 413, cat: Books, desc: "Book(书籍、有声书)", default: true}
|
|
||||||
- {id: 420, cat: PC, desc: "Code(IT、编程、大数据、人工智能", default: true}
|
|
||||||
- {id: 430, cat: TV/Anime, desc: "Animate(3D动画、2.5次元)", default: true}
|
|
||||||
- {id: 431, cat: TV/Anime, desc: "ACGN(二次元)", default: true}
|
|
||||||
- {id: 432, cat: TV/Other, desc: "Baby(婴幼、早教、小学及相关)", default: true}
|
|
||||||
- {id: 450, cat: Other, desc: "Resource(资源、素材、模板)", default: true}
|
|
||||||
- {id: 451, cat: PC, desc: "Software(软件、系统、 程序、APP等)", default: true}
|
|
||||||
- {id: 490, cat: Other, desc: "Other(其它)", default: true}
|
|
||||||
- {id: 440, cat: XXX, desc: "9kg-AV(步兵/无码)", default: false}
|
|
||||||
- {id: 441, cat: XXX, desc: "9kg-Sex(骑兵/有码)", default: false}
|
|
||||||
- {id: 442, cat: XXX, desc: "9kg-III(三级片、限制级电影)", default: false}
|
|
||||||
- {id: 443, cat: XXX, desc: "9kg-H动漫", default: false}
|
|
||||||
- {id: 444, cat: XXX, desc: "9kg-H游戏", default: false}
|
|
||||||
- {id: 445, cat: XXX, desc: "9kg-H书籍(书籍、有声书)", default: false}
|
|
||||||
- {id: 446, cat: XXX, desc: "9kg-H写真(图片、私拍、短视频)", default: false}
|
|
||||||
- {id: 447, cat: XXX, desc: "9kg-H音频(ASMR、音乐、音频)", 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: 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: takelogin.php
|
|
||||||
method: post
|
|
||||||
inputs:
|
|
||||||
loginmethod: username
|
|
||||||
username: "{{ .Config.username }}"
|
|
||||||
password: "{{ .Config.password }}"
|
|
||||||
dutime: month
|
|
||||||
ssl: 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, 408, 409, 411, 412, 413, 420, 430, 431, 432, 450, 451, 490]
|
|
||||||
- path: adults.php
|
|
||||||
categories: [440, 441, 442, 443, 444, 445, 446, 447]
|
|
||||||
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, 2 smalldesc, 3 uploader, 4 imdburl, 5 doubanurl
|
|
||||||
search_area: "{{ if .Query.IMDBID }}4{{ else }}{{ end }}{{ if .Query.DoubanID }}5{{ 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_optional:
|
|
||||||
optional: true
|
|
||||||
selector: a[title][href^="details.php?id="]
|
|
||||||
attribute: title
|
|
||||||
title:
|
|
||||||
text: "{{ if .Result.title_optional }}{{ .Result.title_optional }}{{ else }}{{ .Result.title_default }}{{ end }}"
|
|
||||||
details:
|
|
||||||
selector: a[href^="details.php?id="]
|
|
||||||
attribute: href
|
|
||||||
download:
|
|
||||||
selector: a[href^="download.php?id="]
|
|
||||||
attribute: href
|
|
||||||
poster:
|
|
||||||
selector: td.torrentimg > img
|
|
||||||
attribute: src
|
|
||||||
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(5) > 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(5):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(6)
|
|
||||||
seeders:
|
|
||||||
selector: td:nth-child(7)
|
|
||||||
leechers:
|
|
||||||
selector: td:nth-child(8)
|
|
||||||
grabs:
|
|
||||||
selector: td:nth-child(9)
|
|
||||||
downloadvolumefactor:
|
|
||||||
case:
|
|
||||||
font.promotion.free: 0
|
|
||||||
font.promotion.twoupfree: 0
|
|
||||||
font.promotion.halfdown: 0.5
|
|
||||||
font.promotion.twouphalfdown: 0.5
|
|
||||||
font.promotion.thirtypercent: 0.3
|
|
||||||
"*": 1
|
|
||||||
uploadvolumefactor:
|
|
||||||
case:
|
|
||||||
font.promotion.twoup: 2
|
|
||||||
font.promotion.twoupfree: 2
|
|
||||||
font.promotion.twouphalfdown: 2
|
|
||||||
"*": 1
|
|
||||||
description:
|
|
||||||
selector: td:nth-child(2) > font:last-child
|
|
||||||
# NexusPHP Standard v1.5 Beta 4
|
|
||||||
@@ -1,175 +0,0 @@
|
|||||||
---
|
|
||||||
id: punkshorror
|
|
||||||
name: Punk's Horror Tracker
|
|
||||||
description: "Punk's Horror Tracker is a HUNGARIAN Private Tracker for Horror MOVIES / TV"
|
|
||||||
language: hu-HU
|
|
||||||
type: private
|
|
||||||
encoding: ISO-8859-2
|
|
||||||
links:
|
|
||||||
- https://punck-tracker.net/
|
|
||||||
|
|
||||||
caps:
|
|
||||||
categorymappings:
|
|
||||||
- {id: 87, cat: Movies, desc: "Action Eng"}
|
|
||||||
- {id: 88, cat: Movies, desc: "Action Hun"}
|
|
||||||
- {id: 79, cat: TV/Documentary, desc: "Dokumentumfilm"}
|
|
||||||
- {id: 72, cat: Movies/HD, desc: "HD Eng"}
|
|
||||||
- {id: 71, cat: Movies/HD, desc: "HD Hun"}
|
|
||||||
- {id: 89, cat: Movies, desc: "Horror Anime"}
|
|
||||||
- {id: 78, cat: Books, desc: "Horror Ebook"}
|
|
||||||
- {id: 66, cat: Movies, desc: "Horror Eng"}
|
|
||||||
- {id: 73, cat: PC/Games, desc: "Horror Game"}
|
|
||||||
- {id: 65, cat: Movies, desc: "Horror Hun"}
|
|
||||||
- {id: 82, cat: XXX, desc: "Horror XXX"}
|
|
||||||
- {id: 94, cat: Movies, desc: "Kamerás filmek"}
|
|
||||||
- {id: 98, cat: Movies/HD, desc: "MD-HD"}
|
|
||||||
- {id: 86, cat: Movies, desc: "Mystery-Fantasy Eng"}
|
|
||||||
- {id: 85, cat: Movies, desc: "Mystery-Fantasy Hun"}
|
|
||||||
- {id: 83, cat: Movies, desc: "Punk Release"}
|
|
||||||
- {id: 76, cat: Movies, desc: "Retro Film"}
|
|
||||||
- {id: 70, cat: Movies, desc: "Scfi Eng"}
|
|
||||||
- {id: 69, cat: Movies, desc: "Scfi Hun"}
|
|
||||||
- {id: 75, cat: TV, desc: "Sorozat Eng"}
|
|
||||||
- {id: 74, cat: TV, desc: "Sorozat Hun"}
|
|
||||||
- {id: 68, cat: Movies, desc: "Thriller Eng"}
|
|
||||||
- {id: 67, cat: Movies, desc: "Thriller Hun"}
|
|
||||||
- {id: 84, cat: Movies/SD, desc: "VHS Ritkaságok"}
|
|
||||||
|
|
||||||
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: sort
|
|
||||||
type: select
|
|
||||||
label: Sort requested from site
|
|
||||||
default: 4
|
|
||||||
options:
|
|
||||||
4: added
|
|
||||||
5: size
|
|
||||||
7: seeders
|
|
||||||
- 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>Torrentek száma egy oldalon</b> setting to <b>100</b> on your account profile.
|
|
||||||
|
|
||||||
login:
|
|
||||||
path: login.php
|
|
||||||
method: form
|
|
||||||
form: form[action="takelogin.php"]
|
|
||||||
inputs:
|
|
||||||
username: "{{ .Config.username }}"
|
|
||||||
password: "{{ .Config.password }}"
|
|
||||||
error:
|
|
||||||
- selector: "td:contains(\"Belépési hiba\")"
|
|
||||||
test:
|
|
||||||
path: index.php
|
|
||||||
selector: a[href="logout.php"]
|
|
||||||
|
|
||||||
search:
|
|
||||||
paths:
|
|
||||||
- path: browse.php
|
|
||||||
inputs:
|
|
||||||
$raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
|
|
||||||
onlyname: 1
|
|
||||||
search: "{{ .Keywords }}"
|
|
||||||
# 0 active, 1 all, 2 deadonly, 3 freeleech
|
|
||||||
incldead: "{{ if .Config.freeleech }}3{{ else }}1{{ end }}"
|
|
||||||
sort: "{{ .Config.sort }}"
|
|
||||||
type: "{{ .Config.type }}"
|
|
||||||
# does not support imdbid searches
|
|
||||||
|
|
||||||
rows:
|
|
||||||
selector: table.alap99 > tbody#linkhatter > tr
|
|
||||||
filters:
|
|
||||||
- name: andmatch
|
|
||||||
|
|
||||||
fields:
|
|
||||||
category:
|
|
||||||
selector: a[href^="browse.php?cat="]
|
|
||||||
attribute: href
|
|
||||||
filters:
|
|
||||||
- name: querystring
|
|
||||||
args: cat
|
|
||||||
title_default:
|
|
||||||
# can be abbreviated
|
|
||||||
selector: a[href^="details.php?id="]
|
|
||||||
title_optional:
|
|
||||||
# usually full length
|
|
||||||
selector: a[href^="details.php?id="]
|
|
||||||
attribute: title
|
|
||||||
optional: true
|
|
||||||
title:
|
|
||||||
text: "{{ if .Result.title_optional }}{{ .Result.title_optional }}{{ else }}{{ .Result.title_default }}{{ end }}"
|
|
||||||
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(2) > b > font
|
|
||||||
filters:
|
|
||||||
- name: replace
|
|
||||||
args: ["\xA0", ""]
|
|
||||||
- name: replace
|
|
||||||
args: ["Feltöltve:", ""]
|
|
||||||
- name: append
|
|
||||||
args: " +01:00" # CET
|
|
||||||
- name: dateparse
|
|
||||||
args: "yyyy-MM-ddHH:mm:ss zzz"
|
|
||||||
poster:
|
|
||||||
selector: a[onmouseover]
|
|
||||||
attribute: onmouseover
|
|
||||||
filters:
|
|
||||||
- name: regexp
|
|
||||||
args: src=([^\s]+)
|
|
||||||
size:
|
|
||||||
selector: td:nth-child(7)
|
|
||||||
grabs:
|
|
||||||
selector: td:nth-last-child(4)
|
|
||||||
seeders:
|
|
||||||
selector: td:nth-last-child(3)
|
|
||||||
leechers:
|
|
||||||
selector: td:nth-last-child(2)
|
|
||||||
description:
|
|
||||||
case:
|
|
||||||
img[src="pic/yes.png"]: Verified
|
|
||||||
img[src="pic/nincs.png"]: Unverified
|
|
||||||
downloadvolumefactor:
|
|
||||||
case:
|
|
||||||
img[src="pic/golden.gif"]: 0
|
|
||||||
"*": 1
|
|
||||||
uploadvolumefactor:
|
|
||||||
selector: td:nth-child(7) > center > b > font
|
|
||||||
filters:
|
|
||||||
- name: regexp
|
|
||||||
args: (\d+)
|
|
||||||
minimumratio:
|
|
||||||
text: 0.8
|
|
||||||
minimumseedtime:
|
|
||||||
# 2 days (as seconds = 2 x 24 x 60 x 60)
|
|
||||||
text: 172800
|
|
||||||
# engine n/a
|
|
||||||
@@ -1,202 +0,0 @@
|
|||||||
---
|
|
||||||
id: putao
|
|
||||||
name: PuTao (葡萄)
|
|
||||||
description: "PuTao (葡萄) is a CHINESE Private Torrent Tracker for MOVIES / TV / GENERAL"
|
|
||||||
language: zh-CN
|
|
||||||
type: private
|
|
||||||
encoding: UTF-8
|
|
||||||
links:
|
|
||||||
- https://pt.sjtu.edu.cn/
|
|
||||||
|
|
||||||
caps:
|
|
||||||
categorymappings:
|
|
||||||
- {id: 401, cat: Movies, desc: "Movies CHN 华语电影"}
|
|
||||||
- {id: 402, cat: Movies, desc: "Movies Eng 欧美电影"}
|
|
||||||
- {id: 403, cat: Movies, desc: "Movies Asian 亚洲电影"}
|
|
||||||
- {id: 406, cat: TV/Documentary, desc: "Documentary 纪录片"}
|
|
||||||
- {id: 407, cat: TV, desc: "TV Series HKTW 港台电视剧"}
|
|
||||||
- {id: 408, cat: TV, desc: "TV Series Asian 亚洲电视剧"}
|
|
||||||
- {id: 409, cat: TV, desc: "TV Series CHN 大陆电视剧"}
|
|
||||||
- {id: 410, cat: TV, desc: "TV Series Eng 欧美电视剧"}
|
|
||||||
- {id: 411, cat: TV, desc: "TV CHN 大陆综艺节目"}
|
|
||||||
- {id: 412, cat: TV, desc: "TV HKTW 港台综艺节目"}
|
|
||||||
- {id: 413, cat: TV, desc: "TV Eng 欧美综艺节目"}
|
|
||||||
- {id: 414, cat: TV, desc: "TV JPKR 日韩综艺节目"}
|
|
||||||
- {id: 420, cat: Audio, desc: "Music CHN 华语音乐"}
|
|
||||||
- {id: 421, cat: Audio, desc: "Music JPKR 日韩音乐"}
|
|
||||||
- {id: 422, cat: Audio, desc: "Music Eng 欧美音乐"}
|
|
||||||
- {id: 423, cat: Audio, desc: "Music OST 原声音乐"}
|
|
||||||
- {id: 425, cat: Audio, desc: "Music Classic 古典音乐"}
|
|
||||||
- {id: 426, cat: Audio/MP3, desc: "Music mp3合辑"}
|
|
||||||
- {id: 427, cat: Audio/Video, desc: "Music Videos"}
|
|
||||||
- {id: 429, cat: Console, desc: "Games 游戏"}
|
|
||||||
- {id: 431, cat: TV/Anime, desc: "Anime 动漫"}
|
|
||||||
- {id: 432, cat: TV/Sport, desc: "Sport 体育"}
|
|
||||||
- {id: 434, cat: PC, desc: "Software 软件"}
|
|
||||||
- {id: 435, cat: Other, desc: "Study 学习"}
|
|
||||||
- {id: 440, cat: PC/Mac, desc: "Software Mac"}
|
|
||||||
- {id: 451, cat: Other, desc: "Campus 校园原创"}
|
|
||||||
- {id: 450, 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: 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>每页种子数:每页显示</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>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 240 consecutive days</li><li>Users with a non-parked account will be deleted if they do not log in for 120 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 30 consecutive days.</li></ol>"
|
|
||||||
|
|
||||||
login:
|
|
||||||
path: login.php
|
|
||||||
method: form
|
|
||||||
form: form[action="takelogin.php"]
|
|
||||||
inputs:
|
|
||||||
username: "{{ .Config.username }}"
|
|
||||||
password: "{{ .Config.password }}"
|
|
||||||
checkcode: XxXx
|
|
||||||
logout: ""
|
|
||||||
error:
|
|
||||||
- selector: td.embedded:has(h2:contains("失败"))
|
|
||||||
test:
|
|
||||||
path: index.php
|
|
||||||
selector: a[href^="logout.php?hash="]
|
|
||||||
|
|
||||||
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 onlyactive, 2 onlydead
|
|
||||||
incldead: 0
|
|
||||||
# 0 all, 1 normal, 2 free, 3 2x, 4 2xfree, 5 50%, 6 30%, 7 70%
|
|
||||||
spstate: "{{ if .Config.freeleech }}2{{ else }}0{{ end }}"
|
|
||||||
# 0 all, 1 popular, 2 classic, 3 recommended, 4 normal, 5 seeds
|
|
||||||
picktype: 0
|
|
||||||
# 0 title, 1 descr, 3 uploader, 4 imdbid
|
|
||||||
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_optional:
|
|
||||||
optional: true
|
|
||||||
selector: a[title][href^="details.php?id="]
|
|
||||||
attribute: title
|
|
||||||
title:
|
|
||||||
text: "{{ if .Result.title_optional }}{{ .Result.title_optional }}{{ else }}{{ .Result.title_default }}{{ end }}"
|
|
||||||
details:
|
|
||||||
selector: a[href^="details.php?id="]
|
|
||||||
attribute: href
|
|
||||||
download:
|
|
||||||
selector: a[href^="download.php?id="]
|
|
||||||
attribute: href
|
|
||||||
date_elapsed:
|
|
||||||
# time elapsed (default)
|
|
||||||
# 19时<br/>3分 (19 hours 3 minutes)
|
|
||||||
# 2天<br/>21时 (2 days 21 hours)
|
|
||||||
selector: td:nth-child(4):not(:contains("-"))
|
|
||||||
optional: true
|
|
||||||
filters:
|
|
||||||
- name: replace
|
|
||||||
args: ["年", "years"]
|
|
||||||
- name: replace
|
|
||||||
args: ["月", "months"]
|
|
||||||
- name: replace
|
|
||||||
args: ["天", "days"]
|
|
||||||
- name: replace
|
|
||||||
args: ["时", " hours"]
|
|
||||||
- name: replace
|
|
||||||
args: ["分", "minutes"]
|
|
||||||
- name: append
|
|
||||||
args: " ago"
|
|
||||||
- name: timeago
|
|
||||||
date_added:
|
|
||||||
# time added
|
|
||||||
selector: td:nth-child(4):contains("-")
|
|
||||||
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_2up: 0
|
|
||||||
img.pro_free2up: 0
|
|
||||||
img.pro_50pctdown: 0.5
|
|
||||||
img.pro_30pctdown: 0.3
|
|
||||||
img.pro_70pctdown: 0.7
|
|
||||||
"*": 1
|
|
||||||
uploadvolumefactor:
|
|
||||||
case:
|
|
||||||
img.pro_2up: 2
|
|
||||||
img.pro_free2up: 2
|
|
||||||
"*": 1
|
|
||||||
minimumratio:
|
|
||||||
text: 0.7
|
|
||||||
description:
|
|
||||||
selector: td:nth-child(2)
|
|
||||||
remove: a, b, font, img, span
|
|
||||||
# NexusPHP Standard v1.0 Beta 2
|
|
||||||
@@ -1,179 +0,0 @@
|
|||||||
---
|
|
||||||
id: racing4everyone-api
|
|
||||||
name: Racing4Everyone (API)
|
|
||||||
description: "Racing4Everyone (R4E) is a Private Torrent Tracker for RACING"
|
|
||||||
language: en-US
|
|
||||||
type: private
|
|
||||||
encoding: UTF-8
|
|
||||||
links:
|
|
||||||
- https://racing4everyone.eu/
|
|
||||||
legacylinks:
|
|
||||||
- https://racing4everyone.jp/
|
|
||||||
|
|
||||||
caps:
|
|
||||||
categorymappings:
|
|
||||||
- {id: 1, cat: TV/Sport, desc: "BTCC"}
|
|
||||||
- {id: 2, cat: TV/Sport, desc: "TV-Documentaries"}
|
|
||||||
- {id: 3, cat: TV/Sport, desc: "DTM"}
|
|
||||||
- {id: 22, cat: TV/Sport, desc: "Formula 2"}
|
|
||||||
- {id: 23, cat: TV/Sport, desc: "Formula E"}
|
|
||||||
- {id: 24, cat: TV/Sport, desc: "Misc"}
|
|
||||||
- {id: 25, cat: TV/Sport, desc: "Other Bikes"}
|
|
||||||
- {id: 26, cat: TV/Sport, desc: "MotoGP-2-3-E"}
|
|
||||||
- {id: 31, cat: TV/Sport, desc: "Nascar"}
|
|
||||||
- {id: 32, cat: TV/Sport, desc: "Stock Car Brazil"}
|
|
||||||
- {id: 50, cat: TV/Sport, desc: "WRC"}
|
|
||||||
- {id: 55, cat: TV/Sport, desc: "Season Reviews"}
|
|
||||||
- {id: 56, cat: TV/Sport, desc: "WRX"}
|
|
||||||
- {id: 57, cat: TV/Sport, desc: "WEC"}
|
|
||||||
- {id: 58, cat: TV/Sport, desc: "W Series"}
|
|
||||||
- {id: 60, cat: TV/Sport, desc: "Drag Racing"}
|
|
||||||
- {id: 61, cat: TV/Sport, desc: "ERC"}
|
|
||||||
- {id: 62, cat: TV/Sport, desc: "Indycar Series"}
|
|
||||||
- {id: 63, cat: TV/Sport, desc: "Supercars"}
|
|
||||||
- {id: 66, cat: TV/Sport, desc: "Documentaries"}
|
|
||||||
- {id: 67, cat: TV/Sport, desc: "Formula 1"}
|
|
||||||
- {id: 68, cat: TV/Sport, desc: "Formula 3"}
|
|
||||||
- {id: 69, cat: TV/Sport, desc: "Other Cars"}
|
|
||||||
- {id: 70, cat: TV/Sport, desc: "Motorsport Movies"}
|
|
||||||
- {id: 71, cat: TV/Sport, desc: "WSBK"}
|
|
||||||
- {id: 72, cat: TV/Sport, desc: "AMA Pro Motocross"}
|
|
||||||
- {id: 73, cat: TV/Sport, desc: "AMA Supercross"}
|
|
||||||
- {id: 74, cat: TV/Sport, desc: "WTCR"}
|
|
||||||
- {id: 76, cat: TV/Sport, desc: "ARCA"}
|
|
||||||
- {id: 77, cat: TV/Sport, desc: "Blancpain GT"}
|
|
||||||
- {id: 78, cat: TV/Sport, desc: "Porsche Supercup"}
|
|
||||||
- {id: 79, cat: TV/Sport, desc: "TV Series"}
|
|
||||||
- {id: 80, cat: TV/Sport, desc: "Touring Cars"}
|
|
||||||
- {id: 81, cat: TV/Sport, desc: "Extreme E"}
|
|
||||||
|
|
||||||
modes:
|
|
||||||
search: [q]
|
|
||||||
tv-search: [q, season, ep, imdbid, tvdbid, 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://racing4everyone.eu/\" target=\"_blank\">Racing4Everyone</a> account <i>My Security</i> page and clicking on the <b>API Token</b> tab."
|
|
||||||
- name: freeleech
|
|
||||||
type: checkbox
|
|
||||||
label: Search freeleech only
|
|
||||||
default: false
|
|
||||||
- name: sort
|
|
||||||
type: select
|
|
||||||
label: Sort requested from site
|
|
||||||
default: created_at
|
|
||||||
options:
|
|
||||||
created_at: created
|
|
||||||
seeders: seeders
|
|
||||||
size: size
|
|
||||||
name: title
|
|
||||||
- name: type
|
|
||||||
type: select
|
|
||||||
label: Order requested from site
|
|
||||||
default: desc
|
|
||||||
options:
|
|
||||||
desc: desc
|
|
||||||
asc: asc
|
|
||||||
- name: info_activity
|
|
||||||
type: info
|
|
||||||
label: Account Inactivity
|
|
||||||
default: "After 6 months without any log in or usage of your account, it will be pruned and can only be reactivated by a staff member. Make sure to keep your account active and do not use programs to keep your account active, as your account may still get pruned."
|
|
||||||
|
|
||||||
login:
|
|
||||||
path: /api/torrents
|
|
||||||
method: get
|
|
||||||
inputs: {} # TODO: remove in v10
|
|
||||||
error:
|
|
||||||
- selector: a[href*="/login"]
|
|
||||||
message:
|
|
||||||
text: "The API key was not accepted by {{ .Config.sitelink }}."
|
|
||||||
|
|
||||||
search:
|
|
||||||
paths:
|
|
||||||
# https://github.com/HDInnovations/UNIT3D-Community-Edition/wiki/Torrent-API-(UNIT3D-v8.x.x)
|
|
||||||
# https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php#L476
|
|
||||||
- path: "/api/torrents/filter"
|
|
||||||
response:
|
|
||||||
type: json
|
|
||||||
|
|
||||||
headers:
|
|
||||||
Authorization: ["Bearer {{ .Config.apikey }}"]
|
|
||||||
|
|
||||||
inputs:
|
|
||||||
# if we have an id based search, add Season and Episode as query in name for UNIT3D < v6. Else pass S/E Params for UNIT3D >= v6
|
|
||||||
name: "{{ .Keywords }}"
|
|
||||||
$raw: "{{ if .Query.Season }}&seasonNumber={{ .Query.Season }}{{ else }}{{ end }}{{ if .Query.Ep }}&episodeNumber={{ .Query.Ep }}{{ else }}{{ end }}{{ if .Query.TMDBID }}&tmdbId={{ .Query.TMDBID }}{{ else }}{{ end }}{{ if .Query.IMDBIDShort }}&imdbId={{ .Query.IMDBIDShort }}{{ else }}{{ end }}{{ if .Query.TVDBID }}&tvdbId={{ .Query.TVDBID }}{{ else }}{{ end }}{{ range .Categories }}&categories[]={{.}}{{end}}{{ if .Config.freeleech }}&free=1{{ else }}{{ end }}"
|
|
||||||
sortField: "{{ .Config.sort }}"
|
|
||||||
sortDirection: "{{ .Config.type }}"
|
|
||||||
perPage: 100
|
|
||||||
|
|
||||||
keywordsfilters:
|
|
||||||
- name: re_replace
|
|
||||||
args: ["\\.", " "]
|
|
||||||
|
|
||||||
rows:
|
|
||||||
selector: data
|
|
||||||
attribute: attributes
|
|
||||||
|
|
||||||
fields:
|
|
||||||
categorydesc:
|
|
||||||
selector: category
|
|
||||||
title:
|
|
||||||
selector: name
|
|
||||||
details:
|
|
||||||
selector: details_link
|
|
||||||
download:
|
|
||||||
selector: download_link
|
|
||||||
poster:
|
|
||||||
selector: poster
|
|
||||||
filters:
|
|
||||||
- name: replace
|
|
||||||
args: ["https://via.placeholder.com/90x135", ""]
|
|
||||||
imdbid:
|
|
||||||
selector: imdb_id
|
|
||||||
tmdbid:
|
|
||||||
selector: tmdb_id
|
|
||||||
tvdbid:
|
|
||||||
selector: tvdb_id
|
|
||||||
files:
|
|
||||||
selector: num_file
|
|
||||||
seeders:
|
|
||||||
selector: seeders
|
|
||||||
leechers:
|
|
||||||
selector: leechers
|
|
||||||
grabs:
|
|
||||||
selector: times_completed
|
|
||||||
date:
|
|
||||||
# "created_at": "2021-10-18T00:34:50.000000Z" is returned by Newtonsoft.Json.Linq as 18/10/2021 00:34:50
|
|
||||||
selector: created_at
|
|
||||||
filters:
|
|
||||||
- name: append
|
|
||||||
args: " +00:00" # GMT
|
|
||||||
- name: dateparse
|
|
||||||
args: "MM/dd/yyyy HH:mm:ss zzz"
|
|
||||||
size:
|
|
||||||
selector: size
|
|
||||||
downloadvolumefactor:
|
|
||||||
# api returns 0%, 25%, 50%, 75%, 100%
|
|
||||||
selector: freeleech
|
|
||||||
case:
|
|
||||||
0%: 1 # not free
|
|
||||||
25%: 0.75
|
|
||||||
50%: 0.5
|
|
||||||
75%: 0.25
|
|
||||||
100%: 0 # freeleech
|
|
||||||
"*": 0 # catch errors
|
|
||||||
uploadvolumefactor:
|
|
||||||
# api returns 0=false, 1=true
|
|
||||||
selector: double_upload
|
|
||||||
case:
|
|
||||||
0: 1 # normal
|
|
||||||
1: 2 # double
|
|
||||||
minimumratio:
|
|
||||||
text: 1.0
|
|
||||||
# json UNIT3D 6.0.4
|
|
||||||
@@ -1,192 +0,0 @@
|
|||||||
---
|
|
||||||
id: redbits-api
|
|
||||||
name: RedBits (API)
|
|
||||||
description: "RedBits is a SPANISH site for classic content"
|
|
||||||
language: es-ES
|
|
||||||
type: private
|
|
||||||
encoding: UTF-8
|
|
||||||
links:
|
|
||||||
- https://redbits.xyz/
|
|
||||||
legacylinks:
|
|
||||||
- https://red-bits.com/
|
|
||||||
|
|
||||||
caps:
|
|
||||||
categorymappings:
|
|
||||||
- {id: 1, cat: Movies, desc: "Películas"}
|
|
||||||
- {id: 2, cat: TV, desc: "Series"}
|
|
||||||
- {id: 10, cat: TV, desc: "Series Completas"}
|
|
||||||
- {id: 6, cat: TV/Documentary, desc: "Documentales"}
|
|
||||||
- {id: 7, cat: TV/Sport, desc: "Deportes"}
|
|
||||||
- {id: 8, cat: Movies, desc: "Hagbard"}
|
|
||||||
- {id: 9, cat: Movies, desc: "Studio Ghibli"}
|
|
||||||
|
|
||||||
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://redbits.xyz/\" target=\"_blank\">RedBits</a> account <i>My Security</i> page and clicking on the <b>API Token</b> tab."
|
|
||||||
- name: freeleech
|
|
||||||
type: checkbox
|
|
||||||
label: Search freeleech only
|
|
||||||
default: false
|
|
||||||
- name: sort
|
|
||||||
type: select
|
|
||||||
label: Sort requested from site
|
|
||||||
default: created_at
|
|
||||||
options:
|
|
||||||
created_at: created
|
|
||||||
seeders: seeders
|
|
||||||
size: size
|
|
||||||
name: title
|
|
||||||
- name: type
|
|
||||||
type: select
|
|
||||||
label: Order requested from site
|
|
||||||
default: desc
|
|
||||||
options:
|
|
||||||
desc: desc
|
|
||||||
asc: asc
|
|
||||||
- name: info_activity
|
|
||||||
type: info
|
|
||||||
label: Account Inactivity
|
|
||||||
default: "Not entering in a month leads to the account being deactivated or banned. If the account does not register downloads in a month, it will be banned with the User rank, the other ranks will be given a time determined by the staff."
|
|
||||||
|
|
||||||
login:
|
|
||||||
path: /api/torrents
|
|
||||||
method: get
|
|
||||||
inputs: {} # TODO: remove in v10
|
|
||||||
error:
|
|
||||||
- selector: a[href*="/login"]
|
|
||||||
message:
|
|
||||||
text: "The API key was not accepted by {{ .Config.sitelink }}."
|
|
||||||
|
|
||||||
search:
|
|
||||||
paths:
|
|
||||||
# https://github.com/HDInnovations/UNIT3D-Community-Edition/wiki/Torrent-API-(UNIT3D-v8.x.x)
|
|
||||||
# https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php#L476
|
|
||||||
- path: "/api/torrents/filter"
|
|
||||||
response:
|
|
||||||
type: json
|
|
||||||
|
|
||||||
headers:
|
|
||||||
Authorization: ["Bearer {{ .Config.apikey }}"]
|
|
||||||
|
|
||||||
inputs:
|
|
||||||
# if we have an id based search, add Season and Episode as query in name for UNIT3D < v6. Else pass S/E Params for UNIT3D >= v6
|
|
||||||
name: "{{ .Keywords }}"
|
|
||||||
$raw: "{{ if .Query.Season }}&seasonNumber={{ .Query.Season }}{{ else }}{{ end }}{{ if .Query.Ep }}&episodeNumber={{ .Query.Ep }}{{ else }}{{ end }}{{ if .Query.TMDBID }}&tmdbId={{ .Query.TMDBID }}{{ else }}{{ end }}{{ if .Query.IMDBIDShort }}&imdbId={{ .Query.IMDBIDShort }}{{ else }}{{ end }}{{ if .Query.TVDBID }}&tvdbId={{ .Query.TVDBID }}{{ else }}{{ end }}{{ range .Categories }}&categories[]={{.}}{{end}}{{ if .Config.freeleech }}&free=1{{ 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_vose:
|
|
||||||
selector: name:contains(VOSE)
|
|
||||||
optional: true
|
|
||||||
filters:
|
|
||||||
- name: append
|
|
||||||
args: " English" # Add english to fix Sonarr/Radarr language
|
|
||||||
title_notvose:
|
|
||||||
selector: name:not(:contains(VOSE))
|
|
||||||
optional: true
|
|
||||||
filters:
|
|
||||||
- name: append
|
|
||||||
args: " Spanish" # Add spanish to fix Sonarr/Radarr language
|
|
||||||
title:
|
|
||||||
text: "{{ if .Result.title_vose }}{{ .Result.title_vose }}{{ else }}{{ .Result.title_notvose }}{{ end }}"
|
|
||||||
filters:
|
|
||||||
- name: re_replace
|
|
||||||
args: ["(?i)bdfull", "BluRay"] # BDfull -> BluRay
|
|
||||||
- name: re_replace
|
|
||||||
args: ["(?i)RedBits", ""] # Delete RedBits
|
|
||||||
- name: re_replace
|
|
||||||
args: ["\\[|\\]", " "]
|
|
||||||
- name: re_replace
|
|
||||||
args: [" ", " "]
|
|
||||||
- name: re_replace
|
|
||||||
args: ["(?i)T(\\d{1,2})\\b", "S$1"]
|
|
||||||
details:
|
|
||||||
selector: details_link
|
|
||||||
download:
|
|
||||||
selector: download_link
|
|
||||||
infohash:
|
|
||||||
selector: info_hash
|
|
||||||
poster:
|
|
||||||
selector: meta.poster
|
|
||||||
filters:
|
|
||||||
- name: replace
|
|
||||||
args: ["https://via.placeholder.com/90x135", ""]
|
|
||||||
imdbid:
|
|
||||||
selector: imdb_id
|
|
||||||
tmdbid:
|
|
||||||
selector: tmdb_id
|
|
||||||
tvdbid:
|
|
||||||
selector: tvdb_id
|
|
||||||
genre:
|
|
||||||
selector: meta.genres
|
|
||||||
filters:
|
|
||||||
- name: re_replace
|
|
||||||
args: ["(?i)^None$", ""]
|
|
||||||
- name: re_replace
|
|
||||||
args: ["(?i)(Película de TV)", "Película_de_TV"]
|
|
||||||
- name: re_replace
|
|
||||||
args: ["(?i)(Ciencia ficción)", "Ciencia_ficción"]
|
|
||||||
- name: replace
|
|
||||||
args: [" & ", "_&_"]
|
|
||||||
description:
|
|
||||||
text: "{{ .Result.genre }}"
|
|
||||||
files:
|
|
||||||
selector: num_file
|
|
||||||
seeders:
|
|
||||||
selector: seeders
|
|
||||||
leechers:
|
|
||||||
selector: leechers
|
|
||||||
grabs:
|
|
||||||
selector: times_completed
|
|
||||||
date:
|
|
||||||
# "created_at": "2021-10-18T00:34:50.000000Z" is returned by Newtonsoft.Json.Linq as 18/10/2021 00:34:50
|
|
||||||
selector: created_at
|
|
||||||
filters:
|
|
||||||
- name: append
|
|
||||||
args: " +00:00" # GMT
|
|
||||||
- name: dateparse
|
|
||||||
args: "MM/dd/yyyy HH:mm:ss zzz"
|
|
||||||
size:
|
|
||||||
selector: size
|
|
||||||
downloadvolumefactor:
|
|
||||||
# api returns 0%, 25%, 50%, 75%, 100%
|
|
||||||
selector: freeleech
|
|
||||||
case:
|
|
||||||
0%: 1 # not free
|
|
||||||
25%: 0.75
|
|
||||||
50%: 0.5
|
|
||||||
75%: 0.25
|
|
||||||
100%: 0 # freeleech
|
|
||||||
"*": 0 # catch errors
|
|
||||||
uploadvolumefactor:
|
|
||||||
# api returns 0=false, 1=true
|
|
||||||
selector: double_upload
|
|
||||||
case:
|
|
||||||
0: 1 # normal
|
|
||||||
1: 2 # double
|
|
||||||
minimumseedtime:
|
|
||||||
# 4 days (as seconds = 4 x 24 x 60 x 60)
|
|
||||||
text: 345600
|
|
||||||
# json UNIT3D 6.4.1
|
|
||||||
@@ -1,171 +0,0 @@
|
|||||||
---
|
|
||||||
id: reelflix-api
|
|
||||||
name: ReelFLiX (API)
|
|
||||||
description: "ReelFLiX (HD4Free,LegacyHD) is a Private Torrent Tracker for HD MOVIES"
|
|
||||||
language: en-US
|
|
||||||
type: private
|
|
||||||
encoding: UTF-8
|
|
||||||
links:
|
|
||||||
- https://reelflix.xyz/
|
|
||||||
legacylinks:
|
|
||||||
- https://legacyhd.org/
|
|
||||||
|
|
||||||
caps:
|
|
||||||
categorymappings:
|
|
||||||
- {id: 1, cat: Movies, desc: "Movie"}
|
|
||||||
|
|
||||||
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://reelflix.xyz/\" target=\"_blank\">ReelFlix</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: "To avoid your account being disabled, you must login at least once every 90 days OR have a .torrent actively announcing to the tracker. Please be aware! If you are using any form of automation and it has been 90+ days since your last login, and your client stops seeding, your account will be immediately disabled at midnight UTC if you don't login or resume seeding. There is no 90-day grace period if seeding stops; only logging into the site counts. It is always a good idea to periodically login to check the status of your account."
|
|
||||||
|
|
||||||
login:
|
|
||||||
path: /api/torrents
|
|
||||||
method: get
|
|
||||||
inputs: {} # TODO: remove in v10
|
|
||||||
error:
|
|
||||||
- selector: a[href*="/login"]
|
|
||||||
message:
|
|
||||||
text: "The API key was not accepted by {{ .Config.sitelink }}."
|
|
||||||
|
|
||||||
search:
|
|
||||||
paths:
|
|
||||||
# https://github.com/HDInnovations/UNIT3D-Community-Edition/wiki/Torrent-API-(UNIT3D-v8.x.x)
|
|
||||||
# https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php#L476
|
|
||||||
- path: "/api/torrents/filter"
|
|
||||||
response:
|
|
||||||
type: json
|
|
||||||
|
|
||||||
headers:
|
|
||||||
Authorization: ["Bearer {{ .Config.apikey }}"]
|
|
||||||
|
|
||||||
inputs:
|
|
||||||
# if we have an id based search, add Season and Episode as query in name for UNIT3D < v6. Else pass S/E Params for UNIT3D >= v6
|
|
||||||
name: "{{ .Keywords }}"
|
|
||||||
$raw: "{{ if .Query.Season }}&seasonNumber={{ .Query.Season }}{{ else }}{{ end }}{{ if .Query.Ep }}&episodeNumber={{ .Query.Ep }}{{ else }}{{ end }}{{ if .Query.TMDBID }}&tmdbId={{ .Query.TMDBID }}{{ else }}{{ end }}{{ if .Query.IMDBIDShort }}&imdbId={{ .Query.IMDBIDShort }}{{ else }}{{ end }}{{ if .Query.TVDBID }}&tvdbId={{ .Query.TVDBID }}{{ else }}{{ end }}{{ range .Categories }}&categories[]={{.}}{{end}}{{ if .Config.freeleech }}&free[]=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: [" & ", "_&_"]
|
|
||||||
description:
|
|
||||||
text: "{{ .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
|
|
||||||
downloadvolumefactor:
|
|
||||||
# api returns 0%, 25%, 50%, 75%, 100%
|
|
||||||
selector: freeleech
|
|
||||||
case:
|
|
||||||
0%: 1 # not free
|
|
||||||
25%: 0.75
|
|
||||||
50%: 0.5
|
|
||||||
75%: 0.25
|
|
||||||
100%: 0 # freeleech
|
|
||||||
"*": 0 # catch errors
|
|
||||||
uploadvolumefactor:
|
|
||||||
# api returns False, True
|
|
||||||
selector: double_upload
|
|
||||||
case:
|
|
||||||
False: 1 # normal
|
|
||||||
True: 2 # double
|
|
||||||
minimumratio:
|
|
||||||
text: 1.0
|
|
||||||
# json UNIT3D 8.0.2
|
|
||||||
File diff suppressed because it is too large
Load Diff
@@ -1,161 +0,0 @@
|
|||||||
---
|
|
||||||
id: satclubbing
|
|
||||||
name: SATClubbing
|
|
||||||
description: "SATClubbing is a RUSSIAN/ENGLISH Private Torrent Tracker for ELECTRONIC MUSIC"
|
|
||||||
language: en-US
|
|
||||||
type: private
|
|
||||||
encoding: UTF-8
|
|
||||||
links:
|
|
||||||
- https://satclubbing.club/
|
|
||||||
|
|
||||||
caps:
|
|
||||||
categorymappings:
|
|
||||||
- {id: 23, cat: Audio, desc: "Albums - Trance"}
|
|
||||||
- {id: 34, cat: Audio, desc: "Singles - Trance"}
|
|
||||||
- {id: 24, cat: Audio, desc: "Livesets - Trance"}
|
|
||||||
- {id: 30, cat: Audio, desc: "Albums - House"}
|
|
||||||
- {id: 25, cat: Audio, desc: "Singles - House"}
|
|
||||||
- {id: 32, cat: Audio, desc: "Livesets - House"}
|
|
||||||
- {id: 18, cat: Audio, desc: "Albums - Techno"}
|
|
||||||
- {id: 29, cat: Audio, desc: "Singles - Techno"}
|
|
||||||
- {id: 21, cat: Audio, desc: "Livesets - Techno"}
|
|
||||||
- {id: 35, cat: Audio, desc: "Albums - Hardstyle"}
|
|
||||||
- {id: 20, cat: Audio, desc: "Singles - Hardstyle"}
|
|
||||||
- {id: 28, cat: Audio, desc: "Livesets - Hardstyle"}
|
|
||||||
- {id: 22, cat: Audio, desc: "Albums - Goa/Psy"}
|
|
||||||
- {id: 33, cat: Audio, desc: "Singles - Goa/Psy"}
|
|
||||||
- {id: 26, cat: Audio, desc: "Livesets - Goa/Psy"}
|
|
||||||
- {id: 31, cat: Audio, desc: "Beat/Breaks"}
|
|
||||||
- {id: 40, cat: Audio, desc: "Electronic"}
|
|
||||||
- {id: 42, cat: Audio, desc: "Albums - Drum and Bass"}
|
|
||||||
- {id: 43, cat: Audio, desc: "Singles - Drum and Bass"}
|
|
||||||
- {id: 44, cat: Audio, desc: "Livesets - Drum and Bass"}
|
|
||||||
- {id: 45, cat: Audio, desc: "Albums - Dance"}
|
|
||||||
- {id: 46, cat: Audio, desc: "Singles - Dance"}
|
|
||||||
- {id: 36, cat: Audio, desc: "Unreleased Tracks"}
|
|
||||||
- {id: 41, cat: Audio, desc: "Bass"}
|
|
||||||
- {id: 39, cat: Audio, desc: "Ambient / Chill"}
|
|
||||||
- {id: 27, cat: Other, desc: "Music Plugins/Apps/Misc"}
|
|
||||||
- {id: 19, cat: Audio/Video, desc: "DVD/Video/Clips"}
|
|
||||||
- {id: 38, cat: Audio, desc: "SCMT Pack"}
|
|
||||||
- {id: 47, cat: Audio, desc: "Albums - Hardcore"}
|
|
||||||
- {id: 48, cat: Audio, desc: "Singles - Hardcore"}
|
|
||||||
- {id: 49, cat: Audio, desc: "Livesets - Hardcore"}
|
|
||||||
- {id: 50, cat: Audio, desc: "Rave"}
|
|
||||||
- {id: 51, cat: Audio, desc: "Acid"}
|
|
||||||
- {id: 52, cat: Audio, desc: "Dubstep"}
|
|
||||||
|
|
||||||
modes:
|
|
||||||
search: [q]
|
|
||||||
music-search: [q, artist]
|
|
||||||
|
|
||||||
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 options.
|
|
||||||
|
|
||||||
login:
|
|
||||||
path: takelogin.php
|
|
||||||
method: post
|
|
||||||
inputs:
|
|
||||||
username: "{{ .Config.username }}"
|
|
||||||
password: "{{ .Config.password }}"
|
|
||||||
error:
|
|
||||||
- selector: div.error
|
|
||||||
test:
|
|
||||||
path: /
|
|
||||||
selector: a[href="logout.php"]
|
|
||||||
|
|
||||||
search:
|
|
||||||
paths:
|
|
||||||
# https://satclubbing.club/browse.php?search=&cat=0&incldead=1&age=0&quality=0&c23=1&c34=1
|
|
||||||
- path: browse.php
|
|
||||||
inputs:
|
|
||||||
$raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
|
|
||||||
search: "{{ if .Query.Artist }}{{ .Query.Artist }}{{ else }}{{ .Keywords }}{{ end }}"
|
|
||||||
# 0 active, 1 incldead, 2 onlydead, 3 freeleech, 4 seedless
|
|
||||||
incldead: "{{ if .Config.freeleech }}3{{ else }}1{{ end }}"
|
|
||||||
# 0 any, 1 fresh, 2 classic, 3 not classic
|
|
||||||
age: 0
|
|
||||||
# 0 any, 320 mp3 cbr, 1000 mp3 vbr, 2000 lossless
|
|
||||||
quality: 0
|
|
||||||
sort: "{{ .Config.sort }}"
|
|
||||||
type: "{{ .Config.type }}"
|
|
||||||
|
|
||||||
rows:
|
|
||||||
selector: table > tbody > tr > td.index > table.embedded[cellspacing="0"][cellpadding="5"][width="100%"] > tbody > tr:has(a[href^="details.php?id="])
|
|
||||||
|
|
||||||
fields:
|
|
||||||
category:
|
|
||||||
selector: a[href^="browse.php?cat="]
|
|
||||||
attribute: href
|
|
||||||
filters:
|
|
||||||
- name: querystring
|
|
||||||
args: cat
|
|
||||||
title:
|
|
||||||
selector: a[href^="details.php?id="]
|
|
||||||
details:
|
|
||||||
selector: a[href^="details.php?id="]
|
|
||||||
attribute: href
|
|
||||||
download:
|
|
||||||
selector: a[href^="download.php?id="]
|
|
||||||
attribute: href
|
|
||||||
date:
|
|
||||||
selector: td:last-child
|
|
||||||
filters:
|
|
||||||
- name: replace
|
|
||||||
args: ["added ", ""]
|
|
||||||
- name: timeago
|
|
||||||
files:
|
|
||||||
selector: a[href$="filelist=1"]
|
|
||||||
size:
|
|
||||||
selector: td:has(a[href$="filelist=1"]) + td + td
|
|
||||||
seeders_optional:
|
|
||||||
selector: a[href$="toseeders=1"]
|
|
||||||
optional: true
|
|
||||||
seeders:
|
|
||||||
text: "{{ if .Result.seeders_optional }}{{ .Result.seeders_optional }}{{ else }}0{{ end }}"
|
|
||||||
leechers_optional:
|
|
||||||
selector: td:has(a[href$="toseeders=1"])
|
|
||||||
optional: true
|
|
||||||
filters:
|
|
||||||
- name: split
|
|
||||||
args: ["|", 1]
|
|
||||||
leechers:
|
|
||||||
text: "{{ if .Result.leechers_optional }}{{ .Result.leechers_optional }}{{ else }}0{{ end }}"
|
|
||||||
downloadvolumefactor:
|
|
||||||
case:
|
|
||||||
img[src$="pic/free_icon.gif"]: 0
|
|
||||||
"*": 1
|
|
||||||
uploadvolumefactor:
|
|
||||||
text: 1
|
|
||||||
minimumratio:
|
|
||||||
text: 0.60
|
|
||||||
# engine n/a
|
|
||||||
@@ -1,212 +0,0 @@
|
|||||||
---
|
|
||||||
id: shareisland-api
|
|
||||||
name: Shareisland (API)
|
|
||||||
description: "A general italian tracker"
|
|
||||||
language: it-IT
|
|
||||||
type: private
|
|
||||||
encoding: UTF-8
|
|
||||||
links:
|
|
||||||
- https://shareisland.org/
|
|
||||||
legacylinks:
|
|
||||||
- http://shareisland.org/
|
|
||||||
- http://www.shareisland.org/
|
|
||||||
|
|
||||||
caps:
|
|
||||||
categorymappings:
|
|
||||||
- {id: 1, cat: Movies, desc: "Movie"}
|
|
||||||
- {id: 2, cat: TV, desc: "Serie TV"}
|
|
||||||
- {id: 15, cat: Books/EBook, desc: "Ebook"}
|
|
||||||
- {id: 17, cat: Books/Mags, desc: "Riviste e Giornali"}
|
|
||||||
- {id: 19, cat: XXX, desc: "XXX"}
|
|
||||||
- {id: 3, cat: Audio, desc: "Music"}
|
|
||||||
- {id: 7, cat: PC/Games, desc: "Games"}
|
|
||||||
- {id: 23, cat: PC, desc: "Software"}
|
|
||||||
- {id: 24, cat: TV/Sport, desc: "EVENTI SPORTIVI"}
|
|
||||||
- {id: 25, cat: Other, desc: "Misc"}
|
|
||||||
|
|
||||||
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://shareisland.org/\" target=\"_blank\">Shareisland</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: "After 60 days of no activity, your account will be automatically deleted."
|
|
||||||
|
|
||||||
login:
|
|
||||||
path: /api/torrents
|
|
||||||
method: get
|
|
||||||
inputs: {} # TODO: remove in v10
|
|
||||||
error:
|
|
||||||
- selector: a[href*="/login"]
|
|
||||||
message:
|
|
||||||
text: "The API key was not accepted by {{ .Config.sitelink }}."
|
|
||||||
|
|
||||||
search:
|
|
||||||
paths:
|
|
||||||
# https://github.com/HDInnovations/UNIT3D-Community-Edition/wiki/Torrent-API-(UNIT3D-v8.x.x)
|
|
||||||
# https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php#L476
|
|
||||||
- path: "/api/torrents/filter"
|
|
||||||
response:
|
|
||||||
type: json
|
|
||||||
|
|
||||||
headers:
|
|
||||||
Authorization: ["Bearer {{ .Config.apikey }}"]
|
|
||||||
|
|
||||||
inputs:
|
|
||||||
# if we have an id based search, add Season and Episode as query in name for UNIT3D < v6. Else pass S/E Params for UNIT3D >= v6
|
|
||||||
name: "{{ .Keywords }}"
|
|
||||||
$raw: "{{ if .Query.Season }}&seasonNumber={{ .Query.Season }}{{ else }}{{ end }}{{ if .Query.Ep }}&episodeNumber={{ .Query.Ep }}{{ else }}{{ end }}{{ if .Query.TMDBID }}&tmdbId={{ .Query.TMDBID }}{{ else }}{{ end }}{{ if .Query.IMDBIDShort }}&imdbId={{ .Query.IMDBIDShort }}{{ else }}{{ end }}{{ if .Query.TVDBID }}&tvdbId={{ .Query.TVDBID }}{{ else }}{{ end }}{{ range .Categories }}&categories[]={{.}}{{end}}{{ if .Config.freeleech }}&free[]=100{{ else }}{{ end }}"
|
|
||||||
sortField: "{{ .Config.sort }}"
|
|
||||||
sortDirection: "{{ .Config.type }}"
|
|
||||||
perPage: 100
|
|
||||||
|
|
||||||
keywordsfilters:
|
|
||||||
# strip season and/or ep
|
|
||||||
- name: re_replace
|
|
||||||
args: ["\\b([SE]\\d{1,4}){1,2}\\b", ""]
|
|
||||||
- name: diacritics
|
|
||||||
args: replace
|
|
||||||
- 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 }}"
|
|
||||||
filters:
|
|
||||||
- name: re_replace # replace special characters with " " (space)
|
|
||||||
args: ["[\\[!\"#$%&'()*+,\\-.\\/:;<=>?@[\\]^_`{|}~]", " "]
|
|
||||||
- name: diacritics
|
|
||||||
args: replace
|
|
||||||
- name: re_replace # replace multiple spaces
|
|
||||||
args: ["[ ]{2,}", " "]
|
|
||||||
# normalize to SXXEYY format
|
|
||||||
- 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"]
|
|
||||||
- name: re_replace # rimozioni varie
|
|
||||||
args: ["(?i)(Serie completa|Completat?a?|in pausa)", ""]
|
|
||||||
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)(televisione film)", "televisione_film"]
|
|
||||||
- name: replace
|
|
||||||
args: [" & ", "_&_"]
|
|
||||||
description:
|
|
||||||
text: "{{ .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
|
|
||||||
downloadvolumefactor:
|
|
||||||
# api returns 0%, 25%, 50%, 75%, 100%
|
|
||||||
selector: freeleech
|
|
||||||
case:
|
|
||||||
0%: 1 # not free
|
|
||||||
25%: 0.75
|
|
||||||
50%: 0.5
|
|
||||||
75%: 0.25
|
|
||||||
100%: 0 # freeleech
|
|
||||||
"*": 0 # catch errors
|
|
||||||
uploadvolumefactor:
|
|
||||||
# api returns False, True
|
|
||||||
selector: double_upload
|
|
||||||
case:
|
|
||||||
False: 1 # normal
|
|
||||||
True: 2 # double
|
|
||||||
# global MR is 0.4 but torrents must be seeded for 7 days regardless of ratio
|
|
||||||
# minimumratio:
|
|
||||||
# text: 0.4
|
|
||||||
minimumseedtime:
|
|
||||||
# 6 day (as seconds = 6 x 24 x 60 x 60)
|
|
||||||
text: 518400
|
|
||||||
# json UNIT3D 8.0.2 (custom)
|
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user