mirror of
https://github.com/Jackett/Jackett.git
synced 2025-12-24 14:57:09 +01:00
Compare commits
61 Commits
v0.20.4119
...
v0.20.4199
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a012c9d686 | ||
|
|
7e33461c7f | ||
|
|
4000c46be1 | ||
|
|
f018aa252c | ||
|
|
5f1445d59b | ||
|
|
25cdf412c1 | ||
|
|
02a818f71f | ||
|
|
ca35c57d78 | ||
|
|
76343fd56a | ||
|
|
dd9feca37b | ||
|
|
6ab273651d | ||
|
|
d3599c9c3a | ||
|
|
f701bba1ef | ||
|
|
7907e2b620 | ||
|
|
78d673f491 | ||
|
|
b7756508e1 | ||
|
|
0210b7dc5b | ||
|
|
efb8de4d4c | ||
|
|
dee88f618a | ||
|
|
4e0c5814f4 | ||
|
|
df48a6ed41 | ||
|
|
aed390f7ba | ||
|
|
b0adee0047 | ||
|
|
d634670ad8 | ||
|
|
8f260f7f97 | ||
|
|
9e5973af5c | ||
|
|
e28e93ce08 | ||
|
|
927ffdff39 | ||
|
|
88d5142cd7 | ||
|
|
5f754847b9 | ||
|
|
6e69f3611d | ||
|
|
a25dad6d09 | ||
|
|
9c641e624a | ||
|
|
e2c25d78c9 | ||
|
|
4b5c36f056 | ||
|
|
5ff2071094 | ||
|
|
5aa616a6ee | ||
|
|
6932b9afbc | ||
|
|
8eca7c2f14 | ||
|
|
214a0a6960 | ||
|
|
816ff9aa5d | ||
|
|
d0bfbbfc81 | ||
|
|
b68373b4f0 | ||
|
|
d8c988c976 | ||
|
|
922c27f1ac | ||
|
|
f84cb6e334 | ||
|
|
c1fe13a3a6 | ||
|
|
7aae16f4d3 | ||
|
|
db1785f49c | ||
|
|
d38a3f0210 | ||
|
|
11bdb939b1 | ||
|
|
8851fc00e6 | ||
|
|
6a9de0ce34 | ||
|
|
069e9d180a | ||
|
|
e6d9417f86 | ||
|
|
f86b239469 | ||
|
|
5b433c412d | ||
|
|
bb933fd553 | ||
|
|
60d674d24e | ||
|
|
44af214b09 | ||
|
|
79347c3d7b |
11
README.md
11
README.md
@@ -192,6 +192,7 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
|
||||
* LostFilm.tv
|
||||
* Magnetico (Local DHT) [[site](https://github.com/boramalper/magnetico)]
|
||||
* Marine Tracker
|
||||
* Masters-TB
|
||||
* Mazepa
|
||||
* Metal Tracker
|
||||
* Moviesite
|
||||
@@ -291,7 +292,7 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
|
||||
* BroadcasTheNet (BTN)
|
||||
* BroadCity
|
||||
* BrokenStones [![(invite needed)][inviteneeded]](#)
|
||||
* BrSociety [![(invite needed)][inviteneeded]](#)
|
||||
* BrSociety
|
||||
* BTNext (BTNT) [![(invite needed)][inviteneeded]](#)
|
||||
* BTSCHOOL
|
||||
* BWTorrents
|
||||
@@ -306,6 +307,7 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
|
||||
* CGPeers [![(invite needed)][inviteneeded]](#)
|
||||
* CHDBits [![(invite needed)][inviteneeded]](#)
|
||||
* ChileBT
|
||||
* CiNEFiLHD
|
||||
* Cinemageddon [![(invite needed)][inviteneeded]](#)
|
||||
* CinemaMovieS_ZT
|
||||
* Cinematik [![(invite needed)][inviteneeded]](#)
|
||||
@@ -317,6 +319,7 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
|
||||
* CrazySpirits
|
||||
* CrnaBerza
|
||||
* DANISH BYTES
|
||||
* Dark-Shadow
|
||||
* DataScene (DS)
|
||||
* DataTalli
|
||||
* DesiTorrents
|
||||
@@ -387,7 +390,6 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
|
||||
* HDVIDEO
|
||||
* HDZone
|
||||
* Hebits
|
||||
* HellasHut
|
||||
* HHanClub
|
||||
* House of Devil
|
||||
* HQMusic
|
||||
@@ -396,8 +398,10 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
|
||||
* ImmortalSeed (iS)
|
||||
* Immortuos
|
||||
* Indietorrents [![(invite needed)][inviteneeded]](#)
|
||||
* Infire
|
||||
* Insane Tracker
|
||||
* IPTorrents (IPT)
|
||||
* ItaTorrents
|
||||
* JME-REUNIT3D
|
||||
* JoyHD [![(invite needed)][inviteneeded]](#)
|
||||
* JPopsuki
|
||||
@@ -427,8 +431,10 @@ 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)
|
||||
* Mansão dos Animes (MDAN)
|
||||
* MegamixTracker
|
||||
* MeseVilág (Fairytale World)
|
||||
* MetalGuru
|
||||
* Milkie
|
||||
* MIRcrew
|
||||
* MMA-Torrents [![(invite needed)][inviteneeded]](#)
|
||||
@@ -473,6 +479,7 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
|
||||
* PTerClub
|
||||
* PTFiles (PTF)
|
||||
* PThome [![(invite needed)][inviteneeded]](#)
|
||||
* PT分享站 (itzmx)
|
||||
* PTSBAO
|
||||
* PTtime
|
||||
* Punk's Horror Tracker
|
||||
|
||||
@@ -20,7 +20,7 @@ Handlebars.registerHelper('jacketTimespan', function (context, block) {
|
||||
|
||||
var hours = timeSpan.asHours();
|
||||
if (hours < 48) {
|
||||
return Math.round(hours) + 'h ago';
|
||||
return parseFloat(hours).toFixed(1) + 'h ago';
|
||||
}
|
||||
|
||||
var days = timeSpan.asDays();
|
||||
|
||||
@@ -189,4 +189,4 @@ search:
|
||||
description:
|
||||
selector: td:nth-child(2)
|
||||
remove: a, b, font, img, span
|
||||
# NexusPHP v1.8.0 2023-04-09
|
||||
# NexusPHP v1.8.2 2023-05-08
|
||||
|
||||
@@ -213,4 +213,4 @@ search:
|
||||
description:
|
||||
selector: td.rowfollow:nth-child(2)
|
||||
remove: a, b, font, img, span
|
||||
# NexusPHP v1.8.0 2023-01-26
|
||||
# NexusPHP v1.8.2 2023-05-08
|
||||
|
||||
@@ -178,6 +178,9 @@ search:
|
||||
_quality:
|
||||
selector: div.list-group-item-content p.m-0 span.badge-primary:contains("1080p"), div.list-group-item-content p.m-0 span.badge-primary:contains("720p"), div.list-group-item-content p.m-0 span.badge-primary:contains("4k")
|
||||
optional: true
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["4k", "2160p"]
|
||||
_year:
|
||||
selector: div.list-group-item-content p.m-0 span.badge-primary[style$="#246AB6;"]
|
||||
optional: true
|
||||
|
||||
@@ -28,6 +28,7 @@ caps:
|
||||
- {id: 20, cat: Movies/HD, desc: "Movies / Movies HD"}
|
||||
- {id: 21, cat: Movies/HD, desc: "Movies / x265"}
|
||||
- {id: 22, cat: Movies/UHD, desc: "Movies / 4K"}
|
||||
- {id: 59, cat: Movies/HD, desc: "Movies / AV1"}
|
||||
- {id: 2, cat: TV, desc: "Series"}
|
||||
- {id: 23, cat: TV/HD, desc: "Series / TV Episodes HD"}
|
||||
- {id: 24, cat: TV, desc: "Series / TV Episodes"}
|
||||
|
||||
@@ -9,6 +9,7 @@ requestDelay: 2
|
||||
links:
|
||||
- https://bitsearch.to/
|
||||
- https://bitsearch.mrunblock.life/
|
||||
- https://bitsearch.nocensor.click/
|
||||
legacylinks:
|
||||
- https://bitsearch.nocensor.biz/
|
||||
- https://bitsearch.nocensor.sbs/
|
||||
|
||||
@@ -10,7 +10,7 @@ links:
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 1, cat: TV, desc: "Cursos"}
|
||||
- {id: 1, cat: Other, desc: "Cursos"}
|
||||
- {id: 2, cat: Books/EBook, desc: "eBooks"}
|
||||
- {id: 5, cat: Books/Mags, desc: "Revistas"}
|
||||
- {id: 3, cat: Audio/Audiobook, desc: "Audiobooks"}
|
||||
@@ -71,15 +71,9 @@ search:
|
||||
type: json
|
||||
|
||||
inputs:
|
||||
# if we have an id based search, add Season and Episode as query in name for UNIT3D < v6. Else pass S/E Params for UNIT3D >= v6
|
||||
api_token: "{{ .Config.apikey }}"
|
||||
$raw: "{{ range .Categories }}&categories[]={{.}}{{end}}"
|
||||
name: "{{ .Keywords }}"
|
||||
seasonNumber: "{{ .Query.Season }}"
|
||||
episodeNumber: "{{ .Query.Ep }}"
|
||||
imdbId: "{{ .Query.IMDBIDShort }}"
|
||||
tmdbId: "{{ .Query.TMDBID }}"
|
||||
tvdbId: "{{ .Query.TVDBID }}"
|
||||
"free[]": "{{ if .Config.freeleech }}100{{ else }}{{ end }}"
|
||||
sortField: "{{ .Config.sort }}"
|
||||
sortDirection: "{{ .Config.type }}"
|
||||
@@ -110,28 +104,6 @@ search:
|
||||
optional: true
|
||||
infohash:
|
||||
selector: info_hash
|
||||
poster:
|
||||
selector: meta.poster
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["https://via.placeholder.com/90x135", ""]
|
||||
imdbid:
|
||||
selector: imdb_id
|
||||
tmdbid:
|
||||
selector: tmdb_id
|
||||
tvdbid:
|
||||
selector: tvdb_id
|
||||
genre:
|
||||
selector: meta.genres
|
||||
filters:
|
||||
- name: re_replace
|
||||
args: ["(?i)(Science Fiction)", "Science_Fiction"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(TV Movie)", "TV_Movie"]
|
||||
- name: replace
|
||||
args: [" & ", "_&_"]
|
||||
description:
|
||||
text: "{{ .Result.genre }}"
|
||||
files:
|
||||
selector: num_file
|
||||
seeders:
|
||||
@@ -169,6 +141,6 @@ search:
|
||||
minimumratio:
|
||||
text: 1.0
|
||||
minimumseedtime:
|
||||
# 5 days (as seconds = 5 x 24 x 60 x 60)
|
||||
text: 432000
|
||||
# json UNIT3D 6.5.0
|
||||
# 4 days (as seconds = 4 x 24 x 60 x 60)
|
||||
text: 345600
|
||||
# json UNIT3D 6.5.0 (custom)
|
||||
|
||||
@@ -189,4 +189,4 @@ search:
|
||||
description:
|
||||
selector: td.rowfollow:nth-child(2)
|
||||
remove: a, b, font, img, span
|
||||
# NexusPHP v1.7.31 2022-11-14
|
||||
# NexusPHP v1.7.37 2023-05-08
|
||||
|
||||
@@ -163,7 +163,7 @@ search:
|
||||
optional: true
|
||||
filters:
|
||||
- name: re_replace
|
||||
args: ["[ ]at|[\\s+]|[//\xa0],\\/g", " "]
|
||||
args: ["[ ]at|[//\xa0\\s,]+", " "]
|
||||
date_year:
|
||||
# February 09, 2019, 06:35:08 AM
|
||||
selector: td:nth-child(5):not(:contains("day"))
|
||||
@@ -171,7 +171,7 @@ search:
|
||||
optional: true
|
||||
filters:
|
||||
- name: re_replace
|
||||
args: ["[,]|[\\s+]|[//\xa0],\\/g", " "]
|
||||
args: ["[//\xa0\\s,]+", " "]
|
||||
- name: dateparse
|
||||
args: "MMMM dd yyyy hh:mm:ss tt"
|
||||
date:
|
||||
|
||||
172
src/Jackett.Common/Definitions/cinefilhd.yml
Normal file
172
src/Jackett.Common/Definitions/cinefilhd.yml
Normal file
@@ -0,0 +1,172 @@
|
||||
---
|
||||
id: cinefilhd
|
||||
name: CiNEFiLHD
|
||||
description: "CiNEFiLHD is a Private Torrent Tracker for MOVIES / TV / MUSIC"
|
||||
language: en-US
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- http://cinefilhd.sytes.net/
|
||||
legacylinks:
|
||||
- http://www.cinefilhd.org/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 37, cat: Movies/HD, desc: "Internal/HD-1080p"}
|
||||
- {id: 17, cat: Movies/HD, desc: "Internal/HD-720p"}
|
||||
- {id: 30, cat: TV/HD, desc: "Internal/HDTV"}
|
||||
- {id: 15, cat: Movies/HD, desc: "Internal/mHD"}
|
||||
- {id: 40, cat: Movies, desc: "Internal/Mp4"}
|
||||
- {id: 26, cat: Movies, desc: "Internal/Remux"}
|
||||
- {id: 45, cat: Movies/WEB-DL, desc: "Internal/WEB-DL"}
|
||||
- {id: 5, cat: Movies/BluRay, desc: "Movies/BluRay"}
|
||||
- {id: 38, cat: Movies/HD, desc: "Movies/HD-1080p"}
|
||||
- {id: 10, cat: Movies/HD, desc: "Movies/HD-720p"}
|
||||
- {id: 29, cat: Movies/HD, desc: "Movies/mHD"}
|
||||
- {id: 41, cat: Movies, desc: "Movies/Mp4"}
|
||||
- {id: 39, cat: Movies, desc: "Movies/Remux"}
|
||||
- {id: 44, cat: Movies/WEB-DL, desc: "Movies/WEB-DL"}
|
||||
- {id: 23, cat: Audio/Lossless, desc: "Lossless"}
|
||||
- {id: 14, cat: Audio/MP3, desc: "MP3-Packs"}
|
||||
- {id: 22, cat: Audio/MP3, desc: "Music-MP3"}
|
||||
- {id: 43, cat: Audio/Video, desc: "Music/1080p"}
|
||||
- {id: 42, cat: Audio/Video, desc: "Music/720p"}
|
||||
- {id: 12, cat: TV/HD, desc: "HDTV-Packs"}
|
||||
- {id: 21, cat: TV/HD, desc: "Movies/HDTV"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep, imdbid, genre]
|
||||
movie-search: [q, imdbid, genre]
|
||||
music-search: [q]
|
||||
|
||||
settings:
|
||||
- name: username
|
||||
type: text
|
||||
label: Username
|
||||
- name: password
|
||||
type: password
|
||||
label: Password
|
||||
- name: freeleech
|
||||
type: checkbox
|
||||
label: Search freeleech only
|
||||
default: false
|
||||
- name: sort
|
||||
type: select
|
||||
label: Sort requested from site
|
||||
default: 4
|
||||
options:
|
||||
4: created
|
||||
7: seeders
|
||||
5: size
|
||||
1: title
|
||||
- name: type
|
||||
type: select
|
||||
label: Order requested from site
|
||||
default: desc
|
||||
options:
|
||||
desc: desc
|
||||
asc: asc
|
||||
|
||||
login:
|
||||
path: takelogin.php
|
||||
method: post
|
||||
inputs:
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
submitme: LOGIN
|
||||
error:
|
||||
- selector: h2:contains("failed")
|
||||
message:
|
||||
selector: td.colhead2
|
||||
test:
|
||||
path: index.php
|
||||
selector: a[href^="logout.php?hash_please="]
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: browse.php
|
||||
inputs:
|
||||
# note: site uses the catsX[]=nn method which cardigann does not support.
|
||||
search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ end }}{{ if .Query.Genre }}{{ .Query.Genre }}{{ else }}{{ end }}{{ if or .Query.IMDBID .Query.Genre }}{{ else }}{{ .Keywords }}{{ end }}"
|
||||
# title, descr, genre, all
|
||||
searchin: "{{ if .Query.IMDBID }}descr{{else}}{{end}}{{ if .Query.Genre }}genre{{ else }}{{ end }}{{ if or .Query.IMDBID .Query.Genre }}{{ else }}title{{ end }}"
|
||||
# 0 active, 1 incldead, 2 onlydead
|
||||
incldead: 1
|
||||
# 0 no, 1 yes
|
||||
only_free: "{{ if .Config.freeleech }}1{{else}}0{{end}}"
|
||||
sort: "{{ .Config.sort }}"
|
||||
type: "{{ .Config.type }}"
|
||||
|
||||
rows:
|
||||
selector: table.mainouter table > tbody > tr:has(a[href^="details.php?id="]), table.mainouter table > tbody > tr[id^="kdescr"]
|
||||
after: 1
|
||||
filters:
|
||||
- name: andmatch
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: a[href^="browse.php?cat="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: cat
|
||||
title:
|
||||
selector: a[href^="details.php?id="]
|
||||
details:
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href^="download.php?torrent="]
|
||||
attribute: href
|
||||
poster:
|
||||
selector: a[href^="details.php?id="][onmouseover]
|
||||
attribute: onmouseover
|
||||
filters:
|
||||
# onmouseover="Tip('<img class=\'pup\' src=\'https://image.tmdb.org/t/p/original/x96AdPlpl4MjUP2DeUhRJifhCMd.jpg\' width=
|
||||
- name: regexp
|
||||
args: src=\\'(.*?)\\'
|
||||
imdbid:
|
||||
selector: a[href*="imdb.com/title/tt"]
|
||||
attribute: href
|
||||
files:
|
||||
selector: td:nth-child(4)
|
||||
date_day:
|
||||
# Today<br/>10:20 AM
|
||||
# Yesterday<br/>08:03 PM
|
||||
selector: td:nth-child(6):contains("day")
|
||||
# auto adjusted by site account profile
|
||||
optional: true
|
||||
date_year:
|
||||
# Feb 14 2019<br/>10:20 AM
|
||||
selector: td:nth-child(6):not(:contains("day"))
|
||||
# auto adjusted by site account profile
|
||||
optional: true
|
||||
filters:
|
||||
- name: dateparse
|
||||
args: "MMM d yyyy hh:mm tt"
|
||||
date:
|
||||
text: "{{ if or .Result.date_day .Result.date_year }}{{ or .Result.date_day .Result.date_year }}{{ else }}now{{ end }}"
|
||||
size:
|
||||
selector: td:nth-child(7)
|
||||
grabs:
|
||||
selector: td:nth-child(8)
|
||||
seeders:
|
||||
selector: td:nth-child(9)
|
||||
leechers:
|
||||
selector: td:nth-child(10)
|
||||
genre:
|
||||
selector: td:nth-child(2)
|
||||
remove: a, font
|
||||
description:
|
||||
text: "{{ .Result.genre }}"
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
tr.freeleech_color: 0
|
||||
tr.highlight: 0
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
minimumratio:
|
||||
text: 1.0
|
||||
# U-232 v3
|
||||
202
src/Jackett.Common/Definitions/dark-shadow.yml
Normal file
202
src/Jackett.Common/Definitions/dark-shadow.yml
Normal file
@@ -0,0 +1,202 @@
|
||||
---
|
||||
id: dark-shadow
|
||||
name: Dark-Shadow
|
||||
description: "Dark-Shadow is a GERMAN Private site for TV / MOVIES / GENERAL"
|
||||
language: de-DE
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://projekt.dark-shadow.me/
|
||||
legacylinks:
|
||||
- https://dark-shadow.ml/
|
||||
- https://dark-shadow.me/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
# Movie
|
||||
- {id: 28, cat: Movies/SD, desc: "Filme SD"}
|
||||
- {id: 32, cat: Movies/HD, desc: "Filme HD"}
|
||||
- {id: 114, cat: Movies/UHD, desc: "Filme UHD"}
|
||||
- {id: 140, cat: Movies/BluRay, desc: "Filme BluRay"}
|
||||
- {id: 138, cat: Movies, desc: "Filme Pack`s"}
|
||||
# Serien
|
||||
- {id: 60, cat: TV/SD, desc: "Serien SD"}
|
||||
- {id: 57, cat: TV/HD, desc: "Serien HD"}
|
||||
- {id: 139, cat: TV/UHD, desc: "Serien UHD"}
|
||||
- {id: 59, cat: TV, desc: "Serien Pack`s"}
|
||||
# Audio
|
||||
- {id: 110, cat: Audio/MP3, desc: "Audio MP3"}
|
||||
- {id: 48, cat: Audio/Lossless, desc: "Audio Flac"}
|
||||
- {id: 52, cat: Audio, desc: "Audio Pack"}
|
||||
- {id: 63, cat: Audio/Audiobook, desc: "Audio Hörbuch"}
|
||||
- {id: 120, cat: Audio/Video, desc: "Audio Videos"}
|
||||
# Apps
|
||||
- {id: 12, cat: PC/0day, desc: "Apps Windows"}
|
||||
- {id: 125, cat: PC/Mac, desc: "Apps Mac-OSX"}
|
||||
- {id: 11, cat: PC/Mobile-Other, desc: "Apps Mobil"}
|
||||
- {id: 141, cat: PC/ISO, desc: "Apps Other"}
|
||||
# Doku
|
||||
- {id: 15, cat: TV/Documentary, desc: "Doku SD"}
|
||||
- {id: 14, cat: TV/Documentary, desc: "Doku HD"}
|
||||
- {id: 123, cat: TV/Documentary, desc: "Doku Reihe"}
|
||||
# Spiel
|
||||
- {id: 126, cat: Console/Other, desc: "Spiel Mobil"}
|
||||
- {id: 17, cat: PC/Games, desc: "Spiel PC"}
|
||||
- {id: 24, cat: Console, desc: "Spiel Konsole"}
|
||||
- {id: 121, cat: Console, desc: "Spiel Wimmelbild"}
|
||||
# Sport
|
||||
- {id: 61, cat: TV/Sport, desc: "Sport HD"}
|
||||
- {id: 62, cat: TV/Sport, desc: "Sport SD"}
|
||||
# ePaper
|
||||
- {id: 96, cat: Books/Mags, desc: "ePaper Zeitungen"}
|
||||
- {id: 136, cat: Books/EBook, desc: "ePaper E-Book"}
|
||||
- {id: 137, cat: Books/Comics, desc: "ePaper Comics"}
|
||||
# XXX
|
||||
- {id: 76, cat: XXX/XviD, desc: "XXX SD"}
|
||||
- {id: 73, cat: XXX/x264, desc: "XXX HD"}
|
||||
- {id: 75, cat: XXX/Pack, desc: "XXX Pack"}
|
||||
- {id: 142, cat: XXX/ImageSet, desc: "XXX Pic´s"}
|
||||
# Internal
|
||||
- {id: 129, cat: Movies/SD, desc: "Internal Film SD"}
|
||||
- {id: 128, cat: Movies/HD, desc: "Internal Film HD"}
|
||||
- {id: 131, cat: TV/SD, desc: "Internal Serie SD"}
|
||||
- {id: 130, cat: TV/HD, desc: "Internal Serien HD"}
|
||||
- {id: 132, cat: Other, desc: "Internal Sonstiges"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
music-search: [q]
|
||||
book-search: [q]
|
||||
|
||||
settings:
|
||||
- name: username
|
||||
type: text
|
||||
label: Username
|
||||
- name: password
|
||||
type: password
|
||||
label: Password
|
||||
- name: freeleech
|
||||
type: checkbox
|
||||
label: Filter freeleech only
|
||||
default: false
|
||||
- name: sort
|
||||
type: select
|
||||
label: Sort requested from site
|
||||
default: added
|
||||
options:
|
||||
added: created
|
||||
seeds: seeders
|
||||
size: size
|
||||
name: title
|
||||
- name: type
|
||||
type: select
|
||||
label: Order requested from site
|
||||
default: desc
|
||||
options:
|
||||
desc: desc
|
||||
asc: asc
|
||||
|
||||
login:
|
||||
path: login.php
|
||||
method: form
|
||||
form: form[action="/login.php"]
|
||||
cookies: ["JAVA=OK"] # avoid jscheck redirect
|
||||
inputs:
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
error:
|
||||
- selector: div#login_error
|
||||
test:
|
||||
path: selection.php
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: selection.php
|
||||
inputs:
|
||||
$raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
|
||||
search: "{{ .Keywords }}"
|
||||
# 0 name, 1 descr, 2 both
|
||||
blah: 0
|
||||
orderby: "{{ .Config.sort }}"
|
||||
sort: "{{ .Config.type }}"
|
||||
keywordsfilters:
|
||||
# prefix and postfix percent wildcard as well as replacing spaces between words
|
||||
- name: re_replace
|
||||
args: ["\\W+", "%"]
|
||||
- name: re_replace
|
||||
args: ["^(.+)$", "%$1%"]
|
||||
|
||||
rows:
|
||||
selector: "div.selection_wrap{{ if .Config.freeleech }}:root:has(div.onlyup){{ else }}{{ end }}"
|
||||
|
||||
fields:
|
||||
category_p1:
|
||||
selector: div.kat_cat_pic_name
|
||||
category_p2:
|
||||
selector: div.kat_cat_pic_name_b
|
||||
categorydesc:
|
||||
text: "{{ .Result.category_p1 }} {{ .Result.category_p2 }}"
|
||||
title:
|
||||
selector: a.selection_a
|
||||
filters:
|
||||
# remove [REQ] and anything else in [] that prefixes titles
|
||||
- name: re_replace
|
||||
args: ["^(\\[.*\\])(.*)", "$2"]
|
||||
details:
|
||||
selector: a.selection_a
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href^="download_ssl.php?torrent="]
|
||||
attribute: href
|
||||
poster:
|
||||
selector: div[id^="details"] img
|
||||
attribute: src
|
||||
size:
|
||||
selector: div.selection_unter_ad
|
||||
grabs:
|
||||
selector: div.selection_unter_ae
|
||||
date_day:
|
||||
# Heute 13:30:04
|
||||
# Gestern 09:10:10
|
||||
selector: div.selection_unter_ab:not(:contains("."))
|
||||
optional: true
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["Heute", "Today"]
|
||||
- name: replace
|
||||
args: ["Gestern", "Yesterday"]
|
||||
- name: append
|
||||
args: " +01:00" # CET
|
||||
date_year:
|
||||
# 30.02.2018 um 23:12:50
|
||||
selector: div.selection_unter_ab:contains(".")
|
||||
optional: true
|
||||
filters:
|
||||
- name: replace
|
||||
args: [" um", ""]
|
||||
- name: append
|
||||
args: " +01:00" # CET
|
||||
- name: dateparse
|
||||
args: "dd.MM.yyyy HH:mm:ss zzz"
|
||||
date:
|
||||
text: "{{ if or .Result.date_year .Result.date_day }}{{ or .Result.date_year .Result.date_day }}{{ else }}now{{ end }}"
|
||||
description:
|
||||
selector: selection_unter_af
|
||||
seeders:
|
||||
selector: div.selection_unter_aa
|
||||
leechers:
|
||||
selector: div.selection_unter_aaa
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
":root:has(div.onlyup)": 0
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
minimumratio:
|
||||
text: 1.0
|
||||
minimumseedtime:
|
||||
# 36 hours (as seconds = 36 x 60 x 60)
|
||||
text: 129600
|
||||
# 3xT
|
||||
@@ -92,6 +92,7 @@ caps:
|
||||
- {id: 117, cat: Audio, desc: "Compact Disc Club"}
|
||||
- {id: 20, cat: Audio/Video, desc: "Music Videos"}
|
||||
- {id: 118, cat: Audio, desc: "Dream Radio Music"}
|
||||
- {id: 124, cat: Movies, desc: "VIP Movies"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
|
||||
@@ -6,7 +6,9 @@ language: el-GR
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- http://fantastiko.space/ # https is not supported
|
||||
- https://fantastiko.space/
|
||||
legacylinks:
|
||||
- http://fantastiko.space/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
|
||||
@@ -20,14 +20,13 @@ caps:
|
||||
- {id: 601, cat: TV/Anime, desc: " |- Мультсериалы DVD Master's"}
|
||||
# Кино, видео, мультипликация и ТВ
|
||||
# Film, video, animation and TV
|
||||
- {id: 995, cat: Movies, desc: " |- Экранки с рекламой (фильмы, мультфильмы)"}
|
||||
- {id: 994, cat: Movies, desc: " |- Новинки с рекламой (фильмы, мультфильмы)"}
|
||||
- {id: 385, cat: Movies, desc: " |- Экранки (фильмы , мультфильмы)"}
|
||||
- {id: 987, cat: Movies, desc: " |- Зарубежное кино"}
|
||||
- {id: 988, cat: Movies, desc: " |- Кино России и СНГ"}
|
||||
- {id: 337, cat: Movies, desc: " |- Мультфильмы"}
|
||||
- {id: 72, cat: Movies, desc: " |- DVD, HD Видео (фильмы , мультфильмы)"}
|
||||
- {id: 1001, cat: Movies, desc: " |- UHD Видео (фильмы , мультфильмы)"}
|
||||
- {id: 1002, cat: Movies, desc: " |- Зарубежные фильмы , мультфильмы [HD/UHD]"}
|
||||
- {id: 987, cat: Movies, desc: " |- Зарубежные фильмы , мультфильмы [SD]"}
|
||||
- {id: 1003, cat: Movies, desc: " |- Отечественные фильмы , мультфильмы [HD/UHD]"}
|
||||
- {id: 988, cat: Movies, desc: " |- Отечественные фильмы , мультфильмы [SD]"}
|
||||
- {id: 337, cat: Movies, desc: " |- Зарубежные фильмы , мультфильмы на других языках [SD/HD/UHD]"}
|
||||
- {id: 994, cat: Movies, desc: " |- Новинки с рекламой (фильмы, мультфильмы) [SD/HD/UHD]"}
|
||||
- {id: 385, cat: Movies, desc: " |- Экранки (фильмы , мультфильмы) [SD/HD/UHD]"}
|
||||
- {id: 999, cat: Movies, desc: " |- Фильмы (2021-2022)"}
|
||||
- {id: 996, cat: Movies, desc: " |- Фильмы (2019-2020)"}
|
||||
- {id: 921, cat: Movies, desc: " |- Фильмы (2016-2018)"}
|
||||
@@ -51,7 +50,6 @@ caps:
|
||||
- {id: 62, cat: Movies, desc: " |- Кино для детей"}
|
||||
- {id: 962, cat: Movies, desc: " |- Антология отечественного кино"}
|
||||
- {id: 990, cat: Movies, desc: " |- Зарубежные фильмы , мультфильмы и сериалы на языках ближнего.."}
|
||||
- {id: 993, cat: Movies, desc: " |- Фильмы , мультфильмы и сериалы ближнего зарубежья и СНГ в ор.."}
|
||||
- {id: 991, cat: Movies, desc: " |- Зарубежные фильмы , мультфильмы и сериалы в оригинале"}
|
||||
- {id: 74, cat: Movies, desc: " |- Зарубежные мультфильмы"}
|
||||
- {id: 73, cat: Movies, desc: " |- Отечественные мультфильмы"}
|
||||
|
||||
@@ -96,8 +96,8 @@ search:
|
||||
inputs:
|
||||
$raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
|
||||
search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}{{ if .Query.Genre }} genre:{{ .Query.Genre }}{{ else }}{{ end }}"
|
||||
# 0 title, 1 nfo, 2 filelist, 3 title+nfo
|
||||
blah: "{{ if or .Query.IMDBID .Query.Genre }}3{{ else }}0{{ end }}"
|
||||
# 0 title, 1 nfo, 2 filelist, 3 title+nfo, 4 imdb
|
||||
blah: "{{ if .Query.IMDBID }}4{{ else }}{{ end }}{{ if .Query.Genre }}3{{ else }}{{ end }}{{ if or .Query.IMDBID .Query.Genre }}{{ else }}0{{ end }}"
|
||||
# 0 active only, 1 dead only
|
||||
incldead: 0
|
||||
sort: "{{ .Config.sort }}"
|
||||
|
||||
@@ -9,6 +9,7 @@ followredirect: true
|
||||
# to fetch current domain use https://www.protege-liens.com/Gktorrent
|
||||
links:
|
||||
- https://www.gktorrents.cc/
|
||||
- https://gktorrent.nocensor.click/
|
||||
legacylinks:
|
||||
- https://www.gktorrent.org/
|
||||
- https://www.gktorrent.me/
|
||||
|
||||
@@ -175,4 +175,4 @@ search:
|
||||
description:
|
||||
selector: td:nth-child(2)
|
||||
remove: a, b, font, img, span
|
||||
# NexusPHP v1.8.0 2023-04-16
|
||||
# NexusPHP v1.8.2 2023-05-08
|
||||
|
||||
@@ -122,7 +122,7 @@ search:
|
||||
by: "{{ .Config.type }}"
|
||||
|
||||
rows:
|
||||
selector: td#mcol table.lista > tbody > tr:has(a[href*=bookmark])
|
||||
selector: td#mcol table.lista > tbody > tr:has(a[href^="magnet:?xt="])
|
||||
|
||||
fields:
|
||||
category:
|
||||
@@ -132,13 +132,16 @@ search:
|
||||
- name: querystring
|
||||
args: category
|
||||
title:
|
||||
selector: td:nth-child(2) > a
|
||||
selector: a[href^="index.php?page=torrent-details"]
|
||||
details:
|
||||
selector: a[href^="index.php?page=torrent-details"]
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href^="download.php"]
|
||||
attribute: href
|
||||
magnet:
|
||||
selector: a[href^="magnet:?xt="]
|
||||
attribute: href
|
||||
poster:
|
||||
selector: a[href^="index.php?page=torrent-details"]
|
||||
attribute: onmouseover
|
||||
@@ -146,17 +149,19 @@ search:
|
||||
- name: regexp
|
||||
args: "src=(.+?) "
|
||||
date:
|
||||
selector: td:nth-child(6)
|
||||
selector: td:nth-child(7)
|
||||
# auto adjusted by site account profile
|
||||
filters:
|
||||
- name: dateparse
|
||||
args: "dd/MM/yyyy"
|
||||
size:
|
||||
selector: td:nth-child(11)
|
||||
selector: td:nth-child(12)
|
||||
seeders:
|
||||
selector: td:nth-child(8)
|
||||
leechers:
|
||||
selector: td:nth-child(9)
|
||||
leechers:
|
||||
selector: td:nth-child(10)
|
||||
grabs:
|
||||
selector: td:nth-child(11)
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
img[src$="freeleech.gif"]: 0
|
||||
|
||||
@@ -19,6 +19,7 @@ caps:
|
||||
- {id: 407, cat: TV/Sport, desc: "Sports/体育"}
|
||||
- {id: 409, cat: Other, desc: "Misc/其他"}
|
||||
- {id: 408, cat: Audio, desc: "Music/音乐"}
|
||||
- {id: 410, cat: PC, desc: "Softs/软件"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
|
||||
@@ -60,6 +60,8 @@ login:
|
||||
api_token: "{{ .Config.apikey }}"
|
||||
error:
|
||||
- selector: a[href*="/login"]
|
||||
message:
|
||||
text: "The API key was not accepted by {{ .Config.sitelink }}."
|
||||
|
||||
search:
|
||||
paths:
|
||||
@@ -70,9 +72,12 @@ search:
|
||||
type: json
|
||||
|
||||
inputs:
|
||||
# if we have an id based search, add Season and Episode as query in name for UNIT3D < v6. Else pass S/E Params for UNIT3D >= v6
|
||||
api_token: "{{ .Config.apikey }}"
|
||||
$raw: "{{ range .Categories }}&categories[]={{.}}{{end}}"
|
||||
name: "{{ .Keywords }}"
|
||||
seasonNumber: "{{ .Query.Season }}"
|
||||
episodeNumber: "{{ .Query.Ep }}"
|
||||
imdbId: "{{ .Query.IMDBIDShort }}"
|
||||
tmdbId: "{{ .Query.TMDBID }}"
|
||||
tvdbId: "{{ .Query.TVDBID }}"
|
||||
@@ -182,11 +187,15 @@ search:
|
||||
size:
|
||||
selector: size
|
||||
downloadvolumefactor:
|
||||
# api returns 0=false, 1=true
|
||||
# api returns 0%, 25%, 50%, 75%, 100%
|
||||
selector: freeleech
|
||||
case:
|
||||
0: 1 # not free
|
||||
1: 0 # freeleech
|
||||
0%: 1 # not free
|
||||
25%: 0.75
|
||||
50%: 0.5
|
||||
75%: 0.25
|
||||
100%: 0 # freeleech
|
||||
"*": 0 # catch errors
|
||||
uploadvolumefactor:
|
||||
# api returns 0=false, 1=true
|
||||
selector: double_upload
|
||||
@@ -196,4 +205,4 @@ search:
|
||||
minimumseedtime:
|
||||
# 4 days (as seconds = 4 x 24 x 60 x 60)
|
||||
text: 345600
|
||||
# json UNIT3D ???
|
||||
# json UNIT3D 6.0.4
|
||||
|
||||
@@ -98,8 +98,8 @@ search:
|
||||
incldead: 0
|
||||
# 0 all, 1 normal, 2 free, 3 2x, 4 2xfree, 5 50%, 6 2x50%, 7 30%
|
||||
spstate: "{{ if .Config.freeleech }}2{{ else }}0{{ end }}"
|
||||
# 0 title, 1 descr, 3 uploader, 4 imdburl (not working)
|
||||
search_area: "{{ if or .Query.IMDBID .Query.DoubanID }}1{{ else }}0{{ end }}"
|
||||
# 0 title, 1 descr, 3 uploader, 4 imdburl
|
||||
search_area: "{{ if .Query.IMDBID }}4{{ else }}{{ end }}{{ if .Query.DoubanID }}1{{ else }}{{ end }}{{ if or .Query.IMDBID .Query.DoubanID }}{{ else }}0{{ end }}"
|
||||
# 0 AND, 1 OR, 2 exact
|
||||
search_mode: 0
|
||||
sort: "{{ .Config.sort }}"
|
||||
@@ -188,4 +188,4 @@ search:
|
||||
description:
|
||||
selector: td.rowfollow:nth-child(2)
|
||||
remove: a, b, font, img, span
|
||||
# NexusPHP v1.7.33 2023-01-04
|
||||
# NexusPHP v1.7.37 2023-05-08
|
||||
|
||||
@@ -1,193 +0,0 @@
|
||||
---
|
||||
id: hellashut
|
||||
name: HellasHut
|
||||
description: "HellasHut is a GREEK Private Torrent Tracker for MOVIES / TV / GENERAL"
|
||||
language: el-GR
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
testlinktorrent: false
|
||||
links:
|
||||
- https://hellashut.de/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 28, cat: TV/Anime, desc: "Anime/Cartoon HD"}
|
||||
- {id: 47, cat: TV/Anime, desc: "Anime/Cartoon HDTV"}
|
||||
- {id: 48, cat: TV/Anime, desc: "Anime/Cartoon SD"}
|
||||
- {id: 50, cat: TV/Anime, desc: "Anime/Cartoon SD Emb"}
|
||||
- {id: 51, cat: TV/Anime, desc: "Anime/Cartoon TV"}
|
||||
- {id: 77, cat: PC, desc: "Applications DOS"}
|
||||
- {id: 20, cat: PC, desc: "Applications Linux"}
|
||||
- {id: 19, cat: PC/Mac, desc: "Applications MAC"}
|
||||
- {id: 68, cat: PC, desc: "Applications OS2 WARP"}
|
||||
- {id: 21, cat: PC, desc: "Applications Other"}
|
||||
- {id: 18, cat: PC/0day, desc: "Applications Windows"}
|
||||
- {id: 52, cat: Books, desc: "Books/Magazines All"}
|
||||
- {id: 9, cat: TV/Documentary, desc: "Documentaries All"}
|
||||
- {id: 53, cat: TV/Documentary, desc: "Documentaries Greek"}
|
||||
- {id: 54, cat: TV/Documentary, desc: "Documentaries HD"}
|
||||
- {id: 55, cat: Movies/DVD, desc: "DVD-R All"}
|
||||
- {id: 17, cat: Console/Other, desc: "Games Other"}
|
||||
- {id: 11, cat: Console/PS4, desc: "Games PSX"}
|
||||
- {id: 10, cat: PC/Games, desc: "Games Windows"}
|
||||
- {id: 13, cat: Console/XBox, desc: "Games Xbox"}
|
||||
- {id: 56, cat: Other, desc: "Miscellaneous All"}
|
||||
- {id: 57, cat: PC/Mobile-Other, desc: "Mobile All"}
|
||||
- {id: 1, cat: Movies/3D, desc: "Movies 3D"}
|
||||
- {id: 2, cat: Movies/UHD, desc: "Movies 4K"}
|
||||
- {id: 42, cat: Movies/BluRay, desc: "Movies BluRay"}
|
||||
- {id: 58, cat: Movies/DVD, desc: "Movies DVD"}
|
||||
- {id: 4, cat: Movies/HD, desc: "Movies HD"}
|
||||
- {id: 69, cat: Movies/HD, desc: "Movies HD Packs"}
|
||||
- {id: 3, cat: Movies/SD, desc: "Movies SD"}
|
||||
- {id: 67, cat: Movies/SD, desc: "Movies SD Packs"}
|
||||
- {id: 71, cat: Audio, desc: "Music CDA"}
|
||||
- {id: 59, cat: Audio, desc: "Music Discographies"}
|
||||
- {id: 23, cat: Audio/Lossless, desc: "Music FLAC"}
|
||||
- {id: 22, cat: Audio/MP3, desc: "Music MP3"}
|
||||
- {id: 25, cat: Audio/Video, desc: "Music Video"}
|
||||
- {id: 75, cat: Movies/HD, desc: "NO IN SUBS Movies HD"}
|
||||
- {id: 76, cat: Movies/UHD, desc: "NO SUBS IN Movies 4K"}
|
||||
- {id: 35, cat: TV/Sport, desc: "Sports HD"}
|
||||
- {id: 34, cat: TV/Sport, desc: "Sports SD"}
|
||||
- {id: 5, cat: TV, desc: "TV Greek Movies"}
|
||||
- {id: 6, cat: TV, desc: "TV Greek Series"}
|
||||
- {id: 7, cat: TV, desc: "TV Greek Series Packs"}
|
||||
- {id: 60, cat: TV, desc: "TV Greek Shows"}
|
||||
- {id: 41, cat: TV/HD, desc: "TV HD"}
|
||||
- {id: 61, cat: TV, desc: "TV Series"}
|
||||
- {id: 62, cat: TV, desc: "TV Series Emb"}
|
||||
- {id: 63, cat: TV, desc: "TV Series Emb Packs"}
|
||||
- {id: 64, cat: TV/HD, desc: "TV Series HD"}
|
||||
- {id: 65, cat: TV/HD, desc: "TV Series HD Packs"}
|
||||
- {id: 66, cat: TV, desc: "TV Series Packs"}
|
||||
- {id: 73, cat: Movies/BluRay, desc: "UNTOUCHED BluRay"}
|
||||
- {id: 72, cat: Movies/DVD, desc: "UNTOUCHED DVD"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep, imdbid]
|
||||
movie-search: [q, imdbid]
|
||||
music-search: [q]
|
||||
book-search: [q]
|
||||
|
||||
settings:
|
||||
- name: username
|
||||
type: text
|
||||
label: Username
|
||||
- name: password
|
||||
type: password
|
||||
label: Password
|
||||
- name: freeleech
|
||||
type: checkbox
|
||||
label: Search freeleech only
|
||||
default: false
|
||||
- name: sort
|
||||
type: select
|
||||
label: Sort requested from site
|
||||
default: id
|
||||
options:
|
||||
id: created
|
||||
seeders: seeders
|
||||
size: size
|
||||
name: title
|
||||
- name: type
|
||||
type: select
|
||||
label: Order requested from site
|
||||
default: desc
|
||||
options:
|
||||
desc: desc
|
||||
asc: asc
|
||||
|
||||
login:
|
||||
path: account-login.php
|
||||
method: post
|
||||
inputs:
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
returnto: /
|
||||
error:
|
||||
- selector: td.embedded:contains("Access Denied")
|
||||
test:
|
||||
path: /
|
||||
selector: a[href="account-logout.php"]
|
||||
|
||||
download:
|
||||
selectors:
|
||||
- selector: a[href^="download.php?id="], a[href^="magnet:?xt="]
|
||||
attribute: href
|
||||
|
||||
search:
|
||||
paths:
|
||||
# https://hellashut.de/torrents-search.php?c52=1&search=&cat=0&incldead=1&advanced=1&lang=0&blah=0&freeleech=0&sort=id&order=desc
|
||||
- path: torrents-search.php
|
||||
inputs:
|
||||
$raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
|
||||
search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}"
|
||||
# 0 active, 1 incldead, 2 onlydead
|
||||
incldead: 1
|
||||
# 0 all, 1 notfree, 2 onlyfree
|
||||
freeleech: "{{ if .Config.freeleech }}2{{ else }}0{{ end }}"
|
||||
# 0 all, 1 English, 2 French, 3 German, 4 Italian, 5 Japanese, 6 Spanish, 7 Russian, 8 Greek
|
||||
lang: 0
|
||||
# 0 name, 1 descr, 2 uploader
|
||||
blah: "{{ if .Query.IMDBID }}1{{ else }}0{{ end }}"
|
||||
# 0 all
|
||||
team: 0
|
||||
sort: "{{ .Config.sort }}"
|
||||
order: "{{ .Config.type }}"
|
||||
# does not return imdb link in results
|
||||
|
||||
rows:
|
||||
selector: table.ttable_headinner tr.t-row
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: a[href*="cat="]
|
||||
attribute: href
|
||||
optional: true
|
||||
default: 56
|
||||
filters:
|
||||
- name: querystring
|
||||
args: cat
|
||||
title:
|
||||
selector: a[href^="torrents-details.php?id="]
|
||||
attribute: title
|
||||
details:
|
||||
selector: a[href^="torrents-details.php?id="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["&hit=1", ""] # avoid redirect
|
||||
download:
|
||||
selector: a[href^="torrents-details.php?id="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["&hit=1", ""] # avoid redirect
|
||||
size:
|
||||
selector: td:nth-last-child(7)
|
||||
date:
|
||||
selector: td:nth-last-child(6)
|
||||
# auto adjusted by site account profile
|
||||
filters:
|
||||
- name: dateparse
|
||||
args: "dd-MM-yyyy HH:mm:ss"
|
||||
grabs:
|
||||
selector: td:nth-last-child(5)
|
||||
seeders:
|
||||
selector: td:nth-last-child(4)
|
||||
leechers:
|
||||
selector: td:nth-last-child(3)
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
img[src="pic/freedownload.gif"]: 0
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
minimumratio:
|
||||
text: 1.0
|
||||
minimumseedtime:
|
||||
# 10 day (as seconds = 10 x 24 x 60 x 60)
|
||||
text: 864000
|
||||
# TorrentTrader v2-svn
|
||||
@@ -189,4 +189,4 @@ search:
|
||||
description:
|
||||
selector: td.rowfollow:nth-child(2)
|
||||
remove: a, b, font, img, span
|
||||
# NexusPHP v1.8.1 2023-04-21
|
||||
# NexusPHP v1.8.2 2023-05-08
|
||||
|
||||
158
src/Jackett.Common/Definitions/infire.yml
Normal file
158
src/Jackett.Common/Definitions/infire.yml
Normal file
@@ -0,0 +1,158 @@
|
||||
---
|
||||
id: infire
|
||||
name: Infire
|
||||
description: "Infire is a SLOVENIAN Private Torrent Tracker for MOVIES / TV / GENERAL"
|
||||
language: sl-SI
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://infire.si/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 15, cat: Movies/HD, desc: "HD 720p"}
|
||||
- {id: 16, cat: Movies/HD, desc: "HD 1080p"}
|
||||
- {id: 17, cat: Movies/DVD, desc: "DVD"}
|
||||
- {id: 18, cat: TV/Documentary, desc: "Dokumentarci"}
|
||||
- {id: 19, cat: Movies/DVD, desc: "DVD/R5"}
|
||||
- {id: 20, cat: Movies/WEB-DL, desc: "WEB/Rip"}
|
||||
- {id: 21, cat: Movies/WEB-DL, desc: "WEB/Download"}
|
||||
- {id: 14, cat: Movies/SD, desc: "XviD"}
|
||||
- {id: 32, cat: XXX, desc: "XXX"}
|
||||
- {id: 50, cat: Movies/BluRay, desc: "BluRay 1080p"}
|
||||
- {id: 49, cat: Movies/UHD, desc: "HD 2160p"}
|
||||
- {id: 23, cat: TV, desc: "TV"}
|
||||
- {id: 24, cat: TV/HD, desc: "HD TV"}
|
||||
- {id: 26, cat: TV/Anime, desc: "Animirano"}
|
||||
- {id: 28, cat: PC/Games, desc: "PC"}
|
||||
- {id: 29, cat: PC/ISO, desc: "PC ISO"}
|
||||
- {id: 30, cat: Console/Other, desc: "GBA"}
|
||||
- {id: 31, cat: Console/PS3, desc: "PS2"}
|
||||
- {id: 33, cat: Audio, desc: "Glasba"}
|
||||
- {id: 34, cat: Console/PS3, desc: "PS3"}
|
||||
- {id: 35, cat: Console/XBox, desc: "Xbox"}
|
||||
- {id: 36, cat: Console/PSP, desc: "PSP"}
|
||||
- {id: 37, cat: TV/Sport, desc: "Sport"}
|
||||
- {id: 38, cat: PC, desc: "Programi"}
|
||||
- {id: 39, cat: Books/EBook, desc: "eKnjige"}
|
||||
- {id: 40, cat: Other, desc: "Slike"}
|
||||
- {id: 41, cat: Audio/Audiobook, desc: "AudioBook"}
|
||||
- {id: 42, cat: Audio/Video, desc: "Music DVD"}
|
||||
- {id: 43, cat: TV/Other, desc: "Videospoti"}
|
||||
- {id: 44, cat: PC/Mobile-Android, desc: "Android"}
|
||||
- {id: 45, cat: PC/Mobile-iOS, desc: "iOS"}
|
||||
- {id: 46, cat: PC/Mac, desc: "Mac"}
|
||||
- {id: 47, cat: PC, desc: "Linux"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
music-search: [q]
|
||||
book-search: [q]
|
||||
|
||||
settings:
|
||||
- name: username
|
||||
type: text
|
||||
label: Username
|
||||
- name: password
|
||||
type: password
|
||||
label: Password
|
||||
- name: freeleech
|
||||
type: checkbox
|
||||
label: Search freeleech only
|
||||
default: false
|
||||
- name: sort
|
||||
type: select
|
||||
label: Sort requested from site
|
||||
default: data
|
||||
options:
|
||||
data: created
|
||||
seeds: seeders
|
||||
size: size
|
||||
filename: title
|
||||
- name: type
|
||||
type: select
|
||||
label: Order requested from site
|
||||
default: DESC
|
||||
options:
|
||||
DESC: desc
|
||||
ASC: asc
|
||||
|
||||
login:
|
||||
method: post
|
||||
path: login.php
|
||||
inputs:
|
||||
uid: "{{ .Config.username }}"
|
||||
pwd: "{{ .Config.password }}"
|
||||
error:
|
||||
- selector: font[color="#FF0000"]
|
||||
test:
|
||||
path: index.php
|
||||
selector: a[href^="logout.php"]
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: torrents.php
|
||||
inputs:
|
||||
# does not support multi categories, defaulting to all.
|
||||
search: "{{ .Keywords }}"
|
||||
# 0 all, 1 active, 2 dead
|
||||
active: 0
|
||||
# 0 all, 1 classic, 2 silver, 3 gold, 4 gold & silver
|
||||
gold: "{{ if .Config.freeleech }}3{{ else }}0{{ end }}"
|
||||
order: "{{ .Config.sort }}"
|
||||
by: "{{ .Config.type }}"
|
||||
|
||||
rows:
|
||||
selector: table.lista > tbody > tr.a
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: a[href^="torrents.php?category="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: category
|
||||
title:
|
||||
selector: a[href^="details.php?id="]
|
||||
details:
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href^="download.php?id="]
|
||||
attribute: href
|
||||
poster:
|
||||
selector: img
|
||||
attribute: src
|
||||
size:
|
||||
selector: td:nth-child(7)
|
||||
date:
|
||||
selector: td:nth-child(6)
|
||||
# auto adjusted by site account profile
|
||||
filters:
|
||||
- name: dateparse
|
||||
args: "dd/MM/yyyy HH:mm:ss"
|
||||
seeders:
|
||||
selector: td:nth-child(9)
|
||||
leechers:
|
||||
selector: td:nth-child(10)
|
||||
grabs:
|
||||
selector: td:nth-child(11)
|
||||
genre:
|
||||
selector: td:nth-child(2) span
|
||||
description:
|
||||
text: "{{ .Result.genre }}"
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
img[src="images/gold.png"]: 0
|
||||
img[src="images/silver.png"]: 0.5
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
minimumratio:
|
||||
text: 1.0
|
||||
minimumseedtime:
|
||||
# 30 hours (as seconds = 30 x 60 x 60)
|
||||
text: 108000
|
||||
# BtiTracker 1.5.8
|
||||
180
src/Jackett.Common/Definitions/itatorrents.yml
Normal file
180
src/Jackett.Common/Definitions/itatorrents.yml
Normal file
@@ -0,0 +1,180 @@
|
||||
---
|
||||
id: itatorrents
|
||||
name: ItaTorrents
|
||||
description: "ItaTorrents is an ITALIAN Private tracker for MOVIES / TV / GENERAL"
|
||||
language: it-IT
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://itatorrents.xyz/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 1, cat: Movies, desc: "Film"}
|
||||
- {id: 2, cat: TV, desc: "Serie TV"}
|
||||
- {id: 3, cat: Audio, desc: "Musica"}
|
||||
- {id: 4, cat: Console, desc: "Giochi"}
|
||||
- {id: 5, cat: PC, desc: "Applicazioni"}
|
||||
- {id: 6, cat: Books/Mags, desc: "Edicola"}
|
||||
- {id: 7, cat: Books/EBook, desc: "E-Book"}
|
||||
- {id: 8, cat: Audio/Audiobook, desc: "AudioLibri"}
|
||||
- {id: 12, cat: Other, desc: "Corsi"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep, imdbid, tvdbid, tmdbid]
|
||||
movie-search: [q, imdbid, tmdbid]
|
||||
music-search: [q]
|
||||
book-search: [q]
|
||||
|
||||
settings:
|
||||
- name: apikey
|
||||
type: text
|
||||
label: APIKey
|
||||
- name: info_key
|
||||
type: info
|
||||
label: About your API key
|
||||
default: "Find or Generate a new API Token by accessing your <a href=\"https://itatorrents.xyz/\" target=\"_blank\">ItaTorrents</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
|
||||
|
||||
login:
|
||||
path: /api/torrents
|
||||
method: get
|
||||
inputs:
|
||||
api_token: "{{ .Config.apikey }}"
|
||||
error:
|
||||
- selector: a[href*="/login"]
|
||||
message:
|
||||
text: "The API key was not accepted by {{ .Config.sitelink }}."
|
||||
|
||||
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"
|
||||
response:
|
||||
type: json
|
||||
|
||||
inputs:
|
||||
# if we have an id based search, add Season and Episode as query in name for UNIT3D < v6. Else pass S/E Params for UNIT3D >= v6
|
||||
api_token: "{{ .Config.apikey }}"
|
||||
$raw: "{{ range .Categories }}&categories[]={{.}}{{end}}"
|
||||
name: "{{ .Keywords }}"
|
||||
seasonNumber: "{{ .Query.Season }}"
|
||||
episodeNumber: "{{ .Query.Ep }}"
|
||||
imdbId: "{{ .Query.IMDBIDShort }}"
|
||||
tmdbId: "{{ .Query.TMDBID }}"
|
||||
tvdbId: "{{ .Query.TVDBID }}"
|
||||
"free[]": "{{ if .Config.freeleech }}100{{ else }}{{ end }}"
|
||||
sortField: "{{ .Config.sort }}"
|
||||
sortDirection: "{{ .Config.type }}"
|
||||
perPage: 100
|
||||
page: 1
|
||||
|
||||
keywordsfilters:
|
||||
- name: re_replace
|
||||
args: ["\\.", " "]
|
||||
- name: re_replace # S01 to Stagione 1
|
||||
args: ["(?i)\\bS0*(\\d+)\\b", "Stagione $1"]
|
||||
|
||||
rows:
|
||||
selector: data
|
||||
attribute: attributes
|
||||
count:
|
||||
selector: meta.total
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: category_id
|
||||
title:
|
||||
selector: name
|
||||
filters:
|
||||
- name: re_replace
|
||||
args: ["\\.", " "]
|
||||
- name: re_replace # Stagione X --> S0X
|
||||
args: ["(?i)\\bStagion[ei]\\s?(\\d{1})\\b|\\bSeason'?s?\\s?(\\d{1})\\b", "S0$1$2"]
|
||||
- name: re_replace # Stagione XX --> SXX
|
||||
args: ["(?i)\\bStagion[ei]\\s?(\\d{2,})\\b|\\bSeason'?s?\\s?(\\d{2,})\\b", "S$1$2"]
|
||||
details:
|
||||
selector: details_link
|
||||
download:
|
||||
selector: download_link
|
||||
infohash:
|
||||
selector: info_hash
|
||||
poster:
|
||||
selector: meta.poster
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["https://via.placeholder.com/90x135", ""]
|
||||
imdbid:
|
||||
selector: imdb_id
|
||||
tmdbid:
|
||||
selector: tmdb_id
|
||||
tvdbid:
|
||||
selector: tvdb_id
|
||||
genre:
|
||||
selector: meta.genres
|
||||
filters:
|
||||
- name: re_replace
|
||||
args: ["(?i)(televisione film)", "televisione_film"]
|
||||
- name: replace
|
||||
args: [" & ", "_&_"]
|
||||
description:
|
||||
text: "{{ .Result.genre }}"
|
||||
files:
|
||||
selector: num_file
|
||||
seeders:
|
||||
selector: seeders
|
||||
leechers:
|
||||
selector: leechers
|
||||
grabs:
|
||||
selector: times_completed
|
||||
date:
|
||||
# "created_at": "2021-10-18T00:34:50.000000Z" is returned by Newtonsoft.Json.Linq as 18/10/2021 00:34:50
|
||||
selector: created_at
|
||||
filters:
|
||||
- name: append
|
||||
args: " +00:00" # GMT
|
||||
- name: dateparse
|
||||
args: "MM/dd/yyyy HH:mm:ss zzz"
|
||||
size:
|
||||
selector: size
|
||||
downloadvolumefactor:
|
||||
# api returns 0%, 25%, 50%, 75%, 100%
|
||||
selector: freeleech
|
||||
case:
|
||||
0%: 1 # not free
|
||||
25%: 0.75
|
||||
50%: 0.5
|
||||
75%: 0.25
|
||||
100%: 0 # freeleech
|
||||
"*": 0 # catch errors
|
||||
uploadvolumefactor:
|
||||
# api returns 0=false, 1=true
|
||||
selector: double_upload
|
||||
case:
|
||||
0: 1 # normal
|
||||
1: 2 # double
|
||||
minimumseedtime:
|
||||
# 7 days (as seconds = 7 x 24 x 60 x 60)
|
||||
text: 604800
|
||||
# json UNIT3D 6.5.0
|
||||
@@ -9,8 +9,6 @@ links:
|
||||
- https://krazyzone.net/
|
||||
legacylinks:
|
||||
- http://krazyzone.net/
|
||||
certificates:
|
||||
- 867fcd460bed7ded541674414267a54cc13f6d02 # selfsigned
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
@@ -112,11 +110,6 @@ login:
|
||||
path: index.php
|
||||
selector: a[href="account-logout.php"]
|
||||
|
||||
download:
|
||||
selectors:
|
||||
- selector: td a[href^="download.php?id="]
|
||||
attribute: href
|
||||
|
||||
search:
|
||||
paths:
|
||||
# https://krazyzone.net/torrents-search.php?incldead=1&freeleech=0&inclrosub=0&sort=id&order=desc
|
||||
@@ -135,7 +128,7 @@ search:
|
||||
order: "{{ .Config.type }}"
|
||||
|
||||
rows:
|
||||
selector: table.ttable_headinner > tbody > tr
|
||||
selector: table.ttable_headinner > tbody > tr:has(a[href^="download.php?id="])
|
||||
filters:
|
||||
- name: andmatch
|
||||
|
||||
@@ -156,7 +149,7 @@ search:
|
||||
selector: a[href^="torrents-details.php?id="]
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href^="torrents-details.php?id="]
|
||||
selector: a[href^="download.php?id="]
|
||||
attribute: href
|
||||
poster:
|
||||
selector: a[href^="torrents-details.php?id="]
|
||||
@@ -185,23 +178,23 @@ search:
|
||||
selector: a[href*="imdb.com/title/tt"]
|
||||
attribute: href
|
||||
size:
|
||||
selector: td:nth-child(3)
|
||||
selector: td:nth-child(4)
|
||||
date:
|
||||
# 24.Jul<br>2022<br>07:47
|
||||
selector: td:nth-child(4)
|
||||
selector: td:nth-child(5)
|
||||
# auto adjusted by site account profile
|
||||
filters:
|
||||
- name: dateparse
|
||||
args: "d.MMMyyyyHH:mm"
|
||||
seeders:
|
||||
selector: td:nth-child(6)
|
||||
leechers:
|
||||
selector: td:nth-child(7)
|
||||
grabs:
|
||||
leechers:
|
||||
selector: td:nth-child(8)
|
||||
grabs:
|
||||
selector: td:nth-child(9)
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
img[src="images/free.png"]: 0
|
||||
img[src="images/free.gif"]: 0
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
|
||||
@@ -207,6 +207,8 @@ search:
|
||||
optional: true
|
||||
remove: a, b, img, span
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["|", ""]
|
||||
- name: dateparse
|
||||
args: "yyyy-MM-dd hh:mm tt"
|
||||
date:
|
||||
|
||||
159
src/Jackett.Common/Definitions/masters-tb.yml
Normal file
159
src/Jackett.Common/Definitions/masters-tb.yml
Normal file
@@ -0,0 +1,159 @@
|
||||
---
|
||||
id: masters-tb
|
||||
name: Masters-TB
|
||||
description: "Masters-TB is a BULGARIAN Semi-Private Torrent Tracker for 0DAY / GENERAL"
|
||||
language: bg-BG
|
||||
type: semi-private
|
||||
encoding: windows-1251
|
||||
links:
|
||||
- https://masters-tb.com/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 23, cat: TV/Anime, desc: "Анимации"}
|
||||
- {id: 56, cat: PC/Mobile-Android, desc: "Android"}
|
||||
- {id: 53, cat: Books/EBook, desc: "e-Books"}
|
||||
- {id: 17, cat: Console, desc: "Игри/конзоли"}
|
||||
- {id: 4, cat: PC/Games, desc: "Игри/PC ISO"}
|
||||
- {id: 21, cat: PC/Games, desc: "Игри/PC Rip"}
|
||||
- {id: 1, cat: PC/ISO, desc: "Програми/PC ISO"}
|
||||
- {id: 22, cat: PC, desc: "Програми/други"}
|
||||
- {id: 57, cat: TV, desc: "Препоръчано MastersTB"}
|
||||
- {id: 57, cat: Movies, desc: "Препоръчано MastersTB"}
|
||||
- {id: 6, cat: Audio, desc: "Музика"}
|
||||
- {id: 12, cat: Audio/Video, desc: "Музика/Видео"}
|
||||
- {id: 33, cat: Audio/Video, desc: "Музика/DVD-R"}
|
||||
- {id: 52, cat: Audio/Lossless, desc: "Музика/Lossless"}
|
||||
- {id: 35, cat: TV, desc: "Сериали/BoxSet"}
|
||||
- {id: 7, cat: TV, desc: "Сериали/TV"}
|
||||
- {id: 32, cat: Movies, desc: "Филми/БГ"}
|
||||
- {id: 55, cat: Movies, desc: "Филми/Asian"}
|
||||
- {id: 36, cat: Movies, desc: "Филми/BoxSet"}
|
||||
- {id: 28, cat: Movies, desc: "Филми/Руски"}
|
||||
- {id: 34, cat: Movies/DVD, desc: "Филми/Руски DVD-R"}
|
||||
- {id: 20, cat: Movies/DVD, desc: "Филми/DVD-R"}
|
||||
- {id: 37, cat: Movies/HD, desc: "Филми/HD"}
|
||||
- {id: 30, cat: TV/Sport, desc: "Филми/Спорт"}
|
||||
- {id: 19, cat: Movies/SD, desc: "Филми/XviD"}
|
||||
- {id: 29, cat: TV/Documentary, desc: "Филми/Документални"}
|
||||
- {id: 54, cat: TV, desc: "TV Show"}
|
||||
- {id: 2, cat: Other, desc: "Други"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
music-search: [q]
|
||||
book-search: [q]
|
||||
|
||||
settings:
|
||||
- name: username
|
||||
type: text
|
||||
label: Username
|
||||
- name: password
|
||||
type: password
|
||||
label: Password
|
||||
- name: freeleech
|
||||
type: checkbox
|
||||
label: Filter freeleech only
|
||||
default: false
|
||||
- name: sort
|
||||
type: select
|
||||
label: Sort requested from site
|
||||
default: 4
|
||||
options:
|
||||
4: created
|
||||
7: seeders
|
||||
5: size
|
||||
1: title
|
||||
- name: type
|
||||
type: select
|
||||
label: Order requested from site
|
||||
default: desc
|
||||
options:
|
||||
desc: desc
|
||||
asc: asc
|
||||
- name: info_tpp
|
||||
type: info
|
||||
label: Results Per Page
|
||||
default: For best results, change the <b>Tоренти на страница:</b> setting to <b>100</b> on your account profile. The default is <i>20</i>.
|
||||
|
||||
login:
|
||||
path: takelogin.php
|
||||
method: post
|
||||
inputs:
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
error:
|
||||
- selector: td.embedded:has(h2:contains("failed"))
|
||||
test:
|
||||
path: my.php
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: browse.php
|
||||
inputs:
|
||||
$raw: "{{ range .Categories }}cat{{.}}=1&{{end}}"
|
||||
search: "{{ .Keywords }}"
|
||||
# 0 active, 1 all, 2 dead
|
||||
incldead: 1
|
||||
# 0 name, 1 descr
|
||||
searchrs: 0
|
||||
sort: "{{ .Config.sort }}"
|
||||
type: "{{ .Config.type }}"
|
||||
|
||||
rows:
|
||||
selector: "table[width=\"65%\"] > tbody > tr[onmouseover]{{ if .Config.freeleech }}:has(img[src=\"pic/freeleech.png\"]){{ else }}{{ end }}"
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: a[href^="browse.php?cat="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: cat
|
||||
title:
|
||||
selector: a[href^="details.php?id="]
|
||||
details:
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href^="download.php?id="]
|
||||
attribute: href
|
||||
magnet:
|
||||
selector: a[href^="magnet:?xt="]
|
||||
optional: true
|
||||
attribute: href
|
||||
poster:
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: onmouseover
|
||||
filters:
|
||||
- name: regexp
|
||||
args: src=([^\s]+)
|
||||
files:
|
||||
selector: td:nth-last-child(8)
|
||||
date:
|
||||
# 2023-05-19<br/>14:10:17
|
||||
selector: td:nth-last-child(6)
|
||||
filters:
|
||||
- name: append
|
||||
args: " +02:00" # EET
|
||||
- name: dateparse
|
||||
args: "yyyy-MM-ddHH:mm:ss zzz"
|
||||
size:
|
||||
selector: td:nth-last-child(4)
|
||||
grabs:
|
||||
selector: td:nth-last-child(3)
|
||||
seeders:
|
||||
selector: td:nth-last-child(2)
|
||||
leechers:
|
||||
selector: td:nth-last-child(1)
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
img[src="pic/freeleech.png"]: 0
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
minimumratio:
|
||||
text: 1.0
|
||||
# engine tbd
|
||||
@@ -77,6 +77,11 @@ caps:
|
||||
- {id: 96, cat: Books, desc: " |- Українська художня література"}
|
||||
- {id: 95, cat: Books, desc: " |- Зарубіжна художня література"}
|
||||
- {id: 94, cat: Books, desc: " |- Історія, біографістика, спогади"}
|
||||
- {id: 168, cat: PC, desc: "Програмне забезпечення Операційні системи"}
|
||||
- {id: 169, cat: PC, desc: "Програмне забезпечення Системні програми"}
|
||||
- {id: 170, cat: PC, desc: "Програмне забезпечення Офіс, текстові редактори"}
|
||||
- {id: 171, cat: PC, desc: "Програмне забезпечення Аудіо, відео обробка"}
|
||||
- {id: 173, cat: PC, desc: "Програмне забезпечення Операційні системи Інше"}
|
||||
- {id: 23, cat: Movies, desc: "Архів"} # Archive - unlisted
|
||||
|
||||
modes:
|
||||
|
||||
159
src/Jackett.Common/Definitions/mdan.yml
Normal file
159
src/Jackett.Common/Definitions/mdan.yml
Normal file
@@ -0,0 +1,159 @@
|
||||
---
|
||||
id: mdan
|
||||
name: MDAN
|
||||
description: "Mansão dos Animes (MDAN) is a BRAZILIAN Private Torrent Tracker for ANIME"
|
||||
language: pt-BR
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://bt.mdan.org/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 5, cat: TV/Anime, desc: "Animes Completo"}
|
||||
- {id: 1, cat: TV/Anime, desc: "Animes Episódios"}
|
||||
- {id: 2, cat: TV/Anime, desc: "Animes OVAs"}
|
||||
- {id: 3, cat: Movies, desc: "Filmes"}
|
||||
- {id: 6, cat: Movies/Other, desc: "Live"}
|
||||
- {id: 7, cat: Books/Comics, desc: "Mangá"}
|
||||
- {id: 4, cat: Audio, desc: "OST"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
music-search: [q]
|
||||
book-search: [q]
|
||||
|
||||
settings:
|
||||
- name: username
|
||||
type: text
|
||||
label: Username
|
||||
- name: password
|
||||
type: password
|
||||
label: Password
|
||||
- name: freeleech
|
||||
type: checkbox
|
||||
label: Search freeleech only
|
||||
default: false
|
||||
- name: sort
|
||||
type: select
|
||||
label: Sort requested from site
|
||||
default: 4
|
||||
options:
|
||||
4: created
|
||||
7: seeders
|
||||
5: size
|
||||
1: title
|
||||
- name: type
|
||||
type: select
|
||||
label: Order requested from site
|
||||
default: desc
|
||||
options:
|
||||
desc: desc
|
||||
asc: asc
|
||||
- name: info_tpp
|
||||
type: info
|
||||
label: Results Per Page
|
||||
default: For best results, change the <b>Torrents por página (Torrents per Page):</b> setting to <b>100</b> on your Perfil (Profile). The default is <i>30</i>.
|
||||
|
||||
login:
|
||||
path: takelogin.php
|
||||
method: post
|
||||
inputs:
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
error:
|
||||
- selector: :contains("incorret")
|
||||
test:
|
||||
path: index.php
|
||||
selector: a[href^="logout.php?hash_please="]
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: browse.php
|
||||
inputs:
|
||||
# note: site uses the catsX[]=nn method which cardigann does not support.
|
||||
search: "{{ .Keywords }}"
|
||||
# title, descr, genre, all
|
||||
searchin: title
|
||||
# 0 active, 1 incldead, 2 onlydead
|
||||
incldead: 1
|
||||
# 0 no, 1 yes
|
||||
only_free: "{{ if .Config.freeleech }}1{{else}}{{end}}"
|
||||
sort: "{{ .Config.sort }}"
|
||||
type: "{{ .Config.type }}"
|
||||
|
||||
rows:
|
||||
selector: table[style^="width"] > tbody > tr:has(a[href^="details.php?id="]), table[style^="width"] > tbody > tr[id^="kdescr"]
|
||||
after: 1
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: a[href^="browse.php?cat="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: cat
|
||||
title:
|
||||
# titles are abbreviated :-(
|
||||
selector: a[href^="details.php?id="]
|
||||
details:
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: href
|
||||
_id:
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: id
|
||||
download:
|
||||
text: "download.php?torrent={{ .Result._id }}&ssl=1"
|
||||
poster:
|
||||
selector: td:nth-child(9) img
|
||||
attribute: src
|
||||
date_day:
|
||||
# 10:50<br/>Hoje
|
||||
# 13:15<br/>Ontem
|
||||
selector: td:nth-child(7):contains("e")
|
||||
# auto adjusted by site account profile
|
||||
optional: true
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["Hoje", "Today"]
|
||||
- name: replace
|
||||
args: ["Ontem", "Yesterday"]
|
||||
date_year:
|
||||
# 18:55<br/>03-05-2023
|
||||
selector: td:nth-child(7):not(:contains("e"))
|
||||
# auto adjusted by site account profile
|
||||
optional: true
|
||||
filters:
|
||||
- name: dateparse
|
||||
args: "HH:mm dd-MM-yyyy"
|
||||
date:
|
||||
text: "{{ if or .Result.date_day .Result.date_year }}{{ or .Result.date_day .Result.date_year }}{{ else }}now{{ end }}"
|
||||
size:
|
||||
selector: td:nth-child(6)
|
||||
files:
|
||||
selector: td:nth-child(5)
|
||||
grabs:
|
||||
selector: td:nth-child(4)
|
||||
seeders:
|
||||
selector: a[href$="seeders"]
|
||||
optional: true
|
||||
default: 0
|
||||
leechers:
|
||||
selector: a[href$="leechers"]
|
||||
optional: true
|
||||
default: 0
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
img[src="./pic/free.gif"]: 0
|
||||
img[src="./pic/silver2.gif"]: 0.5
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
minimumratio:
|
||||
text: 0.4
|
||||
# U-232
|
||||
169
src/Jackett.Common/Definitions/metalguru.yml
Normal file
169
src/Jackett.Common/Definitions/metalguru.yml
Normal file
@@ -0,0 +1,169 @@
|
||||
---
|
||||
id: metalguru
|
||||
name: MetalGuru
|
||||
description: "MetalGuru is a Private Torrent Tracker for General with focus on Music"
|
||||
language: en-US
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://metalguru.me/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 51, cat: Audio/Lossless, desc: "24bit"}
|
||||
- {id: 58, cat: TV/Anime, desc: "Anime"}
|
||||
- {id: 39, cat: PC/Mobile-Other, desc: "Anything Mobile"}
|
||||
- {id: 1, cat: PC, desc: "Applications"}
|
||||
- {id: 2, cat: Books, desc: "Books Ebooks & mags"}
|
||||
- {id: 59, cat: Movies/SD, desc: "Cams"}
|
||||
- {id: 46, cat: Books, desc: "Documents"}
|
||||
- {id: 47, cat: Audio/Lossless, desc: "Flac/HD Audio"}
|
||||
- {id: 61, cat: Console, desc: "Games"}
|
||||
- {id: 62, cat: Audio, desc: "Karaoke"}
|
||||
- {id: 45, cat: Other, desc: "Misc"}
|
||||
- {id: 57, cat: Movies, desc: "Movie Packs"}
|
||||
- {id: 10, cat: Movies, desc: "Movies"}
|
||||
- {id: 50, cat: Audio, desc: "MQA"}
|
||||
- {id: 29, cat: Audio, desc: "Music"}
|
||||
- {id: 31, cat: Audio/Video, desc: "Music| Movie/Videos"}
|
||||
- {id: 32, cat: Audio, desc: "Music| Packs"}
|
||||
- {id: 60, cat: TV, desc: "Toons"}
|
||||
- {id: 54, cat: TV, desc: "TV"}
|
||||
- {id: 63, cat: TV, desc: "TV Packs"}
|
||||
- {id: 56, cat: XXX, desc: "XXX"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep, imdbid]
|
||||
movie-search: [q, imdbid]
|
||||
music-search: [q]
|
||||
book-search: [q]
|
||||
|
||||
settings:
|
||||
- name: username
|
||||
type: text
|
||||
label: Username
|
||||
- name: password
|
||||
type: password
|
||||
label: Password
|
||||
- name: freeleech
|
||||
type: checkbox
|
||||
label: Search freeleech only
|
||||
default: false
|
||||
- name: sort
|
||||
type: select
|
||||
label: Sort requested from site
|
||||
default: 4
|
||||
options:
|
||||
4: created
|
||||
7: seeders
|
||||
5: size
|
||||
1: title
|
||||
- name: type
|
||||
type: select
|
||||
label: Order requested from site
|
||||
default: desc
|
||||
options:
|
||||
desc: desc
|
||||
asc: asc
|
||||
|
||||
login:
|
||||
path: takelogin.php
|
||||
method: post
|
||||
inputs:
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
use_ssl: 1
|
||||
submitme: X
|
||||
error:
|
||||
- selector: h2:contains("failed")
|
||||
message:
|
||||
selector: td.colhead2
|
||||
test:
|
||||
path: browse.php
|
||||
selector: a[href*="logout.php?hash_please="]
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: browse.php
|
||||
inputs:
|
||||
$raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
|
||||
search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }} {{ else }}{{ end }}{{ .Keywords }}"
|
||||
# title, descr, genre, all
|
||||
searchin: "{{ if .Query.IMDBID }}descr{{else}}title{{ end }}"
|
||||
# 0 active, 1 incldead, 2 onlydead
|
||||
incldead: 1
|
||||
# 0 no, 1 yes
|
||||
only_free: "{{ if .Config.freeleech }}1{{else}}0{{end}}"
|
||||
sort: "{{ .Config.sort }}"
|
||||
type: "{{ .Config.type }}"
|
||||
# no imdbid in results
|
||||
|
||||
rows:
|
||||
selector: table.table-bordered > tbody > tr:has(a[href^="details.php?id="])
|
||||
# filters:
|
||||
# - name: andmatch
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: a[href^="browse.php?cat="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: cat
|
||||
title:
|
||||
selector: a[href^="details.php?id="]
|
||||
details:
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href^="download.php?torrent="]
|
||||
attribute: href
|
||||
poster:
|
||||
selector: a[href^="details.php?id="][onmouseover]
|
||||
attribute: onmouseover
|
||||
filters:
|
||||
# onmouseover="Tip('<img src=\'https://metalguru.me/bucket/2023/05/75ad78_theofficialtop40singleschart12-05-2023.jpg\' width=
|
||||
- name: regexp
|
||||
args: src=\\'(.*?)\\'
|
||||
files:
|
||||
selector: td:nth-child(5)
|
||||
date_day:
|
||||
# Today<br/>10:20 AM
|
||||
# Yesterday<br/>08:03 PM
|
||||
selector: td:nth-child(7):contains("day")
|
||||
# auto adjusted by site account profile
|
||||
optional: true
|
||||
date_year:
|
||||
# Feb 14 2019<br/>10:20 AM
|
||||
selector: td:nth-child(7):not(:contains("day"))
|
||||
# auto adjusted by site account profile
|
||||
optional: true
|
||||
filters:
|
||||
- name: dateparse
|
||||
args: "MMM d yyyy hh:mm tt"
|
||||
date:
|
||||
text: "{{ if or .Result.date_day .Result.date_year }}{{ or .Result.date_day .Result.date_year }}{{ else }}now{{ end }}"
|
||||
size:
|
||||
selector: td:nth-child(8)
|
||||
grabs:
|
||||
selector: td:nth-child(9)
|
||||
seeders:
|
||||
selector: td:nth-child(10)
|
||||
leechers:
|
||||
selector: td:nth-child(11)
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
a.infofree: 0
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
minimumratio:
|
||||
text: 1.0
|
||||
minimumseedtime:
|
||||
# 48h freeleech (as seconds = 48 x 60 x 60)
|
||||
# 36h notfree (as seconds = 36 x 60 x 60)
|
||||
case:
|
||||
a.infofree: 172800
|
||||
"*": 129600
|
||||
# U-232 v5
|
||||
@@ -75,8 +75,6 @@ login:
|
||||
inputs:
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
logout: ""
|
||||
logintype: yes
|
||||
error:
|
||||
- selector: table:contains("Hiba történt!")
|
||||
test:
|
||||
|
||||
@@ -29,6 +29,51 @@ legacylinks:
|
||||
- https://nyaa.nocensor.art/
|
||||
- https://nyaa.mrunblock.guru/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
# Anime
|
||||
- {id: 1_0, cat: TV/Anime, desc: "Anime"}
|
||||
- {id: 1_1, cat: TV/Anime, desc: "Anime music videos"}
|
||||
- {id: 1_2, cat: TV/Anime, desc: "English subtitled animes"}
|
||||
- {id: 1_3, cat: TV/Anime, desc: "Non-english subtitled animes"}
|
||||
- {id: 1_4, cat: TV/Anime, desc: "Raw animes"}
|
||||
# Anime as Movies (Radarr uses t=movie):
|
||||
- {id: 1_0, cat: Movies/Other, desc: "Anime"}
|
||||
- {id: 1_1, cat: Movies/Other, desc: "Anime music videos"}
|
||||
- {id: 1_2, cat: Movies/Other, desc: "English subtitled animes"}
|
||||
- {id: 1_3, cat: Movies/Other, desc: "Non-english subtitled animes"}
|
||||
- {id: 1_4, cat: Movies/Other, desc: "Raw animes"}
|
||||
# Audio
|
||||
- {id: 2_0, cat: Audio, desc: "Audio"}
|
||||
- {id: 2_1, cat: Audio, desc: "Lossless audio"}
|
||||
- {id: 2_2, cat: Audio, desc: "Lossy audio"}
|
||||
# Literature
|
||||
- {id: 3_0, cat: Books, desc: "Literature"}
|
||||
- {id: 3_1, cat: Books, desc: "Literature english translated"}
|
||||
- {id: 3_2, cat: Books, desc: "Literature non-english translated"}
|
||||
- {id: 3_3, cat: Books, desc: "Raw literature"}
|
||||
# Live
|
||||
- {id: 4_0, cat: TV, desc: "Live Action"}
|
||||
- {id: 4_1, cat: TV, desc: "Live Action - English"}
|
||||
- {id: 4_2, cat: TV, desc: "Live Action - Idol/PV"}
|
||||
- {id: 4_3, cat: TV, desc: "Live Action - Non-English"}
|
||||
- {id: 4_4, cat: TV, desc: "Live Action - Raw"}
|
||||
# Pics
|
||||
- {id: 5_0, cat: Other, desc: "Pictures"}
|
||||
- {id: 5_1, cat: Other, desc: "Pictures - Graphics"}
|
||||
- {id: 5_2, cat: Other, desc: "Pictures - Photos"}
|
||||
# Software
|
||||
- {id: 6_0, cat: PC, desc: "Software"}
|
||||
- {id: 6_1, cat: PC/ISO, desc: "Applications"}
|
||||
- {id: 6_2, cat: PC/Games, desc: "Games"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
book-search: [q]
|
||||
allowrawsearch: true
|
||||
|
||||
settings:
|
||||
- name: prefer_magnet_links
|
||||
type: checkbox
|
||||
@@ -38,6 +83,10 @@ settings:
|
||||
type: checkbox
|
||||
label: Improve Sonarr compatibility by trying to add Season information into Release Titles
|
||||
default: false
|
||||
- name: radarr_compatibility
|
||||
type: checkbox
|
||||
label: Improve Radarr compatibility by removing year information from keywords and adding it to Release Titles
|
||||
default: false
|
||||
- name: filter-id
|
||||
type: select
|
||||
label: Filter
|
||||
@@ -91,55 +140,15 @@ settings:
|
||||
desc: desc
|
||||
asc: asc
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
# Anime
|
||||
- {id: 1_0, cat: TV/Anime, desc: "Anime"}
|
||||
- {id: 1_1, cat: TV/Anime, desc: "Anime music videos"}
|
||||
- {id: 1_2, cat: TV/Anime, desc: "English subtitled animes"}
|
||||
- {id: 1_3, cat: TV/Anime, desc: "Non-english subtitled animes"}
|
||||
- {id: 1_4, cat: TV/Anime, desc: "Raw animes"}
|
||||
# Anime as Movies (Radarr uses t=movie):
|
||||
- {id: 1_0, cat: Movies/Other, desc: "Anime"}
|
||||
- {id: 1_1, cat: Movies/Other, desc: "Anime music videos"}
|
||||
- {id: 1_2, cat: Movies/Other, desc: "English subtitled animes"}
|
||||
- {id: 1_3, cat: Movies/Other, desc: "Non-english subtitled animes"}
|
||||
- {id: 1_4, cat: Movies/Other, desc: "Raw animes"}
|
||||
# Audio
|
||||
- {id: 2_0, cat: Audio, desc: "Audio"}
|
||||
- {id: 2_1, cat: Audio, desc: "Lossless audio"}
|
||||
- {id: 2_2, cat: Audio, desc: "Lossy audio"}
|
||||
# Literature
|
||||
- {id: 3_0, cat: Books, desc: "Literature"}
|
||||
- {id: 3_1, cat: Books, desc: "Literature english translated"}
|
||||
- {id: 3_2, cat: Books, desc: "Literature non-english translated"}
|
||||
- {id: 3_3, cat: Books, desc: "Raw literature"}
|
||||
# Live
|
||||
- {id: 4_0, cat: TV, desc: "Live Action"}
|
||||
- {id: 4_1, cat: TV, desc: "Live Action - English"}
|
||||
- {id: 4_2, cat: TV, desc: "Live Action - Idol/PV"}
|
||||
- {id: 4_3, cat: TV, desc: "Live Action - Non-English"}
|
||||
- {id: 4_4, cat: TV, desc: "Live Action - Raw"}
|
||||
# Pics
|
||||
- {id: 5_0, cat: Other, desc: "Pictures"}
|
||||
- {id: 5_1, cat: Other, desc: "Pictures - Graphics"}
|
||||
- {id: 5_2, cat: Other, desc: "Pictures - Photos"}
|
||||
# Software
|
||||
- {id: 6_0, cat: PC, desc: "Software"}
|
||||
- {id: 6_1, cat: PC/ISO, desc: "Applications"}
|
||||
- {id: 6_2, cat: PC/Games, desc: "Games"}
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
book-search: [q]
|
||||
allowrawsearch: true
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: "?q={{ .Keywords }}&f={{ .Config.filter-id }}&c={{ .Config.cat-id }}&s={{ .Config.sort }}&o={{ .Config.type }}"
|
||||
# strip 0 from start of episode number - #11019
|
||||
- path: "?q={{ if .Keywords }}{{ re_replace .Keywords \" 0(\\d{1})\" \" $1\" }}{{ else }}&p=2{{ end }}&f={{ .Config.filter-id }}&c={{ .Config.cat-id }}&s={{ .Config.sort }}&o={{ .Config.type }}"
|
||||
- path: "?q={{ if .Keywords }}{{ re_replace .Keywords \"\\b0(\\d{1})\\b\" \"$1\" }}{{ else }}&p=2{{ end }}&f={{ .Config.filter-id }}&c={{ .Config.cat-id }}&s={{ .Config.sort }}&o={{ .Config.type }}"
|
||||
|
||||
keywordsfilters:
|
||||
- name: re_replace
|
||||
args: [" *\\b((?:19|20)\\d{2})\\b", "{{ if .Config.radarr_compatibility }}{{ else }} $1{{ end }}"]
|
||||
|
||||
rows:
|
||||
selector: tr.default,tr.danger,tr.success
|
||||
@@ -167,8 +176,16 @@ search:
|
||||
filters:
|
||||
- name: append
|
||||
args: " Spanish"
|
||||
title_keyword_year:
|
||||
text: "{{ .Query.Keywords }}"
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "\\b((19|20)\\d{2})\\b"
|
||||
title_phase2:
|
||||
text: "{{ or (.Result.title_phase1) (.Result.title_default) }}"
|
||||
filters:
|
||||
- name: re_replace
|
||||
args: ["^(\\[.+?\\] ?)?(\\[.+?\\] ?)?(.+?)(\\[)", "$1$2$3{{ if .Config.radarr_compatibility }} {{ .Result.title_keyword_year }} $4{{ else }}$4{{ end }}"]
|
||||
title_phase3:
|
||||
text: "{{ .Result.title_phase2 }}"
|
||||
filters:
|
||||
|
||||
@@ -86,6 +86,7 @@ login:
|
||||
error:
|
||||
- selector: td.embedded:has(h2:contains("Login failed!"))
|
||||
- selector: td.embedded:has(h2:contains("Failed"))
|
||||
- selector: td.embedded:has(h2:contains("Login Locked!"))
|
||||
test:
|
||||
path: index.php
|
||||
selector: a[href="logout.php"]
|
||||
|
||||
@@ -188,4 +188,4 @@ search:
|
||||
description:
|
||||
selector: td:nth-child(2)
|
||||
remove: a, b, font, img, span
|
||||
# NexusPHP v1.8.0 2023-01-11
|
||||
# NexusPHP v1.8.2 2023-05-08
|
||||
|
||||
@@ -162,4 +162,4 @@ search:
|
||||
text: 1.0
|
||||
description:
|
||||
selector: short_description
|
||||
# engine n/a
|
||||
# engine BtiTracker
|
||||
|
||||
@@ -167,4 +167,4 @@ search:
|
||||
description:
|
||||
selector: td.rowfollow:nth-child(2)
|
||||
remove: a, b, font, img, span
|
||||
# NexusPHP v1.8.0 2023-01-16
|
||||
# NexusPHP v1.8.0 2023-04-16
|
||||
|
||||
167
src/Jackett.Common/Definitions/ptitzmx.yml
Normal file
167
src/Jackett.Common/Definitions/ptitzmx.yml
Normal file
@@ -0,0 +1,167 @@
|
||||
---
|
||||
id: ptitzmx
|
||||
name: PT分享站
|
||||
description: "PT分享站 (itzmx) is a CHINESE Private Torrent Tracker for MOVIES / TV / GENERAL"
|
||||
language: zh-CN
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://pt.itzmx.com/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 405, cat: TV/Anime, desc: "Anime.动画"}
|
||||
- {id: 404, cat: Books/Comics, desc: "Comics.漫画"}
|
||||
- {id: 408, cat: Audio, desc: "Music.音乐"}
|
||||
- {id: 401, cat: Movies, desc: "Movies.电影"}
|
||||
- {id: 402, cat: TV, desc: "TV.电视剧"}
|
||||
- {id: 414, cat: Movies/BluRay, desc: "MoviesBluray.蓝光"}
|
||||
- {id: 410, cat: PC, desc: "Appz.软件"}
|
||||
- {id: 411, cat: Console, desc: "Games.游戏"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep, imdbid, doubanid]
|
||||
movie-search: [q, imdbid, doubanid]
|
||||
music-search: [q]
|
||||
book-search: [q]
|
||||
|
||||
settings:
|
||||
- name: username
|
||||
type: text
|
||||
label: Username
|
||||
- name: password
|
||||
type: password
|
||||
label: Password
|
||||
- name: freeleech
|
||||
type: checkbox
|
||||
label: Search freeleech only
|
||||
default: false
|
||||
- name: sort
|
||||
type: select
|
||||
label: Sort requested from site
|
||||
default: 4
|
||||
options:
|
||||
4: created
|
||||
7: seeders
|
||||
5: size
|
||||
1: title
|
||||
- name: type
|
||||
type: select
|
||||
label: Order requested from site
|
||||
default: desc
|
||||
options:
|
||||
desc: desc
|
||||
asc: asc
|
||||
- name: info_tpp
|
||||
type: info
|
||||
label: Results Per Page
|
||||
default: For best results, change the <b>Torrents per page:</b> setting to <b>100</b> on your account profile.
|
||||
|
||||
login:
|
||||
path: login.php
|
||||
method: form
|
||||
form: form[action="takelogin.php"]
|
||||
captcha:
|
||||
type: image
|
||||
selector: img[alt="CAPTCHA"]
|
||||
input: imagestring
|
||||
inputs:
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
logout: ""
|
||||
securelogin: ""
|
||||
ssl: yes
|
||||
trackerssl: yes
|
||||
error:
|
||||
- selector: td.embedded:has(h2:contains("失败"))
|
||||
test:
|
||||
path: index.php
|
||||
selector: a[href="logout.php"]
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: torrents.php
|
||||
inputs:
|
||||
$raw: "{{ range .Categories }}cat{{.}}=1&{{end}}"
|
||||
search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }} {{ else }}{{ end }}{{ if .Query.DoubanID }}{{ .Query.DoubanID }} {{ else }}{{ end }}{{ .Keywords }}"
|
||||
# 0 incldead, 1 active, 2 dead
|
||||
incldead: 0
|
||||
# 0 all, 1 normal, 2 free, 3 2x, 4 2xfree, 5 50%, 6 2x50%, 7 30%
|
||||
spstate: "{{ if .Config.freeleech }}2{{ else }}0{{ end }}"
|
||||
# 0 title, 1 descr, 3 uploader, 4 imdburl (does not work)
|
||||
search_area: "{{ if or .Query.IMDBID .Query.DoubanID }}1{{ else }}0{{ end }}"
|
||||
# 0 AND, 1 OR, 2 exact
|
||||
search_mode: 0
|
||||
sort: "{{ .Config.sort }}"
|
||||
type: "{{ .Config.type }}"
|
||||
notnewword: 1
|
||||
|
||||
rows:
|
||||
selector: table.torrents > tbody > tr:has(table.torrentname)
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: a[href^="?cat="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: cat
|
||||
title:
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: title
|
||||
details:
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href^="download.php?id="]
|
||||
attribute: href
|
||||
size:
|
||||
selector: td:nth-child(5)
|
||||
seeders:
|
||||
selector: td:nth-child(6)
|
||||
leechers:
|
||||
selector: td:nth-child(7)
|
||||
grabs:
|
||||
selector: td:nth-child(8)
|
||||
date_elapsed:
|
||||
# time type: time elapsed (default)
|
||||
selector: td:nth-child(4) > span[title]
|
||||
attribute: title
|
||||
optional: true
|
||||
filters:
|
||||
- name: append
|
||||
args: " +08:00" # CST
|
||||
- name: dateparse
|
||||
args: "yyyy-MM-dd HH:mm:ss zzz"
|
||||
date_added:
|
||||
# time added
|
||||
selector: td:nth-child(4):not(:has(span))
|
||||
optional: true
|
||||
filters:
|
||||
- name: append
|
||||
args: " +08:00" # CST
|
||||
- name: dateparse
|
||||
args: "yyyy-MM-ddHH:mm:ss zzz"
|
||||
date:
|
||||
text: "{{ if or .Result.date_elapsed .Result.date_added }}{{ or .Result.date_elapsed .Result.date_added }}{{ else }}now{{ end }}"
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
img.pro_free: 0
|
||||
img.pro_free2up: 0
|
||||
img.pro_50pctdown: 0.5
|
||||
img.pro_50pctdown2up: 0.5
|
||||
img.pro_30pctdown: 0.3
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
case:
|
||||
img.pro_50pctdown2up: 2
|
||||
img.pro_free2up: 2
|
||||
img.pro_2up: 2
|
||||
"*": 1
|
||||
minimumratio:
|
||||
text: 1.0
|
||||
description:
|
||||
selector: td:nth-child(2)
|
||||
remove: a, img
|
||||
# NexusPHP v1.5 2014-04-14
|
||||
@@ -150,4 +150,4 @@ search:
|
||||
minimumseedtime:
|
||||
# 7 day (as seconds = 7 x 24 x 60 x 60)
|
||||
text: 604800
|
||||
# NexusPHP v1.8.0 2023-02-08
|
||||
# NexusPHP Standard v1.5 Beta 4 2010-09-19
|
||||
|
||||
@@ -8,6 +8,7 @@ encoding: UTF-8
|
||||
requestDelay: 2
|
||||
links:
|
||||
- https://solidtorrents.to/
|
||||
- https://solidtorrents.nocensor.click/
|
||||
legacylinks:
|
||||
- https://solidtorrents.net/
|
||||
|
||||
|
||||
@@ -192,4 +192,4 @@ search:
|
||||
description:
|
||||
selector: td.rowfollow:nth-child(2)
|
||||
remove: a, b, font, img, span
|
||||
# NexusPHP v1.8.0 2023-02-21
|
||||
# NexusPHP v1.8.2 2023-05-08
|
||||
|
||||
@@ -12,6 +12,7 @@ links:
|
||||
- https://www.torlock.com/
|
||||
- https://torlock.unblockit.asia/
|
||||
- https://torlock.mrunblock.life/
|
||||
- https://torlock.nocensor.click/
|
||||
legacylinks:
|
||||
- https://torlock.com/
|
||||
- https://torlock.unblockit.cam/
|
||||
|
||||
@@ -38,7 +38,7 @@ caps:
|
||||
- {id: 153, cat: Audio/Lossless, desc: "Audio FLAC"}
|
||||
- {id: 52, cat: Audio/MP3, desc: "Audio Pack mp3"}
|
||||
- {id: 154, cat: Audio/Lossless, desc: "Audio Pack FLAC"}
|
||||
- {id: 120, cat: Audio/Video, desc: "Audio Video"}
|
||||
- {id: 120, cat: Audio/Video, desc: "Audio Videos"}
|
||||
- {id: 162, cat: Audio/Audiobook, desc: "Audio ABooks"}
|
||||
# Software
|
||||
- {id: 12, cat: PC/0day, desc: "Software Windows"}
|
||||
|
||||
@@ -10,6 +10,7 @@ links:
|
||||
- https://www.torrentdownload.info/
|
||||
- https://torrentdownload.unblockit.asia/
|
||||
- https://torrentdownload.mrunblock.life/
|
||||
- https://torrentdownload.nocensor.click/
|
||||
legacylinks:
|
||||
- https://torrentdownload.nocensor.space/
|
||||
- https://torrentdownload.nocensor.work/
|
||||
|
||||
@@ -11,6 +11,7 @@ links:
|
||||
- https://www.torrentfunk2.com/
|
||||
- https://torrentfunk.unblockit.asia/
|
||||
- https://torrentfunk.mrunblock.life/
|
||||
- https://torrentfunk.nocensor.click/
|
||||
legacylinks:
|
||||
- https://torrentfunk.nocensor.space/
|
||||
- https://torrentfunk.nocensor.work/
|
||||
|
||||
@@ -84,13 +84,13 @@ settings:
|
||||
- name: password
|
||||
type: password
|
||||
label: Password
|
||||
- name: 2facode
|
||||
- name: alt2fatoken
|
||||
type: text
|
||||
label: 2FA code
|
||||
- name: info_2fa
|
||||
label: Alt 2FA Token
|
||||
- name: info_alt2fatoken
|
||||
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 TorrentLeech Web Site. Otherwise just leave it empty."
|
||||
label: "About Alt 2FA Token"
|
||||
default: "(Site Profile => Alt 2FA Token) Only fill in the <b>Alt 2FA Token</b> if you have enabled <b>2FA</b> on the TorrentLeech Web Site. Otherwise just leave it empty."
|
||||
- name: freeleech
|
||||
type: checkbox
|
||||
label: Search freeleech only
|
||||
@@ -126,7 +126,7 @@ login:
|
||||
inputs:
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
otpkey: "{{ .Config.2facode }}"
|
||||
alt2FAToken: "{{ .Config.alt2fatoken }}"
|
||||
error:
|
||||
- selector: p.text-danger
|
||||
- selector: .login-container h2:contains("One Time Password")
|
||||
|
||||
@@ -7,10 +7,8 @@ type: public
|
||||
encoding: UTF-8
|
||||
followredirect: true
|
||||
links:
|
||||
- https://torrentqq255.com/
|
||||
- https://torrentqq257.com/
|
||||
legacylinks:
|
||||
- https://torrentqq240.com/
|
||||
- https://torrentqq241.com/
|
||||
- https://torrentqq242.com/
|
||||
- https://torrentqq243.com/
|
||||
- https://torrentqq244.com/
|
||||
@@ -25,6 +23,8 @@ legacylinks:
|
||||
- https://torrentqq252.com/
|
||||
- https://torrentqq253.com/
|
||||
- https://torrentqq254.com/
|
||||
- https://torrentqq255.com/
|
||||
- https://torrentqq256.com/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
|
||||
@@ -7,7 +7,7 @@ type: public
|
||||
encoding: UTF-8
|
||||
followredirect: true
|
||||
links:
|
||||
- https://torrentsir103.com/
|
||||
- https://torrentsir105.com/
|
||||
legacylinks:
|
||||
- https://torrentsir90.com/
|
||||
- http://torrentsir91.com/
|
||||
@@ -29,6 +29,10 @@ legacylinks:
|
||||
- http://torrentsir102.com/
|
||||
- https://torrentsir102.com/
|
||||
- http://torrentsir103.com/
|
||||
- https://torrentsir103.com/
|
||||
- http://torrentsir104.com/
|
||||
- https://torrentsir104.com/
|
||||
- http://torrentsir105.com/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
|
||||
@@ -126,7 +126,7 @@ search:
|
||||
optional: true
|
||||
filters:
|
||||
- name: re_replace
|
||||
args: ["[ ]at|[\\s+]|[//\xa0],\\/g", " "]
|
||||
args: ["[ ]at|[//\xa0\\s,]+", " "]
|
||||
date_year:
|
||||
# February 09, 2019, 06:35:08 AM
|
||||
selector: td:nth-child(5):not(:contains("day"))
|
||||
@@ -134,7 +134,7 @@ search:
|
||||
optional: true
|
||||
filters:
|
||||
- name: re_replace
|
||||
args: ["[,]|[\\s+]|[//\xa0],\\/g", " "]
|
||||
args: ["[//\xa0\\s,]+", " "]
|
||||
- name: dateparse
|
||||
args: "MMMM dd yyyy hh:mm:ss tt"
|
||||
date:
|
||||
|
||||
@@ -181,4 +181,4 @@ search:
|
||||
description:
|
||||
selector: td:nth-child(2)
|
||||
remove: a, b, font, img, span
|
||||
# NexusPHP v1.8.1 2023-04-21
|
||||
# NexusPHP v1.8.2 2023-05-08
|
||||
|
||||
@@ -9,6 +9,7 @@ links:
|
||||
- https://yourbittorrent.com/
|
||||
- https://yourbittorrent2.com/
|
||||
- https://yourbittorrent.mrunblock.life/
|
||||
- https://yourbittorrent.nocensor.click/
|
||||
legacylinks:
|
||||
- https://yourbittorrent.host/
|
||||
- https://yourbittorrent.nocensor.space/
|
||||
|
||||
@@ -186,4 +186,4 @@ search:
|
||||
description:
|
||||
selector: td.rowfollow:nth-child(2)
|
||||
remove: a, b, font, img, span
|
||||
# NexusPHP v1.8.1 2023-04-21
|
||||
# NexusPHP v1.8.2 2023-05-08
|
||||
|
||||
@@ -27,13 +27,13 @@ namespace Jackett.Common.Indexers.Abstract
|
||||
|
||||
protected virtual string LoginUrl => SiteLink + "login.php";
|
||||
protected virtual string APIUrl => SiteLink + "ajax.php";
|
||||
protected virtual string DownloadUrl => SiteLink + "torrents.php?action=download&usetoken=" + (useTokens ? "1" : "0") + (usePassKey ? "&torrent_pass=" + configData.PassKey.Value : "") + (useAuthKey ? "&authkey=" + configData.AuthKey.Value : "") + "&id=";
|
||||
protected virtual string DownloadUrl => SiteLink + "torrents.php?action=download" + (useTokens ? "&usetoken=1" : "") + (usePassKey ? "&torrent_pass=" + configData.PassKey.Value : "") + (useAuthKey ? "&authkey=" + configData.AuthKey.Value : "") + "&id=";
|
||||
protected virtual string DetailsUrl => SiteLink + "torrents.php?torrentid=";
|
||||
protected virtual string PosterUrl => SiteLink;
|
||||
protected virtual string AuthorizationName => "Authorization";
|
||||
protected virtual string AuthorizationFormat => "{0}";
|
||||
protected virtual int ApiKeyLength => 41;
|
||||
protected virtual string FlipOptionalTokenString(string requestLink) => requestLink.Replace("usetoken=1", "usetoken=0");
|
||||
protected virtual string FlipOptionalTokenString(string requestLink) => requestLink.Replace("&usetoken=1", "");
|
||||
|
||||
protected bool useTokens;
|
||||
protected string cookie = "";
|
||||
@@ -294,7 +294,7 @@ namespace Jackett.Common.Indexers.Abstract
|
||||
OnParseError(response.ContentString, ex);
|
||||
}
|
||||
|
||||
return releases;
|
||||
return releases.OrderByDescending(o => o.PublishDate).ToArray();
|
||||
}
|
||||
|
||||
// hook to add/modify the parsed information, return false to exclude the torrent from the results
|
||||
@@ -418,7 +418,7 @@ namespace Jackett.Common.Indexers.Abstract
|
||||
|| html.Contains("This torrent is too large.")
|
||||
|| html.Contains("You cannot use tokens here"))
|
||||
{
|
||||
// download again with usetoken=0
|
||||
// download again without usetoken=1
|
||||
var requestLinkNew = FlipOptionalTokenString(requestLink);
|
||||
content = await base.Download(new Uri(requestLinkNew), RequestType.GET, headers: headers);
|
||||
}
|
||||
|
||||
@@ -134,7 +134,9 @@ namespace Jackett.Common.Indexers
|
||||
};
|
||||
|
||||
if (configData.DownloadableOnly.Value)
|
||||
{
|
||||
queryCollection.Set("dlable", "1");
|
||||
}
|
||||
|
||||
searchUrl += "?" + queryCollection.GetQueryString();
|
||||
|
||||
@@ -153,7 +155,7 @@ namespace Jackett.Common.Indexers
|
||||
var dom = parser.ParseDocument(results);
|
||||
|
||||
var rows = dom.QuerySelectorAll("table tr");
|
||||
foreach (var row in rows.Skip(1))
|
||||
foreach (var (row, index) in rows.Skip(1).Select((v, i) => (v, i)))
|
||||
{
|
||||
var downloadVolumeFactor = row.QuerySelector("img[alt=\"Gold Torrent\"]") != null ? 0 : row.QuerySelector("img[alt=\"Silver Torrent\"]") != null ? 0.5 : 1;
|
||||
|
||||
@@ -185,6 +187,13 @@ namespace Jackett.Common.Indexers
|
||||
var categoryLink = row.QuerySelector("td:nth-of-type(1) a")?.GetAttribute("href") ?? string.Empty;
|
||||
var categoryId = ParseUtil.GetArgumentFromQueryString(categoryLink, "cat");
|
||||
|
||||
var publishedDate = DateTime.ParseExact(row.QuerySelector("td:nth-of-type(5)").TextContent, "dd MMM yy", CultureInfo.InvariantCulture, DateTimeStyles.AssumeUniversal);
|
||||
|
||||
if (publishedDate.Date == DateTime.Today)
|
||||
{
|
||||
publishedDate = publishedDate.Date + DateTime.Now.TimeOfDay - TimeSpan.FromMinutes(index);
|
||||
}
|
||||
|
||||
var release = new ReleaseInfo
|
||||
{
|
||||
Guid = new Uri(infoUrl),
|
||||
@@ -192,7 +201,7 @@ namespace Jackett.Common.Indexers
|
||||
Link = new Uri(downloadUrl),
|
||||
Title = title,
|
||||
Category = MapTrackerCatToNewznab(categoryId),
|
||||
PublishDate = DateTime.ParseExact(row.QuerySelector("td:nth-of-type(5)").TextContent, "dd MMM yy", CultureInfo.InvariantCulture, DateTimeStyles.AssumeUniversal),
|
||||
PublishDate = publishedDate,
|
||||
Size = ParseUtil.GetBytes(row.QuerySelector("td:nth-of-type(6)").TextContent.Trim()),
|
||||
Seeders = seeders,
|
||||
Peers = ParseUtil.CoerceInt(connections[1]) + seeders,
|
||||
|
||||
@@ -9,8 +9,10 @@ using System.Text;
|
||||
using System.Text.RegularExpressions;
|
||||
using System.Threading.Tasks;
|
||||
using AngleSharp.Dom;
|
||||
using AngleSharp.Html;
|
||||
using AngleSharp.Html.Dom;
|
||||
using AngleSharp.Html.Parser;
|
||||
using AngleSharp.Text;
|
||||
using AngleSharp.Xml.Parser;
|
||||
using Jackett.Common.Helpers;
|
||||
using Jackett.Common.Models;
|
||||
@@ -608,8 +610,18 @@ namespace Jackett.Common.Indexers
|
||||
foreach (var input in inputs)
|
||||
{
|
||||
var name = input.GetAttribute("name");
|
||||
if (name == null)
|
||||
|
||||
if (name == null || input.IsDisabled())
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
if (input is IHtmlInputElement element &&
|
||||
element.Type.IsOneOf(InputTypeNames.Checkbox, InputTypeNames.Radio) &&
|
||||
!input.IsChecked())
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
var value = input.GetAttribute("value") ?? "";
|
||||
|
||||
|
||||
@@ -28,10 +28,9 @@ namespace Jackett.Common.Indexers
|
||||
public override string Id => "divxtotal";
|
||||
public override string Name => "DivxTotal";
|
||||
public override string Description => "DivxTotal is a SPANISH site for Movies, TV series and Software";
|
||||
public override string SiteLink { get; protected set; } = "https://www.divxtotal.wf/";
|
||||
public override string SiteLink { get; protected set; } = "https://www.divxtotal.win/";
|
||||
public override string[] LegacySiteLinks => new[]
|
||||
{
|
||||
"https://www.divxtotal.one/",
|
||||
"https://www.divxtotal.ch/",
|
||||
"https://www.divxtotal.nz/",
|
||||
"https://www.divxtotal.li/",
|
||||
@@ -45,7 +44,8 @@ namespace Jackett.Common.Indexers
|
||||
"https://www.divxtotal.ms/",
|
||||
"https://www.divxtotal.fi/",
|
||||
"https://www.divxtotal.cat/",
|
||||
"https://www.divxtotal.pl/"
|
||||
"https://www.divxtotal.pl/",
|
||||
"https://www.divxtotal.wf/"
|
||||
};
|
||||
public override string Language => "es-ES";
|
||||
public override string Type => "public";
|
||||
|
||||
@@ -25,10 +25,10 @@ namespace Jackett.Common.Indexers
|
||||
public override string Id => "dontorrent";
|
||||
public override string Name => "DonTorrent";
|
||||
public override string Description => "DonTorrent is a SPANISH public tracker for MOVIES / TV / GENERAL";
|
||||
public override string SiteLink { get; protected set; } = "https://dontorrent.observer/";
|
||||
public override string SiteLink { get; protected set; } = "https://dontorrent.discount/";
|
||||
public override string[] AlternativeSiteLinks => new[]
|
||||
{
|
||||
"https://dontorrent.observer/",
|
||||
"https://dontorrent.discount/",
|
||||
"https://todotorrents.net/",
|
||||
"https://tomadivx.net/",
|
||||
"https://seriesblanco.one/",
|
||||
@@ -37,15 +37,6 @@ namespace Jackett.Common.Indexers
|
||||
};
|
||||
public override string[] LegacySiteLinks => new[]
|
||||
{
|
||||
"https://dontorrent.gs/",
|
||||
"https://dontorrent.gy/",
|
||||
"https://dontorrent.click/",
|
||||
"https://dontorrent.fail/",
|
||||
"https://dontorrent.futbol/",
|
||||
"https://dontorrent.mba/",
|
||||
"https://dontorrent.army/",
|
||||
"https://dontorrent.blue/",
|
||||
"https://dontorrent.beer/",
|
||||
"https://dontorrent.surf/",
|
||||
"https://dontorrent.how/",
|
||||
"https://dontorrent.casa/",
|
||||
@@ -58,7 +49,9 @@ namespace Jackett.Common.Indexers
|
||||
"https://dontorrent.pictures/",
|
||||
"https://dontorrent.ms/",
|
||||
"https://dontorrent.care/",
|
||||
"https://dontorrent.cash/"
|
||||
"https://dontorrent.cash/",
|
||||
"https://dontorrent.observer/",
|
||||
"https://dontorrent.company/"
|
||||
|
||||
};
|
||||
public override string Language => "es-ES";
|
||||
|
||||
@@ -24,7 +24,8 @@ namespace Jackett.Common.Indexers
|
||||
{
|
||||
"https://www.erai-raws.info/",
|
||||
"https://beta.erai-raws.info/",
|
||||
"https://erairaws.mrunblock.guru/"
|
||||
"https://erairaws.mrunblock.life/",
|
||||
"https://erairaws.nocensor.click/"
|
||||
};
|
||||
public override string[] LegacySiteLinks => new[]
|
||||
{
|
||||
@@ -34,7 +35,8 @@ namespace Jackett.Common.Indexers
|
||||
"https://erairaws.nocensor.sbs/",
|
||||
"https://erairaws.nocensor.world/",
|
||||
"https://erairaws.nocensor.lol/",
|
||||
"https://erairaws.nocensor.art/"
|
||||
"https://erairaws.nocensor.art/",
|
||||
"https://erairaws.mrunblock.guru/"
|
||||
};
|
||||
public override string Language => "en-US";
|
||||
public override string Type => "semi-private";
|
||||
|
||||
@@ -33,7 +33,7 @@ namespace Jackett.Common.Indexers
|
||||
protected override string APIUrl => SiteLink + "api.php";
|
||||
protected override string AuthorizationName => "X-API-Key";
|
||||
protected override int ApiKeyLength => 64;
|
||||
protected override string FlipOptionalTokenString(string requestLink) => requestLink.Replace("usetoken=1", "");
|
||||
protected override string FlipOptionalTokenString(string requestLink) => requestLink.Replace("&usetoken=1", "");
|
||||
public GazelleGamesApi(IIndexerConfigurationService configService, WebClient wc, Logger l, IProtectionService ps,
|
||||
ICacheService cs)
|
||||
: base(configService: configService,
|
||||
|
||||
@@ -1,8 +1,12 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics.CodeAnalysis;
|
||||
using System.Globalization;
|
||||
using System.Linq;
|
||||
using System.Net;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using Jackett.Common.Extensions;
|
||||
using Jackett.Common.Indexers.Abstract;
|
||||
using Jackett.Common.Models;
|
||||
using Jackett.Common.Services.Interfaces;
|
||||
@@ -67,7 +71,14 @@ namespace Jackett.Common.Indexers
|
||||
query.ImdbID = null;
|
||||
}
|
||||
|
||||
return await base.PerformQuery(query);
|
||||
var releases = await base.PerformQuery(query);
|
||||
|
||||
if (query.SearchTerm.IsNullOrWhiteSpace())
|
||||
{
|
||||
releases = releases.Take(50).ToList();
|
||||
}
|
||||
|
||||
return releases;
|
||||
}
|
||||
|
||||
protected override bool ReleaseInfoPostParse(ReleaseInfo release, JObject torrent, JObject result)
|
||||
@@ -152,6 +163,15 @@ namespace Jackett.Common.Indexers
|
||||
release.Category = new List<int> { TorznabCatType.Movies.ID };
|
||||
if (!string.IsNullOrEmpty(groupSubName))
|
||||
release.Description = groupSubName;
|
||||
|
||||
var time = torrent.Value<string>("time");
|
||||
|
||||
if (time.IsNotNullOrWhiteSpace())
|
||||
{
|
||||
// Time is Chinese Time, add 8 hours difference from UTC
|
||||
release.PublishDate = DateTime.ParseExact($"{time} +08:00", "yyyy-MM-dd HH:mm:ss zzz", CultureInfo.InvariantCulture, DateTimeStyles.AdjustToUniversal);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -26,10 +26,10 @@ namespace Jackett.Common.Indexers
|
||||
public override string Id => "mejortorrent";
|
||||
public override string Name => "MejorTorrent";
|
||||
public override string Description => "MejorTorrent - Hay veces que un torrent viene mejor! :)";
|
||||
public override string SiteLink { get; protected set; } = "https://www1.mejortorrent.rip/";
|
||||
public override string SiteLink { get; protected set; } = "https://www2.mejortorrent.rip/";
|
||||
public override string[] AlternativeSiteLinks => new[]
|
||||
{
|
||||
"https://www1.mejortorrent.rip/",
|
||||
"https://www2.mejortorrent.rip/",
|
||||
"https://mejortorrent.unblockit.asia/"
|
||||
};
|
||||
public override string[] LegacySiteLinks => new[]
|
||||
@@ -63,7 +63,8 @@ namespace Jackett.Common.Indexers
|
||||
"https://mejortorrent.unblockit.bio/",
|
||||
"https://mejortorrent.wtf/",
|
||||
"https://mejortorrent.unblockit.boo/",
|
||||
"https://mejortorrent.unblockit.click/"
|
||||
"https://mejortorrent.unblockit.click/",
|
||||
"https://www1.mejortorrent.rip/"
|
||||
};
|
||||
public override string Language => "es-ES";
|
||||
public override string Type => "public";
|
||||
|
||||
@@ -24,7 +24,7 @@ namespace Jackett.Common.Indexers
|
||||
protected override string DownloadUrl => SiteLink + "ajax.php?action=download" + (useTokens ? "&usetoken=1" : "") + "&id=";
|
||||
protected override string AuthorizationFormat => "token {0}";
|
||||
protected override int ApiKeyLength => 118;
|
||||
protected override string FlipOptionalTokenString(string requestLink) => requestLink.Replace("usetoken=1", "");
|
||||
protected override string FlipOptionalTokenString(string requestLink) => requestLink.Replace("&usetoken=1", "");
|
||||
public Orpheus(IIndexerConfigurationService configService, WebClient wc, Logger l, IProtectionService ps,
|
||||
ICacheService cs)
|
||||
: base(configService: configService,
|
||||
|
||||
@@ -22,7 +22,7 @@ namespace Jackett.Common.Indexers
|
||||
|
||||
public override TorznabCapabilities TorznabCaps => SetCapabilities();
|
||||
|
||||
protected override string DownloadUrl => SiteLink + "ajax.php?action=download&usetoken=" + (useTokens ? "1" : "0") + "&id=";
|
||||
protected override string DownloadUrl => SiteLink + "ajax.php?action=download" + (useTokens ? "&usetoken=1" : "") + "&id=";
|
||||
|
||||
public Redacted(IIndexerConfigurationService configService, WebClient wc, Logger l, IProtectionService ps, ICacheService cs)
|
||||
: base(configService: configService,
|
||||
|
||||
@@ -26,7 +26,8 @@ namespace Jackett.Common.Indexers
|
||||
public override string[] AlternativeSiteLinks => new[]
|
||||
{
|
||||
"https://subsplease.org/",
|
||||
"https://subsplease.mrunblock.guru/"
|
||||
"https://subsplease.mrunblock.life/",
|
||||
"https://subsplease.nocensor.click/"
|
||||
};
|
||||
public override string[] LegacySiteLinks => new[]
|
||||
{
|
||||
@@ -36,7 +37,8 @@ namespace Jackett.Common.Indexers
|
||||
"https://subsplease.nocensor.sbs/",
|
||||
"https://subsplease.nocensor.world/",
|
||||
"https://subsplease.nocensor.lol/",
|
||||
"https://subsplease.nocensor.art/"
|
||||
"https://subsplease.nocensor.art/",
|
||||
"https://subsplease.mrunblock.guru/"
|
||||
};
|
||||
public override string Language => "en-US";
|
||||
public override string Type => "public";
|
||||
|
||||
@@ -117,10 +117,14 @@ namespace Jackett.Common.Indexers
|
||||
caps.Categories.AddCategoryMapping(107, TorznabCatType.PCMac, "Games PC/Mac");
|
||||
caps.Categories.AddCategoryMapping(11, TorznabCatType.Movies, "Movie Boxsets");
|
||||
caps.Categories.AddCategoryMapping(118, TorznabCatType.MoviesUHD, "Movie Boxsets/Boxset 4K");
|
||||
caps.Categories.AddCategoryMapping(143, TorznabCatType.MoviesHD, "Movie Boxsets/Boxset HD");
|
||||
caps.Categories.AddCategoryMapping(119, TorznabCatType.MoviesHD, "Movie Boxsets/Boxset HEVC");
|
||||
caps.Categories.AddCategoryMapping(144, TorznabCatType.MoviesSD, "Movie Boxsets/Boxset SD");
|
||||
caps.Categories.AddCategoryMapping(12, TorznabCatType.Movies, "Movies");
|
||||
caps.Categories.AddCategoryMapping(117, TorznabCatType.MoviesUHD, "Movies 4K");
|
||||
caps.Categories.AddCategoryMapping(145, TorznabCatType.MoviesHD, "Movies HD");
|
||||
caps.Categories.AddCategoryMapping(100, TorznabCatType.MoviesHD, "Movies HEVC");
|
||||
caps.Categories.AddCategoryMapping(146, TorznabCatType.MoviesSD, "Movies SD");
|
||||
caps.Categories.AddCategoryMapping(13, TorznabCatType.Audio, "Music");
|
||||
caps.Categories.AddCategoryMapping(135, TorznabCatType.AudioLossless, "Music/FLAC");
|
||||
caps.Categories.AddCategoryMapping(136, TorznabCatType.Audio, "Music Boxset");
|
||||
@@ -128,21 +132,25 @@ namespace Jackett.Common.Indexers
|
||||
caps.Categories.AddCategoryMapping(9, TorznabCatType.Other, "Other");
|
||||
caps.Categories.AddCategoryMapping(125, TorznabCatType.Other, "Other/Pictures");
|
||||
caps.Categories.AddCategoryMapping(54, TorznabCatType.TVOther, "Soaps");
|
||||
caps.Categories.AddCategoryMapping(83, TorznabCatType.TVOther, "Specials");
|
||||
caps.Categories.AddCategoryMapping(139, TorznabCatType.TV, "TOTM (Freeleech)");
|
||||
caps.Categories.AddCategoryMapping(138, TorznabCatType.TV, "TOTW (x2 upload)");
|
||||
caps.Categories.AddCategoryMapping(139, TorznabCatType.Movies, "TOTM (Freeleech)");
|
||||
caps.Categories.AddCategoryMapping(138, TorznabCatType.Movies, "TOTW (x2 upload)");
|
||||
caps.Categories.AddCategoryMapping(20, TorznabCatType.TVSport, "Sports");
|
||||
caps.Categories.AddCategoryMapping(88, TorznabCatType.TVSport, "Sports/Football");
|
||||
caps.Categories.AddCategoryMapping(86, TorznabCatType.TVSport, "Sports/MotorSports");
|
||||
caps.Categories.AddCategoryMapping(89, TorznabCatType.TVSport, "Sports/Olympics");
|
||||
caps.Categories.AddCategoryMapping(83, TorznabCatType.Movies, "TOTM");
|
||||
caps.Categories.AddCategoryMapping(137, TorznabCatType.Movies, "TOTW");
|
||||
caps.Categories.AddCategoryMapping(126, TorznabCatType.TV, "TV");
|
||||
caps.Categories.AddCategoryMapping(127, TorznabCatType.TVUHD, "TV 4K");
|
||||
caps.Categories.AddCategoryMapping(129, TorznabCatType.TVHD, "TV HD");
|
||||
caps.Categories.AddCategoryMapping(130, TorznabCatType.TVHD, "TV HEVC");
|
||||
caps.Categories.AddCategoryMapping(128, TorznabCatType.TVSD, "TV SD");
|
||||
caps.Categories.AddCategoryMapping(21, TorznabCatType.TVSD, "TV Boxsets");
|
||||
caps.Categories.AddCategoryMapping(120, TorznabCatType.TVUHD, "Boxset TV-4K");
|
||||
caps.Categories.AddCategoryMapping(76, TorznabCatType.TVHD, "Boxset TV-HD");
|
||||
caps.Categories.AddCategoryMapping(97, TorznabCatType.TVHD, "Boxset TV-HEVC");
|
||||
caps.Categories.AddCategoryMapping(120, TorznabCatType.TVUHD, "Boxset TV 4K");
|
||||
caps.Categories.AddCategoryMapping(76, TorznabCatType.TVHD, "Boxset TV HD");
|
||||
caps.Categories.AddCategoryMapping(97, TorznabCatType.TVHD, "Boxset TV HEVC");
|
||||
caps.Categories.AddCategoryMapping(147, TorznabCatType.TVSD, "Boxset TV SD");
|
||||
|
||||
return caps;
|
||||
}
|
||||
|
||||
@@ -316,7 +316,6 @@ namespace Jackett.Updater
|
||||
"Definitions/channelx.yml",
|
||||
"Definitions/cili180.yml", // renamed to liaorencili
|
||||
"Definitions/cilipro.yml",
|
||||
"Definitions/cinefilhd.yml",
|
||||
"Definitions/cloudtorrents.yml",
|
||||
"Definitions/cooltorrent.yml",
|
||||
"Definitions/cpasbiensi.yml",
|
||||
@@ -326,7 +325,6 @@ namespace Jackett.Updater
|
||||
"Definitions/cztorrent.yml",
|
||||
"Definitions/danishbytes.yml", // migrated to C#
|
||||
"Definitions/dariustracker.yml",
|
||||
"Definitions/dark-shadow.yml",
|
||||
"Definitions/darktracker.yml",
|
||||
"Definitions/darmowetorenty.yml", // migrated to C#
|
||||
"Definitions/datascene.yml", // switch to *-API #8682
|
||||
@@ -402,6 +400,7 @@ namespace Jackett.Updater
|
||||
"Definitions/hdreactor.yml", // renamed to hdhouse
|
||||
"Definitions/hdspain.yml",
|
||||
"Definitions/hdstreet.yml",
|
||||
"Definitions/hellashut.yml",
|
||||
"Definitions/hellastz.yml",
|
||||
"Definitions/hidden-palace.yml",
|
||||
"Definitions/hon3yhd-net.yml",
|
||||
|
||||
Reference in New Issue
Block a user