Compare commits

...

64 Commits

Author SHA1 Message Date
Garfield69
f5a39988cc torrentsurf -> xtremebytes resolves #9951 2022-11-02 17:40:54 +13:00
Garfield69
cab5c22735 dontorrent: new domain 2022-11-02 16:18:59 +13:00
Garfield69
d896d80133 add ihdbits a private Chinese site. resolves #13692 2022-11-02 16:08:02 +13:00
Garfield69
a344956492 add theoldschool a private French site. resolves #13691 2022-11-02 15:17:54 +13:00
Garfield69
8929747480 spidertk: add new cat 2022-11-01 16:54:52 +13:00
Garfield69
03e03a1d34 girotorrent: new layout selectors 2022-11-01 16:40:54 +13:00
Garfield69
540af2eb31 vsttorrents: new layout selectors
WP 6.0.3
2022-11-01 16:29:12 +13:00
Garfield69
c62c1a2e57 exttorrents: spread multipage requests 2022-11-01 16:28:43 +13:00
Garfield69
9d27c791d3 brsociety: add new cat 2022-10-31 17:15:48 +13:00
Czechball
ca1eb7ff7f fix UHDBits description (#13688) 2022-10-31 09:21:35 +13:00
ilike2burnthing
c5b604c709 hdturk: say thank you before download. resolves #13684 2022-10-29 22:02:09 +01:00
Garfield69
befa49ea80 crnaberza: add new cat 2022-10-29 17:44:05 +13:00
Garfield69
d056a8e054 Revert "BTN: add tvdbid to tvsearch"
This reverts commit 2a7878f487.
2022-10-29 16:01:09 +13:00
Garfield69
2a7878f487 BTN: add tvdbid to tvsearch 2022-10-29 15:52:53 +13:00
Garfield69
360e18f1d5 torrentqq: bump domain 2022-10-28 16:00:16 +13:00
Garfield69
42bc31c324 add nebulanceAPI. resolves #12125 2022-10-28 14:38:30 +13:00
Garfield69
d740d478da worldoftomorrow: add new cat 2022-10-27 17:19:50 +13:00
Garfield69
aca9162c70 pterclub: fix game selectors 2022-10-27 17:16:04 +13:00
Garfield69
1b0ec029c9 redbits: add new cat 2022-10-27 17:12:44 +13:00
Garfield69
8c33e64605 dontorrent: new domain 2022-10-27 16:24:00 +13:00
Garfield69
54b56a4be6 nitro: add front notice bypass. #5949 2022-10-27 16:23:46 +13:00
Garfield69
bf581f690e bitbazis: site changed category selector once again! 2022-10-26 15:47:18 +13:00
Garfield69
0a9ef3d586 btsow: new domain 2022-10-26 15:34:20 +13:00
Garfield69
9851993b23 breizhpeers: removed. resolves #13349 2022-10-26 13:04:04 +13:00
Garfield69
3da72a6411 soundpark: removed. resolves #9748 2022-10-26 06:59:08 +13:00
Garfield69
948c84cad5 turkseed: new date parsing required 2022-10-25 16:46:56 +13:00
Garfield69
b9170c83d9 bitbazis: switchto categorydesc
they have dropped the category id from the results, force to use the img title for matching.
updated cats desc
2022-10-25 16:20:14 +13:00
Garfield69
ae46abdc67 kufirc: CA expired 2022-10-25 16:18:49 +13:00
Garfield69
e2b6cea9b4 anilibria: series.string can be null 2022-10-25 15:35:15 +13:00
ilike2burnthing
db0f8a9a4b hqsource: removed, down for 30 days. resolves #13572 (#13677) 2022-10-24 18:45:05 +01:00
Garfield69
00c94fd05b Update README.md
trigger a build
the previous build is fubar
2022-10-24 18:32:20 +13:00
Garfield69
64e0913e07 bitbazis: new logout selector 2022-10-24 16:43:49 +13:00
Garfield69
9c6a73f611 divxtotal: new domain 2022-10-24 16:06:53 +13:00
Garfield69
b9add2b927 pixelcove2fa: resolves #13675 2022-10-24 13:35:45 +13:00
Garfield69
b8c39a90cc rarbg: refine retry delay #13663
based on feedback from rarbg sysop
2022-10-24 13:23:36 +13:00
Diego Heras
b0ba1ea226 core: double click in tray icon to open web ui. resolves #13067 (#13674) 2022-10-24 00:21:47 +02:00
Diego Heras
55af1cf046 core: use baseurloverride config in download links. resolves #13113 (#13673) 2022-10-24 00:01:32 +02:00
Diego Heras
4cb2642139 core: validate flaresolverr url. resolves #13222 (#13672) 2022-10-23 23:31:30 +02:00
Diego Heras
cd47e95087 extratorrent-st: add missing category (#13670) 2022-10-23 20:53:19 +01:00
Garfield69
788c8e53f1 rarbg: refine retry logging #13663 2022-10-23 20:30:24 +13:00
Garfield69
f53db2f016 btmirror: removed. resolves #13257 2022-10-23 16:20:06 +13:00
Garfield69
6d4958c796 teamctgame: update engine tag 2022-10-23 16:16:41 +13:00
Garfield69
c507dc255a rarbg: fix retry loop. only retry once. #13663 2022-10-23 15:23:32 +13:00
ilike2burnthing
e42c149979 rarbg: change appid for monitoring. #13663 2022-10-23 01:10:17 +01:00
Garfield69
85585c2c02 rarbg: hack to enforce 2.5s delay between all queries. #13663
remove the baseIndexer retry logic (which violated api limiter rules) and add a handler for error 520=wait 8 secs and retry.
2022-10-23 11:46:53 +13:00
Garfield69
0f0822f52e torrentsir: bump domain 2022-10-22 16:16:22 +13:00
ilike2burnthing
00dc9f5dcc rutracker: no regex replace when SearchTerm is null. #13660 (#13664)
fix for https://github.com/Jackett/Jackett/pull/13661#issuecomment-1286567697
2022-10-21 16:32:21 +01:00
Garfield69
4502f5f771 thenewfun: new domain. resolves #13060 2022-10-21 18:08:15 +13:00
Garfield69
878460d509 torrentwiz: bump domain 2022-10-21 14:15:55 +13:00
Garfield69
628fd32385 torrentview: new domain 2022-10-21 14:15:43 +13:00
Garfield69
924861c96a torrentqq: bump domain 2022-10-21 14:15:32 +13:00
Garfield69
933f33aa4e torlook: CA expired 2022-10-21 14:15:19 +13:00
ilike2burnthing
ab7e42ec84 rutracker: fix search by season, add search by episode. resolves #13660 (#13661) 2022-10-20 16:46:29 +01:00
Garfield69
9709db9aac greatposterwall: move the chinese part of th title to the description. resolves #13646 2022-10-20 19:08:12 +13:00
Garfield69
4179392d52 dontorrent: new domain 2022-10-20 14:36:07 +13:00
ilike2burnthing
6194160d17 Revert "yts: add official proxies" 2022-10-19 22:35:43 +01:00
ilike2burnthing
f347e9560c yts: add official proxies 2022-10-19 17:05:28 +01:00
Garfield69
88242ba999 rarbg: change applid #13510 2022-10-19 16:57:32 +13:00
ilike2burnthing
a6032c46da bluesbrothers: removed, down for 30 days. resolves #12633 (#13655) 2022-10-17 05:06:43 +01:00
ilike2burnthing
10499c6919 anaschcc: removed, down for 30 days. resolves #10843 (#13654) 2022-10-17 05:03:30 +01:00
ilike2burnthing
fd5a765d98 assorted dutch indexers: removed, dead. resolves #5726 resolves #2651 resolves #12767 (#13653) 2022-10-17 04:57:03 +01:00
Garfield69
3c81760067 divxtotal: new domain 2022-10-17 15:17:19 +13:00
Garfield69
24b472d8e1 add traht a Russian 3x public site. resolves #13649 2022-10-17 09:25:30 +13:00
ilike2burnthing
6663bea1f5 finelite: fix title selector. #13642 2022-10-16 12:57:50 +01:00
51 changed files with 878 additions and 1396 deletions

View File

@@ -46,7 +46,6 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
* BT4G
* BTDIGG
* BTMET
* BTmirror
* BTSOW
* Byrutor
* CloudTorrents
@@ -159,6 +158,7 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
* TorrentWhiz ( 토렌트위즈)
* Torrentz2eu
* Torrentz2nz
* TrahT
* truPornolabs
* Underverse
* UnionDHT
@@ -223,7 +223,6 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
* Sharewood
* SkTorrent
* SkTorrent-org
* SoundPark
* themixingbowl (TMB)
* Toloka.to
* Torrent-Explosiv
@@ -256,7 +255,6 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
* Aither
* AlphaRatio (AR)
* AmigosShareClub
* anasch.cc
* AnimeBytes (AB)
* AnimeTracker
* AnimeTorrents (AnT) [![(invite needed)][inviteneeded]](#)
@@ -288,7 +286,6 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
* BiTTuRK
* BJ-Share (BJ)
* BlueBird [![(invite needed)][inviteneeded]](#)
* Blues-Brothers
* Blutopia (BLU)
* Borgzelle [![(invite needed)][inviteneeded]](#)
* Boxing Torrents
@@ -296,7 +293,6 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
* BroadcasTheNet (BTN)
* BroadCity
* BrokenStones [![(invite needed)][inviteneeded]](#)
* BreizhPeers
* BrSociety
* BTNext (BTNT) [![(invite needed)][inviteneeded]](#)
* BTSCHOOL
@@ -336,7 +332,6 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
* DivTeam
* DocsPedia
* Dream Tracker
* EbookParadijs
* Ebooks-Shares
* Empornium (EMP) [![(invite needed)][inviteneeded]](#)
* eShareNet
@@ -350,7 +345,6 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
* Fantastiko
* Femdomcult
* FileList (FL)
* Film-Paleis
* FinElite (FE)
* FinVip
* FunFile (FF)
@@ -399,7 +393,7 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
* Hebits
* HHanClub
* House of Devil
* HQSource (HQS)
* iHDBits
* ImmortalSeed (iS)
* Immortuos
* Indietorrents [![(invite needed)][inviteneeded]](#)
@@ -432,7 +426,6 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
* magic-heaven
* Magico (Trellas) [![(invite needed)][inviteneeded]](#)
* Majomparádé (TurkDepo)
* MediaMaatjes
* MegamixTracker
* MeseVilág (Fairytale World)
* Milkie
@@ -536,6 +529,7 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
* The Geeks
* The New Retro
* The Occult [![(invite needed)][inviteneeded]](#)
* The Old School
* The Place [![(invite needed)][inviteneeded]](#)
* The Shinning (TsH)
* The Show
@@ -830,7 +824,7 @@ To use it, please just request a free API key on [OMDb](http://www.omdbapi.com/a
- `-d, --DataFolder` Specify the location of the data folder (Must be an admin on Windows)
- e.g. --DataFolder="D:\Your Data\Jackett\".
- Don't use this on Unix (mono) systems. On Unix just adjust the HOME directory of the user to the datadir or set the XDG_CONFIG_HOME environment variable.
- Don't use this on Unix (mono) systems. On Unix just adjust the HOME directory of the user to the data folder or set the XDG_CONFIG_HOME environment variable.
- `--NoRestart` Don't restart after update

View File

@@ -1,161 +0,0 @@
---
id: anaschcc
name: anasch.cc
description: "anasch.cc is a Private Torrent Tracker for MOVIES / TV / GENERAL"
language: en-US
type: private
encoding: UTF-8
links:
- https://anasch.cc/
caps:
categorymappings:
- {id: 1, cat: Movies, desc: Movies}
- {id: 2, cat: TV, desc: TV}
- {id: 3, cat: TV, desc: Animation}
- {id: 5, cat: Audio, desc: Music}
- {id: 12, cat: XXX, desc: Porn}
- {id: 29, cat: TV/Sport, desc: Sports}
- {id: 37, cat: PC, desc: Software}
- {id: 38, cat: Console, desc: Games}
modes:
search: [q]
tv-search: [q, season, ep]
movie-search: [q]
music-search: [q]
settings:
- name: username
type: text
label: Username
- name: password
type: password
label: Password
- name: freeleech
type: checkbox
label: Search freeleech only
default: false
- name: info_tpp
type: info
label: Results Per Page
default: For best results, change the <b>Torrents per page:</b> setting to <b>100</b> on your account profile.
- name: sort
type: select
label: Sort requested from site
default: 3
options:
3: created
5: seeders
4: size
2: title
- name: type
type: select
label: Order requested from site
default: 2
options:
2: desc
1: asc
login:
path: index.php?page=login
method: form
form: form[action^="index.php?page=login"]
inputs:
uid: "{{ .Config.username }}"
pwd: "{{ .Config.password }}"
error:
- selector: div[data-validate^="Valid"]
message:
selector: div[data-validate^="Valid"]
attribute: data-validate
test:
path: index.php
selector: a[href="logout.php"]
search:
paths:
- path: index.php
inputs:
page: torrents
active: 0
search: "{{ .Keywords }}"
$raw: "{{ range .Categories }}category[]={{.}}&{{end}}"
# 1 freeleech, 2 2x upload, 3 featured
discount[]: "{{ if .Config.freeleech }}1{{ else }}{{ end }}"
order: "{{ .Config.sort }}"
by: "{{ .Config.type }}"
rows:
selector: "table.lista tbody tr:has(a[href^=\"index.php?page=torrent-details\"])"
fields:
category:
selector: td a[href^="index.php?page=torrents&category[]="]
attribute: href
filters:
- name: querystring
args: category[]
title:
selector: td a[href^="index.php?page=torrent-details"]
details:
selector: td a[href^="index.php?page=torrent-details"]
attribute: href
download:
selector: td a[href^="download.php"]
attribute: href
imdbid:
selector: a[href^="index.php?page=torrent-details"]
attribute: onmouseover
filters:
- name: replace
args: ["javascript:ShowImage('/images/imdb/tt0000000.jpg')", ""]
poster:
selector: td a[href^="index.php?page=torrent-details"]
attribute: onmouseover
filters:
- name: replace
args: ["javascript:ShowImage('", ""]
- name: replace
args: ["')", ""]
- name: replace
args: ["/images/imdb/0000000.jpg", ""]
genre:
selector: td.lista.p-2
filters:
- name: regexp
args: "Genre: (.+?)$"
- name: replace
args: [" & ", "_&_"]
description:
text: "{{ .Result.genre }}"
size:
selector: td:nth-child(5)
date:
# 22/01/21 01:28
selector: td:nth-child(6)
filters:
- name: append
args: " +00:00" # auto adjusted by site account profile - doesn't adjust for DST
- name: dateparse
args: "02/01/06 15:04 -07:00"
seeders:
selector: td:nth-child(7)
leechers:
selector: td:nth-child(8)
grabs:
selector: td:nth-child(9)
downloadvolumefactor:
case:
img[src*="freeleech.png"]: 0
"*": 1
uploadvolumefactor:
case:
img[src*="x2u.png"]: 2
"*": 1
minimumratio:
text: 3.0
minimumseedtime:
# 5 days (as seconds = 5 x 24 x 60 x 60)
text: 432000
# xbtit

View File

@@ -51,8 +51,9 @@ search:
selector: quality.string
_series:
selector: series.string
optional: true
title:
text: "{{ .Result.title_ru }} / {{ .Result.title_en }}{{ if .Result.title_alternative }} / {{ .Result.title_alternative }}{{ else }}{{ end }} ({{ .Result.year }}) [{{ .Result._quality }}] - {{ .Result._series }}"
text: "{{ .Result.title_ru }} / {{ .Result.title_en }}{{ if .Result.title_alternative }} / {{ .Result.title_alternative }}{{ else }}{{ end }} ({{ .Result.year }}) [{{ .Result._quality }}]{{ if .Result._series }} - {{ .Result._series }}{{ else }}{{ end }}"
_code:
selector: ..code
details:

View File

@@ -12,10 +12,10 @@ caps:
categorymappings:
- {id: 85, cat: Movies/SD, desc: "Film/Cam/Hun"}
- {id: 86, cat: Movies/SD, desc: "Film/Cam/Eng"}
- {id: 15, cat: Movies/SD, desc: "Film/XviD/Hun"}
- {id: 16, cat: Movies/SD, desc: "Film/XviD/Eng"}
- {id: 34, cat: Movies/HD, desc: "Film/x264/Hun"}
- {id: 48, cat: Movies/HD, desc: "Film/x264/Eng"}
- {id: 15, cat: Movies/SD, desc: "Film/SD/Hun"}
- {id: 16, cat: Movies/SD, desc: "Film/SD/Eng"}
- {id: 17, cat: Movies/DVD, desc: "Film/DVD/Hun"}
- {id: 19, cat: Movies/DVD, desc: "Film/DVD/Eng"}
- {id: 83, cat: Movies/HD, desc: "Film/HD/Hun"}
- {id: 82, cat: Movies/HD, desc: "Film/HD/Eng"}
- {id: 94, cat: Movies/HD, desc: "Film/FHD/Hun"}
@@ -37,18 +37,16 @@ caps:
- {id: 49, cat: PC/0day, desc: "Program/Rip"}
- {id: 14, cat: PC, desc: "Program/Egyéb"}
- {id: 64, cat: Movies, desc: "Film/Pack"}
- {id: 24, cat: Audio/Video, desc: "Videóklip"}
- {id: 70, cat: Audio/Audiobook, desc: "Hangoskönyv"}
- {id: 27, cat: Books/EBook, desc: "Könyv/Hun"}
- {id: 50, cat: Books/EBook, desc: "Könyv/Eng"}
- {id: 65, cat: Other, desc: "Egyéb"}
# the following are no longer in the cat list in the search page, but are still in the profile cat list
- {id: 67, cat: PC/Mobile-Android, desc: "Program/Android"}
- {id: 17, cat: Movies/DVD, desc: "Film/DVD/Hun"}
- {id: 19, cat: Movies/DVD, desc: "Film/DVD/Eng"}
- {id: 24, cat: Audio/Video, desc: "Videóklipp"}
- {id: 33, cat: XXX/SD, desc: "Film/SD/XXX"}
- {id: 89, cat: XXX/x264, desc: "Film/HD/XXX"}
- {id: 66, cat: XXX/ImageSet, desc: "Képek/XXX"}
# the following are no longer in the cat list in the search page, but are still in the profile cat list
- {id: 67, cat: PC/Mobile-Android, desc: "Program/Mobil"}
modes:
search: [q]
@@ -95,7 +93,7 @@ login:
cookie: "{{ .Config.cookie }}"
test:
path: index.php
selector: span[onclick^="window.open('logout.php?k="]
selector: i[onclick^="window.open('logout.php?k="]
search:
paths:
@@ -121,12 +119,9 @@ search:
selector: "table[width=\"100%\"][align=\"center\"]:first-child tbody tr:has(div.tooltip){{ if .Config.freeleech }}:has(i:contains(\"(Free)\")){{ else }}{{ end }}"
fields:
category:
selector: a[href*=".php?cat="]
attribute: href
filters:
- name: querystring
args: cat
categorydesc:
selector: img[src^="pic/kategoria/"]
attribute: title
genre:
selector: span.tooltiptext
description:

View File

@@ -1,192 +0,0 @@
---
id: bluesbrothers
name: Blues-Brothers
description: "Blues-Brothers is a Private Torrent Tracker for MOVIES / TV / GENERAL"
language: en-US
type: private
encoding: UTF-8
links:
- https://blues-brothers.biz/
caps:
categorymappings:
- {id: 9, cat: TV/Anime, desc: "Anime"}
- {id: 1, cat: PC/0day, desc: "Apps"}
- {id: 17, cat: Audio/Audiobook, desc: "AudioBooks"}
- {id: 16, cat: Books/EBook, desc: "Ebooks"}
- {id: 12, cat: PC/Games, desc: "Games PC"}
- {id: 7, cat: Console/PS3, desc: "Games PS3"}
- {id: 19, cat: Console/Wii, desc: "Games Wii"}
- {id: 8, cat: Console/XBox 360, desc: "Games XBOX360"}
- {id: 18, cat: PC/Mac, desc: "MAC"}
- {id: 41, cat: PC/Mobile-Android, desc: "Mobile"}
- {id: 26, cat: Movies, desc: "Movie BDRip"}
- {id: 29, cat: Movies/HD, desc: "Movie BluRay 1080p"}
- {id: 28, cat: Movies/HD, desc: "Movie BluRay 720p"}
- {id: 27, cat: Movies/SD, desc: "Movie BRRip"}
- {id: 24, cat: Movies/SD, desc: "Movie CAM/TS"}
- {id: 23, cat: Movies/DVD, desc: "Movie DVD-R"}
- {id: 11, cat: Movies/SD, desc: "Movie DVDRip"}
- {id: 25, cat: Movies/SD, desc: "Movie DVDSCR/R5"}
- {id: 30, cat: Movies, desc: "Movie Packs"}
- {id: 10, cat: Movies/HD, desc: "Movie XviD x264"}
- {id: 6, cat: XXX, desc: "Movie XXX"}
- {id: 22, cat: Audio/Lossless, desc: "Music Flac"}
- {id: 21, cat: Audio/MP3, desc: "Music MP3"}
- {id: 14, cat: Audio, desc: "Music Packs"}
- {id: 20, cat: Audio/Video, desc: "Music Videos"}
- {id: 34, cat: TV, desc: "TV Packs"}
- {id: 36, cat: TV/HD, desc: "TV X264 HD"}
- {id: 37, cat: TV/SD, desc: "TV X264 SD"}
- {id: 35, cat: TV/SD, desc: "TV XviD"}
- {id: 38, cat: Other, desc: "VIP"}
- {id: 40, cat: Other, desc: "VIP ONLY"}
modes:
search: [q]
tv-search: [q, season, ep, genre]
movie-search: [q, genre]
music-search: [q, genre]
book-search: [q, genre]
settings:
- name: username
type: text
label: Username
- name: password
type: password
label: Password
- name: freeleech
type: checkbox
label: Search freeleech only
default: false
- name: 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"]
inputs:
username: "{{ .Config.username }}"
password: "{{ .Config.password }}"
use_ssl: 1
perm_ssl: ""
returnto: /
error:
- selector: table.main:contains("Login failed!")
message:
selector: table tr td.colhead2
test:
path: /
selector: a[href*="logout.php?hash_please="]
search:
paths:
# https://blues-brothers.biz/browse.php?c27=1&c28=1&c29=1&search=&searchin=title&incldead=1&sort=4&type=desc
- path: browse.php
inputs:
$raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
search: "{{ if .Query.Genre }}{{ .Query.Genre }} {{ else }}{{ end }}{{ .Keywords }}"
# title, descr, genre, all
searchin: "{{ if .Query.Genre }}all{{ else }}title{{ end }}"
# 0 active, 1 incldead, 2 onlydead
incldead: 1
only_free: "{{ if .Config.freeleech }}1{{ else }}{{ end }}"
sort: "{{ .Config.sort }}"
type: "{{ .Config.type }}"
keywordsfilters:
- name: re_replace
args: ["(\\w+)", " +$1"] # prepend + to each word
rows:
selector: table.table-bordered tr:has(a[href^="download.php?torrent="])
fields:
category:
selector: a[href^="browse.php?cat="]
attribute: href
filters:
- name: querystring
args: cat
title:
selector: a[href^="details.php?id="]
attribute: onmouseover
filters:
- name: regexp
args: "Tip\\('<b>(.+?)</b>"
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="]
attribute: onmouseover
filters:
- name: regexp
args: src=\\'(.+?)\\'
- name: replace
args: ["./pic/noposter.png", ""]
genre:
selector: i
description:
text: "{{ .Result.genre }}"
files:
selector: td:nth-child(5)
date_day:
selector: td:nth-child(7):contains("day")
optional: true
filters:
- name: fuzzytime
date_year:
selector: td:nth-child(7):not(:contains("day"))
optional: true
filters:
- name: append
args: " +00:00" # auto adjusted by site account profile
- name: dateparse
args: "Jan 2 2006 03:04 PM -07:00"
date:
text: "{{ if or .Result.date_year .Result.date_day }}{{ or .Result.date_year .Result.date_day }}{{ 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.info:contains(\"[FREE]\")": 0
"a.info:contains(\"[SILVER]\")": 0.5
"*": 1
uploadvolumefactor:
text: 1
minimumratio:
text: 1.0
minimumseedtime:
# 2 days (as seconds = 2 x 24 x 60 x 60)
text: 172800
# U-232 V5

View File

@@ -16,6 +16,7 @@ caps:
- {id: 3, cat: Audio/Audiobook, desc: "Audiobooks"}
- {id: 4, cat: Other, desc: "Arquivos de Auxilio"}
- {id: 6, cat: Other, desc: "Graduação"}
- {id: 7, cat: TV/Documentary, desc: "Documentários"}
modes:
search: [q]

View File

@@ -1,102 +0,0 @@
---
id: btmirror
name: BTmirror
description: "BTmirror is a Public BitTorrent DHT search engine."
language: en-US
type: public
encoding: UTF-8
links:
- https://btsao.com/
- https://btmirror.unblockit.nz/
legacylinks:
- https://btmirror.unblockit.blue/
- https://btmirror.unblockit.name/
- https://btmirror.unblockit.ist/
- https://btmirror.unblockit.bet/
- https://btmirror.unblockit.cat/
caps:
categories:
Other: Other
modes:
search: [q]
tv-search: [q, season, ep]
movie-search: [q]
music-search: [q]
book-search: [q]
settings:
- name: info_8000
type: info
label: About BTmirror Categories
default: BTmirror does not return categories in its search results.</br>To add to your Apps' Torznab indexer, replace all categories with 8000(Other).
- name: sort
type: select
label: Sort requested from site
default: create_time
options:
relavance: relevance
create_time: created
length: size
download:
infohash:
hash:
selector: p.magnet a
attribute: href
filters:
- name: regexp
args: ([A-F|a-f|0-9]{40})
title:
selector: p.magnet a
attribute: href
filters:
- name: regexp
args: "&dn=(.+?)$"
- name: validfilename
search:
# https://btsao.com/en/search/2022/?c=&s=create_time
# returns 10 results per page
paths:
- path: "en/search/{{ if .Keywords }}{{ .Keywords }}{{ else }}{{ .Today.Year }}{{ end }}/"
- path: "en/search/{{ if .Keywords }}{{ .Keywords }}{{ else }}{{ .Today.Year }}{{ end }}/2"
inputs:
c: ""
s: "{{ .Config.sort }}"
rows:
selector: div.ssbox
fields:
category:
text: Other
title:
selector: h3
details:
selector: h3 a
attribute: href
download:
selector: h3 a
attribute: href
date:
selector: span:contains("date:") b
filters:
- name: dateparse
args: "2006-01-02"
size:
selector: span:contains("size:") b
files:
selector: span:contains("files:") b
grabs:
selector: span:contains("人气:") b
seeders:
text: 1
leechers:
text: 1
downloadvolumefactor:
text: 0
uploadvolumefactor:
text: 1
# engine: n/a

View File

@@ -7,9 +7,8 @@ type: public
encoding: UTF-8
# use https://tellme.pw/btsow to find the new domain
links:
- https://btsow.sbs/
- https://btsow.quest/
legacylinks:
- https://btsow.website/
- https://btsow.online/
- https://btsow.work/
- https://btsow.store/
@@ -24,6 +23,7 @@ legacylinks:
- https://btsow.bar/
- https://btsow.click/
- https://btsow.cfd/
- https://btsow.sbs/
caps:
categories:

View File

@@ -26,6 +26,7 @@ caps:
- {id: 61, cat: Movies/HD, desc: "HD Mesano"}
- {id: 50, cat: PC/Games, desc: "Igre"}
- {id: 44, cat: Books, desc: "Knjige"}
- {id: 80, cat: TV, desc: "Paketi"}
- {id: 46, cat: Audio, desc: "Koncerti"}
- {id: 58, cat: Audio/Lossless, desc: "Lossless/Domaće"}
- {id: 59, cat: Audio/Lossless, desc: "Lossless/Strano"}

View File

@@ -1,190 +0,0 @@
---
id: ebookparadijs
name: EbookParadijs
description: "EbookParadijs is a DUTCH Private Tracker for EBOOKS"
language: nl-NL
type: private
encoding: UTF-8
links:
- https://www.ebookparadijs.org/
caps:
categorymappings:
- {id: 2, cat: Books/EBook, desc: "Roman"}
- {id: 3, cat: Books/EBook, desc: "Thriller"}
- {id: 4, cat: Books/EBook, desc: "Diverse"}
- {id: 7, cat: Books/EBook, desc: "Jeugd"}
- {id: 8, cat: Books/EBook, desc: "Oorlog"}
- {id: 9, cat: Books/EBook, desc: "Luisterboeken"}
- {id: 10, cat: Books/EBook, desc: "Stripboeken"}
- {id: 11, cat: Books/EBook, desc: "Crime"}
- {id: 13, cat: Books/EBook, desc: "Detective"}
- {id: 15, cat: Books/EBook, desc: "Erothiek"}
- {id: 16, cat: Books/EBook, desc: "Tijdschriften"}
- {id: 17, cat: Books/EBook, desc: "Hobby"}
- {id: 19, cat: Books/EBook, desc: "Medisch"}
- {id: 21, cat: Books/EBook, desc: "Sport"}
- {id: 50, cat: Books/EBook, desc: "Kookboeken"}
- {id: 51, cat: Books/EBook, desc: "Fantasy"}
- {id: 52, cat: Books/EBook, desc: "Kerst"}
- {id: 53, cat: Books/EBook, desc: "Waargebeurd"}
- {id: 56, cat: Books/EBook, desc: "Engels"}
- {id: 57, cat: Books/EBook, desc: "Maatschappij"}
- {id: 58, cat: Books/EBook, desc: "Biografie"}
- {id: 61, cat: Books/EBook, desc: "Geschiedenis"}
- {id: 60, cat: Books/EBook, desc: "Sci-Fi"}
- {id: 64, cat: Books/EBook, desc: "Literatuur"}
- {id: 65, cat: Books/EBook, desc: "Non-Fiction"}
- {id: 66, cat: Books/EBook, desc: "Bladmuziek"}
- {id: 67, cat: Books/EBook, desc: "young Adult"}
- {id: 68, cat: Books/EBook, desc: "feelgood romans"}
modes:
search: [q]
book-search: [q]
settings:
- name: username
type: text
label: Username
- name: password
type: password
label: Password
- name: flaresolverr
type: info
label: FlareSolverr
default: This site may use DDoS-Guard Protection, therefore Jackett requires <a href="https://github.com/Jackett/Jackett#configuring-flaresolverr" target="_blank">FlareSolverr</a> to access it.
- name: freeleech
type: checkbox
label: Filter freeleech only
default: false
- name: thankyou
type: text
label: Thank You Comment
- name: info_comment
type: info
label: Thank you comment
default: This site requires you to leave a Thank You comment before you can download. Enter your personalised comment above.
login:
path: login.php
method: form
form: form[action="takelogin.php"]
inputs:
username: "{{ .Config.username }}"
password: "{{ .Config.password }}"
returnto: "/"
error:
- selector: td.embedded:contains("fout")
test:
path: /
selector: a[href="logout.php"]
download:
before:
# https://www.ebookparadijs.org/comment.php?action=add&tid=23079
path: comment.php
method: post
inputs:
action: add
tid: "{{ .DownloadUri.Query.id }}"
text: "{{ .Config.thankyou }}"
submit: Opslaan
selectors:
- selector: a[href^="download.php?id="]
attribute: href
search:
paths:
- path: browse.php
inputs:
$raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
search: "{{ .Keywords }}"
incldead: 1
rows:
selector: "table.mainouter{{ if .Config.freeleech }}:has(img[src=\"pic/freedlfsu.gif\"]){{ else }}{{ end }}"
filters:
- name: andmatch
fields:
category:
selector: a[href^="browse.php?cat="]
attribute: href
filters:
- name: querystring
args: cat
poster:
selector: img[src*="/covers/"]
attribute: src
title:
selector: a[href^="details.php?id="]
details:
selector: a[href^="details.php?id="]
attribute: href
download:
selector: a[href^="details.php?id="]
attribute: href
size:
selector: td:nth-child(4) table tr td:nth-child(2)
filters:
- name: regexp
args: "(.+?) in"
files:
selector: td:nth-child(4) table tr td:nth-child(2)
filters:
- name: regexp
args: "in (\\d+) bestan"
grabs:
selector: td:nth-child(4) table tr:nth-child(2) td:nth-child(1)
date:
selector: td:nth-child(4) table tr:nth-child(2) td:last-child
filters:
- name: replace
args: ["januari", "January"]
- name: replace
args: ["februari", "February"]
- name: replace
args: ["maart", "March"]
- name: replace
args: ["april", "April"]
- name: replace
args: ["mei", "May"]
- name: replace
args: ["juni", "June"]
- name: replace
args: ["juli", "July"]
- name: replace
args: ["augustus", "August"]
- name: replace
args: ["september", "September"]
- name: replace
args: ["oktober", "October"]
- name: replace
args: ["november", "November"]
- name: replace
args: ["december", "December"]
- name: re_replace
args: ["\\s*om\\s*", " "]
- name: append
args: " +01:00" # CET
- name: dateparse
args: "2 January 2006 15:04:05 -07:00"
seeders_optional:
optional: true
selector: td:nth-child(4) table tr:nth-child(3) td:nth-child(5) font b
seeders:
text: "{{ if .Result.seeders_optional }}{{ .Result.seeders_optional }}{{ else }}0{{ end }}"
leechers_optional:
optional: true
selector: td:nth-child(4) table tr:nth-child(3) td:nth-child(5) font font b
leechers:
text: "{{ if .Result.leechers_optional }}{{ .Result.leechers_optional }}{{ else }}0{{ end }}"
downloadvolumefactor:
case:
img[src="pic/freedlfsu.gif"]: 0
"*": 1
uploadvolumefactor:
text: 1
# minimumratio: ratioless site, uses credit points instead.
# engine n/a

View File

@@ -71,6 +71,7 @@ caps:
- {id: Comics, cat: Books/Comics, desc: Books Comics}
- {id: Ebooks, cat: Books/EBook, desc: Books Ebook}
- {id: Other, cat: Other/Misc, desc: Other}
- {id: Other Applications, cat: PC, desc: Other Applications}
modes:
search: [q]

View File

@@ -5,6 +5,7 @@ description: "EXT Torrents is a Public torrent site for MOVIES / TV / GENERAL"
language: en-US
type: public
encoding: UTF-8
requestDelay: 2.5
links:
- https://ext.to/
- https://site.extto.com/

View File

@@ -1,199 +0,0 @@
---
id: film-paleis
name: Film-Paleis
description: "Film-Paleis is a DUTCH Private Torrent Tracker for MOVIES / TV / GENERAL"
language: nl-NL
type: private
encoding: UTF-8
links:
- https://www.film-paleis.me/
legacylinks:
- http://www.film-paleis.me/
caps:
categorymappings:
- {id: 2, cat: Movies/BluRay, desc: "Bluray/HD"}
- {id: 3, cat: Movies/DVD, desc: "DVD Kids"}
- {id: 4, cat: Audio/Video, desc: "DVD Muziek"}
- {id: 5, cat: Movies/DVD, desc: "DVD Films"}
- {id: 7, cat: Movies/UHD, desc: "4K films"}
- {id: 8, cat: XXX, desc: "Erotiek"}
- {id: 9, cat: PC/Mobile-Other, desc: "GSM/Navigatie"}
- {id: 10, cat: Audio, desc: "Muziek Album"}
- {id: 11, cat: Audio/Other, desc: "Muziek Diverse"}
- {id: 12, cat: Console/NDS, desc: "Nintendo"}
- {id: 13, cat: Movies, desc: "Classic"}
- {id: 15, cat: Other, desc: "Overige"}
- {id: 16, cat: PC/0day, desc: "PC Software"}
- {id: 17, cat: PC, desc: "PC Spellen"}
- {id: 19, cat: TV, desc: "TV Series"}
- {id: 21, cat: Movies/SD, desc: "Divx/Xvid"}
- {id: 24, cat: Books/EBook, desc: "E-Books"}
- {id: 26, cat: Audio/Other, desc: "Cabaret"}
- {id: 27, cat: TV/Documentary, desc: "Documentaire"}
- {id: 31, cat: Movies/HD, desc: "FP-release"}
- {id: 32, cat: Audio/Audiobook, desc: "Luister Boeken"}
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: flaresolverr
type: info
label: FlareSolverr
default: This site may use DDoS-Guard Protection, therefore Jackett requires <a href="https://github.com/Jackett/Jackett#configuring-flaresolverr" target="_blank">FlareSolverr</a> to access it.
- name: thankyou
type: text
label: Thank You Comment
- name: info
type: info
label: Thank you comment
default: This site requires you to leave a Thank You comment before you can download. Enter your personalised comment above. Minimum of at least 10 characters.
login:
path: login.php
method: form
form: form[action="takelogin.php"]
inputs:
username: "{{ .Config.username }}"
password: "{{ .Config.password }}"
returnto: "/"
error:
- selector: td.embedded:contains("fout")
test:
path: /
selector: a[href="logout.php"]
download:
before:
path: comment.php
method: post
inputs:
action: add
tid: "{{ .DownloadUri.Query.id }}"
text: "{{ .Config.thankyou }}"
submit: Opslaan
selectors:
- selector: a[href^="download.php?id="]
attribute: href
search:
paths:
- path: browse.php
inputs:
$raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}"
incldead: 1
# does not return imdb link in results
keywordsfilters:
- name: re_replace # S01E02 to 1 2
args: ["(?i)\\bS0*(\\d{1,2})\\s*E0*(\\d{1,2})\\b", "$1 $2"]
- name: re_replace # S01 to 1
args: ["(?i)\\bS0*(\\d{1,2})\\b", "$1"]
rows:
selector: table.mainouter
filters:
- name: andmatch
fields:
title:
selector: a[href^="details.php?id="]
filters:
- name: re_replace
args: ["(?i)(seizoen\\s*)(\\d{1,2})\\s*(tot|t\/m|&|\\+)\\s*(\\d{1,2})", "S$2-$4"]
- name: re_replace
args: ["(?i)(seizoen\\s*)(\\d{1,2})", "S$2"]
- name: re_replace
args: ["(?i)(afl.\\s*|aflevering\\s*|ep.\\s*)(\\d{1,2})\\s*(tot|t\/m|&|\\+)\\s*(\\d{1,2})", "E$2-$4"]
- name: re_replace
args: ["(?i)(afl.\\s*|aflevering\\s*|ep.\\s*)(\\d{1,2})", "E$2"]
- name: re_replace
args: ["(?i)compleet", "Complete"]
details:
selector: a[href^="details.php?id="]
attribute: href
category:
selector: a[href^="browse.php?cat="]
attribute: href
filters:
- name: querystring
args: cat
download:
selector: a[href^="details.php?id="]
attribute: href
poster:
selector: img[src*="/covers/"]
attribute: src
size:
selector: td:nth-child(4) table tr td:nth-child(2)
filters:
- name: regexp
args: "(.+?) in"
files:
selector: td:nth-child(4) table tr td:nth-child(2)
filters:
- name: regexp
args: "in (\\d+) bestan"
grabs:
selector: td:nth-child(4) table tr:nth-child(2) td:nth-child(1)
date:
selector: td:nth-child(4) table tr:nth-child(2) td:nth-child(2)
filters:
- name: replace
args: ["januari", "January"]
- name: replace
args: ["februari", "February"]
- name: replace
args: ["maart", "March"]
- name: replace
args: ["april", "April"]
- name: replace
args: ["mei", "May"]
- name: replace
args: ["juni", "June"]
- name: replace
args: ["juli", "July"]
- name: replace
args: ["augustus", "August"]
- name: replace
args: ["september", "September"]
- name: replace
args: ["oktober", "October"]
- name: replace
args: ["november", "November"]
- name: replace
args: ["december", "December"]
- name: re_replace
args: ["\\s*om\\s*", " "]
- name: append
args: " +01:00" # CET
- name: dateparse
args: "2 January 2006 15:04:05 -07:00"
seeders_optional:
optional: true
selector: td:nth-child(4) table tr:nth-child(3) td:nth-child(5) font b
seeders:
text: "{{ if .Result.seeders_optional }}{{ .Result.seeders_optional }}{{ else }}0{{ end }}"
leechers_optional:
optional: true
selector: td:nth-child(4) table tr:nth-child(3) td:nth-child(5) font font b
leechers:
text: "{{ if .Result.leechers_optional }}{{ .Result.leechers_optional }}{{ else }}0{{ end }}"
downloadvolumefactor:
case:
img[src="pic/freedlfsu.gif"]: 0
"*": 1
uploadvolumefactor:
text: 1
# engine n/a

View File

@@ -108,7 +108,6 @@ search:
args: cat
title:
selector: a[href^="julkaisu.php?id="]
attribute: title
details:
selector: a[href^="julkaisu.php?id="]
attribute: href

View File

@@ -221,18 +221,18 @@ search:
- name: regexp
args: "src=(.+?) "
date:
selector: td:nth-last-child(8)
selector: td:nth-last-child(9)
filters:
- name: append
args: " +00:00" # auto adjusted by site account profile
- name: dateparse
args: "02/01/2006 -07:00"
seeders:
selector: td:nth-last-child(7)
selector: td:nth-last-child(8)
leechers:
selector: td:nth-last-child(6)
selector: td:nth-last-child(7)
grabs:
selector: td:nth-last-child(5)
selector: td:nth-last-child(6)
size:
selector: td:nth-last-child(4)
downloadvolumefactor:

View File

@@ -105,6 +105,16 @@ login:
path: index.php
selector: a[href*="/logout.php?logouthash="]
download:
before:
path: takethanks.php
method: post
inputs:
torrentid: "{{ .DownloadUri.Query.id }}"
selectors:
- selector: a[href*="download.php?id="]
attribute: href
search:
paths:
- path: browse.php
@@ -150,7 +160,7 @@ search:
- name: dateparse
args: "02-01-2006 15:04 -07:00"
download:
selector: a[href*="download.php?id="]
selector: div[id^="port-target-"] a
attribute: href
size:
selector: td:nth-child(5)

View File

@@ -1,138 +0,0 @@
---
id: hqsource
name: HQSource
description: "HQSource (HQS) is a POLISH Private Torrent Tracker for MOVIES / TV / GENERAL"
language: pl-PL
type: private
encoding: ISO-8859-2
links:
- https://hqsource.org/
legacylinks:
- http://hqsource.org/
caps:
categorymappings:
- {id: 36, cat: Movies/3D, desc: "3D"}
- {id: 3, cat: Movies/UHD, desc: "4K/UHD"}
- {id: 2, cat: Movies/HD, desc: "BDRip"}
- {id: 1, cat: Movies/HD, desc: "BRRip"}
- {id: 49, cat: Movies/BluRay, desc: "BluRay"}
- {id: 8, cat: Movies/SD, desc: "DVD"}
- {id: 4, cat: TV/HD, desc: "HDTV"}
- {id: 7, cat: Movies/SD, desc: "HQDVDRip"}
- {id: 45, cat: Movies/HD, desc: "MKV"}
- {id: 11, cat: Audio, desc: "Music"}
- {id: 6, cat: Other, desc: "Special"}
- {id: 46, cat: PC, desc: "Tools"}
- {id: 9, cat: TV, desc: "TV-Series"}
- {id: 5, cat: Movies, desc: "WEB-DL"}
- {id: 35, cat: XXX, desc: "XXX"}
modes:
search: [q]
tv-search: [q, season, ep]
movie-search: [q]
music-search: [q]
settings:
- name: username
type: text
label: Username
- name: password
type: password
label: Password
- name: pin
type: text
label: Pin
login:
path: takelogin.php
method: post
inputs:
username: "{{ .Config.username }}"
password: "{{ .Config.password }}"
pin: "{{ .Config.pin }}"
returnto: /
error:
- selector: td.embedded:has(h2:contains("failed"))
- selector: td.embedded:has(h2:contains("Error"))
test:
selector: a[href^="logout.php"]
path: browse.php
search:
paths:
- path: browse.php
inputs:
$raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
search: "{{ .Keywords }}"
incldead: 1
polish: 0
# 0 both, 1 name, 2 desc
blah: 1
rows:
selector: table#line > tbody > tr:has(a[href^="details.php?id="])
fields:
title:
selector: a[href^="details.php?id="]
details:
selector: a[href^="details.php?id="]
attribute: href
category:
selector: a[href^="browse.php?cat="]
attribute: href
filters:
- name: querystring
args: cat
download:
selector: a[href^="download.php/"]
attribute: href
_language:
optional: true
selector: img[src="pic/pl.png"]
filters:
- name: append
args: "Language: polish\n<br>"
_subbed:
optional: true
selector: img[src="pic/napisy.png"]
filters:
- name: append
args: "Subbed\n<br>"
description:
text: "{{ .Result._language }}{{ .Result._subbed }}"
imdbid:
selector: a[href*="imdb.com/title/tt"]
grabs:
selector: td:nth-child(6)
size:
selector: td:nth-child(5)
date:
selector: td:nth-child(2)
filters:
- name: regexp
args: (\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2})
- name: append
args: " +01:00" # CET
- name: dateparse
args: "2006-01-02 15:04:05 -07:00"
seeders:
selector: td:nth-child(7)
leechers:
selector: td:nth-child(8)
downloadvolumefactor:
case:
"img[src=\"pic/download2.gif\"]": 0
"*": 1
uploadvolumefactor:
case:
"img[src=\"pic/double.png\"]": 2
"*": 1
minimumratio:
text: 1.0
minimumseedtime:
# 3 days (as seconds = 3 x 24 x 60 x 60)
text: 259200
# engine tbd

View File

@@ -0,0 +1,192 @@
---
id: ihdbits
name: iHDBits
description: "iHDBits is a CHINESE Private Torrent Tracker for HD MOVIES / TV"
language: zh-CN
type: private
encoding: UTF-8
links:
- https://ihdbits.me/
caps:
categorymappings:
- {id: 401, cat: Movies, desc: "Movies/电影"}
- {id: 404, cat: TV/Documentary, desc: "Documentaries/纪录片"}
- {id: 405, cat: TV/Anime, desc: "Animations/动漫"}
- {id: 402, cat: TV, desc: "TV Series/连续剧"}
- {id: 403, cat: TV, desc: "TV Shows/综艺"}
- {id: 406, cat: Audio/Video, desc: "Music Videos/MV"}
- {id: 407, cat: TV/Sport, desc: "Sports/体育"}
- {id: 409, cat: Other, desc: "Misc/其他"}
- {id: 408, cat: Audio, desc: "Music/音乐"}
modes:
search: [q]
tv-search: [q, season, ep, imdbid, doubanid]
movie-search: [q, imdbid, doubanid]
music-search: [q]
settings:
- name: username
type: text
label: Username
- name: password
type: password
label: Password
- name: 2facode
type: text
label: 2FA code
- name: info_2fa
type: info
label: "About 2FA code"
default: "Only fill in the <b>2FA code</b> box if you have enabled <b>2FA</b> on the iHDBits Web Site. Otherwise just leave it empty."
- name: freeleech
type: checkbox
label: Search freeleech only
default: false
- name: sort
type: select
label: Sort requested from site
default: 4
options:
4: created
7: seeders
5: size
1: title
- name: type
type: select
label: Order requested from site
default: desc
options:
desc: desc
asc: asc
- name: info_tpp
type: info
label: Results Per Page
default: For best results, change the <b>Torrents per page:</b> setting to <b>100</b> on your account profile.
login:
path: login.php
method: form
form: form[action="takelogin.php"]
captcha:
type: image
selector: img[alt="CAPTCHA"]
input: imagestring
inputs:
secret: ""
username: "{{ .Config.username }}"
password: "{{ .Config.password }}"
two_step_code: "{{ .Config.2facode }}"
logout: ""
securelogin: ""
ssl: yes
trackerssl: yes
error:
- selector: td.embedded:has(h2:contains("失败"))
- selector: td.embedded:has(h2:contains("Failed"))
test:
path: index.php
selector: a[href="logout.php"]
search:
paths:
- path: torrents.php
inputs:
$raw: "{{ range .Categories }}cat{{.}}=1&{{end}}"
search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ end }}{{ if .Query.DoubanID }}{{ .Query.DoubanID }}{{ else }}{{ end }}{{ if or .Query.IMDBID .Query.DoubanID }}{{ else }}{{ .Keywords }}{{ end }}"
# 0 incldead, 1 active, 2 dead
incldead: 0
# 0 all, 1 normal, 2 free, 3 2x, 4 2xfree, 5 50%, 6 2x50%, 7 30%
spstate: "{{ if .Config.freeleech }}2{{ else }}0{{ end }}"
# 0 title, 1 descr, 3 uploader, 4 imdburl (not working)
search_area: "{{ if .Query.IMDBID }}1{{ else }}{{ end }}{{ if .Query.DoubanID }}1{{ else }}{{ end }}{{ if or .Query.IMDBID .Query.DoubanID }}{{ else }}0{{ end }}"
# 0 AND, 1 OR, 2 exact
search_mode: 0
sort: "{{ .Config.sort }}"
type: "{{ .Config.type }}"
rows:
selector: table.torrents > tbody > tr:has(a[href^="details.php?id="])
fields:
category:
selector: a[href^="?cat="]
attribute: href
filters:
- name: querystring
args: cat
title_default:
selector: a[href^="details.php?id="]
title_optional:
optional: true
selector: a[title][href^="details.php?id="]
attribute: title
title:
text: "{{ if .Result.title_optional }}{{ .Result.title_optional }}{{ else }}{{ .Result.title_default }}{{ end }}"
details:
selector: a[href^="details.php?id="]
attribute: href
download:
selector: a[href^="download.php?id="]
attribute: href
imdbid:
# site currently only has a badge and rating, the id is not present. just in case a future update.
selector: a[href*="imdb.com/title/tt"]
attribute: href
doubanid:
# site currently only has a badge and rating, the id is not present. just in case a future update.
selector: a[href*="movie.douban.com/subject/"]
attribute: href
date_elapsed:
# time type: time elapsed (default)
selector: td.rowfollow:nth-child(4) > span[title]
attribute: title
optional: true
filters:
- name: append
args: " +08:00" # CST
- name: dateparse
args: "2006-01-02 15:04:05 -07:00"
date_added:
# time added
selector: td.rowfollow:nth-child(4):not(:has(span))
optional: true
filters:
- name: append
args: " +08:00" # CST
- name: dateparse
args: "2006-01-0215:04:05 -07:00"
date:
text: "{{ if or .Result.date_elapsed .Result.date_added }}{{ or .Result.date_elapsed .Result.date_added }}{{ else }}now{{ end }}"
size:
selector: td.rowfollow:nth-child(5)
seeders:
selector: td.rowfollow:nth-child(6)
leechers:
selector: td.rowfollow:nth-child(7)
grabs:
selector: td.rowfollow:nth-child(8)
downloadvolumefactor:
case:
img.pro_free: 0
img.pro_free2up: 0
img.pro_50pctdown: 0.5
img.pro_50pctdown2up: 0.5
img.pro_30pctdown: 0.3
"*": 1
uploadvolumefactor:
case:
img.pro_50pctdown2up: 2
img.pro_free2up: 2
img.pro_2up: 2
"*": 1
minimumratio:
text: 1.0
minimumseedtime:
# 5 day (as seconds = 5 x 24 x 60 x 60)
text: 432000
description:
selector: td.rowfollow:nth-child(2)
remove: a, img
# NexusPHP 1.7.29 2022-10-13

View File

@@ -5,6 +5,8 @@ description: "Kufirc is a HUNGARIAN Private tracker for 3X"
language: hu-HU
type: private
encoding: UTF-8
certificates:
- 1a528cffb19a5306daa44f99e6cce5d2a3c657c1 # Expired 24 Oct 2022
links:
- https://kufirc.com/

View File

@@ -1,196 +0,0 @@
---
id: mediamaatjes
name: MediaMaatjes
description: "MediaMaatjes is a DUTCH Private Torrent Tracker for MOVIES / TV / GENERAL"
language: nl-NL
type: private
encoding: UTF-8
links:
- https://www.mediamaatjes.org/
caps:
categorymappings:
- {id: 46, cat: Movies/SD, desc: "avi/xvideo"}
- {id: 43, cat: Movies/UHD, desc: "4k Films"}
- {id: 41, cat: TV/Documentary, desc: "Documentaire"}
- {id: 40, cat: Other, desc: "kerst"}
- {id: 15, cat: Other, desc: "Overige"}
- {id: 1, cat: Other, desc: "Afbeeldingen"}
- {id: 19, cat: TV, desc: "TV Series"}
- {id: 21, cat: TV/HD, desc: "Series/MKV"}
- {id: 23, cat: Audio/Video, desc: "Cabaret"}
- {id: 24, cat: Books/EBook, desc: "E-Books"}
- {id: 30, cat: Movies, desc: "Classic"}
- {id: 31, cat: Audio/Audiobook, desc: "Luisterboek"}
- {id: 32, cat: Movies/HD, desc: "Films/HD 720p"}
- {id: 33, cat: Audio, desc: "NL Muziek"}
- {id: 34, cat: Books/Comics, desc: "Stripboeken"}
- {id: 36, cat: Books/Mags, desc: "E Magazine"}
- {id: 18, cat: TV/SD, desc: "Series/XVID"}
- {id: 17, cat: PC/Games, desc: "PC Spellen"}
- {id: 16, cat: PC, desc: "PC Software"}
- {id: 2, cat: Movies/HD, desc: "Films/HD 1080p"}
- {id: 4, cat: Audio/Video, desc: "DVD Muziek"}
- {id: 3, cat: Movies/DVD, desc: "DVD Kids"}
- {id: 5, cat: Movies/DVD, desc: "DVD Films"}
- {id: 7, cat: Movies/SD, desc: "DVD Promo/R5"}
- {id: 8, cat: XXX, desc: "Erotiek"}
- {id: 9, cat: PC/Mobile-Other, desc: "GSM/Navigatie"}
- {id: 10, cat: Audio, desc: "Muziek Album"}
- {id: 11, cat: Audio, desc: "Muziek Diverse"}
- {id: 13, cat: Console/Wii, desc: "Wii"}
modes:
search: [q]
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: thankyou
type: text
label: Thank You Comment
- name: info
type: info
label: Thank you comment
default: This site requires you to leave a Thank You comment before you can download. Enter your personalised comment above.
login:
path: takelogin.php
method: post
inputs:
username: "{{ .Config.username }}"
password: "{{ .Config.password }}"
error:
- selector: table.main:contains("Aanmelden mislukt")
test:
path: /
selector: a[href="logout.php"]
download:
before:
# https://www.mediamaatjes.org/comment.php?action=add&tid=166386
path: comment.php
method: post
inputs:
action: add
tid: "{{ .DownloadUri.Query.id }}"
text: "{{ .Config.thankyou }}"
selectors:
- selector: a[href^="download.php?id="]
attribute: href
search:
paths:
# https://www.mediamaatjes.org/browse.php?search=&cat=43&incldead=1
- path: browse.php
inputs:
$raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
search: "{{ .Keywords }}"
incldead: 1
# does not support imdbid search and does not return imdb link in results
rows:
selector: "table.mainouter{{ if .Config.freeleech }}:has(img[src=\"pic/freedlfsu.gif\"]){{ else }}{{ end }}"
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="]
filters:
- name: re_replace
args: ["(?i)seizoen\\s*(\\d{1,2})\\s*(tot|t\/m)\\s*(\\d{1,2})", "S$1-$3"]
- name: re_replace
args: ["(?i)(seizoen\\s*)(\\d{1,2})", "S$2"]
- name: re_replace
args: ["(?i)(afl.\\s*|aflevering\\s*)(\\d{1,2})", "E$2"]
- name: re_replace
args: ["(?i)compleet", "Complete"]
details:
selector: a[href^="details.php?id="]
attribute: href
download:
selector: a[href^="details.php?id="]
attribute: href
size:
selector: a[href^="details_bestanden.php?torrent_id="]
filters:
- name: regexp
args: "(.+?) in"
files:
selector: a[href^="details_bestanden.php?torrent_id="]
filters:
- name: regexp
args: "in (\\d+) bestan"
grabs:
selector: table table tr:nth-child(2) td:nth-child(1)
date:
selector: table table tr:nth-child(2) td:nth-child(2)
filters:
- name: replace
args: ["januari", "January"]
- name: replace
args: ["februari", "February"]
- name: replace
args: ["maart", "March"]
- name: replace
args: ["april", "April"]
- name: replace
args: ["mei", "May"]
- name: replace
args: ["juni", "June"]
- name: replace
args: ["juli", "July"]
- name: replace
args: ["augustus", "August"]
- name: replace
args: ["september", "September"]
- name: replace
args: ["oktober", "October"]
- name: replace
args: ["november", "November"]
- name: replace
args: ["december", "December"]
- name: re_replace
args: ["\\s*om\\s*", " "]
- name: append
args: " +01:00" # CET
- name: dateparse
args: "2 January 2006 15:04:05 -07:00"
seeders_optional:
optional: true
selector: table tr:nth-child(3) td:nth-child(5) font b
seeders:
text: "{{ if .Result.seeders_optional }}{{ .Result.seeders_optional }}{{ else }}0{{ end }}"
leechers_optional:
optional: true
selector: table tr:nth-child(3) td:nth-child(5) font b:nth-child(2)
leechers:
text: "{{ if .Result.leechers_optional }}{{ .Result.leechers_optional }}{{ else }}0{{ end }}"
downloadvolumefactor:
case:
img[src="pic/freedlfsu.gif"]: 0
"*": 1
uploadvolumefactor:
text: 1
minimumratio:
text: 1.0
# engine n/a

View File

@@ -64,6 +64,7 @@ download:
search:
paths:
- path: redirect_unlock.php?avx=120
- path: tags.php
inputs:
search: "{{ .Keywords }}"

View File

@@ -0,0 +1,173 @@
---
id: pixelcove2fa
name: PixelCove2FA
description: "PixelCove2FA (Ultimate Gamer) is a Private Torrent Tracker for GAMES. Cookie Login for 2FA use."
language: en-US
type: private
encoding: UTF-8
links:
- https://www.pixelcove.me/
caps:
categorymappings:
# Computer
- {id: 10, cat: PC/Games, desc: "Windows"}
- {id: 11, cat: PC/Mac, desc: "Macintosh"}
- {id: 47, cat: PC, desc: "Linux"}
- {id: 56, cat: PC, desc: "VR"}
# Microsoft
- {id: 14, cat: Console/XBox, desc: "Xbox"}
- {id: 61, cat: Console/XBox 360, desc: "Xbox 360"}
- {id: 62, cat: Console/XBox One, desc: "Xbox One"}
# Sony
- {id: 43, cat: Console/PS3, desc: "Playstation "}
- {id: 63, cat: Console/PS3, desc: "Playstation 2"}
- {id: 64, cat: Console/PS3, desc: "Playstation 3"}
- {id: 67, cat: Console/PS4, desc: "Playstation 4"}
- {id: 12, cat: Console/Other, desc: "PSN"}
# Nintendo
- {id: 57, cat: Console/Other, desc: "Gamecube"}
- {id: 44, cat: Console/Wii, desc: "Wii"}
- {id: 46, cat: Console/Wii, desc: "Wii U"}
- {id: 76, cat: Console/Other, desc: "Switch"}
# Handheld
- {id: 15, cat: Console/NDS, desc: "DS"}
- {id: 68, cat: Console/NDS, desc: "3DS"}
- {id: 69, cat: Console/PSP, desc: "PSP"}
- {id: 70, cat: Console/PS Vita, desc: "PSVita"}
# Mobile
- {id: 65, cat: PC/Mobile-iOS, desc: "iOS"}
- {id: 49, cat: PC/Mobile-Android, desc: "Android"}
- {id: 66, cat: PC/Mobile-Other, desc: "Windows Mobile"}
# Reading
- {id: 53, cat: Books, desc: "Books/Mags"}
- {id: 60, cat: Books, desc: "Comics"}
- {id: 17, cat: Books, desc: "Guides"}
# Media
- {id: 58, cat: Audio/Video, desc: "Gaming Videos"}
- {id: 52, cat: Audio, desc: "OST"}
- {id: 55, cat: Other, desc: "Time for a Break"}
- {id: 81, cat: Audio/Video, desc: "Videos"}
# Various
- {id: 59, cat: Other, desc: "Mods"}
- {id: 54, cat: Other, desc: "Updates/Fixes"}
- {id: 71, cat: PC/0day, desc: "Applications/Tools"}
- {id: 48, cat: Other, desc: "Retro"}
- {id: 72, cat: Other, desc: "Board Games"}
- {id: 75, cat: Other, desc: "Paper Crafting"}
- {id: 77, cat: Other, desc: "Arcade"}
- {id: 78, cat: Other, desc: "Other"}
modes:
search: [q]
music-search: [q]
book-search: [q]
settings:
- name: cookie
type: text
label: Cookie
- name: info_cookie
type: info
label: How to get the Cookie
default: "<ol><li>Login to this tracker with your browser<li>Open the <b>DevTools</b> panel by pressing <b>F12</b><li>Select the <b>Network</b> tab<li>Click on the <b>Doc</b> button (Chrome Browser) or <b>HTML</b> button (FireFox)<li>Refresh the page by pressing <b>F5</b><li>Click on the first row entry<li>Select the <b>Headers</b> tab on the Right panel<li>Find <b>'cookie:'</b> in the <b>Request Headers</b> section<li><b>Select</b> and <b>Copy</b> the whole cookie string <i>(everything after 'cookie: ')</i> and <b>Paste</b> here.</ol>"
- name: freeleech
type: checkbox
label: Search freeleech only
default: false
- name: sort
type: select
label: Sort requested from site
default: time
options:
time: created
seeders: seeders
size: size
- name: type
type: select
label: Order requested from site
default: desc
options:
desc: desc
asc: asc
login:
method: cookie
inputs:
cookie: "{{ .Config.cookie }}"
test:
path: torrents.php
selector: a.username
search:
paths:
# https://www.pixelcove.me/torrents.php?order_by=time&order_way=desc&filter_freeleech=1&searchtext=&action=advanced&title=&sizeall=&sizetype=gb&sizerange=0.01&filelist=&taglist=&autocomplete_toggle=1
- path: torrents.php
inputs:
$raw: "{{ range .Categories }}filter_cat[{{.}}]=1&{{end}}"
order_by: "{{ .Config.sort }}"
order_way: "{{ .Config.type }}"
action: advanced
filter_freeleech: "{{ if .Config.freeleech }}1{{ else }}{{ end }}"
searchtext: ""
title: "{{ .Keywords }}"
filelist: ""
taglist: ""
rows:
# exclude redbar torrents
selector: table#torrent_table > tbody > tr[class^="torrent row"]
fields:
download:
selector: a[href^="torrents.php?action=download&id="]
attribute: href
description:
selector: div.tags
title:
selector: a[href^="/torrents.php?id="]
category:
selector: a[href*="filter_cat"]
attribute: href
filters:
- name: regexp
args: "\\[(\\d+?)\\]"
details:
selector: a[href^="/torrents.php?id="]
attribute: href
poster:
selector: td:nth-child(2) > script
filters:
- name: regexp
args: "src=\\\\\"(.*?)\\\\\""
- name: re_replace
args: ["\\\\(.)", "$1"]
- name: replace
args: ["/static/common/noartwork/noimage.png", ""]
files:
selector: td:nth-child(3)
date:
selector: td:nth-child(5) > span
attribute: title
filters:
- name: append
args: " +00:00" # auto adjusted by site account profile
- name: dateparse
args: "Jan 02 2006, 15:04 -07:00"
size:
selector: td:nth-child(6)
grabs:
selector: td:nth-child(7)
seeders:
selector: td:nth-child(8)
leechers:
selector: td:nth-child(9)
downloadvolumefactor:
case:
img[src$="/freedownload.gif"]: 0
"*": 1
uploadvolumefactor:
text: 1
minimumratio:
text: 0.5
# luminance

View File

@@ -121,15 +121,15 @@ search:
- name: querystring
args: cat
title_default:
selector: a[href^="details.php?id="]
selector: a[href^="details.php?id="], a[href^="detailsgame.php?"]
title_optional:
optional: true
selector: a[title][href^="details.php?id="],a[title][href^="detailsgame.php?id="]
selector: a[title][href^="details.php?id="], a[title][href^="detailsgame.php?id="]
attribute: title
title:
text: "{{ if .Result.title_optional }}{{ .Result.title_optional }}{{ else }}{{ .Result.title_default }}{{ end }}"
details:
selector: a[href^="details.php?id="]
selector: a[href^="details.php?id="], a[href^="detailsgame.php?"]
attribute: href
download:
selector: a[href^="download.php?id="]

View File

@@ -12,6 +12,7 @@ caps:
categorymappings:
- {id: 1, cat: Movies, desc: "Películas"}
- {id: 2, cat: TV, desc: "Series"}
- {id: 10, cat: TV, desc: "Series Completas"}
- {id: 6, cat: TV/Documentary, desc: "Documentales"}
- {id: 7, cat: TV/Sport, desc: "Deportes"}
- {id: 8, cat: Movies, desc: "Hagbard"}

View File

@@ -1,91 +0,0 @@
---
id: soundpark
name: SoundPark
description: "SoundPark is a Semi-Private RUSSIAN site for MUSIC compilations and albums"
language: ru-RU
type: semi-private
encoding: UTF-8
testlinktorrent: false
links:
- https://sound-park.world/
caps:
categorymappings:
- {id: 1, cat: Audio, desc: "Music"}
modes:
search: [q]
music-search: [q, album, artist]
settings:
- name: cookie
type: text
label: Cookie
- name: info
type: info
label: How to get the Cookie
default: "<ol><li>Login to this tracker with your browser<li>Open the <b>DevTools</b> panel by pressing <b>F12</b><li>Select the <b>Network</b> tab<li>Click on the <b>Doc</b> button (Chrome Browser) or <b>HTML</b> button (FireFox)<li>Refresh the page by pressing <b>F5</b><li>Click on the first row entry<li>Select the <b>Headers</b> tab on the Right panel<li>Find <b>'cookie:'</b> in the <b>Request Headers</b> section<li><b>Select</b> and <b>Copy</b> the whole cookie string <i>(everything after 'cookie: ')</i> and <b>Paste</b> here.</ol>"
login:
method: cookie
inputs:
cookie: "{{ .Config.cookie }}"
test:
path: personal/
download:
before:
pathselector:
selector: a.torrent_download
attribute: href
selectors:
- selector: p.attachment a
attribute: href
usebeforeresponse: true
search:
paths:
# https://sound-park.world/filter/?sort_method=1&sorting_type=undefined&genres=&qualities=&country_keyword=&countries=&releases=&start_year=&end_year=&search_keyword=
- path: filter/
inputs:
sort_method: 1
sorting_type: undefined
genres: ""
qualities: ""
country_keyword: ""
countries: ""
releases: ""
start_year: ""
end_year: ""
search_keyword: "{{ if or (.Query.Artist) (.Query.Album) }}{{ or (.Query.Artist) (.Query.Album) }}{{ else }}{{ .Keywords }}{{ end }}"
rows:
selector: div.album
fields:
category:
text: 1
title:
selector: h3
details:
selector: h3 > a
attribute: href
download:
selector: h3 > a
attribute: href
poster:
selector: picture img
attribute: src
date:
text: now
size:
text: "128 MB"
seeders:
text: 1
leechers:
text: 1
downloadvolumefactor:
text: 0
uploadvolumefactor:
text: 1
# engine wordpress 5.8

View File

@@ -57,6 +57,7 @@ caps:
- {id: 447, cat: Books/Comics, desc: "Livres / Bande Dessinée"}
- {id: 448, cat: Books/Comics, desc: "Livres / Comic"}
- {id: 449, cat: Books/Comics, desc: "Livres / Manga"}
- {id: 468, cat: Books/Other, desc: "Livres / Divers"}
- {id: 450, cat: PC/Games, desc: "Logiciels / Jeu PC"}
- {id: 451, cat: PC/Games, desc: "Logiciels / Jeu Mac"}
- {id: 452, cat: PC/Games, desc: "Logiciels / Jeu Linux"}

View File

@@ -240,4 +240,4 @@ search:
"*": 1
minimumratio:
text: 1.0
# NexusPHP Standard v1.6 Beta 12
# NexusPHP v1.7.30 2022-10-21

View File

@@ -6,6 +6,8 @@ language: de-DE
type: private
encoding: UTF-8
links:
- https://the-new-fun.com/
legacylinks:
- https://the-new-fun.spdns.eu/
caps:

View File

@@ -1,28 +1,32 @@
---
id: breizhpeers
name: BreizhPeers
description: "BreizhPeers is a FRENCH Private Torrent Tracker for MOVIES / TV"
id: theoldschool-api
name: The Old School (API)
description: "The Old School is a FRENCH Private Torrent Tracker for MOVIES / TV / GENERAL"
language: fr-FR
type: private
encoding: UTF-8
links:
- https://breizhpeers.tk/
- https://theoldschool.cc/
caps:
categorymappings:
- {id: 1, cat: Movies, desc: "Films"}
- {id: 2, cat: TV, desc: "Séries"}
- {id: 3, cat: TV, desc: "TV"}
- {id: 4, cat: TV/Anime, desc: "Animes"}
- {id: 5, cat: Audio/Video, desc: "Concerts"}
- {id: 10, cat: PC, desc: "Applications"}
- {id: 9, cat: Console, desc: "Jeux"}
- {id: 6, cat: TV/Sport, desc: "Sport"}
- {id: 6, cat: Movies, desc: "Films VOSTFR"}
- {id: 2, cat: TV, desc: "Series"}
- {id: 7, cat: TV, desc: "Series VOSTFR"}
- {id: 8, cat: TV, desc: "Series Pack"}
- {id: 9, cat: TV, desc: "Series Pack vostfr"}
- {id: 3, cat: Books, desc: "Ebooks"}
- {id: 4, cat: Console, desc: "Jeux"}
- {id: 5, cat: PC, desc: "Logiciel"}
- {id: 10, cat: TV/Sport, desc: "Sports"}
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
@@ -31,7 +35,7 @@ settings:
- name: info_key
type: info
label: About your API key
default: "Find or Generate a new API Token by accessing your <a href=\"https://breizhpeers.tk/\" target =_blank>BreizhPeers</a> account <i>My Security</i> page and clicking on the <b>API Token</b> tab."
default: "Find or Generate a new API Token by accessing your <a href=\"https://theoldschool.cc/\" target =_blank>The Old School</a> account <i>My Security</i> page and clicking on the <b>API Token</b> tab."
- name: freeleech
type: checkbox
label: Search freeleech only
@@ -186,6 +190,6 @@ search:
0: 1 # normal
1: 2 # double
minimumseedtime:
# 7 days (as seconds = 7 x 24 x 60 x 60)
text: 604800
# json UNIT3D 6.3.0 (custom)
# 2 days (as seconds = 2 x 24 x 60 x 60)
text: 172800
# json UNIT3D 6.4.1 custom

View File

@@ -5,6 +5,8 @@ description: "Torlook is a Russian Public torrent meta-search engine combining r
language: en-US
type: public
encoding: UTF-8
certificates:
- aeca58c91a901bf1b6449a97828e379e61bdf4ff # expired 21 Oct 2022
links:
- https://gw1.torlook.info/
- https://torlook.nocensor.world/

View File

@@ -7,10 +7,8 @@ type: public
encoding: UTF-8
followredirect: true
links:
- https://torrentqq226.com/
- https://torrentqq228.com/
legacylinks:
- https://torrentqq211.com/
- https://torrentqq212.com/
- https://torrentqq213.com/
- https://torrentqq214.com/
- https://torrentqq215.com/
@@ -24,6 +22,8 @@ legacylinks:
- https://torrentqq223.com/
- https://torrentqq224.com/
- https://torrentqq225.com/
- https://torrentqq226.com/
- https://torrentqq227.com/
caps:
categorymappings:

View File

@@ -7,12 +7,8 @@ type: public
encoding: UTF-8
followredirect: true
links:
- https://torrentsir77.com/
- https://torrentsir78.com/
legacylinks:
- http://torrentsir60.com/
- https://torrentsir60.com/
- http://torrentsir61.com/
- https://torrentsir61.com/
- http://torrentsir62.com/
- https://torrentsir62.com/
- http://torrentsir63.com/
@@ -32,6 +28,8 @@ legacylinks:
- http://torrentsir76.com/
- https://torrentsir76.com/
- http://torrentsir77.com/
- https://torrentsir77.com/
- http://torrentsir78.com/
caps:
categorymappings:

View File

@@ -7,11 +7,10 @@ type: public
encoding: UTF-8
followredirect: true
links:
- https://torrentview68.com/
- https://viewtorrent1.com/
legacylinks:
- https://torrentview.net/
- https://torrentview.co/
- https://torrentview45.com/
- https://torrentview46.com/
- https://torrentview47.com/
- https://torrentview49.com/
@@ -25,6 +24,7 @@ legacylinks:
- https://torrentview65.com/
- https://torrentview66.com/
- https://torrentview67.com/
- https://torrentview68.com/
caps:
categorymappings:

View File

@@ -7,10 +7,9 @@ type: public
encoding: UTF-8
followredirect: true
links:
- https://torrentwiz49.com/
- https://torrentwiz50.com/
legacylinks:
- https://torrentwiz29.me/
- https://torrentwiz33.com/
- https://torrentwiz34.com/
- https://torrentwiz35.com/
- https://torrentwiz36.com/
@@ -25,6 +24,7 @@ legacylinks:
- https://torrentwiz47.com/
- https://torrentwiz48.com/.
- https://torrentwiz48.com/
- https://torrentwiz49.com/
caps:
categorymappings:

View File

@@ -0,0 +1,68 @@
---
id: traht
name: TrahT
description: "TrahT is a RUSSIAN Public Torrent Tracker for 3X"
language: ru-RU
type: public
encoding: windows-1251
links:
- http://traht.org/
caps:
categories:
xxx: XXX
modes:
search: [q]
settings: []
search:
paths:
# http://traht.org/browse.php?search=&cat=0&year=0&format=0
- path: browse.php
inputs:
search: "{{ .Keywords }}"
cat: 0
year: 0
format: 0
rows:
selector: div[id^="releases-table"] table.embedded tbody tr:has(a[href^="download.php?id="])
fields:
category:
text: xxx
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
filters:
- name: append
args: "&ok="
date:
text: now
size:
selector: td:nth-child(5)
seeders:
selector: td:nth-child(6)
filters:
- name: split
args: ["|", 0]
leechers:
selector: td:nth-child(6)
filters:
- name: split
args: ["|", 1]
description:
selector: img
attribute: title
downloadvolumefactor:
text: 0
uploadvolumefactor:
text: 1
# Kinokpk 3.00

View File

@@ -129,11 +129,10 @@ search:
selector: td:nth-child(2)
filters:
- name: regexp
args: "(\\d{2}-\\d{2}-\\d{2} \\d{2}:\\d{2})"
args: "(\\d{1,2}(st|nd|rd|th) [A-Za-z]{3,} \\d{4} \\d{2}:\\d{2}:\\d{2})"
- name: append
args: " +00:00" # auto adjusted by site account profile
- name: dateparse
args: "02-01-06 15:04 -07:00"
- name: fuzzytime
size:
selector: td:nth-last-child(5)
grabs:

View File

@@ -1,7 +1,7 @@
---
id: uhdbits
name: UHDBits
description: "A vietnamese general tracker"
description: "UHDBits is a Private Torrent Tracker for UHD Movies / TV"
language: en-US
type: private
encoding: UTF-8

View File

@@ -32,7 +32,7 @@ search:
s: "{{ .Keywords }}"
rows:
selector: article:has(h4)
selector: article:has(.entry-title)
filters:
- name: andmatch
@@ -40,21 +40,15 @@ search:
category:
text: Audio
title:
selector: h4
selector: .entry-title
details:
selector: h4 > a
selector: .entry-title > a
attribute: href
download:
selector: h4 > a
selector: .entry-title > a
attribute: href
poster:
selector: div.back-img
attribute: style
filters:
- name: regexp
args: "\\'(.+?)\\'"
description:
selector: div.mg-blog-category
selector: .entry-excerpt
date:
text: now
size:
@@ -67,4 +61,4 @@ search:
text: 0
uploadvolumefactor:
text: 1
# wordpress 6.0.2
# wordpress 6.0.3

View File

@@ -12,6 +12,7 @@ caps:
categorymappings:
- {id: 14, cat: Audio/MP3, desc: "Alben / Sampler / Singles"}
- {id: 87, cat: TV/Anime, desc: "Anime"}
- {id: 105, cat: TV/Anime, desc: "Anime Serien"}
- {id: 18, cat: PC, desc: "Appz-Sonstige"}
- {id: 64, cat: TV/Documentary, desc: "Dokumentation"}
- {id: 19, cat: Books/EBook, desc: "Ebooks"}

View File

@@ -1,12 +1,12 @@
---
id: torrentsurf
name: Torrent Surf
description: "Torrent Surf is a Private Torrent Tracker for MOVIES / TV / GENERAL"
id: xtremebytes
name: Xtreme Bytes
description: "Xtreme Bytes (TorrentSurf) is a Private Torrent Tracker for MOVIES / TV / GENERAL"
language: en-US
type: private
encoding: UTF-8
links:
- https://torrentsurf.net/
- https://xtremebytes.net/
caps:
categorymappings:
@@ -23,10 +23,14 @@ caps:
- {id: 14, cat: Movies/DVD, desc: "Movies/DVD-R"}
- {id: 18, cat: Movies/HD, desc: "Movies/HD"}
- {id: 19, cat: Movies/SD, desc: "Movies/SD"}
- {id: 42, cat: Movies/HD, desc: "Movies/x264"}
- {id: 41, cat: Movies/SD, desc: "Movies/Xvid"}
- {id: 29, cat: Audio, desc: "Music"}
- {id: 30, cat: TV, desc: "Packs"}
- {id: 24, cat: TV/HD, desc: "TV/HD"}
- {id: 25, cat: TV/SD, desc: "TV/SD"}
- {id: 44, cat: TV/HD, desc: "TV/x264"}
- {id: 43, cat: TV/SD, desc: "TV/Xvid"}
- {id: 36, cat: XXX, desc: "XXX"}
modes:
@@ -85,14 +89,11 @@ login:
search:
paths:
# https://torrentsurf.net/browse.php?search=&cat=0&blah=0&incldead=1
# https://torrentsurf.net/browse.php?c37=1&c14=1&c18=1&c19=1&incldead=1
# https://xtremebytes.net/browse.php?search=&cat=0&incldead=1&c18=1&c42=1
- path: browse.php
inputs:
$raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
# 0 name, 1 descr, 2 both
blah: 0
# 0 active, 1 incldead, 2 onlydead, 3 freeleech
# 0 active, 1 incldead, 2 onlydead, 3 freeleech, 4 descr
incldead: "{{ if .Config.freeleech }}3{{ else }}1{{ end }}"
search: "{{ .Keywords }}"
sort: "{{ .Config.sort }}"
@@ -100,7 +101,7 @@ search:
# site does not support imdbid searching or display imdb links in results.
rows:
selector: table[background="tablebg.png"] tbody tr:has(a[href^="download.php?id="])
selector: table[border="0"][cellspacing="0"][cellpadding="5"] tr:has(a[href^="download.php?id="])
fields:
category:
@@ -123,21 +124,23 @@ search:
attribute: href
download:
text: "{{ if .Config.seedbox }}{{ .Result.download_2 }}{{ else }}{{ .Result.download_1 }}{{ end }}"
date:
selector: td:nth-child(4)
filters:
- name: append
args: " -07:00" # PDT
- name: dateparse
args: "2006-01-0215:04:05 -07:00"
size:
selector: td:nth-child(5)
files:
selector: td:nth-child(3)
grabs:
selector: td:nth-child(7)
size:
selector: td:nth-child(6)
seeders:
selector: td:nth-last-child(3)
leechers:
selector: td:nth-last-child(2)
date:
selector: td:nth-child(5)
filters:
- name: append
args: " -07:00" # PDT
- name: dateparse
args: "2006-01-0215:04:05 -07:00"
downloadvolumefactor:
case:
img[src="pic/freeleech.png"]: 0

View File

@@ -61,7 +61,9 @@ namespace Jackett.Common.Indexers
"https://www.divxtotal.nl/",
"https://www.divxtotal.ac/",
"https://www.divxtotal.dev/",
"https://www.divxtotal.ms/"
"https://www.divxtotal.ms/",
"https://www.divxtotal.fi/",
"https://www.divxtotal.cat/"
};
public DivxTotal(IIndexerConfigurationService configService, WebClient w, Logger l, IProtectionService ps,
@@ -69,7 +71,7 @@ namespace Jackett.Common.Indexers
: base(id: "divxtotal",
name: "DivxTotal",
description: "DivxTotal is a SPANISH site for Movies, TV series and Software",
link: "https://www.divxtotal.fi/",
link: "https://www.divxtotal.pl/",
caps: new TorznabCapabilities
{
TvSearchParams = new List<TvSearchParam>

View File

@@ -39,7 +39,7 @@ namespace Jackett.Common.Indexers
private const string SearchUrl = "buscar/";
public override string[] AlternativeSiteLinks { get; protected set; } = {
"https://dontorrent.fans/",
"https://dontorrent.gs/",
"https://todotorrents.net/",
"https://tomadivx.net/",
"https://seriesblanco.one/",
@@ -48,10 +48,6 @@ namespace Jackett.Common.Indexers
};
public override string[] LegacySiteLinks { get; protected set; } = {
"https://dontorrent.yt/",
"https://dontorrent.vg/",
"https://dontorrent.eu/",
"https://dontorrent.ch/",
"https://dontorrent.vet/",
"https://dontorrent.dog/",
"https://dontorrent.dev/",
@@ -63,7 +59,10 @@ namespace Jackett.Common.Indexers
"https://dontorrent.tf/",
"https://dontorrent.vin/",
"https://dontorrent.ist/",
"https://dontorrent.uno/"
"https://dontorrent.uno/",
"https://dontorrent.fans/",
"https://dontorrent.ltd/",
"https://dontorrent.me/"
};
private static Dictionary<string, string> CategoriesMap => new Dictionary<string, string>
@@ -81,7 +80,7 @@ namespace Jackett.Common.Indexers
: base(id: "dontorrent",
name: "DonTorrent",
description: "DonTorrent is a SPANISH public tracker for MOVIES / TV / GENERAL",
link: "https://dontorrent.fans/",
link: "https://dontorrent.gs/",
caps: new TorznabCapabilities
{
TvSearchParams = new List<TvSearchParam>

View File

@@ -68,8 +68,6 @@ namespace Jackett.Common.Indexers
var groupYear = (string)result["groupYear"];
var title = new StringBuilder();
title.Append(groupName);
if (!string.IsNullOrEmpty(groupSubName))
title.Append(" " + groupSubName + " ");
if (!string.IsNullOrEmpty(groupYear) && groupYear != "0")
title.Append(" [" + groupYear + "]");
@@ -135,6 +133,8 @@ namespace Jackett.Common.Indexers
release.MinimumSeedTime = 172800; // 48 hours
// tag each results with Movie cats.
release.Category = new List<int> { TorznabCatType.Movies.ID };
if (!string.IsNullOrEmpty(groupSubName))
release.Description = groupSubName;
return true;
}
}

View File

@@ -0,0 +1,248 @@
using System;
using System.Collections;
using System.Collections.Generic;
using System.Diagnostics.CodeAnalysis;
using System.Globalization;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading.Tasks;
using Jackett.Common.Models;
using Jackett.Common.Models.IndexerConfig;
using Jackett.Common.Services.Interfaces;
using Jackett.Common.Utils.Clients;
using Microsoft.AspNetCore.Http.Internal;
using Newtonsoft.Json.Linq;
using NLog;
using static Jackett.Common.Models.IndexerConfig.ConfigurationData;
namespace Jackett.Common.Indexers
{
[ExcludeFromCodeCoverage]
public class NebulanceAPI : BaseWebIndexer
{
// Docs at https://nebulance.io/articles.php?topic=api_key
protected virtual string APIUrl => SiteLink + "api.php";
protected virtual int KeyLength => 32;
// TODO: remove ConfigurationDataAPIKey class and use ConfigurationDataPasskey instead
private new ConfigurationDataAPIKey configData
{
get => (ConfigurationDataAPIKey)base.configData;
set => base.configData = value;
}
public NebulanceAPI(IIndexerConfigurationService configService, WebClient wc, Logger l,
IProtectionService ps, ICacheService cs)
: base(id: "nebulanceapi",
name: "NebulanceAPI",
description: "At Nebulance we will change the way you think about TV. Using API.",
link: "https://nebulance.io/",
caps: new TorznabCapabilities
{
LimitsDefault = 100,
LimitsMax = 1000,
TvSearchParams = new List<TvSearchParam>
{
TvSearchParam.Q, TvSearchParam.Season, TvSearchParam.Ep, TvSearchParam.Genre
}
},
configService: configService,
client: wc,
logger: l,
p: ps,
cacheService: cs,
configData: new ConfigurationDataAPIKey())
{
Encoding = Encoding.UTF8;
Language = "en-US";
Type = "private";
AddCategoryMapping("tv", TorznabCatType.TV, "tv");
AddCategoryMapping("sd", TorznabCatType.TVSD, "sd");
AddCategoryMapping("hd", TorznabCatType.TVHD, "hd");
AddCategoryMapping("uhd", TorznabCatType.TVUHD, "uhd");
AddCategoryMapping("4k", TorznabCatType.TVUHD, "4k");
AddCategoryMapping("480p", TorznabCatType.TVSD, "480p");
AddCategoryMapping("720p", TorznabCatType.TVHD, "720p");
AddCategoryMapping("1080p", TorznabCatType.TVHD, "1080p");
AddCategoryMapping("1080i", TorznabCatType.TVHD, "1080i");
AddCategoryMapping("2160p", TorznabCatType.TVUHD, "2160p");
configData.AddDynamic("keyInfo", new DisplayInfoConfigurationItem(String.Empty, "Generate a new key by accessing your account profile settings at <a href=\"https://nebulance.io/\" target=_blank>Nebulance</a>, scroll down to the <b>API Keys</b> section, tick the <i>New Key</i>, <i>list</i> and <i>download</i> checkboxes and save."));
}
public override async Task<IndexerConfigurationStatus> ApplyConfiguration(JToken configJson)
{
LoadValuesFromJson(configJson);
IsConfigured = false;
var apiKey = configData.Key;
if (apiKey.Value.Length != KeyLength)
throw new Exception($"Invalid API Key configured: expected length: {KeyLength}, got {apiKey.Value.Length}");
try
{
var results = await PerformQuery(new TorznabQuery());
if (!results.Any())
throw new Exception("Testing returned no results!");
IsConfigured = true;
SaveConfig();
}
catch (Exception e)
{
throw new ExceptionWithConfigData(e.Message, configData);
}
return IndexerConfigurationStatus.Completed;
}
private string JsonRPCRequest(string method, JArray parameters)
{
dynamic request = new JObject();
request["jsonrpc"] = "2.0";
request["method"] = method;
request["params"] = parameters;
request["id"] = Guid.NewGuid().ToString().Substring(0, 8);
return request.ToString();
}
protected override async Task<IEnumerable<ReleaseInfo>> PerformQuery(TorznabQuery query)
{
var ValidList = new List<string>() {
"action",
"adventure",
"children",
"biography",
"comedy",
"crime",
"documentary",
"drama",
"family",
"fantasy",
"game-show",
"history",
"horror",
"medical",
"music",
"musical",
"mystery",
"news",
"reality-tv",
"romance",
"sci-fi",
"sitcom",
"sport",
"talk-show",
"thriller",
"travel",
"war",
"western"
};
var ValidCats = new List<string>() {
"sd",
"hd",
"uhd",
"4k",
"480p",
"720p",
"1080i",
"1080p",
"2160p"
};
var searchParam = new JObject();
var searchString = query.GetQueryString();
if (!string.IsNullOrWhiteSpace(searchString))
{
searchParam["name"] = "%" + Regex.Replace(searchString, @"[ -._]", "%").Trim() + "%";
}
else
{
searchParam["name"] = "%";
}
if (query.IsGenreQuery)
{
var genre = new JArray
{
new JValue(query.Genre)
};
searchParam["tags"] = genre;
}
var limit = query.Limit;
if (limit == 0)
limit = (int)TorznabCaps.LimitsDefault;
var offset = query.Offset;
var releases = new List<ReleaseInfo>();
var parameters = new JArray
{
new JValue(configData.Key.Value),
JObject.FromObject(searchParam),
new JValue(limit),
new JValue(offset)
};
var response = await RequestWithCookiesAndRetryAsync(
APIUrl, method: RequestType.POST,
headers: new Dictionary<string, string>
{
{"Accept", "application/json-rpc, application/json"},
{"Content-Type", "application/json-rpc"}
}, rawbody: JsonRPCRequest("getTorrents", parameters), emulateBrowser: false);
if (response.ContentString != null && response.ContentString.Contains("Invalid params"))
throw new Exception($"Invalid API Key configured");
try
{
var json = JObject.Parse(response.ContentString);
foreach (var r in json["result"]["items"].Cast<JObject>())
{
var descriptions = new List<string>();
if (!string.IsNullOrWhiteSpace((string)r["group_name"]))
descriptions.Add("Group Name: " + (string)r["group_name"]);
var link = new Uri((string)r["download"]);
var details = new Uri($"{SiteLink}torrents.php?id={(string)r["group_id"]}");
var publishDate = DateTime.ParseExact((string)r["rls_utc"] + " +00:00", "yyyy-MM-dd HH:mm:ss zzz", CultureInfo.InvariantCulture);
var tags = string.Join(",", r["tags"]);
char[] delimiters = { ',', ' ', '/', ')', '(', '.', ';', '[', ']', '"', '|', ':' };
var releaseGenres = ValidList.Intersect(tags.ToLower().Split(delimiters, System.StringSplitOptions.RemoveEmptyEntries)).ToList();
descriptions.Add("Tags: " + string.Join(",", releaseGenres));
var releaseCats = ValidCats.Intersect(tags.ToLower().Split(delimiters, System.StringSplitOptions.RemoveEmptyEntries)).ToList();
var release = new ReleaseInfo
{
Title = (string)r["rls_name"],
Category = MapTrackerCatToNewznab(releaseCats.Any() ? releaseCats.First() : "TV"),
Details = details,
Guid = link,
Link = link,
PublishDate = publishDate,
Seeders = (int)r["seed"],
Peers = (int)r["seed"] + (int)r["leech"],
Size = (long)r["size"],
Grabs = (int)r["snatch"],
UploadVolumeFactor = 1,
DownloadVolumeFactor = 0, // ratioless
MinimumRatio = 0, // ratioless
MinimumSeedTime = 86400, // 24 hours
Description = string.Join("<br />\n", descriptions)
};
if (release.Genres == null)
release.Genres = new List<string>();
release.Genres = releaseGenres;
if (!string.IsNullOrEmpty((string)r["series_banner"]))
release.Poster = new Uri((string)r["series_banner"]);
releases.Add(release);
}
}
catch (Exception ex)
{
OnParseError(response.ContentString, ex);
}
return releases;
}
}
}

View File

@@ -106,9 +106,7 @@ namespace Jackett.Common.Indexers
AddCategoryMapping(53, TorznabCatType.ConsolePS4, "Games/PS4");
AddCategoryMapping(54, TorznabCatType.MoviesHD, "Movies/x265/1080");
_appId = "jackett_" + EnvironmentUtil.JackettVersion();
EnableConfigurableRetryAttempts();
_appId = "ttekcaJ_" + EnvironmentUtil.JackettVersion();
}
public override void LoadValuesFromJson(JToken jsonConfig, bool useProtectionService = false)
@@ -140,9 +138,24 @@ namespace Jackett.Common.Indexers
// check the token and renewal if necessary
await RenewalTokenAsync();
var response = await RequestWithCookiesAndRetryAsync(BuildSearchUrl(query));
Thread.Sleep(2500); // enforce 2.5s delay
var response = await RequestWithCookiesAsync(BuildSearchUrl(query));
if (response != null && response.ContentString.StartsWith("<"))
{
if (response.ContentString.Contains("torrentapi.org | 520:"))
{
if (retry)
{
logger.Warn("torrentapi.org returned Error 520, retrying after 5 secs");
Thread.Sleep(2500); // 2500 + 2500 enforced at front of query = 5s
return await PerformQueryWithRetry(query, false);
}
else
{
logger.Warn("torrentapi.org returned Error 520");
return releases;
}
}
// the response was not JSON, likely a HTML page for a server outage
logger.Warn(response.ContentString);
throw new Exception("The response was not JSON");
@@ -156,21 +169,42 @@ namespace Jackett.Common.Indexers
case 2:
case 4: // invalid token
await RenewalTokenAsync(true); // force renewal token
response = await RequestWithCookiesAndRetryAsync(BuildSearchUrl(query));
Thread.Sleep(2500); // 2500 + 2500 enforced at front of query = 5s
response = await RequestWithCookiesAsync(BuildSearchUrl(query));
jsonContent = JObject.Parse(response.ContentString);
break;
case 5: // Too many requests per second. Maximum requests allowed are 1req/2sec Please try again later!
return await PerformQueryWithRetry(query, false);
if (retry)
{
logger.Warn("torrentapi.org returned code 5 Too many requests per second, retrying after 5 secs");
Thread.Sleep(2500); // 2500 + 2500 enforced at front of query = 5s
return await PerformQueryWithRetry(query, false);
}
else
{
logger.Warn("torrentapi.org returned code 5 Too many requests per second");
return releases;
}
case 8: // search_imdb not found, see issue #12466 (no longer used, has been replaced with error 10)
case 9: // invalid imdb, see Radarr #1845
case 10: // imdb not found, see issue #1486
case 13: // invalid tmdb, invalid tvdb
return releases;
case 10: // imdb not found, see issue #1486
case 14: // tmdb not found (see Radarr #7625), thetvdb not found
case 20: // no results found
if (jsonContent.ContainsKey("rate_limit"))
{
logger.Warn("Rate Limit exceeded. Retry will be performed.");
return await PerformQueryWithRetry(query, false);
if (retry)
{
logger.Warn("torrentapi.org returned code 20 with Rate Limit exceeded. Retrying after 5 secs.");
Thread.Sleep(2500); // 2500 + 2500 enforced at front of query = 5s
return await PerformQueryWithRetry(query, false);
}
else
{
logger.Warn("torrentapi.org returned code 20 with Rate Limit exceeded.");
return releases;
}
}
// the api returns "no results" in some valid queries. we do one retry on this case but we can't do more
// because we can't distinguish between search without results and api malfunction
@@ -312,8 +346,8 @@ namespace Jackett.Common.Indexers
var json = JObject.Parse(result.ContentString);
_token = json.Value<string>("token");
_lastTokenFetch = DateTime.Now;
// sleep 5 seconds to make sure the token is valid in the next request
Thread.Sleep(5000);
// sleep 2.5 seconds to make sure the token is valid in the next request
Thread.Sleep(2500);
}
}

View File

@@ -1481,10 +1481,11 @@ namespace Jackett.Common.Indexers
{
var queryCollection = new NameValueCollection();
var searchString = query.GetQueryString();
var searchString = query.SearchTerm;
// replace any space, special char, etc. with % (wildcard)
var ReplaceRegex = new Regex("[^a-zA-Zа-яА-Я0-9]+");
searchString = ReplaceRegex.Replace(searchString, "%");
if (!string.IsNullOrWhiteSpace(searchString))
searchString = ReplaceRegex.Replace(searchString, "%");
// if the search string is empty use the getnew view
if (string.IsNullOrWhiteSpace(searchString))
@@ -1495,7 +1496,13 @@ namespace Jackett.Common.Indexers
{
searchString = searchString.Replace("-", " ");
if (query.Season != 0)
{
searchString += " Сезон: " + query.Season;
}
if (query.Episode != null)
{
searchString += " Серии: " + query.Episode;
}
queryCollection.Add("nm", searchString);
}

View File

@@ -60,6 +60,7 @@ namespace Jackett.Common.Services
{"tehconnectionme", "anthelion"},
{"todotorrents", "dontorrent"},
{"torrentgalaxyorg", "torrentgalaxy"},
{"torrentsurf", "xtremebytes"},
{"transmithenet", "nebulance"},
{"xtremezone", "speedapp"},
{"yourexotic", "exoticaz"}

View File

@@ -100,7 +100,8 @@ namespace Jackett.Server.Controllers
if (string.IsNullOrWhiteSpace(baseUrlOverride))
baseUrlOverride = "";
else if (!Uri.TryCreate(baseUrlOverride, UriKind.Absolute, out var uri)
|| !(uri.Scheme == Uri.UriSchemeHttp || uri.Scheme == Uri.UriSchemeHttps))
|| !(uri.Scheme == Uri.UriSchemeHttp || uri.Scheme == Uri.UriSchemeHttps)
|| !Uri.IsWellFormedUriString(baseUrlOverride, UriKind.Absolute))
throw new Exception("Base URL Override is invalid. Example: http://jackett:9117");
serverConfig.BaseUrlOverride = baseUrlOverride;
@@ -137,7 +138,8 @@ namespace Jackett.Server.Controllers
if (string.IsNullOrWhiteSpace(config.flaresolverrurl))
config.flaresolverrurl = "";
else if (!Uri.TryCreate(config.flaresolverrurl, UriKind.Absolute, out var uri)
|| !(uri.Scheme == Uri.UriSchemeHttp || uri.Scheme == Uri.UriSchemeHttps))
|| !(uri.Scheme == Uri.UriSchemeHttp || uri.Scheme == Uri.UriSchemeHttps)
|| !Uri.IsWellFormedUriString(config.flaresolverrurl, UriKind.Absolute))
throw new Exception("FlareSolverr API URL is invalid. Example: http://127.0.0.1:8191");
if (config.flaresolverr_maxtimeout < 5000)

View File

@@ -369,6 +369,9 @@ namespace Jackett.Server.Services
public string GetServerUrl(HttpRequest request)
{
if (!string.IsNullOrEmpty(config.BaseUrlOverride))
return $"{config.BaseUrlOverride}{BasePath()}/";
var scheme = request.Scheme;
var port = request.HttpContext.Request.Host.Port;

View File

@@ -58,6 +58,7 @@ namespace Jackett.Tray
toolStripMenuItemAutoStart.Checked = AutoStart;
toolStripMenuItemAutoStart.CheckedChanged += toolStripMenuItemAutoStart_CheckedChanged;
notifyIcon1.DoubleClick += toolStripMenuItemWebUI_Click;
toolStripMenuItemWebUI.Click += toolStripMenuItemWebUI_Click;
toolStripMenuItemShutdown.Click += toolStripMenuItemShutdown_Click;

View File

@@ -266,6 +266,7 @@ namespace Jackett.Updater
"Definitions/alein.yml",
"Definitions/alexfilm.yml",
"Definitions/alleenretail.yml",
"Definitions/anaschcc.yml",
"Definitions/angietorrents.yml",
"Definitions/anidex.yml", // migrated to C#
"Definitions/animeitalia.yml",
@@ -291,8 +292,10 @@ namespace Jackett.Updater
"Definitions/bitme.yml",
"Definitions/bittorrentam.yml",
"Definitions/blubits.yml",
"Definitions/bluesbrothers.yml",
"Definitions/blutopia.yml", // switch to *-API #8682
"Definitions/brasiltracker.yml", // migrated to C#
"Definitions/breizhpeers.yml",
"Definitions/brobits.yml",
"Definitions/brsociety.yml", // switch to *-API #8682
"Definitions/bt-scene.yml",
@@ -301,6 +304,7 @@ namespace Jackett.Updater
"Definitions/bteye.yml",
"Definitions/btgigs.yml",
"Definitions/btkitty.yml",
"Definitions/btmirror.yml",
"Definitions/btstornet.yml",
"Definitions/btworld.yml",
"Definitions/btxpress.yml",
@@ -330,6 +334,7 @@ namespace Jackett.Updater
"Definitions/dragonworldreloaded.yml",
"Definitions/dreamteam.yml",
"Definitions/dxdhd.yml",
"Definitions/ebookparadijs.yml",
"Definitions/efectodoppler.yml",
"Definitions/eggmeon.yml",
"Definitions/elitehd.yml",
@@ -350,6 +355,7 @@ namespace Jackett.Updater
"Definitions/extratorrentclone.yml",
"Definitions/feedurneed.yml", // merged with devilsplayground #6872
"Definitions/filebase.yml",
"Definitions/film-paleis.yml",
"Definitions/filmsclub.yml",
"Definitions/focusx.yml",
"Definitions/freakstrackingsystem.yml",
@@ -387,6 +393,7 @@ namespace Jackett.Updater
"Definitions/hon3yhd.yml",
"Definitions/horriblesubs.yml",
"Definitions/horrorsite.yml",
"Definitions/hqsource.yml",
"Definitions/hush.yml",
"Definitions/hyperay.yml",
"Definitions/icetorrent.yml", // migrated to C# XtremeZone base tracker
@@ -420,6 +427,7 @@ namespace Jackett.Updater
"Definitions/magnetdl.yml",
"Definitions/maniatorrent.yml",
"Definitions/manicomioshare.yml",
"Definitions/mediamaatjes.yml",
"Definitions/megabliz.yml",
"Definitions/metal-iplay-ro.yml", // renamed to romanianmetaltorrents
"Definitions/microbit.yml",
@@ -499,6 +507,7 @@ namespace Jackett.Updater
"Definitions/skytorrents.yml",
"Definitions/skytorrentsclone.yml", // renamed to skytorrents-lol
"Definitions/skytorrentsclone2.yml", // renamed to skytorrents-to
"Definitions/soundpark.yml",
"Definitions/spacetorrent.yml",
"Definitions/speed-share.yml",
"Definitions/sukebei-pantsu.yml",
@@ -542,6 +551,7 @@ namespace Jackett.Updater
"Definitions/torrentseed.yml", // renamed to latinop2p #9065
"Definitions/torrentseeds.yml", // migrated to c#
"Definitions/torrentsmd.yml",
"Definitions/torrentsurf.yml", // renamed xtremebytes #9951
"Definitions/torrentvault.yml",
"Definitions/torrentwal.yml",
"Definitions/torrentwtf.yml",