mirror of
https://github.com/Jackett/Jackett.git
synced 2025-09-15 00:14:10 +02:00
Compare commits
50 Commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
c95b34953d | ||
![]() |
8f2d24a4fd | ||
![]() |
7572fb10db | ||
![]() |
ffdedd4d03 | ||
![]() |
788e512443 | ||
![]() |
e1a8d33465 | ||
![]() |
fee79f5997 | ||
![]() |
d90b339f9c | ||
![]() |
678145d372 | ||
![]() |
8b15b76941 | ||
![]() |
40da709e0a | ||
![]() |
dc7ce8fd3e | ||
![]() |
f295f75c2b | ||
![]() |
88d401fcc8 | ||
![]() |
a968966938 | ||
![]() |
cd0e959351 | ||
![]() |
2e1c50ec92 | ||
![]() |
471618a6b9 | ||
![]() |
1df455826a | ||
![]() |
f3048ad71c | ||
![]() |
a211ae9af8 | ||
![]() |
434d574867 | ||
![]() |
627864111f | ||
![]() |
2bf3526033 | ||
![]() |
d8a48b2e50 | ||
![]() |
3cd1b44896 | ||
![]() |
21850bf6a1 | ||
![]() |
82eeb1e4d3 | ||
![]() |
1766de2a76 | ||
![]() |
d1b14e45ff | ||
![]() |
27d88b4f49 | ||
![]() |
6d3903235a | ||
![]() |
905f751a6f | ||
![]() |
bad0076248 | ||
![]() |
cbea57b22a | ||
![]() |
3b00646ac9 | ||
![]() |
f61a2b4740 | ||
![]() |
f890ddd119 | ||
![]() |
f87430d9e7 | ||
![]() |
d10ea528e2 | ||
![]() |
d7baa2554a | ||
![]() |
e6f7b3e0f7 | ||
![]() |
293036008e | ||
![]() |
29caa4f134 | ||
![]() |
7b29ed0182 | ||
![]() |
c3620780e6 | ||
![]() |
d20110d9f9 | ||
![]() |
e3d317fca8 | ||
![]() |
c55a3bf27d | ||
![]() |
584345480b |
10
README.md
10
README.md
@@ -254,7 +254,6 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
|
||||
* Aftershock
|
||||
* Aidoru!Online
|
||||
* Aither
|
||||
* Alleen Retail
|
||||
* AlphaRatio (AR)
|
||||
* AmigosShareClub
|
||||
* anasch.cc
|
||||
@@ -265,7 +264,6 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
|
||||
* Araba Fenice (Phoenix) [![(invite needed)][inviteneeded]](#)
|
||||
* ArabP2P
|
||||
* AsianCinema
|
||||
* AsianDVDClub
|
||||
* AudioNews (AN)
|
||||
* Aussierul.es [![(invite needed)][inviteneeded]](#)
|
||||
* AvistaZ (AsiaTorrents)
|
||||
@@ -339,7 +337,6 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
|
||||
* Dragonworld Reloaded [![(invite needed)][inviteneeded]](#)
|
||||
* EbookParadijs
|
||||
* Ebooks-Shares
|
||||
* EfectoDoppler
|
||||
* Empornium (EMP) [![(invite needed)][inviteneeded]](#)
|
||||
* eShareNet
|
||||
* eStone (XiDER, BeLoad, BigTorrent)
|
||||
@@ -430,6 +427,7 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
|
||||
* magic-heaven
|
||||
* Magico (Trellas) [![(invite needed)][inviteneeded]](#)
|
||||
* Majomparádé (TurkDepo)
|
||||
* MediaMaatjes
|
||||
* MegamixTracker
|
||||
* MeseVilág (Fairytale World)
|
||||
* MicroBit (µBit)
|
||||
@@ -445,7 +443,6 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
|
||||
* MyAnonamouse (MAM)
|
||||
* MySpleen [![(invite needed)][inviteneeded]](#)
|
||||
* NBTorrents [![(invite needed)][inviteneeded]](#)
|
||||
* Nbytez
|
||||
* NCore
|
||||
* Nebulance (NBL) (TransmiTheNet)
|
||||
* NetCosmo
|
||||
@@ -494,7 +491,6 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
|
||||
* RedBits
|
||||
* Red Star Torrent (RST) [![(invite needed)][inviteneeded]](#)
|
||||
* Redacted (PassTheHeadphones) [![(invite needed)][inviteneeded]](#)
|
||||
* Renegade
|
||||
* Resurrect The Net
|
||||
* RetroFlix
|
||||
* RevolutionTT
|
||||
@@ -519,6 +515,7 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
|
||||
* SpeedCD
|
||||
* Speedmaster HD [![(invite needed)][inviteneeded]](#)
|
||||
* SpeedTorrent Reloaded [![(invite needed)][inviteneeded]](#)
|
||||
* SpiderTK
|
||||
* Spirit of Revolution [![(invite needed)][inviteneeded]](#)
|
||||
* SportHD [![(invite needed)][inviteneeded]](#)
|
||||
* SportsCult
|
||||
@@ -577,6 +574,7 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
|
||||
* TurkSeed
|
||||
* TurkTorrent (TT)
|
||||
* TV Chaos UK (TVCUK)
|
||||
* TvRoad
|
||||
* TVstore
|
||||
* Twilight Torrents
|
||||
* Twilights Zoom
|
||||
@@ -736,7 +734,7 @@ Detailed instructions are available at [LinuxServer.io Jackett Docker](https://h
|
||||
|
||||
|
||||
## Installation on Synology
|
||||
Jackett is available as a beta package from [SynoCommunity](https://synocommunity.com/)
|
||||
Jackett is available as a [beta package](https://synocommunity.com/package/jackett) from [SynoCommunity](https://synocommunity.com/)
|
||||
|
||||
|
||||
## Running Jackett behind a reverse proxy
|
||||
|
@@ -1,125 +0,0 @@
|
||||
---
|
||||
id: asiandvdclub
|
||||
name: AsianDVDClub
|
||||
description: "AsianDVDClub (ADC) is a Private Torrent Tracker for Asian DVD and BluRay"
|
||||
language: en-US
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://asiandvdclub.org/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 1, cat: TV/Anime, desc: "Anime"}
|
||||
- {id: 3, cat: Movies, desc: "Japan"}
|
||||
- {id: 5, cat: Movies, desc: "China"}
|
||||
- {id: 4, cat: Movies, desc: "Korea"}
|
||||
- {id: 2, cat: Movies, desc: "Hong Kong"}
|
||||
- {id: 6, cat: Movies, desc: "Philippines"}
|
||||
- {id: 7, cat: Movies, desc: "Taiwan"}
|
||||
- {id: 8, cat: Movies, desc: "Thailand"}
|
||||
- {id: 9, cat: Movies, desc: "Vietnam"}
|
||||
- {id: 10, cat: Movies, desc: "Malaysia"}
|
||||
- {id: 11, cat: Movies, desc: "Other Asian"}
|
||||
- {id: 12, cat: Other, desc: "Miscellaneous"}
|
||||
|
||||
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: 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.
|
||||
|
||||
login:
|
||||
path: login
|
||||
method: post
|
||||
inputs:
|
||||
apple: evil
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
error:
|
||||
- selector: p:contains("Error")
|
||||
test:
|
||||
path: index
|
||||
selector: a[href="/logout"]
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: torrents/
|
||||
inputs:
|
||||
$raw: "{{ range .Categories }}countries[]={{.}}&{{end}}"
|
||||
searchbox: "{{ .Keywords }}"
|
||||
search: Search
|
||||
golden: "{{ if .Config.freeleech }}1{{ else }}{{ end }}"
|
||||
|
||||
rows:
|
||||
selector: table.torrenttable_helper > tbody > tr:has(img)
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: img[class^="cat-"]
|
||||
attribute: class
|
||||
case:
|
||||
img.cat-anime: 1
|
||||
img.cat-hk: 2
|
||||
img.cat-japan: 3
|
||||
img.cat-korea: 4
|
||||
img.cat-china: 5
|
||||
img.cat-phil: 6
|
||||
img.cat-taiwan: 7
|
||||
img.cat-thai: 8
|
||||
img.cat-viet: 9
|
||||
img.cat-malaysia: 10
|
||||
img.cat-rest: 11
|
||||
img.cat-misc: 12 # unconfirmed as there are currently no torrents for cat[12]
|
||||
title:
|
||||
selector: a[href^="/torrent/"]
|
||||
details:
|
||||
selector: a[href^="/torrent/"]
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href^="/torrent/"]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["torrent", "download"]
|
||||
size:
|
||||
selector: td:nth-last-child(6)
|
||||
seeders:
|
||||
selector: td:nth-last-child(5)
|
||||
leechers:
|
||||
selector: td:nth-last-child(4)
|
||||
date:
|
||||
selector: td:nth-last-child(3)
|
||||
remove: p
|
||||
filters:
|
||||
- name: timeago
|
||||
grabs:
|
||||
selector: td:nth-last-child(2)
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
img[src="../images/golden.gif"]: 0
|
||||
img[src="../images/silver.gif"]: 0.5 # unconfirmed as there are currently no silver torrents
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
minimumratio:
|
||||
text: 1.5
|
||||
minimumseedtime:
|
||||
# 45 days (as seconds = 45 x 24 x 60 x 60)
|
||||
text: 3888000
|
||||
# Engine n/a
|
@@ -26,6 +26,7 @@ caps:
|
||||
- {id: 69, cat: TV/Anime, desc: "Mese/XviD"}
|
||||
- {id: 58, cat: TV, desc: "Sorozat/Eng"}
|
||||
- {id: 68, cat: TV/Anime, desc: "Mese/DVD"}
|
||||
- {id: 91, cat: TV/Anime, desc: "Mese/HD"}
|
||||
- {id: 25, cat: Audio/MP3, desc: "Mp3/Hun"}
|
||||
- {id: 26, cat: Audio/MP3, desc: "Mp3/Eng"}
|
||||
- {id: 71, cat: Audio/Lossless, desc: "Lossless/Eng"}
|
||||
@@ -53,12 +54,13 @@ caps:
|
||||
music-search: [q]
|
||||
|
||||
settings:
|
||||
- name: username
|
||||
- name: cookie
|
||||
type: text
|
||||
label: Username
|
||||
- name: password
|
||||
type: password
|
||||
label: Password
|
||||
label: Cookie
|
||||
- name: info
|
||||
type: info
|
||||
label: How to get the Cookie
|
||||
default: "<ol><li>Login to this tracker with your browser<li>Open the <b>DevTools</b> panel by pressing <b>F12</b><li>Select the <b>Network</b> tab<li>Click on the <b>Doc</b> button (Chrome Browser) or <b>HTML</b> button (FireFox)<li>Refresh the page by pressing <b>F5</b><li>Click on the first row entry<li>Select the <b>Headers</b> tab on the Right panel<li>Find <b>'cookie:'</b> in the <b>Request Headers</b> section<li><b>Select</b> and <b>Copy</b> the whole cookie string <i>(everything after 'cookie: ')</i> and <b>Paste</b> here.</ol>"
|
||||
- name: sort
|
||||
type: select
|
||||
label: Sort requested from site
|
||||
@@ -67,7 +69,6 @@ settings:
|
||||
1: title
|
||||
4: added
|
||||
5: size
|
||||
7: seeders
|
||||
- name: type
|
||||
type: select
|
||||
label: Order requested from site
|
||||
@@ -81,13 +82,9 @@ settings:
|
||||
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: post
|
||||
method: cookie
|
||||
inputs:
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
error:
|
||||
- selector: table[width="920"]:contains("Hiba")
|
||||
cookie: "{{ .Config.cookie }}"
|
||||
test:
|
||||
path: index.php
|
||||
selector: a[href^="logout.php?k="]
|
||||
@@ -129,29 +126,27 @@ search:
|
||||
- name: replace
|
||||
args: ["details.php?id=", "download.php?torrent="]
|
||||
size:
|
||||
selector: td:last-child
|
||||
selector: td:nth-last-child(2)
|
||||
date:
|
||||
# 2021-11-09 16:51:24
|
||||
selector: td:nth-last-child(2)
|
||||
selector: td:last-child
|
||||
filters:
|
||||
- name: append
|
||||
args: " +01:00" # CET
|
||||
- name: dateparse
|
||||
args: "2006-01-02 15:04:05 -07:00"
|
||||
files:
|
||||
selector: td:nth-last-child(4)
|
||||
grabs:
|
||||
selector: td:nth-child(2)
|
||||
selector: td:nth-child(6)
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "D:(\\d+)x"
|
||||
args: "D:(\\d+)"
|
||||
seeders:
|
||||
selector: td:nth-child(2)
|
||||
selector: td:nth-child(4)
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "S:(\\d+)"
|
||||
leechers:
|
||||
selector: td:nth-child(2)
|
||||
selector: td:nth-child(5)
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "L:(\\d+)"
|
||||
|
@@ -193,4 +193,10 @@ search:
|
||||
i[class*="fa-globe text-green"]: 2 # Global Double Upload
|
||||
i[class*="fa-certificate text-pink"]: 2 # Featured Torrent
|
||||
"*": 1
|
||||
# global MR is 0.5 but torrents must be seeded for 7 days regardless of ratio
|
||||
# minimumratio:
|
||||
# text: 0.5
|
||||
minimumseedtime:
|
||||
# 7 day (as seconds = 7 x 24 x 60 x 60)
|
||||
text: 604800
|
||||
# UNIT3D 1.9.3
|
||||
|
@@ -1,173 +0,0 @@
|
||||
---
|
||||
id: devilsplayground
|
||||
name: Devils-Playground
|
||||
description: "Devils-Playground (Nbytez) is a Private Torrent Tracker for MOVIES / TV / GENERAL"
|
||||
language: en-GB
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- http://devils-playground.org/
|
||||
legacylinks:
|
||||
- https://devils-playground.org/
|
||||
- https://nbytez.me/
|
||||
- http://nbytez.me/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 3, cat: PC, desc: "Apps"}
|
||||
- {id: 4, cat: Books/EBook, desc: "Ebooks"}
|
||||
- {id: 22, cat: PC/Games, desc: "Games"}
|
||||
- {id: 15, cat: Movies, desc: "Movies"}
|
||||
- {id: 19, cat: Movies/UHD, desc: "Movies/Bluray"}
|
||||
- {id: 20, cat: Movies, desc: "Movies/Packs"}
|
||||
- {id: 17, cat: Movies/WEB-DL, desc: "Movies/Webrip"}
|
||||
- {id: 16, cat: Movies/HD, desc: "Movies/x265"}
|
||||
- {id: 18, cat: Movies/SD, desc: "Movies/XVID"}
|
||||
- {id: 10, cat: Audio, desc: "Music/"}
|
||||
- {id: 12, cat: Audio/Lossless, desc: "Music/FLAC"}
|
||||
- {id: 11, cat: Audio/MP3, desc: "Music/MP3"}
|
||||
- {id: 14, cat: Audio, desc: "Music/Packs"}
|
||||
- {id: 13, cat: Audio, desc: "Music/Top UK 40"}
|
||||
- {id: 5, cat: TV, desc: "TV"}
|
||||
- {id: 9, cat: TV, desc: "TV/Packs"}
|
||||
- {id: 6, cat: TV/HD, desc: "TV/x254"}
|
||||
- {id: 7, cat: TV/HD, desc: "TV/x255"}
|
||||
- {id: 8, cat: TV/SD, desc: "TV/XVID"}
|
||||
|
||||
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: Filter freeleech only
|
||||
default: false
|
||||
- name: sort
|
||||
default: added
|
||||
options:
|
||||
added: created
|
||||
seeders: seeders
|
||||
size: size
|
||||
name: title
|
||||
- name: type
|
||||
type: select
|
||||
label: Order requested from site
|
||||
default: desc
|
||||
options:
|
||||
desc: desc
|
||||
asc: asc
|
||||
- name: info_tpp
|
||||
type: info
|
||||
label: Results Per Page
|
||||
default: For best results, change the <b>Torrents per page:</b> setting to <b>40</b> on your account profile. The default is <i>15</i>.
|
||||
|
||||
login:
|
||||
path: takelogin.php
|
||||
method: post
|
||||
inputs:
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
error:
|
||||
- selector: table:has(a[href*="login.php?error=1"])
|
||||
message:
|
||||
text: "ERROR: Incorrect username!"
|
||||
- selector: table:has(a[href*="login.php?error=4"])
|
||||
message:
|
||||
text: "ERROR: Incorrect password!"
|
||||
- selector: table:has(a[href*="login.php?error="])
|
||||
message:
|
||||
text: "ERROR: Something went wrong during login!"
|
||||
test:
|
||||
path: index.php
|
||||
selector: a[href*="logout.php?logouthash="]
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: browse.php
|
||||
inputs:
|
||||
do: search
|
||||
# does not support multi categories so defaulting to ALL
|
||||
category: 0
|
||||
# yes incldead, no activeonly
|
||||
include_dead_torrents: yes
|
||||
keywords: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}"
|
||||
# t_name, t_description, t_both, t_uploader, t_genre
|
||||
search_type: "{{ if .Query.IMDBID }}t_genre{{ else }}t_name{{ end }}"
|
||||
sort: "{{ .Config.sort }}"
|
||||
order: "{{ .Config.type }}"
|
||||
# does not return imdb link in results
|
||||
keywordsfilters:
|
||||
- name: re_replace # replace special characters with "%" (wildcard)
|
||||
args: ["[^a-zA-Z0-9]+", "%"]
|
||||
|
||||
rows:
|
||||
selector: "table#sortabletable tbody tr:has(a[href*=\"download.php?id=\"]){{ if .Config.freeleech }}:has(img[src$=\"/freedownload.gif\"]){{ else }}{{ end }}"
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: a[href*="browse.php?category="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: category
|
||||
title_default:
|
||||
# is often abbreviated
|
||||
selector: a[href*="details.php?id="]
|
||||
title_optional:
|
||||
# usually longer than details title
|
||||
selector: div[id^="port-content-"] div
|
||||
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
|
||||
poster:
|
||||
selector: div[id^="port-content-"] img
|
||||
attribute: src
|
||||
date:
|
||||
selector: td:nth-child(2) > div:last-child
|
||||
filters:
|
||||
- name: regexp
|
||||
args: (\d{2}-\d{2}-\d{4} \d{2}:\d{2})
|
||||
- name: append
|
||||
args: " +00:00" # auto adjusted by site account profile
|
||||
- name: dateparse
|
||||
args: "02-01-2006 15:04 -07:00"
|
||||
size:
|
||||
selector: td:nth-child(5)
|
||||
grabs:
|
||||
selector: td:nth-child(6)
|
||||
seeders:
|
||||
selector: td:nth-child(7)
|
||||
leechers:
|
||||
selector: td:nth-child(8)
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
img[src$="/freedownload.gif"]: 0
|
||||
img[src$="/silverdownload.gif"]: 0.5
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
case:
|
||||
img[src$="/x2.gif"]: 2
|
||||
"*": 1
|
||||
# TBD, Rules and FAQ do not cover this yet
|
||||
# minimumratio:
|
||||
# text: 1.0
|
||||
# minimumseedtime:
|
||||
# # 2 days (as seconds = 2 x 24 x 60 x 60)
|
||||
# text: 172800
|
||||
# TS Special Edition v.7.5
|
@@ -10,24 +10,23 @@ links:
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 77, cat: PC, desc: "3D Models"}
|
||||
- {id: 65, cat: Audio, desc: "Audio"}
|
||||
- {id: 64, cat: Books/EBook, desc: "Books"}
|
||||
- {id: 66, cat: TV, desc: "Business"}
|
||||
- {id: 66, cat: Books, desc: "Business"}
|
||||
- {id: 68, cat: Books/Comics, desc: "Comics"}
|
||||
- {id: 67, cat: TV, desc: "Development"}
|
||||
- {id: 60, cat: TV/Documentary, desc: "Documentaries"}
|
||||
- {id: 59, cat: TV/Documentary, desc: "Docs/Movies"}
|
||||
- {id: 60, cat: TV/Documentary, desc: "Docs/TV"}
|
||||
- {id: 71, cat: Other, desc: "Fonts"}
|
||||
- {id: 62, cat: Other, desc: "Graphic"}
|
||||
- {id: 72, cat: Books, desc: "IT Books"}
|
||||
- {id: 57, cat: Books/Mags, desc: "Magazine"}
|
||||
- {id: 58, cat: TV, desc: "Medicine"}
|
||||
- {id: 58, cat: Books, desc: "Medicine"}
|
||||
- {id: 70, cat: Books/EBook, desc: "Occult"}
|
||||
- {id: 74, cat: Audio, desc: "Podcasts"}
|
||||
- {id: 69, cat: Other, desc: "PS Resources"}
|
||||
- {id: 76, cat: Books, desc: "Self-Help"}
|
||||
- {id: 56, cat: TV/Sport, desc: "Sports"}
|
||||
- {id: 59, cat: TV, desc: "Video"}
|
||||
- {id: 61, cat: TV, desc: "Video tutorials"}
|
||||
- {id: 61, cat: Other, desc: "Tutorials"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
|
@@ -1,146 +0,0 @@
|
||||
---
|
||||
id: efectodoppler
|
||||
name: Efecto Doppler
|
||||
description: "Efecto Doppler is a SPANISH Private Torrent Tracker for MUSIC"
|
||||
language: es-ES
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://efectodoppler.pw/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 1, cat: Audio, desc: "Música"}
|
||||
- {id: 2, cat: PC, desc: "Aplicaciones"}
|
||||
- {id: 3, cat: Books/EBook, desc: "Libros Electrónicos"}
|
||||
- {id: 4, cat: Audio/Audiobook, desc: "Audiolibros"}
|
||||
- {id: 5, cat: Audio/Video, desc: "Vídeos de aprendizaje"}
|
||||
- {id: 6, cat: Books/Comics, desc: "Comedia"}
|
||||
- {id: 7, cat: Books/Mags, desc: "Revistas"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
music-search: [q, album, artist]
|
||||
book-search: [q]
|
||||
|
||||
settings:
|
||||
- name: username
|
||||
type: text
|
||||
label: Username
|
||||
- name: password
|
||||
type: password
|
||||
label: Password
|
||||
- name: freeleech
|
||||
type: checkbox
|
||||
label: Search freeleech only
|
||||
default: false
|
||||
- name: sort
|
||||
type: select
|
||||
label: Sort requested from site
|
||||
default: time
|
||||
options:
|
||||
time: created
|
||||
seeders: seeders
|
||||
size: size
|
||||
- name: type
|
||||
type: select
|
||||
label: Order requested from site
|
||||
default: desc
|
||||
options:
|
||||
desc: desc
|
||||
asc: asc
|
||||
|
||||
login:
|
||||
path: login.php
|
||||
method: post
|
||||
inputs:
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
keeplogged: 1
|
||||
error:
|
||||
- selector: form > span.warning
|
||||
test:
|
||||
path: index.php
|
||||
selector: a[href^="logout.php?auth="]
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: torrents.php
|
||||
inputs:
|
||||
$raw: "{{ range .Categories }}filter_cat[{{.}}]=1&{{end}}"
|
||||
searchstr: "{{ .Keywords }}"
|
||||
artistname: "{{ .Query.Artist }}"
|
||||
groupname: "{{ .Query.Album }}"
|
||||
order_by: "{{ .Config.sort }}"
|
||||
order_way: "{{ .Config.type }}"
|
||||
# 1 gold, 2 neutral, 3 other, 0 normal
|
||||
freetorrent: "{{ if .Config.freeleech }}3{{ else }}{{ end }}"
|
||||
|
||||
rows:
|
||||
selector: tr.torrent
|
||||
filters:
|
||||
- name: andmatch
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: div.tooltip
|
||||
case:
|
||||
div.cats_música: 1
|
||||
div.cats_aplicaciones: 2
|
||||
div.cats_libroselectrónicos: 3
|
||||
div.cats_audiolibros: 4
|
||||
div.cats_vídeosdeaprendizaje: 5
|
||||
div.cats_comedia: 6
|
||||
div.cats_revistas: 7
|
||||
artist:
|
||||
selector: a[href^="artist.php?id="]
|
||||
optional: true
|
||||
title:
|
||||
selector: a[href^="torrents.php?id="]
|
||||
filters:
|
||||
- name: prepend
|
||||
args: "{{ if .Result.artist }}{{ .Result.artist }}{{ else }}Varios artistas{{ end }} - "
|
||||
details:
|
||||
selector: a[href^="torrents.php?id="]
|
||||
attribute: href
|
||||
poster:
|
||||
selector: div.group_image img
|
||||
attribute: src
|
||||
download:
|
||||
selector: a[href^="torrents.php?action=download&id="]
|
||||
attribute: href
|
||||
description:
|
||||
selector: div.torrent_info
|
||||
files:
|
||||
selector: td:nth-child(3)
|
||||
date:
|
||||
selector: td:nth-child(4) span
|
||||
attribute: title
|
||||
filters:
|
||||
- name: append
|
||||
args: " +01:00" # CET
|
||||
- name: dateparse
|
||||
args: "Jan 02 2006, 15:04 -07:00"
|
||||
size:
|
||||
selector: td:nth-child(5)
|
||||
grabs:
|
||||
selector: td:nth-child(6)
|
||||
seeders:
|
||||
selector: td:nth-child(7)
|
||||
leechers:
|
||||
selector: td:nth-child(8)
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
strong.torrent_label[title*="Neutral"]: 0
|
||||
strong.torrent_label[title*="Oro"]: 0
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
case:
|
||||
strong.torrent_label[title*="Neutral"]: 0
|
||||
"*": 1
|
||||
minimumratio:
|
||||
text: 0.6
|
||||
minimumseedtime:
|
||||
# 3 days (as seconds = 3 x 24 x 60 x 60)
|
||||
text: 259200
|
||||
# engine n/a
|
@@ -78,7 +78,7 @@ download:
|
||||
text: "{{ .Config.thankyou }}"
|
||||
submit: Opslaan
|
||||
selectors:
|
||||
- selector: a[href^="downloadv1.php?id="]
|
||||
- selector: a[href^="download.php?id="]
|
||||
attribute: href
|
||||
|
||||
search:
|
||||
|
@@ -143,4 +143,10 @@ search:
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
text: 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
|
||||
|
@@ -5,6 +5,8 @@ description: "freshMeat is a Public torrent meta-search engine"
|
||||
language: en-US
|
||||
type: public
|
||||
encoding: UTF-8
|
||||
certificates:
|
||||
- 9aa995b06d86a22074c90faf5a9836e8a0fe6327 # expired 03/Jan/2022
|
||||
links:
|
||||
- https://freshmeat.io/
|
||||
|
||||
|
@@ -25,18 +25,21 @@ caps:
|
||||
- {id: 16, cat: TV, desc: "TV Yerli"}
|
||||
- {id: 19, cat: TV/HD, desc: "TV Yerli HD"}
|
||||
- {id: 170, cat: Movies/HD, desc: "Movies HD"}
|
||||
- {id: 175, cat: Movies/HD, desc: "Movies 1080p Remux DUAL"}
|
||||
- {id: 226, cat: Movies/HD, desc: "Movies 1080p Remux TR"}
|
||||
- {id: 183, cat: Movies/HD, desc: "Movies 1080p Remux Yabancı"}
|
||||
- {id: 174, cat: Movies/3D, desc: "Movies 3D DUAL"}
|
||||
- {id: 180, cat: Movies/3D, desc: "Movies 3D TR"}
|
||||
- {id: 181, cat: Movies/3D, desc: "Movies 3D Yabancı"}
|
||||
- {id: 217, cat: Movies/UHD, desc: "Movies 4K DUAL"}
|
||||
- {id: 224, cat: Movies/UHD, desc: "Movies 4K Remux DUAL"}
|
||||
- {id: 225, cat: Movies/UHD, desc: "Movies 4K Remux Yabanci"}
|
||||
- {id: 218, cat: Movies/UHD, desc: "Movies 4K TR"}
|
||||
- {id: 216, cat: Movies/UHD, desc: "Movies 4K Yabancı"}
|
||||
- {id: 205, cat: Movies/DVD, desc: "Movies DVD DUAL"}
|
||||
- {id: 206, cat: Movies/DVD, desc: "Movies DVD TR/Yerli"}
|
||||
- {id: 219, cat: Movies/DVD, desc: "Movies DVD Yabancı"}
|
||||
- {id: 173, cat: Movies/BluRay, desc: "Movies Full BD"}
|
||||
- {id: 175, cat: Movies/HD, desc: "Movies Remux DUAL"}
|
||||
- {id: 183, cat: Movies/HD, desc: "Movies Remux Yabancı"}
|
||||
- {id: 171, cat: Movies/HD, desc: "Movies x264 DUAL"}
|
||||
- {id: 176, cat: Movies/HD, desc: "Movies x264 TR"}
|
||||
- {id: 177, cat: Movies/HD, desc: "Movies x264 Yabancı"}
|
||||
@@ -73,6 +76,7 @@ caps:
|
||||
- {id: 221, cat: Other, desc: "VIP"}
|
||||
- {id: 85, cat: XXX, desc: "XXX"}
|
||||
- {id: 92, cat: XXX/Other, desc: "XXX E-Magazin"}
|
||||
- {id: 220, cat: XXX/Other, desc: "XXX Hentai"}
|
||||
- {id: 93, cat: XXX, desc: "XXX Movie"}
|
||||
- {id: 95, cat: XXX/Pack, desc: "XXX Packs"}
|
||||
- {id: 96, cat: XXX/ImageSet, desc: "XXX Pics"}
|
||||
|
@@ -12,25 +12,25 @@ caps:
|
||||
# commented out categories are discussion-only forums
|
||||
categorymappings:
|
||||
# CIURMA
|
||||
# - {id: "150", cat: Other, desc: "Regole per Postare"}
|
||||
# - {id: "150", cat: Other, desc: "Regole per Postare"}
|
||||
- {id: "140", cat: Other/Misc, desc: "Bozze - Sezione fruibile a tutti i nuovi Releaser", default: true}
|
||||
# INFORMAZIONI E REGOLE DEL FORUM
|
||||
# - {id: "108", cat: Other, desc: "Manifesto Generale"}
|
||||
# - {id: "30", cat: Other, desc: "Disclaimer"}
|
||||
# - {id: "76", cat: Other, desc: "Statuto"}
|
||||
# - {id: "31", cat: Other, desc: "Comunicazioni dello STAFF"}
|
||||
# - {id: "32", cat: Other, desc: "Guide sull'uso del Forum"}
|
||||
# - {id: "124", cat: Other, desc: "iCV Community"}
|
||||
# - {id: "108", cat: Other, desc: "Manifesto Generale"}
|
||||
# - {id: "30", cat: Other, desc: "Disclaimer"}
|
||||
# - {id: "76", cat: Other, desc: "Statuto"}
|
||||
# - {id: "31", cat: Other, desc: "Comunicazioni dello STAFF"}
|
||||
# - {id: "32", cat: Other, desc: "Guide sull'uso del Forum"}
|
||||
# - {id: "124", cat: Other, desc: "iCV Community"}
|
||||
# PROGETTI
|
||||
# - {id: "172", cat: Audio, desc: "Progetto - Discografie"}
|
||||
# - {id: "109", cat: Movies, desc: "Progetto - Filmografie"}
|
||||
# - {id: "110", cat: Books, desc: "Progetto - Biblico"}
|
||||
# - {id: "137", cat: Other, desc: "Progetto - Releaser/Crew"}
|
||||
# - {id: "126", cat: Movies, desc: "Progetto - Cine Vintage "}
|
||||
# - {id: "172", cat: Audio, desc: "Progetto - Discografie"}
|
||||
# - {id: "109", cat: Movies, desc: "Progetto - Filmografie"}
|
||||
# - {id: "110", cat: Books, desc: "Progetto - Biblico"}
|
||||
# - {id: "137", cat: Other, desc: "Progetto - Releaser/Crew"}
|
||||
# - {id: "126", cat: Movies, desc: "Progetto - Cine Vintage "}
|
||||
# MUSICA
|
||||
- {id: "19", cat: Audio, desc: "Musica Audio - Tutti i formati", default: true}
|
||||
- {id: "20", cat: Audio/Video, desc: "Musica Video - Standard Definition - High Definition", default: true}
|
||||
# - {id: "135", cat: Audio, desc: "Richieste Titoli Musica"}
|
||||
# - {id: "135", cat: Audio, desc: "Richieste Titoli Musica"}
|
||||
# VIDEO
|
||||
- {id: "6", cat: Movies/SD, desc: "Video - Screener", default: true}
|
||||
- {id: "7", cat: Movies/SD, desc: "Video - Standard Definition", default: true}
|
||||
@@ -41,66 +41,66 @@ caps:
|
||||
- {id: "95", cat: Movies, desc: "Video - Dispositivi Mobili (Portable)", default: true}
|
||||
- {id: "79", cat: Movies, desc: "Video - TVRip - Standard Definition - High Definition", default: true}
|
||||
- {id: "14", cat: TV/Other, desc: "Video - Documentari - Sportivi - Spettacoli - Lirica - Standard Definition - High Definition", default: true}
|
||||
# - {id: "134", cat: Movies, desc: "Richieste Titoli Video"}
|
||||
# - {id: "134", cat: Movies, desc: "Richieste Titoli Video"}
|
||||
# SERIE TV
|
||||
- {id: "12", cat: TV/SD, desc: "Serie TV - Standard Definition", default: true}
|
||||
- {id: "102", cat: TV/HD, desc: "Serie TV - High definition H.264", default: true}
|
||||
- {id: "161", cat: TV/HD, desc: "Serie TV - High definition HEVC/H.265", default: true}
|
||||
# - {id: "103", cat: TV, desc: "L'angolo di Giuseppe-iCV & littlelinx"}
|
||||
# - {id: "160", cat: TV, desc: "L'angolo di Pir8"}
|
||||
# - {id: "169", cat: TV, desc: "L'angolo di TV-P2P"}
|
||||
# - {id: "133", cat: TV, desc: "Richieste Titoli Serie TV"}
|
||||
# - {id: "103", cat: TV, desc: "L'angolo di Giuseppe-iCV & littlelinx"}
|
||||
# - {id: "160", cat: TV, desc: "L'angolo di Pir8"}
|
||||
# - {id: "169", cat: TV, desc: "L'angolo di TV-P2P"}
|
||||
# - {id: "133", cat: TV, desc: "Richieste Titoli Serie TV"}
|
||||
# CARTONI ANIMATI - ANIME
|
||||
- {id: "17", cat: Movies/SD, desc: "Cartoni Animati - Standard Definition - High Definition", default: true}
|
||||
- {id: "18", cat: TV/HD, desc: "Cartoni Animati - Serie TV Standard Definition - High Definition", default: true}
|
||||
- {id: "15", cat: TV/Anime, desc: "Anime - Standard Definition - High Definition", default: true}
|
||||
- {id: "16", cat: TV/Anime, desc: "Anime - Serie TV Standard Definition - High Definition", default: true}
|
||||
- {id: "89", cat: Movies/HD, desc: "Cartoni Animati - Anime - Serie Tv e Non - High Definition - HEVC/H.265", default: true}
|
||||
# - {id: "132", cat: TV/Anime, desc: "Richieste Titoli Cartoni Animati - Anime"}
|
||||
# - {id: "132", cat: TV/Anime, desc: "Richieste Titoli Cartoni Animati - Anime"}
|
||||
# EBOOK - FUMETTI - RIVISTE - QUOTIDIANI
|
||||
- {id: "25", cat: Books/EBook, desc: "Ebook", default: true}
|
||||
- {id: "26", cat: Audio/Audiobook, desc: "Ebook Audio", default: true}
|
||||
- {id: "170", cat: Books/Comics, desc: "Fumetti", default: true}
|
||||
- {id: "28", cat: Books/Mags, desc: "Riviste - Quotidiani", default: true}
|
||||
- {id: "47", cat: Other, desc: "Wallpapers - Poster - Calendari", default: true}
|
||||
# - {id: "131", cat: Movies, desc: "Richieste Titoli Ebook - Fumetti - Riviste"}
|
||||
# - {id: "131", cat: Movies, desc: "Richieste Titoli Ebook - Fumetti - Riviste"}
|
||||
# SOFTWARE
|
||||
- {id: "21", cat: PC/0day, desc: "Windows Software", default: true}
|
||||
# - {id: "22", cat: PC, desc: "Windows Guide e altre in generale"}
|
||||
# - {id: "92", cat: PC, desc: "Windows Supporto "}
|
||||
# - {id: "22", cat: PC, desc: "Windows Guide e altre in generale"}
|
||||
# - {id: "92", cat: PC, desc: "Windows Supporto "}
|
||||
- {id: "138", cat: PC/Mac, desc: "macOS Software", default: true}
|
||||
# - {id: "162", cat: PC/Mac, desc: "macOS Guide"}
|
||||
# - {id: "163", cat: PC/Mac, desc: "macOS Supporto"}
|
||||
# - {id: "164", cat: PC/Mac, desc: "Hackintosh Guide"}
|
||||
# - {id: "165", cat: PC/Mac, desc: "Hackintosh Supporto"}
|
||||
# - {id: "162", cat: PC/Mac, desc: "macOS Guide"}
|
||||
# - {id: "163", cat: PC/Mac, desc: "macOS Supporto"}
|
||||
# - {id: "164", cat: PC/Mac, desc: "Hackintosh Guide"}
|
||||
# - {id: "165", cat: PC/Mac, desc: "Hackintosh Supporto"}
|
||||
- {id: "23", cat: PC, desc: "Linux Software", default: true}
|
||||
# - {id: "168", cat: PC, desc: "Linux Guide"}
|
||||
# - {id: "93", cat: PC, desc: "Linux Supporto"}
|
||||
# - {id: "168", cat: PC, desc: "Linux Guide"}
|
||||
# - {id: "93", cat: PC, desc: "Linux Supporto"}
|
||||
- {id: "24", cat: PC, desc: "Guide & Tutorial Video", default: true}
|
||||
# - {id: "129", cat: PC, desc: "Richieste Titoli Software"}
|
||||
# - {id: "129", cat: PC, desc: "Richieste Titoli Software"}
|
||||
# GAMES
|
||||
- {id: "36", cat: PC/Games, desc: "Games - Pc Windows", default: true}
|
||||
- {id: "158", cat: PC/Mac, desc: "Games - macOS", default: true}
|
||||
- {id: "37", cat: Console/XBox 360, desc: "Games - Console Microsoft Xbox 360", default: true}
|
||||
- {id: "38", cat: Console/PS3, desc: "Games - Console Sony PS3", default: true}
|
||||
- {id: "152", cat: Console/PS4, desc: "Games - Console Sony PS4", default: true}
|
||||
# - {id: "99", cat: PC/Games, desc: "Games - Supporto"}
|
||||
# - {id: "123", cat: PC/Games, desc: "Games - Guide"}
|
||||
# - {id: "130", cat: PC/Games, desc: "Richieste Titoli Games"}
|
||||
# - {id: "99", cat: PC/Games, desc: "Games - Supporto"}
|
||||
# - {id: "123", cat: PC/Games, desc: "Games - Guide"}
|
||||
# - {id: "130", cat: PC/Games, desc: "Richieste Titoli Games"}
|
||||
# ANDROID
|
||||
- {id: "58", cat: PC/Mobile-Android, desc: "Android Apps", default: true}
|
||||
# - {id: "144", cat: PC/Mobile-Android, desc: "Android Guide"}
|
||||
# - {id: "128", cat: PC/Mobile-Android, desc: "Richieste Titoli Android"}
|
||||
# - {id: "144", cat: PC/Mobile-Android, desc: "Android Guide"}
|
||||
# - {id: "128", cat: PC/Mobile-Android, desc: "Richieste Titoli Android"}
|
||||
# TEAM GRAFICO
|
||||
# - {id: "88", cat: Other, desc: "Vetrina Grafica"}
|
||||
# - {id: "100", cat: Other, desc: "Tutorial Photoshop CC"}
|
||||
# - {id: "88", cat: Other, desc: "Vetrina Grafica"}
|
||||
# - {id: "100", cat: Other, desc: "Tutorial Photoshop CC"}
|
||||
# TAVERNA DEI CORSARI
|
||||
# - {id: "39", cat: Other, desc: "Presentati alla Community"}
|
||||
# - {id: "112", cat: Other, desc: "Assistenza Forum"}
|
||||
# - {id: "33", cat: Other, desc: "Chiacchiere in generale"}
|
||||
# - {id: "83", cat: Other, desc: "Commenti Titoli "}
|
||||
# - {id: "136", cat: Other, desc: "Sondaggi"}
|
||||
# - {id: "145", cat: Other, desc: "il CorSaRo VeRde App"}
|
||||
# - {id: "39", cat: Other, desc: "Presentati alla Community"}
|
||||
# - {id: "112", cat: Other, desc: "Assistenza Forum"}
|
||||
# - {id: "33", cat: Other, desc: "Chiacchiere in generale"}
|
||||
# - {id: "83", cat: Other, desc: "Commenti Titoli "}
|
||||
# - {id: "136", cat: Other, desc: "Sondaggi"}
|
||||
# - {id: "145", cat: Other, desc: "il CorSaRo VeRde App"}
|
||||
# ARCHIVIO FORUM
|
||||
- {id: "171", cat: PC/0day, desc: "Windows Software obsoleto", default: true}
|
||||
|
||||
|
@@ -1,39 +1,43 @@
|
||||
---
|
||||
id: alleenretail
|
||||
name: Alleen Retail
|
||||
description: "Alleen Retail is a DUTCH Private Torrent Tracker for MOVIES / TV / GENERAL"
|
||||
id: mediamaatjes
|
||||
name: MediaMaatjes
|
||||
description: "MediaMaatjes is a DUTCH Private Torrent Tracker for MOVIES / TV / GENERAL"
|
||||
language: nl-NL
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- http://www.alleenretail.org/ # does not support https ERR_CONNECTION_REFUSED
|
||||
- https://www.mediamaatjes.org/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 2, cat: Movies/DVD, desc: "Films DVD"}
|
||||
- {id: 17, cat: Movies, desc: "Films Promo"}
|
||||
- {id: 3, cat: Audio/Video, desc: "Muziek Video"}
|
||||
- {id: 4, cat: Audio/Video, desc: "Cabaret"}
|
||||
- {id: 18, cat: Movies, desc: "Films Kids"}
|
||||
- {id: 6, cat: TV, desc: "TV Series"}
|
||||
- {id: 19, cat: Other, desc: "Overigen"}
|
||||
- {id: 20, cat: TV/Documentary, desc: "Documentaire"}
|
||||
- {id: 9, cat: PC/Games, desc: "Games PC"}
|
||||
- {id: 10, cat: Books/Mags, desc: "Magazines"}
|
||||
- {id: 11, cat: Movies/SD, desc: "Films AVI/DivX"}
|
||||
- {id: 22, cat: Movies, desc: "Films Classics"}
|
||||
- {id: 8, cat: Audio, desc: "Muziek"}
|
||||
- {id: 23, cat: PC/Mac, desc: "Software Mac"}
|
||||
- {id: 1, cat: Books/Comics, desc: "Stripboeken"}
|
||||
- {id: 13, cat: PC/Mobile-Android, desc: "Android"}
|
||||
- {id: 14, cat: PC/Mobile-Other, desc: "Navigatie"}
|
||||
- {id: 7, cat: PC/0day, desc: "Software PC"}
|
||||
- {id: 12, cat: PC/Mobile-iOS, desc: "iOS"}
|
||||
- {id: 21, cat: Movies/HD, desc: "Films HD"}
|
||||
- {id: 5, cat: Audio/Audiobook, desc: "Luisterboeken"}
|
||||
- {id: 15, cat: XXX, desc: "18+"}
|
||||
- {id: 24, cat: Movies/UHD, desc: "Films Blu-ray/3D/4K"}
|
||||
- {id: 16, cat: Books/EBook, desc: "Ebooks"}
|
||||
- {id: 43, cat: Movies/UHD, desc: "4k Films"}
|
||||
- {id: 41, cat: TV/Documentary, desc: "Documentaire"}
|
||||
- {id: 40, cat: Other, desc: "kerst"}
|
||||
- {id: 15, cat: Other, desc: "Overige"}
|
||||
- {id: 1, cat: Other, desc: "Afbeeldingen"}
|
||||
- {id: 19, cat: TV, desc: "TV Series"}
|
||||
- {id: 21, cat: TV/HD, desc: "Series/MKV"}
|
||||
- {id: 23, cat: Audio/Video, desc: "Cabaret"}
|
||||
- {id: 24, cat: Books/EBook, desc: "E-Books"}
|
||||
- {id: 30, cat: Movies, desc: "Classic"}
|
||||
- {id: 31, cat: Audio/Audiobook, desc: "Luisterboek"}
|
||||
- {id: 32, cat: Movies/HD, desc: "Films/HD 720p"}
|
||||
- {id: 33, cat: Audio, desc: "NL Muziek"}
|
||||
- {id: 34, cat: Books/Comics, desc: "Stripboeken"}
|
||||
- {id: 36, cat: Books/Mags, desc: "E Magazine"}
|
||||
- {id: 18, cat: TV/SD, desc: "Series/XVID"}
|
||||
- {id: 17, cat: PC/Games, desc: "PC Spellen"}
|
||||
- {id: 16, cat: PC, desc: "PC Software"}
|
||||
- {id: 2, cat: Movies/HD, desc: "Films/HD 1080p"}
|
||||
- {id: 4, cat: Audio/Video, desc: "DVD Muziek"}
|
||||
- {id: 3, cat: Movies/DVD, desc: "DVD Kids"}
|
||||
- {id: 5, cat: Movies/DVD, desc: "DVD Films"}
|
||||
- {id: 7, cat: Movies/SD, desc: "DVD Promo/R5"}
|
||||
- {id: 8, cat: XXX, desc: "Erotiek"}
|
||||
- {id: 9, cat: PC/Mobile-Other, desc: "GSM/Navigatie"}
|
||||
- {id: 10, cat: Audio, desc: "Muziek Album"}
|
||||
- {id: 11, cat: Audio, desc: "Muziek Diverse"}
|
||||
- {id: 13, cat: Console/Wii, desc: "Wii"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
@@ -49,13 +53,17 @@ settings:
|
||||
- name: password
|
||||
type: password
|
||||
label: Password
|
||||
# - name: thankyou
|
||||
# type: text
|
||||
# label: Thank You Comment
|
||||
# - name: info
|
||||
# type: info
|
||||
# label: Thank you comment
|
||||
# default: This site requires you to leave a Thank You comment before you can download. Enter your personalised comment above.
|
||||
- name: freeleech
|
||||
type: checkbox
|
||||
label: Filter freeleech only
|
||||
default: false
|
||||
- name: thankyou
|
||||
type: text
|
||||
label: Thank You Comment
|
||||
- name: info
|
||||
type: info
|
||||
label: Thank you comment
|
||||
default: This site requires you to leave a Thank You comment before you can download. Enter your personalised comment above.
|
||||
|
||||
login:
|
||||
path: takelogin.php
|
||||
@@ -69,22 +77,22 @@ login:
|
||||
path: /
|
||||
selector: a[href="logout.php"]
|
||||
|
||||
# download:
|
||||
# before:
|
||||
# # /comment.php?action=add&tid=166386
|
||||
# path: comment.php
|
||||
# method: post
|
||||
# inputs:
|
||||
# action: add
|
||||
# tid: "{{ .DownloadUri.Query.id }}"
|
||||
# text: "{{ .Config.thankyou }}"
|
||||
# submit: Opslaan
|
||||
# selectors:
|
||||
# - selector: a[href^="download.php?id="]
|
||||
# attribute: href
|
||||
download:
|
||||
before:
|
||||
# https://www.mediamaatjes.org/comment.php?action=add&tid=166386
|
||||
path: comment.php
|
||||
method: post
|
||||
inputs:
|
||||
action: add
|
||||
tid: "{{ .DownloadUri.Query.id }}"
|
||||
text: "{{ .Config.thankyou }}"
|
||||
selectors:
|
||||
- selector: a[href^="download.php?id="]
|
||||
attribute: href
|
||||
|
||||
search:
|
||||
paths:
|
||||
# https://www.mediamaatjes.org/browse.php?search=&cat=43&incldead=1
|
||||
- path: browse.php
|
||||
inputs:
|
||||
$raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
|
||||
@@ -93,7 +101,7 @@ search:
|
||||
# does not support imdbid search and does not return imdb link in results
|
||||
|
||||
rows:
|
||||
selector: table.mainouter
|
||||
selector: "table.mainouter{{ if .Config.freeleech }}:has(img[src=\"pic/freedlfsu.gif\"]){{ else }}{{ end }}"
|
||||
filters:
|
||||
- name: andmatch
|
||||
|
||||
@@ -119,7 +127,7 @@ search:
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href^="download.php?id="]
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: href
|
||||
size:
|
||||
selector: a[href^="details_bestanden.php?torrent_id="]
|
||||
@@ -132,9 +140,9 @@ search:
|
||||
- name: regexp
|
||||
args: "in (\\d+) bestan"
|
||||
grabs:
|
||||
selector: table tr:nth-child(2) td:nth-child(1)
|
||||
selector: table table tr:nth-child(2) td:nth-child(1)
|
||||
date:
|
||||
selector: table tr:nth-child(2) td:nth-child(3)
|
||||
selector: table table tr:nth-child(2) td:nth-child(2)
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["januari", "January"]
|
||||
@@ -168,19 +176,20 @@ search:
|
||||
args: "2 January 2006 15:04:05 -07:00"
|
||||
seeders_optional:
|
||||
optional: true
|
||||
selector: table tr:nth-child(3) td:nth-child(6) font b
|
||||
selector: table tr:nth-child(3) td:nth-child(5) font b
|
||||
seeders:
|
||||
text: "{{ if .Result.seeders_optional }}{{ .Result.seeders_optional }}{{ else }}0{{ end }}"
|
||||
leechers_optional:
|
||||
optional: true
|
||||
selector: table tr:nth-child(3) td:nth-child(6) font b:nth-child(2)
|
||||
selector: table tr:nth-child(3) td:nth-child(5) font b:nth-child(2)
|
||||
leechers:
|
||||
text: "{{ if .Result.leechers_optional }}{{ .Result.leechers_optional }}{{ else }}0{{ end }}"
|
||||
downloadvolumefactor:
|
||||
text: 0
|
||||
case:
|
||||
img[src="pic/freedlfsu.gif"]: 0
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
minimumratio:
|
||||
# between 1.00 and 1.50 is required, and above 1.50 prohibited
|
||||
text: 1.25
|
||||
text: 1.0
|
||||
# engine n/a
|
@@ -9,54 +9,68 @@ links:
|
||||
- https://mircrew-releases.org/
|
||||
|
||||
caps:
|
||||
# commented out categories are discussion-only forums
|
||||
categorymappings:
|
||||
- {id: 1, cat: Other, desc: "MIRCrew Sharing Community"}
|
||||
- {id: 2, cat: Other, desc: "Piazza Grande"}
|
||||
- {id: 3, cat: Other, desc: "Comunicazioni, Annunci & Guide"}
|
||||
- {id: 11, cat: Other, desc: "CAG Progetti & Collezioni"}
|
||||
- {id: 12, cat: Other, desc: "CAG Pir8 Channel"}
|
||||
- {id: 13, cat: Other, desc: "CAG Progetti"}
|
||||
- {id: 61, cat: Other, desc: "CAG Video"}
|
||||
- {id: 62, cat: Other, desc: "CAG Animazione"}
|
||||
- {id: 63, cat: Other, desc: "CAG Libreria"}
|
||||
- {id: 64, cat: Other, desc: "CAG Musica"}
|
||||
- {id: 14, cat: Other, desc: "CAG Collezioni"}
|
||||
- {id: 50, cat: Other, desc: "CAG Proposte & Richieste"}
|
||||
- {id: 60, cat: Other, desc: "CAG Abbandonati"}
|
||||
- {id: 15, cat: Other, desc: "Area Grafica"}
|
||||
- {id: 16, cat: Other, desc: "Vetrina MIRCrew"}
|
||||
- {id: 17, cat: Other, desc: "Vetrina Utenti"}
|
||||
- {id: 19, cat: Other, desc: "Area Staff"}
|
||||
- {id: 23, cat: Other, desc: "Archivio"}
|
||||
- {id: 25, cat: Movies, desc: "Video Releases"}
|
||||
- {id: 26, cat: Movies, desc: "Releases Film"}
|
||||
- {id: 28, cat: TV, desc: "Releases Serie TV"}
|
||||
- {id: 51, cat: TV, desc: "Releases TV Stagioni in corso"}
|
||||
- {id: 52, cat: TV, desc: "Releases TV Stagioni complete"}
|
||||
- {id: 29, cat: TV/Documentary, desc: "Documentari"}
|
||||
- {id: 30, cat: TV, desc: "TV Show"}
|
||||
- {id: 31, cat: TV, desc: "Teatro"}
|
||||
- {id: 32, cat: Movies, desc: "Richieste Video"}
|
||||
- {id: 53, cat: Movies, desc: "Richieste Film"}
|
||||
- {id: 54, cat: TV, desc: "Richieste Serie TV"}
|
||||
- {id: 55, cat: Movies, desc: "Richieste Video diverse"}
|
||||
- {id: 57, cat: Movies, desc: "Richieste Video Soddisfatte"}
|
||||
- {id: 33, cat: TV/Anime, desc: "Animazione Releases"}
|
||||
- {id: 34, cat: TV/Anime, desc: "Anime - Movies"}
|
||||
- {id: 35, cat: TV/Anime, desc: "Anime - Serie"}
|
||||
- {id: 36, cat: TV/Anime, desc: "Cartoon - Movies"}
|
||||
- {id: 37, cat: TV/Anime, desc: "Cartoon - Serie"}
|
||||
- {id: 38, cat: TV/Anime, desc: "Richieste Animazione"}
|
||||
- {id: 39, cat: Books, desc: "Libreria Releases"}
|
||||
- {id: 40, cat: Books/EBook, desc: "E-Books"}
|
||||
- {id: 41, cat: Audio/Audiobook, desc: "A-Books"}
|
||||
- {id: 42, cat: Books/Comics, desc: "Comics"}
|
||||
- {id: 43, cat: Books/Mags, desc: "Edicola"}
|
||||
- {id: 44, cat: Books, desc: "Richieste Libreria"}
|
||||
- {id: 45, cat: Audio, desc: "Music Releases"}
|
||||
- {id: 46, cat: Audio, desc: "Musica - Audio"}
|
||||
- {id: 47, cat: Audio/Video, desc: "Musica - Video"}
|
||||
- {id: 48, cat: Audio, desc: "Richieste Musica"}
|
||||
# - {id: 1, cat: Other, desc: "MIRCrew Sharing Community"}
|
||||
# - {id: 2, cat: Other, desc: "Piazza Grande"}
|
||||
# - {id: 4, cat: Other, desc: "PG Statuto & Regole"}
|
||||
# - {id: 5, cat: Other, desc: "PG Info Point"}
|
||||
# - {id: 6, cat: Other, desc: "PG Presentazioni"}
|
||||
# - {id: 7, cat: Other, desc: "PG Off Topic"}
|
||||
# - {id: 49, cat: Other, desc: "PG Segnalazioni allo Staff"}
|
||||
# - {id: 3, cat: Other, desc: "Comunicazioni, Annunci & Guide"}
|
||||
# - {id: 8, cat: Other, desc: "CAG Comunicazioni da MIRCrew"}
|
||||
# - {id: 9, cat: Other, desc: "CAG Guide & Tutorial"}
|
||||
# - {id: 11, cat: Other, desc: "Progetti & Collezioni"}
|
||||
# - {id: 12, cat: Other, desc: "P&C Pir8 Channel"}
|
||||
# - {id: 13, cat: Other, desc: "P&C Progetti"}
|
||||
# - {id: 61, cat: Other, desc: "P&C Video"}
|
||||
# - {id: 62, cat: Other, desc: "P&C Animazione"}
|
||||
# - {id: 63, cat: Other, desc: "P&C Libreria"}
|
||||
# - {id: 64, cat: Other, desc: "P&C Musica"}
|
||||
# - {id: 14, cat: Other, desc: "P&C Collezioni"}
|
||||
# - {id: 50, cat: Other, desc: "P&C Proposte & Richieste"}
|
||||
# - {id: 60, cat: Other, desc: "P&C Abbandonati"}
|
||||
# - {id: 15, cat: Other, desc: "Area Grafica"}
|
||||
# - {id: 16, cat: Other, desc: "AG Vetrina MIRCrew"}
|
||||
# - {id: 17, cat: Other, desc: "AG Vetrina Utenti"}
|
||||
# - {id: 18, cat: Other, desc: "AG Richieste Grafica"}
|
||||
# - {id: 19, cat: Other, desc: "Area Staff"}
|
||||
# - {id: 20, cat: Other, desc: "AS Membri MIRCrew"}
|
||||
# - {id: 21, cat: Other, desc: "AS Reclutamento MIRCrew"}
|
||||
# - {id: 23, cat: Other, desc: "AS Archivio"}
|
||||
- {id: 25, cat: Movies, desc: "Video Releases", default: true}
|
||||
- {id: 26, cat: Movies, desc: "Releases Film", default: true}
|
||||
# - {id: 28, cat: TV, desc: "Releases Serie TV"}
|
||||
- {id: 51, cat: TV, desc: "Releases TV Stagioni in corso", default: true}
|
||||
- {id: 52, cat: TV, desc: "Releases TV Stagioni complete", default: true}
|
||||
- {id: 29, cat: TV/Documentary, desc: "Documentari", default: true}
|
||||
- {id: 30, cat: TV, desc: "TV Show", default: true}
|
||||
- {id: 31, cat: TV, desc: "Teatro", default: true}
|
||||
# - {id: 32, cat: Movies, desc: "Richieste Video"}
|
||||
# - {id: 53, cat: Movies, desc: "Richieste Film"}
|
||||
# - {id: 54, cat: TV, desc: "Richieste Serie TV"}
|
||||
# - {id: 55, cat: Movies, desc: "Richieste Video diverse"}
|
||||
# - {id: 57, cat: Movies, desc: "Richieste Video Soddisfatte"}
|
||||
- {id: 33, cat: TV/Anime, desc: "Animazione Releases", default: true}
|
||||
- {id: 34, cat: TV/Anime, desc: "Anime - Movies", default: true}
|
||||
- {id: 35, cat: TV/Anime, desc: "Anime - Serie", default: true}
|
||||
- {id: 36, cat: TV/Anime, desc: "Cartoon - Movies", default: true}
|
||||
- {id: 37, cat: TV/Anime, desc: "Cartoon - Serie", default: true}
|
||||
# - {id: 38, cat: TV/Anime, desc: "Richieste Animazione", default: true}
|
||||
# - {id: 58, cat: TV/Anime, desc: "Richieste Animazione Soddisfatte", default: true}
|
||||
- {id: 39, cat: Books, desc: "Libreria Releases", default: true}
|
||||
- {id: 40, cat: Books/EBook, desc: "E-Books", default: true}
|
||||
- {id: 41, cat: Audio/Audiobook, desc: "A-Books", default: true}
|
||||
- {id: 42, cat: Books/Comics, desc: "Comics", default: true}
|
||||
- {id: 43, cat: Books/Mags, desc: "Edicola", default: true}
|
||||
# - {id: 44, cat: Books, desc: "Richieste Libreria"}
|
||||
# - {id: 59, cat: Books, desc: "Richieste Libreria Soddisfatte"}
|
||||
- {id: 45, cat: Audio, desc: "Music Releases", default: true}
|
||||
- {id: 46, cat: Audio, desc: "Musica - Audio", default: true}
|
||||
- {id: 47, cat: Audio/Video, desc: "Musica - Video", default: true}
|
||||
# - {id: 48, cat: Audio, desc: "Richieste Musica"}
|
||||
# - {id: 56, cat: Audio, desc: "Richieste Musica Soddisfatte"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
@@ -114,7 +128,7 @@ search:
|
||||
# Search by Author
|
||||
author: ""
|
||||
# Search in subforums: yes 1, no 0
|
||||
sc: 1
|
||||
sc: 0
|
||||
# Search For: all, msgonly, titleonly, firstpost
|
||||
sf: titleonly
|
||||
# Show Results as: posts, topics
|
||||
|
@@ -17,6 +17,10 @@ settings:
|
||||
type: checkbox
|
||||
label: Strip Russian Letters
|
||||
default: true
|
||||
- name: addrussian
|
||||
type: checkbox
|
||||
label: Add RUSSIAN to end of all titles to improve language detection by Sonarr and Radarr. Will cause English-only results to be misidentified.
|
||||
default: false
|
||||
- name: sort
|
||||
type: select
|
||||
label: Sort requested from site
|
||||
@@ -797,6 +801,11 @@ search:
|
||||
filters:
|
||||
- name: querystring
|
||||
args: f
|
||||
title_is_rus:
|
||||
selector: a[href^="viewtopic.php?t="] > b
|
||||
filters:
|
||||
- name: re_replace
|
||||
args: ["[^А-Яа-яЁё]+", ""]
|
||||
title:
|
||||
selector: a[href^="viewtopic.php?t="] > b
|
||||
filters:
|
||||
@@ -818,6 +827,10 @@ search:
|
||||
args: ["WEBDLRip", "WEBDL"]
|
||||
- name: replace
|
||||
args: ["HDTVRip", "HDTV"]
|
||||
- name: append
|
||||
args: "{{ if .Result.title_is_rus }} - RUSSIAN{{ else }}{{ end }}"
|
||||
- name: re_replace
|
||||
args: ["(.+?) - RUSSIAN", "{{ if .Config.addrussian }}$1 - RUSSIAN{{ else }}$1{{ end }}"]
|
||||
details:
|
||||
selector: a[href^="viewtopic.php?t="]
|
||||
attribute: href
|
||||
|
@@ -23,6 +23,10 @@ settings:
|
||||
type: checkbox
|
||||
label: Strip Russian Letters
|
||||
default: true
|
||||
- name: addrussian
|
||||
type: checkbox
|
||||
label: Add RUSSIAN to end of all titles to improve language detection by Sonarr and Radarr. Will cause English-only results to be misidentified.
|
||||
default: false
|
||||
- name: sort
|
||||
type: select
|
||||
label: Sort requested from site
|
||||
@@ -822,6 +826,11 @@ search:
|
||||
filters:
|
||||
- name: querystring
|
||||
args: f
|
||||
title_is_rus:
|
||||
selector: a[href^="viewtopic.php?t="] > b
|
||||
filters:
|
||||
- name: re_replace
|
||||
args: ["[^А-Яа-яЁё]+", ""]
|
||||
title:
|
||||
selector: a[href^="viewtopic.php?t="] > b
|
||||
filters:
|
||||
@@ -843,6 +852,10 @@ search:
|
||||
args: ["WEBDLRip", "WEBDL"]
|
||||
- name: replace
|
||||
args: ["HDTVRip", "HDTV"]
|
||||
- name: append
|
||||
args: "{{ if .Result.title_is_rus }} - RUSSIAN{{ else }}{{ end }}"
|
||||
- name: re_replace
|
||||
args: ["(.+?) - RUSSIAN", "{{ if .Config.addrussian }}$1 - RUSSIAN{{ else }}$1{{ end }}"]
|
||||
details:
|
||||
selector: a[href^="viewtopic.php?t="]
|
||||
attribute: href
|
||||
|
@@ -1,8 +1,8 @@
|
||||
---
|
||||
id: piratadigital
|
||||
name: Pirata Digital
|
||||
description: "Pirata Digital (PD) is a Private Torrent Tracker for HD MOVIES / TV"
|
||||
language: en-US
|
||||
description: "Pirata Digital (PD) is a BRAZILIAN Private Torrent Tracker for HD MOVIES / TV"
|
||||
language: pt-BR
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
|
@@ -6,12 +6,15 @@ language: ru-RU
|
||||
type: public
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://piratbit.top/ # site forces https, http is not supported
|
||||
legacylinks:
|
||||
- https://pb.wtf/
|
||||
- http://top.piratbit.fun/
|
||||
legacylinks:
|
||||
- https://piratbit.pw/
|
||||
- https://piratbit.ml/
|
||||
- http://piratbit.top/
|
||||
- https://piratbit.top/
|
||||
certificates:
|
||||
- 8531af678cf197593ff4d6a4e6ce30088d719509 # expired 13th Nov 2016
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
|
@@ -6,12 +6,15 @@ language: ru-RU
|
||||
type: semi-private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://piratbit.top/ # site forces https, http is not supported
|
||||
legacylinks:
|
||||
- https://pb.wtf/
|
||||
- http://top.piratbit.fun/
|
||||
legacylinks:
|
||||
- https://piratbit.pw/
|
||||
- https://piratbit.ml/
|
||||
- http://piratbit.top/
|
||||
- https://piratbit.top/
|
||||
certificates:
|
||||
- 8531af678cf197593ff4d6a4e6ce30088d719509 # expired 13th Nov 2016
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
|
@@ -66,11 +66,11 @@ settings:
|
||||
- name: info_grid
|
||||
type: info
|
||||
label: GRID view
|
||||
default: This indexer does not support the GRID view on the torrent search page. Change the <b>GRID</b> setting to <b>OFF</b> on your account profile. If set to <i>ON</i> will cause no results to be returned.
|
||||
default: This indexer does not support the GRID view on the torrent search page. Change the <b>Grid View</b> setting to <b>OFF</b> on your User Settings. If set to <i>ON</i> will cause no results to be returned.
|
||||
- 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. The default is <i>25</i>.
|
||||
default: For best results, change the <b>Torrents per page</b> setting to <b>100</b> on your User Settings. The default is <i>25</i>.
|
||||
|
||||
login:
|
||||
path: login.php
|
||||
|
@@ -14,6 +14,7 @@ caps:
|
||||
- {id: 2, cat: TV, desc: "Series"}
|
||||
- {id: 6, cat: TV/Documentary, desc: "Documentales"}
|
||||
- {id: 7, cat: TV/Sport, desc: "Deportes"}
|
||||
- {id: 8, cat: Movies, desc: "Hagbard"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
|
@@ -1,184 +0,0 @@
|
||||
---
|
||||
id: renegade
|
||||
name: Renegade
|
||||
description: "Renegade is a HUNGARIAN Private Torrent Tracker for MOVIES / TV / GENERAL"
|
||||
language: hu-HU
|
||||
type: private
|
||||
encoding: ISO-8859-2
|
||||
links:
|
||||
- http://renegade-tracker.com/
|
||||
legacylinks:
|
||||
- https://renegade-tracker.com/ # ERR_CONNECTION_REFUSED
|
||||
|
||||
caps:
|
||||
# dont forget to update the search fields category case block
|
||||
categorymappings:
|
||||
- {id: 26, cat: Movies/DVD, desc: "Film/DVD/Eng"}
|
||||
- {id: 25, cat: Movies/DVD, desc: "Film/DVD/Hun"}
|
||||
- {id: 38, cat: Movies/SD, desc: "Film/XviD/Eng"}
|
||||
- {id: 24, cat: Movies/SD, desc: "Film/XviD/Hun"}
|
||||
- {id: 50, cat: Movies/HD, desc: "Film/HD/Eng"}
|
||||
- {id: 42, cat: Movies/HD, desc: "Film/HD/Hun"}
|
||||
- {id: 28, cat: PC/Games, desc: "Játék/ISO"}
|
||||
- {id: 30, cat: PC/Games, desc: "Játék/Rip"}
|
||||
- {id: 31, cat: Other, desc: "Képek"}
|
||||
- {id: 43, cat: Audio/Video, desc: "Klip"}
|
||||
- {id: 33, cat: Books, desc: "Könyv/Eng"}
|
||||
- {id: 44, cat: Books, desc: "Könyv/Hun"}
|
||||
- {id: 32, cat: Console, desc: "Konzol"}
|
||||
- {id: 53, cat: Audio/Lossless, desc: "Lossless/Eng"}
|
||||
- {id: 52, cat: Audio/Lossless, desc: "Lossless/Hun"}
|
||||
- {id: 51, cat: TV/Anime, desc: "Mese/Eng"}
|
||||
- {id: 45, cat: TV/Anime, desc: "Mese/Hun"}
|
||||
- {id: 34, cat: PC/Mobile-Other, desc: "Mobil"}
|
||||
- {id: 40, cat: Audio/MP3, desc: "Mp3/Eng"}
|
||||
- {id: 41, cat: Audio/MP3, desc: "Mp3/Hun"}
|
||||
- {id: 35, cat: PC/0day, desc: "Program"}
|
||||
- {id: 47, cat: TV, desc: "Sorozat/Eng"}
|
||||
- {id: 36, cat: TV, desc: "Sorozat/Hun"}
|
||||
- {id: 39, cat: XXX, desc: "XXX/Film"}
|
||||
- {id: 49, cat: XXX/ImageSet, desc: "XXX/Kép"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
music-search: [q]
|
||||
book-search: [q]
|
||||
|
||||
settings:
|
||||
- name: username
|
||||
type: text
|
||||
label: Username
|
||||
- name: password
|
||||
type: password
|
||||
label: Password
|
||||
- name: freeleech
|
||||
type: checkbox
|
||||
label: Filter freeleech only
|
||||
default: false
|
||||
|
||||
login:
|
||||
path: login.php
|
||||
method: post
|
||||
inputs:
|
||||
belepes: igen
|
||||
fhnev: "{{ .Config.username }}"
|
||||
jelszo: "{{ .Config.password }}"
|
||||
error:
|
||||
- selector: div#title_curent:contains("Hibás")
|
||||
message:
|
||||
selector: font[color="red"]
|
||||
test:
|
||||
path: ajanlo.php
|
||||
selector: a[href="logout.php"]
|
||||
|
||||
search:
|
||||
paths:
|
||||
# https://renegade-tracker.com/letoltes.php?search=&incldead=1&cat=36
|
||||
- path: letoltes.php
|
||||
categories: ["!", 39, 49]
|
||||
- path: xxx.php
|
||||
categories: [39, 49]
|
||||
keywordsfilters:
|
||||
# the site uses % for wildcard
|
||||
- name: re_replace
|
||||
args: ["[^a-zA-Z0-9]+", "%"]
|
||||
inputs:
|
||||
$raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
|
||||
search: "{{ .Keywords }}"
|
||||
# 0 active, 1 both, 2 dead, 3 free, 4 double, 5 Renegade releases, 6 my torrents
|
||||
# note: free and double do not appear to work
|
||||
incldead: 1
|
||||
# does not support imdbid search
|
||||
|
||||
rows:
|
||||
selector: "div#bro_browse_torrents_content{{ if .Config.freeleech }}:contains(\"Igen. Nem \"){{ else }}{{ end }}"
|
||||
|
||||
fields:
|
||||
title:
|
||||
selector: div#bro_browse_details b font a
|
||||
details:
|
||||
selector: div#bro_browse_details b font a
|
||||
attribute: href
|
||||
download:
|
||||
selector: a#bro_dlbutton
|
||||
attribute: href
|
||||
poster:
|
||||
selector: div#bro_browse_poster_1 a img
|
||||
attribute: src
|
||||
imdbid:
|
||||
selector: a[href*="imdb.com/title/tt"]
|
||||
attribute: href
|
||||
size:
|
||||
selector: div#bro_browse_details
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "(\\d+\\.\\d{1,2} [M|G|k]?B)"
|
||||
files:
|
||||
selector: div#bro_browse_details
|
||||
filters:
|
||||
- name: regexp
|
||||
args: (\d+) fájl
|
||||
seeders:
|
||||
selector: div#bro_browse_details
|
||||
filters:
|
||||
- name: regexp
|
||||
args: (\d+) seeder
|
||||
leechers:
|
||||
selector: div#bro_browse_details
|
||||
filters:
|
||||
- name: regexp
|
||||
args: (\d+) leecher
|
||||
date:
|
||||
selector: div#bro_browse_details
|
||||
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: "2006-01-02 15:04:05 -07:00"
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
"div#bro_browse_torrents_content:contains(\"Igen. Nem \")": 0
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
case:
|
||||
"div#bro_browse_torrents_content:contains(\"DUPLA ott a \")": 2
|
||||
"*": 1
|
||||
category:
|
||||
selector: div#bro_browse_details
|
||||
remove: a
|
||||
case:
|
||||
":contains(\"DVD/Eng\")": 26
|
||||
":contains(\"DVD/Hun\")": 25
|
||||
":contains(\"XviD/Eng\")": 38
|
||||
":contains(\"XviD/Hun\")": 24
|
||||
":contains(\"HD/Eng\")": 50
|
||||
":contains(\"HD/Hun\")": 42
|
||||
":contains(\"Játék/ISO\")": 28
|
||||
":contains(\"Játék/Rip\")": 30
|
||||
":contains(\"Képek\")": 31
|
||||
":contains(\"Klip\")": 43
|
||||
":contains(\"Könyv/Eng\")": 33
|
||||
":contains(\"Könyv/Hun\")": 44
|
||||
":contains(\"Konzol\")": 32
|
||||
":contains(\"Lossless/Eng\")": 53
|
||||
":contains(\"Lossless/Hun\")": 52
|
||||
":contains(\"Mese/Eng\")": 51
|
||||
":contains(\"Mese/Hun\")": 45
|
||||
":contains(\"Mobil\")": 34
|
||||
":contains(\"Mp3/Eng\")": 40
|
||||
":contains(\"Mp3/Hun\")": 41
|
||||
":contains(\"Program\")": 35
|
||||
":contains(\"Sorozat/Eng\")": 47
|
||||
":contains(\"Sorozat/Hun\")": 36
|
||||
":contains(\"XXX/Film\")": 39
|
||||
":contains(\"XXX/Kép\")": 49
|
||||
minimumratio:
|
||||
text: 0.7
|
||||
minimumseedtime:
|
||||
# 2 days (as seconds = 2 x 24 x 60 x 60)
|
||||
text: 172800
|
||||
# engine n/a
|
@@ -41,6 +41,10 @@ caps:
|
||||
music-search: [q]
|
||||
|
||||
settings:
|
||||
- name: addrussian
|
||||
type: checkbox
|
||||
label: Add RUSSIAN to end of all titles to improve language detection by Sonarr and Radarr. Will cause English-only results to be misidentified.
|
||||
default: false
|
||||
- name: info
|
||||
type: info
|
||||
label: A note about RuTor
|
||||
@@ -70,6 +74,11 @@ search:
|
||||
fields:
|
||||
category:
|
||||
text: 3
|
||||
title_is_rus:
|
||||
selector: td:nth-of-type(2) a[href^="/torrent/"]
|
||||
filters:
|
||||
- name: re_replace
|
||||
args: ["[^А-Яа-яЁё]+", ""]
|
||||
title:
|
||||
selector: td:nth-of-type(2) a[href^="/torrent/"]
|
||||
filters:
|
||||
@@ -79,6 +88,10 @@ search:
|
||||
args: ["E -", "E01-99 -"]
|
||||
- name: replace
|
||||
args: ["Кураж-Бамбей", "kurazh"]
|
||||
- name: append
|
||||
args: "{{ if .Result.title_is_rus }} - RUSSIAN{{ else }}{{ end }}"
|
||||
- name: re_replace
|
||||
args: ["(.+?) - RUSSIAN", "{{ if .Config.addrussian }}$1 - RUSSIAN{{ else }}$1{{ end }}"]
|
||||
details:
|
||||
selector: td:nth-of-type(2) a[href^="/torrent/"]
|
||||
attribute: href
|
||||
|
224
src/Jackett.Common/Definitions/spidertk.yml
Normal file
224
src/Jackett.Common/Definitions/spidertk.yml
Normal file
@@ -0,0 +1,224 @@
|
||||
---
|
||||
id: spidertk
|
||||
name: SpiderTK
|
||||
description: "SpiderTK is a FRENCH Private Torrent Tracker for MOVIES / TV / GENERAL"
|
||||
language: fr-FR
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://spidertk.xyz/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 401, cat: Movies/BluRay, desc: "Films / 2160p / BluRay"}
|
||||
- {id: 410, cat: Movies/UHD, desc: "Films / 2160p / REMUX"}
|
||||
- {id: 411, cat: Movies/UHD, desc: "Films / 2160p / AV1"}
|
||||
- {id: 412, cat: Movies/UHD, desc: "Films / 2160p / x265"}
|
||||
- {id: 413, cat: Movies/BluRay, desc: "Films / 1080p / BluRay"}
|
||||
- {id: 414, cat: Movies/HD, desc: "Films / 1080p / REMUX"}
|
||||
- {id: 415, cat: Movies/HD, desc: "Films / 1080p / AV1"}
|
||||
- {id: 416, cat: Movies/HD, desc: "Films / 1080p / x265"}
|
||||
- {id: 417, cat: Movies/HD, desc: "Films / 1080p / x264"}
|
||||
- {id: 418, cat: Movies/HD, desc: "Films / 720p / x264"}
|
||||
- {id: 419, cat: Movies/SD, desc: "Films / SD / x264"}
|
||||
- {id: 420, cat: Movies/3D, desc: "Films / 3D"}
|
||||
- {id: 421, cat: Movies/SD, desc: "Films / XviD"}
|
||||
- {id: 422, cat: Movies/HD, desc: "Films / HDTV / 1080p"}
|
||||
- {id: 440, cat: Movies/HD, desc: "Films / HDTV / 720p"}
|
||||
- {id: 423, cat: Movies/WEB-DL, desc: "Films / WEB / 1080p"}
|
||||
- {id: 458, cat: Movies/WEB-DL, desc: "Films / WEB / 720p"}
|
||||
- {id: 424, cat: TV/Documentary, desc: "Films / Documentaire"}
|
||||
- {id: 425, cat: TV/Sport, desc: "Films / Sport"}
|
||||
- {id: 426, cat: Movies, desc: "Films / Animation"}
|
||||
- {id: 427, cat: Movies/Other, desc: "Films / Spectacle"}
|
||||
- {id: 428, cat: Audio/Video, desc: "Films / Concerts, Clips"}
|
||||
- {id: 429, cat: Movies, desc: "Films / VOSTFR"}
|
||||
- {id: 460, cat: Movies, desc: "Films / VO"}
|
||||
- {id: 430, cat: TV, desc: "Séries / BluRay"}
|
||||
- {id: 431, cat: TV, desc: "Séries / Pack VF"}
|
||||
- {id: 432, cat: TV/HD, desc: "Séries / HD VF"}
|
||||
- {id: 433, cat: TV/SD, desc: "Séries / SD VF"}
|
||||
- {id: 434, cat: TV, desc: "Séries / Pack VOSTFR"}
|
||||
- {id: 435, cat: TV/HD, desc: "Séries / HD VOSTFR"}
|
||||
- {id: 436, cat: TV/SD, desc: "Séries / SD VOSTFR"}
|
||||
- {id: 437, cat: TV/Anime, desc: "Séries / Pack Animé"}
|
||||
- {id: 438, cat: TV/Anime, desc: "Séries / Animé VF"}
|
||||
- {id: 439, cat: TV/Anime, desc: "Séries / Animé VOSTFR"}
|
||||
- {id: 441, cat: TV/Documentary, desc: "Séries / Documentaire"}
|
||||
- {id: 442, cat: TV/Sport, desc: "Séries / Sport"}
|
||||
- {id: 443, cat: TV, desc: "Séries / Émission TV"}
|
||||
- {id: 461, cat: TV, desc: "Séries / VO"}
|
||||
- {id: 444, cat: Books/EBook, desc: "Livres / Roman"}
|
||||
- {id: 445, cat: Audio/Audiobook, desc: "Livres / Audio"}
|
||||
- {id: 446, cat: Books/Mags, desc: "Livres / Magazine"}
|
||||
- {id: 447, cat: Books/Comics, desc: "Livres / Bande Dessinée"}
|
||||
- {id: 448, cat: Books/Comics, desc: "Livres / Comic"}
|
||||
- {id: 449, cat: Books/Comics, desc: "Livres / Manga"}
|
||||
- {id: 450, cat: PC/Games, desc: "Logiciels / Jeu PC"}
|
||||
- {id: 451, cat: PC/Games, desc: "Logiciels / Jeu Mac"}
|
||||
- {id: 452, cat: PC/Games, desc: "Logiciels / Jeu Linux"}
|
||||
- {id: 453, cat: PC/0day, desc: "Logiciels / Appli Windows"}
|
||||
- {id: 454, cat: PC/Mac, desc: "Logiciels / Appli Mac"}
|
||||
- {id: 455, cat: PC, desc: "Logiciels / Appli Linux"}
|
||||
- {id: 456, cat: Console, desc: "Logiciels / Console"}
|
||||
- {id: 457, cat: PC/Mobile-iOS, desc: "Logiciels / iOS"}
|
||||
- {id: 459, cat: PC/Mobile-Android, desc: "Logiciels / Android"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep, imdbid]
|
||||
movie-search: [q, imdbid]
|
||||
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 SpiderTK Web Site. Otherwise just leave it empty."
|
||||
- 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 }}"
|
||||
two_step_code: "{{ .Config.2facode }}"
|
||||
logout: ""
|
||||
securelogin: ""
|
||||
ssl: yes
|
||||
trackerssl: ""
|
||||
error:
|
||||
- selector: td.embedded:has(h2:contains("Echoué")) # invalid captcha
|
||||
- selector: td.embedded:has(h2:contains("Échec")) # invalid uid or pwd
|
||||
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
|
||||
# 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
|
||||
# 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 }}"
|
||||
|
||||
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: " +01:00" # CET
|
||||
- name: dateparse
|
||||
args: "2006-01-02 15:04:05 -07:00"
|
||||
date_added:
|
||||
# time added
|
||||
selector: td:nth-child(4):not(:has(span))
|
||||
optional: true
|
||||
filters:
|
||||
- name: append
|
||||
args: " +01:00" # CET
|
||||
- name: dateparse
|
||||
args: "2006-01-0215:04:05 -07:00"
|
||||
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
|
||||
# NexusPHP Standard v1.5 Beta 4
|
@@ -110,9 +110,9 @@ download:
|
||||
attribute: href
|
||||
|
||||
search:
|
||||
# https://the-devils-lounge.xyz/torrents-search.php?search=&cat=0&incldead=0&freeleech=2&inclexternal=0&lang=0
|
||||
# https://the-devils-lounge.xyz/torrents.php?search=&cat=0&incldead=0&freeleech=0&inclexternal=0&lang=0
|
||||
paths:
|
||||
- path: torrents-search.php
|
||||
- path: torrents.php
|
||||
inputs:
|
||||
$raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
|
||||
search: "{{ .Keywords }}"
|
||||
|
@@ -114,6 +114,10 @@ search:
|
||||
- name: replace
|
||||
args: [" ", "-"]
|
||||
|
||||
headers:
|
||||
# site blocks Jackett's Linux User-Agent, so use Jackett's Windows User-Agent instead
|
||||
User-Agent: ["Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36"]
|
||||
|
||||
rows:
|
||||
selector: table.table-striped > tbody > tr
|
||||
filters:
|
||||
|
@@ -7,10 +7,8 @@ type: public
|
||||
encoding: UTF-8
|
||||
followredirect: true
|
||||
links:
|
||||
- https://torrentqq121.com/
|
||||
- https://torrentqq123.com/
|
||||
legacylinks:
|
||||
- https://torrentqq101.com/
|
||||
- https://torrentqq102.com/
|
||||
- https://torrentqq103.com/
|
||||
- https://torrentqq104.com/
|
||||
- https://torrentqq105.com/
|
||||
@@ -28,6 +26,8 @@ legacylinks:
|
||||
- https://torrentqq118.com/
|
||||
- https://torrentqq119.com/
|
||||
- https://torrentqq120.com/
|
||||
- https://torrentqq121.com/
|
||||
- https://torrentqq122.com/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
|
140
src/Jackett.Common/Definitions/torrentseeds-api.yml
Normal file
140
src/Jackett.Common/Definitions/torrentseeds-api.yml
Normal file
@@ -0,0 +1,140 @@
|
||||
---
|
||||
id: torrentseeds-api
|
||||
name: TorrentSeeds (API)
|
||||
description: "TorrentSeeds is a Private Torrent Tracker for MOVIES / TV / MUSIC / GENERAL"
|
||||
language: en-US
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://torrentseeds.org/
|
||||
|
||||
caps:
|
||||
# dont forget to update the case block in the search fields category
|
||||
categorymappings:
|
||||
- {id: 1, cat: PC/0day, desc: "Apps"}
|
||||
- {id: 5, cat: TV/Anime, desc: "Anime"}
|
||||
- {id: 2, cat: PC/Games, desc: "Games"}
|
||||
- {id: 3, cat: Movies, desc: "Movies"}
|
||||
- {id: 4, cat: Audio, desc: "Music"}
|
||||
- {id: 6, cat: XXX, desc: "Porn"}
|
||||
- {id: 7, cat: TV/Sport, desc: "Sport"}
|
||||
- {id: 3205, cat: TV, desc: "TV"}
|
||||
- {id: 8, cat: TV, desc: "Packs"}
|
||||
- {id: 3206, cat: TV/Foreign, desc: "TV/Foreign"}
|
||||
- {id: 3207, cat: Movies/Foreign, desc: "Movies/Foreign"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep, imdbid, tvdbid]
|
||||
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://torrentseeds.org/\" target =_blank>TorrentSeeds</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
|
||||
|
||||
search:
|
||||
paths:
|
||||
# https://hdinnovations.github.io/UNIT3D-Community-Edition-Docs/api_endpoints.html
|
||||
# https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php
|
||||
- path: "/api/torrents/filter?api_token={{ .Config.apikey }}&name={{ if .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ 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 }}&sortField={{ .Config.sort }}&sortDirection={{ .Config.type }}&perPage=100&page=1{{ range .Categories }}&categories[]={{.}}{{end}}{{ if .Config.freeleech }}&free=1{{ else }}{{ end }}"
|
||||
response:
|
||||
type: json
|
||||
attribute: attributes
|
||||
|
||||
rows:
|
||||
selector: data
|
||||
count:
|
||||
selector: meta.total
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: category
|
||||
case:
|
||||
"Apps": 1
|
||||
"Games": 2
|
||||
"Movies": 3
|
||||
"Music": 4
|
||||
"Anime": 5
|
||||
"Porn": 6
|
||||
"Sport": 7
|
||||
"Packs": 8
|
||||
"TV": 3205
|
||||
"TV/Foreign": 3206
|
||||
"Movies/Foreign": 3207
|
||||
title:
|
||||
selector: name
|
||||
details:
|
||||
selector: details_link
|
||||
download:
|
||||
selector: download_link
|
||||
poster:
|
||||
selector: poster
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["https://via.placeholder.com/90x135", ""]
|
||||
- name: replace
|
||||
args: ["https://via.placeholder.com/400x600", ""]
|
||||
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:
|
||||
# 2021-10-18T00:34:50.000000Z"
|
||||
selector: created_at
|
||||
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.5 but torrents must be seeded for 5 days regardless of ratio
|
||||
# minimumratio:
|
||||
# text: 0.5
|
||||
minimumseedtime:
|
||||
# 5 days (as seconds = 5 x 24 x 60 x 60)
|
||||
text: 432000
|
||||
# json UNIT3D 5.3.0
|
@@ -7,7 +7,7 @@ type: public
|
||||
encoding: UTF-8
|
||||
followredirect: true
|
||||
links:
|
||||
- https://torrentsir44.com/
|
||||
- https://torrentsir45.com/
|
||||
legacylinks:
|
||||
- https://torrentsir31.com/
|
||||
- https://torrentsir33.com/
|
||||
@@ -21,6 +21,7 @@ legacylinks:
|
||||
- https://torrentsir41.com/
|
||||
- https://torrentsir42.com/
|
||||
- https://torrentsir43.com/
|
||||
- https://torrentsir44.com/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
|
@@ -7,10 +7,9 @@ type: public
|
||||
encoding: UTF-8
|
||||
followredirect: true
|
||||
links:
|
||||
- https://torrentview47.com/
|
||||
- https://torrentview49.com/
|
||||
legacylinks:
|
||||
- https://torrentview.net/
|
||||
- https://torrentview26.com/
|
||||
- https://torrentview27.com/
|
||||
- https://torrentview28.com/
|
||||
- https://torrentview29.com/
|
||||
@@ -30,6 +29,7 @@ legacylinks:
|
||||
- https://torrentview44.com/
|
||||
- https://torrentview45.com/
|
||||
- https://torrentview46.com/
|
||||
- https://torrentview47.com/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
|
@@ -7,7 +7,7 @@ type: public
|
||||
encoding: UTF-8
|
||||
followredirect: true
|
||||
links:
|
||||
- https://torrentwiz35.com/
|
||||
- https://torrentwiz36.com/
|
||||
legacylinks:
|
||||
- https://torrentwiz22.me/
|
||||
- https://torrentwiz23.me/
|
||||
@@ -22,6 +22,7 @@ legacylinks:
|
||||
- https://torrentwiz32.com/
|
||||
- https://torrentwiz33.com/
|
||||
- https://torrentwiz34.com/
|
||||
- https://torrentwiz35.com/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
|
@@ -7,10 +7,12 @@ type: public
|
||||
encoding: UTF-8
|
||||
followredirect: true
|
||||
links:
|
||||
- https://torrentz2.club/
|
||||
- https://torrentz2eu.me/ # often rotates between *.me and *.org
|
||||
- https://torrentzeu.org/
|
||||
- https://torrentz2.org.in/
|
||||
- https://torrentz2.unblockninja.com/
|
||||
legacylinks:
|
||||
- https://torrentz2.club/
|
||||
- https://torrentz2eu.me/
|
||||
- https://torrentzeu.org/
|
||||
|
||||
caps:
|
||||
# unfortunately torrentz2eu does not display categories anywhere in its search results page :-(
|
||||
|
236
src/Jackett.Common/Definitions/tvroad.yml
Normal file
236
src/Jackett.Common/Definitions/tvroad.yml
Normal file
@@ -0,0 +1,236 @@
|
||||
---
|
||||
id: tvroad
|
||||
name: TvRoad
|
||||
description: "TvRoad is a FRENCH Private Torrent Tracker for TV"
|
||||
language: fr-FR
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://tvroad.info/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: anime-fr-720-non-non, cat: TV/Anime, desc: "Anime FR 720p"}
|
||||
- {id: anime-fr-720-non-pack, cat: TV/Anime, desc: "Anime FR 720p Pack"}
|
||||
- {id: anime-fr-720-web-non, cat: TV/Anime, desc: "Anime FR 720p"}
|
||||
- {id: anime-fr-720-web-pack, cat: TV/Anime, desc: "Anime FR 720p Pack"}
|
||||
- {id: anime-fr-1080-non-non, cat: TV/Anime, desc: "Anime FR 1080p"}
|
||||
- {id: anime-fr-1080-non-pack, cat: TV/Anime, desc: "Anime FR 1080p Pack"}
|
||||
- {id: anime-fr-1080-web-non, cat: TV/Anime, desc: "Anime FR 1080p WEB-DL"}
|
||||
- {id: anime-fr-1080-web-pack, cat: TV/Anime, desc: "Anime FR 1080p Pack WEB-DL"}
|
||||
- {id: anime-fr-sd-non-non, cat: TV/Anime, desc: "Anime FR SD"}
|
||||
- {id: anime-fr-sd-non-pack, cat: TV/Anime, desc: "Anime FR SD Pack"}
|
||||
- {id: anime-fr-sd-web-non, cat: TV/Anime, desc: "Anime FR SD WEB-DL"}
|
||||
- {id: anime-fr-sd-web-pack, cat: TV/Anime, desc: "Anime FR SD Pack WEB-DL"}
|
||||
- {id: anime-vostf-720-non-non, cat: TV/Anime, desc: "Anime VOSTFR 720p"}
|
||||
- {id: anime-vostf-720-non-pack, cat: TV/Anime, desc: "Anime VOSTFR 720p Pack"}
|
||||
- {id: anime-vostf-720-web-non, cat: TV/Anime, desc: "Anime VOSTFR 720p WEB-DL"}
|
||||
- {id: anime-vostf-720-web-pack, cat: TV/Anime, desc: "Anime VOSTFR 720p Pack WEB-DL"}
|
||||
- {id: anime-vostf-1080-non-non, cat: TV/Anime, desc: "Anime VOSTFR 1080p"}
|
||||
- {id: anime-vostf-1080-non-pack, cat: TV/Anime, desc: "Anime VOSTFR 1080p Pack"}
|
||||
- {id: anime-vostf-1080-web-non, cat: TV/Anime, desc: "Anime VOSTFR 1080p WEB-DL"}
|
||||
- {id: anime-vostf-1080-web-pack, cat: TV/Anime, desc: "Anime VOSTFR 1080p Pack WEB-DL"}
|
||||
- {id: anime-vostf-sd-non-non, cat: TV/Anime, desc: "Anime VOSTFR SD"}
|
||||
- {id: anime-vostf-sd-non-pack, cat: TV/Anime, desc: "Anime VOSTFR SD Pack"}
|
||||
- {id: anime-vostf-sd-web-non, cat: TV/Anime, desc: "Anime VOSTFR SD WEB-DL"}
|
||||
- {id: anime-vostf-sd-web-pack, cat: TV/Anime, desc: "Anime VOSTFR SD Pack WEB-DL"}
|
||||
- {id: anime-fr-2160-non-non, cat: TV/Anime, desc: "Anime FR 2160p"}
|
||||
- {id: anime-fr-2160-non-pack, cat: TV/Anime, desc: "Anime FR 2160p Pack"}
|
||||
- {id: anime-fr-2160-web-non, cat: TV/Anime, desc: "Anime FR 2160p WEB-DL"}
|
||||
- {id: anime-fr-2160-web-pack, cat: TV/Anime, desc: "Anime FR 2160p Pack WEB-DL"}
|
||||
- {id: anime-vostf-2160-non-non, cat: TV/Anime, desc: "Anime VOSTFR 2160p"}
|
||||
- {id: anime-vostf-2160-non-pack, cat: TV/Anime, desc: "Anime VOSTFR 2160p Pack"}
|
||||
- {id: anime-vostf-2160-web-non, cat: TV/Anime, desc: "Anime VOSTFR 2160p WEB-DL"}
|
||||
- {id: anime-vostf-2160-web-pack, cat: TV/Anime, desc: "Anime VOSTFR 2160p Pack WEB-DL"}
|
||||
- {id: docs-fr-720-non-non, cat: TV/Documentary, desc: "Docs FR 720p"}
|
||||
- {id: docs-fr-720-non-pack, cat: TV/Documentary, desc: "Docs FR 720p Pack"}
|
||||
- {id: docs-fr-720-web-non, cat: TV/Documentary, desc: "Docs FR 720p WEB-DL"}
|
||||
- {id: docs-fr-720-web-pack, cat: TV/Documentary, desc: "Docs FR 720p Pack WEB-DL"}
|
||||
- {id: docs-fr-1080-non-non, cat: TV/Documentary, desc: "Docs FR 1080p"}
|
||||
- {id: docs-fr-1080-non-pack, cat: TV/Documentary, desc: "Docs FR 1080p Pack"}
|
||||
- {id: docs-fr-1080-web-non, cat: TV/Documentary, desc: "Docs FR 1080p WEB-DL"}
|
||||
- {id: docs-fr-1080-web-pack, cat: TV/Documentary, desc: "Docs FR 1080p Pack WEB-DL"}
|
||||
- {id: docs-fr-sd-non-non, cat: TV/Documentary, desc: "Docs FR SD"}
|
||||
- {id: docs-fr-sd-non-pack, cat: TV/Documentary, desc: "Docs FR SD Pack"}
|
||||
- {id: docs-fr-sd-web-non, cat: TV/Documentary, desc: "Docs FR SD WEB-DL"}
|
||||
- {id: docs-fr-sd-web-pack, cat: TV/Documentary, desc: "Docs FR SD Pack WEB-DL"}
|
||||
- {id: docs-vostf-720-non-non, cat: TV/Documentary, desc: "Docs VOSTFR 720p"}
|
||||
- {id: docs-vostf-720-non-pack, cat: TV/Documentary, desc: "Docs VOSTFR 720p Pack"}
|
||||
- {id: docs-vostf-720-web-non, cat: TV/Documentary, desc: "Docs VOSTFR 720p WEB-DL"}
|
||||
- {id: docs-vostf-720-web-pack, cat: TV/Documentary, desc: "Docs VOSTFR 720p Pack WEB-DL"}
|
||||
- {id: docs-vostf-1080-non-non, cat: TV/Documentary, desc: "Docs VOSTFR 1080p"}
|
||||
- {id: docs-vostf-1080-non-pack, cat: TV/Documentary, desc: "Docs VOSTFR 1080p Pack"}
|
||||
- {id: docs-vostf-1080-web-non, cat: TV/Documentary, desc: "Docs VOSTFR 1080p WEB-DL"}
|
||||
- {id: docs-vostf-1080-web-pack, cat: TV/Documentary, desc: "Docs VOSTFR 1080p Pack WEB-DL"}
|
||||
- {id: docs-vostf-sd-non-non, cat: TV/Documentary, desc: "Docs VOSTFR SD"}
|
||||
- {id: docs-vostf-sd-non-pack, cat: TV/Documentary, desc: "Docs VOSTFR SD Pack"}
|
||||
- {id: docs-vostf-sd-web-non, cat: TV/Documentary, desc: "Docs VOSTFR SD WEB-DL"}
|
||||
- {id: docs-vostf-sd-web-pack, cat: TV/Documentary, desc: "Docs VOSTFR SD Pack WEB-DL"}
|
||||
- {id: docs-vostf-2160-non-non, cat: TV/Documentary, desc: "Docs VOSTFR 2160p"}
|
||||
- {id: docs-vostf-2160-non-pack, cat: TV/Documentary, desc: "Docs VOSTFR 2160p Pack"}
|
||||
- {id: docs-vostf-2160-web-non, cat: TV/Documentary, desc: "Docs VOSTFR 2160p WEB-DL"}
|
||||
- {id: docs-vostf-2160-web-pack, cat: TV/Documentary, desc: "Docs VOSTFR 2160p Pack WEB-DL"}
|
||||
- {id: docs-fr-2160-non-non, cat: TV/Documentary, desc: "Docs FR 2160p"}
|
||||
- {id: docs-fr-2160-non-pack, cat: TV/Documentary, desc: "Docs FR 2160p Pack"}
|
||||
- {id: docs-fr-2160-web-non, cat: TV/Documentary, desc: "Docs FR 2160p WEB-DL"}
|
||||
- {id: docs-fr-2160-web-pack, cat: TV/Documentary, desc: "Docs FR 2160p Pack WEB-DL"}
|
||||
- {id: serie-fr-720-non-non, cat: TV/HD, desc: "Serie FR 720p"}
|
||||
- {id: serie-fr-720-non-pack, cat: TV/HD, desc: "Serie FR 720p Pack"}
|
||||
- {id: serie-fr-720-web-non, cat: TV/HD, desc: "Serie FR 720p WEB-DL"}
|
||||
- {id: serie-fr-720-web-pack, cat: TV/HD, desc: "Serie FR 720p Pack WEB-DL"}
|
||||
- {id: serie-fr-1080-non-non, cat: TV/HD, desc: "Serie FR 1080p"}
|
||||
- {id: serie-fr-1080-non-pack, cat: TV/HD, desc: "Serie FR 1080p Pack"}
|
||||
- {id: serie-fr-1080-web-non, cat: TV/HD, desc: "Serie FR 1080p WEB-DL"}
|
||||
- {id: serie-fr-1080-web-pack, cat: TV/HD, desc: "Serie FR 1080p Pack WEB-DL"}
|
||||
- {id: serie-fr-sd-non-non, cat: TV/SD, desc: "Serie FR SD"}
|
||||
- {id: serie-fr-sd-non-pack, cat: TV/SD, desc: "Serie FR SD Pack"}
|
||||
- {id: serie-fr-sd-web-non, cat: TV/SD, desc: "Serie FR SD WEB-DL"}
|
||||
- {id: serie-fr-sd-web-pack, cat: TV/SD, desc: "Serie FR SD Pack WEB-DL"}
|
||||
- {id: serie-vostf-720-non-non, cat: TV/HD, desc: "Serie VOSTFR 720p"}
|
||||
- {id: serie-vostf-720-non-pack, cat: TV/HD, desc: "Serie VOSTFR 720p Pack"}
|
||||
- {id: serie-vostf-720-web-non, cat: TV/HD, desc: "Serie VOSTFR 720p WEB-DL"}
|
||||
- {id: serie-vostf-720-web-pack, cat: TV/HD, desc: "Serie VOSTFR 720p Pack WEB-DL"}
|
||||
- {id: serie-vostf-1080-non-non, cat: TV/HD, desc: "Serie VOSTFR 1080p"}
|
||||
- {id: serie-vostf-1080-non-pack, cat: TV/HD, desc: "Serie VOSTFR 1080p Pack"}
|
||||
- {id: serie-vostf-1080-web-non, cat: TV/HD, desc: "Serie VOSTFR 1080p WEB-DL"}
|
||||
- {id: serie-vostf-1080-web-pack, cat: TV/HD, desc: "Serie VOSTFR 1080p Pack WEB-DL"}
|
||||
- {id: serie-vostf-sd-non-non, cat: TV/SD, desc: "Serie VOSTFR SD"}
|
||||
- {id: serie-vostf-sd-non-pack, cat: TV/SD, desc: "Serie VOSTFR SD Pack"}
|
||||
- {id: serie-vostf-sd-web-non, cat: TV/SD, desc: "Serie VOSTFR SD WEB-DL"}
|
||||
- {id: serie-vostf-sd-web-pack, cat: TV/SD, desc: "Serie VOSTFR SD Pack WEB-DL"}
|
||||
- {id: serie-fr-2160-non-non, cat: TV/UHD, desc: "Serie FR 2160p"}
|
||||
- {id: serie-fr-2160-non-pack, cat: TV/UHD, desc: "Serie FR 2160p Pack"}
|
||||
- {id: serie-fr-2160-web-non, cat: TV/UHD, desc: "Serie FR 2160p WEB-DL"}
|
||||
- {id: serie-fr-2160-web-pack, cat: TV/UHD, desc: "Serie FR 2160p Pack WEB-DL"}
|
||||
- {id: serie-vostf-2160-non-non, cat: TV/UHD, desc: "Serie VOSTFR 2160p"}
|
||||
- {id: serie-vostf-2160-non-pack, cat: TV/UHD, desc: "Serie VOSTFR 2160p Pack"}
|
||||
- {id: serie-vostf-2160-web-non, cat: TV/UHD, desc: "Serie VOSTFR 2160p WEB-DL"}
|
||||
- {id: serie-vostf-2160-web-pack, cat: TV/UHD, desc: "Serie VOSTFR 2160p Pack WEB-DL"}
|
||||
- {id: tvreal-fr-720-non-non, cat: TV/HD, desc: "TvReal FR 720p"}
|
||||
- {id: tvreal-fr-720-non-pack, cat: TV/HD, desc: "TvReal FR 720p Pack"}
|
||||
- {id: tvreal-fr-720-web-non, cat: TV/HD, desc: "TvReal FR 720p WEB-DL"}
|
||||
- {id: tvreal-fr-720-web-pack, cat: TV/HD, desc: "TvReal FR 720p Pack WEB-DL"}
|
||||
- {id: tvreal-fr-1080-non-non, cat: TV/HD, desc: "TvReal FR 1080p"}
|
||||
- {id: tvreal-fr-1080-non-pack, cat: TV/HD, desc: "TvReal FR 1080p"}
|
||||
- {id: tvreal-fr-1080-web-non, cat: TV/HD, desc: "TvReal FR 1080p WEB-DL"}
|
||||
- {id: tvreal-fr-1080-web-pack, cat: TV/HD, desc: "TvReal FR 1080p WEB-DL"}
|
||||
- {id: tvreal-fr-sd-non-non, cat: TV/SD, desc: "TvReal FR SD"}
|
||||
- {id: tvreal-fr-sd-non-pack, cat: TV/SD, desc: "TvReal FR SD Pack"}
|
||||
- {id: tvreal-fr-sd-web-non, cat: TV/SD, desc: "TvReal FR SD WEB-DL"}
|
||||
- {id: tvreal-fr-sd-web-pack, cat: TV/SD, desc: "TvReal FR SD Pack WEB-DL"}
|
||||
- {id: tvreal-fr-2160-web-pack, cat: TV/UHD, desc: "TvReal FR 2160p Pack WEB-DL"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
|
||||
settings:
|
||||
- name: username
|
||||
type: text
|
||||
label: Username
|
||||
- name: password
|
||||
type: password
|
||||
label: Password
|
||||
- name: multilang
|
||||
type: checkbox
|
||||
label: Replace MULTI by another language in release name
|
||||
default: false
|
||||
- name: multilanguage
|
||||
type: select
|
||||
label: Replace MULTI by this language
|
||||
default: FRENCH
|
||||
options:
|
||||
FRENCH: FRENCH
|
||||
MULTI.FRENCH: MULTI.FRENCH
|
||||
ENGLISH: ENGLISH
|
||||
MULTI.ENGLISH: MULTI.ENGLISH
|
||||
VOSTFR: VOSTFR
|
||||
MULTI.VOSTFR: MULTI.VOSTFR
|
||||
- name: vostfr
|
||||
type: checkbox
|
||||
label: Replace VOSTFR with ENGLISH
|
||||
default: false
|
||||
|
||||
login:
|
||||
path: TvRoad/Connexion
|
||||
method: post
|
||||
inputs:
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
error:
|
||||
- selector: font[color="red"]
|
||||
test:
|
||||
path: TvRoad/Bienvenue
|
||||
selector: a[href$="/TvRoad/Deconnexion"]
|
||||
|
||||
search:
|
||||
paths:
|
||||
# https://tvroad.info/TvRoad/Torrents/Recherche?recherche=
|
||||
- path: TvRoad/Torrents/Recherche
|
||||
inputs:
|
||||
recherche: "{{ .Keywords }}"
|
||||
# type of search: un one of the words), tout (all of the words), exacte (exact match)
|
||||
type: tout
|
||||
# search location: nomtorrent (name), desctorrent (descr)
|
||||
endroit: nomtorrent
|
||||
# seeded: non (no), oui (yes), peuimporte (either)
|
||||
tl: peuimporte
|
||||
# does not support imdbid searches and does not return imdb link in results
|
||||
|
||||
rows:
|
||||
selector: tr:has(a[href*="/Torrents/Telechargement/"])
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: a[href*="/SousCategories/"]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: split
|
||||
args: ["/", -1]
|
||||
title_phase1:
|
||||
selector: a.infobulletorrent
|
||||
attribute: title
|
||||
title_multilang:
|
||||
text: "{{ .Result.title_phase1 }}"
|
||||
filters:
|
||||
- name: re_replace
|
||||
args: ["(?i)(\\smulti\\s)", " {{ .Config.multilanguage }} "]
|
||||
title_phase2:
|
||||
text: "{{ if .Config.multilang }}{{ .Result.title_multilang }}{{ else }}{{ .Result.title_phase1 }}{{ end }}"
|
||||
title_vostfr:
|
||||
text: "{{ .Result.title_phase2 }}"
|
||||
filters:
|
||||
- name: re_replace
|
||||
args: ["(?i)(\\svostfr\\s)", " ENGLISH "]
|
||||
- name: re_replace
|
||||
args: ["(?i)(\\ssubfrench\\s)", " ENGLISH "]
|
||||
title:
|
||||
text: "{{ if .Config.vostfr }}{{ .Result.title_vostfr }}{{ else }}{{ .Result.title_phase2 }}{{ end }}"
|
||||
details:
|
||||
selector: a.infobulletorrent
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href*="/Torrents/Telechargement/"]
|
||||
attribute: href
|
||||
poster:
|
||||
selector: a.infobulletorrent img
|
||||
attribute: src
|
||||
date:
|
||||
text: now
|
||||
size:
|
||||
selector: td.taillejour
|
||||
grabs:
|
||||
selector: td:nth-last-child(3)
|
||||
seeders:
|
||||
selector: b.seed
|
||||
leechers:
|
||||
selector: b.leech
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
text: 1
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
minimumseedtime:
|
||||
# 4 days (as seconds = 4 x 24 x 60 x 60)
|
||||
text: 345600
|
||||
# TT3.0 FRENCH custom
|
@@ -12,6 +12,7 @@ caps:
|
||||
categorymappings:
|
||||
- {id: 39, cat: Books/EBook, desc: "E-book"}
|
||||
- {id: 53, cat: XXX, desc: "Film (XXX)"}
|
||||
- {id: 74, cat: TV/Anime, desc: "Film (Animáció cam)"}
|
||||
- {id: 72, cat: TV/Anime, desc: "Film (Animáció)"}
|
||||
- {id: 44, cat: Movies/SD, desc: "Film (Cam Hun)"}
|
||||
- {id: 40, cat: Movies/DVD, desc: "Film (DVD Eng)"}
|
||||
|
@@ -22,7 +22,6 @@ namespace Jackett.Common.Indexers
|
||||
[ExcludeFromCodeCoverage]
|
||||
public class BJShare : BaseWebIndexer
|
||||
{
|
||||
private string LoginUrl => SiteLink + "login.php";
|
||||
private string BrowseUrl => SiteLink + "torrents.php";
|
||||
private string TodayUrl => SiteLink + "torrents.php?action=today";
|
||||
private static readonly Regex _EpisodeRegex = new Regex(@"(?:[SsEe]\d{2,4}){1,2}");
|
||||
@@ -32,7 +31,7 @@ namespace Jackett.Common.Indexers
|
||||
"https://bj-share.me/"
|
||||
};
|
||||
|
||||
private ConfigurationDataBasicLoginWithRSSAndDisplay ConfigData => (ConfigurationDataBasicLoginWithRSSAndDisplay)configData;
|
||||
private new ConfigurationDataCookie configData => (ConfigurationDataCookie)base.configData;
|
||||
|
||||
|
||||
|
||||
@@ -90,7 +89,7 @@ namespace Jackett.Common.Indexers
|
||||
logger: l,
|
||||
p: ps,
|
||||
cacheService: cs,
|
||||
configData: new ConfigurationDataBasicLoginWithRSSAndDisplay())
|
||||
configData: new ConfigurationDataCookie())
|
||||
{
|
||||
Encoding = Encoding.UTF8;
|
||||
Language = "pt-BR";
|
||||
@@ -123,20 +122,21 @@ namespace Jackett.Common.Indexers
|
||||
public override async Task<IndexerConfigurationStatus> ApplyConfiguration(JToken configJson)
|
||||
{
|
||||
LoadValuesFromJson(configJson);
|
||||
var pairs = new Dictionary<string, string>
|
||||
CookieHeader = configData.Cookie.Value;
|
||||
try
|
||||
{
|
||||
{"username", ConfigData.Username.Value},
|
||||
{"password", ConfigData.Password.Value},
|
||||
{"keeplogged", "1"}
|
||||
};
|
||||
var result = await RequestLoginAndFollowRedirect(LoginUrl, pairs, null, true, null, LoginUrl, true);
|
||||
await ConfigureIfOK(
|
||||
result.Cookies, result.ContentString?.Contains("logout.php") == true, () =>
|
||||
{
|
||||
var errorMessage = result.ContentString;
|
||||
throw new ExceptionWithConfigData(errorMessage, ConfigData);
|
||||
});
|
||||
return IndexerConfigurationStatus.RequiresTesting;
|
||||
var results = await PerformQuery(new TorznabQuery());
|
||||
if (!results.Any())
|
||||
throw new Exception("Found 0 results in the tracker");
|
||||
IsConfigured = true;
|
||||
SaveConfig();
|
||||
return IndexerConfigurationStatus.Completed;
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
IsConfigured = false;
|
||||
throw new Exception("Your cookie did not work: " + e.Message);
|
||||
}
|
||||
}
|
||||
|
||||
private static string InternationalTitle(string title)
|
||||
@@ -222,17 +222,14 @@ namespace Jackett.Common.Indexers
|
||||
// until they or the source from where they get that info fix it...
|
||||
if (IsAbsoluteNumbering(title))
|
||||
{
|
||||
title = Regex.Replace(title, @"(Ep[\.]?[ ]?)|([S]\d\d[Ee])", "");
|
||||
title = Regex.Replace(title, @"(Ep[\.]?[ ]?)|([S]\d\d[Ee])", "E");
|
||||
return title;
|
||||
}
|
||||
|
||||
return title;
|
||||
}
|
||||
|
||||
private bool IsSessionIsClosed(WebResult result)
|
||||
{
|
||||
return result.IsRedirect && result.RedirectingTo.Contains("login.php");
|
||||
}
|
||||
private bool IsSessionIsClosed(WebResult result) => result.IsRedirect && result.RedirectingTo.Contains("login.php");
|
||||
|
||||
private string FixSearchTerm(TorznabQuery query)
|
||||
{
|
||||
@@ -265,14 +262,16 @@ namespace Jackett.Common.Indexers
|
||||
{"searchsubmit", "1"}
|
||||
};
|
||||
foreach (var cat in MapTorznabCapsToTrackers(query))
|
||||
{
|
||||
queryCollection.Add("filter_cat[" + cat + "]", "1");
|
||||
}
|
||||
|
||||
searchUrl += "?" + queryCollection.GetQueryString();
|
||||
var results = await RequestWithCookiesAsync(searchUrl);
|
||||
if (IsSessionIsClosed(results))
|
||||
{
|
||||
// re-login
|
||||
await ApplyConfiguration(null);
|
||||
results = await RequestWithCookiesAsync(searchUrl);
|
||||
throw new Exception("The user is not logged in. It is possible that the cookie has expired or you " +
|
||||
"made a mistake when copying it. Please check the settings.");
|
||||
}
|
||||
|
||||
try
|
||||
@@ -436,9 +435,8 @@ namespace Jackett.Common.Indexers
|
||||
var results = await RequestWithCookiesAsync(TodayUrl);
|
||||
if (IsSessionIsClosed(results))
|
||||
{
|
||||
// re-login
|
||||
await ApplyConfiguration(null);
|
||||
results = await RequestWithCookiesAsync(TodayUrl);
|
||||
throw new Exception("The user is not logged in. It is possible that the cookie has expired or you " +
|
||||
"made a mistake when copying it. Please check the settings.");
|
||||
}
|
||||
|
||||
try
|
||||
|
@@ -23,12 +23,16 @@ namespace Jackett.Common.Indexers
|
||||
|
||||
private new ConfigurationDataAPIKey configData => (ConfigurationDataAPIKey)base.configData;
|
||||
|
||||
public override string[] LegacySiteLinks { get; protected set; } = {
|
||||
"https://danishbytes.org/"
|
||||
};
|
||||
|
||||
public DanishBytes(IIndexerConfigurationService configService, WebClient wc, Logger l, IProtectionService ps,
|
||||
ICacheService cs)
|
||||
: base(id: "danishbytes",
|
||||
name: "DanishBytes",
|
||||
description: "DanishBytes is a Private Danish Tracker",
|
||||
link: "https://danishbytes.org/",
|
||||
link: "https://danishbytes.club/",
|
||||
caps: new TorznabCapabilities
|
||||
{
|
||||
LimitsDefault = 25,
|
||||
|
@@ -99,7 +99,7 @@ namespace Jackett.Common.Indexers
|
||||
private readonly string[] _voUrls = { "serie-vo", "serievo" };
|
||||
|
||||
public override string[] AlternativeSiteLinks { get; protected set; } = {
|
||||
"https://atomixhq.one/",
|
||||
"https://atomixhq.net/",
|
||||
"https://pctmix1.unblockit.tv/"
|
||||
};
|
||||
|
||||
@@ -125,7 +125,8 @@ namespace Jackett.Common.Indexers
|
||||
"https://maxitorrent.com",
|
||||
"https://pctmix1.unblockit.kim/",
|
||||
"https://atomixhq.com/",
|
||||
"https://pctmix1.unblockit.bz/"
|
||||
"https://pctmix1.unblockit.bz/",
|
||||
"https://atomixhq.one/"
|
||||
};
|
||||
|
||||
public NewPCT(IIndexerConfigurationService configService, WebClient wc, Logger l, IProtectionService ps,
|
||||
@@ -133,7 +134,7 @@ namespace Jackett.Common.Indexers
|
||||
: base(id: "newpct",
|
||||
name: "NewPCT",
|
||||
description: "NewPCT - Descargar peliculas, series y estrenos torrent gratis",
|
||||
link: "https://atomixhq.one/",
|
||||
link: "https://atomixhq.net/",
|
||||
caps: new TorznabCapabilities
|
||||
{
|
||||
TvSearchParams = new List<TvSearchParam>
|
||||
|
@@ -102,6 +102,7 @@ namespace Jackett.Common.Indexers
|
||||
AddCategoryMapping(1836, TorznabCatType.XXX, "Сайтрипы 2019 (HD Video) / SiteRip's 2019 (HD Video)");
|
||||
AddCategoryMapping(1842, TorznabCatType.XXX, "Сайтрипы 2020 (HD Video) / SiteRip's 2020 (HD Video)");
|
||||
AddCategoryMapping(1846, TorznabCatType.XXX, "Сайтрипы 2021 (HD Video) / SiteRip's 2021 (HD Video)");
|
||||
AddCategoryMapping(1857, TorznabCatType.XXX, "Сайтрипы 2022 (HD Video) / SiteRip's 2022 (HD Video)");
|
||||
AddCategoryMapping(1451, TorznabCatType.XXX, "Сайтрипы 1991-2010 / SiteRip's 1991-2010");
|
||||
AddCategoryMapping(1788, TorznabCatType.XXX, "Сайтрипы 2011-2012 / SiteRip's 2011-2012");
|
||||
AddCategoryMapping(1789, TorznabCatType.XXX, "Сайтрипы 2013 / SiteRip's 2013");
|
||||
@@ -113,6 +114,7 @@ namespace Jackett.Common.Indexers
|
||||
AddCategoryMapping(1837, TorznabCatType.XXX, "Сайтрипы 2019 / SiteRip's 2019");
|
||||
AddCategoryMapping(1843, TorznabCatType.XXX, "Сайтрипы 2020 / SiteRip's 2020");
|
||||
AddCategoryMapping(1847, TorznabCatType.XXX, "Сайтрипы 2021 / SiteRip's 2021");
|
||||
AddCategoryMapping(1856, TorznabCatType.XXX, "Сайтрипы 2022 / SiteRip's 2022");
|
||||
AddCategoryMapping(1707, TorznabCatType.XXX, "Сцены из фильмов / Movie Scenes (кроме SiteRip)");
|
||||
AddCategoryMapping(284, TorznabCatType.XXX, "Порноролики Разное / Clips (various)");
|
||||
AddCategoryMapping(1853, TorznabCatType.XXX, "Компиляции и Музыкальные порно клипы / Compilations & Porn Music Video (PMV)");
|
||||
|
@@ -58,7 +58,7 @@ namespace Jackett.Common.Indexers
|
||||
Language = "en-US";
|
||||
Type = "private";
|
||||
|
||||
webclient.AddTrustedCertificate(new Uri(SiteLink).Host, "D948487DD52462F2D1E62B990D608051E3DE5AA6");
|
||||
webclient.AddTrustedCertificate(new Uri(SiteLink).Host, "C360EEF4D9B288112E038E4BF3AD0064FDA478F1");
|
||||
|
||||
AddCategoryMapping(2, TorznabCatType.MoviesUHD, "Movie/2160");
|
||||
AddCategoryMapping(1, TorznabCatType.MoviesHD, "Movie/1080");
|
||||
|
@@ -1,307 +0,0 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.Specialized;
|
||||
using System.Diagnostics.CodeAnalysis;
|
||||
using System.Linq;
|
||||
using System.Net;
|
||||
using System.Text;
|
||||
using System.Text.RegularExpressions;
|
||||
using System.Threading.Tasks;
|
||||
using AngleSharp.Html.Parser;
|
||||
using Jackett.Common.Models;
|
||||
using Jackett.Common.Models.IndexerConfig;
|
||||
using Jackett.Common.Services.Interfaces;
|
||||
using Jackett.Common.Utils;
|
||||
using Jackett.Common.Utils.Clients;
|
||||
using Newtonsoft.Json.Linq;
|
||||
using NLog;
|
||||
|
||||
namespace Jackett.Common.Indexers
|
||||
{
|
||||
[ExcludeFromCodeCoverage]
|
||||
public class TorrentSeeds : BaseWebIndexer
|
||||
{
|
||||
private string LoginUrl => SiteLink + "takelogin.php";
|
||||
private string CaptchaUrl => SiteLink + "simpleCaptcha.php?numImages=1";
|
||||
private string SearchUrl => SiteLink + "browse_elastic.php";
|
||||
|
||||
private new ConfigurationDataBasicLoginWithRSSAndDisplay configData => (ConfigurationDataBasicLoginWithRSSAndDisplay)base.configData;
|
||||
|
||||
public TorrentSeeds(IIndexerConfigurationService configService, Utils.Clients.WebClient wc, Logger l,
|
||||
IProtectionService ps, ICacheService cs)
|
||||
: base(id: "torrentseeds",
|
||||
name: "TorrentSeeds",
|
||||
description: "TorrentSeeds is a Private site for MOVIES / TV / GENERAL",
|
||||
link: "https://torrentseeds.org/",
|
||||
caps: new TorznabCapabilities
|
||||
{
|
||||
TvSearchParams = new List<TvSearchParam>
|
||||
{
|
||||
TvSearchParam.Q, TvSearchParam.Season, TvSearchParam.Ep
|
||||
},
|
||||
MovieSearchParams = new List<MovieSearchParam>
|
||||
{
|
||||
MovieSearchParam.Q
|
||||
},
|
||||
MusicSearchParams = new List<MusicSearchParam>
|
||||
{
|
||||
MusicSearchParam.Q
|
||||
},
|
||||
BookSearchParams = new List<BookSearchParam>
|
||||
{
|
||||
BookSearchParam.Q
|
||||
}
|
||||
},
|
||||
configService: configService,
|
||||
client: wc,
|
||||
logger: l,
|
||||
p: ps,
|
||||
cacheService: cs,
|
||||
configData: new ConfigurationDataBasicLoginWithRSSAndDisplay("For best results, change the <b>Torrents per page:</b> setting to <b>100</b> on your account profile."))
|
||||
{
|
||||
Encoding = Encoding.UTF8;
|
||||
Language = "en-US";
|
||||
Type = "private";
|
||||
|
||||
// NOTE: Tracker Category Description must match Type/Category in details page!
|
||||
AddCategoryMapping(37, TorznabCatType.TVAnime, "Anime/HD");
|
||||
AddCategoryMapping(9, TorznabCatType.TVAnime, "Anime/SD");
|
||||
AddCategoryMapping(72, TorznabCatType.TVAnime, "Anime/UHD");
|
||||
AddCategoryMapping(13, TorznabCatType.PC0day, "Apps/0DAY");
|
||||
AddCategoryMapping(27, TorznabCatType.Books, "Apps/Bookware");
|
||||
AddCategoryMapping(1, TorznabCatType.PCISO, "Apps/ISO");
|
||||
AddCategoryMapping(73, TorznabCatType.AudioAudiobook, "Music/Audiobooks");
|
||||
AddCategoryMapping(47, TorznabCatType.ConsoleOther, "Console/NSW");
|
||||
AddCategoryMapping(8, TorznabCatType.ConsolePS3, "Console/PS3");
|
||||
AddCategoryMapping(30, TorznabCatType.ConsolePS4, "Console/PS4");
|
||||
AddCategoryMapping(71, TorznabCatType.ConsolePS4, "Console/PS5");
|
||||
AddCategoryMapping(7, TorznabCatType.ConsolePSP, "Console/PSP");
|
||||
AddCategoryMapping(70, TorznabCatType.ConsolePSVita, "Console/PSV");
|
||||
AddCategoryMapping(16, TorznabCatType.ConsoleWii, "Console/WII");
|
||||
AddCategoryMapping(29, TorznabCatType.ConsoleWiiU, "Console/WIIU");
|
||||
AddCategoryMapping(17, TorznabCatType.ConsoleXBox360, "Console/XBOX360");
|
||||
AddCategoryMapping(32, TorznabCatType.BooksEBook, "E-books");
|
||||
AddCategoryMapping(63, TorznabCatType.ConsoleOther, "Games/DOX");
|
||||
AddCategoryMapping(2, TorznabCatType.PCGames, "Games/ISO");
|
||||
AddCategoryMapping(12, TorznabCatType.PCGames, "Games/PC Rips");
|
||||
AddCategoryMapping(31, TorznabCatType.MoviesBluRay, "Movies/Bluray");
|
||||
AddCategoryMapping(50, TorznabCatType.MoviesBluRay, "Movies/Bluray-UHD");
|
||||
AddCategoryMapping(3, TorznabCatType.MoviesDVD, "Movies/DVDR");
|
||||
AddCategoryMapping(69, TorznabCatType.MoviesForeign, "Movies/DVDR-Foreign");
|
||||
AddCategoryMapping(19, TorznabCatType.MoviesHD, "Movies/HD");
|
||||
AddCategoryMapping(39, TorznabCatType.MoviesForeign, "Movies/HD-Foreign");
|
||||
AddCategoryMapping(74, TorznabCatType.MoviesHD, "Movies/Remuxes");
|
||||
AddCategoryMapping(25, TorznabCatType.MoviesSD, "Movies/SD");
|
||||
AddCategoryMapping(62, TorznabCatType.MoviesForeign, "Movies/SD-Foreign");
|
||||
AddCategoryMapping(49, TorznabCatType.MoviesUHD, "Movies/UHD");
|
||||
AddCategoryMapping(76, TorznabCatType.MoviesForeign, "Movies/UHD-Foreign");
|
||||
AddCategoryMapping(33, TorznabCatType.AudioLossless, "Music/FLAC");
|
||||
AddCategoryMapping(89, TorznabCatType.AudioVideo, "Music/MBluRay");
|
||||
AddCategoryMapping(28, TorznabCatType.AudioVideo, "Music/MBluRay-Rips");
|
||||
AddCategoryMapping(34, TorznabCatType.AudioVideo, "Music/MDVDR");
|
||||
AddCategoryMapping(4, TorznabCatType.AudioMP3, "Music/MP3");
|
||||
AddCategoryMapping(20, TorznabCatType.AudioVideo, "Music/MVID");
|
||||
AddCategoryMapping(77, TorznabCatType.TVAnime, "Anime/Packs");
|
||||
AddCategoryMapping(78, TorznabCatType.BooksEBook, "Books/Packs");
|
||||
AddCategoryMapping(80, TorznabCatType.MoviesHD, "Movies/HD-Packs");
|
||||
AddCategoryMapping(81, TorznabCatType.MoviesHD, "Movies/Remux-Packs");
|
||||
AddCategoryMapping(79, TorznabCatType.MoviesSD, "Movies/SD-Packs");
|
||||
AddCategoryMapping(68, TorznabCatType.Audio, "Music/Packs");
|
||||
AddCategoryMapping(67, TorznabCatType.TVHD, "TV/HD-Packs");
|
||||
AddCategoryMapping(82, TorznabCatType.TVHD, "TV/Remux-Packs");
|
||||
AddCategoryMapping(65, TorznabCatType.TVSD, "TV/SD-Packs");
|
||||
AddCategoryMapping(84, TorznabCatType.TVUHD, "TV/UHD-Packs");
|
||||
AddCategoryMapping(85, TorznabCatType.XXX, "XXX/Packs");
|
||||
AddCategoryMapping(23, TorznabCatType.TVSD, "TV/DVDR");
|
||||
AddCategoryMapping(26, TorznabCatType.TVHD, "TV/HD");
|
||||
AddCategoryMapping(64, TorznabCatType.TVForeign, "TV/HD-Foreign");
|
||||
AddCategoryMapping(11, TorznabCatType.TVHD, "TV/HD-Retail");
|
||||
AddCategoryMapping(36, TorznabCatType.TVSport, "TV/HD-Sport");
|
||||
AddCategoryMapping(18, TorznabCatType.TVSD, "TV/SD");
|
||||
AddCategoryMapping(86, TorznabCatType.TVForeign, "TV/SD-Foreign");
|
||||
AddCategoryMapping(24, TorznabCatType.TVSD, "TV/SD-Retail");
|
||||
AddCategoryMapping(35, TorznabCatType.TVSport, "TV/SD-Sport");
|
||||
AddCategoryMapping(61, TorznabCatType.TVUHD, "TV/UHD");
|
||||
AddCategoryMapping(87, TorznabCatType.TVForeign, "TV/UHD-Foreign");
|
||||
AddCategoryMapping(53, TorznabCatType.XXX, "XXX/HD");
|
||||
AddCategoryMapping(88, TorznabCatType.XXXImageSet, "XXX/Image-Sets");
|
||||
AddCategoryMapping(57, TorznabCatType.XXX, "XXX/Paysite");
|
||||
AddCategoryMapping(6, TorznabCatType.XXXSD, "XXX/SD");
|
||||
}
|
||||
|
||||
public override async Task<IndexerConfigurationStatus> ApplyConfiguration(JToken configJson)
|
||||
{
|
||||
LoadValuesFromJson(configJson);
|
||||
CookieHeader = ""; // clear old cookies
|
||||
|
||||
var result1 = await RequestWithCookiesAsync(CaptchaUrl);
|
||||
var json1 = JObject.Parse(result1.ContentString);
|
||||
var captchaSelection = json1["images"][0]["hash"];
|
||||
|
||||
var pairs = new Dictionary<string, string> {
|
||||
{ "username", configData.Username.Value },
|
||||
{ "password", configData.Password.Value },
|
||||
{ "submitme", "X" },
|
||||
{ "captchaSelection", (string)captchaSelection }
|
||||
};
|
||||
|
||||
var result2 = await RequestLoginAndFollowRedirect(LoginUrl, pairs, result1.Cookies, true, null, null, true);
|
||||
|
||||
await ConfigureIfOK(result2.Cookies, result2.ContentString.Contains("logout.php"), () =>
|
||||
throw new ExceptionWithConfigData("Login Failed", configData));
|
||||
return IndexerConfigurationStatus.RequiresTesting;
|
||||
|
||||
}
|
||||
|
||||
protected override async Task<IEnumerable<ReleaseInfo>> PerformQuery(TorznabQuery query)
|
||||
{
|
||||
// remove operator characters
|
||||
var cleanSearchString = Regex.Replace(query.GetQueryString().Trim(), "[ _.+-]+", " ", RegexOptions.Compiled);
|
||||
|
||||
var searchUrl = SearchUrl;
|
||||
var queryCollection = new NameValueCollection
|
||||
{
|
||||
{ "search_in", "name" },
|
||||
{ "search_mode", "all" },
|
||||
{ "order_by", "added" },
|
||||
{ "order_way", "desc" }
|
||||
};
|
||||
if (!string.IsNullOrWhiteSpace(cleanSearchString))
|
||||
queryCollection.Add("query", cleanSearchString);
|
||||
foreach (var cat in MapTorznabCapsToTrackers(query))
|
||||
queryCollection.Add($"cat[{cat}]", "1");
|
||||
|
||||
searchUrl += "?" + queryCollection.GetQueryString();
|
||||
var response = await RequestWithCookiesAndRetryAsync(searchUrl);
|
||||
|
||||
// handle cookie expiration
|
||||
var results = response.ContentString;
|
||||
if ((response.IsRedirect && response.RedirectingTo.Contains("/login.php?")) ||
|
||||
(!response.IsRedirect && !results.Contains("/logout.php?")))
|
||||
{
|
||||
await ApplyConfiguration(null); // re-login
|
||||
response = await RequestWithCookiesAndRetryAsync(searchUrl);
|
||||
}
|
||||
|
||||
// handle single entries
|
||||
if (response.IsRedirect)
|
||||
{
|
||||
var detailsLink = new Uri(response.RedirectingTo);
|
||||
await FollowIfRedirect(response, accumulateCookies: true);
|
||||
return ParseSingleResult(response, detailsLink);
|
||||
}
|
||||
|
||||
return ParseMultiResult(response);
|
||||
}
|
||||
|
||||
private List<ReleaseInfo> ParseSingleResult(WebResult response, Uri detailsLink)
|
||||
{
|
||||
var releases = new List<ReleaseInfo>();
|
||||
var results = response.ContentString;
|
||||
|
||||
try
|
||||
{
|
||||
var parser = new HtmlParser();
|
||||
var dom = parser.ParseDocument(results);
|
||||
var content = dom.QuerySelector("tbody:has(script)");
|
||||
if (content == null)
|
||||
return releases; // no results
|
||||
var release = new ReleaseInfo();
|
||||
release.MinimumRatio = 1;
|
||||
release.MinimumSeedTime = 72 * 60 * 60;
|
||||
var catStr = content.QuerySelector("tr:has(td.heading:contains(\"Type\"))").Children[1].TextContent;
|
||||
release.Category = MapTrackerCatDescToNewznab(catStr);
|
||||
var qLink = content.QuerySelector("tr:has(td.heading:contains(\"Download\"))")
|
||||
.QuerySelector("a[href*=\"download.php?torrent=\"]");
|
||||
release.Link = new Uri(SiteLink + qLink.GetAttribute("href"));
|
||||
release.Title = dom.QuerySelector("h1").TextContent.Trim();
|
||||
release.Details = detailsLink;
|
||||
release.Guid = detailsLink;
|
||||
var qSize = content.QuerySelector("tr:has(td.heading:contains(\"Size\"))").Children[1].TextContent
|
||||
.Split('(')[0].Trim();
|
||||
release.Size = ReleaseInfo.GetBytes(qSize);
|
||||
var peerStats = content.QuerySelector("tr:has(td:has(a[href^=\"./peerlist_xbt.php?id=\"]))").Children[1]
|
||||
.TextContent.Split(',');
|
||||
var qSeeders = peerStats[0].Replace(" seeder(s)", "").Trim();
|
||||
var qLeechers = peerStats[1].Split('=')[0].Replace(" leecher(s) ", "").Trim();
|
||||
release.Seeders = ParseUtil.CoerceInt(qSeeders);
|
||||
release.Peers = ParseUtil.CoerceInt(qLeechers) + release.Seeders;
|
||||
var rawDateStr = content.QuerySelector("tr:has(td.heading:contains(\"Added\"))").Children[1].TextContent;
|
||||
var dateUpped = DateTimeUtil.FromUnknown(rawDateStr.Replace(",", string.Empty));
|
||||
|
||||
// Mar 4 2020, 05:47 AM
|
||||
release.PublishDate = dateUpped.ToLocalTime();
|
||||
var qGrabs = content.QuerySelector("tr:has(td.heading:contains(\"Snatched\"))").Children[1];
|
||||
release.Grabs = ParseUtil.CoerceInt(qGrabs.TextContent.Replace(" time(s)", ""));
|
||||
var qFiles = content.QuerySelector("tr:has(td.heading:has(a[href^=\"./filelist.php?id=\"]))").Children[1];
|
||||
release.Files = ParseUtil.CoerceInt(qFiles.TextContent.Replace(" files", ""));
|
||||
var qRatio = content.QuerySelector("tr:has(td.heading:contains(\"Ratio After Download\"))").Children[1];
|
||||
release.DownloadVolumeFactor = qRatio.QuerySelector("del") != null ? 0 : 1;
|
||||
release.UploadVolumeFactor = 1;
|
||||
releases.Add(release);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
OnParseError(results, ex);
|
||||
}
|
||||
|
||||
return releases;
|
||||
}
|
||||
|
||||
private List<ReleaseInfo> ParseMultiResult(WebResult response)
|
||||
{
|
||||
var releases = new List<ReleaseInfo>();
|
||||
var results = response.ContentString;
|
||||
|
||||
try
|
||||
{
|
||||
var parser = new HtmlParser();
|
||||
var dom = parser.ParseDocument(results);
|
||||
var rows = dom.QuerySelectorAll("table.table-bordered > tbody > tr[class*=\"torrent_row_\"]");
|
||||
foreach (var row in rows)
|
||||
{
|
||||
var release = new ReleaseInfo();
|
||||
release.MinimumRatio = 1;
|
||||
release.MinimumSeedTime = 72 * 60 * 60;
|
||||
var qCatLink = row.QuerySelector("a[href^=\"/browse_elastic.php?cat=\"]");
|
||||
var catStr = qCatLink.GetAttribute("href").Split('=')[1];
|
||||
release.Category = MapTrackerCatToNewznab(catStr);
|
||||
var qDetailsLink = row.QuerySelector("a[href^=\"/details.php?id=\"]");
|
||||
var qDetailsTitle = row.QuerySelector("td:has(a[href^=\"/details.php?id=\"]) b");
|
||||
release.Title = qDetailsTitle.TextContent.Trim();
|
||||
var qDlLink = row.QuerySelector("a[href^=\"/download.php?torrent=\"]");
|
||||
|
||||
release.Link = new Uri(SiteLink + qDlLink.GetAttribute("href").TrimStart('/'));
|
||||
release.Details = new Uri(SiteLink + qDetailsLink.GetAttribute("href").TrimStart('/'));
|
||||
release.Guid = release.Details;
|
||||
|
||||
var qColumns = row.QuerySelectorAll("td");
|
||||
release.Files = ParseUtil.CoerceInt(qColumns[3].TextContent);
|
||||
release.PublishDate = DateTimeUtil.FromUnknown(qColumns[5].TextContent);
|
||||
release.Size = ReleaseInfo.GetBytes(qColumns[6].TextContent);
|
||||
release.Grabs = ParseUtil.CoerceInt(qColumns[7].TextContent.Replace("Times", ""));
|
||||
release.Seeders = ParseUtil.CoerceInt(qColumns[8].TextContent);
|
||||
release.Peers = ParseUtil.CoerceInt(qColumns[9].TextContent) + release.Seeders;
|
||||
|
||||
var qImdb = row.QuerySelector("a[href*=\"www.imdb.com\"]");
|
||||
if (qImdb != null)
|
||||
{
|
||||
var deRefUrl = qImdb.GetAttribute("href");
|
||||
release.Imdb = ParseUtil.GetImdbID(WebUtility.UrlDecode(deRefUrl).Split('/').Last());
|
||||
}
|
||||
|
||||
release.DownloadVolumeFactor = row.QuerySelector("span.freeleech") != null ? 0 : 1;
|
||||
release.UploadVolumeFactor = 1;
|
||||
releases.Add(release);
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
OnParseError(results, ex);
|
||||
}
|
||||
|
||||
return releases;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
@@ -44,12 +44,10 @@ namespace Jackett.Common.Services
|
||||
{"broadcastthenet", "broadcasthenet"},
|
||||
{"hdreactor", "hdhouse"},
|
||||
{"icetorrent", "speedapp"},
|
||||
{"feedurneed", "devils-playground"},
|
||||
{"kickasstorrent-kathow", "kickasstorrents-ws"},
|
||||
{"legacyhd", "reelflix"},
|
||||
{"leaguehd", "lemonhd"},
|
||||
{"metaliplayro", "romanianmetaltorrents"},
|
||||
{"nbytez", "devils-playground"},
|
||||
{"nnm-club", "noname-club"},
|
||||
{"passtheheadphones", "redacted"},
|
||||
{"puntorrent", "puntotorrent"},
|
||||
|
@@ -55,7 +55,7 @@ namespace Jackett.Test.Common.Indexers
|
||||
Assert.AreEqual("magnet:?xt=urn:btih:d540fc48eb12f2833163eed6421d449dd8f1ce1f&dn=ubuntu-19.04-desktop-amd64.iso",
|
||||
firstRelease.MagnetUri.ToString().Split(new[] { "&tr" }, StringSplitOptions.None).First());
|
||||
Assert.AreEqual("d540fc48eb12f2833163eed6421d449dd8f1ce1f", firstRelease.InfoHash);
|
||||
Assert.AreEqual(2019, firstRelease.PublishDate.Year);
|
||||
Assert.AreEqual(2020, firstRelease.PublishDate.Year);
|
||||
Assert.AreEqual(2097152000, firstRelease.Size);
|
||||
Assert.AreEqual(12, firstRelease.Seeders);
|
||||
Assert.AreEqual(13, firstRelease.Peers);
|
||||
|
@@ -157,7 +157,7 @@ namespace Jackett.Test.Common.Utils
|
||||
DateTimeUtil.ParseDateTimeGoLang("21-06-2010 04:20:19 -04:00", "02-01-2006 15:04:05 -07:00"));
|
||||
Assert.AreEqual(new DateTimeOffset(2010, 6, 21, 0, 0, 0, new TimeSpan(-5, -30, 0)).ToLocalTime().DateTime,
|
||||
DateTimeUtil.ParseDateTimeGoLang("2010-06-21 -05:30", "2006-01-02 -07:00"));
|
||||
var refDate = new DateTime(2021, 03, 12, 12, 00, 00, DateTimeKind.Local);
|
||||
var refDate = new DateTime(2022, 03, 12, 12, 00, 00, DateTimeKind.Local);
|
||||
Assert.AreEqual(new DateTime(refDate.Year - 1, 9, 14, 7, 0, 0),
|
||||
DateTimeUtil.ParseDateTimeGoLang("7am Sep. 14", "3pm Jan. 2", relativeFrom: refDate));
|
||||
|
||||
|
@@ -262,11 +262,13 @@ namespace Jackett.Updater
|
||||
"Definitions/academictorrents.yml",
|
||||
"Definitions/alein.yml",
|
||||
"Definitions/alexfilm.yml",
|
||||
"Definitions/alleenretail.yml",
|
||||
"Definitions/anidex.yml", // migrated to C#
|
||||
"Definitions/aox.yml",
|
||||
"Definitions/apollo.yml", // migrated to C# gazelle base tracker
|
||||
"Definitions/archetorrent.yml",
|
||||
"Definitions/asgaard.yml",
|
||||
"Definitions/asiandvdclub.yml",
|
||||
"Definitions/ast4u.yml", // renamed to animeworld #10578
|
||||
"Definitions/asylumshare.yml",
|
||||
"Definitions/audiobooktorrents.yml", // renamed to abtorrents
|
||||
@@ -303,12 +305,14 @@ namespace Jackett.Updater
|
||||
"Definitions/demonsite.yml",
|
||||
"Definitions/desireleasers.yml",
|
||||
"Definitions/devils-playground.yml",
|
||||
"Definitions/devilsplayground.yml",
|
||||
"Definitions/digbt.yml",
|
||||
"Definitions/documentarytorrents.yml",
|
||||
"Definitions/downloadville.yml",
|
||||
"Definitions/dragonworld.yml",
|
||||
"Definitions/dreamteam.yml",
|
||||
"Definitions/dxdhd.yml",
|
||||
"Definitions/efectodoppler.yml",
|
||||
"Definitions/eggmeon.yml",
|
||||
"Definitions/elitehd.yml",
|
||||
"Definitions/elittracker.yml",
|
||||
@@ -414,6 +418,7 @@ namespace Jackett.Updater
|
||||
"Definitions/rapidetracker.yml",
|
||||
"Definitions/rarbg.yml", // migrated to C#
|
||||
"Definitions/redtopia.yml",
|
||||
"Definitions/renegade.yml",
|
||||
"Definitions/retroflix.yml", // migrated to C#
|
||||
"Definitions/rgu.yml",
|
||||
"Definitions/rns.yml", // site merged with audiobooktorrents
|
||||
|
Reference in New Issue
Block a user