Compare commits

...

102 Commits

Author SHA1 Message Date
Garfield69
d43ac08372 opencd: https://github.com/Prowlarr/Prowlarr/issues/792 2022-01-21 16:49:39 +13:00
Garfield69
cfff7e4c1d Revert "opencd https => http (#12863)"
This reverts commit 22ebc5170c.
2022-01-21 16:47:06 +13:00
bakerboy448
22ebc5170c opencd https => http (#12863)
https://github.com/Prowlarr/Prowlarr/issues/792
2022-01-21 11:48:02 +13:00
Garfield69
76c8dd45e3 assorted torrent*: bump domains 2022-01-21 08:37:27 +13:00
Garfield69
c8dfa99b28 torrent-turk: add new cat 2022-01-20 15:57:24 +13:00
ilike2burnthing
67e054468d cardigann: fix .query.season (#12857)
Co-authored-by: Qstick <qstick@users.noreply.github.com>
2022-01-19 23:53:45 +00:00
Garfield69
3afd31ea1c torrentfunk: empty search returns no results 2022-01-20 08:04:07 +13:00
ilike2burnthing
ec8e141ac9 cardigann: add xml parsing support (#12848)
Co-authored-by: garfield69 <garfieldsixtynine@gmail.com>
Co-authored-by: Qstick
2022-01-19 18:52:45 +00:00
ilike2burnthing
0cd4eb2b69 dontorrent: typo fix 2022-01-19 15:19:29 +00:00
Garfield69
c9b4c988d7 zetorrents: new domain *.tv -> *.bz 2022-01-19 17:16:29 +13:00
Garfield69
be4cf5e2c9 dontorrent: new domain *.li -> *.it 2022-01-19 17:13:41 +13:00
Garfield69
c46cb2d8bb add uhd-heaven a private site. resolves #12855 2022-01-19 13:28:06 +13:00
ilike2burnthing
d34f1558b7 iptorrents: add sort setting. resolves #12853 (#12856) 2022-01-19 00:16:19 +00:00
ilike2burnthing
2936a1c824 docspedia: add new cat 2022-01-18 18:53:10 +00:00
Garfield69
8ecace57e8 torrentseeds: add book search and new cat 2022-01-19 07:49:31 +13:00
Garfield69
baddd7bcff reelfix: cat desc adjustment 2022-01-19 07:49:01 +13:00
Garfield69
9fa99e6ac4 finvip: add new cat
and adjust desc for others
2022-01-19 07:48:45 +13:00
Garfield69
98374d4055 brsociety: cat desc adjustments 2022-01-19 07:48:12 +13:00
ilike2burnthing
d99fd72269 installer: switch to taskkill. resolves #12780 (#12852) 2022-01-18 15:56:18 +00:00
ilike2burnthing
cd2198bfe1 dontorrent: convert from todotorrents. resolves #6214 (#12849) 2022-01-18 01:43:27 +00:00
ilike2burnthing
96fef53dae datascene-api: update category description 2022-01-17 21:34:12 +00:00
ilike2burnthing
5b4df4a6d9 swarmazon: change to categorydesc
cat id isn't present for search.php results
latest.php has more torrents
limit isn't used
2022-01-17 14:30:05 +00:00
Garfield69
5b962958ff swarmazon: update category detection 2022-01-17 18:20:13 +13:00
ilike2burnthing
3c4a2adbae installer: kill active instances of jackett. resolves #12780 (#12840) 2022-01-17 01:35:45 +00:00
ilike2burnthing
af6f85fc81 rintornet: switch to categorydesc cat detection. (#12845) 2022-01-17 14:33:31 +13:00
Diego Heras
cb7a4861a0 core: use proxy for cover/poster images url. resolves #12761 (#12843) 2022-01-16 23:38:58 +00:00
ilike2burnthing
28db1b63f2 assorted unit3d API: categorydesc remove comment (#12844) 2022-01-16 23:19:03 +00:00
Garfield69
928864afb2 assorted unit3d API: use fields categorydesc for cat detection 2022-01-17 09:20:19 +13:00
Garfield69
f19f753dd1 assorted unit3d API: improve apikey error message 2022-01-17 09:18:17 +13:00
Garfield69
2a0eb6fac7 assorted unit3d API: use fields categorydesc for cat detection 2022-01-17 08:20:22 +13:00
Garfield69
d0413d4acc assorted unit3d API: add apikey validation 2022-01-17 08:16:53 +13:00
Diego Heras
1a9d0fc206 torrentday: add freeleech only. #9456 (#12842) 2022-01-16 19:34:50 +01:00
ilike2burnthing
2a23f98682 ebooks-shares: add vip results setting. resolves #11387
tracker doesn't support multi-category search
2022-01-16 16:03:37 +00:00
Diego Heras
a5b7e58d26 ui: search tracker name and tracker url. resolves #10870 (#12803) 2022-01-16 15:32:47 +00:00
Diego Heras
f2d21899e6 hdolimpo: validate api key when the indexer is configured (#12839) 2022-01-16 15:14:43 +01:00
Diego Heras
60d2c425e1 core: implement category_desc parser for cardigann indexers (fix) (#12838) 2022-01-16 13:44:51 +01:00
Diego Heras
02e43bd6a9 core: implement category_desc parser for cardigann indexers (#12837) 2022-01-16 13:32:35 +01:00
Diego Heras
4a6d630076 core: increate httpclient timeout for update download. resolves #12711 (#12836)
* Update download timeout => 100s => 300 s
2022-01-16 13:04:50 +01:00
Diego Heras
f11bea6429 hdolimpo: migrated to unit3d api (#12834) 2022-01-16 12:19:38 +01:00
Diego Heras
09e81da34c cinecalidad: fix parser. only latino is supported. resolves #12830 (#12833) 2022-01-16 11:30:26 +01:00
Diego Heras
42ca019942 cosmetic: dotnet format c# code (#12832) 2022-01-16 11:30:11 +01:00
Garfield69
d457cd336d cinecalidad:vnew layout #12830 2022-01-16 07:15:26 +13:00
ilike2burnthing
c254acfc46 newpct: bump domain, pt2
follow up to #12812
2022-01-15 16:54:35 +00:00
tomaskazragis
6c5a005e27 torrent.lt: fixed login, added user/password to settings (#12829) 2022-01-15 13:26:58 +00:00
Garfield69
a2b1604052 torrentqq: bump domain 2022-01-15 16:01:44 +13:00
tomaskazragis
562c826cfa torrent.lt: drop cookie method (#12824) 2022-01-15 12:29:36 +13:00
Garfield69
af1002d57e Revert "spidertk: switch to cookie method. resolves #12718"
This reverts commit b17c2482d0.
2022-01-15 06:13:10 +13:00
Garfield69
212e03ec7f trackeors: fix cats. resolves #12808 2022-01-14 14:24:37 +13:00
ilike2burnthing
56a2b7f2a0 issue_template: last fix 2022-01-13 19:37:47 +00:00
ilike2burnthing
a23b6fc673 issue_template: typo fix 2022-01-13 19:35:54 +00:00
ilike2burnthing
b90f15b37f issue_templates: update (#12815) 2022-01-13 19:27:31 +00:00
Garfield69
1299a1aa72 Update TodoTorrents.cs 2022-01-14 07:10:19 +13:00
Lyuu
e524572af3 todotorrents: new indexer (#12813) 2022-01-14 07:06:17 +13:00
ilike2burnthing
533ecae219 contributing: update for vs2022 (#12811) 2022-01-14 06:44:22 +13:00
Lyuu
a3d3456f41 newpct: bump domain (#12812) 2022-01-14 06:43:54 +13:00
Garfield69
e19e3e820b torrentsir: bump domain 2022-01-13 08:16:46 +13:00
Garfield69
e7859b2db5 docspedia: add new cat 2022-01-13 08:14:04 +13:00
Garfield69
98c5c2f149 extremetorrents: try downloadv1.php else download.php resolves #12617 2022-01-12 21:15:15 +13:00
ilike2burnthing
11e4fce764 trackeros: switch to API 2022-01-12 08:14:30 +00:00
Garfield69
fe3dc0f766 trackeros: update. #12808 2022-01-12 19:24:51 +13:00
Garfield69
a7cd5e442e trackeros: switch to unit3d 5.3.0 api. #12808
untested, the categories need to be confirmed.
2022-01-12 19:20:53 +13:00
Garfield69
650cc8bb9a pornorip: removed. resolves #7524 2022-01-12 16:06:00 +13:00
dctorrent1337
5b357e6019 bj-share: Update categories (#12806) 2022-01-12 14:13:10 +13:00
Garfield69
50bdadc18d add hawke-uno a private site. resolves #12804 2022-01-11 20:26:09 +13:00
Garfield69
dfc27a7434 polishsource: fix for error from #11917 resolves #12484 2022-01-11 09:19:46 +13:00
ilike2burnthing
4aec424e0a alleenretail: restore indexer, site back up. #12557 (#12801) 2022-01-10 09:29:44 +00:00
Garfield69
ad86088b3c Update README.md 2022-01-10 18:19:45 +13:00
Garfield69
a101eec991 Update README.md 2022-01-10 15:25:16 +13:00
Garfield69
f1c6dca9bf secretcinema: drop artist from release titles. resolves #12799 2022-01-10 14:56:04 +13:00
Diego Heras
bd13e1256f core: Implement /health endpoint (healthcheck). Resolves #12784 (#12798) 2022-01-09 23:15:50 +01:00
ilike2burnthing
c01b8a3a33 digitalcore: update categories, pt2 #12794 2022-01-09 18:44:00 +00:00
Diego Heras
7ac6c43040 digitalcore: update categories. resolves #12794 (#12796) 2022-01-09 19:38:45 +01:00
Diego Heras
1f0751f634 core: make FlareSolverr Max Timeout configurable. resolves #12750 (#12795) 2022-01-09 19:38:14 +01:00
Garfield69
c6b575b79c cpasbienclone: new search path. resolves #12791 2022-01-10 06:37:16 +13:00
ilike2burnthing
8e4d797d1b assorted: remove unrelated results (#12790) 2022-01-10 06:08:58 +13:00
ilike2burnthing
fa5bf831f6 torrentby: change to http 2022-01-08 11:22:22 +00:00
ilike2burnthing
ae33faa652 hdu: ignore expired certificate 2022-01-08 11:09:30 +00:00
ilike2burnthing
bac28c0302 danishbytes: add official mirror *2.org 2022-01-08 04:20:52 +00:00
Garfield69
271f4d45e5 anime-free: expired CA 2022-01-08 17:17:54 +13:00
Garfield69
53c61453a6 oncesearch: removed. resolves #10539 2022-01-08 17:11:45 +13:00
Garfield69
6a15031197 torrentqq: bump domain 2022-01-08 17:08:36 +13:00
Garfield69
e5c19c246c krazyzone: config info about 0 results 2022-01-08 16:48:35 +13:00
Garfield69
3a184f41a2 moviesite: set to semi-private 2022-01-08 16:36:26 +13:00
Garfield69
ec42b35aba pier720: set to semi-private. resolves #12785 2022-01-08 15:37:41 +13:00
Garfield69
d4bd5d747d animeworld: alter order to prevent false match. #12022 2022-01-08 08:48:03 +13:00
Garfield69
ef40af260b animeworld: update categories. resolves #12022 2022-01-08 08:43:51 +13:00
Garfield69
b17c2482d0 spidertk: switch to cookie method. resolves #12718 2022-01-07 17:21:17 +13:00
Garfield69
67db83ac07 Update README.md 2022-01-07 16:14:00 +13:00
Garfield69
6e9ed2973f SkipTheCommercials: replaced by SkipTheCommercials(API) #8682 2022-01-07 13:32:48 +13:00
Garfield69
23a01eb8d2 TellyTorrent: replaced by TellyTorrent(API) #8682 2022-01-07 13:31:31 +13:00
Garfield69
23891d5cba Shareisland: replaced by Shareisland(API) #8682 2022-01-07 13:30:08 +13:00
Garfield69
03df949e4f Aither: replaced by Aither(API) #8682 2022-01-07 13:28:42 +13:00
Garfield69
82d97331c9 DataScene: replaced by DataScene(API) #8682 2022-01-07 13:27:41 +13:00
Garfield69
1265a6aa53 ReelFLiX: replaced by ReelFLiX(API) #8682 2022-01-07 13:26:40 +13:00
Garfield69
73aea6f5ff BrSociety: replaced by BrSociety(API) #8682 2022-01-07 13:24:04 +13:00
Garfield69
aaf7b7d9e0 AnimeWorld: replaced by AnimeWorld(API) #8682 2022-01-07 13:22:15 +13:00
Garfield69
af5c32e3aa DesiTorrents: replaced by DesiTorrents (API) #8682 2022-01-07 13:19:29 +13:00
Garfield69
41f66b15b4 blutopia: replaced by Blutopia (API) #8682 2022-01-07 13:16:37 +13:00
Garfield69
9b67eef230 blutopia: new torrents page html. resolves #12775 2022-01-07 09:07:02 +13:00
ilike2burnthing
caeeb8cde2 assorted: change unblockit proxy domain *.how (#12773) 2022-01-06 05:27:51 +00:00
Maxim Grishin
5d99a7c90b Make select style applied to all (#12772) 2022-01-06 09:26:44 +13:00
Garfield69
de6949f303 demonoid: new layout
now includes posters and imdb
2022-01-05 18:36:01 +13:00
131 changed files with 2359 additions and 3569 deletions

View File

@@ -51,6 +51,7 @@ body:
description: |
Place any relevant error messages you noticed from the logs here.
Make sure you attach the full logs with your personal information removed in case we need more information.
render: text
validations:
required: true
- type: textarea

View File

@@ -104,24 +104,31 @@ We've developed the guide below to make sure we're all on the same page because
The following guide assumes you've never worked with a Visual Studio project with GitHub before.
This will give you the minimum necessary tools to get started. There are plenty of optional tools that may help you, but we won't cover those here.
- The guide is currently only geared towards developing on Windows using Visual Studio Community 2019.
- The guide is currently only geared towards developing on Windows using Visual Studio Community 2022.
If you use something else, please add it here for others.
<details open=true> <summary> Windows </summary>
<details open=true> <summary> Visual Studio 2019 </summary>
<details open=true> <summary> Visual Studio 2022 </summary>
- Install [Visual Studio Community 2019](http://visualstudio.com) for free.
- Install [Visual Studio Community 2022](https://visualstudio.microsoft.com/vs/) for free.
- About 2GB download. 8GB installed.
- Make sure it includes the following Workloads/Components:
- .Net Desktop Development
- .Net Core Cross-Platform Development
- GitHub extension for Visual Studio
- [Connect and synchronize your forked repository to Visual Studio](https://doc.fireflymigration.com/working-with-github-fork-in-visual-studio.html)
- Make sure it includes the following Workload and Individual Components:
- .NET desktop development
- .Net Framework 4.6.1 SDK
- .Net Framework 4.6.1 targeting pack
- From the `Get Started` screen:
- `Clone a repository -> Browse a repository -> GitHub -> Sign in -> clone your forked repository`
- Double-click `Jackett.sln` in `Solution Explorer` to load your project
- Ensure `Jackett.Server` is the Startup Project (instead of `Jackett.Service`) and the Run Target (instead of `IIS Express`)
- Open `Tools -> NuGet Package Manager -> Package Manager Console`
- From the PMC, run `dotnet tool install -g dotnet-format` and `dotnet restore`
- Run `Build -> Rebuild Solution` to restore NuGet packages
- Ensure `Jackett.Server` is the Startup Project (instead of `Jackett.Service`), and the Run Target (instead of `IIS Express`)
- From the PMC, with `Jackett.Service` as the default project, run:
- `dotnet tool install -g dotnet-format`
- `dotnet msbuild /restore`
- `dotnet restore`
- `dotnet build`
- [For more information on working with your forked GitHub repository in Visual Studio](https://doc.fireflymigration.com/working-with-github-fork-in-visual-studio.html)
- UPDATE: changes are now made in `Git Changes` and `Git Repository` (instead of `Team Explorer`)
</details>

View File

@@ -30,6 +30,7 @@ UninstallDisplayName={#MyAppName}
Compression=lzma
SolidCompression=yes
DisableDirPage=yes
WizardStyle=modern
[Languages]
Name: "english"; MessagesFile: "compiler:Default.isl"
@@ -47,6 +48,15 @@ Name: "{group}\{#MyAppName}"; Filename: "{commonappdata}\Jackett\{#MyAppExeName}
Name: "{group}\{cm:UninstallProgram,{#MyAppName}}"; Filename: "{uninstallexe}"
Name: "{commondesktop}\{#MyAppName}"; Filename: "{commonappdata}\Jackett\{#MyAppExeName}"; Tasks: desktopicon
[Code]
function PrepareToInstall(var NeedsRestart: Boolean): String;
var
ErrorCode: Integer;
begin
ShellExec('open', 'taskkill.exe', '/f /im {#MyAppExeName}', '', SW_HIDE, ewNoWait, ErrorCode);
ShellExec('open', 'taskkill.exe', '/f /im JackettConsole.exe', '', SW_HIDE, ewNoWait, ErrorCode);
end;
[Run]
Filename: "{commonappdata}\Jackett\JackettConsole.exe"; Parameters: "--Uninstall"; Flags: waituntilterminated runhidden;
Filename: "{commonappdata}\Jackett\JackettConsole.exe"; Parameters: "--ReserveUrls"; Flags: waituntilterminated runhidden;

View File

@@ -56,6 +56,7 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
* Demonoid
* DivxTotal
* dmhy
* DonTorrent
* E-Hentai
* elitetorrent
* EpubLibre
@@ -104,7 +105,6 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
* NNTT
* NoNaMe Club (NNM-Club)
* Nyaa.si
* OnceSearch
* OneJAV
* OpenSharing
* OxTorrent
@@ -115,7 +115,6 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
* Pornforall
* PornLeech
* PornoLive
* PornoRip
* PornosLab
* PornoTor
* PornoTorrent
@@ -181,6 +180,7 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
<details> <summary> <b> Supported Semi-Private Trackers </b> </summary>
* 720pier
* AniDUB
* Anime-Free
* AnimeLayer
@@ -246,7 +246,6 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
* 3D Torrents (3DT) [![(invite needed)][inviteneeded]](#)
* 4thD (4th Dimension)
* 52PT
* 720pier
* Abnormal
* ABtorrents (ABT + RNS)
* Acid Lounge (A-L)
@@ -254,6 +253,7 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
* Aftershock
* Aidoru!Online
* Aither
* Alleen Retail
* AlphaRatio (AR)
* AmigosShareClub
* anasch.cc
@@ -368,6 +368,7 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
* HaiDan
* Haitang
* HappyFappy
* Hawke-uno
* HD Dolby
* HD-Bits.com [![(invite needed)][inviteneeded]](#)
* HD-Forever (HDF)
@@ -401,7 +402,7 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
* Il Corsaro Verde
* Indietorrents [![(invite needed)][inviteneeded]](#)
* IPTorrents (IPT)
* ImmortalSeed (iS) [![(invite needed)][inviteneeded]](#)
* ImmortalSeed (iS)
* Immortuos [![(invite needed)][inviteneeded]](#)
* Insane Tracker
* IPTorrents (IPT)
@@ -490,7 +491,7 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
* RacingForMe (RFM)
* RedBits
* Red Star Torrent (RST) [![(invite needed)][inviteneeded]](#)
* Redacted (PassTheHeadphones) [![(invite needed)][inviteneeded]](#)
* Redacted (PassTheHeadphones)
* Resurrect The Net
* RetroFlix
* RevolutionTT
@@ -580,6 +581,7 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
* Twilights Zoom
* U2 (U2分享園@動漫花園) [![(invite needed)][inviteneeded]](#)
* UHDBits
* UHD-HEAVEN
* UnionGang [![(invite needed)][inviteneeded]](#)
* UnlimitZ
* Vizuk
@@ -778,6 +780,7 @@ For these cases, [FlareSolverr](https://github.com/FlareSolverr/FlareSolverr) ha
Setting up this service is optional, most indexers don't need it.
* Install FlareSolverr service (following their instructions)
* Configure **FlareSolverr API URL** in Jackett. For example: http://172.17.0.2:8191
* It is recommended to keep the default value in **FlareSolverr Max Timeout (ms)**
## Configuring OMDb
This feature is used as a fallback (when using the aggregate Indexer) to get the movie/series title if only the IMDB ID is provided in the request.

View File

@@ -247,7 +247,7 @@ pre {
white-space: nowrap;
}
.dataTables_length select, .dataTables_filter input, .dataTable.compact tfoot td select {
.dataTables_filter input, select {
display: inline-block;
height: 26px;
padding: 0 8px;

View File

@@ -130,6 +130,7 @@ function loadJackettSettings() {
}
$("#jackett-flaresolverrurl").val(data.flaresolverrurl);
$("#jackett-flaresolverr-maxtimeout").val(data.flaresolverr_maxtimeout);
$("#jackett-omdbkey").val(data.omdbkey);
$("#jackett-omdburl").val(data.omdburl);
var password = data.password;
@@ -287,6 +288,12 @@ function displayConfiguredIndexersList(indexers) {
"visible": true,
"searchable": true,
"orderable": true
},
{
"targets": 2,
"visible": false,
"searchable": true,
"orderable": false
}
]
});
@@ -429,6 +436,13 @@ function displayUnconfiguredIndexersList() {
"visible": true,
"searchable": false,
"orderable": false
},
{
"name": "url",
"targets": 7,
"visible": false,
"searchable": true,
"orderable": false
}
]
});
@@ -1500,6 +1514,7 @@ function bindUIButtons() {
var jackett_cache_ttl = $("#jackett-cache-ttl").val();
var jackett_cache_max_results_per_indexer = $("#jackett-cache-max-results-per-indexer").val();
var jackett_flaresolverr_url = $("#jackett-flaresolverrurl").val();
var jackett_flaresolverr_maxtimeout = $("#jackett-flaresolverr-maxtimeout").val();
var jackett_omdb_key = $("#jackett-omdbkey").val();
var jackett_omdb_url = $("#jackett-omdburl").val();
@@ -1522,6 +1537,7 @@ function bindUIButtons() {
cache_ttl: jackett_cache_ttl,
cache_max_results_per_indexer: jackett_cache_max_results_per_indexer,
flaresolverrurl: jackett_flaresolverr_url,
flaresolverr_maxtimeout: jackett_flaresolverr_maxtimeout,
omdbkey: jackett_omdb_key,
omdburl: jackett_omdb_url,
proxy_type: jackett_proxy_type,

View File

@@ -231,7 +231,7 @@ pre {
white-space: nowrap;
}
.dataTables_length select, .dataTables_filter input, .dataTable.compact tfoot td select {
.dataTables_filter input, select {
display: inline-block;
height: 26px;
padding: 0 8px;

View File

@@ -28,8 +28,8 @@
<link rel="stylesheet" type="text/css" href="../bootstrap/bootstrap.min.css?changed=2017083001">
<link rel="stylesheet" type="text/css" href="../animate.css?changed=2017083001">
<link rel="stylesheet" type="text/css" href="../css/tagify.css?changed=11662">
<link rel="stylesheet" type="text/css" href="../custom.css?changed=PR12083" media="only screen and (min-device-width: 480px)">
<link rel="stylesheet" type="text/css" href="../custom_mobile.css?changed=11662" media="only screen and (max-device-width: 480px)">
<link rel="stylesheet" type="text/css" href="../custom.css?changed=PR12772" media="only screen and (min-device-width: 480px)">
<link rel="stylesheet" type="text/css" href="../custom_mobile.css?changed=PR12772" media="only screen and (max-device-width: 480px)">
<link rel="stylesheet" type="text/css" href="../css/jquery.dataTables.min.css?changed=2017083001">
<link rel="stylesheet" type="text/css" href="../css/bootstrap-multiselect.css?changed=2017083001" />
<link rel="stylesheet" type="text/css" href="../css/font-awesome.min.css?changed=2017083001">
@@ -191,16 +191,20 @@
</div>
<div class="input-area">
<span class="input-header">Cache TTL (seconds): </span>
<input id="jackett-cache-ttl" class="form-control input-right" type="text" value="" placeholder="">
<input id="jackett-cache-ttl" class="form-control input-right" type="text" value="" placeholder="2100">
</div>
<div class="input-area">
<span class="input-header">Cache max results per indexer: </span>
<input id="jackett-cache-max-results-per-indexer" class="form-control input-right" type="text" value="" placeholder="">
<input id="jackett-cache-max-results-per-indexer" class="form-control input-right" type="text" value="" placeholder="1000">
</div>
<div class="input-area">
<span class="input-header">FlareSolverr API URL: </span>
<input id="jackett-flaresolverrurl" class="form-control input-right" type="text" value="" placeholder="Blank for default">
</div>
<div class="input-area">
<span class="input-header">FlareSolverr Max Timeout (ms): </span>
<input id="jackett-flaresolverr-maxtimeout" class="form-control input-right" type="text" value="" placeholder="55000">
</div>
<div class="input-area">
<span class="input-header">OMDB API key: </span>
<input id="jackett-omdbkey" class="form-control input-right" type="text" value="" placeholder="">
@@ -302,11 +306,12 @@
<script id="configured-indexer-table" type="text/x-handlebars-template">
<div class="tab-content configured-indexer-div">
<table id="configured-indexer-datatable" class="indexer-table dataTable compact cell-border hover stripe table table-responsive">
<table id="configured-indexer-datatable" class="indexer-table dataTable compact cell-border hover stripe table table-responsive" style="width: 100%">
<thead>
<tr>
<th>Indexer</th>
<th>Actions</th>
<th data-type="hiddendata">URL</th>
</tr>
</thead>
<tbody>
@@ -334,12 +339,15 @@
</button>
</div>
</td>
<td data-type="hiddendata">{{site_link}}</td>
</tr>
{{/each}}
</tbody>
<tfoot>
<tr>
<td colspan="2"></td>
<th></th>
<th></th>
<th data-type="hiddendata"></th>
</tr>
</tfoot>
</table>
@@ -348,7 +356,7 @@
<script id="unconfigured-indexer-table" type="text/x-handlebars-template">
<div class="unconfigured-indexer-div">
<table id="unconfigured-indexer-datatable" class="indexer-table dataTable compact cell-border hover stripe table table-responsive">
<table id="unconfigured-indexer-datatable" class="indexer-table dataTable compact cell-border hover stripe table table-responsive" style="width: 100%">
<thead>
<tr>
<th></th>
@@ -358,6 +366,7 @@
<th data-type="hiddendata">Type string</th>
<th>Language</th>
<th></th>
<th data-type="hiddendata">URL</th>
</tr>
</thead>
<tbody>
@@ -385,6 +394,7 @@
{{/if_eq}}
</div>
</td>
<td data-type="hiddendata">{{site_link}}</td>
</tr>
{{/each}}
</tbody>
@@ -397,6 +407,7 @@
<th data-type="hiddendata">Type string</th>
<th>Language</th>
<th></th>
<th data-type="hiddendata">URL</th>
</tr>
</tfoot>
</table>
@@ -732,6 +743,6 @@
</script>
<script type="text/javascript" src="../libs/api.js?changed=2017083001"></script>
<script type="text/javascript" src="../custom.js?changed=2021103101"></script>
<script type="text/javascript" src="../custom.js?changed=2022011001"></script>
</body>
</html>

View File

@@ -13,27 +13,9 @@ links:
- https://x1337x.ws/
- https://x1337x.eu/
- https://x1337x.se/
- https://1337x.unblockit.tv/
- https://1337x.unblockit.how/
- https://1337x.nocensor.biz/
legacylinks:
- https://1337x.unblocked.earth/
- https://1337x.unblockit.pro/
- https://1337x.unblockit.one/
- https://1337x.black-mirror.xyz/
- https://1337x.unblocked.casa/
- https://1337x.proxyportal.fun/
- https://1337x.uk-unblock.xyz/
- https://1337x.ind-unblock.xyz/
- https://1337x.unblockninja.com/ # 403 Forbidden
- https://1337x.unblockit.me/
- https://1337x.unblockit.pw/
- https://1337x.unblockit.id/
- https://1337x.unblockit.win/
- https://1337x.unblocked.bar/
- https://1337x.proxyportal.pw/
- https://1337x.uk-unblock.pro/
- https://1337x.unblockit.top/
- https://1337x.unblockit.lat/
- https://1337x.unblockit.app/
- https://1337.root.yt/
- https://1337x.unblocked.rest/
@@ -53,6 +35,7 @@ legacylinks:
- https://1337x.nocensor.work/
- https://1337x.unblockit.kim/
- https://1337x.unblockit.bz/
- https://1337x.unblockit.tv/
caps:
categorymappings:

View File

@@ -9,7 +9,6 @@ links:
- https://aither.cc/
caps:
# dont forget to update the case block in the search fields category
categorymappings:
- {id: 1, cat: Movies, desc: "Movie"}
- {id: 9, cat: TV/Sport, desc: "Sport"}
@@ -58,6 +57,16 @@ settings:
desc: desc
asc: asc
login:
path: /api/torrents
method: get
inputs:
api_token: "{{ .Config.apikey }}"
error:
- selector: a[href*="/login"]
message:
text: "The API key was not accepted by {{ .Config.sitelink }}."
search:
paths:
# https://hdinnovations.github.io/UNIT3D-Community-Edition-Docs/api_endpoints.html
@@ -73,19 +82,8 @@ search:
selector: meta.total
fields:
category:
categorydesc:
selector: category
case:
"Movie": 1
"Sport": 9
"TV": 2
"Music": 3
"Games": 4
"Software & Apps": 10
"Ebooks & Magazines": 11
"Audiobooks": 14
"Education": 15
"XXX": 6
title:
selector: name
details:

View File

@@ -1,196 +0,0 @@
---
id: aither
name: Aither
description: "Aither is a Private Torrent Tracker for HD MOVIES / TV"
language: en-US
type: private
encoding: UTF-8
links:
- https://aither.cc/
caps:
categorymappings:
- {id: 1, cat: Movies, desc: "Movie"}
- {id: 9, cat: TV/Sport, desc: "Sport"}
- {id: 2, cat: TV, desc: "TV"}
- {id: 3, cat: Audio, desc: "Music"}
- {id: 4, cat: Console, desc: "Games"}
- {id: 10, cat: PC, desc: "Software & Apps"}
- {id: 11, cat: Books, desc: "Ebooks & Magazines"}
- {id: 14, cat: Audio/Audiobook, desc: "Audiobooks"}
- {id: 15, cat: Other, desc: "Education"}
- {id: 6, cat: XXX, desc: "XXX"}
modes:
search: [q]
tv-search: [q, season, ep, imdbid, tvdbid]
movie-search: [q, imdbid, tmdbid]
music-search: [q]
book-search: [q]
settings:
- name: username
type: text
label: Username
- name: password
type: password
label: Password
- name: freeleech
type: checkbox
label: Search freeleech only
default: false
- name: sort
type: select
label: Sort requested from site
default: created_at
options:
created_at: created
seeders: seeders
size: size
name: title
- name: type
type: select
label: Order requested from site
default: desc
options:
desc: desc
asc: asc
login:
path: login
method: form
form: form[action$="/login"]
inputs:
username: "{{ .Config.username }}"
password: "{{ .Config.password }}"
remember: on
selectorinputs:
_token:
selector: input[name="_token"]
attribute: value
error:
- selector: div#ERROR_COPY
# test:
# path: /
# selector: a[href$="/logout"]
search:
paths:
- path: torrents
inputs:
$raw: "{{ range .Categories }}categories[]={{.}}&{{end}}"
name: "{{ if .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}" # for dashboard imdbid search
description: ""
mediainfo: ""
keywords: ""
uploader: ""
tmdbId: "{{ .Query.TMDBID }}"
imdbId: "{{ .Query.IMDBIDShort }}"
tvdbId: "{{ .Query.TVDBID }}"
malId: ""
startYear: ""
endYear: ""
playlistId: ""
collectionId: ""
sortField: "{{ .Config.sort }}"
sortDirection: "{{ .Config.type }}"
perPage: 100
page: 1
free: "{{ if .Config.freeleech }}1{{ else }}{{ end }}"
rows:
selector: table > tbody > tr
fields:
category:
selector: a[href*="/categories/"]
attribute: href
filters:
- name: regexp
args: "/categories/(\\d+)"
title:
selector: a.view-torrent
download:
selector: a[href*="/download/"]
attribute: href
details:
selector: a.view-torrent
attribute: href
poster:
selector: div.torrent-poster img
attribute: src
filters:
- name: replace
args: ["https://via.placeholder.com/90x135", ""]
- name: replace
args: ["https://via.placeholder.com/400x600", ""]
size:
selector: td:nth-last-child(5)
seeders:
selector: td:nth-last-child(4)
leechers:
selector: td:nth-last-child(3)
grabs:
selector: td:nth-last-child(2)
date:
selector: td:nth-last-child(1)
filters:
# translations for Turkish|Estonian|Danish|Italian|Polish|Norwegian|Portuguese|Czech|Russian|Romanian|Spanish|French|German|Bulgarian|Dutch|Chinese|Japanese|Swedish
- name: re_replace
args: ["(?i)(önce|tagasi|geleden|fa|temu|siden|há|atrás|nazpět|назад|acum|în urmă|hace|il y a|vor|преди|前|sedan)", " ago"]
- name: re_replace
args: ["(?i)(saniye|sekundit|sekunder|secondi|sekund|segundos|sekundami|секунд|secunde|secondes|Sekunden|секунди|seconden|秒前)", "seconds"]
- name: re_replace
args: ["(?i)(minutit|minutter|minuti|minuty|minutos|минуты|минут|Minuten|минути|minuten|minuter)", "minutes"]
- name: re_replace
args: ["(?i)(dakika|minut|minuto|minuta|minutt|минута|Minute|minuut|分钟|分)", " minute"]
- name: re_replace
args: ["(?i)(tundi|timer|ore|godziny|horas|hodiny|hoden|часа|часов|ore|heures|Stunden|timmar)", "hours"]
- name: re_replace
args: ["(?i)(saat|tund|time|ora|godzina|hora|hodina|час|oră|heure|Stunde|uur|小时|時間|timme)", " hour"]
- name: re_replace
args: ["(?i)(päeva|dage|giorni|dni|dias|dny|дня|дней|zile|días|jours|Tagen|дни|dagen|dagar)", "days"]
- name: re_replace
args: ["(?i)(gün|päev|dag|giorno|dzień|dia|den|день|zi|día|jour|Tag|ден|天|日)", " day"]
- name: re_replace
args: ["(?i)(nädalat|uger|settimane|tygodnie|uker|semanas|týdny|недели|недель|săptămâni|semaines|Wochen|седмици|weken|veckor)", "weeks"]
- name: re_replace
args: ["(?i)(hafta|nädal|uge|settimana|tydzień|uke|semana|týden|неделю|săptămână|semaine|Woche|седмица|周|週間|vecka)", " week"]
- name: re_replace
args: ["(?i) (ay)", "month"]
- name: re_replace
args: ["(?i)(kuud|måneder|mesi|miesiące|meses|měsíce|месяца|месяцев|luni|meses|mois|Monaten|месеца|maanden|månader)", "months"]
- name: re_replace
args: ["(?i)(kuu|måned|mese|miesiąc|mês|měsíc|месяц|lună|mes|Monat|месец|maand|个月|ヶ月|månad)", " month"]
- name: re_replace
args: ["(?i)(aastat|anni|lata|anos|roky|года|ani|años|ans|Jahren|години)", " years"]
- name: re_replace
args: ["(?i)(yil|aasta|år|anno|rok|ano|год|año|Jahr|година|jaar|年)", " year"]
- name: re_replace
args: ["(?i) (an)", "year"]
- name: re_replace
args: ["(?i)(För |und)", ""] # Misc removals
- name: timeago
downloadvolumefactor:
case:
i[class*="fa-id-badge text-orange"]: 0 # 24 Hour FreeLeech From BON Store
i[class*="fa-trophy text-purple"]: 0 # Special FreeLeech For Certain User Groups
i[class*="fa-star text-bold"]: 0 # Freeleech From Token
i[class*="fa-coins text-bold"]: 0 # Freeleech From Token
i[class*="fa-globe text-blue"]: 0 # Global Freeleech
i[class*="fa-star text-gold"]: 0 # Freeleech
i[class*="fa-certificate text-pink"]: 0 # Featured Torrent
"*": 1
uploadvolumefactor:
case:
i[class*="fa-gem text-green"]: 2 # Single Torrent Double Upload
i[class*="fa-globe text-green"]: 2 # Global Double Upload
i[class*="fa-certificate text-pink"]: 2 # Featured Torrent
"*": 1
# global MR is 0.4 but torrents must be seeded for 3 days regardless of ratio
# minimumratio:
# text: 0.4
minimumseedtime:
# 3 days (as seconds = 3 x 24 x 60 x 60)
text: 259200
# UNIT3D 5.3.0

View File

@@ -0,0 +1,186 @@
---
id: alleenretail
name: Alleen Retail
description: "Alleen Retail is a DUTCH Private Torrent Tracker for MOVIES / TV / GENERAL"
language: nl-NL
type: private
encoding: UTF-8
links:
- http://www.alleenretail.org/ # does not support https ERR_CONNECTION_REFUSED
caps:
categorymappings:
- {id: 2, cat: Movies/DVD, desc: "Films DVD"}
- {id: 17, cat: Movies, desc: "Films Promo"}
- {id: 3, cat: Audio/Video, desc: "Muziek Video"}
- {id: 4, cat: Audio/Video, desc: "Cabaret"}
- {id: 18, cat: Movies, desc: "Films Kids"}
- {id: 6, cat: TV, desc: "TV Series"}
- {id: 19, cat: Other, desc: "Overigen"}
- {id: 20, cat: TV/Documentary, desc: "Documentaire"}
- {id: 9, cat: PC/Games, desc: "Games PC"}
- {id: 10, cat: Books/Mags, desc: "Magazines"}
- {id: 11, cat: Movies/SD, desc: "Films AVI/DivX"}
- {id: 22, cat: Movies, desc: "Films Classics"}
- {id: 8, cat: Audio, desc: "Muziek"}
- {id: 23, cat: PC/Mac, desc: "Software Mac"}
- {id: 1, cat: Books/Comics, desc: "Stripboeken"}
- {id: 13, cat: PC/Mobile-Android, desc: "Android"}
- {id: 14, cat: PC/Mobile-Other, desc: "Navigatie"}
- {id: 7, cat: PC/0day, desc: "Software PC"}
- {id: 12, cat: PC/Mobile-iOS, desc: "iOS"}
- {id: 21, cat: Movies/HD, desc: "Films HD"}
- {id: 5, cat: Audio/Audiobook, desc: "Luisterboeken"}
- {id: 15, cat: XXX, desc: "18+"}
- {id: 24, cat: Movies/UHD, desc: "Films Blu-ray/3D/4K"}
- {id: 16, cat: Books/EBook, desc: "Ebooks"}
modes:
search: [q]
tv-search: [q, season, ep]
movie-search: [q]
music-search: [q]
book-search: [q]
settings:
- name: username
type: text
label: Username
- name: password
type: password
label: Password
# - name: thankyou
# type: text
# label: Thank You Comment
# - name: info
# type: info
# label: Thank you comment
# default: This site requires you to leave a Thank You comment before you can download. Enter your personalised comment above.
login:
path: takelogin.php
method: post
inputs:
username: "{{ .Config.username }}"
password: "{{ .Config.password }}"
error:
- selector: table.main:contains("Aanmelden mislukt")
test:
path: /
selector: a[href="logout.php"]
# download:
# before:
# # /comment.php?action=add&tid=166386
# path: comment.php
# method: post
# inputs:
# action: add
# tid: "{{ .DownloadUri.Query.id }}"
# text: "{{ .Config.thankyou }}"
# submit: Opslaan
# selectors:
# - selector: a[href^="download.php?id="]
# attribute: href
search:
paths:
- path: browse.php
inputs:
$raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
search: "{{ .Keywords }}"
incldead: 1
# does not support imdbid search and does not return imdb link in results
rows:
selector: table.mainouter
filters:
- name: andmatch
fields:
category:
selector: a[href^="browse.php?cat="]
attribute: href
filters:
- name: querystring
args: cat
title:
selector: a[href^="details.php?id="]
filters:
- name: re_replace
args: ["(?i)seizoen\\s*(\\d{1,2})\\s*(tot|t\/m)\\s*(\\d{1,2})", "S$1-$3"]
- name: re_replace
args: ["(?i)(seizoen\\s*)(\\d{1,2})", "S$2"]
- name: re_replace
args: ["(?i)(afl.\\s*|aflevering\\s*)(\\d{1,2})", "E$2"]
- name: re_replace
args: ["(?i)compleet", "Complete"]
details:
selector: a[href^="details.php?id="]
attribute: href
download:
selector: a[href^="download.php?id="]
attribute: href
size:
selector: a[href^="details_bestanden.php?torrent_id="]
filters:
- name: regexp
args: "(.+?) in"
files:
selector: a[href^="details_bestanden.php?torrent_id="]
filters:
- name: regexp
args: "in (\\d+) bestan"
grabs:
selector: table tr:nth-child(2) td:nth-child(1)
date:
selector: table tr:nth-child(2) td:nth-child(3)
filters:
- name: replace
args: ["januari", "January"]
- name: replace
args: ["februari", "February"]
- name: replace
args: ["maart", "March"]
- name: replace
args: ["april", "April"]
- name: replace
args: ["mei", "May"]
- name: replace
args: ["juni", "June"]
- name: replace
args: ["juli", "July"]
- name: replace
args: ["augustus", "August"]
- name: replace
args: ["september", "September"]
- name: replace
args: ["oktober", "October"]
- name: replace
args: ["november", "November"]
- name: replace
args: ["december", "December"]
- name: re_replace
args: ["\\s*om\\s*", " "]
- name: append
args: " +01:00" # CET
- name: dateparse
args: "2 January 2006 15:04:05 -07:00"
seeders_optional:
optional: true
selector: table tr:nth-child(3) td:nth-child(6) font b
seeders:
text: "{{ if .Result.seeders_optional }}{{ .Result.seeders_optional }}{{ else }}0{{ end }}"
leechers_optional:
optional: true
selector: table tr:nth-child(3) td:nth-child(6) font b:nth-child(2)
leechers:
text: "{{ if .Result.leechers_optional }}{{ .Result.leechers_optional }}{{ else }}0{{ end }}"
downloadvolumefactor:
text: 0
uploadvolumefactor:
text: 1
minimumratio:
# between 1.00 and 1.50 is required, and above 1.50 prohibited
text: 1.25
# engine n/a

View File

@@ -6,6 +6,8 @@ language: ru-RU
type: semi-private
encoding: windows-1251
testlinktorrent: false
certificates:
- 2b49b401259cb893f37de9eff343f7d356b1c2f2 # expired 8 January 2022
links:
- https://anime-free.biz/
legacylinks:

View File

@@ -9,20 +9,22 @@ links:
- https://animeworld.cx/
caps:
# dont forget to update the case block in the search fields category
categorymappings:
- {id: 1, cat: Movies/Other, desc: "Anime Movie"}
- {id: 2, cat: TV/Anime, desc: "Anime Serie"}
- {id: 3, cat: Audio, desc: "Anime Musik/OST"}
- {id: 1, cat: Movies/Other, desc: "Anime Filme"}
- {id: 2, cat: TV/Anime, desc: "Anime Serien"}
- {id: 3, cat: Audio, desc: "Anime Musik / OSTs"}
- {id: 4, cat: PC/Games, desc: "Anime Spiele"}
- {id: 5, cat: XXX, desc: "Hentai"}
- {id: 6, cat: PC, desc: "Spiele Linux"}
- {id: 5, cat: XXX, desc: "Anime Hentai"}
- {id: 6, cat: PC, desc: "Software"}
- {id: 7, cat: Other, desc: "Sonstiges"}
- {id: 8, cat: Movies, desc: "Filme"}
- {id: 9, cat: TV, desc: "Serien"}
- {id: 10, cat: PC/Games, desc: "Spiele"}
- {id: 11, cat: Audio, desc: "Musik"}
- {id: 12, cat: Books, desc: "Mangas"}
- {id: 12, cat: Books, desc: "Manga"}
- {id: 13, cat: Movies, desc: "Cartoon Filme"}
- {id: 14, cat: TV, desc: "Cartoon Serie"}
- {id: 15, cat: XXX, desc: "H-Manga / Doujinshi"}
modes:
search: [q]
@@ -60,6 +62,16 @@ settings:
desc: desc
asc: asc
login:
path: /api/torrents
method: get
inputs:
api_token: "{{ .Config.apikey }}"
error:
- selector: a[href*="/login"]
message:
text: "The API key was not accepted by {{ .Config.sitelink }}."
search:
paths:
# https://hdinnovations.github.io/UNIT3D-Community-Edition-Docs/api_endpoints.html
@@ -75,21 +87,8 @@ search:
selector: meta.total
fields:
category:
categorydesc:
selector: category
case:
"Anime Movie": 1
"Anime Serie": 2
"Anime Musik/OST": 3
"Anime Spiele": 4
"Hentai": 5
"Spiele Linux": 6
"Sonstiges": 7
"Filme": 8
"Serien": 9
"Spiele": 10
"Musik": 11
"Mangas": 12
title:
selector: name
details:

View File

@@ -1,193 +0,0 @@
---
id: animeworld
name: AnimeWorld
description: "AnimeWorld (AW) is a GERMAN Private site for ANIME / MANGA / HENTAI"
language: de-DE
type: private
encoding: UTF-8
links:
- https://animeworld.cx/
caps:
categorymappings:
- {id: 1, cat: Movies/Other, desc: "Anime Movie"}
- {id: 2, cat: TV/Anime, desc: "Anime Serie"}
- {id: 3, cat: Audio, desc: "Anime Musik/OST"}
- {id: 4, cat: PC/Games, desc: "Anime Spiele"}
- {id: 5, cat: XXX, desc: "Hentai"}
- {id: 6, cat: PC, desc: "Spiele Linux"}
- {id: 7, cat: Other, desc: "Sonstiges"}
- {id: 8, cat: Movies, desc: "Filme"}
- {id: 9, cat: TV, desc: "Serien"}
- {id: 10, cat: PC/Games, desc: "Spiele"}
- {id: 11, cat: Audio, desc: "Musik"}
- {id: 12, cat: Books, desc: "Mangas"}
modes:
search: [q]
tv-search: [q, season, ep, imdbid, tvdbid]
movie-search: [q, imdbid, tmdbid]
music-search: [q]
book-search: [q]
settings:
- name: username
type: text
label: Username
- name: password
type: password
label: Password
- name: freeleech
type: checkbox
label: Search freeleech only
default: false
- name: sort
type: select
label: Sort requested from site
default: created_at
options:
created_at: created
seeders: seeders
size: size
name: title
- name: type
type: select
label: Order requested from site
default: desc
options:
desc: desc
asc: asc
login:
path: login
method: form
form: form[action$="/login"]
inputs:
username: "{{ .Config.username }}"
password: "{{ .Config.password }}"
remember: on
selectorinputs:
_token:
selector: input[name="_token"]
attribute: value
error:
- selector: div#ERROR_COPY
# test:
# path: /
# selector: a[href$="/logout"]
search:
paths:
- path: torrents
inputs:
$raw: "{{ range .Categories }}categories[]={{.}}&{{end}}"
name: "{{ if .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}" # for dashboard imdbid search
description: ""
mediainfo: ""
keywords: ""
uploader: ""
tmdbId: "{{ .Query.TMDBID }}"
imdbId: "{{ .Query.IMDBIDShort }}"
tvdbId: "{{ .Query.TVDBID }}"
malId: ""
startYear: ""
endYear: ""
sortField: "{{ .Config.sort }}"
sortDirection: "{{ .Config.type }}"
perPage: 100
page: 1
free: "{{ if .Config.freeleech }}1{{ else }}{{ end }}"
rows:
selector: table > tbody > tr
fields:
category:
selector: a[href*="/categories/"]
attribute: href
filters:
- name: regexp
args: "/categories/(\\d+)"
title:
selector: a.view-torrent
download:
selector: a[href*="/download/"]
attribute: href
details:
selector: a.view-torrent
attribute: href
poster:
selector: div.torrent-poster img
attribute: src
filters:
- name: replace
args: ["https://via.placeholder.com/90x135", ""]
- name: replace
args: ["https://via.placeholder.com/400x600", ""]
size:
selector: td:nth-last-child(5)
seeders:
selector: td:nth-last-child(4)
leechers:
selector: td:nth-last-child(3)
grabs:
selector: td:nth-last-child(2)
date:
selector: td:nth-last-child(1)
filters:
# translations for Turkish|Estonian|Danish|Italian|Polish|Norwegian|Portuguese|Czech|Russian|Romanian|Spanish|French|German|Bulgarian|Dutch|Chinese|Japanese|Swedish
- name: re_replace
args: ["(?i)(önce|tagasi|geleden|fa|temu|siden|há|atrás|nazpět|назад|acum|în urmă|hace|il y a|vor|преди|前|sedan)", " ago"]
- name: re_replace
args: ["(?i)(saniye|sekundit|sekunder|secondi|sekund|segundos|sekundami|секунд|secunde|secondes|Sekunden|секунди|seconden|秒前)", "seconds"]
- name: re_replace
args: ["(?i)(minutit|minutter|minuti|minuty|minutos|минуты|минут|Minuten|минути|minuten|minuter)", "minutes"]
- name: re_replace
args: ["(?i)(dakika|minut|minuto|minuta|minutt|минута|Minute|minuut|分钟|分)", " minute"]
- name: re_replace
args: ["(?i)(tundi|timer|ore|godziny|horas|hodiny|hoden|часа|часов|ore|heures|Stunden|timmar)", "hours"]
- name: re_replace
args: ["(?i)(saat|tund|time|ora|godzina|hora|hodina|час|oră|heure|Stunde|uur|小时|時間|timme)", " hour"]
- name: re_replace
args: ["(?i)(päeva|dage|giorni|dni|dias|dny|дня|дней|zile|días|jours|Tagen|дни|dagen|dagar)", "days"]
- name: re_replace
args: ["(?i)(gün|päev|dag|giorno|dzień|dia|den|день|zi|día|jour|Tag|ден|天|日)", " day"]
- name: re_replace
args: ["(?i)(nädalat|uger|settimane|tygodnie|uker|semanas|týdny|недели|недель|săptămâni|semaines|Wochen|седмици|weken|veckor)", "weeks"]
- name: re_replace
args: ["(?i)(hafta|nädal|uge|settimana|tydzień|uke|semana|týden|неделю|săptămână|semaine|Woche|седмица|周|週間|vecka)", " week"]
- name: re_replace
args: ["(?i) (ay)", "month"]
- name: re_replace
args: ["(?i)(kuud|måneder|mesi|miesiące|meses|měsíce|месяца|месяцев|luni|meses|mois|Monaten|месеца|maanden|månader)", "months"]
- name: re_replace
args: ["(?i)(kuu|måned|mese|miesiąc|mês|měsíc|месяц|lună|mes|Monat|месец|maand|个月|ヶ月|månad)", " month"]
- name: re_replace
args: ["(?i)(aastat|anni|lata|anos|roky|года|ani|años|ans|Jahren|години)", " years"]
- name: re_replace
args: ["(?i)(yil|aasta|år|anno|rok|ano|год|año|Jahr|година|jaar|年)", " year"]
- name: re_replace
args: ["(?i) (an)", "year"]
- name: re_replace
args: ["(?i)(För |und)", ""] # Misc removals
- name: timeago
downloadvolumefactor:
case:
i[class*="fa-id-badge text-orange"]: 0 # 24 Hour FreeLeech From BON Store
i[class*="fa-trophy text-purple"]: 0 # Special FreeLeech For Certain User Groups
i[class*="fa-star text-bold"]: 0 # Freeleech From Token
i[class*="fa-coins text-bold"]: 0 # Freeleech From Token
i[class*="fa-globe text-blue"]: 0 # Global Freeleech
i[class*="fa-star text-gold"]: 0 # Freeleech
i[class*="fa-certificate text-pink"]: 0 # Featured Torrent
"*": 1
uploadvolumefactor:
case:
i[class*="fa-gem text-green"]: 2 # Single Torrent Double Upload
i[class*="fa-globe text-green"]: 2 # Global Double Upload
i[class*="fa-certificate text-pink"]: 2 # Featured Torrent
"*": 1
minimumseedtime:
# 7 day (as seconds = 7 x 24 x 60 x 60)
text: 604800
# UNIT3D 5.3.0

View File

@@ -126,6 +126,8 @@ search:
rows:
selector: table.torrent tr.torrent
filters:
- name: andmatch
fields:
category:

View File

@@ -9,7 +9,7 @@ links:
- http://audiobookbay.nl/ # site forces http, does not support https
- http://audiobookbay.ws/
- http://audiobookbayabb.com/
- https://audiobookbay.unblockit.tv/
- https://audiobookbay.unblockit.how/
legacylinks:
- https://audiobookbay.la/
- https://audiobookbay.unblockit.lat/
@@ -27,6 +27,7 @@ legacylinks:
- http://audiobookbay.net/
- https://audiobookbay.unblockit.kim/
- https://audiobookbay.unblockit.bz/
- https://audiobookbay.unblockit.tv/
caps:
categorymappings:

View File

@@ -101,6 +101,8 @@ search:
rows:
selector: table > tbody#highlighted > tr:has(a[href^="browse.php?cat="])
filters:
- name: andmatch
fields:
category:

View File

@@ -119,8 +119,14 @@ search:
sort: "{{ .Config.sort }}"
type: "{{ .Config.type }}"
keywordsfilters:
- name: re_replace
args: ["(\\w+)", " +$1"] # prepend + to each word
rows:
selector: div.torrentrow:has(a[href^="download.php?torrent="])
filters:
- name: andmatch
fields:
category:

View File

@@ -119,6 +119,8 @@ search:
rows:
selector: table.table-bordered tr:has(a[href^="download.php?torrent="])
filters:
- name: andmatch
fields:
category:

View File

@@ -9,7 +9,6 @@ links:
- https://blutopia.xyz/
caps:
# dont forget to update the case block in the search fields category
categorymappings:
- {id: 1, cat: Movies, desc: "Movie"}
- {id: 2, cat: TV, desc: "TV Show"}
@@ -50,14 +49,33 @@ settings:
desc: desc
asc: asc
login:
path: /api/torrents
method: get
inputs:
api_token: "{{ .Config.apikey }}"
error:
- selector: a[href*="/login"]
message:
text: "The API key was not accepted by {{ .Config.sitelink }}."
search:
paths:
# https://hdinnovations.github.io/UNIT3D-Community-Edition-Docs/api_endpoints.html
# https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php
- path: "/api/torrents/filter?api_token={{ .Config.apikey }}&name={{ if .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}{{ if .Query.TMDBID }}&tmdbId={{ .Query.TMDBID }}{{ else }}{{ end }}{{ if .Query.IMDBIDShort }}&imdbId={{ .Query.IMDBIDShort }}{{ else }}{{ end }}{{ if .Query.TVDBID }}&tvdbId={{ .Query.TVDBID }}{{ else }}{{ end }}&sortField={{ .Config.sort }}&sortDirection={{ .Config.type }}&perPage=100&page=1{{ range .Categories }}&categories[]={{.}}{{end}}{{ if .Config.freeleech }}&free=1{{ else }}{{ end }}"
- path: "/api/torrents/filter"
response:
type: json
attribute: attributes
inputs:
# if we have an id based search, add Season and Episode as query in name for UNIT3D < v6. Else pass S/E Params for UNIT3D >= v6
api_token: "{{ .Config.apikey }}"
name: "{{ .Keywords }}"
$raw: "{{ if .Query.Season }}&seasonNumber={{ .Query.Season }}{{ else }}{{ end }}{{ if .Query.Ep }}&episodeNumber={{ .Query.Ep }}{{ else }}{{ end }}{{ if .Query.TMDBID }}&tmdbId={{ .Query.TMDBID }}{{ else }}{{ end }}{{ if .Query.IMDBIDShort }}&imdbId={{ .Query.IMDBIDShort }}{{ else }}{{ end }}{{ if .Query.TVDBID }}&tvdbId={{ .Query.TVDBID }}{{ else }}{{ end }}{{ range .Categories }}&categories[]={{.}}{{end}}{{ if .Config.freeleech }}&free=1{{ else }}{{ end }}"
sortField: "{{ .Config.sort }}"
sortDirection: "{{ .Config.type }}"
perPage: 100
page: 1
keywordsfilters:
- name: re_replace
@@ -69,13 +87,8 @@ search:
selector: meta.total
fields:
category:
categorydesc:
selector: category
case:
Movie: 1
TV Show: 2
FANRES: 3
Trailer: 5
title:
selector: name
details:
@@ -130,4 +143,4 @@ search:
minimumseedtime:
# 7 day (as seconds = 7 x 24 x 60 x 60)
text: 604800
# json UNIT3D 5.3.1b
# json UNIT3D 6.0.0 beta

View File

@@ -1,195 +0,0 @@
---
id: blutopia
name: Blutopia
description: "Blutopia (BLU) is a Private Torrent Tracker for HD MOVIES / TV"
language: en-US
type: private
encoding: UTF-8
links:
- https://blutopia.xyz/
caps:
categorymappings:
- {id: 1, cat: Movies, desc: "Movie"}
- {id: 2, cat: TV, desc: "TV"}
- {id: 3, cat: Movies/Other, desc: "FANRES"}
- {id: 5, cat: Movies/Other, desc: "Trailer"}
modes:
search: [q]
tv-search: [q, season, ep, imdbid, tvdbid]
movie-search: [q, imdbid, tmdbid]
settings:
- name: username
type: text
label: Username
- name: password
type: password
label: Password
- name: freeleech
type: checkbox
label: Search freeleech only
default: false
- name: sort
type: select
label: Sort requested from site
default: created_at
options:
created_at: created
seeders: seeders
size: size
name: title
- name: type
type: select
label: Order requested from site
default: desc
options:
desc: desc
asc: asc
login:
path: login
method: form
form: form[action$="/login"]
inputs:
username: "{{ .Config.username }}"
password: "{{ .Config.password }}"
remember: on
selectorinputs:
_token:
selector: input[name="_token"]
attribute: value
error:
- selector: div#ERROR_COPY
# test:
# path: /
# selector: a[href$="/logout"]
search:
paths:
- path: torrents
inputs:
$raw: "{{ range .Categories }}categories[]={{.}}&{{end}}"
name: "{{ if .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}" # for dashboard imdbid search
description: ""
mediainfo: ""
keywords: ""
uploader: ""
tmdbId: "{{ .Query.TMDBID }}"
imdbId: "{{ .Query.IMDBIDShort }}"
tvdbId: "{{ .Query.TVDBID }}"
malId: ""
startYear: ""
endYear: ""
playlistId: ""
collectionId: ""
sortField: "{{ .Config.sort }}"
sortDirection: "{{ .Config.type }}"
perPage: 100
page: 1
free: "{{ if .Config.freeleech }}1{{ else }}{{ end }}"
keywordsfilters:
- name: re_replace
args: ["\\.", " "]
rows:
selector: table > tbody > tr
fields:
category:
selector: a[href*="/categories/"]
attribute: href
filters:
- name: regexp
args: "/categories/(\\d+)"
title:
selector: a.view-torrent
download:
selector: a[href*="/download/"]
attribute: href
details:
selector: a.view-torrent
attribute: href
poster:
selector: div.torrent-poster img
attribute: src
filters:
- name: replace
args: ["https://via.placeholder.com/90x135", ""]
- name: replace
args: ["https://via.placeholder.com/400x600", ""]
size:
selector: td:nth-last-child(5)
seeders:
selector: td:nth-last-child(4)
leechers:
selector: td:nth-last-child(3)
grabs:
selector: td:nth-last-child(2)
date:
selector: td:nth-last-child(1)
filters:
# translations for Turkish|Estonian|Danish|Italian|Polish|Norwegian|Portuguese|Czech|Russian|Romanian|Spanish|French|German|Bulgarian|Dutch|Chinese|Japanese|Swedish
- name: re_replace
args: ["(?i)(önce|tagasi|geleden|fa|temu|siden|há|atrás|nazpět|назад|acum|în urmă|hace|il y a|vor|преди|前|sedan)", " ago"]
- name: re_replace
args: ["(?i)(saniye|sekundit|sekunder|secondi|sekund|segundos|sekundami|секунд|secunde|secondes|Sekunden|секунди|seconden|秒前)", "seconds"]
- name: re_replace
args: ["(?i)(minutit|minutter|minuti|minuty|minutos|минуты|минут|Minuten|минути|minuten|minuter)", "minutes"]
- name: re_replace
args: ["(?i)(dakika|minut|minuto|minuta|minutt|минута|Minute|minuut|分钟|分)", " minute"]
- name: re_replace
args: ["(?i)(tundi|timer|ore|godziny|horas|hodiny|hoden|часа|часов|ore|heures|Stunden|timmar)", "hours"]
- name: re_replace
args: ["(?i)(saat|tund|time|ora|godzina|hora|hodina|час|oră|heure|Stunde|uur|小时|時間|timme)", " hour"]
- name: re_replace
args: ["(?i)(päeva|dage|giorni|dni|dias|dny|дня|дней|zile|días|jours|Tagen|дни|dagen|dagar)", "days"]
- name: re_replace
args: ["(?i)(gün|päev|dag|giorno|dzień|dia|den|день|zi|día|jour|Tag|ден|天|日)", " day"]
- name: re_replace
args: ["(?i)(nädalat|uger|settimane|tygodnie|uker|semanas|týdny|недели|недель|săptămâni|semaines|Wochen|седмици|weken|veckor)", "weeks"]
- name: re_replace
args: ["(?i)(hafta|nädal|uge|settimana|tydzień|uke|semana|týden|неделю|săptămână|semaine|Woche|седмица|周|週間|vecka)", " week"]
- name: re_replace
args: ["(?i) (ay)", "month"]
- name: re_replace
args: ["(?i)(kuud|måneder|mesi|miesiące|meses|měsíce|месяца|месяцев|luni|meses|mois|Monaten|месеца|maanden|månader)", "months"]
- name: re_replace
args: ["(?i)(kuu|måned|mese|miesiąc|mês|měsíc|месяц|lună|mes|Monat|месец|maand|个月|ヶ月|månad)", " month"]
- name: re_replace
args: ["(?i)(aastat|anni|lata|anos|roky|года|ani|años|ans|Jahren|години)", " years"]
- name: re_replace
args: ["(?i)(yil|aasta|år|anno|rok|ano|год|año|Jahr|година|jaar|年)", " year"]
- name: re_replace
args: ["(?i) (an)", "year"]
- name: re_replace
args: ["(?i)(För |und)", ""] # Misc removals
- name: timeago
downloadvolumefactor:
case:
span.torrent-listings-global-freeleech: 0
span.torrent-listings-personal-freeleech: 0
span.torrent-listings-freeleech-token: 0
span.torrent-listings-featured: 0
span.torrent-listings-freeleech[data-original-title*="25%"]: 0.75
span.torrent-listings-freeleech[data-original-title*="50%"]: 0.5
span.torrent-listings-freeleech[data-original-title*="75%"]: 0.25
span.torrent-listings-freeleech[data-original-title*="100%"]: 0
span.torrent-listings-special-freeleech: 0
"*": 1
uploadvolumefactor:
case:
span.torrent-listings-global-double-upload: 2
span.torrent-listings-double-upload: 2
span.torrent-listings-featured: 2
span.torrent-listings-special-double-upload: 2
"*": 1
# global MR is 0.4 but torrents must be seeded for 7 days regardless of ratio
# minimumratio:
# text: 0.4
minimumseedtime:
# 7 day (as seconds = 7 x 24 x 60 x 60)
text: 604800
# UNIT3D 5.3.1b

View File

@@ -9,13 +9,12 @@ links:
- https://brsociety.club/
caps:
# dont forget to update the case block in the search fields category
categorymappings:
- {id: 1, cat: TV, desc: "Cursos (courses)"}
- {id: 1, cat: TV, desc: "Cursos"}
- {id: 2, cat: Books/EBook, desc: "eBooks"}
- {id: 5, cat: Books/Mags, desc: "Revistas (Magazines)"}
- {id: 5, cat: Books/Mags, desc: "Revistas"}
- {id: 3, cat: Audio/Audiobook, desc: "Audiobooks"}
- {id: 4, cat: Other, desc: "Arquivos de Auxilio (Help Files)"}
- {id: 4, cat: Other, desc: "Arquivos de Auxilio"}
modes:
search: [q]
@@ -51,6 +50,16 @@ settings:
desc: desc
asc: asc
login:
path: /api/torrents
method: get
inputs:
api_token: "{{ .Config.apikey }}"
error:
- selector: a[href*="/login"]
message:
text: "The API key was not accepted by {{ .Config.sitelink }}."
search:
paths:
# https://hdinnovations.github.io/UNIT3D-Community-Edition-Docs/api_endpoints.html
@@ -66,14 +75,8 @@ search:
selector: meta.total
fields:
category:
categorydesc:
selector: category
case:
"Cursos": 1
"eBooks": 2
"Revistas": 5
"Audiobooks": 3
"Arquivos de Auxilio": 4
title:
selector: name
details:

View File

@@ -1,183 +0,0 @@
---
id: brsociety
name: BrSociety
description: "BrSociety (SemeandoCC) is a BRAZILIAN Private Torrent Tracker for E-LEARNING"
language: pt-BR
type: private
encoding: UTF-8
links:
- https://brsociety.club/
caps:
categorymappings:
- {id: 1, cat: TV, desc: "Cursos (courses)"}
- {id: 2, cat: Books/EBook, desc: "eBooks"}
- {id: 5, cat: Books/Mags, desc: "Revistas (Magazines)"}
- {id: 3, cat: Audio/Audiobook, desc: "Audiobooks"}
- {id: 4, cat: Other, desc: "Arquivos de Auxilio (Help Files)"}
modes:
search: [q]
tv-search: [q]
book-search: [q]
settings:
- name: username
type: text
label: Username
- name: password
type: password
label: Password
- name: freeleech
type: checkbox
label: Search freeleech only
default: false
- name: sort
type: select
label: Sort requested from site
default: created_at
options:
created_at: created
seeders: seeders
size: size
name: title
- name: type
type: select
label: Order requested from site
default: desc
options:
desc: desc
asc: asc
login:
path: login
method: form
form: form[action$="/login"]
inputs:
username: "{{ .Config.username }}"
password: "{{ .Config.password }}"
remember: on
selectorinputs:
_token:
selector: input[name="_token"]
attribute: value
error:
- selector: div#ERROR_COPY
# test:
# path: /
# selector: a[href$="/logout"]
search:
paths:
- path: torrents
inputs:
$raw: "{{ range .Categories }}categories[]={{.}}&{{end}}"
name: "{{ .Keywords }}"
description: ""
mediainfo: ""
keywords: ""
uploader: ""
sortField: "{{ .Config.sort }}"
sortDirection: "{{ .Config.type }}"
perPage: 100
page: 1
free: "{{ if .Config.freeleech }}1{{ else }}{{ end }}"
rows:
selector: table > tbody > tr
fields:
category:
selector: a[href*="/categories/"]
attribute: href
filters:
- name: regexp
args: "/categories/(\\d+)"
title:
selector: a.view-torrent
download:
selector: a[href*="/download_check/"]
attribute: href
filters:
- name: replace
args: ["download_check", "download"]
details:
selector: a.view-torrent
attribute: href
poster:
selector: div.torrent-poster img
attribute: src
filters:
- name: replace
args: ["https://via.placeholder.com/90x135", ""]
- name: replace
args: ["https://via.placeholder.com/400x600", ""]
size:
selector: td:nth-last-child(5)
seeders:
selector: td:nth-last-child(4)
leechers:
selector: td:nth-last-child(3)
grabs:
selector: td:nth-last-child(2)
date:
selector: td:nth-last-child(1)
filters:
# translations for Turkish|Estonian|Danish|Italian|Polish|Norwegian|Portuguese|Czech|Russian|Romanian|Spanish|French|German|Bulgarian|Dutch|Chinese|Japanese|Swedish
- name: re_replace
args: ["(?i)(önce|tagasi|geleden|fa|temu|siden|há|atrás|nazpět|назад|acum|în urmă|hace|il y a|vor|преди|前|sedan)", " ago"]
- name: re_replace
args: ["(?i)(saniye|sekundit|sekunder|secondi|sekund|segundos|sekundami|секунд|secunde|secondes|Sekunden|секунди|seconden|秒前)", "seconds"]
- name: re_replace
args: ["(?i)(minutit|minutter|minuti|minuty|minutos|минуты|минут|Minuten|минути|minuten|minuter)", "minutes"]
- name: re_replace
args: ["(?i)(dakika|minut|minuto|minuta|minutt|минута|Minute|minuut|分钟|分)", " minute"]
- name: re_replace
args: ["(?i)(tundi|timer|ore|godziny|horas|hodiny|hoden|часа|часов|ore|heures|Stunden|timmar)", "hours"]
- name: re_replace
args: ["(?i)(saat|tund|time|ora|godzina|hora|hodina|час|oră|heure|Stunde|uur|小时|時間|timme)", " hour"]
- name: re_replace
args: ["(?i)(päeva|dage|giorni|dni|dias|dny|дня|дней|zile|días|jours|Tagen|дни|dagen|dagar)", "days"]
- name: re_replace
args: ["(?i)(gün|päev|dag|giorno|dzień|dia|den|день|zi|día|jour|Tag|ден|天|日)", " day"]
- name: re_replace
args: ["(?i)(nädalat|uger|settimane|tygodnie|uker|semanas|týdny|недели|недель|săptămâni|semaines|Wochen|седмици|weken|veckor)", "weeks"]
- name: re_replace
args: ["(?i)(hafta|nädal|uge|settimana|tydzień|uke|semana|týden|неделю|săptămână|semaine|Woche|седмица|周|週間|vecka)", " week"]
- name: re_replace
args: ["(?i) (ay)", "month"]
- name: re_replace
args: ["(?i)(kuud|måneder|mesi|miesiące|meses|měsíce|месяца|месяцев|luni|meses|mois|Monaten|месеца|maanden|månader)", "months"]
- name: re_replace
args: ["(?i)(kuu|måned|mese|miesiąc|mês|měsíc|месяц|lună|mes|Monat|месец|maand|个月|ヶ月|månad)", " month"]
- name: re_replace
args: ["(?i)(aastat|anni|lata|anos|roky|года|ani|años|ans|Jahren|години)", " years"]
- name: re_replace
args: ["(?i)(yil|aasta|år|anno|rok|ano|год|año|Jahr|година|jaar|年)", " year"]
- name: re_replace
args: ["(?i) (an)", "year"]
- name: re_replace
args: ["(?i)(För |und)", ""] # Misc removals
- name: timeago
downloadvolumefactor:
case:
i[class*="fa-id-badge text-orange"]: 0 # 24 Hour FreeLeech From BON Store
i[class*="fa-trophy text-purple"]: 0 # Special FreeLeech For Certain User Groups
i[class*="fa-star text-bold"]: 0 # Freeleech From Token
i[class*="fa-coins text-bold"]: 0 # Freeleech From Token
i[class*="fa-globe text-blue"]: 0 # Global Freeleech
i[class*="fa-star text-gold"]: 0 # Freeleech
i[class*="fa-certificate text-pink"]: 0 # Featured Torrent
"*": 1
uploadvolumefactor:
case:
i[class*="fa-gem text-green"]: 2 # Single Torrent Double Upload
i[class*="fa-globe text-green"]: 2 # Global Double Upload
i[class*="fa-certificate text-pink"]: 2 # Featured Torrent
"*": 1
minimumratio:
text: 1.0
minimumseedtime:
# 5 days (as seconds = 5 x 24 x 60 x 60)
text: 432000
# UNIT3D 5.3.0

View File

@@ -55,17 +55,17 @@ settings:
default: false
- name: sort
type: select
label: Sort requested from site (Only works for searches with Keywords)
default: ?trie-date-d
label: Sort requested from site (Works only for searches with Keywords)
default: trie-date-d
options:
?trie-date-d: created desc
?trie-date-a: created asc
?trie-seeds-d: seeders desc
?trie-seeds-a: seeders asc
?trie-poid-d: size desc
?trie-poid-a: size asc
?trie-nom-d: title desc
?trie-nom-a: title asc
trie-date-d: created desc
trie-date-a: created asc
trie-seeds-d: seeders desc
trie-seeds-a: seeders asc
trie-poid-d: size desc
trie-poid-a: size asc
trie-nom-d: title desc
trie-nom-a: title asc
download:
selectors:
@@ -74,7 +74,7 @@ download:
search:
paths:
- path: "{{ if .Keywords }}search_torrent/{{ .Keywords }}{{ .Config.sort }}{{ else }}home/{{ end }}"
- path: "{{ if .Keywords }}search_torrent/{{ .Keywords }}.html,{{ .Config.sort }}{{ else }}home/{{ end }}"
rows:
selector: table.table-corps > tbody > tr:has(a)

View File

@@ -12,9 +12,8 @@ legacylinks:
- https://datascene.net/
caps:
# dont forget to update the case block in the search fields category
categorymappings:
- {id: 1, cat: Movies, desc: "Movies"}
- {id: 1, cat: Movies, desc: "Movie"}
- {id: 2, cat: TV, desc: "TV"}
- {id: 3, cat: Audio, desc: "Music"}
- {id: 4, cat: PC/Games, desc: "Game"}
@@ -59,6 +58,16 @@ settings:
desc: desc
asc: asc
login:
path: /api/torrents
method: get
inputs:
api_token: "{{ .Config.apikey }}"
error:
- selector: a[href*="/login"]
message:
text: "The API key was not accepted by {{ .Config.sitelink }}."
search:
paths:
# https://hdinnovations.github.io/UNIT3D-Community-Edition-Docs/api_endpoints.html
@@ -74,17 +83,8 @@ search:
selector: meta.total
fields:
category:
categorydesc:
selector: category
case:
"Movie": 1
"TV": 2
"Music": 3
"Game": 4
"Application": 5
"XXX": 6
"Mobile": 7
"E-Book": 8
title:
selector: name
details:

View File

@@ -1,197 +0,0 @@
---
id: datascene
name: DataScene
description: "DataScene (DS) is a ROMANIAN Private Torrent Tracker for MOVIES / TV / GENERAL"
language: en-US
type: private
encoding: UTF-8
links:
- https://datascene.xyz/
legacylinks:
- http://datascene.net/
- https://datascene.net/
caps:
categorymappings:
- {id: 1, cat: Movies, desc: "Movies"}
- {id: 2, cat: TV, desc: "TV"}
- {id: 3, cat: Audio, desc: "Music"}
- {id: 4, cat: PC/Games, desc: "Game"}
- {id: 5, cat: PC/0day, desc: "Application"}
- {id: 6, cat: XXX, desc: "XXX"}
- {id: 7, cat: PC/Mobile-Other, desc: "Mobile"}
- {id: 8, cat: Books/EBook, desc: "E-Book"}
modes:
search: [q]
tv-search: [q, season, ep, imdbid, tvdbid]
movie-search: [q, imdbid, tmdbid]
music-search: [q]
book-search: [q]
settings:
- name: username
type: text
label: Username
- name: password
type: password
label: Password
- name: freeleech
type: checkbox
label: Search freeleech only
default: false
- name: sort
type: select
label: Sort requested from site
default: created_at
options:
created_at: created
seeders: seeders
size: size
name: title
- name: type
type: select
label: Order requested from site
default: desc
options:
desc: desc
asc: asc
login:
path: login
method: form
form: form[action$="/login"]
inputs:
username: "{{ .Config.username }}"
password: "{{ .Config.password }}"
remember: on
selectorinputs:
_token:
selector: input[name="_token"]
attribute: value
error:
- selector: div#ERROR_COPY
# test:
# path: /
# selector: a[href$="/logout"]
search:
paths:
- path: torrents
inputs:
$raw: "{{ range .Categories }}categories[]={{.}}&{{end}}"
name: "{{ if .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}" # for dashboard imdbid search
description: ""
mediainfo: ""
keywords: ""
uploader: ""
tmdbId: "{{ .Query.TMDBID }}"
imdbId: "{{ .Query.IMDBIDShort }}"
tvdbId: "{{ .Query.TVDBID }}"
malId: ""
startYear: ""
endYear: ""
playlistId: ""
collectionId: ""
sortField: "{{ .Config.sort }}"
sortDirection: "{{ .Config.type }}"
perPage: 100
page: 1
free: "{{ if .Config.freeleech }}1{{ else }}{{ end }}"
rows:
selector: table > tbody > tr
fields:
category:
selector: a[href*="/categories/"]
attribute: href
filters:
- name: regexp
args: "/categories/(\\d+)"
title:
selector: a.view-torrent
download:
selector: a[href*="/download/"]
attribute: href
details:
selector: a.view-torrent
attribute: href
poster:
selector: div.torrent-poster img
attribute: src
filters:
- name: replace
args: ["https://via.placeholder.com/90x135", ""]
- name: replace
args: ["https://via.placeholder.com/400x600", ""]
size:
selector: td:nth-last-child(4)
seeders:
selector: td:nth-last-child(3)
leechers:
selector: td:nth-last-child(2)
grabs:
selector: td:nth-last-child(1)
date:
selector: td:has(a.view-torrent) spam:last-child span:last-child
remove: a
filters:
# translations for Turkish|Estonian|Danish|Italian|Polish|Norwegian|Portuguese|Czech|Russian|Romanian|Spanish|French|German|Bulgarian|Dutch|Chinese|Japanese|Swedish
- name: re_replace
args: ["(?i)(önce|tagasi|geleden|fa|temu|siden|há|atrás|nazpět|назад|acum|în urmă|hace|il y a|vor|преди|前|sedan)", " ago"]
- name: re_replace
args: ["(?i)(saniye|sekundit|sekunder|secondi|sekund|segundos|sekundami|секунд|secunde|secondes|Sekunden|секунди|seconden|秒前)", "seconds"]
- name: re_replace
args: ["(?i)(minutit|minutter|minuti|minuty|minutos|минуты|минут|Minuten|минути|minuten|minuter)", "minutes"]
- name: re_replace
args: ["(?i)(dakika|minut|minuto|minuta|minutt|минута|Minute|minuut|分钟|分)", " minute"]
- name: re_replace
args: ["(?i)(tundi|timer|ore|godziny|horas|hodiny|hoden|часа|часов|ore|heures|Stunden|timmar)", "hours"]
- name: re_replace
args: ["(?i)(saat|tund|time|ora|godzina|hora|hodina|час|oră|heure|Stunde|uur|小时|時間|timme)", " hour"]
- name: re_replace
args: ["(?i)(päeva|dage|giorni|dni|dias|dny|дня|дней|zile|días|jours|Tagen|дни|dagen|dagar)", "days"]
- name: re_replace
args: ["(?i)(gün|päev|dag|giorno|dzień|dia|den|день|zi|día|jour|Tag|ден|天|日)", " day"]
- name: re_replace
args: ["(?i)(nädalat|uger|settimane|tygodnie|uker|semanas|týdny|недели|недель|săptămâni|semaines|Wochen|седмици|weken|veckor)", "weeks"]
- name: re_replace
args: ["(?i)(hafta|nädal|uge|settimana|tydzień|uke|semana|týden|неделю|săptămână|semaine|Woche|седмица|周|週間|vecka)", " week"]
- name: re_replace
args: ["(?i) (ay)", "month"]
- name: re_replace
args: ["(?i)(kuud|måneder|mesi|miesiące|meses|měsíce|месяца|месяцев|luni|meses|mois|Monaten|месеца|maanden|månader)", "months"]
- name: re_replace
args: ["(?i)(kuu|måned|mese|miesiąc|mês|měsíc|месяц|lună|mes|Monat|месец|maand|个月|ヶ月|månad)", " month"]
- name: re_replace
args: ["(?i)(aastat|anni|lata|anos|roky|года|ani|años|ans|Jahren|години)", " years"]
- name: re_replace
args: ["(?i)(yil|aasta|år|anno|rok|ano|год|año|Jahr|година|jaar|年)", " year"]
- name: re_replace
args: ["(?i) (an)", "year"]
- name: re_replace
args: ["(?i)(För |und)", ""] # Misc removals
- name: timeago
downloadvolumefactor:
case:
# i[class*="fa-id-badge text-orange"]: 0 # 24 Hour FreeLeech From BON Store
# i[class*="fa-trophy text-purple"]: 0 # Special FreeLeech For Certain User Groups
# i[class*="fa-star text-bold"]: 0 # Freeleech From Token
# i[class*="fa-coins text-bold"]: 0 # Freeleech From Token
i[class*="fa-trophy data-toggle"]: 0 # Global Freeleech
# i[class*="fa-star text-gold"]: 0 # Freeleech
# i[class*="fa-certificate text-pink"]: 0 # Featured Torrent
"*": 1
uploadvolumefactor:
case:
i[class*="fa-angle-double-up"]: 2 # Single Torrent Double Upload
# i[class*="fa-globe text-green"]: 2 # Global Double Upload
# i[class*="fa-certificate text-pink"]: 2 # Featured Torrent
"*": 1
minimumratio:
text: 1.0
minimumseedtime:
# 3 days (as seconds = 3 x 24 x 60 x 60)
text: 259200
# UNIT3D 5.3.0 (custom)

View File

@@ -1,7 +1,7 @@
---
id: demonoid
name: Demonoid
description: "Demonoid is a Public torrent site for MOVIES / TV / GENERAL"
description: "Demonoid is a Semi-Private torrent site for MOVIES / TV / GENERAL"
language: en-US
type: semi-private
encoding: UTF-8
@@ -11,19 +11,10 @@ links:
- https://www.dnoid.to/
- https://www.dnoid.pw/
- https://demonoidevmsgasmojajlhikwetsr4pxzw6xkjt3dgdv6nr5yxvsamid.onion.ly/
- https://demonoid.unblockit.tv/
- https://demonoid.unblockit.how/
- https://demonoid.torrentbay.to/
- https://demonoid.nocensor.biz/
legacylinks:
- https://demonoid.unblockit.pro/
- https://demonoid.unblockit.one/
- https://demonoid.unblockit.me/
- https://dnoid.black-mirror.xyz/
- https://dnoid.unblocked.casa/
- https://dnoid.proxyportal.fun/
- https://dnoid.uk-unblock.xyz/
- https://dnoid.ind-unblock.xyz/
- https://demonoid.unblockit.pw/
- https://demonoid.unblockit.id/
- https://demonoid.unblockit.win/
- https://demonoid.unblockit.top/
@@ -43,6 +34,7 @@ legacylinks:
- https://demonoid.nocensor.work/
- https://demonoid.unblockit.kim/
- https://demonoid.unblockit.bz/
- https://demonoid.unblockit.tv/
caps:
categorymappings:
@@ -357,10 +349,10 @@ search:
rows:
# only the default theme "Demonoid - v5" is supported
selector: table.table:has(td.torrent__table-today) > tbody > tr:has(td[class^="tone_"])
selector: table.table tbody tr.table__row:has(td[class*="tone_"])
after: 1
dateheaders:
selector: tr td.torrent__table-today:not(:contains("Sponsored links"))
selector: tr td.table__separator:not(:contains("Sponsored links"))
filters:
- name: replace
args: ["Added ", ""]
@@ -368,27 +360,30 @@ search:
args: ["on ", ""]
fields:
title_default:
selector: a[href^="/files/details/"]
title_optional:
selector: a[href^="/files/details/"]
optional: true
attribute: title
title:
text: "{{ if .Result.title_optional }}{{ .Result.title_optional }}{{ else }}{{ .Result.title_default }}{{ end }}"
category:
selector: span.torrent__table-info > a:nth-child(2)
selector: span.table__column__subtext > a:nth-child(2)
attribute: href
optional: true
filters:
- name: querystring
args: subcategory
title:
selector: a[href^="/files/details/"]
details:
selector: a[href^="/files/details/"]
attribute: href
download:
selector: a[href^="/files/details/"]
attribute: href
poster:
selector: div[title]
attribute: data-bs-content
filters:
- name: regexp
args: src='(.+?)'
imdbid:
selector: a[href*="imdb.com/title/tt"]
attribute: href
description:
selector: td:nth-last-child(7)
size:

View File

@@ -10,7 +10,6 @@ links:
- https://desitorrents.rocks/
caps:
# dont forget to update the case block in the search fields category
categorymappings:
- {id: 1, cat: Movies, desc: "Movies"}
- {id: 2, cat: TV, desc: "TV"}
@@ -51,6 +50,16 @@ settings:
desc: desc
asc: asc
login:
path: /api/torrents
method: get
inputs:
api_token: "{{ .Config.apikey }}"
error:
- selector: a[href*="/login"]
message:
text: "The API key was not accepted by {{ .Config.sitelink }}."
search:
paths:
# https://hdinnovations.github.io/UNIT3D-Community-Edition-Docs/api_endpoints.html
@@ -70,12 +79,8 @@ search:
selector: meta.total
fields:
category:
categorydesc:
selector: category
case:
Movies: 1
TV: 2
Music: 3
title:
selector: name
details:

View File

@@ -1,187 +0,0 @@
---
id: desitorrents
name: DesiTorrents
description: "Desitorrents is a Private Torrent Tracker for BOLLYWOOD / TOLLYWOOD / MUSIC"
language: en-US
type: private
encoding: UTF-8
links:
- https://desitorrents.tv/
- https://desitorrents.rocks/
caps:
categorymappings:
- {id: 1, cat: Movies, desc: "Movies"}
- {id: 2, cat: TV, desc: "TV"}
- {id: 3, cat: Audio, desc: "Music"}
modes:
search: [q]
tv-search: [q, season, ep, imdbid, tvdbid]
movie-search: [q, imdbid, tmdbid]
music-search: [q]
settings:
- name: username
type: text
label: Username
- name: password
type: password
label: Password
- name: freeleech
type: checkbox
label: Search freeleech only
default: false
- name: sort
type: select
label: Sort requested from site
default: created_at
options:
created_at: created
seeders: seeders
size: size
name: title
- name: type
type: select
label: Order requested from site
default: desc
options:
desc: desc
asc: asc
login:
path: login
method: form
form: form[action$="/login"]
inputs:
username: "{{ .Config.username }}"
password: "{{ .Config.password }}"
remember: on
selectorinputs:
_token:
selector: input[name="_token"]
attribute: value
error:
- selector: div#ERROR_COPY
# test:
# path: /
# selector: a[href$="/logout"]
search:
paths:
- path: torrents
inputs:
$raw: "{{ range .Categories }}categories[]={{.}}&{{end}}"
name: "{{ if .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}" # for dashboard imdbid search
description: ""
mediainfo: ""
keywords: ""
uploader: ""
tmdbId: "{{ .Query.TMDBID }}"
imdbId: "{{ .Query.IMDBIDShort }}"
tvdbId: "{{ .Query.TVDBID }}"
malId: ""
startYear: ""
endYear: ""
playlistId: ""
collectionId: ""
sortField: "{{ .Config.sort }}"
sortDirection: "{{ .Config.type }}"
perPage: 100
page: 1
free: "{{ if .Config.freeleech }}1{{ else }}{{ end }}"
rows:
selector: table > tbody > tr:has(a[href*="/download/"])
fields:
category:
selector: a[href*="/categories/"]
attribute: href
filters:
- name: regexp
args: "/categories/(\\d+)"
title:
selector: td div a
download:
selector: a[href*="/download/"]
attribute: href
details:
selector: td div a
attribute: href
poster:
selector: div img
attribute: src
filters:
- name: replace
args: ["https://via.placeholder.com/90x135", ""]
- name: replace
args: ["https://via.placeholder.com/400x600", ""]
size:
selector: td:nth-last-child(6)
seeders:
selector: td:nth-last-child(5)
leechers:
selector: td:nth-last-child(4)
grabs:
selector: td:nth-last-child(3)
date:
selector: td:nth-last-child(2)
filters:
# translations for Turkish|Estonian|Danish|Italian|Polish|Norwegian|Portuguese|Czech|Russian|Romanian|Spanish|French|German|Bulgarian|Dutch|Chinese|Japanese|Swedish
- name: re_replace
args: ["(?i)(önce|tagasi|geleden|fa|temu|siden|há|atrás|nazpět|назад|acum|în urmă|hace|il y a|vor|преди|前|sedan)", " ago"]
- name: re_replace
args: ["(?i)(saniye|sekundit|sekunder|secondi|sekund|segundos|sekundami|секунд|secunde|secondes|Sekunden|секунди|seconden|秒前)", "seconds"]
- name: re_replace
args: ["(?i)(minutit|minutter|minuti|minuty|minutos|минуты|минут|Minuten|минути|minuten|minuter)", "minutes"]
- name: re_replace
args: ["(?i)(dakika|minut|minuto|minuta|minutt|минута|Minute|minuut|分钟|分)", " minute"]
- name: re_replace
args: ["(?i)(tundi|timer|ore|godziny|horas|hodiny|hoden|часа|часов|ore|heures|Stunden|timmar)", "hours"]
- name: re_replace
args: ["(?i)(saat|tund|time|ora|godzina|hora|hodina|час|oră|heure|Stunde|uur|小时|時間|timme)", " hour"]
- name: re_replace
args: ["(?i)(päeva|dage|giorni|dni|dias|dny|дня|дней|zile|días|jours|Tagen|дни|dagen|dagar)", "days"]
- name: re_replace
args: ["(?i)(gün|päev|dag|giorno|dzień|dia|den|день|zi|día|jour|Tag|ден|天|日)", " day"]
- name: re_replace
args: ["(?i)(nädalat|uger|settimane|tygodnie|uker|semanas|týdny|недели|недель|săptămâni|semaines|Wochen|седмици|weken|veckor)", "weeks"]
- name: re_replace
args: ["(?i)(hafta|nädal|uge|settimana|tydzień|uke|semana|týden|неделю|săptămână|semaine|Woche|седмица|周|週間|vecka)", " week"]
- name: re_replace
args: ["(?i) (ay)", "month"]
- name: re_replace
args: ["(?i)(kuud|måneder|mesi|miesiące|meses|měsíce|месяца|месяцев|luni|meses|mois|Monaten|месеца|maanden|månader)", "months"]
- name: re_replace
args: ["(?i)(kuu|måned|mese|miesiąc|mês|měsíc|месяц|lună|mes|Monat|месец|maand|个月|ヶ月|månad)", " month"]
- name: re_replace
args: ["(?i)(aastat|anni|lata|anos|roky|года|ani|años|ans|Jahren|години)", " years"]
- name: re_replace
args: ["(?i)(yil|aasta|år|anno|rok|ano|год|año|Jahr|година|jaar|年)", " year"]
- name: re_replace
args: ["(?i) (an)", "year"]
- name: re_replace
args: ["(?i)(För |und)", ""] # Misc removals
- name: timeago
downloadvolumefactor:
case:
i[class*="fa-id-badge"]: 0 # 24 Hour FreeLeech From BON Store
i[class*="fa-trophy"]: 0 # Special FreeLeech For Certain User Groups
i[class*="fa-coins"]: 0 # Freeleech From Token
i[class*="fa-globe"]: 0 # Global Freeleech
i[class*="fa-star"]: 0 # Freeleech
i[class*="fa-certificate"]: 0 # Featured Torrent
"*": 1
uploadvolumefactor:
case:
i[class*="fa-gem"]: 2 # Single Torrent Double Upload
i[class*="fa-globe"]: 2 # Global Double Upload
i[class*="fa-certificate"]: 2 # Featured Torrent
"*": 1
minimumratio:
text: 1.0
minimumseedtime:
# 7 day (as seconds = 7 x 24 x 60 x 60)
text: 604800
# UNIT3D 5.3.0 (custom)

View File

@@ -14,6 +14,7 @@ caps:
- {id: 2, cat: Movies/SD, desc: Movies/SD}
- {id: 3, cat: Movies/BluRay, desc: Movies/BluRay}
- {id: 4, cat: Movies/UHD, desc: Movies/4K}
- {id: 38, cat: Movies/UHD, desc: Movies/UHD}
- {id: 5, cat: Movies/HD, desc: Movies/720p}
- {id: 6, cat: Movies/HD, desc: Movies/1080p}
- {id: 7, cat: Movies/HD, desc: Movies/PACKS}
@@ -33,6 +34,8 @@ caps:
- {id: 23, cat: Audio/Lossless, desc: Music/FLAC}
- {id: 24, cat: Audio/Video, desc: Music/MTV}
- {id: 29, cat: Audio, desc: Music/PACKS}
- {id: 39, cat: Audio/Video, desc: Music/DVD}
- {id: 40, cat: Audio/Video, desc: Music/Bluray}
- {id: 25, cat: PC/Games, desc: Games/PC}
- {id: 26, cat: Console, desc: Games/NSW}
- {id: 27, cat: PC/Mac, desc: Games/Mac}
@@ -44,6 +47,7 @@ caps:
- {id: 36, cat: XXX, desc: XXX/Movies/HD}
- {id: 37, cat: XXX/UHD, desc: XXX/Movies/4K}
- {id: 34, cat: XXX/ImageSet, desc: XXX/Imagesets}
- {id: 41, cat: XXX, desc: XXX/PACKS}
modes:
search: [q]

View File

@@ -15,8 +15,10 @@ caps:
- {id: 64, cat: Books/EBook, desc: "Books"}
- {id: 66, cat: Books, desc: "Business"}
- {id: 68, cat: Books/Comics, desc: "Comics"}
- {id: 80, cat: Books, desc: "Coooking"}
- {id: 59, cat: TV/Documentary, desc: "Docs/Movies"}
- {id: 60, cat: TV/Documentary, desc: "Docs/TV"}
- {id: 79, cat: TV, desc: "Educational"}
- {id: 71, cat: Other, desc: "Fonts"}
- {id: 72, cat: Books, desc: "IT Books"}
- {id: 57, cat: Books/Mags, desc: "Magazine"}

View File

@@ -242,8 +242,8 @@ caps:
- {id: 307, cat: Books/Other, desc: "VIP: Thriller"}
- {id: 306, cat: Books/Other, desc: "VIP: Mystery"}
- {id: 308, cat: Books/Other, desc: "VIP: Crime"}
- {id: 309, cat: Books/Other, desc: "VIP: Fantasy "}
- {id: 204, cat: Books/Other, desc: "VIP: Collections "}
- {id: 309, cat: Books/Other, desc: "VIP: Fantasy"}
- {id: 204, cat: Books/Other, desc: "VIP: Collections"}
- {id: 205, cat: Books/Other, desc: "VIP: Audiobooks"}
- {id: 206, cat: Books/Other, desc: "VIP: Comics"}
- {id: 207, cat: Books/Other, desc: "VIP: Computers"}
@@ -274,6 +274,10 @@ settings:
type: checkbox
label: Search freeleech only
default: false
- name: vip
type: checkbox
label: Include VIP results
default: true
- name: sort
type: select
label: Sort requested from site
@@ -316,10 +320,9 @@ search:
paths:
- path: torrents-search.php
inputs:
$raw: "{{ range .Categories }}filter_cat[{{.}}]=1&{{end}}"
search: "{{ if .Keywords }}\"{{ .Keywords }}\"{{ else }}{{ end }}"
# 0 only active 1 incl dead 2 only dead
incldead: 0
incldead: 1
# 0 all 1 not freeleech 2 only freeleech
freeleech: "{{ if .Config.freeleech }}2{{ else }}0{{ end }}"
# 0 all 1 english 2 french 3 german 4 italian 5 japanese 6 spanish 7 russian 8 other
@@ -328,7 +331,7 @@ search:
order: "{{ .Config.type }}"
rows:
selector: tr.t-row
selector: "tr.t-row{{ if .Config.vip }}{{ else }}:not(:has(a[href^=\"torrents.php?cat=\"]):contains(\"VIP\")){{ end }}"
fields:
category:

View File

@@ -155,6 +155,8 @@ search:
rows:
selector: tr[id^="tor_"]:has(a[href^="./dl.php?id="])
filters:
- name: andmatch
fields:
title:

View File

@@ -9,32 +9,13 @@ followredirect: true
links:
- https://www.ettvcentral.com/
- https://ettv.unblockninja.com/
- https://ettv.unblockit.tv/
- https://ettv.unblockit.how/
- https://ettv.nocensor.biz/
legacylinks:
- https://www.ettv.tv/
- https://www.ettv.to/
- https://ettv.unblockit.pro/
- https://ettv.unblockit.one/
- https://ettv.black-mirror.xyz/
- https://ettv.unblocked.casa/
- https://ettv.proxyportal.fun/
- https://ettv.uk-unblock.xyz/
- https://ettv.ind-unblock.xyz/
- https://ettv.unblockit.me/
- https://ettv.unblockit.pw/
- https://ettv.unblockit.id/
- https://ettv.unblockit.win/
- https://www.ettvdl.com/
- https://ettv.unblocked.bar/
- https://ettv.proxyportal.pw/
- https://ettv.uk-unblock.pro/
- https://ettv.root.yt/
- https://www.ettv.be/
- https://ettv.unblockit.top/
- https://ettv.unblockit.lat/
- https://ettv.unblockit.app/
- https://ettv.unblocked.rest/
- https://ettv.unblockit.dev/
- https://ettv.unblockit.ltd/
- https://ettv.unblockit.link/
@@ -50,6 +31,7 @@ legacylinks:
- https://ettv.nocensor.work/
- https://ettv.unblockit.kim/
- https://ettv.unblockit.bz/
- https://ettv.unblockit.tv/
caps:
categorymappings:

View File

@@ -7,12 +7,13 @@ type: public
encoding: UTF-8
links:
- https://extratorrent.st/
- https://extratorrent.unblockit.tv/
- https://extratorrent.unblockit.how/
- https://extratorrent.nocensor.biz/
legacylinks:
- https://extratorrent.nocensor.work/
- https://extratorrent.unblockit.kim/
- https://extratorrent.unblockit.bz/
- https://extratorrent.unblockit.tv/
caps:
categorymappings:

View File

@@ -78,6 +78,8 @@ download:
text: "{{ .Config.thankyou }}"
submit: Opslaan
selectors:
- selector: a[href^="downloadv1.php?id="]
attribute: href
- selector: a[href^="download.php?id="]
attribute: href

View File

@@ -12,32 +12,13 @@ links:
- https://eztv.tf/
- https://eztv.yt/
- https://eztv.unblockninja.com/
- https://eztv.unblockit.tv/
- https://eztv.unblockit.how/
- https://eztv.nocensor.biz/
legacylinks:
- https://eztv.ag/ # redirects to .re
- https://eztv.it/ # redirects to .re
- https://eztv.ch/ # redirects to .re
- https://eztv.unblockit.pro/
- https://eztv.unblockit.one/
- https://eztv.black-mirror.xyz/
- https://eztv.unblocked.casa/
- https://eztv.proxyportal.fun/
- https://eztv.uk-unblock.xyz/
- https://eztv.ind-unblock.xyz/
- https://eztv.unblockit.me/
- https://eztv.unblockit.pw/
- https://eztv.unblockit.id/
- https://eztv.unblockit.win/
- https://eztv.unblocked.bar/
- https://eztv.proxyportal.pw/
- https://eztv.uk-unblock.pro/
- https://eztv.unblockit.top/
- https://eztv.unblockit.lat/
- https://eztv.io/
- https://eztv.unblockit.app/
- https://eztv.root.yt/
- https://eztv.unblocked.rest/
- https://eztv.unblockit.dev/
- https://eztv.unblockit.ltd/
- https://eztv.unblockit.link/
@@ -53,6 +34,7 @@ legacylinks:
- https://eztv.nocensor.work/
- https://eztv.unblockit.kim/
- https://eztv.unblockit.bz/
- https://eztv.unblockit.tv/
caps:
categories:

View File

@@ -98,6 +98,8 @@ search:
rows:
selector: table.main > tbody > tr:has(a[href^="/lataa.php/"])
filters:
- name: andmatch
fields:
category:

View File

@@ -22,6 +22,7 @@ caps:
- {id: 21, cat: Movies/HD, desc: "Leffat HD (movies)"}
- {id: 32, cat: Movies/DVD, desc: "Custom DVD (movies)"}
- {id: 42, cat: Movies, desc: "FVC"}
- {id: 48, cat: Movies/UHD, desc: "Leffat 4K (movies)"}
- {id: 15, cat: Audio, desc: "Musiikki (music)"}
- {id: 12, cat: Audio/Video, desc: "Musavideot (clips)"}
- {id: 7, cat: PC/0day, desc: "Ohjelmat Windows (apps)"}

View File

@@ -9,27 +9,11 @@ followredirect: true
links:
- https://glodls.to/
- https://www.gtdb.to/
- https://glotorrents.unblockit.tv/
- https://glotorrents.unblockit.how/
- https://glotorrents.nocensor.biz/
legacylinks:
- https://glodls.rocks/
- https://glotorrents.unblockit.pro/
- https://glotorrents.unblockit.one/
- https://glodls.black-mirror.xyz/
- https://glodls.unblocked.casa/
- https://glodls.proxyportal.fun/
- https://glodls.uk-unblock.xyz/
- https://glodls.ind-unblock.xyz/
- https://glotorrents.unblockit.me/
- https://glotorrents.unblockit.pw/
- https://glotorrents.unblockit.id/
- https://glotorrents.unblockit.win/
- https://glodls.unblocked.bar/
- https://glodls.proxyportal.pw/
- https://glodls.uk-unblock.pro/
- https://gtdb.to/
- https://glotorrents.unblockit.top/
- https://glotorrents.unblockit.lat/
- https://glotorrents.unblockit.app/
- https://glodls.unblocked.rest/
- https://glotorrents.unblockit.dev/
@@ -47,6 +31,7 @@ legacylinks:
- https://glotorrents.nocensor.work/
- https://glotorrents.unblockit.kim/
- https://glotorrents.unblockit.bz/
- https://glotorrents.unblockit.tv/
caps:
categorymappings:

View File

@@ -0,0 +1,124 @@
---
id: hawke-uno
name: hawke-uno
description: "hawke-uno is a Private Torrent Tracker for (X265 / HEVC) MOVIES / TV"
language: en-US
type: private
encoding: UTF-8
links:
- https://www.hawke.uno/
caps:
categorymappings:
- {id: 1, cat: Movies, desc: "Movie"}
- {id: 2, cat: TV, desc: "TV"}
modes:
search: [q]
tv-search: [q, season, ep, imdbid, tvdbid]
movie-search: [q, imdbid, tmdbid]
settings:
- name: apikey
type: text
label: APIKey
- name: info_key
type: info
label: About your API key
default: "Find or Generate a new API Token by accessing your <a href=\"https://www.hawke.uno/\" target =_blank>hawke-uno</a> account <i>My Security</i> page and clicking on the <b>API Token</b> tab."
- name: freeleech
type: checkbox
label: Search freeleech only
default: false
- name: sort
type: select
label: Sort requested from site
default: created_at
options:
created_at: created
seeders: seeders
size: size
name: title
- name: type
type: select
label: Order requested from site
default: desc
options:
desc: desc
asc: asc
login:
path: /api/torrents
method: get
inputs:
api_token: "{{ .Config.apikey }}"
error:
- selector: a[href*="/login"]
message:
text: "The API key was not accepted by {{ .Config.sitelink }}."
search:
paths:
# https://hdinnovations.github.io/UNIT3D-Community-Edition-Docs/api_endpoints.html
# https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php
- path: "/api/torrents/filter?api_token={{ .Config.apikey }}&name={{ if .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}{{ if .Query.TMDBID }}&tmdbId={{ .Query.TMDBID }}{{ else }}{{ end }}{{ if .Query.IMDBIDShort }}&imdbId={{ .Query.IMDBIDShort }}{{ else }}{{ end }}{{ if .Query.TVDBID }}&tvdbId={{ .Query.TVDBID }}{{ else }}{{ end }}&sortField={{ .Config.sort }}&sortDirection={{ .Config.type }}&perPage=100&page=1{{ range .Categories }}&categories[]={{.}}{{end}}{{ if .Config.freeleech }}&free=1{{ else }}{{ end }}"
response:
type: json
attribute: attributes
rows:
selector: data
count:
selector: meta.total
fields:
categorydesc:
selector: category
title:
selector: name
details:
selector: details_link
download:
selector: download_link
poster:
selector: poster
imdbid:
selector: imdb_id
filters:
- name: replace
args: ["https://via.placeholder.com/90x135", ""]
tmdbid:
selector: tmdb_id
tvdbid:
selector: tvdb_id
files:
selector: num_file
seeders:
selector: seeders
leechers:
selector: leechers
grabs:
selector: times_completed
date:
# 2021-10-18T00:34:50.000000Z"
selector: created_at
size:
selector: size
downloadvolumefactor:
# api returns 0=false, 1=true
selector: freeleech
case:
0: 1 # not free
1: 0 # freeleech
uploadvolumefactor:
# api returns 0=false, 1=true
selector: double_upload
case:
0: 1 # normal
1: 2 # double
# minimumratio:
# text: 0.4
# minimumseedtime:
# 5 days (as seconds = 5 x 24 x 60 x 60)
# text: 432000
# json UNIT3D 5.3.0

View File

@@ -0,0 +1,173 @@
---
id: hdolimpo-api
name: HD-Olimpo (API)
description: "HD-Olimpo is a SPANISH site for HD content"
language: es-ES
type: private
encoding: UTF-8
links:
- https://hd-olimpo.club/
legacylinks:
- https://hdolimpo.co/
caps:
categorymappings:
- {id: 1, cat: Movies, desc: "Películas"}
- {id: 2, cat: TV, desc: "Series"}
- {id: 3, cat: Audio, desc: "Música"}
- {id: 4, cat: TV/Documentary, desc: "Documentales"}
modes:
search: [q]
tv-search: [q, season, ep, imdbid, tvdbid]
movie-search: [q, imdbid, tmdbid]
music-search: [q]
book-search: [q]
settings:
- name: apikey
type: text
label: APIKey
- name: info_key
type: info
label: About your API key
default: "Find or Generate a new API Token by accessing your account <i>My configuration / Mi configuración => Secutiy / Seguridad</i> page and clicking on the <b>API Token</b> tab."
- name: freeleech
type: checkbox
label: Search freeleech only
default: false
- name: sort
type: select
label: Sort requested from site
default: created_at
options:
created_at: created
seeders: seeders
size: size
name: title
- name: type
type: select
label: Order requested from site
default: desc
options:
desc: desc
asc: asc
login:
path: /api/torrents
method: get
inputs:
api_token: "{{ .Config.apikey }}"
error:
- selector: a[href*="/login"]
search:
paths:
# https://hdinnovations.github.io/UNIT3D-Community-Edition-Docs/api_endpoints.html
# https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php
- path: "/api/torrents/filter?api_token={{ .Config.apikey }}&name={{ if .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}{{ if .Query.TMDBID }}&tmdbId={{ .Query.TMDBID }}{{ else }}{{ end }}{{ if .Query.IMDBIDShort }}&imdbId={{ .Query.IMDBIDShort }}{{ else }}{{ end }}{{ if .Query.TVDBID }}&tvdbId={{ .Query.TVDBID }}{{ else }}{{ end }}&sortField={{ .Config.sort }}&sortDirection={{ .Config.type }}&perPage=100&page=1{{ range .Categories }}&categories[]={{.}}{{end}}{{ if .Config.freeleech }}&free=1{{ else }}{{ end }}"
response:
type: json
attribute: attributes
rows:
selector: data
count:
selector: meta.total
fields:
categorydesc:
selector: category
title:
selector: name
filters:
- name: re_replace
args: ["\\[", " "]
- name: re_replace
args: ["\\]", " "]
- name: re_replace
args: ["(?i)(full(bluray)?)", "BRDISK"] # FULL(BR/UHD) -> BRDISK
- name: replace
args: ["HDOlimpo", ""] # Delete HDOlimpo
- name: replace
args: ["HD-Olimpo", ""] # Delete HD-Olimpo
- name: replace
args: ["E-AC-3", "EAC3"]
- name: re_replace
args: ["[ -](?i)español[ -]", " SPANiSH "]
- name: re_replace
args: ["[ -](?i)castellano[ -]", " SPANiSH "]
- name: re_replace
args: ["[ -](?i)spa[ -]", " SPANiSH "]
- name: re_replace
args: ["[ -](?i)esp[ -]", " SPANiSH "]
- name: re_replace
args: ["[ -](?i)ingl[eé]s[ -]", " English "]
- name: re_replace
args: ["[ -](?i)[ei]ng[ -]", " English "]
- name: re_replace
args: ["[ -](?i)cat[ -]", " Catalan "]
- name: re_replace
args: ["[ -](?i)vas[ -]", " Basque "]
- name: re_replace
args: ["[ -](?i)fr[ae][ -]", " French "]
- name: re_replace
args: ["[ -](?i)jap[ -]", " Japanese "]
- name: re_replace
args: ["[ -](?i)ita[ -]", " Italian "]
- name: re_replace
args: ["[ -](?i)rus[ -]", " Russian "]
- name: re_replace
args: ["[ -](?i)ger[ -]", " German "]
- name: re_replace
args: ["(?i)(triaudio)", "MULTi/SPANiSH/English"]
- name: re_replace
args: ["(?i)(dual)", " MULTi/SPANiSH "]
- name: re_replace
args: ["\\.+", "."] # More than 1 dot -> .
- name: re_replace
args: ["^\\.", ""] # Delete first dot
- name: re_replace
args: ["\\s+", " "] # More than 1 space to 1 space
details:
selector: details_link
download:
selector: download_link
poster:
selector: poster
imdbid:
selector: imdb_id
tmdbid:
selector: tmdb_id
tvdbid:
selector: tvdb_id
files:
selector: num_file
seeders:
selector: seeders
leechers:
selector: leechers
grabs:
selector: times_completed
date:
# 2021-10-18T00:34:50.000000Z"
selector: created_at
size:
selector: size
downloadvolumefactor:
# api returns 0=false, 1=true
selector: freeleech
case:
0: 1 # not free
1: 0 # freeleech
uploadvolumefactor:
# api returns 0=false, 1=true
selector: double_upload
case:
0: 1 # normal
1: 2 # double
minimumseedtime:
# 4 days (as seconds = 4 x 24 x 60 x 60)
text: 345600
# json UNIT3D ???

View File

@@ -1,244 +0,0 @@
---
id: hdolimpo
name: HD-Olimpo
description: "HD-Olimpo is a SPANISH site for HD content"
language: es-ES
type: private
encoding: UTF-8
links:
- https://hd-olimpo.club/
legacylinks:
- https://hdolimpo.co/
caps:
categorymappings:
- {id: 1, cat: Movies, desc: "Movies"}
- {id: 2, cat: TV, desc: "TV"}
- {id: 3, cat: Audio, desc: "Music"}
- {id: 4, cat: TV/Documentary, desc: "Documentaries"}
modes:
search: [q]
tv-search: [q, season, ep, imdbid, tvdbid]
movie-search: [q, imdbid, tmdbid]
settings:
- name: username
type: text
label: Username
- name: password
type: password
label: Password
- name: freeleech
type: checkbox
label: Search freeleech only
default: false
- name: sort
type: select
label: Sort requested from site
default: created_at
options:
created_at: created
seeders: seeders
size: size
name: title
- name: type
type: select
label: Order requested from site
default: desc
options:
desc: desc
asc: asc
login:
path: login
method: form
form: form[action$="/login"]
inputs:
username: "{{ .Config.username }}"
password: "{{ .Config.password }}"
remember: on
selectorinputs:
_token:
selector: input[name="_token"]
attribute: value
error:
- selector: div#ERROR_COPY
# test:
# path: /
# selector: a[href$="/logout"]
search:
paths:
- path: torrents/filter
inputs:
$raw: "{{ range .Categories }}categories[]={{.}}&{{end}}"
search: "{{ if .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}" # for dashboard imdbid search
description: ""
keywords: ""
uploader: ""
imdb: "{{ .Query.IMDBIDShort }}"
tvdb: "{{ .Query.TVDBID }}"
tmdb: "{{ .Query.TMDBID }}"
mal: ""
igdb: ""
sorting: "{{ .Config.sort }}"
direction: "{{ .Config.type }}"
qty: 100
page: 0
view: list
freeleech: "{{ if .Config.freeleech }}1{{ else }}{{ end }}"
rows:
selector: table > tbody > tr
fields:
category:
selector: a[href*="/categories/"]
attribute: href
filters:
- name: regexp
args: "/categories/(\\d+)"
title:
selector: a.view-torrent
filters:
- name: re_replace
args: ["\\[", " "]
- name: re_replace
args: ["\\]", " "]
- name: re_replace
args: ["(?i)(full(bluray)?)", "BRDISK"] # FULL(BR/UHD) -> BRDISK
- name: replace
args: ["HDOlimpo", ""] # Delete HDOlimpo
- name: replace
args: ["HD-Olimpo", ""] # Delete HD-Olimpo
- name: replace
args: ["E-AC-3", "EAC3"]
- name: re_replace
args: ["[ -](?i)español[ -]", " SPANiSH "]
- name: re_replace
args: ["[ -](?i)castellano[ -]", " SPANiSH "]
- name: re_replace
args: ["[ -](?i)spa[ -]", " SPANiSH "]
- name: re_replace
args: ["[ -](?i)esp[ -]", " SPANiSH "]
- name: re_replace
args: ["[ -](?i)ingl[eé]s[ -]", " English "]
- name: re_replace
args: ["[ -](?i)[ei]ng[ -]", " English "]
- name: re_replace
args: ["[ -](?i)cat[ -]", " Catalan "]
- name: re_replace
args: ["[ -](?i)vas[ -]", " Basque "]
- name: re_replace
args: ["[ -](?i)fr[ae][ -]", " French "]
- name: re_replace
args: ["[ -](?i)jap[ -]", " Japanese "]
- name: re_replace
args: ["[ -](?i)ita[ -]", " Italian "]
- name: re_replace
args: ["[ -](?i)rus[ -]", " Russian "]
- name: re_replace
args: ["[ -](?i)ger[ -]", " German "]
- name: re_replace
args: ["(?i)(triaudio)", "MULTi/SPANiSH/English"]
- name: re_replace
args: ["(?i)(dual)", " MULTi/SPANiSH "]
- name: re_replace
args: ["\\.+", "."] # More than 1 dot -> .
- name: re_replace
args: ["^\\.", ""] # Delete first dot
- name: re_replace
args: ["\\s+", " "] # More than 1 space to 1 space
download:
selector: a[href*="/download/"]
attribute: href
details:
selector: a.view-torrent
attribute: href
poster:
selector: div.torrent-poster img
attribute: src
filters:
- name: prepend
args: "https://images.weserv.nl/?url=" # for display on dashboard
- name: append
args: "&w=180&h=270" # for display on dashboard
- name: replace
args: ["https://images.weserv.nl/?url=https://via.placeholder.com/600x900&w=180&h=270", ""]
size:
selector: td:nth-last-child(4)
seeders:
selector: td:nth-last-child(3)
leechers:
selector: td:nth-last-child(2)
grabs:
selector: td:nth-last-child(1)
imdbid:
selector: a[href*="imdb.com/title/tt"]
attribute: href
tmdbid:
selector: a[href*="themoviedb.org/movie/"]
attribute: href
date:
selector: time
filters:
# translations for Turkish|Estonian|Danish|Italian|Polish|Norwegian|Portuguese|Czech|Russian|Romanian|Spanish|French|German|Bulgarian|Dutch|Chinese|Japanese|Swedish
- name: re_replace
args: ["(?i)(önce|tagasi|geleden|fa|temu|siden|há|atrás|nazpět|назад|acum|în urmă|hace|il y a|vor|преди|前|sedan)", " ago"]
- name: re_replace
args: ["(?i)(saniye|sekundit|sekunder|secondi|sekund|segundos|sekundami|секунд|secunde|secondes|Sekunden|секунди|seconden|秒前)", "seconds"]
- name: re_replace
args: ["(?i)(minutit|minutter|minuti|minuty|minutos|минуты|минут|Minuten|минути|minuten|minuter)", "minutes"]
- name: re_replace
args: ["(?i)(dakika|minut|minuto|minuta|minutt|минута|Minute|minuut|分钟|分)", " minute"]
- name: re_replace
args: ["(?i)(tundi|timer|ore|godziny|horas|hodiny|hoden|часа|часов|ore|heures|Stunden|timmar)", "hours"]
- name: re_replace
args: ["(?i)(saat|tund|time|ora|godzina|hora|hodina|час|oră|heure|Stunde|uur|小时|時間|timme)", " hour"]
- name: re_replace
args: ["(?i)(päeva|dage|giorni|dni|dias|dny|дня|дней|zile|días|jours|Tagen|дни|dagen|dagar)", "days"]
- name: re_replace
args: ["(?i)(gün|päev|dag|giorno|dzień|dia|den|день|zi|día|jour|Tag|ден|天|日)", " day"]
- name: re_replace
args: ["(?i)(nädalat|uger|settimane|tygodnie|uker|semanas|týdny|недели|недель|săptămâni|semaines|Wochen|седмици|weken|veckor)", "weeks"]
- name: re_replace
args: ["(?i)(hafta|nädal|uge|settimana|tydzień|uke|semana|týden|неделю|săptămână|semaine|Woche|седмица|周|週間|vecka)", " week"]
- name: re_replace
args: ["(?i) (ay)", "month"]
- name: re_replace
args: ["(?i)(kuud|måneder|mesi|miesiące|meses|měsíce|месяца|месяцев|luni|meses|mois|Monaten|месеца|maanden|månader)", "months"]
- name: re_replace
args: ["(?i)(kuu|måned|mese|miesiąc|mês|měsíc|месяц|lună|mes|Monat|месец|maand|个月|ヶ月|månad)", " month"]
- name: re_replace
args: ["(?i)(aastat|anni|lata|anos|roky|года|ani|años|ans|Jahren|години)", " years"]
- name: re_replace
args: ["(?i)(yil|aasta|år|anno|rok|ano|год|año|Jahr|година|jaar|年)", " year"]
- name: re_replace
args: ["(?i) (an)", "year"]
- name: re_replace
args: ["(?i)(För |und)", ""] # Misc removals
- name: timeago
downloadvolumefactor:
case:
i[class*="fa-id-badge text-orange"]: 0 # 24 Hour FreeLeech From BON Store
i[class*="fa-trophy text-purple"]: 0 # Special FreeLeech For Certain User Groups
i[class*="fa-star text-bold"]: 0 # Freeleech From Token
i[class*="fa-coins text-bold"]: 0 # Freeleech From Token
i[class*="fa-globe text-blue"]: 0 # Global Freeleech
i[class*="fas fa-star text-gold"]: 0 # Freeleech
i[class*="fal fa-star text-gold"]: 0.5 # 50% Freeleech
i[class*="fa-certificate text-pink"]: 0 # Featured Torrent
"*": 1
uploadvolumefactor:
case:
i[class*="fa-gem text-green"]: 2 # Single Torrent Double Upload
i[class*="fa-globe text-green"]: 2 # Global Double Upload
i[class*="fa-certificate text-pink"]: 2 # Featured Torrent
"*": 1
minimumseedtime:
# 4 days (as seconds = 4 x 24 x 60 x 60)
text: 345600
# UNIT3D 2.4.0

View File

@@ -9,6 +9,8 @@ links:
- https://pt.upxin.net/
legacylinks:
- http://pt.upxin.net/
certificates:
- d52ca3e97d730541d8f81452185e4481225f3a2d # expired 06/Jan/2022
caps:
categorymappings:

View File

@@ -68,7 +68,8 @@ search:
search: "{{ .Keywords }}"
incldead: 1
polish: 0
blah: 0
# 0 both, 1 name, 2 desc
blah: 1
rows:
selector: table#line > tbody > tr:has(a[href^="details.php?id="])

View File

@@ -143,6 +143,10 @@ settings:
options:
desc: desc
asc: asc
- name: info_results
type: info
label: Search results
default: "If you are getting <b>0 results</b> then access the site with your browser and <b>mark as read</b> all PMs."
login:
path: takelogin.php

View File

@@ -9,7 +9,7 @@ followredirect: true
# changes to this indexer should also be made to limetorrentsclone
links:
- https://www.limetorrents.pro/
- https://limetorrents.unblockit.tv/
- https://limetorrents.unblockit.how/
- https://limetorrents.unblockninja.com/
- https://limetorrents.nocensor.biz/
legacylinks:
@@ -17,27 +17,6 @@ legacylinks:
- https://www.limetorrents.cc/
- https://www.limetorrents.me/
- https://www.limetorrents.zone/ # redirects to .info
- https://limetorrents.unblockit.pro/
- https://limetorrents.unblockit.one/
- https://limetorrents.black-mirror.xyz/
- https://limetorrents.unblocked.casa/
- https://limetorrents.proxyportal.fun/
- https://limetorrents.uk-unblock.xyz/
- https://limetorrents.ind-unblock.xyz/
- https://limetorrents.unblocked.bar/
- https://limetorrents.proxyportal.pw/
- https://limetorrents.uk-unblock.pro/
- https://limetorrents.unblockit.me/
- https://limetorrents.unblockit.pw/
- https://limetorrents.unblockit.id/
- https://limetorrents.unblockit.win/
- https://limetorrents.unblockit.top/
- https://limetorrents.unblockit.lat/
- https://limetorrents.unblockit.app/
- https://limetorrents.unblockit.dev/
- https://limetorrents.unblockit.ltd/
- https://limetorrents.unblockit.link/
- https://limetorrents.unblockit.buzz/
- https://limetorrents.unblockit.club/
- https://limetorrents.unblockit.onl/
- https://www.limetorrents.info/
@@ -53,6 +32,7 @@ legacylinks:
- https://limetorrents.nocensor.work/
- https://limetorrents.unblockit.kim/
- https://limetorrents.unblockit.bz/
- https://limetorrents.unblockit.tv/
caps:
categorymappings:

View File

@@ -1,9 +1,9 @@
---
id: moviesite
name: Moviesite
description: "Moviesite is a HUNGARIAN private tracker for MOVIES / TV / GENERAL"
description: "Moviesite is a HUNGARIAN Semi-Private tracker for MOVIES / TV / GENERAL"
language: hu-HU
type: private
type: semi-private
encoding: ISO-8859-2
links:
- http://moviesite.info.hu/ # does not support https ERR_CONNECTION_REFUSED

View File

@@ -1,142 +0,0 @@
---
id: oncesearch
name: OnceSearch
description: "OnceSearch is a Public Torrent Tracker for 3X"
language: en-US
type: public
encoding: UTF-8
links:
- http://oncesearch.com/ # https is not supported
caps:
categories:
Amateur: XXX
Anal: XXX
Anime: XXX
Asian: XXX
Ass Lick: XXX
BBW: XXX
BDSM: XXX
Bi-Sexual: XXX
Big Ass: XXX
Big Butts: XXX
Big Dick: XXX
Big Tits: XXX
Blonde: XXX
Blowjob: XXX
Brunette: XXX
Busty: XXX
Classic: XXX
Comics: XXX
Creampie: XXX
Cumshot: XXX
Deepthroat: XXX
Ebony: XXX
Erotic: XXX
Facial: XXX
Fetish: XXX
Fishnets: XXX
Fisting: XXX
Foot: XXX
Foreign: XXX
Gangbang: XXX
Gay: XXX
Glamour Girls: XXX
Gonzo: XXX
Group Sex: XXX
Hairy: XXX
Handjob: XXX
Hardcore: XXX
Homemade: XXX
Interracial: XXX
Latin: XXX
Lesbian: XXX
Lingerie: XXX
Massage: XXX
Masturbation: XXX
Mature: XXX
MILF: XXX
Nude Photography: XXX
Nylons: XXX
Oiled: XXX
Oral: XXX
Orgy: XXX
Outdoor: XXX
Pissing: XXX
Pregnant: XXX
Public: XXX
Redhead: XXX
Retro: XXX
Sex Toys: XXX
Shemale: XXX
Solo: XXX
Squirt: XXX
Tattoo: XXX
Teen: XXX
Threesome: XXX
Uncensored: XXX
XXX: XXX
Porno Clips: XXX
Porno HD Movies: XXX
Porno Other: XXX
Porno Pics: XXX
modes:
search: [q]
settings: []
search:
paths:
# http://oncesearch.com/search/advanced/-/Olivia%20Sin%20Deep/0/any
# http://oncesearch.com/category/latest-torrents
# site supports only single cat search so we default to all
- path: "{{ if .Keywords }}search/advanced/-/{{ .Keywords }}/0/any{{ else }}category/latest-torrents{{ end }}"
rows:
selector: table.table-striped > tbody > tr
filters:
- name: andmatch
fields:
category:
text: XXX
category|noappend:
optional: true
selector: p > a:last-of-type
title:
selector: span
details:
selector: a[href^="/details/"]
attribute: href
download:
selector: a[href^="/file/"][title="Download Torrent"]
attribute: href
optional: true
magnet:
selector: a[href^="magnet:?xt="]
attribute: href
optional: true
date:
selector: td:nth-child(3)
filters:
- name: timeago
files_optional:
selector: td:nth-child(4)
optional: true
files:
text: "{{ if .Result.files_optional }}{{ .Result.files_optional }}{{ else }}1{{ end }}"
size_optional:
selector: td:nth-child(5)
optional: true
size:
text: "{{ if .Result.size_optional }}{{ .Result.size_optional }}{{ else }}256 MB{{ end }}"
seeders:
text: 1
leechers:
text: 0
downloadvolumefactor:
text: 0
uploadvolumefactor:
text: 1
# engine n/a

View File

@@ -30,12 +30,13 @@ caps:
music-search: [q, artist]
settings:
- name: username
- name: cookie
type: text
label: Username
- name: password
type: password
label: Password
label: Cookie
- name: info
type: info
label: How to get the Cookie
default: "<ol><li>Login to this tracker with your browser<li>Open the <b>DevTools</b> panel by pressing <b>F12</b><li>Select the <b>Network</b> tab<li>Click on the <b>Doc</b> button (Chrome Browser) or <b>HTML</b> button (FireFox)<li>Refresh the page by pressing <b>F5</b><li>Click on the first row entry<li>Select the <b>Headers</b> tab on the Right panel<li>Find <b>'cookie:'</b> in the <b>Request Headers</b> section<li><b>Select</b> and <b>Copy</b> the whole cookie string <i>(everything after 'cookie: ')</i> and <b>Paste</b> here.</ol>"
- name: freeleech
type: checkbox
label: Search freeleech only
@@ -62,23 +63,9 @@ settings:
asc: asc
login:
path: login.php
method: form
form: form[action="takelogin.php"]
captcha:
type: image
selector: img[alt="CAPTCHA"]
input: imagestring
method: cookie
inputs:
username: "{{ .Config.username }}"
password: "{{ .Config.password }}"
logout: ""
securelogin: ""
ssl: yes
trackerssl: yes
error:
- selector: td.embedded:has(h2:contains("失敗"))
- selector: td.embedded:has(h2:contains("failed!"))
cookie: "{{ .Config.cookie }}"
test:
path: index.php
selector: a[href="logout.php"]

View File

@@ -8,30 +8,13 @@ encoding: UTF-8
followredirect: true
links:
- https://www.oxtorrent.be/
- https://oxtorrent.unblockit.tv/
- https://oxtorrent.unblockit.how/
- https://oxtorrent.nocensor.biz/
legacylinks:
- https://wwv.oxtorrent.com/
- https://www.smartorrent.tv/
- https://oxtorrent.black-mirror.xyz/
- https://oxtorrent.unblocked.casa/
- https://oxtrorrent.proxyportal.fun/
- https://oxtorrent.uk-unblock.xyz/
- https://oxtorrent.ind-unblock.xyz/
- https://www.oxtorrent.com/
- https://www.oxtorrent.pw/
- https://oxtorrent.unblocked.bar/
- https://oxtorrent.proxyportal.pw/
- https://oxtorrent.uk-unblock.pro/
- https://oxtorrent.unblocked.rest/
- https://www.oxtorrent.cc/
- https://www.oxtorrent.bz/
- https://www.oxtorrent.ws/
- https://wvw.oxtorrent.ws/
- https://oxtorrent.unblocked.monster/
- https://www.oxtorrent.tv/
- https://www.oxtorrent.ph/
- https://wvw.oxtorrent.pe/
- https://www.oxtorrent.pe/
- https://www.oxtorrent.co/
- https://oxtorrent.unblockit.uno/
@@ -47,6 +30,7 @@ legacylinks:
- https://www.oxtorrent.pl/
- https://oxtorrent.unblockit.bz/
- https://www.oxtorrent.vc/
- https://oxtorrent.unblockit.tv/
caps:
categorymappings:

View File

@@ -1,9 +1,9 @@
---
id: pier720
name: 720pier
description: "720pier is a RUSSIAN Private Torrent Tracker for HD SPORTS"
description: "720pier is a RUSSIAN Semi-Private Torrent Tracker for HD SPORTS"
language: ru-RU
type: private
type: semi-private
encoding: UTF-8
links:
- https://720pier.ru/

View File

@@ -9,12 +9,9 @@ followredirect: true
links:
- https://pirateiro.com/
- https://pirateiro.eu/
- https://pirateiro.unblockit.tv/
- https://pirateiro.unblockit.how/
legacylinks:
- http://pirateiro.com/
- https://pirateiro.unblockit.pro/
- https://pirateiro.unblockit.one/
- https://pirateiro.unblockit.me/
- https://pirateiro.unblockit.pw/
- https://pirateiro.unblockit.id/
- https://pirateiro.unblockit.win/
@@ -33,6 +30,7 @@ legacylinks:
- https://pirateiro.unblockit.ws/
- https://pirateiro.unblockit.kim/
- https://pirateiro.unblockit.bz/
- https://pirateiro.unblockit.tv/
caps:
categorymappings:

View File

@@ -145,16 +145,12 @@ search:
filters:
- name: append
args: "Language: polish\n<br>"
- name: prepend
args: "{{ .Result.description }}"
subbed:
optional: true
selector: img[src="pic/napisy.png"]
filters:
- name: append
args: "Subbed\n<br>"
- name: prepend
args: "{{ .Result.description }}"
description:
text: "{{ .Result.genre }}{{ .Result.language }}{{ .Result.subbed }}"
imdbid:

View File

@@ -1,224 +0,0 @@
---
id: pornorip
name: PornoRip
description: "PornoRip is a RUSSIAN Public Torrent Tracker for 3X"
language: ru-RU
type: public
encoding: UTF-8
links:
- https://www.pornorip.biz/
caps:
categorymappings:
- {id: 1, cat: XXX, desc: "Порно Трекер / XXX Torrent Tracker"}
- {id: 2, cat: XXX, desc: "Зарубежные порнофильмы / Pornofilms"}
- {id: 29, cat: XXX, desc: "Зарубежные порнофильмы / Pornofilms Гонзо-фильмы / Gonzo & All Sex"}
- {id: 30, cat: XXX, desc: "Зарубежные порнофильмы / Pornofilms Фильмы с сюжетом / Feature"}
- {id: 31, cat: XXX, desc: "Зарубежные порнофильмы / Pornofilms Лесбо-фильмы / Lesbo"}
- {id: 32, cat: XXX, desc: "Зарубежные порнофильмы / Pornofilms Этнические фильмы / Ethnic"}
- {id: 35, cat: XXX, desc: "Зарубежные порнофильмы / Pornofilms Эротические фильмы / Erotic & Documentary"}
- {id: 70, cat: XXX, desc: "Зарубежные порнофильмы / Pornofilms Классика / Classic Porn"}
- {id: 33, cat: XXX, desc: "Зарубежные порнофильмы / Pornofilms HD порнофильмы / HD Porn Movies"}
- {id: 10, cat: XXX, desc: "Порноролики / Porn Clips"}
- {id: 42, cat: XXX, desc: "Порноролики / Porn Clips Сайтрипы / SiteRip's"}
- {id: 43, cat: XXX, desc: "Порноролики / Porn Clips Сайтрипы HD / SiteRip's HD Video"}
- {id: 73, cat: XXX, desc: "Порноролики / Porn Clips Сайтрипы UHD / 4K UHD (2160p) Porn Video"}
- {id: 78, cat: XXX, desc: "Порноролики / Porn Clips 3D & Virtual Reality Porn Videos (VR)"}
- {id: 44, cat: XXX, desc: "Порноролики / Porn Clips Сцены из фильмов / Movie Scenes"}
- {id: 45, cat: XXX, desc: "Порноролики / Porn Clips Порноролики Разное / Various Clips"}
- {id: 40, cat: XXX, desc: "Порноролики / Porn Clips Паки сайтрипов / SiteRip's Packs"}
- {id: 41, cat: XXX, desc: "Порноролики / Porn Clips Паки по актрисам / Actresses Clips Packs"}
- {id: 3, cat: XXX, desc: "Японское порно / Japan Porn"}
- {id: 79, cat: XXX, desc: "Chinese Movies"}
- {id: 80, cat: XXX, desc: "Japanese Movies"}
- {id: 18, cat: XXX, desc: "Русское порно / Russian Porn"}
- {id: 36, cat: XXX, desc: "Русское порно / Russian Porn Русские порнофильмы / Russian Porn Films"}
- {id: 37, cat: XXX, desc: "Русское порно / Russian Porn Паки русских порнороликов / Russian Clips Packs"}
- {id: 39, cat: XXX, desc: "Русское порно / Russian Porn Русское любительское порно видео / Russian Amateur Porn Video"}
- {id: 4, cat: XXX, desc: "Эротические студии и Фотосеты, Комиксы, Журналы / Erotic, Pictures, Magazines & Comix"}
- {id: 46, cat: XXX, desc: "Эротические студии и Фотосеты, Комиксы, Журналы / Erotic, Pictures, Magazines & Comix Эротические студии видео / Erotic Video Library"}
- {id: 47, cat: XXX, desc: "Эротические студии и Фотосеты, Комиксы, Журналы / Erotic, Pictures, Magazines & Comix Эротические студии Фото / Erotic Picture Gallery"}
- {id: 48, cat: XXX, desc: "Эротические студии и Фотосеты, Комиксы, Журналы / Erotic, Pictures, Magazines & Comix Паки сайтрипов эротических студий / Erotic Picture SiteRip's"}
- {id: 49, cat: XXX, desc: "Эротические студии и Фотосеты, Комиксы, Журналы / Erotic, Pictures, Magazines & Comix Любительское фото / Amateur Picture"}
- {id: 50, cat: XXX, desc: "Эротические студии и Фотосеты, Комиксы, Журналы / Erotic, Pictures, Magazines & Comix Подборки по актрисам / Actresses Picture Packs"}
- {id: 51, cat: XXX, desc: "Эротические студии и Фотосеты, Комиксы, Журналы / Erotic, Pictures, Magazines & Comix Подборки сайтрипов / SiteRip's Picture Packs"}
- {id: 52, cat: XXX, desc: "Эротические студии и Фотосеты, Комиксы, Журналы / Erotic, Pictures, Magazines & Comix Подборки сетов / Picture Sets"}
- {id: 53, cat: XXX, desc: "Эротические студии и Фотосеты, Комиксы, Журналы / Erotic, Pictures, Magazines & Comix Нетрадиционное порно фото"}
- {id: 76, cat: XXX, desc: "Эротические студии и Фотосеты, Комиксы, Журналы / Erotic, Pictures, Magazines & Comix Комиксы и рисунки, Журналы / Magazines & Comix"}
- {id: 6, cat: XXX, desc: "Нетрадиционное порно / Special Interest Porn"}
- {id: 56, cat: XXX, desc: "Нетрадиционное порно / Special Interest Porn Бисексуалы / Bisexual"}
- {id: 57, cat: XXX, desc: "Нетрадиционное порно / Special Interest Porn Транссексуалы / Shemale Transsexual"}
- {id: 58, cat: XXX, desc: "Нетрадиционное порно / Special Interest Porn БДСМ / BDSM"}
- {id: 59, cat: XXX, desc: "Нетрадиционное порно / Special Interest Porn Женское доминирование и страпон / Femdom & Strapon"}
- {id: 60, cat: XXX, desc: "Нетрадиционное порно / Special Interest Porn Подглядывание / Voyeur"}
- {id: 61, cat: XXX, desc: "Нетрадиционное порно / Special Interest Porn Фистинг и дилдо / Fisting & Dildo"}
- {id: 62, cat: XXX, desc: "Нетрадиционное порно / Special Interest Porn Беременные / Pregnant Preggo"}
- {id: 63, cat: XXX, desc: "Нетрадиционное порно / Special Interest Porn Буккаке / Bukkake"}
- {id: 64, cat: XXX, desc: "Нетрадиционное порно / Special Interest Porn Мочеиспускание / Peeing"}
- {id: 65, cat: XXX, desc: "Нетрадиционное порно / Special Interest Porn Фетиш / Fetish"}
- {id: 66, cat: XXX, desc: "Нетрадиционное порно / Special Interest Porn Копро / Scat"}
- {id: 5, cat: XXX, desc: "Мультфильмы, Хентай и игры / Сartoons, Hentai & Games"}
- {id: 54, cat: XXX, desc: "Мультфильмы, Хентай и игры / Сartoons, Hentai & Games Хентай"}
- {id: 55, cat: XXX, desc: "Мультфильмы, Хентай и игры / Сartoons, Hentai & Games Игры"}
- {id: 74, cat: XXX, desc: "Мультфильмы, Хентай и игры / Сartoons, Hentai & GamesПорно Мультики"}
- {id: 7, cat: XXX, desc: "Гей-порно / Gay porn"}
- {id: 67, cat: XXX, desc: "Гей-порно / Gay porn Полнометражные гей-фильмы / Full Length Gay Movies"}
- {id: 68, cat: XXX, desc: "Гей-порно / Gay porn Ролики, SiteRip'ы и сцены из гей-фильмов / Gay Clips & Movie Scenes"}
- {id: 16, cat: XXX, desc: "Форум PornoRip.biz"}
- {id: 17, cat: XXX, desc: "Форум PornoRip.biz Новости Порно Индустрии"}
- {id: 69, cat: XXX, desc: "Форум PornoRip.biz Правила, инструкции, FAQ"}
- {id: 71, cat: XXX, desc: "Форум PornoRip.biz Новости трекера!"}
- {id: 72, cat: XXX, desc: "Форум PornoRip.biz Общение"}
- {id: 77, cat: XXX, desc: "Форум PornoRip.biz ОбщениеАрхив"}
modes:
search: [q]
settings:
- name: sort
type: select
label: Sort requested from site
default: t
options:
t: created
ts: seeders
sz: size
i: title
- name: type
type: select
label: Order requested from site
default: d
options:
d: desc
a: asc
search:
paths:
# https://www.pornorip.biz/search.php?tracker_search=torrent&keywords=slut&terms=all&fp=1&author=&sc=1&sf=titleonly&sr=topics&sk=t&sd=d&st=0&ch=300&t=0&submit=Search
- path: search.php
inputs:
tracker_search: torrent
keywords: "{{ if .Keywords }}{{ .Keywords }}{{ else }}{{ .Today.Year }}{{ end }}"
terms: all
author: ""
sc: 1
sf: titleonly
sr: topics
sk: "{{ .Config.sort }}"
sd: "{{ .Config.type }}"
st: 0
ch: 300
t: 0
submit: Search
$raw: "{{ range .Categories }}&fid[]={{.}}{{end}}"
rows:
selector: div.forumbg > div.inner > ul.topiclist > li.row > dl.icon:has(a[href^="./download/file.php?id="])
filters:
- name: andmatch
fields:
title:
selector: a.topictitle
filters:
- name: re_replace
args: ["^\\[[\\w ]*\\]\\s?", ""]
details:
selector: a.topictitle
attribute: href
category:
selector: dt a:last-of-type
attribute: href
filters:
- name: regexp
args: "-f(\\d+).html$"
download:
selector: a[href^="./download/file.php?id="]
attribute: href
size:
selector: dt b:nth-of-type(2)
filters:
- name: replace
args: ["ТБ", "TB"]
- name: replace
args: ["ГБ", "GB"]
- name: replace
args: ["МБ", "MB"]
- name: replace
args: ["КБ", "KB"]
seeders:
selector: span.seed
leechers:
selector: span.leech
grabs:
selector: span.complet
date_day:
# Сегодня, 12:35
selector: dt:contains("Сегодня"), dt:contains("Вчера")
optional: true
filters:
- name: regexp
args: "»\\s+(.+?)\\s+в"
- name: replace
args: ["Сегодня", "Today"]
- name: replace
args: ["Вчера", "Yesterday"]
- name: fuzzytime
date_ago:
# 46 минут назад
selector: dt:contains("назад")
optional: true
filters:
- name: regexp
args: "»\\s+(.+?)\\s+в"
- name: replace
args: ["назад", "ago"]
- name: replace
args: ["секунд", "seconds"]
- name: replace
args: ["минут", "minutes"]
- name: replace
args: ["часов", "hours"]
- name: timeago
date_year:
# 12 янв 2019, 11:26
selector: dt:not(:contains("Сегодня")):not(:contains("Вчера")):not(:contains("назад"))
optional: true
filters:
- name: regexp
args: "»\\s+(.+?)\\s+в"
- name: replace
args: ["янв", "Jan"]
- name: replace
args: ["фев", "Feb"]
- name: replace
args: ["мар", "Mar"]
- name: replace
args: ["апр", "Apr"]
- name: replace
args: ["май", "May"]
- name: replace
args: ["июн", "Jun"]
- name: replace
args: ["июл", "Jul"]
- name: replace
args: ["авг", "Aug"]
- name: replace
args: ["сен", "Sep"]
- name: replace
args: ["окт", "Oct"]
- name: replace
args: ["ноя", "Nov"]
- name: replace
args: ["дек", "Dec"]
- name: append
args: " +03:00" # MSK
- name: dateparse
args: "02 Jan 2006, 15:04 -07:00"
date:
text: "{{ if or .Result.date_year .Result.date_ago .Result.date_day }}{{ or .Result.date_year .Result.date_ago .Result.date_day }}{{ else }}now{{ end }}"
downloadvolumefactor:
text: 0
uploadvolumefactor:
text: 1
# phpBB

View File

@@ -11,9 +11,8 @@ legacylinks:
- https://legacyhd.org/
caps:
# dont forget to update the case block in the search fields category
categorymappings:
- {id: 1, cat: Movies, desc: "Movies"}
- {id: 1, cat: Movies, desc: "Movie"}
modes:
search: [q]
@@ -51,6 +50,16 @@ settings:
desc: desc
asc: asc
login:
path: /api/torrents
method: get
inputs:
api_token: "{{ .Config.apikey }}"
error:
- selector: a[href*="/login"]
message:
text: "The API key was not accepted by {{ .Config.sitelink }}."
search:
paths:
# https://hdinnovations.github.io/UNIT3D-Community-Edition-Docs/api_endpoints.html
@@ -66,10 +75,8 @@ search:
selector: meta.total
fields:
category:
categorydesc:
selector: category
case:
Movie: 1
title:
selector: name
details:

View File

@@ -1,191 +0,0 @@
---
id: reelflix
name: ReelFLiX
description: "ReelFLiX (HD4Free,LegacyHD) is a Private Torrent Tracker for HD MOVIES"
language: en-US
type: private
encoding: UTF-8
links:
- https://reelflix.xyz/
legacylinks:
- https://legacyhd.org/
caps:
categorymappings:
- {id: 1, cat: Movies, desc: "Movies"}
modes:
search: [q]
tv-search: [q, season, ep, imdbid, tvdbid]
movie-search: [q, imdbid, tmdbid]
music-search: [q]
book-search: [q]
settings:
- name: username
type: text
label: Username
- name: password
type: password
label: Password
- name: freeleech
type: checkbox
label: Search freeleech only
default: false
- name: sort
type: select
label: Sort requested from site
default: created_at
options:
created_at: created
seeders: seeders
size: size
name: title
- name: type
type: select
label: Order requested from site
default: desc
options:
desc: desc
asc: asc
login:
path: login
method: form
form: form[action$="/login"]
inputs:
username: "{{ .Config.username }}"
password: "{{ .Config.password }}"
remember: on
selectorinputs:
_token:
selector: input[name="_token"]
attribute: value
error:
- selector: div#ERROR_COPY
# test:
# path: /
# selector: a[href$="/logout"]
search:
paths:
- path: torrents
inputs:
$raw: "{{ range .Categories }}categories[]={{.}}&{{end}}"
name: "{{ if .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}" # for dashboard imdbid search
description: ""
mediainfo: ""
keywords: ""
uploader: ""
tmdbId: "{{ .Query.TMDBID }}"
imdbId: "{{ .Query.IMDBIDShort }}"
tvdbId: "{{ .Query.TVDBID }}"
malId: ""
startYear: ""
endYear: ""
playlistId: ""
collectionId: ""
sortField: "{{ .Config.sort }}"
sortDirection: "{{ .Config.type }}"
perPage: 100
page: 1
free: "{{ if .Config.freeleech }}1{{ else }}{{ end }}"
rows:
selector: table > tbody > tr
fields:
category:
selector: a[href*="/categories/"]
attribute: href
filters:
- name: regexp
args: "/categories/(\\d+)"
title:
selector: a.view-torrent
download:
selector: a[href*="/download/"]
attribute: href
details:
selector: a.view-torrent
attribute: href
poster:
selector: div.torrent-poster img
attribute: src
filters:
- name: replace
args: ["https://via.placeholder.com/90x135", ""]
- name: replace
args: ["https://via.placeholder.com/400x600", ""]
size:
selector: td:nth-last-child(5)
seeders:
selector: td:nth-last-child(4)
leechers:
selector: td:nth-last-child(3)
grabs:
selector: td:nth-last-child(2)
date:
selector: td:nth-last-child(1)
filters:
# translations for Turkish|Estonian|Danish|Italian|Polish|Norwegian|Portuguese|Czech|Russian|Romanian|Spanish|French|German|Bulgarian|Dutch|Chinese|Japanese|Swedish
- name: re_replace
args: ["(?i)(önce|tagasi|geleden|fa|temu|siden|há|atrás|nazpět|назад|acum|în urmă|hace|il y a|vor|преди|前|sedan)", " ago"]
- name: re_replace
args: ["(?i)(saniye|sekundit|sekunder|secondi|sekund|segundos|sekundami|секунд|secunde|secondes|Sekunden|секунди|seconden|秒前)", "seconds"]
- name: re_replace
args: ["(?i)(minutit|minutter|minuti|minuty|minutos|минуты|минут|Minuten|минути|minuten|minuter)", "minutes"]
- name: re_replace
args: ["(?i)(dakika|minut|minuto|minuta|minutt|минута|Minute|minuut|分钟|分)", " minute"]
- name: re_replace
args: ["(?i)(tundi|timer|ore|godziny|horas|hodiny|hoden|часа|часов|ore|heures|Stunden|timmar)", "hours"]
- name: re_replace
args: ["(?i)(saat|tund|time|ora|godzina|hora|hodina|час|oră|heure|Stunde|uur|小时|時間|timme)", " hour"]
- name: re_replace
args: ["(?i)(päeva|dage|giorni|dni|dias|dny|дня|дней|zile|días|jours|Tagen|дни|dagen|dagar)", "days"]
- name: re_replace
args: ["(?i)(gün|päev|dag|giorno|dzień|dia|den|день|zi|día|jour|Tag|ден|天|日)", " day"]
- name: re_replace
args: ["(?i)(nädalat|uger|settimane|tygodnie|uker|semanas|týdny|недели|недель|săptămâni|semaines|Wochen|седмици|weken|veckor)", "weeks"]
- name: re_replace
args: ["(?i)(hafta|nädal|uge|settimana|tydzień|uke|semana|týden|неделю|săptămână|semaine|Woche|седмица|周|週間|vecka)", " week"]
- name: re_replace
args: ["(?i) (ay)", "month"]
- name: re_replace
args: ["(?i)(kuud|måneder|mesi|miesiące|meses|měsíce|месяца|месяцев|luni|meses|mois|Monaten|месеца|maanden|månader)", "months"]
- name: re_replace
args: ["(?i)(kuu|måned|mese|miesiąc|mês|měsíc|месяц|lună|mes|Monat|месец|maand|个月|ヶ月|månad)", " month"]
- name: re_replace
args: ["(?i)(aastat|anni|lata|anos|roky|года|ani|años|ans|Jahren|години)", " years"]
- name: re_replace
args: ["(?i)(yil|aasta|år|anno|rok|ano|год|año|Jahr|година|jaar|年)", " year"]
- name: re_replace
args: ["(?i) (an)", "year"]
- name: re_replace
args: ["(?i)(För |und)", ""] # Misc removals
- name: timeago
downloadvolumefactor:
case:
span.torrent-listings-global-freeleech: 0
span.torrent-listings-personal-freeleech: 0
span.torrent-listings-freeleech-token: 0
span.torrent-listings-featured: 0
span.torrent-listings-freeleech i[data-original-title*="25%"]: 0.75
span.torrent-listings-freeleech i[data-original-title*="50%"]: 0.5
span.torrent-listings-freeleech i[data-original-title*="75%"]: 0.25
span.torrent-listings-freeleech i[data-original-title*="100%"]: 0
span.torrent-listings-special-freeleech: 0
"*": 1
uploadvolumefactor:
case:
span.torrent-listings-global-double-upload: 2
span.torrent-listings-double-upload: 2
span.torrent-listings-featured: 2
span.torrent-listings-special-double-upload: 2
"*": 1
minimumratio:
text: 0.4
minimumseedtime:
# 5 days (as seconds = 5 x 24 x 60 x 60)
text: 432000
# UNIT3D 5.3.0

View File

@@ -150,6 +150,8 @@ search:
rows:
selector: tr[id^="tor_"]
filters:
- name: andmatch
fields:
category:

View File

@@ -9,7 +9,6 @@ links:
- https://www.rintor.net/
caps:
# dont forget to update the search fields category case block
categorymappings:
- {id: 27, cat: XXX, desc: "Фильмы 2160 4K | Movies 2160p 4K"}
- {id: 20, cat: XXX, desc: "Сайтрипы 2160 4K | Porn Video 2160p 4K"}
@@ -20,8 +19,8 @@ caps:
- {id: 24, cat: XXX, desc: "Инцест (Инсценировка) | Incest (Simulation)"}
- {id: 22, cat: XXX, desc: "Лесбиянки | Lesbians"}
- {id: 26, cat: XXX, desc: "Порно Кастинг | Porno Casting"}
- {id: 29, cat: XXX, desc: "Японское Порно | Japanese Porn (Uncen)"}
- {id: 23, cat: XXX, desc: "Ретро Порно, Классика | Classic Porn, Retro"}
- {id: 29, cat: XXX, desc: "Японское (Без Цензуры) | Japanese Porn (Uncen)"}
- {id: 23, cat: XXX, desc: "Ретро Порно, Классика | Retro Porn, Classic"}
- {id: 21, cat: XXX, desc: "Женское Доминирование, Страпон | Femdom, StrapOn"}
- {id: 17, cat: XXX, desc: "БДСМ, Фистинг, Дилдо | BDSM, Fisting, Dildo"}
- {id: 19, cat: XXX, desc: "Беременные | Pregnant"}
@@ -60,30 +59,8 @@ search:
selector: div.entry:has(div.entry__title)
fields:
category:
selector: div.entry__info
case:
"a:last-of-type:contains(\"Movies 2160p\")": 27
"a:last-of-type:contains(\"Video 2160p\")": 20
"a:last-of-type:contains(\"Movies HD\")": 1
"a:last-of-type:contains(\"SiteRips\")": 9
"a:last-of-type:contains(\"WEBRip\")": 12
"a:last-of-type:contains(\"Amateur\")": 10
"a:last-of-type:contains(\"Incest\")": 24
"a:last-of-type:contains(\"Lesbians\")": 22
"a:last-of-type:contains(\"Casting\")": 26
"a:last-of-type:contains(\"Japanese\")": 29
"a:last-of-type:contains(\"Classic\")": 23
"a:last-of-type:contains(\"Femdom\")": 21
"a:last-of-type:contains(\"BDSM\")": 17
"a:last-of-type:contains(\"Pregnant\")": 19
"a:last-of-type:contains(\"Bukkake\")": 28
"a:last-of-type:contains(\"Peeing\")": 25
"a:last-of-type:contains(\"Shemale\")": 16
"a:last-of-type:contains(\"Picture\")": 11
"a:last-of-type:contains(\"Cartoons\")": 14
"a:last-of-type:contains(\"Games\")": 13
"a:last-of-type:contains(\"Gay\")": 15
categorydesc:
selector: div.entry__info > span > a
title:
selector: div.entry__title > h3 > a
details:

View File

@@ -12,7 +12,6 @@ legacylinks:
- http://www.shareisland.org/
caps:
# dont forget to update the case block in the search fields category
categorymappings:
- {id: 1, cat: Movies, desc: "Movie"}
- {id: 2, cat: TV, desc: "Serie TV"}
@@ -59,6 +58,16 @@ settings:
desc: desc
asc: asc
login:
path: /api/torrents
method: get
inputs:
api_token: "{{ .Config.apikey }}"
error:
- selector: a[href*="/login"]
message:
text: "The API key was not accepted by {{ .Config.sitelink }}."
search:
paths:
# https://hdinnovations.github.io/UNIT3D-Community-Edition-Docs/api_endpoints.html
@@ -82,17 +91,8 @@ search:
selector: meta.total
fields:
category:
categorydesc:
selector: category
case:
"Movie": 1
"Serie TV": 2
"Ebook": 15
"Riviste e Giornali": 17
"XXX": 19
"Music": 3
"Games": 7
"Software": 23
title:
selector: name
filters:

View File

@@ -1,228 +0,0 @@
---
id: shareisland
name: Shareisland
description: "A general italian tracker"
language: it-IT
type: private
encoding: UTF-8
links:
- https://shareisland.org/
legacylinks:
- http://shareisland.org/
- http://www.shareisland.org/
caps:
categorymappings:
- {id: 1, cat: Movies, desc: "Movie"}
- {id: 2, cat: TV, desc: "Serie TV"}
- {id: 15, cat: Books/EBook, desc: "Ebook"}
- {id: 17, cat: Books/Mags, desc: "Riviste e Giornali"}
- {id: 19, cat: XXX, desc: "XXX"}
- {id: 3, cat: Audio, desc: "Music"}
- {id: 7, cat: PC/Games, desc: "Games"}
- {id: 23, cat: PC, desc: "Software"}
modes:
search: [q]
tv-search: [q, season, ep, imdbid, tvdbid]
movie-search: [q, imdbid, tmdbid]
music-search: [q]
book-search: [q]
settings:
- name: username
type: text
label: Username
- name: password
type: password
label: Password
- name: freeleech
type: checkbox
label: Search freeleech only
default: false
- name: sort
type: select
label: Sort requested from site
default: created_at
options:
created_at: created
seeders: seeders
size: size
name: title
- name: type
type: select
label: Order requested from site
default: desc
options:
desc: desc
asc: asc
login:
path: login
method: form
form: form[action$="/login"]
inputs:
username: "{{ .Config.username }}"
password: "{{ .Config.password }}"
remember: on
selectorinputs:
_token:
selector: input[name="_token"]
attribute: value
error:
- selector: div#ERROR_COPY
# test:
# path: /
# selector: a[href$="/logout"]
search:
paths:
- path: torrents
inputs:
$raw: "{{ range .Categories }}categories[]={{.}}&{{end}}"
name: "{{ if .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}" # for dashboard imdbid search
description: ""
mediainfo: ""
keywords: ""
uploader: ""
tmdbId: "{{ .Query.TMDBID }}"
imdbId: "{{ .Query.IMDBIDShort }}"
tvdbId: "{{ .Query.TVDBID }}"
malId: ""
startYear: ""
endYear: ""
playlistId: ""
collectionId: ""
sortField: "{{ .Config.sort }}"
sortDirection: "{{ .Config.type }}"
perPage: 100
page: 1
free: "{{ if .Config.freeleech }}1{{ else }}{{ end }}"
keywordsfilters:
- name: diacritics
args: replace
- name: re_replace # S01 to 1
args: ["(?i)\\bS0*(\\d+)\\b", "$1"]
- name: re_replace # S01E01 to 1 1
args: ["(?i)\\bS0*(\\d+)E0*(\\d+)\\b", "$1 $2"]
rows:
selector: table > tbody > tr
fields:
category:
selector: a[href*="/categories/"]
attribute: href
filters:
- name: regexp
args: "/categories/(\\d+)"
title:
selector: a.view-torrent
filters:
- name: re_replace # replace special characters with " " (space)
args: ["[\\[!\"#$%&'()*+,\\-.\\/:;<=>?@[\\]^_`{|}~]", " "]
- name: diacritics
args: replace
- name: re_replace # replace multiple spaces
args: ["[ ]{2,}", " "]
# normalize to SXXEYY format
- name: re_replace # S01 E01 to S01E01
args: ["(?i)\\bS(\\d+)\\sE(\\d+)\\b", "S$1E$2"]
- name: re_replace # 01x01 to S01E01
args: ["(?i)(\\d{2})x(\\d+)", "S$1E$2"]
- name: re_replace # 1x01 to S01E01
args: ["(?i)\\b(\\d{1})x(\\d+)", "S0$1E$2"]
- name: re_replace # Stagione X --> S0X
args: ["(?i)\\bStagion[ei]\\s?(\\d{1})\\b|\\bSeason'?s?\\s?(\\d{1})\\b", "S0$1$2"]
- name: re_replace # Stagione XX --> SXX
args: ["(?i)\\bStagion[ei]\\s?(\\d{2,})\\b|\\bSeason'?s?\\s?(\\d{2,})\\b", "S$1$2"]
- name: re_replace # Episodio 4 to E4
args: ["(?i)\\b(?:[\\/\\|]?Episodio\\s?(\\d+)|Puntata\\s?(\\d+))", "E$1$2"]
- name: re_replace # Episodi 4 5 to E04-05
args: ["(?i)\\b(?:Puntate\\s*)(\\d+)\\s?(\\d+)", "E0$1-0$2"]
- name: re_replace # rimozioni varie
args: ["(?i)(Serie completa|Completat?a?|in pausa)", ""]
download:
selector: a[href*="/download/"]
attribute: href
details:
selector: a.view-torrent
attribute: href
poster:
selector: div.torrent-poster img
attribute: src
filters:
- name: replace
args: ["https://via.placeholder.com/90x135", ""]
- name: replace
args: ["https://via.placeholder.com/400x600", ""]
size:
selector: td:nth-last-child(5)
seeders:
selector: td:nth-last-child(4)
leechers:
selector: td:nth-last-child(3)
grabs:
selector: td:nth-last-child(2)
date:
selector: td:nth-last-child(1)
filters:
# translations for Turkish|Estonian|Danish|Italian|Polish|Norwegian|Portuguese|Czech|Russian|Romanian|Spanish|French|German|Bulgarian|Dutch|Chinese|Japanese|Swedish
- name: re_replace
args: ["(?i)(önce|tagasi|geleden|fa|temu|siden|há|atrás|nazpět|назад|acum|în urmă|hace|il y a|vor|преди|前|sedan)", " ago"]
- name: re_replace
args: ["(?i)(saniye|sekundit|sekunder|secondi|sekund|segundos|sekundami|секунд|secunde|secondes|Sekunden|секунди|seconden|秒前)", "seconds"]
- name: re_replace
args: ["(?i)(minutit|minutter|minuti|minuty|minutos|минуты|минут|Minuten|минути|minuten|minuter)", "minutes"]
- name: re_replace
args: ["(?i)(dakika|minut|minuto|minuta|minutt|минута|Minute|minuut|分钟|分)", " minute"]
- name: re_replace
args: ["(?i)(tundi|timer|ore|godziny|horas|hodiny|hoden|часа|часов|ore|heures|Stunden|timmar)", "hours"]
- name: re_replace
args: ["(?i)(saat|tund|time|ora|godzina|hora|hodina|час|oră|heure|Stunde|uur|小时|時間|timme)", " hour"]
- name: re_replace
args: ["(?i)(päeva|dage|giorni|dni|dias|dny|дня|дней|zile|días|jours|Tagen|дни|dagen|dagar)", "days"]
- name: re_replace
args: ["(?i)(gün|päev|dag|giorno|dzień|dia|den|день|zi|día|jour|Tag|ден|天|日)", " day"]
- name: re_replace
args: ["(?i)(nädalat|uger|settimane|tygodnie|uker|semanas|týdny|недели|недель|săptămâni|semaines|Wochen|седмици|weken|veckor)", "weeks"]
- name: re_replace
args: ["(?i)(hafta|nädal|uge|settimana|tydzień|uke|semana|týden|неделю|săptămână|semaine|Woche|седмица|周|週間|vecka)", " week"]
- name: re_replace
args: ["(?i) (ay)", "month"]
- name: re_replace
args: ["(?i)(kuud|måneder|mesi|miesiące|meses|měsíce|месяца|месяцев|luni|meses|mois|Monaten|месеца|maanden|månader)", "months"]
- name: re_replace
args: ["(?i)(kuu|måned|mese|miesiąc|mês|měsíc|месяц|lună|mes|Monat|месец|maand|个月|ヶ月|månad)", " month"]
- name: re_replace
args: ["(?i)(aastat|anni|lata|anos|roky|года|ani|años|ans|Jahren|години)", " years"]
- name: re_replace
args: ["(?i)(yil|aasta|år|anno|rok|ano|год|año|Jahr|година|jaar|年)", " year"]
- name: re_replace
args: ["(?i) (an)", "year"]
- name: re_replace
args: ["(?i)(För |und)", ""] # Misc removals
- name: timeago
downloadvolumefactor:
case:
i[class*="fa-id-badge text-orange"]: 0 # 24 Hour FreeLeech From BON Store
i[class*="fa-trophy text-purple"]: 0 # Special FreeLeech For Certain User Groups
i[class*="fa-star text-bold"]: 0 # Freeleech From Token
i[class*="fa-coins text-bold"]: 0 # Freeleech From Token
i[class*="fa-globe text-blue"]: 0 # Global Freeleech
i[class*="fa-star text-gold"]: 0 # Freeleech
i[class*="fa-certificate text-pink"]: 0 # Featured Torrent
"*": 1
uploadvolumefactor:
case:
i[class*="fa-gem text-green"]: 2 # Single Torrent Double Upload
i[class*="fa-globe text-green"]: 2 # Global Double Upload
i[class*="fa-certificate text-pink"]: 2 # Featured Torrent
"*": 1
# global MR is 0.4 but torrents must be seeded for 7 days regardless of ratio
# minimumratio:
# text: 0.4
minimumseedtime:
# 7 day (as seconds = 7 x 24 x 60 x 60)
text: 604800
# UNIT3D 5.3.0

View File

@@ -0,0 +1,60 @@
---
id: showrss
name: showRSS
description: "showRSS is a service that allows you to keep track of your favorite TV shows"
language: en-US
type: public
encoding: UTF-8
links:
- https://showrss.info/
caps:
categorymappings:
- {id: 1, cat: TV/SD}
- {id: 2, cat: TV/HD}
modes:
search: [q]
tv-search: [q, season, ep]
settings: []
search:
paths:
- path: /other/all.rss
response:
type: xml
attribute: attributes
rows:
selector: rss > channel > item
filters:
- name: andmatch
fields:
category:
selector: raw_title
filters:
case:
":contains(\"720p\")": 2
":contains(\"1080p\")": 2
"*": 1
title:
selector: raw_title
details:
text: "{{ .Config.sitelink }}"
date:
selector: pubDate
download:
selector: link
size:
text: "512 MB"
seeders:
text: 1
leechers:
text: 1
downloadvolumefactor:
text: 0
uploadvolumefactor:
text: 1
# engine n/a

View File

@@ -9,7 +9,6 @@ links:
- https://skipthecommericals.xyz/
caps:
# dont forget to update the case block in the search fields category
categorymappings:
- {id: 2, cat: TV, desc: "TV Show"}
@@ -25,7 +24,7 @@ settings:
- name: info_key
type: info
label: About your API key
default: "Find or Generate a new API Token by accessing your <a href=\"https://datascene.xyz/\" target =_blank>DataScene</a> account <i>My Security</i> page and clicking on the <b>API Token</b> tab."
default: "Find or Generate a new API Token by accessing your <a href=\"https://skipthecommericals.xyz/\" target =_blank>SkipTheCommercials</a> account <i>My Security</i> page and clicking on the <b>API Token</b> tab."
- name: freeleech
type: checkbox
label: Search freeleech only
@@ -47,6 +46,16 @@ settings:
desc: desc
asc: asc
login:
path: /api/torrents
method: get
inputs:
api_token: "{{ .Config.apikey }}"
error:
- selector: a[href*="/login"]
message:
text: "The API key was not accepted by {{ .Config.sitelink }}."
search:
paths:
# https://hdinnovations.github.io/UNIT3D-Community-Edition-Docs/api_endpoints.html
@@ -66,10 +75,8 @@ search:
selector: meta.total
fields:
category:
categorydesc:
selector: category
case:
"TV Show": 2
title:
selector: name
details:

View File

@@ -1,183 +0,0 @@
---
id: skipthecommercials
name: SkipTheCommercials
description: "SkipTheCommercials (STC) is a Private Torrent Tracker for TV"
language: en-US
type: private
encoding: UTF-8
links:
- https://skipthecommericals.xyz/
caps:
categorymappings:
- {id: 2, cat: TV, desc: "TV Show"}
modes:
search: [q]
tv-search: [q, season, ep, imdbid, tvdbid]
movie-search: [q, imdbid, tmdbid]
settings:
- name: username
type: text
label: Username
- name: password
type: password
label: Password
- name: freeleech
type: checkbox
label: Search freeleech only
default: false
- name: sort
type: select
label: Sort requested from site
default: created_at
options:
created_at: created
seeders: seeders
size: size
name: title
- name: type
type: select
label: Order requested from site
default: desc
options:
desc: desc
asc: asc
login:
path: login
method: form
form: form[action$="/login"]
inputs:
username: "{{ .Config.username }}"
password: "{{ .Config.password }}"
remember: on
selectorinputs:
_token:
selector: input[name="_token"]
attribute: value
error:
- selector: div#ERROR_COPY
# test:
# path: /
# selector: a[href$="/logout"]
search:
paths:
- path: torrents
inputs:
$raw: "{{ range .Categories }}categories[]={{.}}&{{end}}"
name: "{{ if .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}" # for dashboard imdbid search
description: ""
mediainfo: ""
keywords: ""
uploader: ""
tmdbId: "{{ .Query.TMDBID }}"
imdbId: "{{ .Query.IMDBIDShort }}"
tvdbId: "{{ .Query.TVDBID }}"
malId: ""
startYear: ""
endYear: ""
playlistId: ""
collectionId: ""
sortField: "{{ .Config.sort }}"
sortDirection: "{{ .Config.type }}"
perPage: 100
page: 1
free: "{{ if .Config.freeleech }}1{{ else }}{{ end }}"
keywordsfilters:
- name: re_replace
args: ["\\.", " "]
rows:
selector: table > tbody > tr
fields:
category:
selector: a[href*="/categories/"]
attribute: href
filters:
- name: regexp
args: "/categories/(\\d+)"
title:
selector: a.view-torrent
download:
selector: a[href*="/download/"]
attribute: href
details:
selector: a.view-torrent
attribute: href
poster:
selector: div.torrent-poster img
attribute: src
filters:
- name: replace
args: ["https://via.placeholder.com/90x135", ""]
- name: replace
args: ["https://via.placeholder.com/400x600", ""]
size:
selector: td:nth-last-child(5)
seeders:
selector: td:nth-last-child(4)
leechers:
selector: td:nth-last-child(3)
grabs:
selector: td:nth-last-child(2)
date:
selector: td:nth-last-child(1)
filters:
# translations for Turkish|Estonian|Danish|Italian|Polish|Norwegian|Portuguese|Czech|Russian|Romanian|Spanish|French|German|Bulgarian|Dutch|Chinese|Japanese|Swedish
- name: re_replace
args: ["(?i)(önce|tagasi|geleden|fa|temu|siden|há|atrás|nazpět|назад|acum|în urmă|hace|il y a|vor|преди|前|sedan)", " ago"]
- name: re_replace
args: ["(?i)(saniye|sekundit|sekunder|secondi|sekund|segundos|sekundami|секунд|secunde|secondes|Sekunden|секунди|seconden|秒前)", "seconds"]
- name: re_replace
args: ["(?i)(minutit|minutter|minuti|minuty|minutos|минуты|минут|Minuten|минути|minuten|minuter)", "minutes"]
- name: re_replace
args: ["(?i)(dakika|minut|minuto|minuta|minutt|минута|Minute|minuut|分钟|分)", " minute"]
- name: re_replace
args: ["(?i)(tundi|timer|ore|godziny|horas|hodiny|hoden|часа|часов|ore|heures|Stunden|timmar)", "hours"]
- name: re_replace
args: ["(?i)(saat|tund|time|ora|godzina|hora|hodina|час|oră|heure|Stunde|uur|小时|時間|timme)", " hour"]
- name: re_replace
args: ["(?i)(päeva|dage|giorni|dni|dias|dny|дня|дней|zile|días|jours|Tagen|дни|dagen|dagar)", "days"]
- name: re_replace
args: ["(?i)(gün|päev|dag|giorno|dzień|dia|den|день|zi|día|jour|Tag|ден|天|日)", " day"]
- name: re_replace
args: ["(?i)(nädalat|uger|settimane|tygodnie|uker|semanas|týdny|недели|недель|săptămâni|semaines|Wochen|седмици|weken|veckor)", "weeks"]
- name: re_replace
args: ["(?i)(hafta|nädal|uge|settimana|tydzień|uke|semana|týden|неделю|săptămână|semaine|Woche|седмица|周|週間|vecka)", " week"]
- name: re_replace
args: ["(?i) (ay)", "month"]
- name: re_replace
args: ["(?i)(kuud|måneder|mesi|miesiące|meses|měsíce|месяца|месяцев|luni|meses|mois|Monaten|месеца|maanden|månader)", "months"]
- name: re_replace
args: ["(?i)(kuu|måned|mese|miesiąc|mês|měsíc|месяц|lună|mes|Monat|месец|maand|个月|ヶ月|månad)", " month"]
- name: re_replace
args: ["(?i)(aastat|anni|lata|anos|roky|года|ani|años|ans|Jahren|години)", " years"]
- name: re_replace
args: ["(?i)(yil|aasta|år|anno|rok|ano|год|año|Jahr|година|jaar|年)", " year"]
- name: re_replace
args: ["(?i) (an)", "year"]
- name: re_replace
args: ["(?i)(För |und)", ""] # Misc removals
- name: timeago
downloadvolumefactor:
case:
i[class*="fa-id-badge text-orange"]: 0 # 24 Hour FreeLeech From BON Store
i[class*="fa-trophy text-purple"]: 0 # Special FreeLeech For Certain User Groups
i[class*="fa-star text-bold"]: 0 # Freeleech From Token
i[class*="fa-coins text-bold"]: 0 # Freeleech From Token
i[class*="fa-globe text-blue"]: 0 # Global Freeleech
i[class*="fa-star text-gold"]: 0 # Freeleech
i[class*="fa-certificate text-pink"]: 0 # Featured Torrent
"*": 1
uploadvolumefactor:
case:
i[class*="fa-gem text-green"]: 2 # Single Torrent Double Upload
i[class*="fa-globe text-green"]: 2 # Global Double Upload
i[class*="fa-certificate text-pink"]: 2 # Featured Torrent
"*": 1
# UNIT3D 5.3.0

View File

@@ -119,6 +119,8 @@ search:
rows:
selector: tr.t-row
filters:
- name: andmatch
fields:
category:

View File

@@ -9,7 +9,6 @@ links:
- https://swarmazon.club/
caps:
# dont forget to update the search fields category case block
categorymappings:
- {id: 1, cat: Movies, desc: "Movies"}
- {id: 2, cat: TV, desc: "Television"}
@@ -56,7 +55,7 @@ login:
search:
paths:
- path: "{{ if .Keywords }}en/search/search.php?category=all&query={{ .Keywords }}&limit=50{{ else }}index.php?date_range=14{{ end }}"
- path: "{{ if .Keywords }}en/search/search.php?category=all&query={{ .Keywords }}{{ else }}latest.php?date_range=14{{ end }}"
rows:
selector: table.table-striped > tbody > tr
@@ -64,19 +63,14 @@ search:
- name: andmatch
fields: # some users (rank specific?) have an extra column (td:nth-child(4)) with bookmark features
category:
selector: td.Name
case:
"small:contains(\"in Movies\")": 1
"small:contains(\"in Television\")": 2
"small:contains(\"in Video Courses\")": 3
"small:contains(\"in Music\")": 4
"small:contains(\"in Games\")": 5
"small:contains(\"in Software\")": 6
"small:contains(\"in Anime\")": 7
"small:contains(\"in E-Books\")": 8
"small:contains(\"in Audio Books\")": 9
"small:contains(\"in Comics\")": 10
categorydesc:
selector: td.Name small
filters:
- name: re_replace
args: ["(.+?)in\\s(.+?)", "$2"]
- name: replace
args: ["Freeleech", ""]
- name: trim
title:
selector: a[href*="/view/torrent.php?hash="]
details:

View File

@@ -13,7 +13,6 @@ legacylinks:
- https://telly.to/
caps:
# dont forget to update the case block in the search fields category
categorymappings:
- {id: 1, cat: Movies, desc: "Movie"}
- {id: 2, cat: TV, desc: "TV"}
@@ -59,6 +58,16 @@ settings:
desc: desc
asc: asc
login:
path: /api/torrents
method: get
inputs:
api_token: "{{ .Config.apikey }}"
error:
- selector: a[href*="/login"]
message:
text: "The API key was not accepted by {{ .Config.sitelink }}."
search:
paths:
# https://hdinnovations.github.io/UNIT3D-Community-Edition-Docs/api_endpoints.html
@@ -74,17 +83,8 @@ search:
selector: meta.total
fields:
category:
categorydesc:
selector: category
case:
"Movie": 1
"TV": 2
"Music": 3
"Web Originals": 4
"Games": 5
"Application": 6
"Mobile App": 7
"Movies": 8
title:
selector: name
details:

View File

@@ -1,197 +0,0 @@
---
id: tellytorrent
name: TellyTorrent
description: "TellyTorrent is an INDIAN Private Tracker for MOVIES / TV"
language: en-US
type: private
encoding: UTF-8
links:
- https://telly.wtf/
legacylinks:
- https://tellytorrent.net/
- https://telly.cc/
- https://telly.to/
caps:
categorymappings:
- {id: 1, cat: Movies, desc: "Movie"}
- {id: 2, cat: TV, desc: "TV"}
- {id: 3, cat: Audio, desc: "Music"}
- {id: 4, cat: Movies/WEB-DL, desc: "Web Originals"}
- {id: 5, cat: PC/Games, desc: "Games"}
- {id: 6, cat: PC/0day, desc: "Application"}
- {id: 7, cat: PC/Mobile-Other, desc: "Mobile App"}
- {id: 8, cat: Movies, desc: "Movies"}
modes:
search: [q]
tv-search: [q, season, ep, imdbid, tvdbid]
movie-search: [q, imdbid, tmdbid]
music-search: [q]
settings:
- name: username
type: text
label: Username
- name: password
type: password
label: Password
- name: freeleech
type: checkbox
label: Search freeleech only
default: false
- name: sort
type: select
label: Sort requested from site
default: created_at
options:
created_at: created
seeders: seeders
size: size
name: title
- name: type
type: select
label: Order requested from site
default: desc
options:
desc: desc
asc: asc
login:
path: login
method: form
form: form[action$="/login"]
inputs:
username: "{{ .Config.username }}"
password: "{{ .Config.password }}"
remember: on
selectorinputs:
_token:
selector: input[name="_token"]
attribute: value
error:
- selector: div#ERROR_COPY
# test:
# path: /
# selector: a[href$="/logout"]
search:
paths:
- path: torrents
inputs:
$raw: "{{ range .Categories }}categories[]={{.}}&{{end}}"
name: "{{ if .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}" # for dashboard imdbid search
description: ""
mediainfo: ""
keywords: ""
uploader: ""
tmdbId: "{{ .Query.TMDBID }}"
imdbId: "{{ .Query.IMDBIDShort }}"
tvdbId: "{{ .Query.TVDBID }}"
malId: ""
startYear: ""
endYear: ""
playlistId: ""
collectionId: ""
sortField: "{{ .Config.sort }}"
sortDirection: "{{ .Config.type }}"
perPage: 100
page: 1
free: "{{ if .Config.freeleech }}1{{ else }}{{ end }}"
rows:
selector: table > tbody > tr
fields:
category:
selector: a[href*="/categories/"]
attribute: href
filters:
- name: regexp
args: "/categories/(\\d+)"
title:
selector: a.view-torrent
download:
selector: a[href*="/download/"]
attribute: href
details:
selector: a.view-torrent
attribute: href
poster:
selector: div.torrent-poster img
attribute: src
filters:
- name: replace
args: ["https://via.placeholder.com/90x135", ""]
- name: replace
args: ["https://via.placeholder.com/400x600", ""]
size:
selector: td:nth-last-child(5)
seeders:
selector: td:nth-last-child(4)
leechers:
selector: td:nth-last-child(3)
grabs:
selector: td:nth-last-child(2)
date:
selector: td:nth-last-child(1)
filters:
# translations for Turkish|Estonian|Danish|Italian|Polish|Norwegian|Portuguese|Czech|Russian|Romanian|Spanish|French|German|Bulgarian|Dutch|Chinese|Japanese|Swedish
- name: re_replace
args: ["(?i)(önce|tagasi|geleden|fa|temu|siden|há|atrás|nazpět|назад|acum|în urmă|hace|il y a|vor|преди|前|sedan)", " ago"]
- name: re_replace
args: ["(?i)(saniye|sekundit|sekunder|secondi|sekund|segundos|sekundami|секунд|secunde|secondes|Sekunden|секунди|seconden|秒前)", "seconds"]
- name: re_replace
args: ["(?i)(minutit|minutter|minuti|minuty|minutos|минуты|минут|Minuten|минути|minuten|minuter)", "minutes"]
- name: re_replace
args: ["(?i)(dakika|minut|minuto|minuta|minutt|минута|Minute|minuut|分钟|分)", " minute"]
- name: re_replace
args: ["(?i)(tundi|timer|ore|godziny|horas|hodiny|hoden|часа|часов|ore|heures|Stunden|timmar)", "hours"]
- name: re_replace
args: ["(?i)(saat|tund|time|ora|godzina|hora|hodina|час|oră|heure|Stunde|uur|小时|時間|timme)", " hour"]
- name: re_replace
args: ["(?i)(päeva|dage|giorni|dni|dias|dny|дня|дней|zile|días|jours|Tagen|дни|dagen|dagar)", "days"]
- name: re_replace
args: ["(?i)(gün|päev|dag|giorno|dzień|dia|den|день|zi|día|jour|Tag|ден|天|日)", " day"]
- name: re_replace
args: ["(?i)(nädalat|uger|settimane|tygodnie|uker|semanas|týdny|недели|недель|săptămâni|semaines|Wochen|седмици|weken|veckor)", "weeks"]
- name: re_replace
args: ["(?i)(hafta|nädal|uge|settimana|tydzień|uke|semana|týden|неделю|săptămână|semaine|Woche|седмица|周|週間|vecka)", " week"]
- name: re_replace
args: ["(?i) (ay)", "month"]
- name: re_replace
args: ["(?i)(kuud|måneder|mesi|miesiące|meses|měsíce|месяца|месяцев|luni|meses|mois|Monaten|месеца|maanden|månader)", "months"]
- name: re_replace
args: ["(?i)(kuu|måned|mese|miesiąc|mês|měsíc|месяц|lună|mes|Monat|месец|maand|个月|ヶ月|månad)", " month"]
- name: re_replace
args: ["(?i)(aastat|anni|lata|anos|roky|года|ani|años|ans|Jahren|години)", " years"]
- name: re_replace
args: ["(?i)(yil|aasta|år|anno|rok|ano|год|año|Jahr|година|jaar|年)", " year"]
- name: re_replace
args: ["(?i) (an)", "year"]
- name: re_replace
args: ["(?i)(För |und)", ""] # Misc removals
- name: timeago
downloadvolumefactor:
case:
i[class*="fa-id-badge text-orange"]: 0 # 24 Hour FreeLeech From BON Store
i[class*="fa-trophy text-purple"]: 0 # Special FreeLeech For Certain User Groups
i[class*="fa-star text-bold"]: 0 # Freeleech From Token
i[class*="fa-coins text-bold"]: 0 # Freeleech From Token
i[class*="fa-globe text-blue"]: 0 # Global Freeleech
i[class*="fa-star text-gold"]: 0 # Freeleech
i[class*="fa-certificate text-pink"]: 0 # Featured Torrent
"*": 1
uploadvolumefactor:
case:
i[class*="fa-gem text-green"]: 2 # Single Torrent Double Upload
i[class*="fa-globe text-green"]: 2 # Global Double Upload
i[class*="fa-certificate text-pink"]: 2 # Featured Torrent
"*": 1
# global MR is 0.4 but torrents must be seeded for 7 days regardless of ratio
# minimumratio:
# text: 0.4
minimumseedtime:
# 7 day (as seconds = 7 x 24 x 60 x 60)
text: 604800
# UNIT3D 5.3.0

View File

@@ -111,6 +111,8 @@ search:
rows:
selector: table.table-bordered tr:has(a[href^="download.php?torrent="])
filters:
- name: andmatch
fields:
category:

View File

@@ -10,15 +10,10 @@ links:
- https://www.torlock.com/
- https://www.torlock2.com/
- https://www.torlock.icu/
- https://torlock.unblockit.tv/
- https://torlock.unblockit.how/
- https://torlock.nocensor.biz/
legacylinks:
- https://torlock.com/
- https://torlock.unblockit.pro/
- https://torlock.unblockit.one/
- https://torlock.unblockit.me/
- https://torlock.unblockit.pw/
- https://torlock.unblockit.id/
- https://torlock.unblockit.win/
- https://torlock.unblockit.top/
- https://torlock.unblockit.lat/
@@ -37,6 +32,7 @@ legacylinks:
- https://torlock.nocensor.work/
- https://torlock.unblockit.kim/
- https://torlock.unblockit.bz/
- https://torlock.unblockit.tv/
caps:
# dont forget to update the search fields category case block

View File

@@ -53,6 +53,8 @@ search:
rows:
selector: div.webResult:has(a.magneto[data-src])
filters:
- name: andmatch
fields:
category:

View File

@@ -35,10 +35,10 @@ caps:
- {id: 169, cat: TV/Other, desc: "TV/Boxset"}
- {id: 191, cat: TV, desc: "TV/BluTv"}
- {id: 192, cat: TV, desc: "TV/BluTv Series"}
- {id: 193, cat: Movies, desc: "TV/BluTv Film"}
- {id: 193, cat: Movies, desc: "Movies/BluTv Film"}
- {id: 188, cat: TV, desc: "TV/Netflix"}
- {id: 189, cat: TV, desc: "TV/Netflix Series"}
- {id: 190, cat: Movies, desc: "TV/Netflix Film"}
- {id: 190, cat: Movies, desc: "Movies/Netflix Film"}
- {id: 195, cat: TV, desc: "TV/Exxen"}
- {id: 171, cat: Audio, desc: "Music"}
- {id: 172, cat: Audio, desc: "Music/Turkish"}
@@ -53,6 +53,7 @@ caps:
- {id: 179, cat: PC, desc: "OS"}
- {id: 180, cat: PC/Games, desc: "PC/Games"}
- {id: 181, cat: Console, desc: "Playstation"}
- {id: 198, cat: Movies, desc: "Movies/Amazon Prime"}
modes:
search: [q]

View File

@@ -6,9 +6,9 @@ language: ru-RU
type: public
encoding: UTF-8
links:
- https://torrent.by/
certificates:
- 7536f57e6640c3fce3784736994be95585a85dfb
- http://torrent.by/
legacylinks:
- https://torrent.by/ # ERR_CONNECTION_REFUSED
caps:
categories:

View File

@@ -8,23 +8,9 @@ encoding: UTF-8
followredirect: true
links:
- https://www.torrentdownload.info/
- https://torrentdownload.unblockit.tv/
- https://torrentdownload.unblockit.how/
- https://torrentdownload.nocensor.biz/
legacylinks:
- https://torrentdownload.unblockit.pro/
- https://torrentdownload.unblockit.one/
- https://torrentdownload.black-mirror.xyz/
- https://torrentdownload.unblocked.casa/
- https://torrentdownload.proxyportal.fun/
- https://torrentdownload.uk-unblock.xyz/
- https://torrentdownload.ind-unblock.xyz/
- https://torrentdownload.unblockit.me/
- https://torrentdownload.unblockit.pw/
- https://torrentdownload.unblockit.id/
- https://torrentdownload.unblockit.win/
- https://torrentdownload.unblocked.bar/
- https://torrentdownload.proxyportal.pw/
- https://torrentdownload.uk-unblock.pro/
- https://torrentdownload.unblockit.top/
- https://torrentdownload.unblockit.lat/
- https://torrentdownload.unblockit.app/
@@ -44,6 +30,7 @@ legacylinks:
- https://torrentdownload.nocensor.work/
- https://torrentdownload.unblockit.kim/
- https://torrentdownload.unblockit.bz/
- https://torrentdownload.unblockit.tv/
caps:
categorymappings:

View File

@@ -9,24 +9,9 @@ followredirect: true
links:
- https://www.torrentdownloads.info/
- https://www.torrentdownloads.pro/
- https://torrentdownloads.unblockit.tv/
- https://torrentdownloads.unblockit.how/
- https://torrentdownloads.nocensor.biz/
legacylinks:
- https://torrentdownloads.unblockit.pro/
- https://torrentdownloads.unblockit.one/
- https://torrentdownloads.black-mirror.xyz/
- https://torrentdownloads.unblocked.casa/
- https://torrentdownloads.proxyportal.fun/
- https://torrentdownloads.uk-unblock.xyz/
- https://torrentdownloads.ind-unblock.xyz/
- https://torrentdownloads.unblockit.me/
- https://torrentdownloads.unblockit.pw/
- https://torrentdownloads.unblockit.id/
- https://torrentdownloads.unblockit.win/
- https://torrentdownloads.unblocked.bar/
- https://torrentdownloads.proxyportal.pw/
- https://torrentdownloads.uk-unblock.pro/
- https://torrentdownloads.unblockit.top/
- https://torrentdownloads.unblockit.lat/
- https://torrentdownloads.unblockit.app/
- https://torrentdownloads.unblocked.rest/
@@ -46,6 +31,7 @@ legacylinks:
- https://torrentdownloads.nocensor.work/
- https://torrentdownloads.unblockit.kim/
- https://torrentdownloads.unblockit.bz/
- https://torrentdownloads.unblockit.tv/
caps:
categorymappings:

View File

@@ -9,13 +9,9 @@ followredirect: true
links:
- https://www.torrentfunk.com/
- https://www.torrentfunk2.com/
- https://torrentfunk.unblockit.tv/
- https://torrentfunk.unblockit.how/
- https://torrentfunk.nocensor.biz/
legacylinks:
- https://torrentfunk.unblockit.pro/
- https://torrentfunk.unblockit.one/
- https://torrentfunk.unblockit.me/
- https://torrentfunk.unblockit.pw/
- https://torrentfunk.unblockit.id/
- https://torrentfunk.unblockit.win/
- https://torrentfunk.unblockit.top/
@@ -35,6 +31,7 @@ legacylinks:
- https://torrentfunk.nocensor.work/
- https://torrentfunk.unblockit.kim/
- https://torrentfunk.unblockit.bz/
- https://torrentfunk.unblockit.tv/
caps:
categorymappings:
@@ -62,7 +59,7 @@ settings: []
search:
paths:
# https://www.torrentfunk.com/all/torrents/morty-402-castellano.html
- path: "all/torrents/{{ .Keywords }}.html"
- path: "all/torrents/{{ if .Keywords }}{{ .Keywords }}{{ else }}{{ .Today.Year }}{{ end }}.html"
keywordsfilters:
- name: re_replace
args: ["[\\s]+", "-"]

View File

@@ -11,28 +11,11 @@ links:
- https://torrentgalaxy.mx/
- https://torrentgalaxy.su/
- https://torrentgalaxy.unblockninja.com/
- https://torrentgalaxy.unblockit.tv/
- https://torrentgalaxy.unblockit.how/
- https://torrentgalaxy.nocensor.biz/
legacylinks:
- https://torrentgalaxy.org/ # redirects to *.to
- https://torrentgalaxy.unblockit.pro/
- https://torrentgalaxy.unblockit.one/
- https://tgx.black-mirror.xyz/
- https://tgx.unblocked.casa/
- https://tgx.proxyportal.fun/
- https://tgx.uk-unblock.xyz/
- https://tgx.ind-unblock.xyz/
- https://torrentgalaxy.unblockit.me/
- https://torrentgalaxy.unblockit.pw/
- https://torrentgalaxy.unblockit.id/
- https://torrentgalaxy.unblockit.win/
- https://torrentgalaxy.pw/ # proxy list only
- https://tgx.unblocked.bar/
- https://tgx.proxyportal.pw/
- https://tgx.uk-unblock.pro/
- https://torrentgalaxy.unblockit.top/
- https://torrentgalaxy.unblockit.lat/
- https://torrentgalaxy.unblockit.app/
- https://torrentgalaxy.root.yt/
- https://tgx.unblocked.rest/
- https://torrentgalaxy.unblockit.dev/
@@ -50,6 +33,7 @@ legacylinks:
- https://torrentgalaxy.nocensor.work/
- https://torrentgalaxy.unblockit.kim/
- https://torrentgalaxy.unblockit.bz/
- https://torrentgalaxy.unblockit.tv/
caps:
categorymappings:

View File

@@ -87,13 +87,12 @@ caps:
book-search: [q]
settings:
- name: cookie
- name: username
type: text
label: Cookie
- name: info
type: info
label: How to get the Cookie
default: "<ol><li>Login to this tracker in your browser<li>Open the <b>DevTools</b> panel by pressing <b>F12</b><li>Select the <b>Network</b> tab<li>Click on the <b>Doc</b> button<li>Refresh the page by pressing <b>F5</b><li>Select the <b>Headers</b> tab<li>Find 'cookie:' in the <b>Request Headers</b> section<li>Copy & paste the whole cookie string to here</ol>"
label: Username
- name: password
type: password
label: Password
- name: freeleech
type: checkbox
label: Search freeleech only
@@ -119,15 +118,20 @@ settings:
asc: asc
login:
method: cookie
path: lt/account-login.php
method: post
inputs:
cookie: "{{ .Config.cookie }}"
username: "{{ .Config.username }}"
password: "{{ .Config.password }}"
error:
- selector: div.klaida
- selector: p.error_text
test:
path: lt/torrents.php
path: lt/torrents
search:
paths:
- path: lt/torrents.php
- path: lt/torrents
inputs:
$raw: "{{ range .Categories }}cats[]={{.}}&{{end}}"
search: "{{ .Keywords }}"

View File

@@ -28,6 +28,8 @@ search:
rows:
selector: div.moviefilm
filters:
- name: andmatch
fields:
category:

View File

@@ -7,10 +7,8 @@ type: public
encoding: UTF-8
followredirect: true
links:
- https://torrentqq123.com/
- https://torrentqq127.com/
legacylinks:
- https://torrentqq103.com/
- https://torrentqq104.com/
- https://torrentqq105.com/
- https://torrentqq106.com/
- https://torrentqq107.com/
@@ -28,6 +26,9 @@ legacylinks:
- https://torrentqq120.com/
- https://torrentqq121.com/
- https://torrentqq122.com/
- https://torrentqq123.com/
- https://torrentqq125.com/
- https://torrentqq126.com/
caps:
categorymappings:

View File

@@ -9,7 +9,6 @@ links:
- https://torrentseeds.org/
caps:
# dont forget to update the case block in the search fields category
categorymappings:
- {id: 1, cat: PC/0day, desc: "Apps"}
- {id: 5, cat: TV/Anime, desc: "Anime"}
@@ -22,12 +21,14 @@ caps:
- {id: 8, cat: TV, desc: "Packs"}
- {id: 3206, cat: TV/Foreign, desc: "TV/Foreign"}
- {id: 3207, cat: Movies/Foreign, desc: "Movies/Foreign"}
- {id: 3208, cat: Books/EBook, desc: "E-Books"}
modes:
search: [q]
tv-search: [q, season, ep, imdbid, tvdbid]
movie-search: [q, imdbid, tmdbid]
music-search: [q]
book-search: [q]
settings:
- name: apikey
@@ -58,6 +59,16 @@ settings:
desc: desc
asc: asc
login:
path: /api/torrents
method: get
inputs:
api_token: "{{ .Config.apikey }}"
error:
- selector: a[href*="/login"]
message:
text: "The API key was not accepted by {{ .Config.sitelink }}."
search:
paths:
# https://hdinnovations.github.io/UNIT3D-Community-Edition-Docs/api_endpoints.html
@@ -73,20 +84,8 @@ search:
selector: meta.total
fields:
category:
categorydesc:
selector: category
case:
"Apps": 1
"Games": 2
"Movies": 3
"Music": 4
"Anime": 5
"Porn": 6
"Sport": 7
"Packs": 8
"TV": 3205
"TV/Foreign": 3206
"Movies/Foreign": 3207
title:
selector: name
details:

View File

@@ -7,7 +7,7 @@ type: public
encoding: UTF-8
followredirect: true
links:
- https://torrentsir45.com/
- https://torrentsir47.com/
legacylinks:
- https://torrentsir31.com/
- https://torrentsir33.com/
@@ -22,6 +22,8 @@ legacylinks:
- https://torrentsir42.com/
- https://torrentsir43.com/
- https://torrentsir44.com/
- https://torrentsir45.com/
- https://torrentsir46.com/
caps:
categorymappings:

View File

@@ -7,10 +7,9 @@ type: public
encoding: UTF-8
followredirect: true
links:
- https://torrentview49.com/
- https://torrentview50.com/
legacylinks:
- https://torrentview.net/
- https://torrentview27.com/
- https://torrentview28.com/
- https://torrentview29.com/
- https://torrentview30.com/
@@ -30,6 +29,7 @@ legacylinks:
- https://torrentview45.com/
- https://torrentview46.com/
- https://torrentview47.com/
- https://torrentview49.com/
caps:
categorymappings:

View File

@@ -7,7 +7,7 @@ type: public
encoding: UTF-8
followredirect: true
links:
- https://torrentwiz36.com/
- https://torrentwiz37.com/
legacylinks:
- https://torrentwiz22.me/
- https://torrentwiz23.me/
@@ -23,6 +23,7 @@ legacylinks:
- https://torrentwiz33.com/
- https://torrentwiz34.com/
- https://torrentwiz35.com/
- https://torrentwiz36.com/
caps:
categorymappings:

View File

@@ -0,0 +1,175 @@
---
id: trackeros-api
name: Trackeros (API)
description: "Trackeros is a Private SPANISH Tracker for HD MOVIES / TV / GENERAL"
language: es-ES
type: private
encoding: UTF-8
links:
- https://trackeros.tk/
caps:
categorymappings:
- {id: 1, cat: Movies, desc: "Películas"}
- {id: 2, cat: TV, desc: "Series"}
- {id: 3, cat: Audio, desc: "Musica"}
- {id: 7, cat: Audio/Video, desc: "Espectáculos"}
- {id: 8, cat: TV/Documentary, desc: "Documentales"}
- {id: 4, cat: Console, desc: "Consolas"}
modes:
search: [q]
tv-search: [q, season, ep, imdbid, tvdbid]
movie-search: [q, imdbid, tmdbid]
music-search: [q]
book-search: [q]
settings:
- name: apikey
type: text
label: APIKey
- name: info_key
type: info
label: About your API key
default: "Find or Generate a new API Token by accessing your <a href=\"https://trackeros.tk/\" target =_blank>Trackeros</a> account <i>My Security</i> page and clicking on the <b>API Token</b> tab."
- name: freeleech
type: checkbox
label: Search freeleech only
default: false
- name: sort
type: select
label: Sort requested from site
default: created_at
options:
created_at: created
seeders: seeders
size: size
name: title
- name: type
type: select
label: Order requested from site
default: desc
options:
desc: desc
asc: asc
login:
path: /api/torrents
method: get
inputs:
api_token: "{{ .Config.apikey }}"
error:
- selector: a[href*="/login"]
message:
text: "The API key was not accepted by {{ .Config.sitelink }}."
search:
paths:
# https://hdinnovations.github.io/UNIT3D-Community-Edition-Docs/api_endpoints.html
# https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php
- path: "/api/torrents/filter?api_token={{ .Config.apikey }}&name={{ if .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}{{ if .Query.TMDBID }}&tmdbId={{ .Query.TMDBID }}{{ else }}{{ end }}{{ if .Query.IMDBIDShort }}&imdbId={{ .Query.IMDBIDShort }}{{ else }}{{ end }}{{ if .Query.TVDBID }}&tvdbId={{ .Query.TVDBID }}{{ else }}{{ end }}&sortField={{ .Config.sort }}&sortDirection={{ .Config.type }}&perPage=100&page=1{{ range .Categories }}&categories[]={{.}}{{end}}{{ if .Config.freeleech }}&free=1{{ else }}{{ end }}"
response:
type: json
attribute: attributes
rows:
selector: data
count:
selector: meta.total
fields:
categorydesc:
selector: category
title:
selector: name
filters:
- name: re_replace
args: ["[\\[\\]]", " "] # remove [ and ]
- name: re_replace
args: [" +", " "] # remove duplicate spaces
- name: re_replace
args: ["(?i)microhd", "BDRip MicroHD"]
- name: re_replace
args: ["(?i)(m1080p|mhd1080p)", "1080p MicroHD"]
- name: re_replace
args: ["(?i)(m720p|mhd720p)", "720p MicroHD"]
- name: re_replace
args: ["(?i)brrip", "BDRip"]
- name: re_replace # Temporada 1 to S01
args: ["(?i)\\btemporada *(\\d{1,2})\\b", "S$1"]
- name: re_replace # T1 to S01
args: ["\\bT(\\d{1,2})\\b", "S$1"]
- name: re_replace # S1 to S01 / E1 to E01
args: ["\\b([SE])(\\d)\\b", "${1}0$2"]
- name: re_replace # S01 E01 to S01E01 / T01E01 to S01E01
args: ["\\b[ST](\\d{1,2}) *E(\\d{1,2})\\b", "S$1E$2"]
- name: re_replace # S1 a S2 to S1-2
args: ["(S\\d{1,2})( a S*| A S*| a la S*| A LA S*)(\\d{1,2})", "$1-$3"]
- name: re_replace # S01E01 E02 E03 to S01E01-02-03 (2 episodes)
args: ["([E-]\\d{1,2})( E| a E*| A E*| al E*| AL E*)(\\d{1,2})", "$1-$3"]
- name: re_replace # continuation (3 episodes)
args: ["([E-]\\d{1,2})( E| a E*| A E*| al E*| AL E*)(\\d{1,2})", "$1-$3"]
- name: re_replace # continuation (4 episodes)
args: ["([E-]\\d{1,2})( E| a E*| A E*| al E*| AL E*)(\\d{1,2})", "$1-$3"]
- name: re_replace # continuation (5 episodes)
args: ["([E-]\\d{1,2})( E| a E*| A E*| al E*| AL E*)(\\d{1,2})", "$1-$3"]
- name: re_replace # continuation (6 episodes)
args: ["([E-]\\d{1,2})( E| a E*| A E*| al E*| AL E*)(\\d{1,2})", "$1-$3"]
- name: re_replace # continuation (7 episodes)
args: ["([E-]\\d{1,2})( E| a E*| A E*| al E*| AL E*)(\\d{1,2})", "$1-$3"]
- name: re_replace # continuation (8 episodes)
args: ["([E-]\\d{1,2})( E| a E*| A E*| al E*| AL E*)(\\d{1,2})", "$1-$3"]
- name: re_replace # continuation (9 episodes)
args: ["([E-]\\d{1,2})( E| a E*| A E*| al E*| AL E*)(\\d{1,2})", "$1-$3"]
- name: re_replace # continuation (10 episodes)
args: ["([E-]\\d{1,2})( E| a E*| A E*| al E*| AL E*)(\\d{1,2})", "$1-$3"]
- name: re_replace # 2x6 to S02E06
args: ["\\b(\\d{1,2})x(\\d{1,2})\\b", "S$1E$2"]
- name: append
args: " MULTi/SPANiSH" # Add language for Sonarr/Radarr
details:
selector: details_link
download:
selector: download_link
poster:
selector: poster
imdbid:
selector: imdb_id
filters:
- name: replace
args: ["https://via.placeholder.com/90x135", ""]
tmdbid:
selector: tmdb_id
tvdbid:
selector: tvdb_id
files:
selector: num_file
seeders:
selector: seeders
leechers:
selector: leechers
grabs:
selector: times_completed
date:
# 2021-10-18T00:34:50.000000Z"
selector: created_at
size:
selector: size
downloadvolumefactor:
# api returns 0=false, 1=true
selector: freeleech
case:
0: 1 # not free
1: 0 # freeleech
uploadvolumefactor:
# api returns 0=false, 1=true
selector: double_upload
case:
0: 1 # normal
1: 2 # double
minimumratio:
text: 0.4
minimumseedtime:
# 32 hours => 32 * 60 * 60 seconds
text: 115200
# json UNIT3D 5.3.0

View File

@@ -1,236 +0,0 @@
---
id: trackeros
name: Trackeros
description: "Trackeros is a Private SPANISH Tracker for HD MOVIES / TV / GENERAL"
language: es-ES
type: private
encoding: UTF-8
links:
- https://trackeros.tk
caps:
categorymappings:
- {id: 1, cat: Movies, desc: "Películas"}
- {id: 2, cat: TV, desc: "Series"}
- {id: 3, cat: Audio, desc: "Música"}
- {id: 4, cat: Console, desc: "Juegos"}
- {id: 8, cat: TV/Documentary, desc: "Documentales"}
- {id: 7, cat: Audio/Video, desc: "Conciertos"}
- {id: 5, cat: PC, desc: "Aplicaciones"}
- {id: 6, cat: Other, desc: "Otros"}
modes:
search: [q]
tv-search: [q, season, ep, imdbid, tvdbid]
movie-search: [q, imdbid, tmdbid]
music-search: [q]
book-search: [q]
settings:
- name: username
type: text
label: Username
- name: password
type: password
label: Password
- name: freeleech
type: checkbox
label: Search freeleech only
default: false
- name: sort
type: select
label: Sort requested from site
default: created_at
options:
created_at: created
seeders: seeders
size: size
name: title
- name: type
type: select
label: Order requested from site
default: desc
options:
desc: desc
asc: asc
login:
path: login
method: form
form: form[action$="/login"]
inputs:
username: "{{ .Config.username }}"
password: "{{ .Config.password }}"
remember: on
selectorinputs:
_token:
selector: input[name="_token"]
attribute: value
error:
- selector: div#ERROR_COPY
# test:
# path: /
# selector: a[href$="/logout"]
search:
paths:
- path: torrents/filter
inputs:
$raw: "{{ range .Categories }}categories[]={{.}}&{{end}}"
search: "{{ if .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}" # for dashboard imdbid search
description: ""
uploader: ""
imdb: "{{ .Query.IMDBIDShort }}"
tvdb: "{{ .Query.TVDBID }}"
tmdb: "{{ .Query.TMDBID }}"
mal: ""
igdb: ""
start_year: ""
end_year: ""
sorting: "{{ .Config.sort }}"
direction: "{{ .Config.type }}"
qty: 100
page: 0
view: list
freeleech: "{{ if .Config.freeleech }}1{{ else }}{{ end }}"
rows:
selector: table > tbody > tr
fields:
category:
selector: a[href*="/categories/"]
attribute: href
filters:
- name: regexp
args: "/categories/(\\d+)"
title:
selector: a.view-torrent
filters:
- name: re_replace
args: ["[\\[\\]]", " "] # remove [ and ]
- name: re_replace
args: [" +", " "] # remove duplicate spaces
- name: re_replace
args: ["(?i)microhd", "BDRip MicroHD"]
- name: re_replace
args: ["(?i)(m1080p|mhd1080p)", "1080p MicroHD"]
- name: re_replace
args: ["(?i)(m720p|mhd720p)", "720p MicroHD"]
- name: re_replace
args: ["(?i)brrip", "BDRip"]
- name: re_replace # Temporada 1 to S01
args: ["(?i)\\btemporada *(\\d{1,2})\\b", "S$1"]
- name: re_replace # T1 to S01
args: ["\\bT(\\d{1,2})\\b", "S$1"]
- name: re_replace # S1 to S01 / E1 to E01
args: ["\\b([SE])(\\d)\\b", "${1}0$2"]
- name: re_replace # S01 E01 to S01E01 / T01E01 to S01E01
args: ["\\b[ST](\\d{1,2}) *E(\\d{1,2})\\b", "S$1E$2"]
- name: re_replace # S1 a S2 to S1-2
args: ["(S\\d{1,2})( a S*| A S*| a la S*| A LA S*)(\\d{1,2})", "$1-$3"]
- name: re_replace # S01E01 E02 E03 to S01E01-02-03 (2 episodes)
args: ["([E-]\\d{1,2})( E| a E*| A E*| al E*| AL E*)(\\d{1,2})", "$1-$3"]
- name: re_replace # continuation (3 episodes)
args: ["([E-]\\d{1,2})( E| a E*| A E*| al E*| AL E*)(\\d{1,2})", "$1-$3"]
- name: re_replace # continuation (4 episodes)
args: ["([E-]\\d{1,2})( E| a E*| A E*| al E*| AL E*)(\\d{1,2})", "$1-$3"]
- name: re_replace # continuation (5 episodes)
args: ["([E-]\\d{1,2})( E| a E*| A E*| al E*| AL E*)(\\d{1,2})", "$1-$3"]
- name: re_replace # continuation (6 episodes)
args: ["([E-]\\d{1,2})( E| a E*| A E*| al E*| AL E*)(\\d{1,2})", "$1-$3"]
- name: re_replace # continuation (7 episodes)
args: ["([E-]\\d{1,2})( E| a E*| A E*| al E*| AL E*)(\\d{1,2})", "$1-$3"]
- name: re_replace # continuation (8 episodes)
args: ["([E-]\\d{1,2})( E| a E*| A E*| al E*| AL E*)(\\d{1,2})", "$1-$3"]
- name: re_replace # continuation (9 episodes)
args: ["([E-]\\d{1,2})( E| a E*| A E*| al E*| AL E*)(\\d{1,2})", "$1-$3"]
- name: re_replace # continuation (10 episodes)
args: ["([E-]\\d{1,2})( E| a E*| A E*| al E*| AL E*)(\\d{1,2})", "$1-$3"]
- name: re_replace # 2x6 to S02E06
args: ["\\b(\\d{1,2})x(\\d{1,2})\\b", "S$1E$2"]
- name: append
args: " MULTi/SPANiSH" # Add language for Sonarr/Radarr
download:
selector: a[href*="/download/"]
attribute: href
details:
selector: a.view-torrent
attribute: href
poster:
selector: div.torrent-poster img
attribute: src
filters:
- name: replace
args: ["&w=52&h=80", "&w=180&h=270"] # for display on dashboard
- name: replace
args: ["https://images.weserv.nl/?url=https://via.placeholder.com/52x80&w=180&h=270", ""]
size:
selector: td:nth-last-child(4)
seeders:
selector: td:nth-last-child(3)
leechers:
selector: td:nth-last-child(2)
grabs:
selector: td:nth-last-child(1)
date:
selector: time
filters:
# translations for Turkish|Estonian|Danish|Italian|Polish|Norwegian|Portuguese|Czech|Russian|Romanian|Spanish|French|German|Bulgarian|Dutch|Chinese|Japanese|Swedish
- name: re_replace
args: ["(?i)(önce|tagasi|geleden|fa|temu|siden|há|atrás|nazpět|назад|acum|în urmă|hace|il y a|vor|преди|前|sedan)", " ago"]
- name: re_replace
args: ["(?i)(saniye|sekundit|sekunder|secondi|sekund|segundos|sekundami|секунд|secunde|secondes|Sekunden|секунди|seconden|秒前)", "seconds"]
- name: re_replace
args: ["(?i)(minutit|minutter|minuti|minuty|minutos|минуты|минут|Minuten|минути|minuten|minuter)", "minutes"]
- name: re_replace
args: ["(?i)(dakika|minut|minuto|minuta|minutt|минута|Minute|minuut|分钟|分)", " minute"]
- name: re_replace
args: ["(?i)(tundi|timer|ore|godziny|horas|hodiny|hoden|часа|часов|ore|heures|Stunden|timmar)", "hours"]
- name: re_replace
args: ["(?i)(saat|tund|time|ora|godzina|hora|hodina|час|oră|heure|Stunde|uur|小时|時間|timme)", " hour"]
- name: re_replace
args: ["(?i)(päeva|dage|giorni|dni|dias|dny|дня|дней|zile|días|jours|Tagen|дни|dagen|dagar)", "days"]
- name: re_replace
args: ["(?i)(gün|päev|dag|giorno|dzień|dia|den|день|zi|día|jour|Tag|ден|天|日)", " day"]
- name: re_replace
args: ["(?i)(nädalat|uger|settimane|tygodnie|uker|semanas|týdny|недели|недель|săptămâni|semaines|Wochen|седмици|weken|veckor)", "weeks"]
- name: re_replace
args: ["(?i)(hafta|nädal|uge|settimana|tydzień|uke|semana|týden|неделю|săptămână|semaine|Woche|седмица|周|週間|vecka)", " week"]
- name: re_replace
args: ["(?i) (ay)", "month"]
- name: re_replace
args: ["(?i)(kuud|måneder|mesi|miesiące|meses|měsíce|месяца|месяцев|luni|meses|mois|Monaten|месеца|maanden|månader)", "months"]
- name: re_replace
args: ["(?i)(kuu|måned|mese|miesiąc|mês|měsíc|месяц|lună|mes|Monat|месец|maand|个月|ヶ月|månad)", " month"]
- name: re_replace
args: ["(?i)(aastat|anni|lata|anos|roky|года|ani|años|ans|Jahren|години)", " years"]
- name: re_replace
args: ["(?i)(yil|aasta|år|anno|rok|ano|год|año|Jahr|година|jaar|年)", " year"]
- name: re_replace
args: ["(?i) (an)", "year"]
- name: re_replace
args: ["(?i)(För |und)", ""] # Misc removals
- name: timeago
downloadvolumefactor:
case:
i[class*="fa-id-badge text-orange"]: 0 # 24 Hour FreeLeech From BON Store
i[class*="fa-trophy text-purple"]: 0 # Special FreeLeech For Certain User Groups
i[class*="fa-star text-bold"]: 0 # Freeleech From Token
i[class*="fa-coins text-bold"]: 0 # Freeleech From Token
i[class*="fa-globe text-blue"]: 0 # Global Freeleech
i[class*="fa-star text-gold"]: 0 # Freeleech
i[class*="fa-certificate text-pink"]: 0 # Featured Torrent
"*": 1
uploadvolumefactor:
case:
i[class*="fa-gem text-green"]: 2 # Single Torrent Double Upload
i[class*="fa-globe text-green"]: 2 # Global Double Upload
i[class*="fa-certificate text-pink"]: 2 # Featured Torrent
"*": 1
minimumratio:
text: 0.4
minimumseedtime:
# 32 hours => 32 * 60 * 60 seconds
text: 115200
# UNIT3D 4.x.x

View File

@@ -0,0 +1,125 @@
---
id: uhd-heaven
name: UHD-HEAVEN
description: "UHD-HEAVEN is a Private Torrent Tracker for UHD MOVIES / TV"
language: en-US
type: private
encoding: UTF-8
links:
- https://uhd-heaven.xyz/
caps:
categorymappings:
- {id: 1, cat: Movies, desc: "Movies"}
- {id: 2, cat: TV, desc: "TV"}
modes:
search: [q]
tv-search: [q, season, ep, imdbid, tvdbid]
movie-search: [q, imdbid, tmdbid]
settings:
- name: apikey
type: text
label: APIKey
- name: info_key
type: info
label: About your API key
default: "Find or Generate a new API Token by accessing your <a href=\"https://uhd-heaven.xyz/\" target =_blank>UHD-HEAVEN</a> account <i>My Security</i> page and clicking on the <b>API Token</b> tab."
- name: freeleech
type: checkbox
label: Search freeleech only
default: false
- name: sort
type: select
label: Sort requested from site
default: created_at
options:
created_at: created
seeders: seeders
size: size
name: title
- name: type
type: select
label: Order requested from site
default: desc
options:
desc: desc
asc: asc
login:
path: /api/torrents
method: get
inputs:
api_token: "{{ .Config.apikey }}"
error:
- selector: a[href*="/login"]
message:
text: "The API key was not accepted by {{ .Config.sitelink }}."
search:
paths:
# https://hdinnovations.github.io/UNIT3D-Community-Edition-Docs/api_endpoints.html
# https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php
- path: "/api/torrents/filter?api_token={{ .Config.apikey }}&name={{ if .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}{{ if .Query.TMDBID }}&tmdbId={{ .Query.TMDBID }}{{ else }}{{ end }}{{ if .Query.IMDBIDShort }}&imdbId={{ .Query.IMDBIDShort }}{{ else }}{{ end }}{{ if .Query.TVDBID }}&tvdbId={{ .Query.TVDBID }}{{ else }}{{ end }}&sortField={{ .Config.sort }}&sortDirection={{ .Config.type }}&perPage=100&page=1{{ range .Categories }}&categories[]={{.}}{{end}}{{ if .Config.freeleech }}&free=1{{ else }}{{ end }}"
response:
type: json
attribute: attributes
rows:
selector: data
count:
selector: meta.total
fields:
categorydesc:
selector: category
title:
selector: name
details:
selector: details_link
download:
selector: download_link
poster:
selector: poster
filters:
- name: replace
args: ["https://via.placeholder.com/90x135", ""]
imdbid:
selector: imdb_id
tmdbid:
selector: tmdb_id
tvdbid:
selector: tvdb_id
files:
selector: num_file
seeders:
selector: seeders
leechers:
selector: leechers
grabs:
selector: times_completed
date:
# 2021-10-18T00:34:50.000000Z"
selector: created_at
size:
selector: size
downloadvolumefactor:
# api returns 0=false, 1=true
selector: freeleech
case:
0: 1 # not free
1: 0 # freeleech
uploadvolumefactor:
# api returns 0=false, 1=true
selector: double_upload
case:
0: 1 # normal
1: 2 # double
# global MR is 0.4 but torrents must be seeded for 3 days regardless of ratio
# minimumratio:
# text: 0.4
minimumseedtime:
# 7 days (as seconds = 7 x 24 x 60 x 60)
text: 604800
# json UNIT3D 5.3.0

View File

@@ -123,8 +123,14 @@ search:
sort: "{{ .Config.sort }}"
type: "{{ .Config.type }}"
keywordsfilters:
- name: re_replace
args: ["(\\w+)", " +$1"] # prepend + to each word
rows:
selector: table.table-bordered tr:has(a[href^="download.php?torrent="])
filters:
- name: andmatch
fields:
category:

View File

@@ -9,7 +9,7 @@ requestDelay: 2.5 # 2.5 requests per second (2 causes problems)
links:
# dont forget to update the details, download and poster replace args
- https://yts.mx/
- https://yts.unblockit.tv/
- https://yts.unblockit.how/
- https://yts.unblockninja.com/
- https://yts.nocensor.biz/
legacylinks:
@@ -31,6 +31,7 @@ legacylinks:
- https://yts.nocensor.work/
- https://yts.unblockit.kim/
- https://yts.unblockit.bz/
- https://yts.unblockit.tv/
caps:
categorymappings:

View File

@@ -6,7 +6,7 @@ language: fr-FR
type: public
encoding: UTF-8
links:
- https://www.zetorrents.tv/
- https://www.zetorrents.bz/
legacylinks:
- https://www.zetorrents.co/
- https://www.zetorrents.io/
@@ -17,6 +17,7 @@ legacylinks:
- https://www.zetorrents.org/
- https://wvw.zetorrents.org/
- https://www.zetorrents.cc/
- https://www.zetorrents.tv/
caps:
categories:

View File

@@ -81,6 +81,8 @@ search:
rows:
selector: "table[style=\"border: solid #000000 1px;\"] > tbody > tr:has(a[href^=\"takedownload.php?id=\"])"
filters:
- name: andmatch
fields:
category:

View File

@@ -9,23 +9,9 @@ followredirect: true
links:
- https://zooqle.com/
- https://zooqle.unblockninja.com/
- https://zooqle.unblockit.tv/
- https://zooqle.unblockit.how/
- https://zooqle.nocensor.biz/
legacylinks:
- https://zooqle.unblockit.pro/
- https://zooqle.unblockit.one/
- https://zooqle.black-mirror.xyz/
- https://zooqle.unblocked.casa/
- https://zooqle.proxyportal.fun/
- https://zooqle.uk-unblock.xyz/
- https://zooqle.ind-unblock.xyz/
- https://zooqle.unblockit.me/
- https://zooqle.unblockit.pw/
- https://zooqle.unblockit.id/
- https://zooqle.unblockit.win/
- https://zooqle.unblocked.bar/
- https://zooqle.proxyportal.pw/
- https://zooqle.uk-unblock.pro/
- https://zooqle.unblockit.top/
- https://zooqle.unblockit.lat/
- https://zooqle.unblockit.app/
@@ -45,6 +31,7 @@ legacylinks:
- https://zooqle.nocensor.work/
- https://zooqle.unblockit.kim/
- https://zooqle.unblockit.bz/
- https://zooqle.unblockit.tv/
caps:
categorymappings:

View File

@@ -132,8 +132,10 @@ namespace Jackett.Common.Indexers
foreach (var searchString in searchStrings)
{
var queryCollection = new NameValueCollection();
queryCollection.Add("action", "basic");
var queryCollection = new NameValueCollection
{
{ "action", "basic" }
};
if (!string.IsNullOrWhiteSpace(searchString))
{
@@ -169,10 +171,11 @@ namespace Jackett.Common.Indexers
var rows = dom.QuerySelectorAll("#torrent_table > tbody > tr.torrent");
foreach (var row in rows)
{
var release = new ReleaseInfo();
release.MinimumRatio = 1;
release.MinimumSeedTime = 172800; // 48 hours
var release = new ReleaseInfo
{
MinimumRatio = 1,
MinimumSeedTime = 172800 // 48 hours
};
var catStr = row.Children[0].FirstElementChild.GetAttribute("href").Split(new[] { '[', ']' })[1];
release.Category = MapTrackerCatToNewznab(catStr);

View File

@@ -95,28 +95,29 @@ namespace Jackett.Common.Indexers
Language = "pt-BR";
Type = "private";
AddCategoryMapping(14, TorznabCatType.TVAnime, "Anime");
AddCategoryMapping(3, TorznabCatType.PC0day, "Aplicativos");
AddCategoryMapping(8, TorznabCatType.Other, "Apostilas/Tutoriais");
AddCategoryMapping(19, TorznabCatType.AudioAudiobook, "Audiobook");
AddCategoryMapping(16, TorznabCatType.TVOther, "Desenho Animado");
AddCategoryMapping(18, TorznabCatType.TVDocumentary, "Documentários");
AddCategoryMapping(10, TorznabCatType.Books, "E-Books");
AddCategoryMapping(20, TorznabCatType.TVSport, "Esportes");
AddCategoryMapping(1, TorznabCatType.Movies, "Filmes");
AddCategoryMapping(12, TorznabCatType.MoviesOther, "Histórias em Quadrinhos");
AddCategoryMapping(5, TorznabCatType.Audio, "Músicas");
AddCategoryMapping(7, TorznabCatType.Other, "Outros");
AddCategoryMapping(9, TorznabCatType.BooksMags, "Revistas");
AddCategoryMapping(2, TorznabCatType.TV, "Seriados");
AddCategoryMapping(17, TorznabCatType.TV, "Shows");
AddCategoryMapping(13, TorznabCatType.TV, "Stand Up Comedy");
AddCategoryMapping(11, TorznabCatType.Other, "Video-Aula");
AddCategoryMapping(6, TorznabCatType.TV, "Vídeos de TV");
AddCategoryMapping(3, TorznabCatType.PC, "Aplicativos");
AddCategoryMapping(4, TorznabCatType.PCGames, "Jogos");
AddCategoryMapping(199, TorznabCatType.XXX, "Filmes Adultos");
AddCategoryMapping(200, TorznabCatType.XXX, "Jogos Adultos");
AddCategoryMapping(201, TorznabCatType.XXXImageSet, "Fotos Adultas");
AddCategoryMapping(5, TorznabCatType.BooksComics, "Mangás");
AddCategoryMapping(6, TorznabCatType.TV, "Vídeos de TV");
AddCategoryMapping(7, TorznabCatType.Other, "Outros");
AddCategoryMapping(8, TorznabCatType.TVSport, "Esportes");
AddCategoryMapping(9, TorznabCatType.BooksMags, "Revistas");
AddCategoryMapping(10, TorznabCatType.BooksEBook, "E-Books");
AddCategoryMapping(11, TorznabCatType.AudioAudiobook, "Audiobook");
AddCategoryMapping(12, TorznabCatType.BooksComics, "HQs");
AddCategoryMapping(13, TorznabCatType.TVOther, "Stand Up Comedy");
AddCategoryMapping(14, TorznabCatType.TVAnime, "Animes");
AddCategoryMapping(15, TorznabCatType.XXXImageSet, "Fotos Adultas");
AddCategoryMapping(16, TorznabCatType.TVOther, "Desenhos Animado");
AddCategoryMapping(17, TorznabCatType.TVDocumentary, "Documentários");
AddCategoryMapping(18, TorznabCatType.Other, "Cursos");
AddCategoryMapping(19, TorznabCatType.XXX, "Filmes Adultos");
AddCategoryMapping(20, TorznabCatType.XXXOther, "Jogos Adultos");
AddCategoryMapping(21, TorznabCatType.XXXOther, "Mangás Adultos");
AddCategoryMapping(22, TorznabCatType.XXXOther, "Animes Adultos");
AddCategoryMapping(23, TorznabCatType.XXXOther, "HQs Adultos");
}
public override async Task<IndexerConfigurationStatus> ApplyConfiguration(JToken configJson)

View File

@@ -173,9 +173,10 @@ namespace Jackett.Common.Indexers
foreach (var name in titles)
{
var release = new ReleaseInfo();
release.Title = (name + releaseInfo).Trim();
var release = new ReleaseInfo
{
Title = (name + releaseInfo).Trim()
};
// Ensure the season is defined as this tracker only deals with full seasons
if (release.Title.IndexOf("Season") == -1 && AppendSeason)
{

View File

@@ -558,6 +558,19 @@ namespace Jackett.Common.Indexers
return response.ContentBytes;
}
public virtual async Task<WebResult> DownloadImage(Uri link)
{
var uncleanLink = UncleanLink(link);
var requestLink = uncleanLink.ToString();
var referer = SiteLink;
var response = await RequestWithCookiesAsync(requestLink, null, RequestType.GET, referer);
if (response.IsRedirect)
await FollowIfRedirect(response);
return response;
}
protected async Task<WebResult> RequestWithCookiesAndRetryAsync(
string url, string cookieOverride = null, RequestType method = RequestType.GET,
string referer = null, IEnumerable<KeyValuePair<string, string>> data = null,

View File

@@ -130,13 +130,15 @@ namespace Jackett.Common.Indexers
var searchString = query.GetQueryString();
var searchUrl = BrowseUrl;
var queryCollection = new NameValueCollection();
queryCollection.Add("showsearch", "0");
queryCollection.Add("incldead", "1");
queryCollection.Add("blah", "0");
queryCollection.Add("team", "0");
queryCollection.Add("orderby", "added");
queryCollection.Add("sort", "desc");
var queryCollection = new NameValueCollection
{
{ "showsearch", "0" },
{ "incldead", "1" },
{ "blah", "0" },
{ "team", "0" },
{ "orderby", "added" },
{ "sort", "desc" }
};
if (!string.IsNullOrWhiteSpace(searchString))
queryCollection.Add("search", searchString);
@@ -156,11 +158,13 @@ namespace Jackett.Common.Indexers
foreach (var row in rows)
{
var release = new ReleaseInfo();
release.MinimumRatio = 0.7;
release.MinimumSeedTime = 172800; // 48 hours
release.DownloadVolumeFactor = 1;
release.UploadVolumeFactor = 1;
var release = new ReleaseInfo
{
MinimumRatio = 0.7,
MinimumSeedTime = 172800, // 48 hours
DownloadVolumeFactor = 1,
UploadVolumeFactor = 1
};
var flagImgs = row.QuerySelectorAll("table tbody tr:nth-of-type(1) td > img");
var flags = new List<string>();

View File

@@ -10,6 +10,7 @@ using System.Threading.Tasks;
using AngleSharp.Dom;
using AngleSharp.Html.Dom;
using AngleSharp.Html.Parser;
using AngleSharp.Xml.Parser;
using Jackett.Common.Helpers;
using Jackett.Common.Models;
using Jackett.Common.Models.IndexerConfig;
@@ -1258,19 +1259,19 @@ namespace Jackett.Common.Indexers
variables[".Query.Q"] = query.SearchTerm;
variables[".Query.Series"] = null;
variables[".Query.Ep"] = query.Episode;
variables[".Query.Season"] = query.Season;
variables[".Query.Season"] = query.Season > 0 ? query.Season.ToString() : null;
variables[".Query.Movie"] = null;
variables[".Query.Year"] = query.Year.ToString();
variables[".Query.Limit"] = query.Limit.ToString();
variables[".Query.Offset"] = query.Offset.ToString();
variables[".Query.Year"] = query.Year?.ToString() ?? null;
variables[".Query.Limit"] = query.Limit.ToString() ?? null;
variables[".Query.Offset"] = query.Offset.ToString() ?? null;
variables[".Query.Extended"] = query.Extended.ToString();
variables[".Query.Categories"] = query.Categories;
variables[".Query.APIKey"] = query.ApiKey;
variables[".Query.TVDBID"] = query.TvdbID.ToString();
variables[".Query.TVRageID"] = query.RageID;
variables[".Query.TVDBID"] = query.TvdbID?.ToString() ?? null;
variables[".Query.TVRageID"] = query.RageID?.ToString() ?? null;
variables[".Query.IMDBID"] = query.ImdbID;
variables[".Query.IMDBIDShort"] = query.ImdbIDShort;
variables[".Query.TMDBID"] = query.TmdbID.ToString();
variables[".Query.TMDBID"] = query.TmdbID?.ToString() ?? null;
variables[".Query.TVMazeID"] = null;
variables[".Query.TraktID"] = null;
variables[".Query.Album"] = query.Album;
@@ -1462,6 +1463,25 @@ namespace Jackett.Common.Indexers
else
{
try
{
IHtmlCollection<IElement> rowsDom;
if (SearchPath.Response != null && SearchPath.Response.Type.Equals("xml"))
{
var SearchResultParser = new XmlParser();
var SearchResultDocument = SearchResultParser.ParseDocument(results);
if (Search.Preprocessingfilters != null)
{
results = applyFilters(results, Search.Preprocessingfilters, variables);
SearchResultDocument = SearchResultParser.ParseDocument(results);
logger.Debug(string.Format("CardigannIndexer ({0}): result after preprocessingfilters: {1}", Definition.Id, results));
}
var rowsSelector = applyGoTemplateText(Search.Rows.Selector, variables);
rowsDom = SearchResultDocument.QuerySelectorAll(rowsSelector);
}
else
{
var SearchResultParser = new HtmlParser();
var SearchResultDocument = SearchResultParser.ParseDocument(results);
@@ -1493,9 +1513,12 @@ namespace Jackett.Common.Indexers
}
var rowsSelector = applyGoTemplateText(Search.Rows.Selector, variables);
var RowsDom = SearchResultDocument.QuerySelectorAll(rowsSelector);
rowsDom = SearchResultDocument.QuerySelectorAll(rowsSelector);
}
var Rows = new List<IElement>();
foreach (var RowDom in RowsDom)
foreach (var RowDom in rowsDom)
{
Rows.Add(RowDom);
}
@@ -1914,6 +1937,17 @@ namespace Jackett.Common.Indexers
}
value = release.Category.ToString();
break;
case "categorydesc":
var catsDesc = MapTrackerCatDescToNewznab(value);
if (catsDesc.Any())
{
if (release.Category == null || FieldModifiers.Contains("noappend"))
release.Category = catsDesc;
else
release.Category = release.Category.Union(catsDesc).ToList();
}
value = release.Category.ToString();
break;
case "size":
release.Size = ReleaseInfo.GetBytes(value);
value = release.Size.ToString();

View File

@@ -20,9 +20,8 @@ namespace Jackett.Common.Indexers
[ExcludeFromCodeCoverage]
public class Cinecalidad : BaseWebIndexer
{
private const int MaxItemsPerPage = 15;
private const int MaxSearchPageLimit = 6; // 15 items per page * 6 pages = 90
private string _language;
private const int MaxLatestPageLimit = 3; // 10 items per page * 3 pages = 30
private const int MaxSearchPageLimit = 6;
public override string[] LegacySiteLinks { get; protected set; } = {
"https://cinecalidad.website/",
@@ -41,7 +40,7 @@ namespace Jackett.Common.Indexers
ICacheService cs)
: base(id: "cinecalidad",
name: "Cinecalidad",
description: "Películas Full HD en Castellano y Latino Dual.",
description: "Películas Full HD en Latino Dual.",
link: "https://www.cinecalidad.lat/",
caps: new TorznabCapabilities
{
@@ -55,32 +54,12 @@ namespace Jackett.Common.Indexers
configData: new ConfigurationData())
{
Encoding = Encoding.UTF8;
Language = "es-ES";
Language = "es-419";
Type = "public";
var language = new ConfigurationData.SingleSelectConfigurationItem(
"Select language", new Dictionary<string, string>
{
{"castellano", "Castilian Spanish"},
{"latino", "Latin American Spanish"}
})
{
Value = "castellano"
};
configData.AddDynamic("language", language);
AddCategoryMapping(1, TorznabCatType.MoviesHD);
}
public override void LoadValuesFromJson(JToken jsonConfig, bool useProtectionService = false)
{
{
base.LoadValuesFromJson(jsonConfig, useProtectionService);
var language = (ConfigurationData.SingleSelectConfigurationItem)configData.GetDynamic("language");
_language = language?.Value ?? "castellano";
}
}
public override async Task<IndexerConfigurationStatus> ApplyConfiguration(JToken configJson)
{
LoadValuesFromJson(configJson);
@@ -97,11 +76,9 @@ namespace Jackett.Common.Indexers
var releases = new List<ReleaseInfo>();
var templateUrl = SiteLink;
if (_language.Equals("castellano"))
templateUrl += "espana/";
templateUrl += "{0}?s="; // placeholder for page
var maxPages = 2; // we scrape only 2 pages for recent torrents
var maxPages = MaxLatestPageLimit; // we scrape only 2 pages for recent torrents
if (!string.IsNullOrWhiteSpace(query.GetQueryString()))
{
templateUrl += WebUtilityHelpers.UrlEncode(query.GetQueryString(), Encoding.UTF8);
@@ -124,7 +101,7 @@ namespace Jackett.Common.Indexers
}
releases.AddRange(pageReleases);
if (pageReleases.Count < MaxItemsPerPage)
if (pageReleases.Count < 1)
break; // this is the last page
}
@@ -139,19 +116,8 @@ namespace Jackett.Common.Indexers
{
var parser = new HtmlParser();
var dom = parser.ParseDocument(results.ContentString);
var linkParent = dom.QuerySelector("li:contains('Torrent')").ParentElement;
var protectedLink = linkParent.GetAttribute("data-res");
if (protectedLink != null)
protectedLink = "protect/v.php?i=" + protectedLink;
else
protectedLink = linkParent.GetAttribute("href");
if (protectedLink.Contains("/ouo.io/"))
{
// protected link =>
// https://ouo.io/qs/qsW6rCh4?s=https://www.cinecalidad.is/protect/v2.php?i=A8--9InL&title=High+Life+%282018%29
var linkParts = protectedLink.Split('=');
protectedLink = protectedLink.Replace(linkParts[0] + "=", "");
}
var protectedLink = dom.QuerySelector("a:contains('Torrent')").GetAttribute("data-url");
protectedLink = Base64Decode(protectedLink);
protectedLink = GetAbsoluteUrl(protectedLink);
results = await RequestWithCookiesAsync(protectedLink);
@@ -176,20 +142,23 @@ namespace Jackett.Common.Indexers
var parser = new HtmlParser();
var dom = parser.ParseDocument(response.ContentString);
var rows = dom.QuerySelectorAll("div.postItem");
var rows = dom.QuerySelectorAll("article");
foreach (var row in rows)
{
if (row.QuerySelector("div.selt") != null)
continue; // we only support movies
var qLink = row.QuerySelector("a.absolute");
var qImg = row.QuerySelector("img");
if (qImg == null)
if (qLink == null || qImg == null)
continue; // skip results without image
var title = qImg.GetAttribute("title");
var title = qLink.TextContent.Trim();
if (!CheckTitleMatchWords(query.GetQueryString(), title))
continue; // skip if it doesn't contain all words
title += _language.Equals("castellano") ? " MULTi/SPANiSH" : " MULTi/LATiN SPANiSH";
title += " 1080p BDRip x264";
var poster = new Uri(GetAbsoluteUrl(qImg.GetAttribute("data-src")));
var link = new Uri(row.QuerySelector("a.postItem__back-link").GetAttribute("href"));
title += " MULTi/LATiN SPANiSH 1080p BDRip x264";
var poster = new Uri(GetAbsoluteUrl(qImg.GetAttribute("src")));
var link = new Uri(qLink.GetAttribute("href"));
var release = new ReleaseInfo
{
@@ -243,6 +212,12 @@ namespace Jackett.Common.Indexers
return SiteLink + url.TrimStart('/');
return url;
}
private string Base64Decode(string base64EncodedData)
{
var base64EncodedBytes = Convert.FromBase64String(base64EncodedData);
return Encoding.UTF8.GetString(base64EncodedBytes);
}
}
}

Some files were not shown because too many files have changed in this diff Show More