Compare commits

...

50 Commits

Author SHA1 Message Date
kaso17
85d17a7763 RGU: update definition 2018-07-30 19:19:17 +02:00
kaso17
b1391b0523 ExoticaZ (Your Exotic Torrents): update definition 2018-07-30 19:07:16 +02:00
Jorman
8510a42d7a Il Corsaro Blu: Update definition (#3493)
Quick fix for parsing
2018-07-30 18:08:17 +02:00
kaso17
e61f6e78b3 EoT-Forum: removed (dead) 2018-07-30 18:06:57 +02:00
kaso17
176ba5a6db AST4u: fix definition 2018-07-30 18:02:54 +02:00
kaso17
ad3c56e83b .NETCore: fix manual search categories 2018-07-30 17:39:28 +02:00
kaso17
2495a2f64e manual search: fix IMDB parsing 2018-07-30 15:18:06 +02:00
kaso17
0d6830b0aa accept imdbid+q 2018-07-30 15:06:05 +02:00
kaso17
ef316590cb support multiple category mappings 2018-07-30 14:25:35 +02:00
kaso17
c3c25190a2 gay-torrents.org: fix and improve definition 2018-07-30 14:23:59 +02:00
kaso17
fc3d8d1aec Gazelle: fix free leech token usage for large torrents 2018-07-30 13:16:13 +02:00
kaso17
bbb7d1c3c7 Karagarga: fix date and uploadvolumefactor 2018-07-30 13:05:01 +02:00
kaso17
89dfac3009 GUI: fix DL/UL factor rounding 2018-07-30 13:02:09 +02:00
kaso17
9610965979 GAYtorrent.ru: fix date 2018-07-30 12:43:00 +02:00
kaso17
8b501403e1 gay-torrents.org: fix type 2018-07-30 12:42:30 +02:00
kaso17
3a88aeb649 Cinematik: fix grabs 2018-07-30 12:42:04 +02:00
kaso17
0a0ba2291b Karagarga: fix grabs 2018-07-30 12:14:46 +02:00
kaso17
2484e22da9 GAYtorrent.ru: fix files 2018-07-30 12:14:30 +02:00
kaso17
e8ca3e6b52 gay-torrents.org: add grabs 2018-07-30 12:14:13 +02:00
natalia2493
d5c7445919 Fix BTXpress (#3488)
Parse error fix and cleanup
2018-07-29 14:14:13 +10:00
flightlevel
72045404d4 Torrent9: Update url
Fixes: https://github.com/Jackett/Jackett/issues/3483
2018-07-28 13:12:05 +10:00
flightlevel
1a6e1a8c60 Yggtorrent: Add missing slash 2018-07-28 13:11:24 +10:00
flightlevel
540dc0fad4 Proxy password: Change type to password
Fixes https://github.com/Jackett/Jackett/issues/3485
2018-07-28 13:10:56 +10:00
flightlevel
1db3e93ce1 Allow cookie cross site as per legacy
https://github.com/Jackett/Jackett/issues/3440
2018-07-28 13:10:01 +10:00
kaso17
a5ec65bff3 README: add nginx reverse proxy config example 2018-07-27 18:08:42 +02:00
kaso17
c4e3aa8a64 add x-ite.me indexer
Thank you LA5T
2018-07-27 16:04:11 +02:00
kaso17
e3e183d86b Karagarga: improve definition
Thank you LA5T
2018-07-27 16:00:22 +02:00
kaso17
bfe892f2c8 GAYtorrent.ru: improve definition
Thank you LA5T
2018-07-27 15:55:19 +02:00
kaso17
b28116c10f gay-torrents.org: use username/password input names 2018-07-27 15:52:05 +02:00
kaso17
52c408fce7 Add gay-torrents.org indexer
Thank you LA5T
2018-07-27 15:49:27 +02:00
kaso17
a70997ad7f Cinematik: improve definition
Thank you @LA5T
2018-07-27 15:46:25 +02:00
kaso17
8840de316d Merge branch 'master' of https://github.com/Jackett/Jackett 2018-07-26 17:34:34 +02:00
kaso17
409483e680 Kapaki: add support for modern style 2018-07-26 17:34:24 +02:00
flightlevel
b19d690305 Jackett.Tray: Hide form 2018-07-26 22:07:04 +10:00
natalia2493
0fabaf2fe0 Update BTXpress (#3404)
- Removed IMDB Description as it is not needed
- Removed Audio Category
2018-07-26 20:49:19 +10:00
Jorman
3035d8b901 Domain changed (#3459) 2018-07-25 16:20:34 +12:00
betamax2021
f3d73b5661 Build From Source OSX (#3456)
* Update README.md

Added OS X steps to build from source

* Update README.md

Formating Fix
2018-07-23 21:16:49 +10:00
flightlevel
f335dbf7bc Jackett Tray: Hide from ALT + TAB
https://github.com/Jackett/Jackett/issues/1959
2018-07-22 22:03:04 +10:00
flightlevel
b5178dc7b8 YggTorrent; Update Url
Fixes https://github.com/Jackett/Jackett/issues/3229
2018-07-21 21:47:45 +10:00
flightlevel
ad09a4dd77 Limetorrent: Url update
Fixes https://github.com/Jackett/Jackett/issues/3431
2018-07-21 21:46:55 +10:00
flightlevel
da0ead13f4 MejorTorrent: Update Url
https://github.com/Jackett/Jackett/issues/1468
2018-07-19 20:48:56 +10:00
ATAlgaba
4b6a9376de Update anidex.yml (#3411)
Remove anidb id - sorting names was acting weird as episode numbers were mistaken with the anidb id
2018-07-17 19:45:49 +10:00
ATAlgaba
3eab605423 Update frozenlayer.yml (#3401)
* Update frozenlayer.yml

Better filtering for Absolute Episode Searching.

* Update frozenlayer.yml

Append Spanish language
2018-07-17 19:45:25 +10:00
flightlevel
7fc37f1156 IlCorsaroBlue: Incomplete CA Chain
#3395
2018-07-15 11:02:59 +10:00
flightlevel
9f03f8129a TorrentDay: Correct UHD movies
Fixes https://github.com/Jackett/Jackett/issues/3393
2018-07-14 14:45:40 +10:00
flightlevel
51aa6fdf13 Deprecate libcurl 2018-07-14 14:44:23 +10:00
flightlevel
f2f602dcc5 Mono 5.8 or greater is now required to start Jackett 2018-07-14 14:43:46 +10:00
flightlevel
a217381668 Fix blackhole decoding issue 2018-07-14 14:42:46 +10:00
flightlevel
4bd7befb50 Update to .NET Core 2.1.2 2018-07-13 22:18:11 +10:00
flightlevel
56074155e9 Reverse proxy support for Kestrel 2018-07-13 22:15:09 +10:00
39 changed files with 724 additions and 454 deletions

View File

@@ -71,6 +71,7 @@ Developer note: The software implements the [Torznab](https://github.com/Sonarr/
* CzTorrent
* Deildu
* Gay-Torrents.net
* Gay-Torrents.org
* Kinozal
* LostFilm.tv
* Mega-Bliz
@@ -147,7 +148,6 @@ Developer note: The software implements the [Torznab](https://github.com/Sonarr/
* Elit Tracker
* Elite-Tracker
* Empornium
* EoT-Forum
* eStone
* Ethor.net (Thor's Land)
* FANO.IN
@@ -158,7 +158,7 @@ Developer note: The software implements the [Torznab](https://github.com/Sonarr/
* FunFile
* FunkyTorrents
* Fuzer
* GayTorrent.ru
* GAYtorrent.ru
* GazelleGames
* Gfxnews
* GFXPeers
@@ -285,11 +285,12 @@ Developer note: The software implements the [Torznab](https://github.com/Sonarr/
* Waffles
* World-In-HD
* WorldOfP2P
* x-ite.me
* x264
* xBytesV2
* XSpeeds
* Xthor
* Your Exotic Torrents
* ExoticaZ (Your Exotic Torrents)
* Zamunda.net
* Zelka.org
@@ -371,6 +372,19 @@ Example config for apache:
</Location>
```
Example config for nginx:
```
location /jackett {
proxy_pass http://127.0.0.1:9117;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Host $host;
proxy_redirect off;
}
```
## Troubleshooting
* __Command line switches__
@@ -410,6 +424,22 @@ All contributions are welcome just send a pull request. Jackett's framework all
* Select Jackett.Console as startup project
* Build/Start the project
### OSX
NOTE: msbuild is included in the mono release.
* Install Homebrew https://brew.sh
* open terminal
* brew install nuget mono
* git clone https://github.com/Jackett/Jackett.git
* cd Jackett/src
* nuget restore Jackett.sln
NOTE: if you get the error "NU1102: Unable to find package Microsoft.AspNetCore with version (>= 2.1.2)" while restoring packages, you'll need to install it manually.https://www.microsoft.com/net/download/thank-you/dotnet-sdk-2.1.302-macos-x64-installer then delete the entire project directory and restart from a new clone
* msbuild Jackett.Console/Jackett.Console.csproj /t:Build /p:Configuration=Debug
* curl -sS https://curl.haxx.se/ca/cacert.pem | cert-sync --user /dev/stdin
* mono Jackett.Console/bin/Debug/JackettConsole.exe
### Linux
```bash

View File

@@ -738,9 +738,9 @@ function updateReleasesRow(row)
if (DownloadVolumeFactor == 0) {
labels.append('\n<span class="label label-success">FREELEECH</span>');
} else if (DownloadVolumeFactor < 1) {
labels.append('\n<span class="label label-primary">' + DownloadVolumeFactor * 100 + '%DL</span>');
labels.append('\n<span class="label label-primary">' + (DownloadVolumeFactor * 100).toFixed(0) + '%DL</span>');
} else if (DownloadVolumeFactor > 1) {
labels.append('\n<span class="label label-danger">' + DownloadVolumeFactor * 100 + '%DL</span>');
labels.append('\n<span class="label label-danger">' + (DownloadVolumeFactor * 100).toFixed(0) + '%DL</span>');
}
}
@@ -748,7 +748,7 @@ function updateReleasesRow(row)
if (UploadVolumeFactor == 0) {
labels.append('\n<span class="label label-warning">NO UPLOAD</span>');
} else if (UploadVolumeFactor != 1) {
labels.append('\n<span class="label label-info">' + UploadVolumeFactor * 100 + '%UL</span>');
labels.append('\n<span class="label label-info">' + (UploadVolumeFactor * 100).toFixed(0) + '%UL</span>');
}
}
}

View File

@@ -152,7 +152,7 @@
</div>
<div class="input-area">
<span class="input-header">Proxy password: </span>
<input id="jackett-proxy-password" class="form-control input-right" type="text" value="" placeholder="">
<input id="jackett-proxy-password" class="form-control input-right" type="password" value="" placeholder="">
</div>
<div class="input-area">
@@ -663,6 +663,6 @@
</script>
<script type="text/javascript" src="../libs/api.js?changed=2017083001"></script>
<script type="text/javascript" src="../custom.js?changed=20180709"></script>
<script type="text/javascript" src="../custom.js?changed=20180710"></script>
</body>
</html>

View File

@@ -56,6 +56,9 @@
args: id
title:
selector: td:nth-child(3) > a.torrent > span.span-1440
filters:
- name: re_replace # remove anidb id from return string
args: ["(\\[[A-Z0-9]*\\])\\.", "."]
details:
selector: td:nth-child(3) > a.torrent
attribute: href

View File

@@ -92,7 +92,7 @@
selector: a[href^="details.php"]
attribute: href
download:
selector: a[href^=" /gettorrent/ssl/"]
selector: a[href^=" /gettorrent/"]
attribute: href
files:
selector: td:nth-child(2) > table > tbody > tr:nth-child(2) > td:nth-child(1) > b:nth-child(2), a[href*="&filelist=1"]

View File

@@ -1,18 +1,17 @@
---
site: btxpress
name: BTXpress
description: "HD Tracker Movies/TV/Music"
description: "HD Tracker Movies/TV"
language: en-us
type: private
encoding: UTF-8
links:
- https://btxpress.org/
caps:
categorymappings:
- {id: 1, cat: Movies, desc: "Movies"}
- {id: 2, cat: TV, desc: "TV"}
- {id: 3, cat: Audio, desc: "Music"}
modes:
search: [q]
@@ -36,7 +35,6 @@
inputs:
$raw: "{{range .Categories}}categories[]={{.}}&{{end}}"
search: "{{if .Query.IMDBID}}{{else}}{{ .Keywords }}{{end}}"
description: ""
uploader: ""
imdb: "{{ .Query.IMDBIDShort }}"
tvdb: ""
@@ -45,15 +43,8 @@
sorting: created_at
direction: desc
qty: 100
preprocessingfilters:
- name: jsonjoinarray
args: ["$.result", ""]
- name: prepend
args: "<table>"
- name: append
args: "</table>"
rows:
selector: tr
selector: table > tbody > tr
fields:
category:
selector: a[href*="/categories/"]
@@ -64,33 +55,24 @@
title:
selector: a.view-torrent
download:
selector: a[href*="/download_check/"]
selector: a[href*="/download/"]
attribute: href
filters:
- name: replace
args: ["/download_check/", "/download/"]
details:
selector: a.view-torrent
attribute: href
size:
selector: td:nth-child(5)
selector: td:nth-child(4)
seeders:
selector: td:nth-child(7)
leechers:
selector: td:nth-child(8)
grabs:
selector: td:nth-child(6)
leechers:
selector: td:nth-child(7)
grabs:
selector: td:nth-child(5)
filters:
- name: regexp
args: ([\d\.]+)
date:
selector: time
attribute: datetime
filters:
- name: append
args: " +00:00"
- name: dateparse
args: "2006-01-02 15:04:05 -07:00"
downloadvolumefactor:
case:
"i[data-original-title=\"100% Free\"]": "0"

View File

@@ -1,13 +1,39 @@
---
# Update by LA5T based on the orignial 'cinematik.yml'
# 29.07.2018 22:53 UTC+2
#
site: cinematik
name: Cinematik
description: "Non-Hollywood movie tracker"
description: "Tracker for non-hollywood movies."
language: en-us
type: private
encoding: UTF-8
links:
- https://www.cinematik.net
settings:
- name: username
type: text
label: Username
- name: password
type: password
label: Password
- name: incldead
type: select
label: Status
default: 1
options:
0: Active
1: "Active and Inactive"
2: Inactive
- name: srchdtls
type: checkbox
label: "Detailed search"
- name: info_results
type: info
label: "Search results"
default: "You can increase the number of search results in your profile.<br />Default is 15."
caps:
categorymappings:
- {id: 1, cat: Movies, desc: "Comedy"}
@@ -42,13 +68,15 @@
- selector: table:contains("Login failed!")
test:
path: my.php
search:
paths:
- path: browse.php
inputs:
$raw: "{{range .Categories}}filter_cat[{{.}}]=1&{{end}}"
$raw: "{{range .Categories}}c{{.}}=1&{{end}}"
search: "{{ .Query.Keywords }}"
incldead: "{{ .Config.incldead }}"
srchdtls: "{{ if .Config.srchdtls }}1{{ else }}0{{ end }}"
rows:
selector: table[border="1"] tr:not(:first-child)
fields:
@@ -82,11 +110,11 @@
selector: td:nth-child(11) div.addedtor
downloadvolumefactor:
case:
"img[title=\"Golden Torrent: No Download Stats are Recorded\"]": "0"
"img[title=\"Silver Torrent: Download Stats are 25% Recorded\"]": "0.25"
"img[title=\"Platinum Torrent: No Download Stats are Recorded, Upload Stats are Doubled!\"]": "0"
"*": "1"
"img[title=\"Golden Torrent: No Download Stats are Recorded\"]": 0
"img[title=\"Silver Torrent: Download Stats are 25% Recorded\"]": 0.25
"img[title=\"Platinum Torrent: No Download Stats are Recorded, Upload Stats are Doubled!\"]": 0
"*": 1
uploadvolumefactor:
case:
"img[title=\"Platinum Torrent: No Download Stats are Recorded, Upload Stats are Doubled!\"]": "2"
"*": "1"
"img[title=\"Platinum Torrent: No Download Stats are Recorded, Upload Stats are Doubled!\"]": 2
"*": 1

View File

@@ -1,177 +0,0 @@
---
site: eotforum
name: EoT-Forum
description: "A German gerneral tracker"
language: de-de
type: private
encoding: windows-1252
links:
- https://eot-forum.net
caps:
categorymappings:
# Filme
- {id: 14, cat: Movies/SD, desc: "SD XviD"}
- {id: 15, cat: Movies/SD, desc: "SD x264"}
- {id: 16, cat: Movies/HD, desc: "HD"}
- {id: 68, cat: Movies/HD, desc: "UHD"}
- {id: 17, cat: Movies/3D, desc: "3D"}
- {id: 18, cat: Movies/DVD, desc: "DVD-R"}
- {id: 19, cat: Movies, desc: "Pack"}
- {id: 20, cat: Movies, desc: "International"}
- {id: 21, cat: XXX, desc: "XXX"}
# Serien/TV
- {id: 23, cat: TV/SD, desc: "SD XviD"}
- {id: 24, cat: TV/SD, desc: "SD x264"}
- {id: 25, cat: TV/HD, desc: "HD"}
- {id: 26, cat: TV/SD, desc: "DVD-R"}
- {id: 27, cat: TV, desc: "Pack"}
- {id: 28, cat: TV, desc: "International"}
- {id: 29, cat: TV/Sport, desc: "Sport"}
# Dokus
- {id: 31, cat: TV/Documentary, desc: "SD XviD"}
- {id: 32, cat: TV/Documentary, desc: "SD x264"}
- {id: 33, cat: TV/Documentary, desc: "HD"}
- {id: 34, cat: TV/Documentary, desc: "3D"}
- {id: 35, cat: TV/Documentary, desc: "Pack"}
- {id: 67, cat: TV/Documentary, desc: "DVD-R"}
- {id: 36, cat: TV/Documentary, desc: "International"}
# Audio
- {id: 38, cat: Audio, desc: "Charts"}
- {id: 39, cat: Audio/MP3, desc: "MP3"}
- {id: 40, cat: Audio/Lossless, desc: "Flac"}
- {id: 41, cat: Audio, desc: "Pack"}
- {id: 42, cat: Audio/Video, desc: "MusikVideo"}
- {id: 43, cat: Audio/Audiobook, desc: "Hörbücher"}
# Spiele
- {id: 45, cat: PC/Games, desc: "Windows"}
- {id: 46, cat: PC/Mac, desc: "MacOS"}
- {id: 47, cat: Console/PS4, desc: "Sony PS"}
- {id: 48, cat: Console/Xbox , desc: "Microsoft XBox"}
- {id: 49, cat: Console/NDS, desc: "Nintendo"}
- {id: 50, cat: PC/Games, desc: "Linux"}
- {id: 51, cat: Console, desc: "Andere"}
# Software
- {id: 53, cat: PC, desc: "Windows"}
- {id: 54, cat: PC/Mac, desc: "MacOS"}
- {id: 55, cat: PC, desc: "Linux"}
- {id: 56, cat: PC/Phone-Android, desc: "Android"}
- {id: 57, cat: PC/Phone-IOS, desc: "Apple IOS"}
- {id: 58, cat: PC/Phone-Other, desc: "Andere"}
# Sonstiges
- {id: 60, cat: Books, desc: "EBooks"}
- {id: 61, cat: Other, desc: "Bilder"}
- {id: 62, cat: TV/Anime, desc: "Anime"}
- {id: 63, cat: Other, desc: "MISC"}
- {id: 64, cat: XXX, desc: "XXX-Bilder/EBooks/Audio"}
# EOT-Specials
- {id: 66, cat: Other, desc: "Special"}
modes:
search: [q]
tv-search: [q, season, ep]
login:
path: index.php?page=login
method: post
inputs:
uid: "{{ .Config.username }}"
pwd: "{{ .Config.password }}"
rememberme: "forever"
submit: "Login"
error:
- selector: td.lista[align="center"][colspan="2"] > span
test:
path: index.php
selector: a[href^="logout.php"]
search:
paths:
- path: index.php
inputs:
page: "torrents"
search: "{{ .Query.Keywords }}"
options: "0"
active: "0"
gold: "0"
rows:
selector: table.lista > tbody > tr:has(a[href^="index.php?page=torrent-details&id="])
dateheaders:
selector: ":has(td.header > b)"
filters:
- name: replace
args: ["Torrents vom ", ""]
- name: replace
args: ["Januar", "January"]
- name: replace
args: ["Februar", "February"]
- name: replace
args: ["März", "March"]
- name: replace
args: ["Mai", "May"]
- name: replace
args: ["Juni", "June"]
- name: replace
args: ["Juli", "July"]
- name: replace
args: ["Oktober", "October"]
- name: replace
args: ["Dezember", "December"]
- name: dateparse
args: "02.January.2006"
fields:
download:
selector: a[href^="download.php?id="]
attribute: href
title:
selector: a[href^="index.php?page=torrent-details&id="]
attribute: title
filters:
- name: replace
args: ["Details anzeigen: ", ""]
category:
selector: a[href^="index.php?page=torrents&category="]
attribute: href
filters:
- name: querystring
args: category
comments:
selector: a[href*="#comments"]
attribute: href
size:
selector: td:nth-child(3)
grabs:
selector: td:nth-child(5)
filters:
- name: split
args: ["♦", 2]
- name: replace
args: ["---", "0"]
seeders:
selector: td:nth-child(5) > a:nth-child(1)
leechers:
selector: td:nth-child(5) > a:nth-child(2)
downloadvolumefactor:
case:
img[alt="gold"]: "0"
img[alt="silver"]: "0.5"
"*": "1"
uploadvolumefactor:
case:
img[alt="2x Upload Multiplier"]: "2"
img[alt="3x Upload Multiplier"]: "3"
img[alt="4x Upload Multiplier"]: "4"
img[alt="5x Upload Multiplier"]: "5"
img[alt="6x Upload Multiplier"]: "6"
img[alt="7x Upload Multiplier"]: "7"
img[alt="8x Upload Multiplier"]: "8"
img[alt="9x Upload Multiplier"]: "9"
img[alt="10x Upload Multiplier"]: "10"
"*": "1"

View File

@@ -49,7 +49,13 @@
- path: "{{ if .Keywords }}buscar/descargas/{{ .Config.category }}/{{ .Keywords }}?search=Buscar&page=2{{else}}descargas{{end}}"
keywordsfilters:
- name: re_replace #remove S/EXX from search string
args: ["([SE]\\d{1,2})", ""]
args: ["(S1)", ""]
- name: re_replace #remove S/EXX from search string
args: ["(S2)", "segunda temporada"]
- name: re_replace #remove S/EXX from search string
args: ["(S3)", "tercera temporada"]
- name: re_replace #remove S/EXX from search string
args: ["E([0-9]+)", "$1"]
rows:
selector: table#descargas > tbody > tr:has(td:has(a[href^="magnet:?"]))
fields:
@@ -63,17 +69,19 @@
- name: re_replace
args: ["\\)", ""]
- name: re_replace
args: ["([A-z]*) temporada", "S$1"]
args: ["([A-z]*) temporada", ""]
- name: re_replace
args: ["S[pP]rimera", "S1"]
args: ["S[pP]rimera", ""]
- name: re_replace
args: ["S[sS]egunda", "S2"]
args: ["S[sS]egunda", ""]
- name: re_replace
args: ["S[tT]ercera", "S3"]
args: ["S[tT]ercera", ""]
- name: re_replace
args: ["S([0-9]+) - Episodio ([0-9]+)", "S$1E$2"]
args: ["S([0-9]+) - Episodio ([0-9]+)", "$2"]
- name: re_replace
args: ["- Episodio ([0-9]*)", "E$1"]
args: ["- Episodio ([0-9]*)", "$1"]
- name: append
args: " [spanish]"
details:
selector: td.tit a
attribute: href

View File

@@ -0,0 +1,151 @@
---
# By LA5T for https://gay-torrents.org (29.07.2018 22:55 UTC+2)
#
site: gay-torrentsorg
name: gay-torrents.org
description: "Tracker for GAY XXX, movies, TV, books and PC."
language: en-us
type: semi-private
encoding: UTF-8
links:
- https://gay-torrents.org
- https://gay-area.org/
settings:
- name: username
type: text
label: Username
- name: password
type: password
label: Password
- name: active
type: select
label: Status
default: 0
options:
0: "Active and Inactive"
1: Active
2: Inactive
- name: info_categories
type: info
label: "Hidden categories"
default: "Results for categories hidden in profile will not be visible."
- name: info_results
type: info
label: "Search results"
default: "You can increase the number of search results in your profile.<br />Default is 15."
caps:
categorymappings:
- {id: 15, cat: XXX, desc: "Amateur"}
- {id: 16, cat: XXX, desc: "Anal"}
- {id: 42, cat: XXX, desc: "Animation"}
- {id: 18, cat: XXX, desc: "Asian"}
- {id: 19, cat: XXX, desc: "Bareback"}
- {id: 20, cat: XXX, desc: "Bears"}
- {id: 22, cat: XXX, desc: "Bisexual"}
- {id: 21, cat: XXX, desc: "Black"}
- {id: 23, cat: XXX, desc: "Chubs"}
- {id: 25, cat: XXX, desc: "Cross Generation"}
- {id: 51, cat: XXX, desc: "Doctor/Medical"}
- {id: 27, cat: XXX, desc: "Fetish"}
- {id: 28, cat: XXX, desc: "Group Sex"}
- {id: 30, cat: XXX, desc: "Hunks"}
- {id: 52, cat: XXX, desc: "Interracial"}
- {id: 68, cat: XXX, desc: "Homo Erotic"}
- {id: 68, cat: Movies, desc: "Homo Erotic"}
- {id: 68, cat: TV, desc: "Homo Erotic"}
- {id: 68, cat: Other, desc: "Homo Erotic"}
- {id: 32, cat: XXX, desc: "Latino"}
- {id: 50, cat: XXX, desc: "Middle Eastern"}
- {id: 33, cat: XXX, desc: "Military"}
- {id: 34, cat: XXX, desc: "Oral-Sex"}
- {id: 40, cat: Other, desc: "Other"}
- {id: 35, cat: XXX, desc: "Solo"}
- {id: 36, cat: XXX, desc: "Transsexual"}
- {id: 37, cat: XXX, desc: "Twinks"}
- {id: 38, cat: XXX, desc: "Vintage"}
- {id: 39, cat: XXX, desc: "Wrestling"}
- {id: 17, cat: PC, desc: "Applications"}
- {id: 31, cat: XXX/Imageset, desc: "Images"}
- {id: 49, cat: Books, desc: "Books"}
- {id: 41, cat: Movies, desc: "Non-Porn"}
- {id: 41, cat: TV, desc: "Non-Porn"}
- {id: 41, cat: Other, desc: "Non-Porn"}
modes:
search: [q]
login:
method: post
path: login.php
inputs:
uid: "{{ .Config.username }}"
pwd: "{{ .Config.password }}"
error:
- selector: div.fixed_width:nth-child(4) > span:contains("Incorrect")
test:
path: usercp.php
search:
paths:
- path: torrents_beta.php
method: get
inputs:
$raw: "{{range .Categories}}category[]={{.}}&{{end}}"
search: "{{ .Query.Keywords }}"
active: "{{ .Config.active }}"
rows:
selector: div.torrent
fields:
title:
selector: div:nth-child(2) > div:nth-child(1) > a:nth-child(1)
category:
selector: a[href^="torrents_beta.php?category="]
attribute: href
filters:
- name: querystring
args: category
details:
selector: a[href^="details.php?id="]
attribute: href
banner:
optional: true
selector: a.screenshot
attribute: rel
grabs:
selector: div.downloadTimes
filters:
- name: replace
args: ["No downloads yet", "0"]
- name: regexp
args: ([\d,]+)
comments:
selector: a[href^="details.php?id="]
attribute: href
download:
selector: a[href^="download.php?id="]
attribute: href
size:
selector: div.size
seeders:
selector: div.downloadPeers div:nth-child(1) > a
leechers:
selector: div.downloadPeers > div:nth-child(2) > a
date:
selector: div.date
filters:
- name: re_replace
args: ["on (\\d{2}:\\d{2}) (\\d{2})-([a-zA-Z]{3})-(\\d{4})", "$2 $3 $4 $1"]
- name: append
args: " +01:00"
- name: dateparse
args: "02 Jan 2006 15:04 -07:00"
downloadvolumefactor:
case:
"div:nth-child(2) > div:nth-child(3) > a:contains(\"FREE!\")": 0
"div:nth-child(2) > div:nth-child(3) > a:contains(\"-50%\")": 0.5
"div:nth-child(2) > div:nth-child(3) > a:contains(\"-25%\")": 0.25
"*": 1
uploadvolumefactor:
case:
"*": 1

View File

@@ -1,52 +1,80 @@
---
# Update by LA5T based on the orignial 'gaytorrentru.yml'
# 29.07.2018 23:02 UTC+2
#
site: gaytorrentru
name: GayTorrent.ru
description: "World largest gay porn library for free with a stunning forum and 24/7 Chat"
name: GAYtorrent.ru
description: "World largest gay porn library for free with a stunning forum and 24/7 chat."
language: en-us
type: private
encoding: UTF-8
links:
- https://www.gaytorrent.ru/
settings:
- name: username
type: text
label: Username
- name: password
type: password
label: Password
- name: incldead
type: select
label: Status
default: 1
options:
0: Active
1: "Active and Inactive"
2: Inactive
- name: info
type: info
label: "Hidden categories"
default: "For results in the following categories you must edit your profile.<br />- Straight<br />- Bisexual<br />- Scat"
caps:
categorymappings:
- {id: 62 , cat: XXX , desc: "Amateur"}
- {id: 29 , cat: XXX , desc: "Anal"}
- {id: 46 , cat: XXX , desc: "Anime Games"}
- {id: 30 , cat: XXX , desc: "Asian"}
- {id: 43 , cat: XXX , desc: "Bareback"}
- {id: 19 , cat: XXX , desc: "BDSM"}
- {id: 17 , cat: XXX , desc: "Bears"}
- {id: 44 , cat: XXX , desc: "Black"}
- {id: 50 , cat: Books , desc: "Books & Magazines"}
- {id: 9 , cat: XXX , desc: "Chubbies"}
- {id: 7 , cat: XXX , desc: "Clips"}
- {id: 48 , cat: Books/Comics , desc: "Comic & Yaoi"}
- {id: 5 , cat: XXX , desc: "Daddies / Sons"}
- {id: 34 , cat: XXX , desc: "Fetish"}
- {id: 27 , cat: XXX , desc: "Grey / Older"}
- {id: 32 , cat: XXX , desc: "Group-Sex"}
- {id: 63 , cat: XXX , desc: "Homemade"}
- {id: 12 , cat: XXX , desc: "Hunks"}
- {id: 33 , cat: XXX , desc: "Images"}
- {id: 53 , cat: XXX , desc: "Interracial"}
- {id: 57 , cat: XXX , desc: "Jocks"}
- {id: 35 , cat: XXX , desc: "Latino"}
- {id: 36 , cat: XXX , desc: "Mature"}
- {id: 58 , cat: PC , desc: "Media Programs"}
- {id: 37 , cat: XXX , desc: "Member"}
- {id: 54 , cat: XXX , desc: "Middle Eastern"}
- {id: 38 , cat: XXX , desc: "Military"}
- {id: 39 , cat: XXX , desc: "Oral-Sex"}
- {id: 47 , cat: XXX , desc: "Shemale"}
- {id: 56 , cat: XXX , desc: "Softcore"}
- {id: 40 , cat: XXX , desc: "Solo"}
- {id: 45 , cat: Movies , desc: "Themed Movie"}
- {id: 1 , cat: TV , desc: "TV / Episodes"}
- {id: 41 , cat: XXX , desc: "Twinks"}
- {id: 42 , cat: XXX , desc: "Vintage"}
- {id: 51 , cat: XXX , desc: "Voyeur"}
- {id: 65 , cat: XXX , desc: "Wrestling and Sports"}
- {id: 28 , cat: XXX , desc: "Youngblood"}
- {id: 62, cat: XXX, desc: "Amateur"}
- {id: 29, cat: XXX, desc: "Anal"}
- {id: 46, cat: XXX, desc: "Anime Games"}
- {id: 30, cat: XXX, desc: "Asian"}
- {id: 43, cat: XXX, desc: "Bareback"}
- {id: 19, cat: XXX, desc: "BDSM"}
- {id: 17, cat: XXX, desc: "Bears"}
- {id: 44, cat: XXX, desc: "Black"}
- {id: 50, cat: Books, desc: "Books & Magazines"}
- {id: 9, cat: XXX, desc: "Chubbies"}
- {id: 7, cat: XXX, desc: "Clips"}
- {id: 48, cat: Books/Comics, desc: "Comic & Yaoi"}
- {id: 5, cat: XXX, desc: "Daddies / Sons"}
- {id: 34, cat: XXX, desc: "Fetish"}
- {id: 27, cat: XXX, desc: "Grey / Older"}
- {id: 32, cat: XXX, desc: "Group-Sex"}
- {id: 63, cat: XXX, desc: "Homemade"}
- {id: 12, cat: XXX, desc: "Hunks"}
- {id: 33, cat: XXX/Imageset, desc: "Images"}
- {id: 53, cat: XXX, desc: "Interracial"}
- {id: 57, cat: XXX, desc: "Jocks"}
- {id: 35, cat: XXX, desc: "Latino"}
- {id: 36, cat: XXX, desc: "Mature"}
- {id: 58, cat: PC, desc: "Media Programs"}
- {id: 37, cat: XXX, desc: "Member"}
- {id: 54, cat: XXX, desc: "Middle Eastern"}
- {id: 38, cat: XXX, desc: "Military"}
- {id: 39, cat: XXX, desc: "Oral-Sex"}
- {id: 47, cat: XXX, desc: "Shemale"}
- {id: 56, cat: XXX, desc: "Softcore"}
- {id: 40, cat: XXX, desc: "Solo"}
- {id: 45, cat: Movies, desc: "Themed Movie"}
- {id: 1, cat: TV, desc: "TV / Episodes"}
- {id: 41, cat: XXX, desc: "Twinks"}
- {id: 42, cat: XXX, desc: "Vintage"}
- {id: 51, cat: XXX, desc: "Voyeur"}
- {id: 65, cat: XXX, desc: "Wrestling and Sports"}
- {id: 28, cat: XXX, desc: "Youngblood"}
- {id: 59, cat: XXX, desc: "Bisexual"}
- {id: 61, cat: XXX, desc: "Straight older"}
- {id: 60, cat: XXX, desc: "Straight younger"}
- {id: 64, cat: XXX, desc: "Scat"}
modes:
search: [q]
@@ -65,7 +93,7 @@
inputs:
$raw: "{{range .Categories}}c{{.}}=1&{{end}}"
search: "{{ .Query.Keywords }}"
incldead: "0" # Searches only for alive torrents
incldead: "{{ .Config.incldead }}"
rows:
selector: table.browse_result > tbody > tr:has(a[href^="details.php?id="])
fields:
@@ -89,12 +117,12 @@
selector: .tfiles
filters:
- name: regexp
args: ([\d]+)
args: ([\d,]+)
size:
selector: .tsize
seeders:
optional: true
selector: a[href$="&toseeders=1"]
selector: a[href$="&toseeders=1"], span.red
leechers:
optional: true
selector: a[href$="&todlers=1"]
@@ -102,13 +130,13 @@
selector: .tadded
filters:
- name: re_replace
args: ["(\\d{4}-\\d{2}-\\d{2})(\\d{2}:\\d{2}:\\d{2})(.*)","$1 $2"]
args: ["(\\d{4}-\\d{2}-\\d{2})(\\d{2}:\\d{2}:\\d{2}).*", "$1 $2"]
- name: dateparse
args: "2006-01-02 15:04:05"
downloadvolumefactor:
case:
"td:nth-child(3) > div > nobr > font[color=\"yellow\"]": "0"
"*": "1"
"td:nth-child(3) > div > nobr > font[color=\"yellow\"]": 0
"*": 1
uploadvolumefactor:
case:
"*": "1"
"*": 1

View File

@@ -6,10 +6,12 @@
type: public
encoding: UTF-8
links:
- https://www.ilcorsaroblu.info/
- https://www.ilcorsaroblu.org/
legacylinks:
- http://ilcorsaroblu.org/
- https://www.ilcorsaroblu.org/
- https://www.ilcorsaroblu.info/
certificates:
- e6dd93ef71f96d04559e2bee8cc8e6fd74957730 # incomplete CA chain
caps:
categorymappings:
@@ -143,18 +145,18 @@
- name: regexp
args: "src=(.+?) "
size:
selector: td:nth-child(9)
selector: td:nth-child(10)
date:
selector: td:nth-child(5)
selector: td:nth-child(6)
filters:
- name: dateparse
args: "02/01/2006"
grabs:
selector: td:nth-child(8)
selector: td:nth-child(9)
filters:
- name: replace
args: ["---", "0"]
seeders:
selector: td:nth-child(6)
leechers:
selector: td:nth-child(7)
leechers:
selector: td:nth-child(8)

View File

@@ -84,11 +84,12 @@
selector: table#torrents_table_classic > tbody > tr:not(:first-child), div#content > div.torrent-box[id^="torrent_"]
filters:
- name: andmatch
# the tracker has two different styles (modern/classic) it should work with both
fields:
title:
selector: a[href*="?p=torrents&pid=10&action=details"]
category:
selector: div.category_image > a
selector: div.category_image > a, div.categoryImage > a
attribute: href
filters:
- name: querystring
@@ -117,6 +118,9 @@
downloadvolumefactor:
case:
"img[title=\"ΧΡΥΣΟ!\"]": "0"
"img[title=\"100% FREE!\"]": "0"
"img[title=\"Πολλαπλασιαστής Κατεβάσματος: 0.5\"]": "0.5"
"*": "1"
uploadvolumefactor:
case:

View File

@@ -1,7 +1,10 @@
---
# Update by LA5T based on the orignial 'karagarga.yml'
# 29.07.2018 23:15 UTC+2
#
site: karagarga
name: Karagarga
description: "Rare and obscure movie tracker"
description: "Tracker for non-hollywood, rare and obscure movies, music and literature."
language: en-us
type: private
encoding: UTF-8
@@ -11,6 +14,66 @@
caps:
categorymappings:
- {id: 1, cat: Movies, desc: "Movies"}
- {id: 2, cat: Audio, desc: "Music"}
- {id: 3, cat: Books, desc: "Literature"}
- {id: 4, cat: Movies, desc: "Action"}
- {id: 55, cat: Movies, desc: "Adventure"}
- {id: 5, cat: Movies, desc: "Animation"}
- {id: 6, cat: Movies, desc: "Arthouse"}
- {id: 7, cat: Movies, desc: "Asian"}
- {id: 43, cat: Movies, desc: "Camp"}
- {id: 8, cat: Movies, desc: "Classics"}
- {id: 9, cat: Movies, desc: "Comedy"}
- {id: 10, cat: Movies, desc: "Crime"}
- {id: 11, cat: Movies, desc: "Cult"}
- {id: 20, cat: Movies, desc: "Documentary"}
- {id: 12, cat: Movies, desc: "Drama"}
- {id: 44, cat: Movies, desc: "Epic"}
- {id: 13, cat: Movies, desc: "Erotica"}
- {id: 51, cat: Movies, desc: "Experimental"}
- {id: 47, cat: Movies, desc: "Exploitation"}
- {id: 14, cat: Movies, desc: "Fantasy"}
- {id: 15, cat: Movies, desc: "Film Noir"}
- {id: 53, cat: Movies, desc: "Giallo"}
- {id: 17, cat: Movies, desc: "Horror"}
- {id: 18, cat: Movies, desc: "Martial Arts"}
- {id: 19, cat: Movies, desc: "Musical"}
- {id: 54, cat: Movies, desc: "Mystery"}
- {id: 60, cat: Movies, desc: "Performance"}
- {id: 48, cat: Movies, desc: "Philosophy"}
- {id: 49, cat: Movies, desc: "Politics"}
- {id: 50, cat: Movies, desc: "Romance"}
- {id: 21, cat: Movies, desc: "Sci-Fi"}
- {id: 22, cat: Movies, desc: "Short"}
- {id: 23, cat: Movies, desc: "Silent"}
- {id: 24, cat: Movies, desc: "Thriller"}
- {id: 25, cat: Movies, desc: "TV"}
- {id: 56, cat: Movies, desc: "Video Art"}
- {id: 26, cat: Movies, desc: "War"}
- {id: 27, cat: Movies, desc: "Western"}
- {id: 800, cat: Audio, desc: "Blues"}
- {id: 31, cat: Audio, desc: "Classical"}
- {id: 600, cat: Audio, desc: "Country"}
- {id: 34, cat: Audio, desc: "Electronica"}
- {id: 63, cat: Audio, desc: "Exotica"}
- {id: 1000, cat: Audio, desc: "Experimental"}
- {id: 250, cat: Audio, desc: "Folk"}
- {id: 500, cat: Audio, desc: "Funk"}
- {id: 700, cat: Audio, desc: "Indie"}
- {id: 32, cat: Audio, desc: "Jazz"}
- {id: 1200, cat: Audio, desc: "Latin"}
- {id: 35, cat: Audio, desc: "Live"}
- {id: 900, cat: Audio, desc: "Metal"}
- {id: 62, cat: Audio, desc: "Punk & Hardcore"}
- {id: 52, cat: Audio, desc: "Rap & Hiphop"}
- {id: 5000, cat: Audio, desc: "Reggae"}
- {id: 36, cat: Audio, desc: "Rock"}
- {id: 400, cat: Audio, desc: "Soul"}
- {id: 33, cat: Audio, desc: "Soundtrack"}
- {id: 30, cat: Audio, desc: "World"}
- {id: 40, cat: Audio/Audiobook, desc: "Audiobooks"}
- {id: 41, cat: Books, desc: "Books"}
- {id: 42, cat: Books/Comics, desc: "Comics"}
modes:
search: [q]
@@ -33,15 +96,22 @@
search:
paths:
- path: browse.php
keywordsfilters:
- name: re_replace
args: ["(?<=^| )(?!-|\\+)[^ ]+(?= |$)", "+$&"]
inputs:
$raw: "{{range .Categories}}filter_cat[{{.}}]=1&{{end}}"
search: "\"{{ .Query.Keywords }}\""
search_type: "title"
$raw: "{{range .Categories}}genre={{.}}&{{end}}"
search: "{{ .Keywords }}"
search_type: title
rows:
selector: table#browse > tbody > tr:has(a[href^="browse.php?genre="])
fields:
category:
text: 1
selector: a[href^="browse.php?genre="]
attribute: href
filters:
- name: querystring
args: genre
title:
selector: td:nth-child(2) span
download:
@@ -69,15 +139,16 @@
date:
selector: td:nth-child(9)
filters:
- name: replace
args: ["'", ""]
- name: re_replace
args: ["[^a-zA-Z0-9]+", " "]
args: ["([a-zA-Z]+)\\s+(\\d{1,2})\\s+'(\\d{2})", "$2 $1 $3"]
- name: dateparse
args: "Jan 02 06"
args: "02 Jan 06"
downloadvolumefactor:
case:
"*": "1"
"*": 1
uploadvolumefactor:
case:
"*": "1"
":has(img[title^=HD]):has(img[title^=CURRENT])": 1.8
"img[title^=CURRENT]": 1.6
"img[title^=HD]": 1.3
"*": 1.1

View File

@@ -6,6 +6,8 @@
type: public
encoding: UTF-8
links:
- https://www.limetorrents.io/
legacylinks:
- https://www.limetorrents.cc/
caps:

View File

@@ -6,6 +6,8 @@
type: private
encoding: UTF-8
links:
- https://v2.rgut.uk/
legacylinks:
- https://rgu.rgt.life/
caps:
@@ -65,8 +67,7 @@
inputs:
username: "{{ .Config.username }}"
password: "{{ .Config.password }}"
submitme: "X"
submitme: "X" # two submitme needed?!? shouldn't make a difference
use_ssl: "1"
error:
- selector: h2:contains("Login failed!")
message:

View File

@@ -6,7 +6,7 @@
type: public
encoding: UTF-8
links:
- http://www.torrent9.blue/
- https://www.torrent9.blue/
legacylinks:
- http://www.torrent9.ec/
- http://www.torrent9.red/
@@ -14,6 +14,7 @@
- http://www.torrents9.pe/
- http://www.torrent9.cc/
- http://www.torrent9.pe/
- http://www.torrent9.blue/
caps:
categorymappings:

View File

@@ -0,0 +1,165 @@
---
# By LA5T for https://x-ite.me (25.07.2018 17:34 UTC+2)
#
# TODO:
# x-ite.me doesn't support altering the number of results, therefore only the 20 first results are shown (this is hardcoded), Jackett may support pagination in the future tho
#
site: xiteme
name: x-ite.me
description: "Tracker for LGBTQ movies, TV, books, magazines, anime, PC and XXX."
language: en-us
type: private
encoding: UTF-8
links:
- https://x-ite.me
settings:
- name: username
type: text
label: Username
- name: password
type: password
label: Password
- name: incldead
type: select
label: Status
default: 1
options:
0: Active
1: "Active and Inactive"
2: Inactive
caps:
categorymappings:
- {id: 6700, cat: TV/Anime, desc: "Animations - Adult"}
- {id: 6330, cat: TV/Anime, desc: "Animations - Futanari"}
- {id: 6320, cat: TV/Anime, desc: "Animations - Yaoi"}
- {id: 9700, cat: Books/Comics, desc: "Comics & Manga - Adult"}
- {id: 5000, cat: XXX, desc: "Fetish - All"}
- {id: 7700, cat: XXX/Imageset, desc: "Images - Fetish"}
- {id: 1050, cat: Movies, desc: "Movies - Biography"}
- {id: 1150, cat: Movies, desc: "Movies - Crime"}
- {id: 1250, cat: Movies, desc: "Movies - Experimental"}
- {id: 1350, cat: Movies, desc: "Movies - History"}
- {id: 1450, cat: Movies, desc: "Movies - Mystery"}
- {id: 1530, cat: Movies, desc: "Movies - Sport"}
- {id: 1630, cat: Movies, desc: "Movies - Western"}
- {id: 6100, cat: TV/Anime, desc: "Animations - Anime"}
- {id: 6300, cat: TV/Anime, desc: "Animations - Hentai"}
- {id: 6310, cat: TV/Anime, desc: "Animations - Yuri"}
- {id: 9600, cat: Books/Comics, desc: "Comics & Manga - Cartoon"}
- {id: 13000, cat: PC/Games, desc: "Games - All"}
- {id: 7900, cat: XXX/Imageset, desc: "Images - Other"}
- {id: 1070, cat: Movies, desc: "Movies - Bollywood"}
- {id: 1170, cat: Movies, desc: "Movies - Documentary"}
- {id: 1270, cat: Movies, desc: "Movies - Family"}
- {id: 1370, cat: Movies, desc: "Movies - Horror"}
- {id: 1470, cat: Movies, desc: "Movies - News"}
- {id: 1550, cat: Movies, desc: "Movies - Suspense"}
- {id: 3000, cat: XXX, desc: "Softcore - All"}
- {id: 6340, cat: TV/Anime, desc: "Animations - Bara"}
- {id: 6900, cat: TV/Anime, desc: "Animations - Other"}
- {id: 14000, cat: PC, desc: "Applications - All"}
- {id: 9200, cat: Books/Comics, desc: "Comics & Manga - Hentai"}
- {id: 4000, cat: XXX, desc: "Hardcore - All"}
- {id: 8000, cat: Books/Magazines, desc: "Magazines - All"}
- {id: 1090, cat: Movies, desc: "Movies - Comedy"}
- {id: 1190, cat: Movies, desc: "Movies - Drama"}
- {id: 1290, cat: Movies, desc: "Movies - Fantasy"}
- {id: 1390, cat: Movies, desc: "Movies - Indie"}
- {id: 1900, cat: Movies, desc: "Movies - Other"}
- {id: 1570, cat: Movies, desc: "Movies - Theater"}
- {id: 12000, cat: Other, desc: "Subtitles - All"}
- {id: 6110, cat: TV/Anime, desc: "Animations - Ecchi"}
- {id: 6120, cat: TV/Anime, desc: "Animations - Shoujo Ai"}
- {id: 11000, cat: Audio/Audiobook, desc: "Audio Books - All"}
- {id: 9100, cat: Books/Comics, desc: "Comics & Manga - Manga"}
- {id: 7500, cat: XXX/Imageset, desc: "Images - Adult"}
- {id: 1010, cat: Movies, desc: "Movies - Action"}
- {id: 1110, cat: Movies, desc: "Movies - Coming of Age"}
- {id: 1210, cat: Movies, desc: "Movies - Eastern"}
- {id: 1310, cat: Movies, desc: "Movies - Film Noir"}
- {id: 1410, cat: Movies, desc: "Movies - Music"}
- {id: 1490, cat: Movies, desc: "Movies - Romance"}
- {id: 1590, cat: Movies, desc: "Movies - Thriller"}
- {id: 6350, cat: TV/Anime, desc: "Animations - Furry"}
- {id: 6330, cat: TV/Anime, desc: "Animations - Shounen Ai"}
- {id: 10000, cat: Books, desc: "Books - All"}
- {id: 9900, cat: Books/Comics, desc: "Comics & Manga - Other"}
- {id: 7300, cat: XXX/Imageset, desc: "Images - Erotic"}
- {id: 1030, cat: Movies, desc: "Movies - Adventure"}
- {id: 1130, cat: Movies, desc: "Movies - Coming Out"}
- {id: 1230, cat: Movies, desc: "Movies - Entertainment"}
- {id: 1330, cat: Movies, desc: "Movies - Historical"}
- {id: 1430, cat: Movies, desc: "Movies - Musical"}
- {id: 1510, cat: Movies, desc: "Movies - Sci-Fi"}
- {id: 1610, cat: Movies, desc: "Movies - War"}
modes:
search: [q]
login:
method: post
path: account-login.php
inputs:
username: "{{ .Config.username }}"
password: "{{ .Config.password }}"
error:
- selector: .myF-content > center:nth-child(1) > b:contains("The specified username or password was incorrect.")
test:
path: account.php
search:
paths:
- path: torrents-search.php
method: get
keywordsfilters:
- name: re_replace
args: ["(?<=^| )(?!-|\\+)[^ ]+(?= |$)", "+$&"]
inputs:
$raw: "{{range .Categories}}&c{{.}}=1&{{end}}"
search: "{{ .Keywords }}"
incldead: "{{ .Config.incldead }}"
rows:
selector: tr.t-row
fields:
title:
selector: td:nth-child(2) > a:nth-child(1) > b:nth-child(1)
category:
selector: a[href^="torrents.php?cat="]
attribute: href
filters:
- name: querystring
args: cat
details:
selector: a[href^="torrents-details.php?id="]
attribute: href
comments:
selector: a[href^="comments.php?type=torrent&id="]
attribute: href
download:
selector: a[href^="download.php?id="]
attribute: href
size:
selector: td:nth-child(7)
files:
selector: td:nth-child(6)
seeders:
selector: td:nth-child(8)
leechers:
selector: td:nth-child(9)
date:
selector: td:nth-child(3)
filters:
- name: re_replace
args: ["(\\d{2})-(\\d{2})-(\\d{4}) ((?:\\d{2}:?){3})", "$3-$2-$1 $4"]
- name: append
args: " +01:00"
- name: dateparse
args: "2006-01-02 15:04:05 -07:00"
downloadvolumefactor:
case:
"td:nth-child(2) > a:nth-child(1) > span:nth-child(2)": 0
"*": 1
uploadvolumefactor:
case:
"*": 1

View File

@@ -6,11 +6,12 @@
type: semi-private
encoding: UTF-8
links:
- https://ww1.yggtorrent.is/
- https://ww2.yggtorrent.is/
legacylinks:
- https://yggtorrent.is/
- https://yggtorrent.com/
- https://ww1.yggtorrent.com/
- https://ww1.yggtorrent.is/
caps:
categorymappings:

View File

@@ -1,102 +1,80 @@
---
site: yourexotic
name: Your Exotic Torrents
name: ExoticaZ
description: "a porn tracker"
language: en-us
type: private
encoding: UTF-8
links:
- https://exoticaz.to/
legacylinks:
- https://torrents.yourexotic.com/
caps:
categorymappings:
- {id: 11, cat: XXX, desc: "DVDRip"}
- {id: 2, cat: XXX, desc: "DVDRip Censored"}
- {id: 1, cat: XXX, desc: "Video Clip"}
- {id: 20, cat: XXX, desc: "Censored Clips"}
- {id: 14, cat: XXX, desc: "Hentai"}
- {id: 19, cat: XXX, desc: "Full DVD"}
- {id: 16, cat: XXX, desc: "HD 720p"}
- {id: 17, cat: XXX, desc: "HD 1080p"}
- {id: 18, cat: XXX, desc: "HD Censored"}
- {id: 15, cat: XXX, desc: "SVCD/VCD"}
- {id: 13, cat: XXX, desc: "Softcore"}
- {id: 3, cat: XXX, desc: "Pictures"}
- {id: 21, cat: XXX, desc: "Mixed Videos"}
- {id: 1, cat: XXX, desc: "DVDRip"}
modes:
search: [q]
tv-search: [q]
movie-search: [q]
login:
path: /index.php?page=login
method: post
path: /login
method: form
inputs:
uid: "{{ .Config.username }}"
pwd: "{{ .Config.password }}"
username: "{{ .Config.username }}"
password: "{{ .Config.password }}"
remember: "on"
error:
- selector: .lista>span
- selector: div.invalid-feedback
test:
path: index.php
selector: form[name="jump1"]
selector: div.ratio-bar
search:
path: index.php
path: /torrents
inputs:
$raw: "&category={{range .Categories}}{{.}};{{end}}"
page: "torrents"
active: "0"
search: "{{ .Query.Keywords }}"
in: 1
search: "{{ .Keywords }}"
category: 0
rows:
selector: table.lista > tbody > tr:has(a[href^="index.php?page=torrent-details&id="])
selector: div.table-responsive > table > tbody > tr
fields:
category:
selector: td:nth-child(1) a
attribute: href
filters:
- name: querystring
args: category
text: 1
title:
selector: a[href^="index.php?page=torrent-details&id="]
selector: a.torrent-link
attribute: title
filters:
- name: replace
args: ["View details: ", ""]
details:
selector: a[href^="index.php?page=torrent-details&id="]
selector: a.torrent-link
attribute: href
banner:
selector: span.screen-image
attribute: data-screens
filters:
- name: split
args: ["|", 0]
size:
selector: td:nth-child(7)
selector: td:nth-child(5)
seeders:
selector: td:nth-child(9)
leechers:
selector: td:nth-child(10)
grabs:
selector: td:nth-child(11)
filters:
- name: replace
args: ["---", "0"]
date:
selector: td:nth-child(6)
leechers:
selector: td:nth-child(7)
grabs:
selector: td:nth-child(8)
date:
selector: td:nth-child(3)
filters:
- name: dateparse
args: "02/01/2006"
- name: append
args: " ago"
download:
selector: a[href^="download.php"]
selector: a[href*="/download/"]
attribute: href
downloadvolumefactor:
case:
img[src$="freeleech.gif"]: "0"
img[src$="silver.gif"]: "0.5"
i[title="Free Download"]: "0"
i[title="Half Download"]: "0.5"
"*": "1"
uploadvolumefactor:
case:
img[src$="2x.gif"]: "2"
img[src$="3x.gif"]: "3"
img[src$="4x.gif"]: "4"
img[src$="5x.gif"]: "5"
img[src$="6x.gif"]: "6"
img[src$="7x.gif"]: "7"
img[src$="8x.gif"]: "8"
img[src$="9x.gif"]: "9"
i.fa-gem: "2"
"*": "1"

View File

@@ -318,7 +318,7 @@ namespace Jackett.Common.Indexers.Abstract
{
var content = await base.Download(link);
// Check if we're out of FL tokens
// Check if we're out of FL tokens/torrent is to large
// most gazelle trackers will simply return the torrent anyway but e.g. redacted will return an error
var requestLink = link.ToString();
if (content.Length >= 1
@@ -326,7 +326,8 @@ namespace Jackett.Common.Indexers.Abstract
&& requestLink.Contains("usetoken=1"))
{
var html = Encoding.GetString(content);
if (html.Contains("You do not have any freeleech tokens left."))
if (html.Contains("You do not have any freeleech tokens left.")
|| html.Contains("This torrent is too large."))
{
// download again with usetoken=0
var requestLinkNew = requestLink.Replace("usetoken=1", "usetoken=0");

View File

@@ -752,26 +752,22 @@ namespace Jackett.Common.Indexers
protected ICollection<int> MapTrackerCatToNewznab(string input)
{
var cats = new List<int>();
if (null != input)
{
var mapping = categoryMapping.Where(m => m.TrackerCategory != null && m.TrackerCategory.ToLowerInvariant() == input.ToLowerInvariant()).FirstOrDefault();
if (mapping != null)
{
cats.Add(mapping.NewzNabCategory);
}
if (input == null)
return new List<int>();
// 1:1 category mapping
try
{
var trackerCategoryInt = int.Parse(input);
cats.Add(trackerCategoryInt + 100000);
}
catch (FormatException)
{
// input is not an integer, continue
}
var cats = categoryMapping.Where(m => m.TrackerCategory != null && m.TrackerCategory.ToLowerInvariant() == input.ToLowerInvariant()).Select(c => c.NewzNabCategory).ToList();
// 1:1 category mapping
try
{
var trackerCategoryInt = int.Parse(input);
cats.Add(trackerCategoryInt + 100000);
}
catch (FormatException)
{
// input is not an integer, continue
}
return cats;
}

View File

@@ -18,7 +18,7 @@ namespace Jackett.Common.Indexers
{
class MejorTorrent : BaseWebIndexer
{
public static Uri WebUri = new Uri("http://www.mejortorrent.com/");
public static Uri WebUri = new Uri("http://www.mejortorrent.org/");
public static Uri DownloadUri = new Uri(WebUri, "secciones.php?sec=descargas&ap=contar_varios");
private static Uri SearchUriBase = new Uri(WebUri, "secciones.php");
public static Uri NewTorrentsUri = new Uri(WebUri, "secciones.php?sec=ultimos_torrents");

View File

@@ -71,6 +71,7 @@ namespace Jackett.Common.Indexers
AddCategoryMapping(47, TorznabCatType.Other, "Fonts");
AddCategoryMapping(43, TorznabCatType.PCMac, "Mac");
AddCategoryMapping(96, TorznabCatType.MoviesUHD, "Movie/4K");
AddCategoryMapping(25, TorznabCatType.MoviesSD, "Movies/480p");
AddCategoryMapping(11, TorznabCatType.MoviesBluRay, "Movies/Bluray");
AddCategoryMapping(5, TorznabCatType.MoviesBluRay, "Movies/Bluray-Full");
@@ -79,7 +80,7 @@ namespace Jackett.Common.Indexers
AddCategoryMapping(22, TorznabCatType.MoviesForeign, "Movies/Non-English");
AddCategoryMapping(13, TorznabCatType.Movies, "Movies/Packs");
AddCategoryMapping(44, TorznabCatType.MoviesSD, "Movies/SD/x264");
AddCategoryMapping(48, TorznabCatType.MoviesUHD, "Movies/x265");
AddCategoryMapping(48, TorznabCatType.Movies, "Movies/x265");
AddCategoryMapping(1, TorznabCatType.MoviesSD, "Movies/XviD");
AddCategoryMapping(17, TorznabCatType.Audio, "Music/Audio");

View File

@@ -44,20 +44,23 @@ namespace Jackett.Common.Models.DTO
stringQuery.ExpandCatsToSubCats();
// try to build an IMDB Query
var imdbID = ParseUtil.GetFullImdbID(stringQuery.SanitizedSearchTerm);
TorznabQuery imdbQuery = null;
if (imdbID != null)
if (stringQuery.SanitizedSearchTerm.StartsWith("tt") && stringQuery.SanitizedSearchTerm.Length <= 9)
{
imdbQuery = new TorznabQuery()
var imdbID = ParseUtil.GetFullImdbID(stringQuery.SanitizedSearchTerm);
TorznabQuery imdbQuery = null;
if (imdbID != null)
{
ImdbID = imdbID,
Categories = stringQuery.Categories,
Season = stringQuery.Season,
Episode = stringQuery.Episode,
};
imdbQuery.ExpandCatsToSubCats();
imdbQuery = new TorznabQuery()
{
ImdbID = imdbID,
Categories = stringQuery.Categories,
Season = stringQuery.Season,
Episode = stringQuery.Episode,
};
imdbQuery.ExpandCatsToSubCats();
return imdbQuery;
return imdbQuery;
}
}
return stringQuery;

View File

@@ -62,24 +62,9 @@ namespace Jackett.Common.Plumbing
case "httpclient2":
RegisterWebClient<HttpWebClient2>(builder);
break;
case "safecurl":
RegisterWebClient<UnixSafeCurlWebClient>(builder);
break;
case "libcurl":
RegisterWebClient<UnixLibCurlWebClient>(builder);
break;
case "automatic":
default:
if (System.Environment.OSVersion.Platform != PlatformID.Unix)
{
RegisterWebClient<HttpWebClient>(builder);
break;
}
var usehttpclient = DetectMonoCompatabilityWithHttpClient();
if (usehttpclient)
RegisterWebClient<HttpWebClient>(builder);
else
RegisterWebClient<UnixLibCurlWebClient>(builder);
RegisterWebClient<HttpWebClient>(builder);
break;
}
}

View File

@@ -65,6 +65,14 @@ namespace Jackett.Console
Engine.Logger.Info("Jackett Data will be stored in: " + runtimeSettings.CustomDataFolder);
}
if(!string.IsNullOrEmpty(runtimeSettings.ClientOverride))
{
if (runtimeSettings.ClientOverride != "httpclient" && runtimeSettings.ClientOverride != "httpclient2" && runtimeSettings.ClientOverride != "httpclientnetcore")
{
Engine.Logger.Error($"Client override ({runtimeSettings.ClientOverride}) has been deprecated, please remove it from your start arguments");
Environment.Exit(1);
}
}
// Use Proxy
if (options.ProxyConnection != null)

View File

@@ -3,11 +3,12 @@ using Jackett.Common.Services.Interfaces;
using Jackett.Common.Utils;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.WebUtilities;
using Newtonsoft.Json.Linq;
using NLog;
using System;
using System.IO;
using System.Net;
using System.Text;
using System.Threading.Tasks;
namespace Jackett.Server.Controllers
@@ -46,7 +47,7 @@ namespace Jackett.Server.Controllers
if (serverConfig.APIKey != jackett_apikey)
throw new Exception("Incorrect API key");
path = WebUtility.UrlDecode(path);
path = Encoding.UTF8.GetString(WebEncoders.Base64UrlDecode(path));
path = protectionService.UnProtect(path);
var remoteFile = new Uri(path, UriKind.RelativeOrAbsolute);
var fileExtension = ".torrent";

View File

@@ -202,6 +202,7 @@ namespace Jackett.Server.Controllers
if (t.Key == "Category[]")
{
request.Category = t.Value.ToString().Split(',').Select(Int32.Parse).ToArray();
CurrentQuery.Categories = request.Category;
}
if (t.Key == "query")

View File

@@ -72,6 +72,8 @@ namespace Jackett.Server.Controllers
[HttpPost]
public IActionResult UpdateConfig([FromBody]Common.Models.DTO.ServerConfig config)
{
bool webHostRestartNeeded = false;
var originalPort = serverConfig.Port;
var originalAllowExternal = serverConfig.AllowExternal;
int port = config.port;
@@ -91,6 +93,11 @@ namespace Jackett.Server.Controllers
string omdbApiKey = config.omdbkey;
string omdbApiUrl = config.omdburl;
if (config.basepathoverride != serverConfig.BasePathOverride)
{
webHostRestartNeeded = true;
}
serverConfig.UpdateDisabled = updateDisabled;
serverConfig.UpdatePrerelease = preRelease;
serverConfig.BasePathOverride = basePathOverride;
@@ -164,8 +171,7 @@ namespace Jackett.Server.Controllers
}
}
Thread.Sleep(500);
Helper.RestartWebHost();
webHostRestartNeeded = true;
}
if (saveDir != serverConfig.BlackholeDir)
@@ -182,6 +188,13 @@ namespace Jackett.Server.Controllers
configService.SaveConfig(serverConfig);
}
if (webHostRestartNeeded)
{
Thread.Sleep(500);
logger.Info("Restarting webhost due to configuration change");
Helper.RestartWebHost();
}
serverConfig.ConfigChanged();
return Json(serverConfig);

View File

@@ -25,7 +25,7 @@
<PackageReference Include="Autofac.Extensions.DependencyInjection" Version="4.2.2" />
<PackageReference Include="AutoMapper" Version="7.0.1" />
<PackageReference Include="CommandLineParser" Version="2.2.1" />
<PackageReference Include="Microsoft.AspNetCore" Version="2.1.1" />
<PackageReference Include="Microsoft.AspNetCore" Version="2.1.2" />
<PackageReference Include="Microsoft.AspNetCore.Authentication" Version="2.1.1" />
<PackageReference Include="Microsoft.AspNetCore.Authentication.Cookies" Version="2.1.1" />
<PackageReference Include="Microsoft.AspNetCore.Mvc" Version="2.1.1" />

View File

@@ -1,25 +0,0 @@
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Rewrite;
using System;
namespace Jackett.Server.Middleware
{
public class RewriteRules
{
public static void RewriteBasePath(RewriteContext context)
{
var request = context.HttpContext.Request;
string serverBasePath = Helper.ServerService.BasePath() ?? string.Empty;
if (request.Path != null && request.Path.HasValue && serverBasePath.Length > 0
&& (request.Path.Value.StartsWith(serverBasePath + "/", StringComparison.Ordinal)
|| request.Path.Value.Equals(serverBasePath, StringComparison.Ordinal)))
{
string path = request.Path.Value.Substring(serverBasePath.Length);
path = string.IsNullOrEmpty(path) ? "/" : path;
request.Path = new PathString(path);
}
}
}
}

View File

@@ -12,6 +12,7 @@ using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.DataProtection;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.HttpOverrides;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.Authorization;
using Microsoft.AspNetCore.Rewrite;
@@ -47,6 +48,7 @@ namespace Jackett.Server
options.AccessDeniedPath = new PathString("/UI/Login");
options.LogoutPath = new PathString("/UI/Logout");
options.Cookie.Name = "Jackett";
options.Cookie.SameSite = SameSiteMode.None;
});
services.AddMvc(config =>
@@ -107,8 +109,19 @@ namespace Jackett.Server
app.UseCustomExceptionHandler();
string serverBasePath = Helper.ServerService.BasePath() ?? string.Empty;
if (!string.IsNullOrEmpty(serverBasePath))
{
app.UsePathBase(serverBasePath);
}
app.UseForwardedHeaders(new ForwardedHeadersOptions
{
ForwardedHeaders = ForwardedHeaders.XForwardedFor | ForwardedHeaders.XForwardedProto
});
var rewriteOptions = new RewriteOptions()
.Add(RewriteRules.RewriteBasePath)
.AddRewrite(@"^torznab\/([\w-]*)", "api/v2.0/indexers/$1/results/torznab", skipRemainingRules: true) //legacy torznab route
.AddRewrite(@"^potato\/([\w-]*)", "api/v2.0/indexers/$1/results/potato", skipRemainingRules: true) //legacy potato route
.Add(RedirectRules.RedirectToDashboard);

View File

@@ -42,7 +42,6 @@
<Reference Include="System" />
<Reference Include="System.Configuration" />
<Reference Include="System.Core" />
<Reference Include="System.IO.Compression" />
<Reference Include="System.Net.Http.WebRequest" />
<Reference Include="System.Runtime.Serialization" />
<Reference Include="System.ServiceModel" />
@@ -53,7 +52,6 @@
<Reference Include="System.Data" />
<Reference Include="System.Deployment" />
<Reference Include="System.Drawing" />
<Reference Include="System.Net.Http" />
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Xml" />
</ItemGroup>

View File

@@ -30,6 +30,11 @@ namespace Jackett.Tray
Hide();
InitializeComponent();
Opacity = 0;
Enabled = false;
WindowState = FormWindowState.Minimized;
FormBorderStyle = FormBorderStyle.FixedToolWindow;
RuntimeSettings runtimeSettings = new RuntimeSettings()
{
CustomLogFileName = "TrayLog.txt"

View File

@@ -39,7 +39,7 @@ namespace Jackett.Tray
}
});
}
catch (Exception e)
catch (Exception)
{
newVersion = "";
}

View File

@@ -231,6 +231,7 @@ namespace Jackett.Updater
"Definitions/oxtorrent.yml",
"Definitions/tehconnection.yml",
"Definitions/torrentwtf.yml",
"Definitions/eotforum.yml",
};
foreach (var oldFile in oldFiles)

View File

@@ -289,11 +289,13 @@ namespace Jackett.Controllers
if (CurrentQuery.ImdbID != null)
{
/* We should allow this (helpful in case of aggregate idnexers)
if (!string.IsNullOrEmpty(CurrentQuery.SearchTerm))
{
logger.Warn($"A search request from {Request.GetOwinContext().Request.RemoteIpAddress} was made containing q and imdbid.");
return GetErrorXML(201, "Incorrect parameter: please specify either imdbid or q");
}
*/
CurrentQuery.ImdbID = ParseUtil.GetFullImdbID(CurrentQuery.ImdbID); // normalize ImdbID
if (CurrentQuery.ImdbID == null)

View File

@@ -143,23 +143,12 @@ namespace Jackett.Services
var monoVersionO = new Version(monoVersion.Split(' ')[0]);
if (monoVersionO.Major < 4)
{
logger.Error("Your mono version is to old (mono 3 is no longer supported). Please update to the latest version from http://www.mono-project.com/download/");
Engine.Exit(2);
}
else if (monoVersionO.Major == 4 && monoVersionO.Minor == 2)
{
var notice = "mono version 4.2.* is known to cause problems with Jackett. If you experience any problems please try updating to the latest mono version from http://www.mono-project.com/download/ first.";
_notices.Add(notice);
logger.Error(notice);
}
if (monoVersionO.Major < 5 || (monoVersionO.Major == 5 && monoVersionO.Minor < 8))
{
string notice = "A minimum Mono version of 5.8 is required. Please update to the latest version from http://www.mono-project.com/download/";
_notices.Add(notice);
logger.Error(notice);
Engine.Exit(1);
}
try