mirror of
https://github.com/Jackett/Jackett.git
synced 2025-09-13 15:34:07 +02:00
Compare commits
47 Commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
5e8ebd8579 | ||
![]() |
748881ef70 | ||
![]() |
42e6600c6a | ||
![]() |
85d17a7763 | ||
![]() |
b1391b0523 | ||
![]() |
8510a42d7a | ||
![]() |
e61f6e78b3 | ||
![]() |
176ba5a6db | ||
![]() |
ad3c56e83b | ||
![]() |
2495a2f64e | ||
![]() |
0d6830b0aa | ||
![]() |
ef316590cb | ||
![]() |
c3c25190a2 | ||
![]() |
fc3d8d1aec | ||
![]() |
bbb7d1c3c7 | ||
![]() |
89dfac3009 | ||
![]() |
9610965979 | ||
![]() |
8b501403e1 | ||
![]() |
3a88aeb649 | ||
![]() |
0a0ba2291b | ||
![]() |
2484e22da9 | ||
![]() |
e8ca3e6b52 | ||
![]() |
d5c7445919 | ||
![]() |
72045404d4 | ||
![]() |
1a6e1a8c60 | ||
![]() |
540dc0fad4 | ||
![]() |
1db3e93ce1 | ||
![]() |
a5ec65bff3 | ||
![]() |
c4e3aa8a64 | ||
![]() |
e3e183d86b | ||
![]() |
bfe892f2c8 | ||
![]() |
b28116c10f | ||
![]() |
52c408fce7 | ||
![]() |
a70997ad7f | ||
![]() |
8840de316d | ||
![]() |
409483e680 | ||
![]() |
b19d690305 | ||
![]() |
0fabaf2fe0 | ||
![]() |
3035d8b901 | ||
![]() |
f3d73b5661 | ||
![]() |
f335dbf7bc | ||
![]() |
b5178dc7b8 | ||
![]() |
ad09a4dd77 | ||
![]() |
da0ead13f4 | ||
![]() |
4b6a9376de | ||
![]() |
3eab605423 | ||
![]() |
7fc37f1156 |
37
README.md
37
README.md
@@ -43,7 +43,6 @@ Developer note: The software implements the [Torznab](https://github.com/Sonarr/
|
|||||||
* LimeTorrents
|
* LimeTorrents
|
||||||
* MagnetDL
|
* MagnetDL
|
||||||
* MejorTorrent <!-- maintained by ivandelabeldad -->
|
* MejorTorrent <!-- maintained by ivandelabeldad -->
|
||||||
* NextTorrent
|
|
||||||
* Newpct (aka: tvsinpagar, descargas2020, torrentlocura, torrentrapid, etc)
|
* Newpct (aka: tvsinpagar, descargas2020, torrentlocura, torrentrapid, etc)
|
||||||
* Nyaa.si
|
* Nyaa.si
|
||||||
* Nyaa-Pantsu
|
* Nyaa-Pantsu
|
||||||
@@ -71,6 +70,7 @@ Developer note: The software implements the [Torznab](https://github.com/Sonarr/
|
|||||||
* CzTorrent
|
* CzTorrent
|
||||||
* Deildu
|
* Deildu
|
||||||
* Gay-Torrents.net
|
* Gay-Torrents.net
|
||||||
|
* Gay-Torrents.org
|
||||||
* Kinozal
|
* Kinozal
|
||||||
* LostFilm.tv
|
* LostFilm.tv
|
||||||
* Mega-Bliz
|
* Mega-Bliz
|
||||||
@@ -147,7 +147,6 @@ Developer note: The software implements the [Torznab](https://github.com/Sonarr/
|
|||||||
* Elit Tracker
|
* Elit Tracker
|
||||||
* Elite-Tracker
|
* Elite-Tracker
|
||||||
* Empornium
|
* Empornium
|
||||||
* EoT-Forum
|
|
||||||
* eStone
|
* eStone
|
||||||
* Ethor.net (Thor's Land)
|
* Ethor.net (Thor's Land)
|
||||||
* FANO.IN
|
* FANO.IN
|
||||||
@@ -158,7 +157,7 @@ Developer note: The software implements the [Torznab](https://github.com/Sonarr/
|
|||||||
* FunFile
|
* FunFile
|
||||||
* FunkyTorrents
|
* FunkyTorrents
|
||||||
* Fuzer
|
* Fuzer
|
||||||
* GayTorrent.ru
|
* GAYtorrent.ru
|
||||||
* GazelleGames
|
* GazelleGames
|
||||||
* Gfxnews
|
* Gfxnews
|
||||||
* GFXPeers
|
* GFXPeers
|
||||||
@@ -285,11 +284,12 @@ Developer note: The software implements the [Torznab](https://github.com/Sonarr/
|
|||||||
* Waffles
|
* Waffles
|
||||||
* World-In-HD
|
* World-In-HD
|
||||||
* WorldOfP2P
|
* WorldOfP2P
|
||||||
|
* x-ite.me
|
||||||
* x264
|
* x264
|
||||||
* xBytesV2
|
* xBytesV2
|
||||||
* XSpeeds
|
* XSpeeds
|
||||||
* Xthor
|
* Xthor
|
||||||
* Your Exotic Torrents
|
* ExoticaZ (Your Exotic Torrents)
|
||||||
* Zamunda.net
|
* Zamunda.net
|
||||||
* Zelka.org
|
* Zelka.org
|
||||||
|
|
||||||
@@ -371,6 +371,19 @@ Example config for apache:
|
|||||||
</Location>
|
</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
|
## Troubleshooting
|
||||||
|
|
||||||
* __Command line switches__
|
* __Command line switches__
|
||||||
@@ -410,6 +423,22 @@ All contributions are welcome just send a pull request. Jackett's framework all
|
|||||||
* Select Jackett.Console as startup project
|
* Select Jackett.Console as startup project
|
||||||
* Build/Start the 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
|
### Linux
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
version: 0.9.{build}
|
version: 0.10.{build}
|
||||||
skip_tags: true
|
skip_tags: true
|
||||||
image: Visual Studio 2017
|
image: Visual Studio 2017
|
||||||
configuration: Release
|
configuration: Release
|
||||||
|
72
build.cake
72
build.cake
@@ -45,17 +45,12 @@ Task("Clean")
|
|||||||
Information("Clean completed");
|
Information("Clean completed");
|
||||||
});
|
});
|
||||||
|
|
||||||
Task("Restore-NuGet-Packages")
|
Task("Build-Kestrel-Full-Framework")
|
||||||
.IsDependentOn("Clean")
|
.IsDependentOn("Clean")
|
||||||
.Does(() =>
|
.Does(() =>
|
||||||
{
|
{
|
||||||
NuGetRestore("./src/Jackett.sln");
|
NuGetRestore("./src/Jackett.sln");
|
||||||
});
|
|
||||||
|
|
||||||
Task("Build")
|
|
||||||
.IsDependentOn("Restore-NuGet-Packages")
|
|
||||||
.Does(() =>
|
|
||||||
{
|
|
||||||
var buildSettings = new MSBuildSettings()
|
var buildSettings = new MSBuildSettings()
|
||||||
.SetConfiguration(configuration)
|
.SetConfiguration(configuration)
|
||||||
.UseToolVersion(MSBuildToolVersion.VS2017);
|
.UseToolVersion(MSBuildToolVersion.VS2017);
|
||||||
@@ -64,7 +59,7 @@ Task("Build")
|
|||||||
});
|
});
|
||||||
|
|
||||||
Task("Run-Unit-Tests")
|
Task("Run-Unit-Tests")
|
||||||
.IsDependentOn("Build")
|
.IsDependentOn("Build-Kestrel-Full-Framework")
|
||||||
.Does(() =>
|
.Does(() =>
|
||||||
{
|
{
|
||||||
CreateDirectory("./" + testResultsDirName);
|
CreateDirectory("./" + testResultsDirName);
|
||||||
@@ -81,29 +76,8 @@ Task("Run-Unit-Tests")
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
Task("Copy-Files-Full-Framework")
|
|
||||||
.IsDependentOn("Run-Unit-Tests")
|
|
||||||
.Does(() =>
|
|
||||||
{
|
|
||||||
var windowsOutput = windowsBuildFullFramework + "/Jackett";
|
|
||||||
|
|
||||||
CopyDirectory("./src/Jackett.Console/bin/" + configuration, windowsOutput);
|
|
||||||
CopyFiles("./src/Jackett.Updater/bin/" + configuration + "/net452" + "/JackettUpdater.*", windowsOutput); //builds against multiple frameworks
|
|
||||||
CopyFiles("./Upstart.config", windowsOutput);
|
|
||||||
CopyFiles("./LICENSE", windowsOutput);
|
|
||||||
CopyFiles("./README.md", windowsOutput);
|
|
||||||
|
|
||||||
var monoOutput = monoBuildFullFramework + "/Jackett";
|
|
||||||
|
|
||||||
CopyDirectory(windowsBuildFullFramework, monoBuildFullFramework);
|
|
||||||
DeleteFiles(monoOutput + "/JackettService.*");
|
|
||||||
DeleteFiles(monoOutput + "/JackettTray.*");
|
|
||||||
|
|
||||||
Information("Full framework file copy completed");
|
|
||||||
});
|
|
||||||
|
|
||||||
Task("Check-Packaging-Platform")
|
Task("Check-Packaging-Platform")
|
||||||
.IsDependentOn("Copy-Files-Full-Framework")
|
.IsDependentOn("Run-Unit-Tests")
|
||||||
.Does(() =>
|
.Does(() =>
|
||||||
{
|
{
|
||||||
if (IsRunningOnWindows())
|
if (IsRunningOnWindows())
|
||||||
@@ -117,39 +91,8 @@ Task("Check-Packaging-Platform")
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
Task("Package-Files-Full-Framework-Mono")
|
|
||||||
.IsDependentOn("Check-Packaging-Platform")
|
|
||||||
.Does(() =>
|
|
||||||
{
|
|
||||||
Gzip(monoBuildFullFramework, $"./{artifactsDirName}", "Jackett", "Jackett.Binaries.Mono.tar.gz");
|
|
||||||
Information(@"Full Framework Mono Binaries Gzip Completed");
|
|
||||||
});
|
|
||||||
|
|
||||||
Task("Package-Full-Framework")
|
|
||||||
.IsDependentOn("Package-Files-Full-Framework-Mono")
|
|
||||||
.Does(() =>
|
|
||||||
{
|
|
||||||
Information("Full Framework Packaging Completed");
|
|
||||||
});
|
|
||||||
|
|
||||||
Task("Kestrel-Full-Framework")
|
|
||||||
.IsDependentOn("Package-Full-Framework")
|
|
||||||
.Does(() =>
|
|
||||||
{
|
|
||||||
CleanDirectories("./src/**/obj");
|
|
||||||
CleanDirectories("./src/**/bin");
|
|
||||||
|
|
||||||
NuGetRestore("./src/Jackett.sln");
|
|
||||||
|
|
||||||
var buildSettings = new MSBuildSettings()
|
|
||||||
.SetConfiguration(configuration)
|
|
||||||
.UseToolVersion(MSBuildToolVersion.VS2017);
|
|
||||||
|
|
||||||
MSBuild("./src/Jackett.sln", buildSettings);
|
|
||||||
});
|
|
||||||
|
|
||||||
Task("Experimental-Kestrel-Windows-Full-Framework")
|
Task("Experimental-Kestrel-Windows-Full-Framework")
|
||||||
.IsDependentOn("Kestrel-Full-Framework")
|
.IsDependentOn("Check-Packaging-Platform")
|
||||||
.Does(() =>
|
.Does(() =>
|
||||||
{
|
{
|
||||||
string serverProjectPath = "./src/Jackett.Server/Jackett.Server.csproj";
|
string serverProjectPath = "./src/Jackett.Server/Jackett.Server.csproj";
|
||||||
@@ -179,7 +122,7 @@ Task("Experimental-Kestrel-Windows-Full-Framework")
|
|||||||
});
|
});
|
||||||
|
|
||||||
Task("Experimental-Kestrel-Mono-Full-Framework")
|
Task("Experimental-Kestrel-Mono-Full-Framework")
|
||||||
.IsDependentOn("Kestrel-Full-Framework")
|
.IsDependentOn("Check-Packaging-Platform")
|
||||||
.Does(() =>
|
.Does(() =>
|
||||||
{
|
{
|
||||||
string serverProjectPath = "./src/Jackett.Server/Jackett.Server.csproj";
|
string serverProjectPath = "./src/Jackett.Server/Jackett.Server.csproj";
|
||||||
@@ -199,11 +142,11 @@ Task("Experimental-Kestrel-Mono-Full-Framework")
|
|||||||
var configFile = File(buildOutputPath + "/JackettConsole.exe.config");
|
var configFile = File(buildOutputPath + "/JackettConsole.exe.config");
|
||||||
XmlPoke(configFile, "configuration/runtime/*[name()='assemblyBinding']/*[name()='dependentAssembly']/*[name()='assemblyIdentity'][@name='System.Net.Http']/../*[name()='bindingRedirect']/@newVersion", "4.0.0.0");
|
XmlPoke(configFile, "configuration/runtime/*[name()='assemblyBinding']/*[name()='dependentAssembly']/*[name()='assemblyIdentity'][@name='System.Net.Http']/../*[name()='bindingRedirect']/@newVersion", "4.0.0.0");
|
||||||
|
|
||||||
Gzip("./BuildOutput/Experimental/net461/linux-x64", $"./{artifactsDirName}", "Jackett", "Experimental.Jackett.Binaries.Mono.tar.gz");
|
Gzip("./BuildOutput/Experimental/net461/linux-x64", $"./{artifactsDirName}", "Jackett", "Jackett.Binaries.Mono.tar.gz");
|
||||||
});
|
});
|
||||||
|
|
||||||
Task("Experimental-DotNetCore")
|
Task("Experimental-DotNetCore")
|
||||||
.IsDependentOn("Kestrel-Full-Framework")
|
.IsDependentOn("Check-Packaging-Platform")
|
||||||
.Does(() =>
|
.Does(() =>
|
||||||
{
|
{
|
||||||
string serverProjectPath = "./src/Jackett.Server/Jackett.Server.csproj";
|
string serverProjectPath = "./src/Jackett.Server/Jackett.Server.csproj";
|
||||||
@@ -227,7 +170,6 @@ Task("Experimental")
|
|||||||
});
|
});
|
||||||
|
|
||||||
Task("Appveyor-Push-Artifacts")
|
Task("Appveyor-Push-Artifacts")
|
||||||
.IsDependentOn("Package-Full-Framework")
|
|
||||||
.IsDependentOn("Experimental")
|
.IsDependentOn("Experimental")
|
||||||
.Does(() =>
|
.Does(() =>
|
||||||
{
|
{
|
||||||
|
@@ -738,9 +738,9 @@ function updateReleasesRow(row)
|
|||||||
if (DownloadVolumeFactor == 0) {
|
if (DownloadVolumeFactor == 0) {
|
||||||
labels.append('\n<span class="label label-success">FREELEECH</span>');
|
labels.append('\n<span class="label label-success">FREELEECH</span>');
|
||||||
} else if (DownloadVolumeFactor < 1) {
|
} 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) {
|
} 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) {
|
if (UploadVolumeFactor == 0) {
|
||||||
labels.append('\n<span class="label label-warning">NO UPLOAD</span>');
|
labels.append('\n<span class="label label-warning">NO UPLOAD</span>');
|
||||||
} else if (UploadVolumeFactor != 1) {
|
} 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>');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -152,7 +152,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="input-area">
|
<div class="input-area">
|
||||||
<span class="input-header">Proxy password: </span>
|
<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>
|
||||||
|
|
||||||
<div class="input-area">
|
<div class="input-area">
|
||||||
@@ -663,6 +663,6 @@
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<script type="text/javascript" src="../libs/api.js?changed=2017083001"></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>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
@@ -56,6 +56,9 @@
|
|||||||
args: id
|
args: id
|
||||||
title:
|
title:
|
||||||
selector: td:nth-child(3) > a.torrent > span.span-1440
|
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:
|
details:
|
||||||
selector: td:nth-child(3) > a.torrent
|
selector: td:nth-child(3) > a.torrent
|
||||||
attribute: href
|
attribute: href
|
||||||
|
@@ -92,7 +92,7 @@
|
|||||||
selector: a[href^="details.php"]
|
selector: a[href^="details.php"]
|
||||||
attribute: href
|
attribute: href
|
||||||
download:
|
download:
|
||||||
selector: a[href^=" /gettorrent/ssl/"]
|
selector: a[href^=" /gettorrent/"]
|
||||||
attribute: href
|
attribute: href
|
||||||
files:
|
files:
|
||||||
selector: td:nth-child(2) > table > tbody > tr:nth-child(2) > td:nth-child(1) > b:nth-child(2), a[href*="&filelist=1"]
|
selector: td:nth-child(2) > table > tbody > tr:nth-child(2) > td:nth-child(1) > b:nth-child(2), a[href*="&filelist=1"]
|
||||||
|
@@ -1,7 +1,7 @@
|
|||||||
---
|
---
|
||||||
site: btxpress
|
site: btxpress
|
||||||
name: BTXpress
|
name: BTXpress
|
||||||
description: "HD Tracker Movies/TV/Music"
|
description: "HD Tracker Movies/TV"
|
||||||
language: en-us
|
language: en-us
|
||||||
type: private
|
type: private
|
||||||
encoding: UTF-8
|
encoding: UTF-8
|
||||||
@@ -12,7 +12,6 @@
|
|||||||
categorymappings:
|
categorymappings:
|
||||||
- {id: 1, cat: Movies, desc: "Movies"}
|
- {id: 1, cat: Movies, desc: "Movies"}
|
||||||
- {id: 2, cat: TV, desc: "TV"}
|
- {id: 2, cat: TV, desc: "TV"}
|
||||||
- {id: 3, cat: Audio, desc: "Music"}
|
|
||||||
|
|
||||||
modes:
|
modes:
|
||||||
search: [q]
|
search: [q]
|
||||||
@@ -36,7 +35,6 @@
|
|||||||
inputs:
|
inputs:
|
||||||
$raw: "{{range .Categories}}categories[]={{.}}&{{end}}"
|
$raw: "{{range .Categories}}categories[]={{.}}&{{end}}"
|
||||||
search: "{{if .Query.IMDBID}}{{else}}{{ .Keywords }}{{end}}"
|
search: "{{if .Query.IMDBID}}{{else}}{{ .Keywords }}{{end}}"
|
||||||
description: ""
|
|
||||||
uploader: ""
|
uploader: ""
|
||||||
imdb: "{{ .Query.IMDBIDShort }}"
|
imdb: "{{ .Query.IMDBIDShort }}"
|
||||||
tvdb: ""
|
tvdb: ""
|
||||||
@@ -45,15 +43,8 @@
|
|||||||
sorting: created_at
|
sorting: created_at
|
||||||
direction: desc
|
direction: desc
|
||||||
qty: 100
|
qty: 100
|
||||||
preprocessingfilters:
|
|
||||||
- name: jsonjoinarray
|
|
||||||
args: ["$.result", ""]
|
|
||||||
- name: prepend
|
|
||||||
args: "<table>"
|
|
||||||
- name: append
|
|
||||||
args: "</table>"
|
|
||||||
rows:
|
rows:
|
||||||
selector: tr
|
selector: table > tbody > tr
|
||||||
fields:
|
fields:
|
||||||
category:
|
category:
|
||||||
selector: a[href*="/categories/"]
|
selector: a[href*="/categories/"]
|
||||||
@@ -64,33 +55,24 @@
|
|||||||
title:
|
title:
|
||||||
selector: a.view-torrent
|
selector: a.view-torrent
|
||||||
download:
|
download:
|
||||||
selector: a[href*="/download_check/"]
|
selector: a[href*="/download/"]
|
||||||
attribute: href
|
attribute: href
|
||||||
filters:
|
|
||||||
- name: replace
|
|
||||||
args: ["/download_check/", "/download/"]
|
|
||||||
details:
|
details:
|
||||||
selector: a.view-torrent
|
selector: a.view-torrent
|
||||||
attribute: href
|
attribute: href
|
||||||
size:
|
size:
|
||||||
selector: td:nth-child(5)
|
selector: td:nth-child(4)
|
||||||
seeders:
|
seeders:
|
||||||
selector: td:nth-child(7)
|
|
||||||
leechers:
|
|
||||||
selector: td:nth-child(8)
|
|
||||||
grabs:
|
|
||||||
selector: td:nth-child(6)
|
selector: td:nth-child(6)
|
||||||
|
leechers:
|
||||||
|
selector: td:nth-child(7)
|
||||||
|
grabs:
|
||||||
|
selector: td:nth-child(5)
|
||||||
filters:
|
filters:
|
||||||
- name: regexp
|
- name: regexp
|
||||||
args: ([\d\.]+)
|
args: ([\d\.]+)
|
||||||
date:
|
date:
|
||||||
selector: time
|
selector: time
|
||||||
attribute: datetime
|
|
||||||
filters:
|
|
||||||
- name: append
|
|
||||||
args: " +00:00"
|
|
||||||
- name: dateparse
|
|
||||||
args: "2006-01-02 15:04:05 -07:00"
|
|
||||||
downloadvolumefactor:
|
downloadvolumefactor:
|
||||||
case:
|
case:
|
||||||
"i[data-original-title=\"100% Free\"]": "0"
|
"i[data-original-title=\"100% Free\"]": "0"
|
||||||
|
@@ -1,13 +1,39 @@
|
|||||||
---
|
---
|
||||||
|
# Update by LA5T based on the orignial 'cinematik.yml'
|
||||||
|
# 29.07.2018 22:53 UTC+2
|
||||||
|
#
|
||||||
site: cinematik
|
site: cinematik
|
||||||
name: Cinematik
|
name: Cinematik
|
||||||
description: "Non-Hollywood movie tracker"
|
description: "Tracker for non-hollywood movies."
|
||||||
language: en-us
|
language: en-us
|
||||||
type: private
|
type: private
|
||||||
encoding: UTF-8
|
encoding: UTF-8
|
||||||
links:
|
links:
|
||||||
- https://www.cinematik.net
|
- 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:
|
caps:
|
||||||
categorymappings:
|
categorymappings:
|
||||||
- {id: 1, cat: Movies, desc: "Comedy"}
|
- {id: 1, cat: Movies, desc: "Comedy"}
|
||||||
@@ -47,8 +73,10 @@
|
|||||||
paths:
|
paths:
|
||||||
- path: browse.php
|
- path: browse.php
|
||||||
inputs:
|
inputs:
|
||||||
$raw: "{{range .Categories}}filter_cat[{{.}}]=1&{{end}}"
|
$raw: "{{range .Categories}}c{{.}}=1&{{end}}"
|
||||||
search: "{{ .Query.Keywords }}"
|
search: "{{ .Query.Keywords }}"
|
||||||
|
incldead: "{{ .Config.incldead }}"
|
||||||
|
srchdtls: "{{ if .Config.srchdtls }}1{{ else }}0{{ end }}"
|
||||||
rows:
|
rows:
|
||||||
selector: table[border="1"] tr:not(:first-child)
|
selector: table[border="1"] tr:not(:first-child)
|
||||||
fields:
|
fields:
|
||||||
@@ -82,11 +110,11 @@
|
|||||||
selector: td:nth-child(11) div.addedtor
|
selector: td:nth-child(11) div.addedtor
|
||||||
downloadvolumefactor:
|
downloadvolumefactor:
|
||||||
case:
|
case:
|
||||||
"img[title=\"Golden Torrent: No Download Stats are Recorded\"]": "0"
|
"img[title=\"Golden Torrent: No Download Stats are Recorded\"]": 0
|
||||||
"img[title=\"Silver Torrent: Download Stats are 25% Recorded\"]": "0.25"
|
"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"
|
"img[title=\"Platinum Torrent: No Download Stats are Recorded, Upload Stats are Doubled!\"]": 0
|
||||||
"*": "1"
|
"*": 1
|
||||||
uploadvolumefactor:
|
uploadvolumefactor:
|
||||||
case:
|
case:
|
||||||
"img[title=\"Platinum Torrent: No Download Stats are Recorded, Upload Stats are Doubled!\"]": "2"
|
"img[title=\"Platinum Torrent: No Download Stats are Recorded, Upload Stats are Doubled!\"]": 2
|
||||||
"*": "1"
|
"*": 1
|
@@ -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"
|
|
@@ -49,7 +49,13 @@
|
|||||||
- path: "{{ if .Keywords }}buscar/descargas/{{ .Config.category }}/{{ .Keywords }}?search=Buscar&page=2{{else}}descargas{{end}}"
|
- path: "{{ if .Keywords }}buscar/descargas/{{ .Config.category }}/{{ .Keywords }}?search=Buscar&page=2{{else}}descargas{{end}}"
|
||||||
keywordsfilters:
|
keywordsfilters:
|
||||||
- name: re_replace #remove S/EXX from search string
|
- 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:
|
rows:
|
||||||
selector: table#descargas > tbody > tr:has(td:has(a[href^="magnet:?"]))
|
selector: table#descargas > tbody > tr:has(td:has(a[href^="magnet:?"]))
|
||||||
fields:
|
fields:
|
||||||
@@ -63,17 +69,19 @@
|
|||||||
- name: re_replace
|
- name: re_replace
|
||||||
args: ["\\)", ""]
|
args: ["\\)", ""]
|
||||||
- name: re_replace
|
- name: re_replace
|
||||||
args: ["([A-z]*) temporada", "S$1"]
|
args: ["([A-z]*) temporada", ""]
|
||||||
- name: re_replace
|
- name: re_replace
|
||||||
args: ["S[pP]rimera", "S1"]
|
args: ["S[pP]rimera", ""]
|
||||||
- name: re_replace
|
- name: re_replace
|
||||||
args: ["S[sS]egunda", "S2"]
|
args: ["S[sS]egunda", ""]
|
||||||
- name: re_replace
|
- name: re_replace
|
||||||
args: ["S[tT]ercera", "S3"]
|
args: ["S[tT]ercera", ""]
|
||||||
- name: re_replace
|
- name: re_replace
|
||||||
args: ["S([0-9]+) - Episodio ([0-9]+)", "S$1E$2"]
|
args: ["S([0-9]+) - Episodio ([0-9]+)", "$2"]
|
||||||
- name: re_replace
|
- name: re_replace
|
||||||
args: ["- Episodio ([0-9]*)", "E$1"]
|
args: ["- Episodio ([0-9]*)", "$1"]
|
||||||
|
- name: append
|
||||||
|
args: " [spanish]"
|
||||||
details:
|
details:
|
||||||
selector: td.tit a
|
selector: td.tit a
|
||||||
attribute: href
|
attribute: href
|
||||||
|
151
src/Jackett.Common/Definitions/gay-torrentsorg.yml
Normal file
151
src/Jackett.Common/Definitions/gay-torrentsorg.yml
Normal 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
|
@@ -1,52 +1,80 @@
|
|||||||
|
---
|
||||||
|
# Update by LA5T based on the orignial 'gaytorrentru.yml'
|
||||||
|
# 29.07.2018 23:02 UTC+2
|
||||||
|
#
|
||||||
site: gaytorrentru
|
site: gaytorrentru
|
||||||
name: GayTorrent.ru
|
name: GAYtorrent.ru
|
||||||
description: "World largest gay porn library for free with a stunning forum and 24/7 Chat"
|
description: "World largest gay porn library for free with a stunning forum and 24/7 chat."
|
||||||
language: en-us
|
language: en-us
|
||||||
type: private
|
type: private
|
||||||
encoding: UTF-8
|
encoding: UTF-8
|
||||||
links:
|
links:
|
||||||
- https://www.gaytorrent.ru/
|
- 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:
|
caps:
|
||||||
categorymappings:
|
categorymappings:
|
||||||
- {id: 62 , cat: XXX , desc: "Amateur"}
|
- {id: 62, cat: XXX, desc: "Amateur"}
|
||||||
- {id: 29 , cat: XXX , desc: "Anal"}
|
- {id: 29, cat: XXX, desc: "Anal"}
|
||||||
- {id: 46 , cat: XXX , desc: "Anime Games"}
|
- {id: 46, cat: XXX, desc: "Anime Games"}
|
||||||
- {id: 30 , cat: XXX , desc: "Asian"}
|
- {id: 30, cat: XXX, desc: "Asian"}
|
||||||
- {id: 43 , cat: XXX , desc: "Bareback"}
|
- {id: 43, cat: XXX, desc: "Bareback"}
|
||||||
- {id: 19 , cat: XXX , desc: "BDSM"}
|
- {id: 19, cat: XXX, desc: "BDSM"}
|
||||||
- {id: 17 , cat: XXX , desc: "Bears"}
|
- {id: 17, cat: XXX, desc: "Bears"}
|
||||||
- {id: 44 , cat: XXX , desc: "Black"}
|
- {id: 44, cat: XXX, desc: "Black"}
|
||||||
- {id: 50 , cat: Books , desc: "Books & Magazines"}
|
- {id: 50, cat: Books, desc: "Books & Magazines"}
|
||||||
- {id: 9 , cat: XXX , desc: "Chubbies"}
|
- {id: 9, cat: XXX, desc: "Chubbies"}
|
||||||
- {id: 7 , cat: XXX , desc: "Clips"}
|
- {id: 7, cat: XXX, desc: "Clips"}
|
||||||
- {id: 48 , cat: Books/Comics , desc: "Comic & Yaoi"}
|
- {id: 48, cat: Books/Comics, desc: "Comic & Yaoi"}
|
||||||
- {id: 5 , cat: XXX , desc: "Daddies / Sons"}
|
- {id: 5, cat: XXX, desc: "Daddies / Sons"}
|
||||||
- {id: 34 , cat: XXX , desc: "Fetish"}
|
- {id: 34, cat: XXX, desc: "Fetish"}
|
||||||
- {id: 27 , cat: XXX , desc: "Grey / Older"}
|
- {id: 27, cat: XXX, desc: "Grey / Older"}
|
||||||
- {id: 32 , cat: XXX , desc: "Group-Sex"}
|
- {id: 32, cat: XXX, desc: "Group-Sex"}
|
||||||
- {id: 63 , cat: XXX , desc: "Homemade"}
|
- {id: 63, cat: XXX, desc: "Homemade"}
|
||||||
- {id: 12 , cat: XXX , desc: "Hunks"}
|
- {id: 12, cat: XXX, desc: "Hunks"}
|
||||||
- {id: 33 , cat: XXX , desc: "Images"}
|
- {id: 33, cat: XXX/Imageset, desc: "Images"}
|
||||||
- {id: 53 , cat: XXX , desc: "Interracial"}
|
- {id: 53, cat: XXX, desc: "Interracial"}
|
||||||
- {id: 57 , cat: XXX , desc: "Jocks"}
|
- {id: 57, cat: XXX, desc: "Jocks"}
|
||||||
- {id: 35 , cat: XXX , desc: "Latino"}
|
- {id: 35, cat: XXX, desc: "Latino"}
|
||||||
- {id: 36 , cat: XXX , desc: "Mature"}
|
- {id: 36, cat: XXX, desc: "Mature"}
|
||||||
- {id: 58 , cat: PC , desc: "Media Programs"}
|
- {id: 58, cat: PC, desc: "Media Programs"}
|
||||||
- {id: 37 , cat: XXX , desc: "Member"}
|
- {id: 37, cat: XXX, desc: "Member"}
|
||||||
- {id: 54 , cat: XXX , desc: "Middle Eastern"}
|
- {id: 54, cat: XXX, desc: "Middle Eastern"}
|
||||||
- {id: 38 , cat: XXX , desc: "Military"}
|
- {id: 38, cat: XXX, desc: "Military"}
|
||||||
- {id: 39 , cat: XXX , desc: "Oral-Sex"}
|
- {id: 39, cat: XXX, desc: "Oral-Sex"}
|
||||||
- {id: 47 , cat: XXX , desc: "Shemale"}
|
- {id: 47, cat: XXX, desc: "Shemale"}
|
||||||
- {id: 56 , cat: XXX , desc: "Softcore"}
|
- {id: 56, cat: XXX, desc: "Softcore"}
|
||||||
- {id: 40 , cat: XXX , desc: "Solo"}
|
- {id: 40, cat: XXX, desc: "Solo"}
|
||||||
- {id: 45 , cat: Movies , desc: "Themed Movie"}
|
- {id: 45, cat: Movies, desc: "Themed Movie"}
|
||||||
- {id: 1 , cat: TV , desc: "TV / Episodes"}
|
- {id: 1, cat: TV, desc: "TV / Episodes"}
|
||||||
- {id: 41 , cat: XXX , desc: "Twinks"}
|
- {id: 41, cat: XXX, desc: "Twinks"}
|
||||||
- {id: 42 , cat: XXX , desc: "Vintage"}
|
- {id: 42, cat: XXX, desc: "Vintage"}
|
||||||
- {id: 51 , cat: XXX , desc: "Voyeur"}
|
- {id: 51, cat: XXX, desc: "Voyeur"}
|
||||||
- {id: 65 , cat: XXX , desc: "Wrestling and Sports"}
|
- {id: 65, cat: XXX, desc: "Wrestling and Sports"}
|
||||||
- {id: 28 , cat: XXX , desc: "Youngblood"}
|
- {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:
|
modes:
|
||||||
search: [q]
|
search: [q]
|
||||||
|
|
||||||
@@ -65,7 +93,7 @@
|
|||||||
inputs:
|
inputs:
|
||||||
$raw: "{{range .Categories}}c{{.}}=1&{{end}}"
|
$raw: "{{range .Categories}}c{{.}}=1&{{end}}"
|
||||||
search: "{{ .Query.Keywords }}"
|
search: "{{ .Query.Keywords }}"
|
||||||
incldead: "0" # Searches only for alive torrents
|
incldead: "{{ .Config.incldead }}"
|
||||||
rows:
|
rows:
|
||||||
selector: table.browse_result > tbody > tr:has(a[href^="details.php?id="])
|
selector: table.browse_result > tbody > tr:has(a[href^="details.php?id="])
|
||||||
fields:
|
fields:
|
||||||
@@ -89,12 +117,12 @@
|
|||||||
selector: .tfiles
|
selector: .tfiles
|
||||||
filters:
|
filters:
|
||||||
- name: regexp
|
- name: regexp
|
||||||
args: ([\d]+)
|
args: ([\d,]+)
|
||||||
size:
|
size:
|
||||||
selector: .tsize
|
selector: .tsize
|
||||||
seeders:
|
seeders:
|
||||||
optional: true
|
optional: true
|
||||||
selector: a[href$="&toseeders=1"]
|
selector: a[href$="&toseeders=1"], span.red
|
||||||
leechers:
|
leechers:
|
||||||
optional: true
|
optional: true
|
||||||
selector: a[href$="&todlers=1"]
|
selector: a[href$="&todlers=1"]
|
||||||
@@ -102,13 +130,13 @@
|
|||||||
selector: .tadded
|
selector: .tadded
|
||||||
filters:
|
filters:
|
||||||
- name: re_replace
|
- 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
|
- name: dateparse
|
||||||
args: "2006-01-02 15:04:05"
|
args: "2006-01-02 15:04:05"
|
||||||
downloadvolumefactor:
|
downloadvolumefactor:
|
||||||
case:
|
case:
|
||||||
"td:nth-child(3) > div > nobr > font[color=\"yellow\"]": "0"
|
"td:nth-child(3) > div > nobr > font[color=\"yellow\"]": 0
|
||||||
"*": "1"
|
"*": 1
|
||||||
uploadvolumefactor:
|
uploadvolumefactor:
|
||||||
case:
|
case:
|
||||||
"*": "1"
|
"*": 1
|
@@ -6,10 +6,12 @@
|
|||||||
type: public
|
type: public
|
||||||
encoding: UTF-8
|
encoding: UTF-8
|
||||||
links:
|
links:
|
||||||
- https://www.ilcorsaroblu.info/
|
- https://www.ilcorsaroblu.org/
|
||||||
legacylinks:
|
legacylinks:
|
||||||
- http://ilcorsaroblu.org/
|
- http://ilcorsaroblu.org/
|
||||||
- https://www.ilcorsaroblu.org/
|
- https://www.ilcorsaroblu.info/
|
||||||
|
certificates:
|
||||||
|
- e6dd93ef71f96d04559e2bee8cc8e6fd74957730 # incomplete CA chain
|
||||||
|
|
||||||
caps:
|
caps:
|
||||||
categorymappings:
|
categorymappings:
|
||||||
@@ -143,18 +145,18 @@
|
|||||||
- name: regexp
|
- name: regexp
|
||||||
args: "src=(.+?) "
|
args: "src=(.+?) "
|
||||||
size:
|
size:
|
||||||
selector: td:nth-child(9)
|
selector: td:nth-child(10)
|
||||||
date:
|
date:
|
||||||
selector: td:nth-child(5)
|
selector: td:nth-child(6)
|
||||||
filters:
|
filters:
|
||||||
- name: dateparse
|
- name: dateparse
|
||||||
args: "02/01/2006"
|
args: "02/01/2006"
|
||||||
grabs:
|
grabs:
|
||||||
selector: td:nth-child(8)
|
selector: td:nth-child(9)
|
||||||
filters:
|
filters:
|
||||||
- name: replace
|
- name: replace
|
||||||
args: ["---", "0"]
|
args: ["---", "0"]
|
||||||
seeders:
|
seeders:
|
||||||
selector: td:nth-child(6)
|
|
||||||
leechers:
|
|
||||||
selector: td:nth-child(7)
|
selector: td:nth-child(7)
|
||||||
|
leechers:
|
||||||
|
selector: td:nth-child(8)
|
||||||
|
@@ -84,11 +84,12 @@
|
|||||||
selector: table#torrents_table_classic > tbody > tr:not(:first-child), div#content > div.torrent-box[id^="torrent_"]
|
selector: table#torrents_table_classic > tbody > tr:not(:first-child), div#content > div.torrent-box[id^="torrent_"]
|
||||||
filters:
|
filters:
|
||||||
- name: andmatch
|
- name: andmatch
|
||||||
|
# the tracker has two different styles (modern/classic) it should work with both
|
||||||
fields:
|
fields:
|
||||||
title:
|
title:
|
||||||
selector: a[href*="?p=torrents&pid=10&action=details"]
|
selector: a[href*="?p=torrents&pid=10&action=details"]
|
||||||
category:
|
category:
|
||||||
selector: div.category_image > a
|
selector: div.category_image > a, div.categoryImage > a
|
||||||
attribute: href
|
attribute: href
|
||||||
filters:
|
filters:
|
||||||
- name: querystring
|
- name: querystring
|
||||||
@@ -117,6 +118,9 @@
|
|||||||
downloadvolumefactor:
|
downloadvolumefactor:
|
||||||
case:
|
case:
|
||||||
"img[title=\"ΧΡΥΣΟ!\"]": "0"
|
"img[title=\"ΧΡΥΣΟ!\"]": "0"
|
||||||
|
"img[title=\"100% FREE!\"]": "0"
|
||||||
|
"img[title=\"Πολλαπλασιαστής Κατεβάσματος: 0.5\"]": "0.5"
|
||||||
|
|
||||||
"*": "1"
|
"*": "1"
|
||||||
uploadvolumefactor:
|
uploadvolumefactor:
|
||||||
case:
|
case:
|
||||||
|
@@ -1,7 +1,10 @@
|
|||||||
---
|
---
|
||||||
|
# Update by LA5T based on the orignial 'karagarga.yml'
|
||||||
|
# 29.07.2018 23:15 UTC+2
|
||||||
|
#
|
||||||
site: karagarga
|
site: karagarga
|
||||||
name: Karagarga
|
name: Karagarga
|
||||||
description: "Rare and obscure movie tracker"
|
description: "Tracker for non-hollywood, rare and obscure movies, music and literature."
|
||||||
language: en-us
|
language: en-us
|
||||||
type: private
|
type: private
|
||||||
encoding: UTF-8
|
encoding: UTF-8
|
||||||
@@ -11,6 +14,66 @@
|
|||||||
caps:
|
caps:
|
||||||
categorymappings:
|
categorymappings:
|
||||||
- {id: 1, cat: Movies, desc: "Movies"}
|
- {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:
|
modes:
|
||||||
search: [q]
|
search: [q]
|
||||||
@@ -33,15 +96,22 @@
|
|||||||
search:
|
search:
|
||||||
paths:
|
paths:
|
||||||
- path: browse.php
|
- path: browse.php
|
||||||
|
keywordsfilters:
|
||||||
|
- name: re_replace
|
||||||
|
args: ["(?<=^| )(?!-|\\+)[^ ]+(?= |$)", "+$&"]
|
||||||
inputs:
|
inputs:
|
||||||
$raw: "{{range .Categories}}filter_cat[{{.}}]=1&{{end}}"
|
$raw: "{{range .Categories}}genre={{.}}&{{end}}"
|
||||||
search: "\"{{ .Query.Keywords }}\""
|
search: "{{ .Keywords }}"
|
||||||
search_type: "title"
|
search_type: title
|
||||||
rows:
|
rows:
|
||||||
selector: table#browse > tbody > tr:has(a[href^="browse.php?genre="])
|
selector: table#browse > tbody > tr:has(a[href^="browse.php?genre="])
|
||||||
fields:
|
fields:
|
||||||
category:
|
category:
|
||||||
text: 1
|
selector: a[href^="browse.php?genre="]
|
||||||
|
attribute: href
|
||||||
|
filters:
|
||||||
|
- name: querystring
|
||||||
|
args: genre
|
||||||
title:
|
title:
|
||||||
selector: td:nth-child(2) span
|
selector: td:nth-child(2) span
|
||||||
download:
|
download:
|
||||||
@@ -69,15 +139,16 @@
|
|||||||
date:
|
date:
|
||||||
selector: td:nth-child(9)
|
selector: td:nth-child(9)
|
||||||
filters:
|
filters:
|
||||||
- name: replace
|
|
||||||
args: ["'", ""]
|
|
||||||
- name: re_replace
|
- name: re_replace
|
||||||
args: ["[^a-zA-Z0-9]+", " "]
|
args: ["([a-zA-Z]+)\\s+(\\d{1,2})\\s+'(\\d{2})", "$2 $1 $3"]
|
||||||
- name: dateparse
|
- name: dateparse
|
||||||
args: "Jan 02 06"
|
args: "02 Jan 06"
|
||||||
downloadvolumefactor:
|
downloadvolumefactor:
|
||||||
case:
|
case:
|
||||||
"*": "1"
|
"*": 1
|
||||||
uploadvolumefactor:
|
uploadvolumefactor:
|
||||||
case:
|
case:
|
||||||
"*": "1"
|
":has(img[title^=HD]):has(img[title^=CURRENT])": 1.8
|
||||||
|
"img[title^=CURRENT]": 1.6
|
||||||
|
"img[title^=HD]": 1.3
|
||||||
|
"*": 1.1
|
@@ -6,6 +6,8 @@
|
|||||||
type: public
|
type: public
|
||||||
encoding: UTF-8
|
encoding: UTF-8
|
||||||
links:
|
links:
|
||||||
|
- https://www.limetorrents.io/
|
||||||
|
legacylinks:
|
||||||
- https://www.limetorrents.cc/
|
- https://www.limetorrents.cc/
|
||||||
|
|
||||||
caps:
|
caps:
|
||||||
|
@@ -1,90 +0,0 @@
|
|||||||
---
|
|
||||||
site: nexttorrent
|
|
||||||
name: NextTorrent
|
|
||||||
description: "NextTorrent is a FRENCH Public site for TV / MOVIES / GENERAL"
|
|
||||||
language: fr-fr
|
|
||||||
type: public
|
|
||||||
encoding: UTF-8
|
|
||||||
links:
|
|
||||||
- http://www.nextorrent.tv/
|
|
||||||
legacylinks:
|
|
||||||
- https://www.nextorrent.site/
|
|
||||||
- http://www.nextorrent.site/
|
|
||||||
- http://www.nextorrent.bz/
|
|
||||||
- http://www.nextorrent.pro/
|
|
||||||
- https://www.nextorrent.cc/
|
|
||||||
- https://www.nextorrent.org/
|
|
||||||
- https://www.nextorrent.tv/
|
|
||||||
|
|
||||||
caps:
|
|
||||||
categorymappings:
|
|
||||||
- {id: Films, cat: Movies, desc: "Movies"}
|
|
||||||
- {id: Séries, cat: TV, desc: "TV"}
|
|
||||||
- {id: Jeux-PC, cat: PC/Games, desc: "Games PC"}
|
|
||||||
- {id: Jeux-Consoles, cat: Console, desc: "Games Console"}
|
|
||||||
- {id: Musique, cat: Audio, desc: "Music"}
|
|
||||||
- {id: Ebook, cat: Books, desc: "EBooks"}
|
|
||||||
- {id: Logiciels, cat: PC, desc: "Software"}
|
|
||||||
|
|
||||||
modes:
|
|
||||||
search: [q]
|
|
||||||
tv-search: [q, season, ep]
|
|
||||||
movie-search: [q]
|
|
||||||
|
|
||||||
settings: []
|
|
||||||
|
|
||||||
download:
|
|
||||||
selector: a[href^="/get_torrent/"]
|
|
||||||
|
|
||||||
search:
|
|
||||||
paths:
|
|
||||||
- path: "recherche/{{ .Query.Keywords }}"
|
|
||||||
rows:
|
|
||||||
selector: div.listing-torrent > table tbody tr:has(a)
|
|
||||||
fields:
|
|
||||||
site_date:
|
|
||||||
selector: td:nth-child(1) a
|
|
||||||
filters:
|
|
||||||
# date is at the end of the title, so we get it and name it site_date
|
|
||||||
- name: regexp
|
|
||||||
args: "(\\w+)$"
|
|
||||||
title:
|
|
||||||
selector: td:nth-child(1) a
|
|
||||||
filters:
|
|
||||||
# now we put the date at the right place according scene naming rules using .Result.site_date
|
|
||||||
- name: replace
|
|
||||||
args: ["FRENCH", "{{ .Result.site_date }} FRENCH"]
|
|
||||||
- name: replace
|
|
||||||
args: ["TRUEFRENCH", "{{ .Result.site_date }} TRUEFRENCH"]
|
|
||||||
- name: replace
|
|
||||||
args: ["VOSTFR", "{{ .Result.site_date }} VOSTFR"]
|
|
||||||
# and we delete it at the end
|
|
||||||
- name: re_replace
|
|
||||||
args: ["(\\w+)$", ""]
|
|
||||||
details:
|
|
||||||
selector: td:nth-child(1) a
|
|
||||||
attribute: href
|
|
||||||
download:
|
|
||||||
selector: td:nth-child(1) a
|
|
||||||
attribute: href
|
|
||||||
category:
|
|
||||||
selector: td:nth-child(1) i
|
|
||||||
attribute: class
|
|
||||||
size:
|
|
||||||
selector: td:nth-child(2)
|
|
||||||
date:
|
|
||||||
text: now
|
|
||||||
seeders:
|
|
||||||
text: 0
|
|
||||||
seeders:
|
|
||||||
optional: true
|
|
||||||
selector: td:nth-child(3)
|
|
||||||
leechers:
|
|
||||||
text: 0
|
|
||||||
leechers:
|
|
||||||
optional: true
|
|
||||||
selector: td:nth-child(4)
|
|
||||||
downloadvolumefactor:
|
|
||||||
text: "0"
|
|
||||||
uploadvolumefactor:
|
|
||||||
text: "1"
|
|
@@ -6,6 +6,8 @@
|
|||||||
type: private
|
type: private
|
||||||
encoding: UTF-8
|
encoding: UTF-8
|
||||||
links:
|
links:
|
||||||
|
- https://v2.rgut.uk/
|
||||||
|
legacylinks:
|
||||||
- https://rgu.rgt.life/
|
- https://rgu.rgt.life/
|
||||||
|
|
||||||
caps:
|
caps:
|
||||||
@@ -65,8 +67,7 @@
|
|||||||
inputs:
|
inputs:
|
||||||
username: "{{ .Config.username }}"
|
username: "{{ .Config.username }}"
|
||||||
password: "{{ .Config.password }}"
|
password: "{{ .Config.password }}"
|
||||||
submitme: "X"
|
use_ssl: "1"
|
||||||
submitme: "X" # two submitme needed?!? shouldn't make a difference
|
|
||||||
error:
|
error:
|
||||||
- selector: h2:contains("Login failed!")
|
- selector: h2:contains("Login failed!")
|
||||||
message:
|
message:
|
||||||
|
@@ -6,7 +6,7 @@
|
|||||||
type: public
|
type: public
|
||||||
encoding: UTF-8
|
encoding: UTF-8
|
||||||
links:
|
links:
|
||||||
- http://www.torrent9.blue/
|
- https://www.torrent9.blue/
|
||||||
legacylinks:
|
legacylinks:
|
||||||
- http://www.torrent9.ec/
|
- http://www.torrent9.ec/
|
||||||
- http://www.torrent9.red/
|
- http://www.torrent9.red/
|
||||||
@@ -14,6 +14,7 @@
|
|||||||
- http://www.torrents9.pe/
|
- http://www.torrents9.pe/
|
||||||
- http://www.torrent9.cc/
|
- http://www.torrent9.cc/
|
||||||
- http://www.torrent9.pe/
|
- http://www.torrent9.pe/
|
||||||
|
- http://www.torrent9.blue/
|
||||||
|
|
||||||
caps:
|
caps:
|
||||||
categorymappings:
|
categorymappings:
|
||||||
|
165
src/Jackett.Common/Definitions/x-ite.me.yml
Normal file
165
src/Jackett.Common/Definitions/x-ite.me.yml
Normal 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
|
@@ -6,11 +6,12 @@
|
|||||||
type: semi-private
|
type: semi-private
|
||||||
encoding: UTF-8
|
encoding: UTF-8
|
||||||
links:
|
links:
|
||||||
- https://ww1.yggtorrent.is/
|
- https://ww2.yggtorrent.is/
|
||||||
legacylinks:
|
legacylinks:
|
||||||
- https://yggtorrent.is/
|
- https://yggtorrent.is/
|
||||||
- https://yggtorrent.com/
|
- https://yggtorrent.com/
|
||||||
- https://ww1.yggtorrent.com/
|
- https://ww1.yggtorrent.com/
|
||||||
|
- https://ww1.yggtorrent.is/
|
||||||
|
|
||||||
caps:
|
caps:
|
||||||
categorymappings:
|
categorymappings:
|
||||||
|
@@ -1,102 +1,80 @@
|
|||||||
---
|
---
|
||||||
site: yourexotic
|
site: yourexotic
|
||||||
name: Your Exotic Torrents
|
name: ExoticaZ
|
||||||
description: "a porn tracker"
|
description: "a porn tracker"
|
||||||
language: en-us
|
language: en-us
|
||||||
type: private
|
type: private
|
||||||
encoding: UTF-8
|
encoding: UTF-8
|
||||||
links:
|
links:
|
||||||
|
- https://exoticaz.to/
|
||||||
|
legacylinks:
|
||||||
- https://torrents.yourexotic.com/
|
- https://torrents.yourexotic.com/
|
||||||
|
|
||||||
caps:
|
caps:
|
||||||
categorymappings:
|
categorymappings:
|
||||||
- {id: 11, cat: XXX, desc: "DVDRip"}
|
- {id: 1, 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"}
|
|
||||||
modes:
|
modes:
|
||||||
search: [q]
|
search: [q]
|
||||||
tv-search: [q]
|
tv-search: [q]
|
||||||
movie-search: [q]
|
movie-search: [q]
|
||||||
|
|
||||||
login:
|
login:
|
||||||
path: /index.php?page=login
|
path: /login
|
||||||
method: post
|
method: form
|
||||||
inputs:
|
inputs:
|
||||||
uid: "{{ .Config.username }}"
|
username: "{{ .Config.username }}"
|
||||||
pwd: "{{ .Config.password }}"
|
password: "{{ .Config.password }}"
|
||||||
|
remember: "on"
|
||||||
error:
|
error:
|
||||||
- selector: .lista>span
|
- selector: div.invalid-feedback
|
||||||
test:
|
test:
|
||||||
path: index.php
|
selector: div.ratio-bar
|
||||||
selector: form[name="jump1"]
|
|
||||||
|
|
||||||
search:
|
search:
|
||||||
path: index.php
|
path: /torrents
|
||||||
inputs:
|
inputs:
|
||||||
$raw: "&category={{range .Categories}}{{.}};{{end}}"
|
in: 1
|
||||||
page: "torrents"
|
search: "{{ .Keywords }}"
|
||||||
active: "0"
|
category: 0
|
||||||
search: "{{ .Query.Keywords }}"
|
|
||||||
rows:
|
rows:
|
||||||
selector: table.lista > tbody > tr:has(a[href^="index.php?page=torrent-details&id="])
|
selector: div.table-responsive > table > tbody > tr
|
||||||
fields:
|
fields:
|
||||||
category:
|
category:
|
||||||
selector: td:nth-child(1) a
|
text: 1
|
||||||
attribute: href
|
|
||||||
filters:
|
|
||||||
- name: querystring
|
|
||||||
args: category
|
|
||||||
title:
|
title:
|
||||||
selector: a[href^="index.php?page=torrent-details&id="]
|
selector: a.torrent-link
|
||||||
attribute: title
|
attribute: title
|
||||||
filters:
|
|
||||||
- name: replace
|
|
||||||
args: ["View details: ", ""]
|
|
||||||
details:
|
details:
|
||||||
selector: a[href^="index.php?page=torrent-details&id="]
|
selector: a.torrent-link
|
||||||
attribute: href
|
attribute: href
|
||||||
|
banner:
|
||||||
|
selector: span.screen-image
|
||||||
|
attribute: data-screens
|
||||||
|
filters:
|
||||||
|
- name: split
|
||||||
|
args: ["|", 0]
|
||||||
size:
|
size:
|
||||||
selector: td:nth-child(7)
|
selector: td:nth-child(5)
|
||||||
seeders:
|
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)
|
selector: td:nth-child(6)
|
||||||
|
leechers:
|
||||||
|
selector: td:nth-child(7)
|
||||||
|
grabs:
|
||||||
|
selector: td:nth-child(8)
|
||||||
|
date:
|
||||||
|
selector: td:nth-child(3)
|
||||||
filters:
|
filters:
|
||||||
- name: dateparse
|
- name: append
|
||||||
args: "02/01/2006"
|
args: " ago"
|
||||||
download:
|
download:
|
||||||
selector: a[href^="download.php"]
|
selector: a[href*="/download/"]
|
||||||
attribute: href
|
attribute: href
|
||||||
downloadvolumefactor:
|
downloadvolumefactor:
|
||||||
case:
|
case:
|
||||||
img[src$="freeleech.gif"]: "0"
|
i[title="Free Download"]: "0"
|
||||||
img[src$="silver.gif"]: "0.5"
|
i[title="Half Download"]: "0.5"
|
||||||
"*": "1"
|
"*": "1"
|
||||||
uploadvolumefactor:
|
uploadvolumefactor:
|
||||||
case:
|
case:
|
||||||
img[src$="2x.gif"]: "2"
|
i.fa-gem: "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"
|
|
||||||
"*": "1"
|
"*": "1"
|
||||||
|
@@ -318,7 +318,7 @@ namespace Jackett.Common.Indexers.Abstract
|
|||||||
{
|
{
|
||||||
var content = await base.Download(link);
|
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
|
// most gazelle trackers will simply return the torrent anyway but e.g. redacted will return an error
|
||||||
var requestLink = link.ToString();
|
var requestLink = link.ToString();
|
||||||
if (content.Length >= 1
|
if (content.Length >= 1
|
||||||
@@ -326,7 +326,8 @@ namespace Jackett.Common.Indexers.Abstract
|
|||||||
&& requestLink.Contains("usetoken=1"))
|
&& requestLink.Contains("usetoken=1"))
|
||||||
{
|
{
|
||||||
var html = Encoding.GetString(content);
|
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
|
// download again with usetoken=0
|
||||||
var requestLinkNew = requestLink.Replace("usetoken=1", "usetoken=0");
|
var requestLinkNew = requestLink.Replace("usetoken=1", "usetoken=0");
|
||||||
|
@@ -752,26 +752,22 @@ namespace Jackett.Common.Indexers
|
|||||||
|
|
||||||
protected ICollection<int> MapTrackerCatToNewznab(string input)
|
protected ICollection<int> MapTrackerCatToNewznab(string input)
|
||||||
{
|
{
|
||||||
var cats = new List<int>();
|
if (input == null)
|
||||||
if (null != input)
|
return new List<int>();
|
||||||
{
|
|
||||||
var mapping = categoryMapping.Where(m => m.TrackerCategory != null && m.TrackerCategory.ToLowerInvariant() == input.ToLowerInvariant()).FirstOrDefault();
|
|
||||||
if (mapping != null)
|
|
||||||
{
|
|
||||||
cats.Add(mapping.NewzNabCategory);
|
|
||||||
}
|
|
||||||
|
|
||||||
// 1:1 category mapping
|
var cats = categoryMapping.Where(m => m.TrackerCategory != null && m.TrackerCategory.ToLowerInvariant() == input.ToLowerInvariant()).Select(c => c.NewzNabCategory).ToList();
|
||||||
try
|
|
||||||
{
|
// 1:1 category mapping
|
||||||
var trackerCategoryInt = int.Parse(input);
|
try
|
||||||
cats.Add(trackerCategoryInt + 100000);
|
{
|
||||||
}
|
var trackerCategoryInt = int.Parse(input);
|
||||||
catch (FormatException)
|
cats.Add(trackerCategoryInt + 100000);
|
||||||
{
|
|
||||||
// input is not an integer, continue
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
catch (FormatException)
|
||||||
|
{
|
||||||
|
// input is not an integer, continue
|
||||||
|
}
|
||||||
|
|
||||||
return cats;
|
return cats;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -18,7 +18,7 @@ namespace Jackett.Common.Indexers
|
|||||||
{
|
{
|
||||||
class MejorTorrent : BaseWebIndexer
|
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");
|
public static Uri DownloadUri = new Uri(WebUri, "secciones.php?sec=descargas&ap=contar_varios");
|
||||||
private static Uri SearchUriBase = new Uri(WebUri, "secciones.php");
|
private static Uri SearchUriBase = new Uri(WebUri, "secciones.php");
|
||||||
public static Uri NewTorrentsUri = new Uri(WebUri, "secciones.php?sec=ultimos_torrents");
|
public static Uri NewTorrentsUri = new Uri(WebUri, "secciones.php?sec=ultimos_torrents");
|
||||||
|
@@ -44,20 +44,23 @@ namespace Jackett.Common.Models.DTO
|
|||||||
stringQuery.ExpandCatsToSubCats();
|
stringQuery.ExpandCatsToSubCats();
|
||||||
|
|
||||||
// try to build an IMDB Query
|
// try to build an IMDB Query
|
||||||
var imdbID = ParseUtil.GetFullImdbID(stringQuery.SanitizedSearchTerm);
|
if (stringQuery.SanitizedSearchTerm.StartsWith("tt") && stringQuery.SanitizedSearchTerm.Length <= 9)
|
||||||
TorznabQuery imdbQuery = null;
|
|
||||||
if (imdbID != null)
|
|
||||||
{
|
{
|
||||||
imdbQuery = new TorznabQuery()
|
var imdbID = ParseUtil.GetFullImdbID(stringQuery.SanitizedSearchTerm);
|
||||||
|
TorznabQuery imdbQuery = null;
|
||||||
|
if (imdbID != null)
|
||||||
{
|
{
|
||||||
ImdbID = imdbID,
|
imdbQuery = new TorznabQuery()
|
||||||
Categories = stringQuery.Categories,
|
{
|
||||||
Season = stringQuery.Season,
|
ImdbID = imdbID,
|
||||||
Episode = stringQuery.Episode,
|
Categories = stringQuery.Categories,
|
||||||
};
|
Season = stringQuery.Season,
|
||||||
imdbQuery.ExpandCatsToSubCats();
|
Episode = stringQuery.Episode,
|
||||||
|
};
|
||||||
|
imdbQuery.ExpandCatsToSubCats();
|
||||||
|
|
||||||
return imdbQuery;
|
return imdbQuery;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return stringQuery;
|
return stringQuery;
|
||||||
|
@@ -202,6 +202,7 @@ namespace Jackett.Server.Controllers
|
|||||||
if (t.Key == "Category[]")
|
if (t.Key == "Category[]")
|
||||||
{
|
{
|
||||||
request.Category = t.Value.ToString().Split(',').Select(Int32.Parse).ToArray();
|
request.Category = t.Value.ToString().Split(',').Select(Int32.Parse).ToArray();
|
||||||
|
CurrentQuery.Categories = request.Category;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (t.Key == "query")
|
if (t.Key == "query")
|
||||||
@@ -339,11 +340,13 @@ namespace Jackett.Server.Controllers
|
|||||||
|
|
||||||
if (CurrentQuery.ImdbID != null)
|
if (CurrentQuery.ImdbID != null)
|
||||||
{
|
{
|
||||||
|
/* We should allow this (helpful in case of aggregate indexers)
|
||||||
if (!string.IsNullOrEmpty(CurrentQuery.SearchTerm))
|
if (!string.IsNullOrEmpty(CurrentQuery.SearchTerm))
|
||||||
{
|
{
|
||||||
logger.Warn($"A search request from {Request.HttpContext.Connection.RemoteIpAddress} was made containing q and imdbid.");
|
logger.Warn($"A search request from {Request.HttpContext.Connection.RemoteIpAddress} was made containing q and imdbid.");
|
||||||
return GetErrorXML(201, "Incorrect parameter: please specify either imdbid or q");
|
return GetErrorXML(201, "Incorrect parameter: please specify either imdbid or q");
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
CurrentQuery.ImdbID = ParseUtil.GetFullImdbID(CurrentQuery.ImdbID); // normalize ImdbID
|
CurrentQuery.ImdbID = ParseUtil.GetFullImdbID(CurrentQuery.ImdbID); // normalize ImdbID
|
||||||
if (CurrentQuery.ImdbID == null)
|
if (CurrentQuery.ImdbID == null)
|
||||||
|
@@ -48,6 +48,7 @@ namespace Jackett.Server
|
|||||||
options.AccessDeniedPath = new PathString("/UI/Login");
|
options.AccessDeniedPath = new PathString("/UI/Login");
|
||||||
options.LogoutPath = new PathString("/UI/Logout");
|
options.LogoutPath = new PathString("/UI/Logout");
|
||||||
options.Cookie.Name = "Jackett";
|
options.Cookie.Name = "Jackett";
|
||||||
|
options.Cookie.SameSite = SameSiteMode.None;
|
||||||
});
|
});
|
||||||
|
|
||||||
services.AddMvc(config =>
|
services.AddMvc(config =>
|
||||||
|
@@ -42,7 +42,6 @@
|
|||||||
<Reference Include="System" />
|
<Reference Include="System" />
|
||||||
<Reference Include="System.Configuration" />
|
<Reference Include="System.Configuration" />
|
||||||
<Reference Include="System.Core" />
|
<Reference Include="System.Core" />
|
||||||
<Reference Include="System.IO.Compression" />
|
|
||||||
<Reference Include="System.Net.Http.WebRequest" />
|
<Reference Include="System.Net.Http.WebRequest" />
|
||||||
<Reference Include="System.Runtime.Serialization" />
|
<Reference Include="System.Runtime.Serialization" />
|
||||||
<Reference Include="System.ServiceModel" />
|
<Reference Include="System.ServiceModel" />
|
||||||
@@ -53,7 +52,6 @@
|
|||||||
<Reference Include="System.Data" />
|
<Reference Include="System.Data" />
|
||||||
<Reference Include="System.Deployment" />
|
<Reference Include="System.Deployment" />
|
||||||
<Reference Include="System.Drawing" />
|
<Reference Include="System.Drawing" />
|
||||||
<Reference Include="System.Net.Http" />
|
|
||||||
<Reference Include="System.Windows.Forms" />
|
<Reference Include="System.Windows.Forms" />
|
||||||
<Reference Include="System.Xml" />
|
<Reference Include="System.Xml" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
@@ -30,6 +30,11 @@ namespace Jackett.Tray
|
|||||||
Hide();
|
Hide();
|
||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
|
|
||||||
|
Opacity = 0;
|
||||||
|
Enabled = false;
|
||||||
|
WindowState = FormWindowState.Minimized;
|
||||||
|
FormBorderStyle = FormBorderStyle.FixedToolWindow;
|
||||||
|
|
||||||
RuntimeSettings runtimeSettings = new RuntimeSettings()
|
RuntimeSettings runtimeSettings = new RuntimeSettings()
|
||||||
{
|
{
|
||||||
CustomLogFileName = "TrayLog.txt"
|
CustomLogFileName = "TrayLog.txt"
|
||||||
|
@@ -39,7 +39,7 @@ namespace Jackett.Tray
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception)
|
||||||
{
|
{
|
||||||
newVersion = "";
|
newVersion = "";
|
||||||
}
|
}
|
||||||
|
@@ -231,6 +231,8 @@ namespace Jackett.Updater
|
|||||||
"Definitions/oxtorrent.yml",
|
"Definitions/oxtorrent.yml",
|
||||||
"Definitions/tehconnection.yml",
|
"Definitions/tehconnection.yml",
|
||||||
"Definitions/torrentwtf.yml",
|
"Definitions/torrentwtf.yml",
|
||||||
|
"Definitions/eotforum.yml",
|
||||||
|
"Definitions/nexttorrent.yml",
|
||||||
};
|
};
|
||||||
|
|
||||||
foreach (var oldFile in oldFiles)
|
foreach (var oldFile in oldFiles)
|
||||||
|
@@ -289,11 +289,13 @@ namespace Jackett.Controllers
|
|||||||
|
|
||||||
if (CurrentQuery.ImdbID != null)
|
if (CurrentQuery.ImdbID != null)
|
||||||
{
|
{
|
||||||
|
/* We should allow this (helpful in case of aggregate idnexers)
|
||||||
if (!string.IsNullOrEmpty(CurrentQuery.SearchTerm))
|
if (!string.IsNullOrEmpty(CurrentQuery.SearchTerm))
|
||||||
{
|
{
|
||||||
logger.Warn($"A search request from {Request.GetOwinContext().Request.RemoteIpAddress} was made containing q and imdbid.");
|
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");
|
return GetErrorXML(201, "Incorrect parameter: please specify either imdbid or q");
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
CurrentQuery.ImdbID = ParseUtil.GetFullImdbID(CurrentQuery.ImdbID); // normalize ImdbID
|
CurrentQuery.ImdbID = ParseUtil.GetFullImdbID(CurrentQuery.ImdbID); // normalize ImdbID
|
||||||
if (CurrentQuery.ImdbID == null)
|
if (CurrentQuery.ImdbID == null)
|
||||||
|
Reference in New Issue
Block a user