mirror of
https://github.com/Jackett/Jackett.git
synced 2025-09-10 05:43:17 +02:00
Compare commits
95 Commits
v0.20.1038
...
v0.20.1127
Author | SHA1 | Date | |
---|---|---|---|
![]() |
cdb9491593 | ||
![]() |
3aa5ef32d9 | ||
![]() |
820c5a7a0a | ||
![]() |
1b0e7a2597 | ||
![]() |
e210a4247d | ||
![]() |
ac12340857 | ||
![]() |
7212f96d29 | ||
![]() |
a7fdda8b3b | ||
![]() |
36e76ba32e | ||
![]() |
7868aa6210 | ||
![]() |
751aa4002a | ||
![]() |
ae8ba98750 | ||
![]() |
e5215db278 | ||
![]() |
fd522272df | ||
![]() |
316933d392 | ||
![]() |
5020f6d125 | ||
![]() |
42092ac416 | ||
![]() |
641dee0e59 | ||
![]() |
3d29f64831 | ||
![]() |
2c10d329f4 | ||
![]() |
623b018f89 | ||
![]() |
d3ca2654b6 | ||
![]() |
ce528825da | ||
![]() |
1a553285c7 | ||
![]() |
5b421982f9 | ||
![]() |
9ab5fc24b0 | ||
![]() |
473671d6f6 | ||
![]() |
decdd6d733 | ||
![]() |
37744807bc | ||
![]() |
1876042c51 | ||
![]() |
fb28d4093a | ||
![]() |
440f1f013d | ||
![]() |
0f5b7fea17 | ||
![]() |
1a5ed10ad6 | ||
![]() |
ad35d1bf66 | ||
![]() |
246f75b4b1 | ||
![]() |
b190f841b4 | ||
![]() |
c263dcba74 | ||
![]() |
ea6e75abb3 | ||
![]() |
e5cd53c0c9 | ||
![]() |
daa7e661b8 | ||
![]() |
47b170bd1b | ||
![]() |
8a8926323b | ||
![]() |
ca32a8aaad | ||
![]() |
3b4062f0a5 | ||
![]() |
8abc4d4f1f | ||
![]() |
7a8798da89 | ||
![]() |
1b757d9480 | ||
![]() |
c4d900cef1 | ||
![]() |
9247e3de1b | ||
![]() |
5dca4f4447 | ||
![]() |
b1904738b0 | ||
![]() |
4ffc4fa417 | ||
![]() |
4e6195947e | ||
![]() |
40d811f9c2 | ||
![]() |
fbb7bfdc7d | ||
![]() |
c998a4a522 | ||
![]() |
3f036da9de | ||
![]() |
aeacb93440 | ||
![]() |
467ae96c39 | ||
![]() |
29a05370d9 | ||
![]() |
7adc26966d | ||
![]() |
b2274030e7 | ||
![]() |
21d92cdd6d | ||
![]() |
ea4c715763 | ||
![]() |
9e4fdf8bd9 | ||
![]() |
42f95c528f | ||
![]() |
a398392758 | ||
![]() |
6a89629b7c | ||
![]() |
1bff310bc0 | ||
![]() |
7d32bcec9c | ||
![]() |
5ae601b6da | ||
![]() |
1342037802 | ||
![]() |
152fd75319 | ||
![]() |
fc1984f05c | ||
![]() |
22e3083dc1 | ||
![]() |
e5401e2332 | ||
![]() |
1cf6551bc4 | ||
![]() |
add348eebe | ||
![]() |
f4ee57612a | ||
![]() |
a90cdca8b1 | ||
![]() |
6f59a5319e | ||
![]() |
1e8d6f0f05 | ||
![]() |
7ab80d28ee | ||
![]() |
f04454a5e7 | ||
![]() |
735812c722 | ||
![]() |
f5bd4966ef | ||
![]() |
06b86b060d | ||
![]() |
e94b1a578a | ||
![]() |
da77217954 | ||
![]() |
327b4019e6 | ||
![]() |
290ec2b74f | ||
![]() |
cc2afd5a84 | ||
![]() |
cfbaf89318 | ||
![]() |
e7ffc02b67 |
52
README.md
52
README.md
@@ -27,7 +27,6 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
|
||||
|
||||
* ØMagnet
|
||||
* 1337x
|
||||
* 24rolika
|
||||
* ACG.RIP
|
||||
* ACGsou (36DM)
|
||||
* Anidex
|
||||
@@ -46,6 +45,7 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
|
||||
* BT.etree
|
||||
* BT4G
|
||||
* BTDIGG
|
||||
* BTmirror
|
||||
* BTSOW
|
||||
* Byrutor
|
||||
* comicat
|
||||
@@ -80,8 +80,9 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
|
||||
* Isohunt2
|
||||
* iTorrent
|
||||
* JAV-Torrent
|
||||
* kickasstorrents.ws
|
||||
* kickasstorrents.to
|
||||
* kickasstorrents.ws
|
||||
* Knaben
|
||||
* Legit Torrents
|
||||
* LePorno.info
|
||||
* LimeTorrents
|
||||
@@ -89,7 +90,6 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
|
||||
* LinuxTracker
|
||||
* Mac Torrents Download
|
||||
* MegaPeer
|
||||
* MejorTorrent
|
||||
* Mikan
|
||||
* MioBT
|
||||
* MixTapeTorrent
|
||||
@@ -171,7 +171,6 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
|
||||
* YourBittorrent
|
||||
* YTS.ag
|
||||
* zetorrents
|
||||
* Zooqle
|
||||
</details>
|
||||
|
||||
<details> <summary> <b> Supported Semi-Private Trackers </b> </summary>
|
||||
@@ -207,11 +206,11 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
|
||||
* Kinozal
|
||||
* LostFilm.tv
|
||||
* Magnetico (Local DHT) [[site](https://github.com/boramalper/magnetico)]
|
||||
* MVGroup Forum
|
||||
* MVGroup Main
|
||||
* Marine Tracker
|
||||
* Metal Tracker
|
||||
* MuziekFrabriek
|
||||
* MVGroup Forum
|
||||
* MVGroup Main
|
||||
* NetHD (VietTorrent)
|
||||
* PornoLab
|
||||
* PussyTorrents
|
||||
@@ -220,8 +219,9 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
|
||||
* RiperAM
|
||||
* RockBox
|
||||
* RUDUB (ex-BaibaKoTV)
|
||||
* RuTracker
|
||||
* Rustorka
|
||||
* RuTracker
|
||||
* SATClubbing
|
||||
* Sharewood
|
||||
* SkTorrent
|
||||
* SkTorrent-org
|
||||
@@ -269,7 +269,6 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
|
||||
* Aussierul.es [![(invite needed)][inviteneeded]](#)
|
||||
* AvistaZ (AsiaTorrents)
|
||||
* Back-ups [![(invite needed)][inviteneeded]](#)
|
||||
* bB [![(invite needed)][inviteneeded]](#)
|
||||
* BakaBT
|
||||
* BeiTai
|
||||
* Best-Core
|
||||
@@ -311,10 +310,10 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
|
||||
* CHDBits [![(invite needed)][inviteneeded]](#)
|
||||
* ChileBT
|
||||
* Cinecalidad
|
||||
* CinemaMovieS_ZT
|
||||
* CinemaZ (EuTorrents)
|
||||
* Cinemageddon [![(invite needed)][inviteneeded]](#)
|
||||
* CinemaMovieS_ZT
|
||||
* Cinematik [![(invite needed)][inviteneeded]](#)
|
||||
* CinemaZ (EuTorrents)
|
||||
* Classix [![(invite needed)][inviteneeded]](#)
|
||||
* Coastal-Crew
|
||||
* Concertos
|
||||
@@ -363,12 +362,13 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
|
||||
* GigaTorrents
|
||||
* GimmePeers (formerly ILT) [![(invite needed)][inviteneeded]](#)
|
||||
* GiroTorrent
|
||||
* GreatPosterWall (GPW)
|
||||
* GreekDiamond
|
||||
* Greek Team
|
||||
* HaiDan
|
||||
* Haitang
|
||||
* HappyFappy
|
||||
* Hawke-uno [![(invite needed)][inviteneeded]](#)
|
||||
* Hawke-uno
|
||||
* HD Dolby
|
||||
* HD-Bits.com [![(invite needed)][inviteneeded]](#)
|
||||
* HD-Forever (HDF)
|
||||
@@ -397,19 +397,16 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
|
||||
* HDU
|
||||
* HDZone
|
||||
* Hebits
|
||||
* HellasTZ
|
||||
* Hidden-Palace
|
||||
* House of Devil
|
||||
* HQSource (HQS)
|
||||
* Il Corsaro Verde
|
||||
* Indietorrents [![(invite needed)][inviteneeded]](#)
|
||||
* IPTorrents (IPT)
|
||||
* ImmortalSeed (iS)
|
||||
* Immortuos [![(invite needed)][inviteneeded]](#)
|
||||
* Immortuos
|
||||
* Indietorrents [![(invite needed)][inviteneeded]](#)
|
||||
* Insane Tracker
|
||||
* IPTorrents (IPT)
|
||||
* JME-REUNIT3D
|
||||
* JPopsuki [![(invite needed)][inviteneeded]](#)
|
||||
* JPopsuki
|
||||
* JPTV
|
||||
* Karagarga
|
||||
* Keep Friends [![(invite needed)][inviteneeded]](#)
|
||||
@@ -448,6 +445,7 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
|
||||
* Moviesite
|
||||
* MyAnonamouse (MAM)
|
||||
* MySpleen [![(invite needed)][inviteneeded]](#)
|
||||
* NBTorrents
|
||||
* NCore
|
||||
* Nebulance (NBL) (TransmiTheNet)
|
||||
* NetCosmo
|
||||
@@ -472,8 +470,8 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
|
||||
* PiXELHD (PxHD) [![(invite needed)][inviteneeded]](#)
|
||||
* PolishSource (PS)
|
||||
* PolishTracker
|
||||
* PornBits (PB)
|
||||
* Pornbay [![(invite needed)][inviteneeded]](#)
|
||||
* PornBits (PB)
|
||||
* PotUK
|
||||
* Pretome
|
||||
* PrivateHD (PHD)
|
||||
@@ -493,9 +491,9 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
|
||||
* R3V WTF! [![(invite needed)][inviteneeded]](#)
|
||||
* Racing4Everyone (R4E)
|
||||
* RacingForMe (RFM)
|
||||
* RedBits
|
||||
* Red Star Torrent (RST) [![(invite needed)][inviteneeded]](#)
|
||||
* Redacted (PassTheHeadphones)
|
||||
* RedBits
|
||||
* Resurrect The Net
|
||||
* RetroFlix
|
||||
* RevolutionTT
|
||||
@@ -506,9 +504,7 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
|
||||
* SceneRush
|
||||
* SceneTime
|
||||
* SDBits [![(invite needed)][inviteneeded]](#)
|
||||
* GreatPosterWall (GPW)
|
||||
* Secret Cinema
|
||||
* SeedFile (SF)
|
||||
* Shareisland
|
||||
* Shazbat [![(invite needed)][inviteneeded]](#)
|
||||
* SiamBIT
|
||||
@@ -537,8 +533,6 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
|
||||
* TEKNO3D [![(invite needed)][inviteneeded]](#)
|
||||
* TellyTorrent
|
||||
* teracod (Movie Zone)
|
||||
* The-Crazy-Ones
|
||||
* The-New-Fun
|
||||
* The Falling Angels (TFA) [![(invite needed)][inviteneeded]](#)
|
||||
* The Geeks
|
||||
* The Horror Charnel (THC)
|
||||
@@ -548,6 +542,8 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
|
||||
* The Shinning (TsH)
|
||||
* The Show
|
||||
* The Vault [![(invite needed)][inviteneeded]](#)
|
||||
* The-Crazy-Ones
|
||||
* The-New-Fun
|
||||
* TheAudioScene
|
||||
* TheEmpire (TE)
|
||||
* TheLeachZone (TLZ)
|
||||
@@ -555,7 +551,6 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
|
||||
* TJUPT
|
||||
* TLFBits [![(invite needed)][inviteneeded]](#)
|
||||
* TmGHuB
|
||||
* ToTheGlory (TTG) [![(invite needed)][inviteneeded]](#)
|
||||
* Torrent Network (TN)
|
||||
* Torrent Sector Crew (TSC)
|
||||
* Torrent Surf
|
||||
@@ -570,13 +565,14 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
|
||||
* Torrentech (TTH)
|
||||
* TorrentHeaven [![(invite needed)][inviteneeded]](#)
|
||||
* TorrentHR [![(invite needed)][inviteneeded]](#)
|
||||
* Torrenting (TT) [![(invite needed)][inviteneeded]](#)
|
||||
* TotallyKids (TK)
|
||||
* Torrenting (TT)
|
||||
* Torrentland
|
||||
* TorrentLeech (TL)
|
||||
* TorrentLeech.pl
|
||||
* TorrentMasters
|
||||
* TorrentSeeds (TS)
|
||||
* TotallyKids (TK)
|
||||
* ToTheGlory (TTG) [![(invite needed)][inviteneeded]](#)
|
||||
* TranceTraffic [![(invite needed)][inviteneeded]](#)
|
||||
* Trezzor [![(invite needed)][inviteneeded]](#)
|
||||
* TurkSeed
|
||||
@@ -599,9 +595,9 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
|
||||
* x-ite.me (XM)
|
||||
* xBytesV2
|
||||
* XSpeeds (XS)
|
||||
* Xthor
|
||||
* XWT-Classics
|
||||
* XWTorrents (XWT)
|
||||
* Xthor
|
||||
* YDYPT
|
||||
* Zamunda.net
|
||||
* Zelka.org
|
||||
@@ -628,7 +624,7 @@ To get all Jackett indexers including their capabilities you can use `t=indexers
|
||||
### Filter indexers
|
||||
|
||||
Another special "filter" indexer is available at `/api/v2.0/indexers/<filter>/results/torznab`
|
||||
It will query the configured indexers that match the `<filter>` expression criterias and return the combined results as "all".
|
||||
It will query the configured indexers that match the `<filter>` expression criteria and return the combined results as "all".
|
||||
|
||||
Supported filters
|
||||
Filter | Condition
|
||||
|
@@ -309,6 +309,10 @@ table td.fit{
|
||||
background-color: #86cca8;
|
||||
}
|
||||
|
||||
.label-douban {
|
||||
background-color: #86cc10;
|
||||
}
|
||||
|
||||
.tooltip {
|
||||
pointer-events: none;
|
||||
}
|
||||
|
@@ -973,6 +973,7 @@ function updateReleasesRow(row) {
|
||||
var IMDBId = $(row).data("imdb");
|
||||
var TMDBId = $(row).data("tmdb");
|
||||
var TVDBId = $(row).data("tvdb");
|
||||
var DoubanId = $(row).data("douban");
|
||||
var Poster = $(row).data("poster");
|
||||
var Description = $(row).data("description");
|
||||
var DownloadVolumeFactor = parseFloat($(row).find("td.DownloadVolumeFactor").html());
|
||||
@@ -1010,6 +1011,10 @@ function updateReleasesRow(row) {
|
||||
labels.append('\n<a href="https://thetvdb.com/?tab=series&id=' + TVDBId + '" target="_blank" class="label label-tvdb" alt="TVDB" title="TVDB">TVDB</a>');
|
||||
}
|
||||
|
||||
if (DoubanId && DoubanId > 0) {
|
||||
labels.append('\n<a href="https://movie.douban.com/subject/' + DoubanId + '" target="_blank" class="label label-douban" alt="Douban" title="Douban">Douban</a>');
|
||||
}
|
||||
|
||||
if (!isNaN(DownloadVolumeFactor)) {
|
||||
if (DownloadVolumeFactor == 0) {
|
||||
labels.append('\n<span class="label label-success">FREELEECH</span>');
|
||||
|
@@ -292,6 +292,10 @@ table td.fit{
|
||||
background-color: #86cca8;
|
||||
}
|
||||
|
||||
.label-douban {
|
||||
background-color: #86cc10;
|
||||
}
|
||||
|
||||
.tooltip {
|
||||
pointer-events: none;
|
||||
}
|
||||
|
@@ -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=202204251" media="only screen and (min-device-width: 480px)">
|
||||
<link rel="stylesheet" type="text/css" href="../custom_mobile.css?changed=202204251" media="only screen and (max-device-width: 480px)">
|
||||
<link rel="stylesheet" type="text/css" href="../custom.css?changed=20220512" media="only screen and (min-device-width: 480px)">
|
||||
<link rel="stylesheet" type="text/css" href="../custom_mobile.css?changed=20220512" 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">
|
||||
@@ -458,7 +458,7 @@
|
||||
</thead>
|
||||
<tbody>
|
||||
{{#each releases}}
|
||||
<tr class="jackett-releases-row" data-imdb="{{Imdb}}" data-tmdb="{{TMDb}}" data-tvdb="{{TVDBId}}" data-poster="{{Poster}}" data-description="{{Description}}">
|
||||
<tr class="jackett-releases-row" data-imdb="{{Imdb}}" data-tmdb="{{TMDb}}" data-tvdb="{{TVDBId}}" data-douban="{{DoubanId}}" data-poster="{{Poster}}" data-description="{{Description}}">
|
||||
<td class="fit">{{PublishDate}}</td>
|
||||
<td class="fit">{{FirstSeen}}</td>
|
||||
<td class="fit">{{jacketTimespan PublishDate}}</td>
|
||||
@@ -586,7 +586,7 @@
|
||||
</thead>
|
||||
<tbody>
|
||||
{{#each Results}}
|
||||
<tr class="jackett-search-results-row" data-imdb="{{Imdb}}" data-tmdb="{{TMDb}}" data-tvdb="{{TVDBId}}" data-poster="{{Poster}}" data-description="{{Description}}">
|
||||
<tr class="jackett-search-results-row" data-imdb="{{Imdb}}" data-tmdb="{{TMDb}}" data-tvdb="{{TVDBId}}" data-douban="{{DoubanId}}" data-poster="{{Poster}}" data-description="{{Description}}">
|
||||
<td>{{PublishDate}}</td>
|
||||
<td>{{jacketTimespan PublishDate}}</td>
|
||||
<td>{{Tracker}}</td>
|
||||
@@ -754,6 +754,6 @@
|
||||
</script>
|
||||
|
||||
<script type="text/javascript" src="../libs/api.js?changed=2017083001"></script>
|
||||
<script type="text/javascript" src="../custom.js?changed=20220426"></script>
|
||||
<script type="text/javascript" src="../custom.js?changed=20220512"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
@@ -16,7 +16,7 @@
|
||||
|
||||
<link href="../bootstrap/bootstrap.min.css" rel="stylesheet">
|
||||
<link href="../animate.css" rel="stylesheet">
|
||||
<link href="../custom.css?changed=202204251" rel="stylesheet">
|
||||
<link href="../custom.css?changed=20220512" rel="stylesheet">
|
||||
|
||||
<title>Jackett</title>
|
||||
</head>
|
||||
|
@@ -1,138 +0,0 @@
|
||||
---
|
||||
id: 24rolika
|
||||
name: 24rolika
|
||||
description: "24rolika is a RUSSIAN Public Torrent Tracker for 3X"
|
||||
language: ru-RU
|
||||
type: public
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- http://24rolika.ru/ # does not support https
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
# only subcategories of Порно фильмы (Movies) have torrents
|
||||
- {id: 94, cat: XXX, desc: "4K порно фильмы", default: true}
|
||||
- {id: 76, cat: XXX, desc: "Японские порно фильмы", default: true}
|
||||
- {id: 81, cat: XXX, desc: "Бразильские порно фильмы", default: true}
|
||||
- {id: 41, cat: XXX, desc: "Итальянские порно фильмы", default: true}
|
||||
- {id: 42, cat: XXX, desc: "Американские порно фильмы", default: true}
|
||||
- {id: 43, cat: XXX, desc: "Немецкие порно фильмы", default: true}
|
||||
- {id: 44, cat: XXX, desc: "Французские порно фильмы", default: true}
|
||||
- {id: 45, cat: XXX, desc: "Русские порно фильмы", default: true}
|
||||
- {id: 47, cat: XXX, desc: "Порно фильмы 2018 года", default: true}
|
||||
- {id: 75, cat: XXX, desc: "Порно фильмы 2019 года", default: true}
|
||||
- {id: 92, cat: XXX, desc: "Порно фильмы 2020 года", default: true}
|
||||
- {id: 93, cat: XXX, desc: "Порно фильмы 2021 года", default: true}
|
||||
- {id: 48, cat: XXX, desc: "Ретро / Классика", default: true}
|
||||
- {id: 49, cat: XXX, desc: "С русским переводом", default: true}
|
||||
- {id: 82, cat: XXX, desc: "С сюжетом", default: true}
|
||||
- {id: 91, cat: XXX, desc: "Пародии", default: true}
|
||||
- {id: 51, cat: XXX, desc: "Brazzers", default: true}
|
||||
- {id: 52, cat: XXX, desc: "BangBros", default: true}
|
||||
- {id: 53, cat: XXX, desc: "Marc Dorcel", default: true}
|
||||
- {id: 54, cat: XXX, desc: "Evil Angel", default: true}
|
||||
- {id: 55, cat: XXX, desc: "Tushy", default: true}
|
||||
- {id: 56, cat: XXX, desc: "Blacked", default: true}
|
||||
- {id: 57, cat: XXX, desc: "Evil Playgrounds", default: true}
|
||||
- {id: 58, cat: XXX, desc: "Reality Kings", default: true}
|
||||
- {id: 59, cat: XXX, desc: "New Sensations", default: true}
|
||||
- {id: 60, cat: XXX, desc: "Wicked Pictures", default: true}
|
||||
- {id: 61, cat: XXX, desc: "21Sextury", default: true}
|
||||
- {id: 62, cat: XXX, desc: "PornPros", default: true}
|
||||
- {id: 63, cat: XXX, desc: "Private", default: true}
|
||||
- {id: 64, cat: XXX, desc: "DD Busty", default: true}
|
||||
- {id: 65, cat: XXX, desc: "Naughty America", default: true}
|
||||
- {id: 66, cat: XXX, desc: "Third Degree Films", default: true}
|
||||
- {id: 67, cat: XXX, desc: "Hustler", default: true}
|
||||
- {id: 68, cat: XXX, desc: "Blacks on Blondes", default: true}
|
||||
- {id: 69, cat: XXX, desc: "Team Skeet", default: true}
|
||||
- {id: 70, cat: XXX, desc: "Mofos", default: true}
|
||||
- {id: 71, cat: XXX, desc: "Vixen", default: true}
|
||||
- {id: 72, cat: XXX, desc: "Jules Jordan", default: true}
|
||||
- {id: 73, cat: XXX, desc: "Nubile Films", default: true}
|
||||
- {id: 74, cat: XXX, desc: "Digital Playground", default: true}
|
||||
- {id: 83, cat: XXX, desc: "Zero Tolerance", default: true}
|
||||
- {id: 84, cat: XXX, desc: "Pure Taboo", default: true}
|
||||
- {id: 85, cat: XXX, desc: "Devil's Film", default: true}
|
||||
- {id: 86, cat: XXX, desc: "Sweet Sinner", default: true}
|
||||
- {id: 87, cat: XXX, desc: "Penthouse", default: true}
|
||||
- {id: 88, cat: XXX, desc: "Elegant Angel", default: true}
|
||||
- {id: 89, cat: XXX, desc: "Digital Sin", default: true}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
|
||||
settings:
|
||||
- name: sort
|
||||
type: select
|
||||
label: Sort requested from site
|
||||
default: date
|
||||
options:
|
||||
date: created
|
||||
title: title
|
||||
- name: type
|
||||
type: select
|
||||
label: Order requested from site
|
||||
default: desc
|
||||
options:
|
||||
desc: desc
|
||||
asc: asc
|
||||
|
||||
|
||||
download:
|
||||
selectors:
|
||||
- selector: a[href*="index.php?do=download&id="]
|
||||
attribute: href
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: index.php
|
||||
inputs:
|
||||
$raw: "{{ range .Categories }}catlist[]={{.}}&{{end}}"
|
||||
do: search
|
||||
subaction: search
|
||||
search_start: 0
|
||||
full_search: 1
|
||||
result_from: 1
|
||||
story: "{{ if .Keywords }}{{ .Keywords }}{{ else }}{{ .Today.Year }}{{ end }}"
|
||||
# 0 in article 1 in comments 2 in static pages 3 in article titles
|
||||
titleonly: 3
|
||||
sortby: "{{ .Config.sort }}"
|
||||
resorder: "{{ .Config.type }}"
|
||||
showposts: 0
|
||||
|
||||
headers:
|
||||
Referer: ["{{ .Config.sitelink }}"]
|
||||
|
||||
rows:
|
||||
selector: article.shortstory
|
||||
|
||||
fields:
|
||||
category:
|
||||
text: 94
|
||||
title:
|
||||
selector: h2.short_title a
|
||||
details:
|
||||
selector: h2.short_title a
|
||||
attribute: href
|
||||
download:
|
||||
selector: h2.short_title a
|
||||
attribute: href
|
||||
poster:
|
||||
selector: img
|
||||
attribute: src
|
||||
date:
|
||||
text: now
|
||||
size:
|
||||
text: "512 MB"
|
||||
seeders:
|
||||
text: 1
|
||||
leechers:
|
||||
text: 1
|
||||
description:
|
||||
selector: div.video_time
|
||||
downloadvolumefactor:
|
||||
text: 0
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
# DataLife
|
@@ -150,4 +150,4 @@ search:
|
||||
minimumseedtime:
|
||||
# 5 days (as seconds = 3 x 24 x 60 x 60)
|
||||
text: 432000
|
||||
# json UNIT3D 6.0.7
|
||||
# json UNIT3D 6.1.0
|
||||
|
@@ -109,11 +109,7 @@ search:
|
||||
attribute: onmouseover
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["javascript:ShowImage('/images/imdb/", "tt"]
|
||||
- name: replace
|
||||
args: [".jpg')", ""]
|
||||
- name: replace
|
||||
args: ["tt0000000", ""]
|
||||
args: ["javascript:ShowImage('/images/imdb/tt0000000.jpg')", ""]
|
||||
poster:
|
||||
selector: td a[href^="index.php?page=torrent-details"]
|
||||
attribute: onmouseover
|
||||
|
@@ -7,6 +7,7 @@ type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://www.arabp2p.com/
|
||||
- https://www.arabp2p.net/
|
||||
legacylinks:
|
||||
- http://www.arabp2p.com/
|
||||
|
||||
|
@@ -109,6 +109,9 @@ search:
|
||||
imdbid:
|
||||
selector: a[href*="imdb.com/title/tt"]
|
||||
attribute: href
|
||||
doubanid:
|
||||
selector: a[href*="movie.douban.com/subject/"]
|
||||
attribute: href
|
||||
date_elapsed:
|
||||
# time type: time elapsed (default)
|
||||
selector: td:nth-child(4) > span[title]
|
||||
|
@@ -65,6 +65,10 @@ settings:
|
||||
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: Filter freeleech only
|
||||
default: false
|
||||
- name: sort
|
||||
type: select
|
||||
label: Sort requested from site
|
||||
@@ -83,7 +87,7 @@ settings:
|
||||
- name: info_tpp
|
||||
type: info
|
||||
label: Results Per Page
|
||||
default: For best results, change the <b>Torrentek száma egy oldalon:</b> setting to <b>100</b> on your account profile.
|
||||
default: For best results, change the <b>Torrentek száma egy oldalon:</b> setting to <b>50</b> on your account profile.
|
||||
|
||||
login:
|
||||
method: cookie
|
||||
@@ -96,21 +100,28 @@ login:
|
||||
search:
|
||||
paths:
|
||||
- path: browse.php
|
||||
categories: ["!", 33, 66, 99]
|
||||
inputs:
|
||||
# 0 all, 1 active, 2 deadonly, 3 myuploads, 4 zeroseed, 6 re-seeded
|
||||
incldead: 0
|
||||
- path: browse_xxx.php
|
||||
categories: [33, 66, 99]
|
||||
inputs:
|
||||
# 0 active, 1 all, 2 deadonly, 3 myuploads, 4 zeroseed, 6 re-seeded
|
||||
incldead: 1
|
||||
inputs:
|
||||
$raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
|
||||
search: "{{ .Keywords }}"
|
||||
# 0 active, 1 all, 2 deadonly, 3 myuploads, 4 zeroseed
|
||||
incldead: 1
|
||||
sort: "{{ .Config.sort }}"
|
||||
type: "{{ .Config.type }}"
|
||||
# site does not support imdbid searching or appear to have freeleech
|
||||
# site does not support imdbid searching
|
||||
|
||||
rows:
|
||||
selector: table[width="100%"]:last-child tbody tr:has(a[href^="userdetails.php?id="]):has(a[href^="download.php?torrent="])
|
||||
selector: "table[width=\"100%\"]:last-child tbody tr:has(div.tooltip){{ if .Config.freeleech }}:has(i:contains(\"(Free)\")){{ else }}{{ end }}"
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: a[href^="browse.php?cat="]
|
||||
selector: a[href*=".php?cat="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
@@ -124,19 +135,43 @@ search:
|
||||
poster:
|
||||
selector: a.preview
|
||||
attribute: href
|
||||
download:
|
||||
download1:
|
||||
selector: a[href^="download.php?torrent="]
|
||||
optional: true
|
||||
attribute: href
|
||||
download2:
|
||||
selector: input[onclick*="download.php?torrent="]
|
||||
optional: true
|
||||
attribute: onclick
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["window.open('", ""]
|
||||
- name: replace
|
||||
args: ["', '_self');", ""]
|
||||
download:
|
||||
text: "{{ if or .Result.download1 .Result.download2 }}{{ or .Result.download1 .Result.download2 }}{{ else }}{{ end }}"
|
||||
size:
|
||||
selector: td:nth-child(6)
|
||||
date:
|
||||
date_browse:
|
||||
# 2022<br>03/15.
|
||||
selector: td:nth-child(7)
|
||||
selector: td:nth-child(7):contains("/")
|
||||
optional: true
|
||||
filters:
|
||||
- name: append
|
||||
args: " +01:00" # CET
|
||||
- name: dateparse
|
||||
args: "200601/02. -07:00"
|
||||
date_browse_xxx:
|
||||
# 22.03.15
|
||||
selector: td:nth-child(7):not(:contains("/"))
|
||||
optional: true
|
||||
filters:
|
||||
- name: append
|
||||
args: " +01:00" # CET
|
||||
- name: dateparse
|
||||
args: "06.01.02 -07:00"
|
||||
date:
|
||||
text: "{{ if or .Result.date_browse .Result.date_browse_xxx }}{{ or .Result.date_browse .Result.date_browse_xxx }}{{ else }}now{{ end }}"
|
||||
grabs:
|
||||
selector: td:nth-child(5)
|
||||
seeders:
|
||||
|
@@ -108,18 +108,16 @@ search:
|
||||
- name: replace
|
||||
args: ["details", "download"]
|
||||
description:
|
||||
selector: img[src="styles/images/adwarn.png"]
|
||||
optional: true
|
||||
selector: i.fa-ad
|
||||
attribute: title
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["Присутствует реклама", "Contains Adverts"]
|
||||
poster:
|
||||
args: ["Присутствует реклама", "[Contains Adverts] "]
|
||||
description|append:
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: onmouseover
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "src=(.*?) "
|
||||
poster:
|
||||
selector: div.it-image > img
|
||||
attribute: src
|
||||
date_today:
|
||||
# Сегодня в 09:09 от
|
||||
# Вчера в 22:47 от
|
||||
|
@@ -54,9 +54,13 @@ caps:
|
||||
- {id: 21, cat: Audio/Video, desc: "Video Klipler"}
|
||||
- {id: 2, cat: Console, desc: "Oyun"}
|
||||
- {id: 74, cat: PC/Games, desc: "Oyun PC"}
|
||||
- {id: 83, cat: Console/Other, desc: "Oyun Gameboy"}
|
||||
- {id: 73, cat: Console/PS3, desc: "Oyun SONY-PS"}
|
||||
- {id: 84, cat: Console/PS3, desc: "Oyun Playstation"}
|
||||
- {id: 85, cat: Console/PS3, desc: "Oyun Playstation 2"}
|
||||
- {id: 82, cat: Console/PSP, desc: " Oyun PSP"}
|
||||
- {id: 83, cat: Console/Other, desc: "Oyun Gameboy"}
|
||||
- {id: 87, cat: Console/XBox, desc: "Oyun XBOX"}
|
||||
- {id: 88, cat: Console/Other, desc: "Oyun NEO-GEO"}
|
||||
- {id: 89, cat: Console/Wii, desc: "Oyun Nintendo Wii"}
|
||||
- {id: 6, cat: PC/0day, desc: "Program"}
|
||||
- {id: 47, cat: Other, desc: "Resimler"}
|
||||
- {id: 48, cat: TV, desc: "Televizyon"}
|
||||
|
96
src/Jackett.Common/Definitions/btmirror.yml
Normal file
96
src/Jackett.Common/Definitions/btmirror.yml
Normal file
@@ -0,0 +1,96 @@
|
||||
---
|
||||
id: btmirror
|
||||
name: BTmirror
|
||||
description: "BTmirror is a Public BitTorrent DHT search engine."
|
||||
language: en-US
|
||||
type: public
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://btsao.com/
|
||||
- https://btmirror.unblockit.blue/
|
||||
|
||||
caps:
|
||||
categories:
|
||||
Other: Other
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
music-search: [q]
|
||||
book-search: [q]
|
||||
|
||||
settings:
|
||||
- name: info_8000
|
||||
type: info
|
||||
label: About BTmirror Categories
|
||||
default: BTmirror does not return categories in its search results.</br>To add to your Apps' Torznab indexer, replace all categories with 8000(Other).
|
||||
- name: sort
|
||||
type: select
|
||||
label: Sort requested from site
|
||||
default: create_time
|
||||
options:
|
||||
relavance: relevance
|
||||
create_time: created
|
||||
length: size
|
||||
|
||||
download:
|
||||
infohash:
|
||||
hash:
|
||||
selector: p.magnet a
|
||||
attribute: href
|
||||
filters:
|
||||
- name: regexp
|
||||
args: ([A-F|a-f|0-9]{40})
|
||||
title:
|
||||
selector: p.magnet a
|
||||
attribute: href
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "&dn=(.+?)$"
|
||||
- name: validfilename
|
||||
|
||||
search:
|
||||
# https://btsao.com/en/search/2022/?c=&s=create_time
|
||||
# returns 10 results per page
|
||||
paths:
|
||||
- path: "en/search/{{ if .Keywords }}{{ .Keywords }}{{ else }}{{ .Today.Year }}{{ end }}/"
|
||||
- path: "en/search/{{ if .Keywords }}{{ .Keywords }}{{ else }}{{ .Today.Year }}{{ end }}/2"
|
||||
inputs:
|
||||
c: ""
|
||||
s: "{{ .Config.sort }}"
|
||||
|
||||
rows:
|
||||
selector: div.ssbox
|
||||
|
||||
fields:
|
||||
category:
|
||||
text: Other
|
||||
title:
|
||||
selector: h3
|
||||
details:
|
||||
selector: h3 a
|
||||
attribute: href
|
||||
download:
|
||||
selector: h3 a
|
||||
attribute: href
|
||||
date:
|
||||
selector: span:contains("date:") b
|
||||
filters:
|
||||
- name: dateparse
|
||||
args: "2006-01-02"
|
||||
size:
|
||||
selector: span:contains("size:") b
|
||||
files:
|
||||
selector: span:contains("files:") b
|
||||
grabs:
|
||||
selector: span:contains("人气:") b
|
||||
seeders:
|
||||
text: 1
|
||||
leechers:
|
||||
text: 1
|
||||
downloadvolumefactor:
|
||||
text: 0
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
# engine: n/a
|
@@ -208,9 +208,6 @@ search:
|
||||
# a href="http://tracker.btnext.com/data/torrents/imdb/tt0249677.jpg"
|
||||
selector: a[href*="/imdb/tt"]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: regexp
|
||||
args: tt(\d+)
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
"img[title=\"FREE!\"]": 0
|
||||
|
@@ -10,7 +10,8 @@ links:
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 62, cat: Books, desc: "EBook"}
|
||||
- {id: 62, cat: Books/EBook, desc: "EBook"}
|
||||
- {id: 69, cat: Books/Mags, desc: "Zeitung"}
|
||||
- {id: 30, cat: TV/Anime, desc: "Filme - Animie"}
|
||||
- {id: 28, cat: Movies/BluRay, desc: "Filme - Bluray"}
|
||||
- {id: 31, cat: Movies/Other, desc: "Filme - Bollywood"}
|
||||
|
@@ -7,7 +7,7 @@ type: public
|
||||
encoding: UTF-8
|
||||
followredirect: true
|
||||
links:
|
||||
- https://www.cpasbien.gg/
|
||||
- https://www.cpasbien.vip/
|
||||
legacylinks:
|
||||
- https://www1.cpasbiens.ws/
|
||||
- https://www2.cpasbiens.ws/
|
||||
@@ -20,6 +20,7 @@ legacylinks:
|
||||
- https://cpasbiens.uk-unblock.xyz/
|
||||
- https://cpasbiens.ind-unblock.xyz/
|
||||
- https://cpasbien.to/
|
||||
- https://www.cpasbien.gg/
|
||||
|
||||
caps:
|
||||
categories:
|
||||
|
@@ -90,13 +90,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 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>"
|
||||
label: Username
|
||||
- name: password
|
||||
type: password
|
||||
label: Password
|
||||
- name: freeleech
|
||||
type: checkbox
|
||||
label: Search freeleech only
|
||||
@@ -119,9 +118,14 @@ settings:
|
||||
1: asc
|
||||
|
||||
login:
|
||||
method: cookie
|
||||
path: index.php
|
||||
method: form
|
||||
form: form[action="index.php?page=login"]
|
||||
inputs:
|
||||
cookie: "{{ .Config.cookie }}"
|
||||
uid: "{{ .Config.username }}"
|
||||
pwd: "{{ .Config.password }}"
|
||||
error:
|
||||
- selector: td.lista span[style="color:#FF0000;"]
|
||||
test:
|
||||
path: index.php
|
||||
selector: a[href="logout.php"]
|
||||
|
@@ -16,6 +16,7 @@ caps:
|
||||
- {id: 28, cat: Movies/SD, desc: "Filme SD"}
|
||||
- {id: 32, cat: Movies/HD, desc: "Filme HD"}
|
||||
- {id: 114, cat: Movies/UHD, desc: "Filme UHD"}
|
||||
- {id: 140, cat: Movies/BluRay, desc: "Filme BluRay"}
|
||||
- {id: 138, cat: Movies, desc: "Filme Pack`s"}
|
||||
# Serien
|
||||
- {id: 60, cat: TV/SD, desc: "Serien SD"}
|
||||
@@ -218,4 +219,4 @@ search:
|
||||
minimumseedtime:
|
||||
# 2 days (as seconds = 2 x 24 x 60 x 60)
|
||||
text: 172800
|
||||
# engine n/a
|
||||
# 3xT
|
||||
|
@@ -206,4 +206,4 @@ search:
|
||||
minimumseedtime:
|
||||
# 12 hours (as seconds = 12 x 60 x 60)
|
||||
text: 43200
|
||||
# engine n/a
|
||||
# 3xT
|
||||
|
@@ -6,7 +6,7 @@ language: es-ES
|
||||
type: public
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://www.elitetorrent.dev/
|
||||
- https://www.elitetorrent.com/
|
||||
- https://elitetorrent.nocensor.sbs/
|
||||
legacylinks:
|
||||
- https://www.elitetorrent.biz/
|
||||
@@ -23,7 +23,6 @@ legacylinks:
|
||||
- https://vvww.elitetorrent.nl/
|
||||
- https://www.elitetorrent.to/
|
||||
- https://www.elitetorrent.se/
|
||||
- https://www.elitetorrent.com/
|
||||
- https://elitetorrent.si/
|
||||
- https://elitetorrent.nocensor.work/
|
||||
- https://elitetorrent.com/
|
||||
@@ -31,6 +30,7 @@ legacylinks:
|
||||
- https://elitetorrent.nocensor.biz/
|
||||
- https://elitetorrent.la/
|
||||
- https://www.elitetorrent.wtf/
|
||||
- https://www.elitetorrent.dev/
|
||||
|
||||
caps:
|
||||
categories:
|
||||
|
@@ -11,6 +11,7 @@ links:
|
||||
- https://eztv.wf/
|
||||
- https://eztv.tf/
|
||||
- https://eztv.yt/
|
||||
- https://eztv1.xyz/
|
||||
- https://eztv.unblockninja.com/
|
||||
- https://eztv.unblockit.blue/
|
||||
- https://eztv.nocensor.sbs/
|
||||
|
@@ -10,85 +10,54 @@ links:
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 54, cat: Movies/SD, desc: "kino SD x264/x265"}
|
||||
- {id: 56, cat: Movies/HD, desc: "kino 720p"}
|
||||
- {id: 57, cat: Movies/HD, desc: "kino 1080p"}
|
||||
- {id: 100, cat: Movies/3D, desc: "kino 3D"}
|
||||
- {id: 58, cat: Movies/SD, desc: "Filme SD x264/x265"}
|
||||
- {id: 58, cat: Movies/SD, desc: "Filme SD"}
|
||||
- {id: 59, cat: Movies/HD, desc: "Filme 720p"}
|
||||
- {id: 60, cat: Movies/HD, desc: "Filme 1080p"}
|
||||
- {id: 61, cat: Movies/UHD, desc: "Filme 2160p"}
|
||||
- {id: 62, cat: Movies/3D, desc: "Filme 3D"}
|
||||
- {id: 170, cat: Movies/BluRay, desc: "Filme Bluray"}
|
||||
- {id: 101, cat: Movies/DVD, desc: "Filme DVD"}
|
||||
- {id: 63, cat: Movies/HD, desc: "Filme Remux"}
|
||||
- {id: 129, cat: Movies/SD, desc: "Filme Packs SD x264/265"}
|
||||
- {id: 62, cat: Movies/3D, desc: "Filme 3D"}
|
||||
- {id: 169, cat: Movies/Foreign, desc: "Filme International"}
|
||||
- {id: 129, cat: Movies/SD, desc: "Filme Packs SD"}
|
||||
- {id: 130, cat: Movies/HD, desc: "Filme Packs 720p"}
|
||||
- {id: 131, cat: Movies/HD, desc: "Filme Packs 1080p"}
|
||||
- {id: 64, cat: TV/SD, desc: "Serien SD x264/x265"}
|
||||
- {id: 159, cat: Movies/UHD, desc: "Filme Packs 2160p"}
|
||||
- {id: 172, cat: Movies/SD, desc: "Film-Klassiker SD"}
|
||||
- {id: 173, cat: Movies/HD, desc: "Film-Klassiker 720p"}
|
||||
- {id: 174, cat: Movies/HD, desc: "Film-Klassiker 1080p"}
|
||||
- {id: 175, cat: Movies/UHD, desc: "Film-Klassiker 2160p"}
|
||||
- {id: 180, cat: Movies/DVD, desc: "Film-Klassiker DVD"}
|
||||
- {id: 181, cat: Movies/BluRay, desc: "Film-Klassiker Bluray"}
|
||||
- {id: 176, cat: Movies/SD, desc: "Film-Klassiker Pack SD"}
|
||||
- {id: 177, cat: Movies/HD, desc: "Film-Klassiker Pack 720p"}
|
||||
- {id: 178, cat: Movies/HD, desc: "Film-Klassiker Pack 1080p"}
|
||||
- {id: 179, cat: Movies/UHD, desc: "Film-Klassiker Pack 2160p"}
|
||||
- {id: 64, cat: TV/SD, desc: "Serien SD"}
|
||||
- {id: 65, cat: TV/HD, desc: "Serien 720p"}
|
||||
- {id: 66, cat: TV/HD, desc: "Serien 1080p"}
|
||||
- {id: 68, cat: TV/UHD, desc: "Serien 2160p"}
|
||||
- {id: 69, cat: TV/Foreign, desc: "Serien Ger-Subbed"}
|
||||
- {id: 70, cat: TV/Foreign, desc: "Serien International"}
|
||||
- {id: 76, cat: TV/SD, desc: "Serienpacks SD x264/x265"}
|
||||
- {id: 167, cat: TV/Foreign, desc: "Serien International"}
|
||||
- {id: 76, cat: TV/SD, desc: "Serienpacks SD"}
|
||||
- {id: 77, cat: TV/HD, desc: "Serienpacks 720p"}
|
||||
- {id: 78, cat: TV/HD, desc: "Serienpacks 1080p"}
|
||||
- {id: 81, cat: TV/UHD, desc: "Serienpacks 2160p"}
|
||||
- {id: 79, cat: TV/Foreign, desc: "Serienpacks Ger-Subbed"}
|
||||
- {id: 80, cat: TV/Foreign, desc: "Serienpacks International"}
|
||||
- {id: 115, cat: Movies/SD, desc: "Kids-Filme SD x264/x265"}
|
||||
- {id: 116, cat: Movies/HD, desc: "Kids-Filme 720p"}
|
||||
- {id: 117, cat: Movies/HD, desc: "Kids-Filme 1080p"}
|
||||
- {id: 109, cat: TV/SD, desc: "Kids-Serien SD x264/x265"}
|
||||
- {id: 110, cat: TV/HD, desc: "Kids-Serien 720p"}
|
||||
- {id: 111, cat: TV/HD, desc: "Kids-Serien 1080p"}
|
||||
- {id: 112, cat: TV/SD, desc: "Kids-Serien Packs SD"}
|
||||
- {id: 113, cat: TV/HD, desc: "Kids-Serien Packs 720p"}
|
||||
- {id: 114, cat: TV/HD, desc: "Kids-Serien Packs 1080p"}
|
||||
- {id: 127, cat: TV/Foreign, desc: "Kids-Serien International"}
|
||||
- {id: 98, cat: TV/SD, desc: "Tatort SD x264/x265"}
|
||||
- {id: 99, cat: TV/HD, desc: "Tatort 720p"}
|
||||
- {id: 105, cat: TV/SD, desc: "Daily Soaps SD x264/x265"}
|
||||
- {id: 103, cat: TV/HD, desc: "Daily Soaps 720p"}
|
||||
- {id: 104, cat: TV/HD, desc: "Daily Soaps 1080p"}
|
||||
- {id: 106, cat: TV/Documentary, desc: "Dokus SD x264/x265"}
|
||||
- {id: 107, cat: TV/Documentary, desc: "Dokus 720p"}
|
||||
- {id: 108, cat: TV/Documentary, desc: "Dokus 1080p"}
|
||||
- {id: 83, cat: Movies/SD, desc: "TV-Filme SD x264/x265"}
|
||||
- {id: 84, cat: Movies/HD, desc: "TV-Filme 720p"}
|
||||
- {id: 85, cat: Movies/HD, desc: "TV-Filme 1080p"}
|
||||
- {id: 86, cat: TV/SD, desc: "TV-Shows SD x264/x265"}
|
||||
- {id: 87, cat: TV/HD, desc: "TV-Shows 720p"}
|
||||
- {id: 88, cat: TV/HD, desc: "TV-Shows 1080p"}
|
||||
- {id: 118, cat: TV/Sport, desc: "SportSD x264/x265"}
|
||||
- {id: 119, cat: TV/Sport, desc: "Sport720p"}
|
||||
- {id: 120, cat: TV/Sport, desc: "Sport1080p"}
|
||||
- {id: 122, cat: TV/Sport, desc: "Sport2160p"}
|
||||
- {id: 121, cat: TV/Sport, desc: "SportInternational"}
|
||||
- {id: 82, cat: Audio/Audiobook, desc: "Audio Audiobooks"}
|
||||
- {id: 71, cat: Audio/MP3, desc: "Audio MP3"}
|
||||
- {id: 72, cat: Audio/Lossless, desc: "Audio Flac"}
|
||||
- {id: 135, cat: Audio/Lossless, desc: "Audio WAV"}
|
||||
- {id: 73, cat: Audio/MP3, desc: "Audio MP3 Packs"}
|
||||
- {id: 74, cat: Audio/Lossless, desc: "Audio Flac Packs"}
|
||||
- {id: 128, cat: Audio, desc: "Audio Kids"}
|
||||
- {id: 75, cat: Audio/Video, desc: "Audio Musikvideo"}
|
||||
- {id: 73, cat: Audio, desc: "Audio Packs"}
|
||||
- {id: 153, cat: Audio/Audiobook, desc: "Hörbücher"}
|
||||
- {id: 123, cat: PC, desc: "Software Windows"}
|
||||
- {id: 124, cat: PC, desc: "Software Linux"}
|
||||
- {id: 125, cat: PC/Mobile-Android, desc: "Software Android"}
|
||||
- {id: 126, cat: PC/Mac, desc: "Software MacOS"}
|
||||
- {id: 166, cat: PC/Mac, desc: "Software Sonstiges"}
|
||||
- {id: 132, cat: PC/Games, desc: "Spiele Windows"}
|
||||
- {id: 133, cat: PC/Mac, desc: "Spiele MacOS"}
|
||||
- {id: 134, cat: Console, desc: "Spiele Nintendo"}
|
||||
- {id: 90, cat: Books/Mags, desc: "Diverses Zeitschriften"}
|
||||
- {id: 89, cat: Books/EBook, desc: "Diverses E-Books"}
|
||||
- {id: 91, cat: XXX/x264, desc: "XXX SD x264/x265"}
|
||||
- {id: 150, cat: PC/Mac, desc: "Spiele Sonstiges"}
|
||||
- {id: 90, cat: Books/Mags, desc: "Zeitschriften"}
|
||||
- {id: 89, cat: Books/EBook, desc: "E-Books"}
|
||||
- {id: 91, cat: XXX/SD, desc: "XXX SD"}
|
||||
- {id: 92, cat: XXX/x264, desc: "XXX 720p"}
|
||||
- {id: 93, cat: XXX/x264, desc: "XXX 1080p"}
|
||||
- {id: 95, cat: XXX/Pack, desc: "XXX Packs SD"}
|
||||
- {id: 96, cat: XXX/Pack, desc: "XXX Packs HD"}
|
||||
- {id: 171, cat: XXX/Pack, desc: "XXX Packs"}
|
||||
- {id: 94, cat: XXX/ImageSet, desc: "XXX Magazine"}
|
||||
- {id: 97, cat: XXX/ImageSet, desc: "XXX Pics"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
|
@@ -134,12 +134,9 @@ search:
|
||||
selector: td a[href^="index.php?page=downloadcheck"]
|
||||
attribute: href
|
||||
imdbid:
|
||||
# javascript:popdetails('http://www.imdb.com/title/tt10209130');
|
||||
selector: a[href*="imdb.com/title/tt"]
|
||||
attribute: href
|
||||
filters:
|
||||
# javascript:popdetails('http://www.imdb.com/title/tt10209130');
|
||||
- name: regexp
|
||||
args: tt(\d+)
|
||||
size:
|
||||
selector: td:nth-last-child(1)
|
||||
leechers:
|
||||
|
@@ -6,60 +6,54 @@ language: fr-FR
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://fou-du-cinema.ca/
|
||||
legacylinks:
|
||||
- https://fou-du-cinema.net/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 28, cat: PC, desc: "App: Linux"}
|
||||
- {id: 19, cat: PC/Mac, desc: "Apps: Mac"}
|
||||
- {id: 18, cat: PC/0day, desc: "Apps: PC"}
|
||||
- {id: 54, cat: Books/Comics, desc: "BD: bande dessinée"}
|
||||
- {id: 9, cat: TV/Documentary, desc: "Documentaries: All"}
|
||||
- {id: 60, cat: Books/EBook, desc: "Ebook: BD - X"}
|
||||
- {id: 23, cat: Movies/UHD, desc: "FILM: 4K et plus"}
|
||||
- {id: 51, cat: TV/Anime, desc: "FILM: Animé"}
|
||||
- {id: 43, cat: Movies/BluRay, desc: "FILM: BD-Rip"}
|
||||
- {id: 22, cat: Movies/DVD, desc: "FILM: DVD"}
|
||||
- {id: 52, cat: Movies/DVD, desc: "FILM: DVDRip"}
|
||||
- {id: 40, cat: Movies/HD, desc: "Film: HD"}
|
||||
- {id: 26, cat: Movies/HD, desc: "FILM: HD 1080p"}
|
||||
- {id: 25, cat: Movies/HD, desc: "FILM: HD 720p"}
|
||||
- {id: 50, cat: Movies/HD, desc: "FILM: HDTV"}
|
||||
- {id: 47, cat: Movies/HD, desc: "FILM: MHD"}
|
||||
- {id: 61, cat: Movies/WEB-DL, desc: "FILM: TVRip"}
|
||||
- {id: 49, cat: Movies, desc: "FILM: VO"}
|
||||
- {id: 48, cat: Movies, desc: "FILM: Vost-FR"}
|
||||
- {id: 17, cat: Movies/WEB-DL, desc: "FILM: Web-DL 1080P"}
|
||||
- {id: 39, cat: Movies/WEB-DL, desc: "FILM: Web-DL 720P"}
|
||||
- {id: 34, cat: Movies/WEB-DL, desc: "FILM: Webrip"}
|
||||
- {id: 21, cat: Movies/WEB-DL, desc: "FILM: WebRip 1080p"}
|
||||
- {id: 20, cat: Movies/WEB-DL, desc: "FILM: WebRip 720p"}
|
||||
- {id: 14, cat: Movies/WEB-DL, desc: "FILM: WebRip-DL"}
|
||||
- {id: 24, cat: XXX, desc: "FILM: XXX"}
|
||||
- {id: 10, cat: PC/Games, desc: "Games: PC"}
|
||||
- {id: 53, cat: Books/Mags, desc: "Journaux : presse"}
|
||||
- {id: 36, cat: Books/EBook, desc: "Other: E-Books"}
|
||||
- {id: 33, cat: Other, desc: "Other: Emulation"}
|
||||
- {id: 38, cat: PC/Mobile-Other, desc: "Other: Mobile Phone"}
|
||||
- {id: 58, cat: TV, desc: "Serie: DVDVOST"}
|
||||
- {id: 59, cat: TV/WEB-DL, desc: "Serie: TVRip"}
|
||||
- {id: 57, cat: TV/WEB-DL, desc: "Serie: WEB"}
|
||||
- {id: 42, cat: TV, desc: "SERIES: Concerts / Spectacles"}
|
||||
- {id: 5, cat: TV/Anime, desc: "SERIES: Animée"}
|
||||
- {id: 7, cat: TV/SD, desc: "SERIES: Épisodes SD"}
|
||||
- {id: 3, cat: TV/Documentary, desc: "SERIES: Documentaires"}
|
||||
- {id: 55, cat: TV/SD, desc: "Serie: DVD"}
|
||||
- {id: 1, cat: TV/HD, desc: "SERIES: Episodes HD"}
|
||||
- {id: 6, cat: TV/HD, desc: "SERIES: HDTV"}
|
||||
- {id: 56, cat: TV/HD, desc: "SERIE: HDTV1080p"}
|
||||
- {id: 2, cat: TV/HD, desc: "SERIES: Pack HD"}
|
||||
- {id: 4, cat: TV/SD, desc: "SERIES: Pack SD"}
|
||||
- {id: 41, cat: TV, desc: "SERIES: Vost-FR"}
|
||||
- {id: 9, cat: TV/SD, desc: "SERIE DVD"}
|
||||
- {id: 21, cat: TV/HD, desc: "SERIE HDTV.1080p"}
|
||||
- {id: 20, cat: TV/HD, desc: "SERIE HDTV.720p"}
|
||||
- {id: 19, cat: TV/SD, desc: "SERIE HDTV"}
|
||||
- {id: 36, cat: TV/Other, desc: "SERIE Pack"}
|
||||
- {id: 17, cat: TV/SD, desc: "SERIE VHS"}
|
||||
- {id: 16, cat: TV/SD, desc: "SERIE TVRip"}
|
||||
- {id: 15, cat: TV/WEB-DL, desc: "SERIE WEB.1080p"}
|
||||
- {id: 14, cat: TV/WEB-DL, desc: "SERIE WEB.720p"}
|
||||
- {id: 12, cat: TV/WEB-DL, desc: "SERIE WEB"}
|
||||
- {id: 37, cat: TV, desc: "SERIE EPISODE"}
|
||||
- {id: 56, cat: PC/ISO, desc: "LOGICIELS Linux"}
|
||||
- {id: 24, cat: PC/Mac, desc: "LOGICIELS Apple"}
|
||||
- {id: 58, cat: PC/0day, desc: "LOGICIELS Windows"}
|
||||
- {id: 59, cat: PC, desc: "LOGICIELS "}
|
||||
- {id: 44, cat: Books/Mags, desc: "EBOOK Journaux"}
|
||||
- {id: 46, cat: Books/Technical, desc: "EBOOK Documents"}
|
||||
- {id: 48, cat: XXX/Other, desc: "EBOOK XXX"}
|
||||
- {id: 49, cat: Books/EBook, desc: "EBOOK Livres"}
|
||||
- {id: 50, cat: TV/Anime, desc: "ANIMEE Anim<69>e"}
|
||||
- {id: 1, cat: Movies/SD, desc: "FILM Xvid"}
|
||||
- {id: 33, cat: Movies/HD, desc: "FILM HDTV"}
|
||||
- {id: 31, cat: Movies/Other, desc: "FILM MUET"}
|
||||
- {id: 30, cat: Movies/Other, desc: "FILM VOST"}
|
||||
- {id: 29, cat: Movies/SD, desc: "FILM VHS"}
|
||||
- {id: 28, cat: Movies/HD, desc: "FILM 720"}
|
||||
- {id: 27, cat: Movies/HD, desc: "FILM BDRip"}
|
||||
- {id: 26, cat: Movies/BluRay, desc: "FILM BluRay"}
|
||||
- {id: 25, cat: Movies/BluRay, desc: "FILM ISO"}
|
||||
- {id: 4, cat: Movies/HD, desc: "FILM 1080"}
|
||||
- {id: 2, cat: Movies/DVD, desc: "FILM DVD"}
|
||||
- {id: 34, cat: Movies/SD, desc: "FILM TVRip"}
|
||||
- {id: 5, cat: Audio/Video, desc: "MUSIC clip video"}
|
||||
- {id: 7, cat: PC/Games, desc: "JEUX Win"}
|
||||
- {id: 8, cat: Console/PS3, desc: "JEUX PS3"}
|
||||
- {id: 45, cat: PC/Games, desc: "JEUX PC"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
music-search: [q]
|
||||
book-search: [q]
|
||||
|
||||
settings:
|
||||
@@ -69,10 +63,6 @@ settings:
|
||||
- name: password
|
||||
type: password
|
||||
label: Password
|
||||
- name: freeleech
|
||||
type: checkbox
|
||||
label: Search freeleech only
|
||||
default: false
|
||||
- name: multilang
|
||||
type: checkbox
|
||||
label: Replace MULTI by another language in release name
|
||||
@@ -95,10 +85,10 @@ settings:
|
||||
- name: sort
|
||||
type: select
|
||||
label: Sort requested from site
|
||||
default: id
|
||||
default: added
|
||||
options:
|
||||
id: created
|
||||
seeders: seeders
|
||||
added: created
|
||||
seeds: seeders
|
||||
size: size
|
||||
name: title
|
||||
- name: type
|
||||
@@ -110,53 +100,56 @@ settings:
|
||||
asc: asc
|
||||
|
||||
login:
|
||||
path: account-login.php
|
||||
method: post
|
||||
path: login.php
|
||||
method: form
|
||||
form: form[action="/login.php"]
|
||||
cookies: ["JAVA=OK"] # avoid jscheck redirect
|
||||
captcha:
|
||||
type: image
|
||||
selector: img[src^="cap/captcha_math.php?codeCaptcha="]
|
||||
input: stringCaptcha
|
||||
inputs:
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
remember: yes
|
||||
error:
|
||||
- selector: div.myFrame-caption:contains("Access denied")
|
||||
message:
|
||||
selector: div.myFrame-content
|
||||
- selector: div#login_error
|
||||
test:
|
||||
path: index.php
|
||||
selector: a[href="account-logout.php"]
|
||||
selector: a[href="logout.php"]
|
||||
|
||||
download:
|
||||
selectors:
|
||||
- selector: a[href^="download.php?id="]
|
||||
attribute: href
|
||||
before:
|
||||
path: ajax_det_poll.php
|
||||
method: post
|
||||
inputs:
|
||||
set_thanks: Merci
|
||||
det_id: "{{ .DownloadUri.Query.torrent }}"
|
||||
ajax: yes
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: torrents-search.php
|
||||
- path: selection.php
|
||||
inputs:
|
||||
$raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
|
||||
search: "{{ .Keywords }}"
|
||||
# 0 active, 1 incldead, 2 onlydead
|
||||
incldead: 1
|
||||
# 0 inclfree, 1 notfree, 2 onlyfree
|
||||
freeleech: "{{ if .Config.freeleech }}2{{ else }}0{{ end }}"
|
||||
# 0 all, 1 English, 2 etc...
|
||||
lang: 0
|
||||
sort: "{{ .Config.sort }}"
|
||||
order: "{{ .Config.type }}"
|
||||
# 0 name, 1 descr, 2 both
|
||||
blah: 0
|
||||
orderby: "{{ .Config.sort }}"
|
||||
sort: "{{ .Config.type }}"
|
||||
# site does not support imdbid searches or provide imdb links in results
|
||||
|
||||
rows:
|
||||
selector: tr.t-row
|
||||
selector: div.content_wrap > div.selection_wrap:has(a[href^="details.php?id="])
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: a[href^="torrents.php?cat="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: cat
|
||||
cat_p1:
|
||||
selector: div.kat_cat_pic_name
|
||||
cat_p2:
|
||||
selector: div.kat_cat_pic_name_b
|
||||
categorydesc:
|
||||
text: "{{ .Result.cat_p1 }} {{ .Result.cat_p2 }}"
|
||||
title_phase1:
|
||||
selector: a[href^="torrents-details.php?id="]
|
||||
attribute: title
|
||||
selector: a[href^="details.php?id="]
|
||||
title_multilang:
|
||||
text: "{{ .Result.title_phase1 }}"
|
||||
filters:
|
||||
@@ -174,28 +167,58 @@ search:
|
||||
title:
|
||||
text: "{{ if .Config.vostfr }}{{ .Result.title_vostfr }}{{ else }}{{ .Result.title_phase2 }}{{ end }}"
|
||||
details:
|
||||
selector: a[href^="torrents-details.php?id="]
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: href
|
||||
poster:
|
||||
selector: img
|
||||
attribute: src
|
||||
download:
|
||||
selector: a[href^="torrents-details.php?id="]
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: href
|
||||
size:
|
||||
selector: td:nth-child(5)
|
||||
date:
|
||||
text: now
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["details.php?id=", "download.php?torrent="]
|
||||
seeders:
|
||||
selector: td:nth-child(6)
|
||||
selector: div.selection_unter_aa > b
|
||||
leechers:
|
||||
selector: td:nth-child(7)
|
||||
selector: div.selection_unter_aaa > b
|
||||
date_day:
|
||||
# Aujourd'hui à 06:26:25
|
||||
# Hier à 05:15:19
|
||||
selector: div.selection_unter_ab:not(:contains("."))
|
||||
optional: true
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["Aujourd'hui à ", "Today "]
|
||||
- name: replace
|
||||
args: ["Hier à ", "Yesterday "]
|
||||
- name: append
|
||||
args: " +01:00" # CET
|
||||
- name: fuzzytime
|
||||
date_year:
|
||||
# Le 17.10.2020 à 04:39:44
|
||||
selector: div.selection_unter_ab:contains(".")
|
||||
optional: true
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["Le ", ""]
|
||||
- name: replace
|
||||
args: ["à ", ""]
|
||||
- name: append
|
||||
args: " +01:00" # CET
|
||||
- name: dateparse
|
||||
args: "02.01.2006 15:04:05 -07:00"
|
||||
date:
|
||||
text: "{{ if or .Result.date_year .Result.date_day }}{{ or .Result.date_year .Result.date_day }}{{ else }}now{{ end }}"
|
||||
size:
|
||||
selector: div.selection_unter_ad
|
||||
grabs:
|
||||
selector: td:nth-child(8)
|
||||
selector: div.selection_unter_ae
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
img[src="images/free.gif"]: 0
|
||||
img[src^="data:image/gif;base64,R0lGODlhEA"]: 0 # encoded gold coin image
|
||||
"*": 1
|
||||
text: 1
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
minimumratio:
|
||||
text: 1.0
|
||||
# TT3.0
|
||||
minimumseedtime:
|
||||
# 2.5 days (as seconds = 2.5 x 24 x 60 x 60)
|
||||
text: 216000
|
||||
# 3xT
|
||||
|
@@ -137,25 +137,9 @@ search:
|
||||
imdbid:
|
||||
selector: a[href*="imdb.com/title/tt"]
|
||||
attribute: href
|
||||
date:
|
||||
# time type: time elapsed (default)
|
||||
selector: div.time_col span[title]
|
||||
attribute: title
|
||||
optional: true
|
||||
filters:
|
||||
- name: append
|
||||
args: " +08:00" # CST
|
||||
- name: dateparse
|
||||
args: "2006-01-02 15:04:05 -07:00"
|
||||
date:
|
||||
# time added
|
||||
selector: div.time_col:not(:has(span))
|
||||
optional: true
|
||||
filters:
|
||||
- name: append
|
||||
args: " +08:00" # CST
|
||||
- name: dateparse
|
||||
args: "2006-01-0215:04:05 -07:00"
|
||||
doubanid:
|
||||
selector: a[href*="movie.douban.com/subject/"]
|
||||
attribute: href
|
||||
size:
|
||||
# group size. item size
|
||||
selector: div.group > div.video_size, div.torrent_item > div.video_size
|
||||
@@ -179,20 +163,30 @@ search:
|
||||
img.pro_free2up: 2
|
||||
img.pro_2up: 2
|
||||
"*": 1
|
||||
date:
|
||||
# time added
|
||||
selector: div.time_col:contains("发布于"):not(:has(span[title]))
|
||||
remove: a # drop uploader
|
||||
date_elapsed:
|
||||
# time type: time elapsed (default)
|
||||
selector: div.time_col > span[title]
|
||||
attribute: title
|
||||
optional: true
|
||||
filters:
|
||||
- name: replace # remove the 'posted on' tag
|
||||
args: ["发布于", ""]
|
||||
- name: replace # remove anonymous tag
|
||||
args: ["匿名", ""]
|
||||
- name: append
|
||||
args: " +08:00" # CST
|
||||
- name: dateparse
|
||||
args: "2006-01-02 15:04:05 -07:00"
|
||||
date_added:
|
||||
# time added
|
||||
selector: div.time_col:contains("发布于"):not(:has(span[title]))
|
||||
optional: true
|
||||
remove: span
|
||||
filters:
|
||||
- name: replace # remove the 'posted on' tag
|
||||
args: ["发布于", ""]
|
||||
- name: append
|
||||
args: " +08:00" # CST
|
||||
- name: dateparse
|
||||
args: "2006-01-02 15:04:05 -07:00"
|
||||
date:
|
||||
text: "{{ if or .Result.date_elapsed .Result.date_added }}{{ or .Result.date_elapsed .Result.date_added }}{{ else }}now{{ end }}"
|
||||
minimumratio:
|
||||
text: 1.0
|
||||
# NexusPHP Standard v1.5 Beta 4 customised
|
||||
|
@@ -116,9 +116,10 @@ search:
|
||||
case:
|
||||
0: 1 # normal
|
||||
1: 2 # double
|
||||
# global MR is 0.25 but torrents must be seeded for 5 days regardless of ratio
|
||||
# minimumratio:
|
||||
# text: 0.4
|
||||
# minimumseedtime:
|
||||
# text: 0.25
|
||||
minimumseedtime:
|
||||
# 5 days (as seconds = 5 x 24 x 60 x 60)
|
||||
# text: 432000
|
||||
text: 432000
|
||||
# json UNIT3D 5.3.0
|
||||
|
@@ -21,10 +21,38 @@ caps:
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q]
|
||||
movie-search: [q]
|
||||
tv-search: [q, season, ep, imdbid]
|
||||
movie-search: [q, imdbid]
|
||||
music-search: [q]
|
||||
|
||||
settings:
|
||||
- name: username
|
||||
type: text
|
||||
label: Username
|
||||
- name: password
|
||||
type: password
|
||||
label: Password
|
||||
- name: freeleech
|
||||
type: checkbox
|
||||
label: Filter FreeLeech only
|
||||
default: false
|
||||
- name: sort
|
||||
type: select
|
||||
label: Sort requested from site
|
||||
default: added
|
||||
options:
|
||||
added: created
|
||||
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
|
||||
@@ -43,9 +71,15 @@ search:
|
||||
inputs:
|
||||
$raw: "{{ range .Categories }}filter_cat[{{.}}]=1&{{end}}"
|
||||
search: "{{ .Keywords }}"
|
||||
descriptions: 0
|
||||
imdbgt: 0
|
||||
imdblt: 10
|
||||
imdb: "{{ .Query.IMDBID }}"
|
||||
sort: "{{ .Config.sort }}"
|
||||
d: "{{ .Config.type }}"
|
||||
|
||||
rows:
|
||||
selector: table#torrent-list > tbody > tr:has(a[href^="/details.php?id="])
|
||||
selector: "table#torrent-list > tbody > tr:has(a[href^=\"/details.php?id=\"]){{ if .Config.freeleech }}:has(a[title=\"100% FL: no download is counted.\"]){{ else }}{{ end }}"
|
||||
|
||||
fields:
|
||||
category:
|
||||
@@ -75,6 +109,9 @@ search:
|
||||
filters:
|
||||
- name: append
|
||||
args: " ago"
|
||||
imdbid:
|
||||
selector: a[href*="imdb.com/title/tt"]
|
||||
attribute: href
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
"a[title=\"25% Free Leech: only 75% of the download is counted.\"]": 0.25
|
||||
|
@@ -76,29 +76,38 @@ search:
|
||||
inputs:
|
||||
$raw: "{{ range .Categories }}cat{{.}}=1&{{end}}"
|
||||
search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}"
|
||||
# 0=incldead, 1=active, 2=dead
|
||||
incldead: 0
|
||||
# 0=all, 1=normal, 2=free, 3=2x, 4=2x free, 5=50%, 6=2x 50%, 7=30%
|
||||
spstate: "{{ if .Config.freeleech }}2{{ else }}0{{ end }}"
|
||||
# 0=title, 1=descr, 3=uploader, 4=imdb URL
|
||||
search_area: "{{ if .Query.IMDBID }}4{{ else }}0{{ end }}"
|
||||
# 0=AND, 1=OR, 2=Exact
|
||||
search_mode: 0
|
||||
|
||||
rows:
|
||||
selector: table.torrent_list > tbody > tr:has(a[href^="?cat="])
|
||||
|
||||
fields:
|
||||
title:
|
||||
selector: td:nth-child(2) a
|
||||
category:
|
||||
selector: a[href^="?cat="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: cat
|
||||
title:
|
||||
selector: a[href^="details.php?id="]
|
||||
filters:
|
||||
- name: re_replace
|
||||
args: ["\\.", " "]
|
||||
details:
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href^="download.php?hash="]
|
||||
attribute: href
|
||||
description:
|
||||
selector: h4
|
||||
size:
|
||||
selector: td.t_size
|
||||
grabs:
|
||||
@@ -136,4 +145,4 @@ search:
|
||||
img.pro_free2up: 2
|
||||
img.pro_2up: 2
|
||||
"*": 1
|
||||
# NexusPHP tbd
|
||||
# NexusPHP 146364c08c (Customised)
|
||||
|
@@ -111,8 +111,15 @@ search:
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: td:nth-child(1)
|
||||
optional: true
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["---", 4]
|
||||
category|noappend:
|
||||
selector: a[href^="browse.php?cat="]
|
||||
attribute: href
|
||||
optional: true
|
||||
filters:
|
||||
- name: querystring
|
||||
args: cat
|
||||
@@ -166,6 +173,12 @@ search:
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["details", "download"]
|
||||
imdbid:
|
||||
selector: a[href^="browse.php?imdb="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: imdb
|
||||
size:
|
||||
selector: td:nth-child(4)
|
||||
seeders:
|
||||
|
@@ -1,179 +0,0 @@
|
||||
---
|
||||
id: hellastz
|
||||
name: HellasTZ
|
||||
description: "HellasTZ is an Greek Private site for TV / MOVIES / GENERAL"
|
||||
language: el-GR
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
testlinktorrent: false
|
||||
links:
|
||||
- https://hellastz.com/
|
||||
certificates:
|
||||
- d2e56574d77a5059c30883c221094f0556d99cb6 # expired
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 11, cat: Movies, desc: "Movies Αποκλειστικά του HTz (HTz only)"}
|
||||
- {id: 54, cat: Movies/BluRay, desc: "Movies Blu-Ray 720p-1080p"}
|
||||
- {id: 213, cat: Movies, desc: "Movies Ελληνικές Ταινιίες (Greek)"}
|
||||
- {id: 232, cat: Movies/UHD, desc: "Movies Full-HD - 4K"}
|
||||
- {id: 233, cat: Movies/DVD, desc: "Movies DvdRip Full"}
|
||||
- {id: 234, cat: Movies/HD, desc: "Movies BDRip-BRRip-HDRip"}
|
||||
- {id: 235, cat: Movies/WEB-DL, desc: "Movies WEB-720-1080p -HDrip"}
|
||||
- {id: 236, cat: Movies/SD, desc: "Movies Cam - HDcam-HDts"}
|
||||
- {id: 242, cat: Movies, desc: "Movies Ταινίες No Subs"}
|
||||
- {id: 243, cat: Movies/DVD, desc: "Movies Φιλμογραφίες"}
|
||||
- {id: 90, cat: TV, desc: "TV Ελληνικές Σειρές (Greek)"}
|
||||
- {id: 96, cat: TV, desc: "TV Ξένες Σειρές (Foreign)"}
|
||||
- {id: 219, cat: Audio, desc: "Music Ξένη μουσική (Foreign)"}
|
||||
- {id: 220, cat: Audio, desc: "Music Ελληνική Μουσική (Greek)"}
|
||||
- {id: 221, cat: Console, desc: "Παιχνίδια (Games)"}
|
||||
- {id: 223, cat: Books/EBook, desc: "Βιβλία (Books)"}
|
||||
- {id: 100, cat: Books/Comics, desc: "Comics & Περιοδικά"}
|
||||
- {id: 225, cat: TV/Documentary, desc: "Ντοκιμαντερ (Documentaries)"}
|
||||
- {id: 227, cat: PC, desc: "Pc Software"}
|
||||
- {id: 228, cat: TV/Anime, desc: "Animation"}
|
||||
- {id: 230, cat: TV/Anime, desc: "Παιδικα μεταγλωτισμε (Children)"}
|
||||
- {id: 231, cat: TV/Anime, desc: "Παιδικα υποτιτλους (Children w/ subs)"}
|
||||
- {id: 240, cat: PC/Mobile-Other, desc: "Android - Linux"}
|
||||
- {id: 241, cat: Audio/Audiobook, desc: "Audio Books"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
music-search: [q]
|
||||
book-search: [q]
|
||||
|
||||
settings:
|
||||
- name: username
|
||||
type: text
|
||||
label: Username
|
||||
- name: password
|
||||
type: password
|
||||
label: Password
|
||||
- name: freeleech
|
||||
type: checkbox
|
||||
label: Filter freeleech only
|
||||
default: false
|
||||
- name: sort
|
||||
type: select
|
||||
label: Sort requested from site
|
||||
default: 3
|
||||
options:
|
||||
3: created
|
||||
5: seeders
|
||||
4: size
|
||||
2: title
|
||||
- name: type
|
||||
type: select
|
||||
label: Order requested from site
|
||||
default: 2
|
||||
options:
|
||||
2: desc
|
||||
1: asc
|
||||
- name: info
|
||||
type: info
|
||||
label: Results Per Page
|
||||
default: For best results, change the <b>Torrents per page:</b> setting to <b>100</b> on your account profile.
|
||||
|
||||
login:
|
||||
path: index.php?page=login
|
||||
method: post
|
||||
inputs:
|
||||
uid: "{{ .Config.username }}"
|
||||
pwd: "{{ .Config.password }}"
|
||||
error:
|
||||
- selector: tr td span[style="color:#FF0000;"]
|
||||
test:
|
||||
path: index.php
|
||||
selector: a[href="logout.php"]
|
||||
|
||||
download:
|
||||
before:
|
||||
path: thanks.php
|
||||
method: post
|
||||
inputs:
|
||||
infohash: "{{ .DownloadUri.Query.id }}"
|
||||
thanks: 1
|
||||
rndval: "1487013827343"
|
||||
selectors:
|
||||
- selector: a[href^="download.php?id="]
|
||||
attribute: href
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: index.php
|
||||
inputs:
|
||||
page: torrents
|
||||
search: "{{ .Keywords }}"
|
||||
category: "{{ range .Categories }}{{.}};{{end}}"
|
||||
# 0 all, 1 active only, 2 dead only
|
||||
active: 0
|
||||
order: "{{ .Config.sort }}"
|
||||
by: "{{ .Config.type }}"
|
||||
# does not support imdbid search and does not ruturn imdb link in results
|
||||
|
||||
rows:
|
||||
selector: "table.lista > tbody > tr:has(a[href^=\"index.php?page=torrent-details&id=\"]){{ if .Config.freeleech }}:has(img[alt=\"Gold 100% Free\"]){{ else }}{{ end }}"
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: a[href^="index.php?page=torrents&category="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: category
|
||||
title:
|
||||
selector: a[onmouseover][href^="index.php?page=torrent-details&id="]
|
||||
poster:
|
||||
selector: a[onmouseover][href^="index.php?page=torrent-details&id="]
|
||||
attribute: onmouseover
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "src=(.*?) "
|
||||
details:
|
||||
selector: a[onmouseover][href^="index.php?page=torrent-details&id="]
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href^="index.php?page=downloadcheck&id="]
|
||||
attribute: href
|
||||
date:
|
||||
selector: td:nth-child(4)
|
||||
filters:
|
||||
- name: append
|
||||
args: " +02:00" # EET
|
||||
- name: dateparse
|
||||
args: "02/01/2006 -07:00"
|
||||
seeders:
|
||||
selector: td:nth-child(5)
|
||||
leechers:
|
||||
selector: td:nth-child(6)
|
||||
grabs:
|
||||
selector: td:nth-child(7)
|
||||
size:
|
||||
selector: td:nth-child(8)
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
img[alt="Gold 100% Free"]: 0
|
||||
img[alt="Silver 50% Free"]: 0.5
|
||||
img[alt="Bronze 25% Free"]: 0.75
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
case:
|
||||
img[alt="2x Upload Multiplier"]: 2
|
||||
img[alt="3x Upload Multiplier"]: 3
|
||||
img[alt="4x Upload Multiplier"]: 4
|
||||
img[alt="5x Upload Multiplier"]: 5
|
||||
img[alt="6x Upload Multiplier"]: 6
|
||||
img[alt="7x Upload Multiplier"]: 7
|
||||
img[alt="8x Upload Multiplier"]: 8
|
||||
img[alt="9x Upload Multiplier"]: 9
|
||||
img[alt="10x Upload Multiplier"]: 10
|
||||
"*": 1
|
||||
minimumratio:
|
||||
text: 1.0
|
||||
minimumseedtime:
|
||||
# 3 days (as seconds = 3 x 24 x 60 x 60)
|
||||
text: 259200
|
||||
# xbtitFM v3.1.00
|
@@ -1,144 +0,0 @@
|
||||
---
|
||||
id: hidden-palace
|
||||
name: Hidden-Palace
|
||||
description: "Hidden-Palace is a Private torrent site for MOVIES / TV"
|
||||
language: en-US
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://hidden-palace.net/
|
||||
legacylinks:
|
||||
- https://hidden-palace.xyz/
|
||||
|
||||
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://hidden-palace.net/\" target =_blank>Hidden-Palace</a> account <i>My Security</i> page and clicking on the <b>API Token</b> tab."
|
||||
- name: freeleech
|
||||
type: checkbox
|
||||
label: Search freeleech only
|
||||
default: false
|
||||
- name: sort
|
||||
type: select
|
||||
label: Sort requested from site
|
||||
default: created_at
|
||||
options:
|
||||
created_at: created
|
||||
seeders: seeders
|
||||
size: size
|
||||
name: title
|
||||
- name: type
|
||||
type: select
|
||||
label: Order requested from site
|
||||
default: desc
|
||||
options:
|
||||
desc: desc
|
||||
asc: asc
|
||||
|
||||
login:
|
||||
path: /api/torrents
|
||||
method: get
|
||||
inputs:
|
||||
api_token: "{{ .Config.apikey }}"
|
||||
error:
|
||||
- selector: a[href*="/login"]
|
||||
message:
|
||||
text: "The API key was not accepted by {{ .Config.sitelink }}."
|
||||
|
||||
search:
|
||||
paths:
|
||||
# https://hdinnovations.github.io/UNIT3D-Community-Edition-Docs/api_endpoints.html
|
||||
# https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php
|
||||
- path: "/api/torrents/filter"
|
||||
response:
|
||||
type: json
|
||||
|
||||
inputs:
|
||||
# if we have an id based search, add Season and Episode as query in name for UNIT3D < v6. Else pass S/E Params for UNIT3D >= v6
|
||||
api_token: "{{ .Config.apikey }}"
|
||||
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
|
||||
args: ["\\.", " "]
|
||||
|
||||
rows:
|
||||
selector: data
|
||||
attribute: attributes
|
||||
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%, 25%, 50%, 75%, 100%
|
||||
selector: freeleech
|
||||
case:
|
||||
0%: 1 # not free
|
||||
25%: 0.75
|
||||
50%: 0.5
|
||||
75%: 0.25
|
||||
100%: 0 # freeleech
|
||||
"*": 0 # catch errors
|
||||
uploadvolumefactor:
|
||||
# api returns 0=false, 1=true
|
||||
selector: double_upload
|
||||
case:
|
||||
0: 1 # normal
|
||||
1: 2 # double
|
||||
minimumratio:
|
||||
text: 1.0
|
||||
minimumseedtime:
|
||||
# 1 day (as seconds = 1 x 24 x 60 x 60)
|
||||
text: 86400
|
||||
# json UNIT3D 6.0.5
|
@@ -142,20 +142,20 @@ search:
|
||||
selector: a[href^="torrents_data/posters/"]
|
||||
attribute: href
|
||||
date:
|
||||
selector: td:nth-last-child(6)
|
||||
selector: td:nth-last-child(5)
|
||||
filters:
|
||||
- name: append
|
||||
args: " +01:00" # CET
|
||||
- name: dateparse
|
||||
args: "2006-01-02 15:04:05 -07:00"
|
||||
size:
|
||||
selector: td:nth-last-child(5) b
|
||||
selector: td:nth-last-child(4) b
|
||||
grabs:
|
||||
selector: td:nth-last-child(4)
|
||||
seeders:
|
||||
selector: td:nth-last-child(3)
|
||||
seeders:
|
||||
selector: td:nth-last-child(2) a b
|
||||
leechers:
|
||||
selector: td:nth-last-child(2)
|
||||
selector: td:nth-last-child(1)
|
||||
downloadvolumefactor:
|
||||
text: 1
|
||||
uploadvolumefactor:
|
||||
|
@@ -192,4 +192,10 @@ search:
|
||||
i[class*="fa-globe text-green"]: 2 # Global Double Upload
|
||||
i[class*="fa-certificate text-pink"]: 2 # Featured Torrent
|
||||
"*": 1
|
||||
# global MR is 1.0 but torrents must be seeded for 2 days regardless of ratio
|
||||
# minimumratio:
|
||||
# text: 1.0
|
||||
minimumseedtime:
|
||||
# 2 days (as seconds = 5 x 24 x 60 x 60)
|
||||
text: 172800
|
||||
# UNIT3D 1.9.3
|
||||
|
@@ -25,7 +25,35 @@ caps:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
music-search: [q, artist]
|
||||
music-search: [q, album, artist]
|
||||
|
||||
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: s3
|
||||
options:
|
||||
s3: created
|
||||
s6: seeders
|
||||
s4: size
|
||||
s1: title
|
||||
- name: type
|
||||
type: select
|
||||
label: Order requested from site
|
||||
default: desc
|
||||
options:
|
||||
desc: desc
|
||||
asc: asc
|
||||
|
||||
login:
|
||||
path: login.php
|
||||
@@ -34,22 +62,23 @@ login:
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
keeplogged: 1
|
||||
login: "Log in"
|
||||
login: "Log In!"
|
||||
error:
|
||||
- selector: form#loginform > span.warning, font[color="red"]
|
||||
test:
|
||||
path: torrents.php
|
||||
|
||||
search:
|
||||
# https://jpopsuki.eu/ajax.php?section=torrents&artistname=&action=advanced&torrentname=snow+man&remastertitle=&filelist=&bitrate=&format=&media=&year=&freeleech=&remastered=&searchtags=&tags_type=0&order_by=s3&order_way=desc&enablegrouping=1
|
||||
paths:
|
||||
- path: ajax.php
|
||||
inputs:
|
||||
$raw: "{{ range .Categories }}filter_cat[{{.}}]=1&{{end}}{{ if or .Query.Artist .Keywords }}{{ else }}searchtags=japanese&tags_type=0&{{ end }}"
|
||||
searchstr: "{{ if .Query.Artist }}{{ .Query.Artist }}{{ else }}{{ .Keywords }}{{ end }}"
|
||||
# s1 name, s2 year, s3 added, s4 size, s5 snatched, s6 seeders, s7 leechers
|
||||
order_by: s3
|
||||
# desc, asc
|
||||
order_way: desc
|
||||
$raw: "{{ range .Categories }}filter_cat[{{.}}]=1&{{end}}{{ if or .Query.Album .Query.Artist .Keywords }}action=advanced{{ else }}searchtags=japanese&tags_type=0{{ end }}"
|
||||
artistname: "{{ if .Query.Artist }}{{ .Query.Artist }}{{ else }}{{ end }}"
|
||||
torrentname: "{{ if .Query.Album }}{{ .Query.Album }}{{ else }}{{ .Keywords }}{{ end }}"
|
||||
freeleech: "{{ if .Config.freeleech }}1{{ else }}{{ end }}"
|
||||
order_by: "{{ .Config.sort }}"
|
||||
order_way: "{{ .Config.type }}"
|
||||
disablegrouping: 1
|
||||
section: torrents
|
||||
|
||||
@@ -108,4 +137,6 @@ search:
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
minimumratio:
|
||||
text: 0.6
|
||||
# engine n/a
|
||||
|
142
src/Jackett.Common/Definitions/knaben.yml
Normal file
142
src/Jackett.Common/Definitions/knaben.yml
Normal file
@@ -0,0 +1,142 @@
|
||||
---
|
||||
id: knaben
|
||||
name: Knaben
|
||||
description: "Knaben is a Public torrent meta-search engine"
|
||||
language: en-US
|
||||
type: public
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://knaben.eu/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
# Cat ids used for filtering /browse/ are not consistent with those for results, so double-check when updating.
|
||||
# They appear to be using nZEDb/Newznab/Jackett cat ids, so if there are empty categories, resort to those.
|
||||
# Audio
|
||||
- {id: 3000, cat: Audio, desc: "Audio"}
|
||||
- {id: 3010, cat: Audio/MP3, desc: "Audio/MP3"}
|
||||
- {id: 3020, cat: Audio/Video, desc: "Audio/Video"}
|
||||
- {id: 3030, cat: Audio/Audiobook, desc: "Audio/Audiobook"}
|
||||
- {id: 3040, cat: Audio/Lossless, desc: "Audio/Lossless"}
|
||||
- {id: 3050, cat: Audio/Other, desc: "Audio/Other"}
|
||||
# Console
|
||||
- {id: 1000, cat: Console, desc: "Console"}
|
||||
- {id: 1010, cat: Console/NDS, desc: "Console/NDS"}
|
||||
- {id: 1020, cat: Console/PSP, desc: "Console/PSP"}
|
||||
- {id: 1030, cat: Console/Wii, desc: "Console/Wii"}
|
||||
- {id: 1040, cat: Console/XBox, desc: "Console/Xbox"}
|
||||
- {id: 1050, cat: Console/XBox 360, desc: "Console/Xbox 360"}
|
||||
- {id: 1080, cat: Console/PS3, desc: "Console/PS3"}
|
||||
- {id: 1110, cat: Console/3DS, desc: "Console/3DS"}
|
||||
- {id: 1120, cat: Console/PS Vita, desc: "Console/PS Vita"}
|
||||
- {id: 1180, cat: Console/PS4, desc: "Console/PS4"}
|
||||
- {id: 1090, cat: Console/Other, desc: "Console/Other"}
|
||||
# Movies
|
||||
- {id: 2000, cat: Movies, desc: "Movies"}
|
||||
- {id: 2010, cat: Movies/Foreign, desc: "Movies/Foreign"}
|
||||
- {id: 2030, cat: Movies/SD, desc: "Movies/SD"}
|
||||
- {id: 2040, cat: Movies/HD, desc: "Movies/HD"}
|
||||
- {id: 2045, cat: Movies/UHD, desc: "Movies/UHD"}
|
||||
- {id: 2060, cat: Movies/3D, desc: "Movies/3D"}
|
||||
- {id: 2050, cat: Movies/BluRay, desc: "Movies/BluRay"}
|
||||
- {id: 2070, cat: Movies/DVD, desc: "Movies/DVD"}
|
||||
- {id: 2020, cat: Movies/Other, desc: "Movies/Other"}
|
||||
# PC
|
||||
- {id: 4000, cat: PC, desc: "PC/PC"}
|
||||
- {id: 4020, cat: PC/ISO, desc: "PC/ISO"}
|
||||
- {id: 4030, cat: PC/Mac, desc: "PC/Mac"}
|
||||
- {id: 4040, cat: PC/Mobile-Other, desc: "PC/Mobile-Other"}
|
||||
- {id: 4050, cat: PC/Games, desc: "PC/Games"}
|
||||
- {id: 4060, cat: PC/Mobile-iOS, desc: "PC/Mobile-iOS"}
|
||||
- {id: 4070, cat: PC/Mobile-Android, desc: "PC/Mobile-Android"}
|
||||
# Anime
|
||||
- {id: 5070, cat: TV/Anime, desc: "Anime"}
|
||||
# TV
|
||||
- {id: 5000, cat: TV, desc: "TV"}
|
||||
- {id: 5020, cat: TV/Foreign, desc: "TV/FOREIGN"}
|
||||
- {id: 5030, cat: TV/SD, desc: "TV/SD"}
|
||||
- {id: 5040, cat: TV/HD, desc: "TV/HD"}
|
||||
- {id: 5045, cat: TV/UHD, desc: "TV/UHD"}
|
||||
- {id: 5060, cat: TV/Sport, desc: "TV/Sport"}
|
||||
- {id: 5080, cat: TV/Documentary, desc: "TV/Documentary"}
|
||||
- {id: 5050, cat: TV/Other, desc: "TV/OTHER"}
|
||||
# XXX
|
||||
- {id: 6000, cat: XXX, desc: "XXX"}
|
||||
- {id: 6010, cat: XXX/DVD, desc: "XXX/DVD"}
|
||||
- {id: 6060, cat: XXX/ImageSet, desc: "XXX/Imageset"}
|
||||
- {id: 6070, cat: XXX/Other, desc: "XXX/Other"}
|
||||
# Books
|
||||
- {id: 7000, cat: Books, desc: "Books"}
|
||||
- {id: 7020, cat: Books/EBook, desc: "Books/Ebook"}
|
||||
- {id: 7030, cat: Books/Comics, desc: "Books/Comics"}
|
||||
- {id: 8030, cat: Books/Mags, desc: "Books/Magazines"}
|
||||
- {id: 7040, cat: Books/Technical, desc: "Books/Technical"}
|
||||
- {id: 7050, cat: Books/Other, desc: "Books/Other"}
|
||||
# Other
|
||||
- {id: 8000, cat: Other, desc: "Other"}
|
||||
- {id: 8010, cat: Other/Misc, desc: "Other/Misc"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
music-search: [q]
|
||||
book-search: [q]
|
||||
|
||||
settings:
|
||||
- name: sort
|
||||
type: select
|
||||
label: Sort requested from site
|
||||
default: Date
|
||||
options:
|
||||
Date: created
|
||||
Seeders: seeders
|
||||
Size: size
|
||||
Title: title
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: "{{ if .Keywords }}search/?q={{ .Keywords }}&p=1&cat=All&s={{ else }}browse/1/0/{{ end }}{{ .Config.sort }}"
|
||||
|
||||
rows:
|
||||
selector: tr[title^="Cached at"]
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: a[href^="/browse/"]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: split
|
||||
args: ["/", 3]
|
||||
title:
|
||||
selector: td:nth-child(2) a
|
||||
details:
|
||||
selector: td:last-child a
|
||||
attribute: href
|
||||
magnet:
|
||||
selector: td:nth-child(2) a
|
||||
attribute: href
|
||||
description:
|
||||
selector: td:last-child a
|
||||
filters:
|
||||
- name: prepend
|
||||
args: "Source: "
|
||||
date:
|
||||
selector: td:nth-child(4)
|
||||
attribute: title
|
||||
filters:
|
||||
- name: append
|
||||
args: " +01:00" # CET
|
||||
- name: dateparse
|
||||
args: "2006-01-02T15:04:05 -07:00"
|
||||
size:
|
||||
selector: td:nth-child(3)
|
||||
seeders:
|
||||
selector: td:nth-child(5)
|
||||
leechers:
|
||||
selector: td:nth-child(6)
|
||||
downloadvolumefactor:
|
||||
text: 0
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
# engine n/a
|
@@ -68,13 +68,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>Access this tracker with your browser<li>click on the <b>Apply Filter</b> button on the page to invoke the search and solve the challenge<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>"
|
||||
label: Username
|
||||
- name: password
|
||||
type: password
|
||||
label: Password
|
||||
- name: freeleech
|
||||
type: checkbox
|
||||
label: Search freeleech only
|
||||
@@ -101,9 +100,20 @@ settings:
|
||||
asc: asc
|
||||
|
||||
login:
|
||||
method: cookie
|
||||
path: takelogin.php
|
||||
method: post
|
||||
inputs:
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
submitme: Login
|
||||
use_ssl: 1
|
||||
perm_ssl: 2
|
||||
returnto: /
|
||||
error:
|
||||
- selector: td.embedded:contains("Login failed")
|
||||
test:
|
||||
path: browse.php
|
||||
path: index.php
|
||||
selector: a[href*="/logout.php?hash_please="]
|
||||
|
||||
search:
|
||||
paths:
|
||||
|
@@ -105,6 +105,11 @@ login:
|
||||
path: index.php
|
||||
selector: a[href="logout.php"]
|
||||
|
||||
download:
|
||||
selectors:
|
||||
- selector: a[href$="&https=1"]
|
||||
attribute: href
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: torrents.php
|
||||
@@ -120,7 +125,7 @@ search:
|
||||
incldead: 0
|
||||
# 0 all, 1 normal, 2 free, 3 2x, 4 2xfree, 5 50%, 6 2x50%, 7 30%
|
||||
spstate: "{{ if .Config.freeleech }}2{{ else }}0{{ end }}"
|
||||
# 0 title, 1 descr, 3 uploader, 4 imdb url
|
||||
# 0 title, 3 uploader, 4 imdb url
|
||||
search_area: "{{ if .Query.IMDBID }}4{{ else }}0{{ end }}"
|
||||
# 0 and, 1 or, 2 exact
|
||||
search_mode: 0
|
||||
@@ -151,7 +156,7 @@ search:
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href^="download.php?id="]
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: href
|
||||
poster:
|
||||
selector: img[alt="torrent thumbnail"]
|
||||
|
@@ -108,6 +108,11 @@ login:
|
||||
path: index.php
|
||||
selector: a[href="logout.php"]
|
||||
|
||||
download:
|
||||
selectors:
|
||||
- selector: a[href$="&https=1"]
|
||||
attribute: href
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: torrents.php
|
||||
@@ -123,7 +128,7 @@ search:
|
||||
incldead: 0
|
||||
# 0 all, 1 normal, 2 free, 3 2x, 4 2xfree, 5 50%, 6 2x50%, 7 30%
|
||||
spstate: "{{ if .Config.freeleech }}2{{ else }}0{{ end }}"
|
||||
# 0 title, 1 descr, 3 uploader, 4 imdb url
|
||||
# 0 title, 3 uploader, 4 imdb url
|
||||
search_area: "{{ if .Query.IMDBID }}4{{ else }}0{{ end }}"
|
||||
# 0 AND, 1 OR, 2 exact
|
||||
search_mode: 0
|
||||
@@ -157,7 +162,7 @@ search:
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href^="download.php?id="]
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: href
|
||||
poster:
|
||||
selector: img[alt="torrent thumbnail"]
|
||||
|
150
src/Jackett.Common/Definitions/nbtorrents.yml
Normal file
150
src/Jackett.Common/Definitions/nbtorrents.yml
Normal file
@@ -0,0 +1,150 @@
|
||||
---
|
||||
id: nbtorrents
|
||||
name: NBTorrents
|
||||
description: "NBTorrents is an INDIAN Private site for MOVIES / TV / MUSIC"
|
||||
language: en-US
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://www.nbtorrents.com/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 22, cat: TV/Anime, desc: "Anime & Cartoon"}
|
||||
- {id: 26, cat: TV/Documentary, desc: "Documentaries"}
|
||||
- {id: 1, cat: Movies/UHD, desc: "Movies UHD & BluRay"}
|
||||
- {id: 3, cat: Movies/BluRay, desc: "Movies BDRips"}
|
||||
- {id: 6, cat: Movies/DVD, desc: "Movies DVD"}
|
||||
- {id: 7, cat: Movies/DVD, desc: "Movies DVDRip"}
|
||||
- {id: 8, cat: Movies, desc: "Movies Pre"}
|
||||
- {id: 2, cat: Movies, desc: "Movies Remux"}
|
||||
- {id: 4, cat: Movies/WEB-DL, desc: "Movies Web"}
|
||||
- {id: 5, cat: Movies/WEB-DL, desc: "Movies WebRip"}
|
||||
- {id: 15, cat: Audio/Lossless, desc: "Music CD & FLAC"}
|
||||
- {id: 17, cat: Audio/MP3, desc: "Music MP3"}
|
||||
- {id: 18, cat: Audio, desc: "Music Pack"}
|
||||
- {id: 20, cat: Audio, desc: "Music Podcast"}
|
||||
- {id: 19, cat: Audio/Video, desc: "Music Video"}
|
||||
- {id: 16, cat: Audio, desc: "Music Web"}
|
||||
- {id: 25, cat: TV/Sport, desc: "Sports"}
|
||||
- {id: 10, cat: TV/UHD, desc: "TV UHD & BluRay"}
|
||||
- {id: 11, cat: TV, desc: "TV BDRips"}
|
||||
- {id: 14, cat: TV, desc: "TV packs"}
|
||||
- {id: 12, cat: TV/WEB-DL, desc: "TV Web"}
|
||||
- {id: 13, cat: TV/WEB-DL, desc: "TV WebRips"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
music-search: [q]
|
||||
|
||||
settings:
|
||||
- name: username
|
||||
type: text
|
||||
label: Username
|
||||
- name: password
|
||||
type: password
|
||||
label: Password
|
||||
- name: freeleech
|
||||
type: checkbox
|
||||
label: Search freeleech only
|
||||
default: false
|
||||
- name: sort
|
||||
type: select
|
||||
label: Sort requested from site
|
||||
default: 4
|
||||
options:
|
||||
4: created
|
||||
7: seeders
|
||||
5: size
|
||||
1: title
|
||||
- name: type
|
||||
type: select
|
||||
label: Order requested from site
|
||||
default: desc
|
||||
options:
|
||||
desc: desc
|
||||
asc: asc
|
||||
|
||||
login:
|
||||
path: login.php
|
||||
method: form
|
||||
form: form[action="takelogin.php"]
|
||||
inputs:
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
error:
|
||||
- selector: td.colhead:contains("failed")
|
||||
message:
|
||||
selector: table tr td.text
|
||||
test:
|
||||
path: browse.php
|
||||
selector: a[href*="logout.php?hash_insert="]
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: browse.php
|
||||
inputs:
|
||||
$raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
|
||||
search: "{{ .Keywords }}"
|
||||
searchin: title
|
||||
incldead: 1
|
||||
only_free: "{{ if .Config.freeleech }}1{{ else }}0{{ end }}"
|
||||
sort: "{{ .Config.sort }}"
|
||||
type: "{{ .Config.type }}"
|
||||
|
||||
rows:
|
||||
selector: table.mainouter tr table tr:has(a[href^="download.php?torrent="])
|
||||
filters:
|
||||
- name: andmatch
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: td a[href^="browse.php?cat="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: cat
|
||||
title:
|
||||
selector: td a[href^="details.php?id="]
|
||||
details:
|
||||
selector: td a[href^="details.php?id="]
|
||||
attribute: href
|
||||
poster:
|
||||
selector: td a[href^="details.php?id="]
|
||||
attribute: onmouseover
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "src=\\\\'(.*?)\\\\' "
|
||||
download:
|
||||
selector: td a[href^="download.php?torrent="]
|
||||
attribute: href
|
||||
imdbid:
|
||||
selector: td a[href*="imdb.com/title/tt"]
|
||||
attribute: href
|
||||
files:
|
||||
selector: td:nth-of-type(5)
|
||||
date:
|
||||
selector: td:nth-of-type(7)
|
||||
filters:
|
||||
- name: append
|
||||
args: " +05:30" # IST
|
||||
- name: dateparse
|
||||
args: "Jan 2 2006 03:04 PM -07:00"
|
||||
size:
|
||||
selector: td:nth-of-type(8)
|
||||
grabs:
|
||||
selector: td:nth-of-type(9)
|
||||
seeders:
|
||||
selector: td:nth-of-type(10)
|
||||
leechers:
|
||||
selector: td:nth-of-type(11)
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
"img[title=\"Free Torrent\"]": 0 # torrent specific free leech (icon)?
|
||||
"a.info:contains(\"Free\")": 0 # global freeleech note?
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
# engine n/a
|
@@ -7,7 +7,7 @@ type: public
|
||||
encoding: UTF-8
|
||||
followredirect: true
|
||||
links:
|
||||
- https://www.torrent911.net/
|
||||
- https://www.torrent911.org/
|
||||
- https://www.t911.me/
|
||||
legacylinks:
|
||||
- https://www.oxtorrent.bz/
|
||||
@@ -37,6 +37,7 @@ legacylinks:
|
||||
- https://www.t911.net/
|
||||
- https://oxtorrent.unblockit.blue/ # proxy for *.co, a clone without derniers
|
||||
- https://oxtorrent.nocensor.sbs/ # proxy for *.co, a clone without derniers
|
||||
- https://www.torrent911.net/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
|
@@ -178,17 +178,11 @@ search:
|
||||
selector: td:nth-child(8)
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
tr.free_bg: 0
|
||||
img.pro_free: 0
|
||||
tr.2up: 0
|
||||
img.pro_2up: 0
|
||||
tr.free2up: 0
|
||||
img.pro_free2up: 0
|
||||
tr.halfdown_bg: 0.5
|
||||
img.pro_50pctdown: 0.5
|
||||
tr.d30down_bg: 0.3
|
||||
img.pro_30pctdown: 0.3
|
||||
tr.d70down_bg: 0.7
|
||||
img.pro_70pctdown: 0.7
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
|
@@ -91,6 +91,7 @@ search:
|
||||
args: "{{ .Result.description }}"
|
||||
imdbid:
|
||||
selector: a[href*="imdb.com/title/tt"]
|
||||
attribute: href
|
||||
date:
|
||||
selector: td:nth-child(5)
|
||||
filters:
|
||||
|
@@ -139,4 +139,4 @@ search:
|
||||
1: 2 # double
|
||||
minimumratio:
|
||||
text: 1.0
|
||||
# json UNIT3D 6.0.8
|
||||
# json UNIT3D 6.1.0
|
||||
|
@@ -37,8 +37,8 @@ caps:
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q]
|
||||
movie-search: [q]
|
||||
tv-search: [q, season, ep, imdbid]
|
||||
movie-search: [q, imdbid]
|
||||
music-search: [q]
|
||||
|
||||
settings:
|
||||
@@ -66,8 +66,10 @@ settings:
|
||||
|
||||
search:
|
||||
paths:
|
||||
# http://rutor.info/search/0/0/100/0/gotham%2004x01
|
||||
- path: "{{ if .Keywords }}search/0/0/100/{{ .Config.sort }}/{{ .Keywords }}/{{ else }}top/{{ end }}"
|
||||
# http://rutor.info/search/0/0/010/0/tt10288566 # search title and descr for imdb
|
||||
# http://rutor.info/search/0/0/100/0/gotham%2004x01 # search title for query
|
||||
# http://rutor.info/top/ # search keywordless
|
||||
- path: "{{ if .Query.IMDBID }}search/0/0/010/{{ .Config.sort }}/{{ .Query.IMDBID }}{{ else }}{{ end }}{{ if .Keywords }}search/0/0/100/{{ .Config.sort }}/{{ .Keywords }}/{{ else }}{{ end }}{{ if or .Keywords .Query.IMDBID }}{{ else }}top/{{ end }}"
|
||||
|
||||
rows:
|
||||
selector: tr:has(td:has(a.downgif))
|
||||
|
156
src/Jackett.Common/Definitions/satclubbing.yml
Normal file
156
src/Jackett.Common/Definitions/satclubbing.yml
Normal file
@@ -0,0 +1,156 @@
|
||||
---
|
||||
id: satclubbing
|
||||
name: SATClubbing
|
||||
description: "SATClubbing is a RUSSIAN/ENGLISH Semi-Private Torrent Tracker for ELECTRONIC MUSIC"
|
||||
language: en-US
|
||||
type: semi-private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://satclubbing.club/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 23, cat: Audio, desc: "Albums - Trance"}
|
||||
- {id: 34, cat: Audio, desc: "Singles - Trance"}
|
||||
- {id: 24, cat: Audio, desc: "Livesets - Trance"}
|
||||
- {id: 30, cat: Audio, desc: "Albums - House"}
|
||||
- {id: 25, cat: Audio, desc: "Singles - House"}
|
||||
- {id: 32, cat: Audio, desc: "Livesets - House"}
|
||||
- {id: 18, cat: Audio, desc: "Albums - Techno"}
|
||||
- {id: 29, cat: Audio, desc: "Singles - Techno"}
|
||||
- {id: 21, cat: Audio, desc: "Livesets - Techno"}
|
||||
- {id: 35, cat: Audio, desc: "Albums - Hardstyle"}
|
||||
- {id: 20, cat: Audio, desc: "Singles - Hardstyle"}
|
||||
- {id: 28, cat: Audio, desc: "Livesets - Hardstyle"}
|
||||
- {id: 22, cat: Audio, desc: "Albums - Goa/Psy"}
|
||||
- {id: 33, cat: Audio, desc: "Singles - Goa/Psy"}
|
||||
- {id: 26, cat: Audio, desc: "Livesets - Goa/Psy"}
|
||||
- {id: 31, cat: Audio, desc: "Beat/Breaks"}
|
||||
- {id: 40, cat: Audio, desc: "Electronic"}
|
||||
- {id: 42, cat: Audio, desc: "Albums - Drum and Bass"}
|
||||
- {id: 43, cat: Audio, desc: "Singles - Drum and Bass"}
|
||||
- {id: 44, cat: Audio, desc: "Livesets - Drum and Bass"}
|
||||
- {id: 45, cat: Audio, desc: "Albums - Dance"}
|
||||
- {id: 46, cat: Audio, desc: "Singles - Dance"}
|
||||
- {id: 36, cat: Audio, desc: "Unreleased Tracks"}
|
||||
- {id: 41, cat: Audio, desc: "Bass"}
|
||||
- {id: 39, cat: Audio, desc: "Ambient / Chill"}
|
||||
- {id: 27, cat: Other, desc: "Music Plugins/Apps/Misc"}
|
||||
- {id: 19, cat: Audio/Video, desc: "DVD/Video/Clips"}
|
||||
- {id: 38, cat: Audio, desc: "SCMT Pack"}
|
||||
- {id: 47, cat: Audio, desc: "Albums - Hardcore"}
|
||||
- {id: 48, cat: Audio, desc: "Singles - Hardcore"}
|
||||
- {id: 49, cat: Audio, desc: "Livesets - Hardcore"}
|
||||
- {id: 50, cat: Audio, desc: "Rave"}
|
||||
- {id: 51, cat: Audio, desc: "Acid"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
music-search: [q, artist]
|
||||
|
||||
settings:
|
||||
- name: username
|
||||
type: text
|
||||
label: Username
|
||||
- name: password
|
||||
type: password
|
||||
label: Password
|
||||
- name: freeleech
|
||||
type: checkbox
|
||||
label: Search freeleech only
|
||||
default: false
|
||||
- name: sort
|
||||
type: select
|
||||
label: Sort requested from site
|
||||
default: 4
|
||||
options:
|
||||
4: created
|
||||
7: seeders
|
||||
5: size
|
||||
1: title
|
||||
- name: type
|
||||
type: select
|
||||
label: Order requested from site
|
||||
default: desc
|
||||
options:
|
||||
desc: desc
|
||||
asc: asc
|
||||
|
||||
login:
|
||||
path: takelogin.php
|
||||
method: post
|
||||
inputs:
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
error:
|
||||
- selector: div.error
|
||||
test:
|
||||
path: /
|
||||
selector: a[href="logout.php"]
|
||||
|
||||
search:
|
||||
paths:
|
||||
# https://satclubbing.club/browse.php?search=&cat=0&incldead=1&age=0&quality=0&c23=1&c34=1
|
||||
- path: browse.php
|
||||
inputs:
|
||||
$raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
|
||||
search: "{{ if .Query.Artist }}{{ .Query.Artist }}{{ else }}{{ .Keywords }}{{ end }}"
|
||||
# 0 active, 1 incldead, 2 onlydead, 3 freeleech, 4 seedless
|
||||
incldead: "{{ if .Config.freeleech }}3{{ else }}1{{ end }}"
|
||||
# 0 any, 1 fresh, 2 classic, 3 not classic
|
||||
age: 0
|
||||
# 0 any, 320 mp3 cbr, 1000 mp3 vbr, 2000 lossless
|
||||
quality: 0
|
||||
sort: "{{ .Config.sort }}"
|
||||
type: "{{ .Config.type }}"
|
||||
|
||||
rows:
|
||||
selector: table > tbody > tr > td.index > table.embedded[cellspacing="0"][cellpadding="5"][width="100%"] > tbody > tr:has(a[href^="details.php?id="])
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: a[href^="browse.php?cat="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: cat
|
||||
title:
|
||||
selector: a[href^="details.php?id="]
|
||||
details:
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href^="download.php?id="]
|
||||
attribute: href
|
||||
date:
|
||||
selector: td:last-child
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["added ", ""]
|
||||
- name: timeago
|
||||
files:
|
||||
selector: a[href$="filelist=1"]
|
||||
size:
|
||||
selector: td:has(a[href$="filelist=1"]) + td + td
|
||||
seeders_optional:
|
||||
selector: a[href$="toseeders=1"]
|
||||
optional: true
|
||||
seeders:
|
||||
text: "{{ if .Result.seeders_optional }}{{ .Result.seeders_optional }}{{ else }}0{{ end }}"
|
||||
leechers_optional:
|
||||
selector: td:has(a[href$="toseeders=1"])
|
||||
optional: true
|
||||
filters:
|
||||
- name: split
|
||||
args: ["|", 1]
|
||||
leechers:
|
||||
text: "{{ if .Result.leechers_optional }}{{ .Result.leechers_optional }}{{ else }}0{{ end }}"
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
img[src$="pic/free_icon.gif"]: 0
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
minimumratio:
|
||||
text: 0.60
|
||||
# engine n/a
|
@@ -1,161 +0,0 @@
|
||||
---
|
||||
id: seedfile
|
||||
name: SeedFile
|
||||
description: "SeedFile (SF) is a ROMANIAN Private Torrent Tracker for 0DAY / GENERAL"
|
||||
language: ro-RO
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://www.seedfile.io/
|
||||
legacylinks:
|
||||
- https://www.seedfile.ro/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 1, cat: Books/Mags, desc: "Cărți/Reviste"}
|
||||
- {id: 2, cat: Other, desc: "Desene SD"}
|
||||
- {id: 3, cat: Other, desc: "Diverse n/a"}
|
||||
- {id: 5, cat: Movies/BluRay, desc: "Filme Blu-Ray"}
|
||||
- {id: 6, cat: Movies/DVD, desc: "Filme DVD"}
|
||||
- {id: 7, cat: Movies/DVD, desc: "Filme DVD-RO"}
|
||||
- {id: 8, cat: Movies/HD, desc: "Filme HD"}
|
||||
- {id: 9, cat: Movies/HD, desc: "Filme HD-RO"}
|
||||
- {id: 10, cat: Movies/SD, desc: "Filme SD"}
|
||||
- {id: 11, cat: Movies/SD, desc: "Filme SD-RO"}
|
||||
- {id: 12, cat: Other, desc: "Imagini"}
|
||||
- {id: 13, cat: Console, desc: "Jocuri Console"}
|
||||
- {id: 14, cat: PC/Games, desc: "Jocuri PC"}
|
||||
- {id: 15, cat: Audio, desc: "Muzică"}
|
||||
- {id: 16, cat: PC/Mobile-Other, desc: "Mobile"}
|
||||
- {id: 17, cat: PC, desc: "Programe"}
|
||||
- {id: 18, cat: TV/HD, desc: "Seriale HD"}
|
||||
- {id: 19, cat: TV/HD, desc: "Seriale HD-RO"}
|
||||
- {id: 20, cat: TV/SD, desc: "Seriale TV"}
|
||||
- {id: 21, cat: TV/SD, desc: "Seriale TV-RO"}
|
||||
- {id: 22, cat: TV/Sport, desc: "Sport"}
|
||||
- {id: 23, cat: Audio/Video, desc: "Video Clip"}
|
||||
- {id: 24, cat: XXX, desc: "Adult 18+"}
|
||||
- {id: 36, cat: Movies/3D, desc: "Video 3D"}
|
||||
- {id: 37, cat: Movies/HD, desc: "Animație HD"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
music-search: [q]
|
||||
book-search: [q]
|
||||
|
||||
settings:
|
||||
- name: username
|
||||
type: text
|
||||
label: Username
|
||||
- name: password
|
||||
type: password
|
||||
label: Password
|
||||
- name: freeleech
|
||||
type: checkbox
|
||||
label: Search freeleech only
|
||||
default: false
|
||||
|
||||
login:
|
||||
path: takelogin.php
|
||||
method: post
|
||||
inputs:
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
error:
|
||||
- selector: div.recover-error2
|
||||
test:
|
||||
path: profile.php
|
||||
|
||||
download:
|
||||
selectors:
|
||||
- selector: a[href^="download.php/"]
|
||||
attribute: href
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: download-torrents
|
||||
inputs:
|
||||
$raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
|
||||
search: "{{ .Keywords }}"
|
||||
# 0 active, 1 incldead, 2 onlydead, 3 freeleech
|
||||
incldead: "{{ if .Config.freeleech }}3{{ else }}1{{ end }}"
|
||||
|
||||
rows:
|
||||
selector: tr.browse
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: a[href^="torrents.php?cat="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: cat
|
||||
title:
|
||||
selector: a[href^="details.php?id="]
|
||||
details:
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: href
|
||||
files:
|
||||
selector: td:nth-last-child(7)
|
||||
date:
|
||||
selector: td:nth-last-child(5)
|
||||
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
|
||||
size:
|
||||
selector: td:nth-last-child(4)
|
||||
seeders:
|
||||
selector: td:nth-last-child(3)
|
||||
leechers:
|
||||
selector: td:nth-last-child(2)
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
"img[src=\"./pic/freeleech.png\"]": 0
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
minimumratio:
|
||||
text: 1.0
|
||||
minimumseedtime:
|
||||
# 3 days (as seconds = 3 x 24 x 60 x 60)
|
||||
text: 259200
|
||||
# engine n/a
|
@@ -6,15 +6,17 @@ language: fr-FR
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://spidertk.top/
|
||||
legacylinks:
|
||||
- https://spidertk.xyz/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 401, cat: Movies/BluRay, desc: "Films / 2160p / BluRay"}
|
||||
- {id: 401, cat: Movies/BluRay, desc: "Films / 2160p / BluRay Full"}
|
||||
- {id: 410, cat: Movies/UHD, desc: "Films / 2160p / REMUX"}
|
||||
- {id: 411, cat: Movies/UHD, desc: "Films / 2160p / AV1"}
|
||||
- {id: 412, cat: Movies/UHD, desc: "Films / 2160p / x265"}
|
||||
- {id: 413, cat: Movies/BluRay, desc: "Films / 1080p / BluRay"}
|
||||
- {id: 413, cat: Movies/BluRay, desc: "Films / 1080p / BluRay Full"}
|
||||
- {id: 414, cat: Movies/HD, desc: "Films / 1080p / REMUX"}
|
||||
- {id: 415, cat: Movies/HD, desc: "Films / 1080p / AV1"}
|
||||
- {id: 416, cat: Movies/HD, desc: "Films / 1080p / x265"}
|
||||
@@ -34,7 +36,6 @@ caps:
|
||||
- {id: 426, cat: Movies, desc: "Films / Animation"}
|
||||
- {id: 427, cat: Movies/Other, desc: "Films / Spectacle"}
|
||||
- {id: 428, cat: Audio/Video, desc: "Films / Concerts, Clips"}
|
||||
- {id: 429, cat: Movies, desc: "Films / VOSTFR"}
|
||||
- {id: 460, cat: Movies, desc: "Films / VO"}
|
||||
- {id: 430, cat: TV, desc: "Séries / BluRay"}
|
||||
- {id: 431, cat: TV, desc: "Séries / Pack VF"}
|
||||
@@ -50,7 +51,6 @@ caps:
|
||||
- {id: 441, cat: TV/Documentary, desc: "Séries / Documentaire"}
|
||||
- {id: 442, cat: TV/Sport, desc: "Séries / Sport"}
|
||||
- {id: 443, cat: TV, desc: "Séries / Émission TV"}
|
||||
- {id: 461, cat: TV, desc: "Séries / VO"}
|
||||
- {id: 444, cat: Books/EBook, desc: "Livres / Roman"}
|
||||
- {id: 445, cat: Audio/Audiobook, desc: "Livres / Audio"}
|
||||
- {id: 446, cat: Books/Mags, desc: "Livres / Magazine"}
|
||||
@@ -63,9 +63,9 @@ caps:
|
||||
- {id: 453, cat: PC/0day, desc: "Logiciels / Appli Windows"}
|
||||
- {id: 454, cat: PC/Mac, desc: "Logiciels / Appli Mac"}
|
||||
- {id: 455, cat: PC, desc: "Logiciels / Appli Linux"}
|
||||
- {id: 459, cat: PC/Mobile-Android, desc: "Logiciels / Android"}
|
||||
- {id: 456, cat: Console, desc: "Logiciels / Console"}
|
||||
- {id: 457, cat: PC/Mobile-iOS, desc: "Logiciels / iOS"}
|
||||
- {id: 459, cat: PC/Mobile-Android, desc: "Logiciels / Android"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
@@ -210,18 +210,18 @@ search:
|
||||
selector: td:nth-child(8)
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
img.pro_free: 0
|
||||
img.pro_free2up: 0
|
||||
img.pro_50pctdown: 0.5
|
||||
img.pro_50pctdown2up: 0.5
|
||||
img.pro_30pctdown: 0.3
|
||||
img[src="pic/freeleech.png"]: 0
|
||||
img[src="pic/2xupfree.png"]: 0
|
||||
img[src="pic/50pc.png"]: 0.5
|
||||
img[src="pic/2x50pc.png"]: 0.5
|
||||
img[src="pic/30pc.png"]: 0.3
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
case:
|
||||
img.pro_50pctdown2up: 2
|
||||
img.pro_free2up: 2
|
||||
img.pro_2up: 2
|
||||
img[src="pic/2x.png"]: 2
|
||||
img[src="pic/2xupfree.png"]: 2
|
||||
img[src="pic/2x50pc.png"]: 2
|
||||
"*": 1
|
||||
minimumratio:
|
||||
text: 0.81
|
||||
# NexusPHP Standard v1.5 Beta 4
|
||||
# NexusPHP Custom 1.7.7 2022-04-30
|
||||
|
@@ -203,4 +203,4 @@ search:
|
||||
case:
|
||||
"div[onmouseover=\"return overlib('Freeleech: Ja');\"]": 0
|
||||
"*": 1
|
||||
# engine n/a
|
||||
# 3xT
|
||||
|
@@ -23,6 +23,7 @@ caps:
|
||||
- {id: 104, cat: Movies/DVD, desc: "Filme - DVD-R"}
|
||||
- {id: 135, cat: Movies/HD, desc: "Filme - HD"}
|
||||
- {id: 130, cat: Movies, desc: "Filme - Klassiker"}
|
||||
- {id: 147, cat: Movies, desc: "Filme - Pack"}
|
||||
- {id: 134, cat: Movies/SD, desc: "Filme - SD"}
|
||||
- {id: 136, cat: Movies/UHD, desc: "Filme - UHD"}
|
||||
- {id: 105, cat: Movies/HD, desc: "Filme - x264/x265"}
|
||||
|
@@ -11,19 +11,16 @@ legacylinks:
|
||||
- https://torrent-explosiv.eu/
|
||||
|
||||
caps:
|
||||
# dont forget to update the search fields category case block
|
||||
categorymappings:
|
||||
# Movie
|
||||
- {id: 179, cat: Movies/SD, desc: "Movie SD"}
|
||||
- {id: 180, cat: Movies/HD, desc: "Movie HD"}
|
||||
- {id: 185, cat: Movies/UHD, desc: "Movie UHD"}
|
||||
- {id: 184, cat: Movies/BluRay, desc: "Movie BluRay"}
|
||||
- {id: 181, cat: Movies/DVD, desc: "Movie DVD-R"}
|
||||
- {id: 183, cat: Movies/3D, desc: "Movie 3D"}
|
||||
- {id: 221, cat: Movies, desc: "Movie Kids"}
|
||||
- {id: 186, cat: Movies/Foreign, desc: "Movie Englisch"}
|
||||
- {id: 181, cat: Movies/DVD, desc: "Movie DVD/HD2DVD"}
|
||||
- {id: 184, cat: Movies/BluRay, desc: "Movie BluRay/Remux"}
|
||||
- {id: 182, cat: Movies/SD, desc: "Movie Pack SD"}
|
||||
- {id: 228, cat: Movies/HD, desc: "Movie Pack HD"}
|
||||
- {id: 225, cat: Movies/HD, desc: "Movie Pack HD"}
|
||||
- {id: 186, cat: Movies/Foreign, desc: "Movie International"}
|
||||
# Serien
|
||||
- {id: 198, cat: TV/SD, desc: "Serien SD"}
|
||||
- {id: 199, cat: TV/HD, desc: "Serien HD"}
|
||||
@@ -32,54 +29,59 @@ caps:
|
||||
- {id: 223, cat: TV/SD, desc: "Serien Pack SD"}
|
||||
- {id: 201, cat: TV/HD, desc: "Serien Pack HD"}
|
||||
- {id: 224, cat: TV/UHD, desc: "Serien Pack UHD"}
|
||||
# Game
|
||||
- {id: 173, cat: PC/Games, desc: "Game PC"}
|
||||
- {id: 174, cat: Console/PSP, desc: "Game PlayStation"}
|
||||
- {id: 175, cat: Console/XBox, desc: "Game XBOX"}
|
||||
- {id: 176, cat: Console/NDS, desc: "Game Nintendo"}
|
||||
- {id: 177, cat: Console, desc: "Game Wimmelbild"}
|
||||
- {id: 178, cat: Console/Other, desc: "Game Sonstiege"}
|
||||
# Musik
|
||||
- {id: 187, cat: Audio, desc: "Musik Alben"}
|
||||
- {id: 188, cat: Audio, desc: "Musik Sampler"}
|
||||
- {id: 190, cat: Audio, desc: "Musik Charts"}
|
||||
- {id: 189, cat: Audio, desc: "Musik Mixe"}
|
||||
- {id: 196, cat: Audio, desc: "Musik Pack"}
|
||||
- {id: 193, cat: Audio/Lossless, desc: "Musik Flac"}
|
||||
- {id: 232, cat: Audio/Lossless, desc: "Musik Flac Pack"}
|
||||
- {id: 192, cat: Audio, desc: "Musik Discographie"}
|
||||
- {id: 191, cat: Audio/MP3, desc: "Musik Single"}
|
||||
- {id: 194, cat: Audio/Video, desc: "Musik Musikvideo"}
|
||||
- {id: 219, cat: Audio, desc: "Musik Hörspiele"}
|
||||
- {id: 227, cat: Audio/Audiobook, desc: "Musik A-Book"}
|
||||
# Doku
|
||||
- {id: 170, cat: TV/Documentary, desc: "Doku SD"}
|
||||
- {id: 171, cat: TV/Documentary, desc: "Doku HD"}
|
||||
- {id: 172, cat: TV/Documentary, desc: "Doku Pack SD"}
|
||||
- {id: 226, cat: TV/Documentary, desc: "Doku Pack HD"}
|
||||
# Software
|
||||
- {id: 168, cat: PC/0day, desc: "Software Windows"}
|
||||
- {id: 166, cat: PC/Mac, desc: "Software Mac"}
|
||||
- {id: 165, cat: PC, desc: "Software Linux"}
|
||||
- {id: 169, cat: PC/Mobile-Android, desc: "Software Android"}
|
||||
- {id: 227, cat: PC/Mobile-iOS, desc: "Software ios"}
|
||||
# Game
|
||||
- {id: 173, cat: PC/Games, desc: "Game PC"}
|
||||
- {id: 174, cat: Console/PSP, desc: "Game PlayStation"}
|
||||
- {id: 175, cat: Console/XBox, desc: "Game XBOX"}
|
||||
- {id: 176, cat: Console/Wii, desc: "Game Wii - Switch"}
|
||||
- {id: 222, cat: Console/NDS, desc: "Game NDS-3DS"}
|
||||
- {id: 177, cat: Console, desc: "Game Wimmelbild"}
|
||||
- {id: 178, cat: Console/Other, desc: "Game Sonstieges"}
|
||||
# Musik
|
||||
- {id: 187, cat: Audio, desc: "Musik Alben"}
|
||||
- {id: 188, cat: Audio, desc: "Musik Sampler"}
|
||||
- {id: 189, cat: Audio, desc: "Musik Mixe"}
|
||||
- {id: 190, cat: Audio, desc: "Musik Charts"}
|
||||
- {id: 191, cat: Audio/MP3, desc: "Musik Single"}
|
||||
- {id: 193, cat: Audio/Lossless, desc: "Musik Flac"}
|
||||
- {id: 196, cat: Audio, desc: "Musik Pack mp3"}
|
||||
- {id: 228, cat: Audio/Lossless, desc: "Musik Pack Flac"}
|
||||
- {id: 194, cat: Audio/Video, desc: "Musik Musikvideo"}
|
||||
# Sport
|
||||
- {id: 203, cat: TV/Sport, desc: "Sport Fussball"}
|
||||
- {id: 230, cat: TV/Sport, desc: "Sport Formel 1"}
|
||||
- {id: 204, cat: TV/Sport, desc: "Sport Wrestling"}
|
||||
- {id: 231, cat: TV/Sport, desc: "Sport Sonstiges"}
|
||||
# Doku
|
||||
- {id: 170, cat: TV/Documentary, desc: "Doku SD"}
|
||||
- {id: 171, cat: TV/Documentary, desc: "Doku HD"}
|
||||
- {id: 229, cat: TV/Documentary, desc: "Doku UHD"}
|
||||
- {id: 172, cat: TV/Documentary, desc: "Doku Pack"}
|
||||
- {id: 203, cat: TV/Sport, desc: "Sport SD"}
|
||||
- {id: 204, cat: TV/Sport, desc: "Sport HD"}
|
||||
- {id: 229, cat: TV/Sport, desc: "Sport UHD"}
|
||||
# Ebooks
|
||||
- {id: 212, cat: Books/Other, desc: "Ebooks Zeitungen"}
|
||||
- {id: 211, cat: Books/Mags, desc: "Ebooks Magazine"}
|
||||
- {id: 213, cat: Books/EBook, desc: "Ebooks Bücher"}
|
||||
- {id: 214, cat: Books/Comics, desc: "Ebooks Comics"}
|
||||
- {id: 215, cat: XXX/Other, desc: "Ebooks XXX"}
|
||||
# XXX
|
||||
- {id: 205, cat: XXX/SD, desc: "XXX SD"}
|
||||
- {id: 206, cat: XXX/x264, desc: "XXX HD"}
|
||||
- {id: 208, cat: XXX, desc: "XXX Clips"}
|
||||
- {id: 209, cat: XXX/ImageSet, desc: "XXX Bilder"}
|
||||
- {id: 207, cat: XXX/Pack, desc: "XXX Pack"}
|
||||
- {id: 207, cat: XXX/Pack, desc: "XXX Pack SD"}
|
||||
- {id: 231, cat: XXX/Pack, desc: "XXX Pack HD"}
|
||||
- {id: 230, cat: XXX/Other, desc: "XXX Ebook"}
|
||||
- {id: 210, cat: XXX/Other, desc: "XXX Sonstiges"}
|
||||
# Other
|
||||
- {id: 216, cat: Books/Other, desc: "Other PDF"}
|
||||
- {id: 217, cat: Audio/Other, desc: "Other Hörspiele"}
|
||||
- {id: 218, cat: Books/Other, desc: "Other EPaper"}
|
||||
- {id: 219, cat: Audio/Audiobook, desc: "Other A-Books"}
|
||||
- {id: 220, cat: Other, desc: "Other Sonstiges"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
@@ -158,76 +160,12 @@ search:
|
||||
details:
|
||||
selector: a.selection_a
|
||||
attribute: href
|
||||
category:
|
||||
selector: div.kat_cat_pic
|
||||
case:
|
||||
# Movie
|
||||
":has(div.kat_cat_pic_name:contains(\"Movie\")):has(div.kat_cat_pic_name_b:contains(\"Pack SD\"))": 182
|
||||
":has(div.kat_cat_pic_name:contains(\"Movie\")):has(div.kat_cat_pic_name_b:contains(\"Pack HD\"))": 228
|
||||
":has(div.kat_cat_pic_name:contains(\"Movie\")):has(div.kat_cat_pic_name_b:contains(\"SD\"))": 182
|
||||
":has(div.kat_cat_pic_name:contains(\"Movie\")):has(div.kat_cat_pic_name_b:contains(\"UHD\"))": 185
|
||||
":has(div.kat_cat_pic_name:contains(\"Movie\")):has(div.kat_cat_pic_name_b:contains(\"HD\"))": 180
|
||||
":has(div.kat_cat_pic_name:contains(\"Movie\")):has(div.kat_cat_pic_name_b:contains(\"BluRay\"))": 184
|
||||
":has(div.kat_cat_pic_name:contains(\"Movie\")):has(div.kat_cat_pic_name_b:contains(\"DVD\"))": 181
|
||||
":has(div.kat_cat_pic_name:contains(\"Movie\")):has(div.kat_cat_pic_name_b:contains(\"3D\"))": 183
|
||||
":has(div.kat_cat_pic_name:contains(\"Movie\")):has(div.kat_cat_pic_name_b:contains(\"Kids\"))": 221
|
||||
":has(div.kat_cat_pic_name:contains(\"Movie\")):has(div.kat_cat_pic_name_b:contains(\"Englisch\"))": 186
|
||||
# Serien
|
||||
":has(div.kat_cat_pic_name:contains(\"Serien\")):has(div.kat_cat_pic_name_b:contains(\"Pack SD\"))": 223
|
||||
":has(div.kat_cat_pic_name:contains(\"Serien\")):has(div.kat_cat_pic_name_b:contains(\"Pack UHD\"))": 224
|
||||
":has(div.kat_cat_pic_name:contains(\"Serien\")):has(div.kat_cat_pic_name_b:contains(\"Pack HD\"))": 201
|
||||
":has(div.kat_cat_pic_name:contains(\"Serien\")):has(div.kat_cat_pic_name_b:contains(\"Anime\"))": 202
|
||||
":has(div.kat_cat_pic_name:contains(\"Serien\")):has(div.kat_cat_pic_name_b:contains(\"SD\"))": 198
|
||||
":has(div.kat_cat_pic_name:contains(\"Serien\")):has(div.kat_cat_pic_name_b:contains(\"UHD\"))": 200
|
||||
":has(div.kat_cat_pic_name:contains(\"Serien\")):has(div.kat_cat_pic_name_b:contains(\"HD\"))": 199
|
||||
# Game
|
||||
":has(div.kat_cat_pic_name:contains(\"Game\")):has(div.kat_cat_pic_name_b:contains(\"PC\"))": 173
|
||||
":has(div.kat_cat_pic_name:contains(\"Game\")):has(div.kat_cat_pic_name_b:contains(\"PlayStation\"))": 174
|
||||
":has(div.kat_cat_pic_name:contains(\"Game\")):has(div.kat_cat_pic_name_b:contains(\"XBOX\"))": 175
|
||||
":has(div.kat_cat_pic_name:contains(\"Game\")):has(div.kat_cat_pic_name_b:contains(\"Nintendo\"))": 176
|
||||
":has(div.kat_cat_pic_name:contains(\"Game\")):has(div.kat_cat_pic_name_b:contains(\"Wimmelbild\"))": 177
|
||||
":has(div.kat_cat_pic_name:contains(\"Game\")):has(div.kat_cat_pic_name_b:contains(\"Sonstiege\"))": 178
|
||||
# Musik
|
||||
":has(div.kat_cat_pic_name:contains(\"Musik\")):has(div.kat_cat_pic_name_b:contains(\"Alben\"))": 187
|
||||
":has(div.kat_cat_pic_name:contains(\"Musik\")):has(div.kat_cat_pic_name_b:contains(\"Sampler\"))": 188
|
||||
":has(div.kat_cat_pic_name:contains(\"Musik\")):has(div.kat_cat_pic_name_b:contains(\"Charts\"))": 190
|
||||
":has(div.kat_cat_pic_name:contains(\"Musik\")):has(div.kat_cat_pic_name_b:contains(\"Mixe\"))": 189
|
||||
":has(div.kat_cat_pic_name:contains(\"Musik\")):has(div.kat_cat_pic_name_b:contains(\"Flac Pack\"))": 232
|
||||
":has(div.kat_cat_pic_name:contains(\"Musik\")):has(div.kat_cat_pic_name_b:contains(\"Pack\"))": 196
|
||||
":has(div.kat_cat_pic_name:contains(\"Musik\")):has(div.kat_cat_pic_name_b:contains(\"Flac\"))": 193
|
||||
":has(div.kat_cat_pic_name:contains(\"Musik\")):has(div.kat_cat_pic_name_b:contains(\"Discographie\"))": 192
|
||||
":has(div.kat_cat_pic_name:contains(\"Musik\")):has(div.kat_cat_pic_name_b:contains(\"Single\"))": 191
|
||||
":has(div.kat_cat_pic_name:contains(\"Musik\")):has(div.kat_cat_pic_name_b:contains(\"Musikvideo\"))": 194
|
||||
":has(div.kat_cat_pic_name:contains(\"Musik\")):has(div.kat_cat_pic_name_b:contains(\"Hörspiele\"))": 219
|
||||
":has(div.kat_cat_pic_name:contains(\"Musik\")):has(div.kat_cat_pic_name_b:contains(\"A-Book\"))": 227
|
||||
# Software
|
||||
":has(div.kat_cat_pic_name:contains(\"Software\")):has(div.kat_cat_pic_name_b:contains(\"Windows\"))": 168
|
||||
":has(div.kat_cat_pic_name:contains(\"Software\")):has(div.kat_cat_pic_name_b:contains(\"Mac\"))": 166
|
||||
":has(div.kat_cat_pic_name:contains(\"Software\")):has(div.kat_cat_pic_name_b:contains(\"Linux\"))": 165
|
||||
":has(div.kat_cat_pic_name:contains(\"Software\")):has(div.kat_cat_pic_name_b:contains(\"Android\"))": 169
|
||||
# Sport
|
||||
":has(div.kat_cat_pic_name:contains(\"Sport\")):has(div.kat_cat_pic_name_b:contains(\"Fussball\"))": 203
|
||||
":has(div.kat_cat_pic_name:contains(\"Sport\")):has(div.kat_cat_pic_name_b:contains(\"Formel\"))": 230
|
||||
":has(div.kat_cat_pic_name:contains(\"Sport\")):has(div.kat_cat_pic_name_b:contains(\"Wrestling\"))": 204
|
||||
":has(div.kat_cat_pic_name:contains(\"Sport\")):has(div.kat_cat_pic_name_b:contains(\"Sonstiges\"))": 231
|
||||
# Doku
|
||||
":has(div.kat_cat_pic_name:contains(\"Doku\")):has(div.kat_cat_pic_name_b:contains(\"SD\"))": 170
|
||||
":has(div.kat_cat_pic_name:contains(\"Doku\")):has(div.kat_cat_pic_name_b:contains(\"UHD\"))": 229
|
||||
":has(div.kat_cat_pic_name:contains(\"Doku\")):has(div.kat_cat_pic_name_b:contains(\"HD\"))": 171
|
||||
":has(div.kat_cat_pic_name:contains(\"Doku\")):has(div.kat_cat_pic_name_b:contains(\"Pack\"))": 172
|
||||
# Ebooks
|
||||
":has(div.kat_cat_pic_name:contains(\"Ebooks\")):has(div.kat_cat_pic_name_b:contains(\"Zeitungen\"))": 212
|
||||
":has(div.kat_cat_pic_name:contains(\"Ebooks\")):has(div.kat_cat_pic_name_b:contains(\"Magazine\"))": 211
|
||||
":has(div.kat_cat_pic_name:contains(\"Ebooks\")):has(div.kat_cat_pic_name_b:contains(\"Bücher\"))": 213
|
||||
":has(div.kat_cat_pic_name:contains(\"Ebooks\")):has(div.kat_cat_pic_name_b:contains(\"Comics\"))": 214
|
||||
":has(div.kat_cat_pic_name:contains(\"Ebooks\")):has(div.kat_cat_pic_name_b:contains(\"XXX\"))": 215
|
||||
# XXX
|
||||
":has(div.kat_cat_pic_name:contains(\"XXX\")):has(div.kat_cat_pic_name_b:contains(\"SD\"))": 205
|
||||
":has(div.kat_cat_pic_name:contains(\"XXX\")):has(div.kat_cat_pic_name_b:contains(\"HD\"))": 206
|
||||
":has(div.kat_cat_pic_name:contains(\"XXX\")):has(div.kat_cat_pic_name_b:contains(\"Clips\"))": 208
|
||||
":has(div.kat_cat_pic_name:contains(\"XXX\")):has(div.kat_cat_pic_name_b:contains(\"Bilder\"))": 209
|
||||
":has(div.kat_cat_pic_name:contains(\"XXX\")):has(div.kat_cat_pic_name_b:contains(\"Pack\"))": 207
|
||||
":has(div.kat_cat_pic_name:contains(\"XXX\")):has(div.kat_cat_pic_name_b:contains(\"Sonstiges\"))": 210
|
||||
cat_p1:
|
||||
selector: div.kat_cat_pic_name
|
||||
cat_p2:
|
||||
selector: div.kat_cat_pic_name_b
|
||||
categorydesc:
|
||||
text: "{{ .Result.cat_p1 }} {{ .Result.cat_p2 }}"
|
||||
poster:
|
||||
selector: div[id^="details"] img
|
||||
attribute: src
|
||||
@@ -271,4 +209,4 @@ search:
|
||||
minimumseedtime:
|
||||
# 2 days (as seconds = 2 x 24 x 60 x 60)
|
||||
text: 172800
|
||||
# engine n/a
|
||||
# 3xT
|
||||
|
@@ -40,6 +40,7 @@ caps:
|
||||
- {id: 189, cat: TV, desc: "TV/Netflix Series"}
|
||||
- {id: 190, cat: Movies, desc: "Movies/Netflix Film"}
|
||||
- {id: 195, cat: TV, desc: "TV/Exxen"}
|
||||
- {id: 199, cat: TV, desc: "TV/GAİN"}
|
||||
- {id: 171, cat: Audio, desc: "Music"}
|
||||
- {id: 172, cat: Audio, desc: "Music/Turkish"}
|
||||
- {id: 173, cat: Audio, desc: "Music/Foreign"}
|
||||
|
@@ -7,7 +7,7 @@ type: public
|
||||
encoding: UTF-8
|
||||
followredirect: true
|
||||
links:
|
||||
- https://www.torrent9.nl/
|
||||
- https://www.torrent9.re/
|
||||
- https://torrent9.nocensor.sbs/
|
||||
legacylinks:
|
||||
- https://www.t9.vc/
|
||||
@@ -30,6 +30,7 @@ legacylinks:
|
||||
- https://www.torrent9.pw/
|
||||
- https://www.torrent9.si/
|
||||
- https://torrent9.nocensor.biz/
|
||||
- https://www.torrent9.nl/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
|
@@ -121,8 +121,9 @@ login:
|
||||
path: /
|
||||
|
||||
search:
|
||||
# home page no longer has torrents. /latest would be ideal but has not categories. resorting to /top for keywordless searches.
|
||||
paths:
|
||||
- path: "{{ if .Keywords }}search{{ re_replace .Config.sort \"_\" \"\" }}?q={{ .Keywords }}{{ else }}{{ end }}"
|
||||
- path: "{{ if .Keywords }}search{{ re_replace .Config.sort \"_\" \"\" }}?q={{ .Keywords }}{{ else }}top{{ end }}"
|
||||
|
||||
rows:
|
||||
selector: table.table2 > tbody > tr:has(span.smallish)
|
||||
|
@@ -160,9 +160,6 @@ search:
|
||||
imdbid:
|
||||
selector: a[href^="/torrents.php?search=tt"]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: regexp
|
||||
args: tt(\d+)
|
||||
size:
|
||||
selector: div span[style^="border-radius"]
|
||||
seeders:
|
||||
|
@@ -7,11 +7,8 @@ type: public
|
||||
encoding: UTF-8
|
||||
followredirect: true
|
||||
links:
|
||||
- https://torrentqq142.com/
|
||||
- https://torrentqq145.com/
|
||||
legacylinks:
|
||||
- https://torrentqq127.com/
|
||||
- https://torrentqq128.com/
|
||||
- https://torrentqq129.com/
|
||||
- https://torrentqq130.com/
|
||||
- https://torrentqq131.com/
|
||||
- https://torrentqq132.com/
|
||||
@@ -24,6 +21,9 @@ legacylinks:
|
||||
- https://torrentqq139.com/
|
||||
- https://torrentqq140.com/
|
||||
- https://torrentqq141.com/
|
||||
- https://torrentqq142.com/
|
||||
- https://torrentqq143.com/
|
||||
- https://torrentqq144.com/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
|
@@ -7,7 +7,7 @@ type: public
|
||||
encoding: UTF-8
|
||||
followredirect: true
|
||||
links:
|
||||
- https://torrentsir56.com/
|
||||
- https://torrentsir58.com/
|
||||
legacylinks:
|
||||
- https://torrentsir46.com/
|
||||
- https://torrentsir47.com/
|
||||
@@ -24,7 +24,9 @@ legacylinks:
|
||||
- https://torrentsir55.com/
|
||||
- http://torrentsir55.com/
|
||||
- http://torrentsir56.com/
|
||||
|
||||
- https://torrentsir56.com/
|
||||
- https://torrentsir57.com/
|
||||
- http://torrentsir58.com/
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: "gallery", cat: XXX, desc: "+19 (Adult)"}
|
||||
|
@@ -8,7 +8,7 @@ encoding: UTF-8
|
||||
links:
|
||||
- https://torrents-local.xyz/
|
||||
certificates:
|
||||
- dbcb5a8bcf03c2c159a0fe1bbf91c5e56be64b3d # expired 12th Nov 2021
|
||||
- 14853069ae52c82b51ca8e495050a03665ac6292 # expired 14th May 2022
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
|
@@ -7,12 +7,10 @@ type: public
|
||||
encoding: UTF-8
|
||||
followredirect: true
|
||||
links:
|
||||
- https://torrentview60.com/
|
||||
- https://torrentview62.com/
|
||||
legacylinks:
|
||||
- https://torrentview.net/
|
||||
- https://torrentview.co/
|
||||
- https://torrentview38.com/
|
||||
- https://torrentview39.com/
|
||||
- https://torrentview40.com/
|
||||
- https://torrentview41.com/
|
||||
- https://torrentview42.com/
|
||||
@@ -25,6 +23,7 @@ legacylinks:
|
||||
- https://torrentview52.com/
|
||||
- https://torrentview53.com/
|
||||
- https://torrentview57.com/
|
||||
- https://torrentview60.com/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
|
@@ -7,9 +7,8 @@ type: public
|
||||
encoding: UTF-8
|
||||
followredirect: true
|
||||
links:
|
||||
- https://torrentwiz42.com/
|
||||
- https://torrentwiz43.com/
|
||||
legacylinks:
|
||||
- https://torrentwiz27.me/
|
||||
- https://torrentwiz28.me/
|
||||
- https://torrentwiz29.me/
|
||||
- https://torrentwiz30.com/
|
||||
@@ -24,6 +23,7 @@ legacylinks:
|
||||
- https://torrentwiz39.com/
|
||||
- https://torrentwiz40.com/
|
||||
- https://torrentwiz41.com/
|
||||
- https://torrentwiz42.com/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
|
@@ -110,9 +110,6 @@ search:
|
||||
imdbid:
|
||||
selector: a[href*="imdb.com/title/tt"]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: regexp
|
||||
args: tt(\d+)
|
||||
poster:
|
||||
selector: td a[href^="index.php?page=torrent-details"]
|
||||
attribute: onmouseover
|
||||
|
@@ -92,9 +92,9 @@ search:
|
||||
- name: querystring
|
||||
args: cat
|
||||
title:
|
||||
selector: a[href*="/torrent/"]
|
||||
selector: a[href*="/details.php?id="]
|
||||
details:
|
||||
selector: a[href*="/torrent/"]
|
||||
selector: a[href*="/details.php?id="]
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href^="/download.php?id="]
|
||||
@@ -105,6 +105,14 @@ search:
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "Size: (.+?)<"
|
||||
files_optional:
|
||||
selector: a[href^="/download.php?id="]
|
||||
attribute: title
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "\\((\\d+) files\\)"
|
||||
files:
|
||||
text: "{{ if .Result.files_optional }}{{ .Result.files_optional }}{{ else }}1{{ end }}"
|
||||
seeders:
|
||||
selector: a[href^="/download.php?id="]
|
||||
attribute: title
|
||||
|
@@ -6,7 +6,9 @@ language: es-ES
|
||||
type: private
|
||||
encoding: ISO-8859-1
|
||||
links:
|
||||
- http://xbytesv2.li/ # site does not support https ERR_CONNECTION_CLOSED
|
||||
- https://xbytesv2.li/
|
||||
legacylinks:
|
||||
- http://xbytesv2.li/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
@@ -88,6 +90,16 @@ login:
|
||||
inputs:
|
||||
uid: "{{ .Config.username }}"
|
||||
pwd: "{{ .Config.password }}"
|
||||
error:
|
||||
- selector: body[onLoad^="makeAlert('"]
|
||||
message:
|
||||
selector: body[onLoad^="makeAlert('"]
|
||||
attribute: onLoad
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["makeAlert('Error' , '", ""]
|
||||
- name: replace
|
||||
args: ["');", ""]
|
||||
test:
|
||||
path: index.php
|
||||
selector: a[href="logout.php"]
|
||||
@@ -128,7 +140,7 @@ search:
|
||||
page: torrents
|
||||
$raw: "&category={{ range .Categories }}{{.}};{{end}}"
|
||||
# 0 all, 1 activeonly, 2 deadonly
|
||||
active: 1
|
||||
active: 0
|
||||
# 0 title, 1 title&desc, 2 descr, 3 uploaders, 5 gold, 6 silver, 7 bronze, 8 1x, 9 2x, 10 3x, 11 4x, 12 5x, 13 6x, 14 7x, 15 8x, 16 9x, 17 10x
|
||||
options: "{{ if .Config.freeleech }}5{{ else }}0{{ end }}"
|
||||
search: "{{ .Keywords }}"
|
||||
@@ -136,17 +148,17 @@ search:
|
||||
by: "{{ .Config.type }}"
|
||||
|
||||
rows:
|
||||
selector: "#Mcol > div > div.block-content > div > div > div > table > tbody > tr:nth-child(3) > td > table tr:not(:first-child):not(:last-child)"
|
||||
selector: table.lista > tbody > tr:has(td[onMouseOut])
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: td:nth-child(1) a
|
||||
selector: a[href^="index.php?page=torrents&category="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: category
|
||||
title:
|
||||
selector: td[valign="middle"] a
|
||||
selector: a[href^="index.php?page=torrent-details&id="]
|
||||
filters:
|
||||
# To improve next replaces
|
||||
- name: replace
|
||||
@@ -290,40 +302,37 @@ search:
|
||||
args: [" ", " "]
|
||||
|
||||
details:
|
||||
selector: td[valign="middle"] a
|
||||
selector: a[href^="index.php?page=torrent-details&id="]
|
||||
attribute: href
|
||||
poster:
|
||||
selector: td[valign="middle"] a
|
||||
selector: a[href^="index.php?page=torrent-details&id="]
|
||||
attribute: onmouseover
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "src=(.+?) "
|
||||
size:
|
||||
selector: td:nth-child(11)
|
||||
seeders:
|
||||
selector: td:nth-child(7) a
|
||||
leechers:
|
||||
selector: td:nth-child(8) a
|
||||
grabs_optional:
|
||||
selector: td:nth-child(9) a
|
||||
optional: true
|
||||
grabs:
|
||||
text: "{{ if .Result.grabs_optional }}{{ .Result.grabs_optional }}{{ else }}0{{ end }}"
|
||||
download:
|
||||
selector: a[href^="download.php?id="]
|
||||
attribute: href
|
||||
date:
|
||||
selector: td:nth-child(6)
|
||||
selector: td:nth-child(5)
|
||||
filters:
|
||||
- name: append
|
||||
args: " +01:00" # CET
|
||||
- name: dateparse
|
||||
args: "02/01/2006 -07:00"
|
||||
download:
|
||||
selector: a[href^="download.php"]
|
||||
attribute: href
|
||||
size:
|
||||
selector: td:nth-child(10)
|
||||
seeders:
|
||||
selector: td:nth-child(6)
|
||||
leechers:
|
||||
selector: td:nth-child(7)
|
||||
grabs:
|
||||
selector: td:nth-child(8)
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
img[src$="gold.png"]: 0
|
||||
img[src$="silver.png"]: 0.5
|
||||
img[src$="bronze.png"]: 0.25
|
||||
img[src$="gold.gif"]: 0
|
||||
img[src$="silver.gif"]: 0.5
|
||||
img[src$="bronze.gif"]: 0.25
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
case:
|
||||
@@ -335,5 +344,11 @@ search:
|
||||
img[src$="7x.gif"]: 7
|
||||
img[src$="8x.gif"]: 8
|
||||
img[src$="9x.gif"]: 9
|
||||
img[src$="10x.gif"]: 10
|
||||
"*": 1
|
||||
# xbtitFM 2.1.08
|
||||
minimumratio:
|
||||
text: 1.0
|
||||
minimumseedtime:
|
||||
# 3 days (as seconds = 3 x 24 x 60 x 60)
|
||||
text: 259200
|
||||
# xbtitFM v3.1.00
|
||||
|
@@ -117,7 +117,7 @@ search:
|
||||
inputs:
|
||||
passkey: "{{ .Config.passkey }}"
|
||||
category: "{{ if .Categories }}{{ range .Categories }}{{.}}+{{end}}{{ else }}{{ end }}"
|
||||
search: "{{ if .Query.TMDBID }}{{ else }}{{ .Keywords }}{{ end }}"
|
||||
search: "{{ .Keywords }}"
|
||||
tmdbid: "{{ .Query.TMDBID }}"
|
||||
$raw: "{{ if .Config.freeleech }}&freeleech=1{{ else }}{{ end }}"
|
||||
response:
|
||||
|
@@ -1,155 +0,0 @@
|
||||
---
|
||||
id: zooqle
|
||||
name: Zooqle
|
||||
description: "Zooqle is a Public torrent index providing a huge database of verified torrents"
|
||||
language: en-US
|
||||
type: public
|
||||
encoding: UTF-8
|
||||
followredirect: true
|
||||
links:
|
||||
- https://zooqle.com/
|
||||
- https://zooqle.unblockninja.com/
|
||||
- https://zooqle.unblockit.blue/
|
||||
- https://zooqle.nocensor.sbs/
|
||||
legacylinks:
|
||||
- https://zooqle.unblocked.rest/
|
||||
- https://zooqle.unblockit.buzz/
|
||||
- https://zooqle.unblocked.monster/
|
||||
- https://zooqle.unblockit.club/
|
||||
- https://zooqle.unblockit.onl/
|
||||
- https://zooqle.unblockit.li/
|
||||
- https://zooqle.unblockit.uno/
|
||||
- https://zooqle.unblockit.ch/
|
||||
- https://zooqle.nocensor.space/
|
||||
- https://zooqle.unblockit.ws/
|
||||
- https://zooqle.nocensor.work/
|
||||
- https://zooqle.unblockit.kim/
|
||||
- https://zooqle.unblockit.bz/
|
||||
- https://zooqle.unblockit.tv/
|
||||
- https://zooqle.unblockit.how/
|
||||
- https://zooqle.unblockit.cam/
|
||||
- https://zooqle.nocensor.biz/
|
||||
- https://zooqle.unblockit.day/
|
||||
- https://zooqle.unblockit.llc/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: anime, cat: TV/Anime, desc: Anime}
|
||||
- {id: app, cat: PC, desc: App}
|
||||
- {id: book, cat: Books, desc: Book}
|
||||
- {id: files, cat: Other/Misc, desc: Files}
|
||||
- {id: game, cat: PC/Games, desc: Game}
|
||||
- {id: movies, cat: Movies, desc: Movies}
|
||||
- {id: music, cat: Audio, desc: Music}
|
||||
- {id: other, cat: Other, desc: Other}
|
||||
- {id: tv, cat: TV, desc: TV}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
music-search: [q]
|
||||
book-search: [q]
|
||||
|
||||
settings:
|
||||
- name: sort
|
||||
type: select
|
||||
label: Sort requested from site
|
||||
default: dt
|
||||
options:
|
||||
dt: created
|
||||
ns: seeders
|
||||
sz: size
|
||||
- name: type
|
||||
type: select
|
||||
label: Order requested from site
|
||||
default: d
|
||||
options:
|
||||
d: desc
|
||||
a: asc
|
||||
|
||||
search:
|
||||
# includes only verified torrents
|
||||
paths:
|
||||
- path: "search?s={{ .Config.sort }}&v=t&sd={{ .Config.type }}&q={{ if .Keywords }}{{ .Keywords }}{{ else }} *{{ end }}{{ if .Categories }} category:{{ range .Categories }}{{.}},{{end}}{{ else }}{{ end }}"
|
||||
|
||||
rows:
|
||||
selector: tr:has(td[class^="text-muted3"])
|
||||
filters:
|
||||
- name: andmatch
|
||||
|
||||
fields:
|
||||
title:
|
||||
selector: td:nth-child(2) a
|
||||
category:
|
||||
text: other
|
||||
category|noappend:
|
||||
# cat may be missing
|
||||
optional: true
|
||||
selector: td:nth-child(2) > i
|
||||
attribute: class
|
||||
filters:
|
||||
# extract the second class
|
||||
- name: split
|
||||
args: [" ", 1]
|
||||
# remove zqf- prefix
|
||||
- name: replace
|
||||
args: ["zqf-", ""]
|
||||
details:
|
||||
selector: td:nth-child(2) a
|
||||
attribute: href
|
||||
download:
|
||||
# .torrent urls can be missing
|
||||
optional: true
|
||||
selector: a[title^="Generate .torrent"]
|
||||
attribute: href
|
||||
magnet:
|
||||
# magnets urls can be missing
|
||||
optional: true
|
||||
selector: a[title^="Magnet link"]
|
||||
attribute: href
|
||||
date:
|
||||
selector: td:nth-child(5)
|
||||
filters:
|
||||
# a date of 'long ago' causes the timeago filter to return '0m ago' which is contra
|
||||
- name: replace
|
||||
args: ["long ago", "99 years"]
|
||||
# a date of 'yesterday' causes the timeago filter to return '0m ago' which is contra
|
||||
- name: replace
|
||||
args: ["yesterday", "1 day"]
|
||||
- name: timeago
|
||||
size:
|
||||
selector: td:nth-child(4)
|
||||
filters:
|
||||
# a size of '– N/A –' causes Jackett to reject the row with an error
|
||||
- name: replace
|
||||
args: ["– N/A –", "0 Bytes"]
|
||||
seeders_optional:
|
||||
# seeders can be missing
|
||||
optional: true
|
||||
selector: td:nth-child(6) div
|
||||
attribute: title
|
||||
filters:
|
||||
- name: split
|
||||
args: [" ", 1]
|
||||
- name: replace
|
||||
args: [",", ""]
|
||||
seeders:
|
||||
text: "{{ if .Result.seeders_optional }}{{ .Result.seeders_optional }}{{ else }}0{{ end }}"
|
||||
leechers_optional:
|
||||
# leechers can be missing
|
||||
optional: true
|
||||
selector: td:nth-child(6) div
|
||||
attribute: title
|
||||
filters:
|
||||
- name: split
|
||||
args: [" ", 4]
|
||||
- name: replace
|
||||
args: [",", ""]
|
||||
leechers:
|
||||
text: "{{ if .Result.leechers_optional }}{{ .Result.leechers_optional }}{{ else }}0{{ end }}"
|
||||
downloadvolumefactor:
|
||||
text: 0
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
# engine n/a
|
@@ -220,7 +220,11 @@ namespace Jackett.Common.Indexers.Abstract
|
||||
var json = JObject.Parse(response.ContentString);
|
||||
foreach (JObject r in json["response"]["results"])
|
||||
{
|
||||
var groupTime = DateTimeUtil.UnixTimestampToDateTime(long.Parse((string)r["groupTime"]));
|
||||
// groupTime may be a unixTime or a datetime string
|
||||
var isNumber = long.TryParse((string)r["groupTime"], out long n);
|
||||
var groupTime = (isNumber)
|
||||
? DateTimeUtil.UnixTimestampToDateTime(long.Parse((string)r["groupTime"]))
|
||||
: DateTimeUtil.FromFuzzyTime((string)r["groupTime"]);
|
||||
var groupName = WebUtility.HtmlDecode((string)r["groupName"]);
|
||||
var artist = WebUtility.HtmlDecode((string)r["artist"]);
|
||||
var cover = (string)r["cover"];
|
||||
|
@@ -24,7 +24,7 @@ namespace Jackett.Common.Indexers
|
||||
private string LoginUrl => SiteLink + "login.php";
|
||||
private string BrowseUrl => SiteLink + "torrents.php";
|
||||
|
||||
private new ConfigurationDataBasicLogin configData => (ConfigurationDataBasicLogin)base.configData;
|
||||
private new ConfigurationDataBasicLoginWith2FA configData => (ConfigurationDataBasicLoginWith2FA)base.configData;
|
||||
|
||||
public override string[] LegacySiteLinks { get; protected set; } = {
|
||||
"https://tehconnection.me/"
|
||||
@@ -52,7 +52,8 @@ namespace Jackett.Common.Indexers
|
||||
logger: l,
|
||||
p: ps,
|
||||
cacheService: cs,
|
||||
configData: new ConfigurationDataBasicLogin())
|
||||
configData: new ConfigurationDataBasicLoginWith2FA(@"If 2FA is disabled, let the field empty.
|
||||
We recommend to disable 2FA because re-login will require manual actions."))
|
||||
{
|
||||
Encoding = Encoding.UTF8;
|
||||
Language = "en-US";
|
||||
@@ -72,8 +73,9 @@ namespace Jackett.Common.Indexers
|
||||
{
|
||||
{ "username", configData.Username.Value },
|
||||
{ "password", configData.Password.Value },
|
||||
{ "twofa", configData.TwoFactorAuth.Value },
|
||||
{ "keeplogged", "1" },
|
||||
{ "login", "Log+In!" }
|
||||
{ "login", "Log in" }
|
||||
};
|
||||
|
||||
var result = await RequestLoginAndFollowRedirect(LoginUrl, pairs, null, true, null, LoginUrl, true);
|
||||
|
@@ -1,231 +0,0 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.Specialized;
|
||||
using System.Diagnostics.CodeAnalysis;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Text.RegularExpressions;
|
||||
using System.Threading.Tasks;
|
||||
using AngleSharp.Dom;
|
||||
using AngleSharp.Html.Parser;
|
||||
using Jackett.Common.Models;
|
||||
using Jackett.Common.Models.IndexerConfig;
|
||||
using Jackett.Common.Services.Interfaces;
|
||||
using Jackett.Common.Utils;
|
||||
using Jackett.Common.Utils.Clients;
|
||||
using Newtonsoft.Json.Linq;
|
||||
using NLog;
|
||||
|
||||
namespace Jackett.Common.Indexers
|
||||
{
|
||||
// To comply with the rules for this tracker, only the acronym is used and no publicly displayed URLs to the site.
|
||||
[ExcludeFromCodeCoverage]
|
||||
public class BB : BaseWebIndexer
|
||||
{
|
||||
private string BaseUrl => StringUtil.FromBase64("aHR0cHM6Ly9iYWNvbmJpdHMub3JnLw==");
|
||||
private Uri BaseUri => new Uri(BaseUrl);
|
||||
private string LoginUrl => BaseUri + "login.php";
|
||||
private string SearchUrl => BaseUri + "torrents.php?searchtags=&tags_type=0&order_by=s3&order_way=desc&disablegrouping=1&";
|
||||
|
||||
private new ConfigurationDataBasicLogin configData
|
||||
{
|
||||
get => (ConfigurationDataBasicLogin)base.configData;
|
||||
set => base.configData = value;
|
||||
}
|
||||
|
||||
public BB(IIndexerConfigurationService configService, WebClient w, Logger l, IProtectionService ps,
|
||||
ICacheService cs)
|
||||
: base(id: "bb",
|
||||
name: "bB",
|
||||
description: "bB is a Private Torrent Tracker for 0DAY / GENERAL",
|
||||
link: StringUtil.FromBase64("aHR0cHM6Ly9iYWNvbmJpdHMub3JnLw=="),
|
||||
caps: new TorznabCapabilities
|
||||
{
|
||||
TvSearchParams = new List<TvSearchParam>
|
||||
{
|
||||
TvSearchParam.Q, TvSearchParam.Season, TvSearchParam.Ep
|
||||
},
|
||||
MovieSearchParams = new List<MovieSearchParam>
|
||||
{
|
||||
MovieSearchParam.Q
|
||||
},
|
||||
MusicSearchParams = new List<MusicSearchParam>
|
||||
{
|
||||
MusicSearchParam.Q
|
||||
},
|
||||
BookSearchParams = new List<BookSearchParam>
|
||||
{
|
||||
BookSearchParam.Q
|
||||
}
|
||||
},
|
||||
configService: configService,
|
||||
client: w,
|
||||
logger: l,
|
||||
p: ps,
|
||||
cacheService: cs,
|
||||
configData: new ConfigurationDataBasicLogin())
|
||||
{
|
||||
Encoding = Encoding.UTF8;
|
||||
Language = "en-US";
|
||||
Type = "private";
|
||||
|
||||
AddCategoryMapping(1, TorznabCatType.Audio);
|
||||
AddCategoryMapping(1, TorznabCatType.AudioMP3);
|
||||
AddCategoryMapping(1, TorznabCatType.AudioLossless);
|
||||
AddCategoryMapping(2, TorznabCatType.PC);
|
||||
AddCategoryMapping(3, TorznabCatType.BooksEBook);
|
||||
AddCategoryMapping(4, TorznabCatType.AudioAudiobook);
|
||||
AddCategoryMapping(5, TorznabCatType.Other);
|
||||
AddCategoryMapping(6, TorznabCatType.BooksMags);
|
||||
AddCategoryMapping(7, TorznabCatType.BooksComics);
|
||||
AddCategoryMapping(8, TorznabCatType.TVAnime);
|
||||
AddCategoryMapping(9, TorznabCatType.Movies);
|
||||
AddCategoryMapping(10, TorznabCatType.TVHD);
|
||||
AddCategoryMapping(10, TorznabCatType.TVSD);
|
||||
AddCategoryMapping(10, TorznabCatType.TV);
|
||||
AddCategoryMapping(11, TorznabCatType.PCGames);
|
||||
AddCategoryMapping(12, TorznabCatType.Console);
|
||||
AddCategoryMapping(13, TorznabCatType.Other);
|
||||
AddCategoryMapping(14, TorznabCatType.Other);
|
||||
}
|
||||
|
||||
public override async Task<IndexerConfigurationStatus> ApplyConfiguration(JToken configJson)
|
||||
{
|
||||
LoadValuesFromJson(configJson);
|
||||
var pairs = new Dictionary<string, string> {
|
||||
{ "username", configData.Username.Value },
|
||||
{ "password", configData.Password.Value },
|
||||
{ "keeplogged", "1" },
|
||||
{ "login", "Log In!" }
|
||||
};
|
||||
|
||||
var response = await RequestLoginAndFollowRedirect(LoginUrl, pairs, null, true, null, SiteLink);
|
||||
await ConfigureIfOK(response.Cookies, response.ContentString != null && response.ContentString.Contains("logout.php"), () =>
|
||||
{
|
||||
var parser = new HtmlParser();
|
||||
var dom = parser.ParseDocument(response.ContentString);
|
||||
var messageEl = dom.QuerySelectorAll("#loginform");
|
||||
var messages = new List<string>();
|
||||
for (var i = 0; i < 13; i++)
|
||||
{
|
||||
var child = messageEl[0].ChildNodes[i];
|
||||
messages.Add(child.Text().Trim());
|
||||
}
|
||||
var message = string.Join(" ", messages);
|
||||
throw new ExceptionWithConfigData(message, configData);
|
||||
});
|
||||
|
||||
return IndexerConfigurationStatus.RequiresTesting;
|
||||
}
|
||||
|
||||
protected override async Task<IEnumerable<ReleaseInfo>> PerformQuery(TorznabQuery query)
|
||||
{
|
||||
var releases = new List<ReleaseInfo>();
|
||||
var searchStrings = new List<string>(new[] { query.GetQueryString() });
|
||||
|
||||
if (string.IsNullOrEmpty(query.Episode) && (query.Season > 0))
|
||||
// Tracker naming rules: If query is for a whole season, "Season #" instead of "S##".
|
||||
searchStrings.Add((query.SanitizedSearchTerm + " " + string.Format("\"Season {0}\"", query.Season)).Trim());
|
||||
|
||||
var categories = MapTorznabCapsToTrackers(query);
|
||||
var request_urls = new List<string>();
|
||||
|
||||
foreach (var searchString in searchStrings)
|
||||
{
|
||||
var queryCollection = new NameValueCollection
|
||||
{
|
||||
{ "action", "basic" }
|
||||
};
|
||||
|
||||
if (!string.IsNullOrWhiteSpace(searchString))
|
||||
{
|
||||
queryCollection.Add("searchstr", searchString);
|
||||
}
|
||||
|
||||
foreach (var cat in categories)
|
||||
{
|
||||
queryCollection.Add("filter_cat[" + cat + "]", "1");
|
||||
}
|
||||
|
||||
// remove . as not used in titles
|
||||
request_urls.Add(SearchUrl + queryCollection.GetQueryString().Replace(".", " "));
|
||||
}
|
||||
|
||||
var downloadTasksQuery = from url in request_urls select RequestWithCookiesAndRetryAsync(url);
|
||||
|
||||
var responses = await Task.WhenAll(downloadTasksQuery.ToArray());
|
||||
|
||||
for (var i = 0; i < searchStrings.Count(); i++)
|
||||
{
|
||||
var results = responses[i];
|
||||
// Occasionally the cookies become invalid, login again if that happens
|
||||
if (results.IsRedirect)
|
||||
{
|
||||
await ApplyConfiguration(null);
|
||||
results = await RequestWithCookiesAndRetryAsync(request_urls[i]);
|
||||
}
|
||||
try
|
||||
{
|
||||
var parser = new HtmlParser();
|
||||
var dom = parser.ParseDocument(results.ContentString);
|
||||
var rows = dom.QuerySelectorAll("#torrent_table > tbody > tr.torrent");
|
||||
foreach (var row in rows)
|
||||
{
|
||||
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);
|
||||
|
||||
var qDetails = row.Children[1].QuerySelector("a[title='View Torrent']");
|
||||
release.Details = new Uri(BaseUri + qDetails.GetAttribute("href"));
|
||||
release.Guid = release.Details;
|
||||
|
||||
var qDownload = row.Children[1].QuerySelector("a[title='Download']");
|
||||
release.Link = new Uri(BaseUri + qDownload.GetAttribute("href"));
|
||||
|
||||
var dateStr = row.Children[3].TextContent.Trim().Replace(" and", "");
|
||||
release.PublishDate = DateTimeUtil.FromTimeAgo(dateStr);
|
||||
|
||||
var sizeStr = row.Children[4].TextContent;
|
||||
release.Size = ReleaseInfo.GetBytes(sizeStr);
|
||||
|
||||
release.Files = ParseUtil.CoerceInt(row.Children[2].TextContent.Trim());
|
||||
release.Seeders = ParseUtil.CoerceInt(row.Children[7].TextContent.Trim());
|
||||
release.Peers = ParseUtil.CoerceInt(row.Children[8].TextContent.Trim()) + release.Seeders;
|
||||
|
||||
var grabs = row.QuerySelector("td:nth-child(6)").TextContent;
|
||||
release.Grabs = ParseUtil.CoerceInt(grabs);
|
||||
|
||||
if (row.QuerySelector("strong:contains(\"Freeleech!\")") != null)
|
||||
release.DownloadVolumeFactor = 0;
|
||||
else
|
||||
release.DownloadVolumeFactor = 1;
|
||||
|
||||
release.UploadVolumeFactor = 1;
|
||||
|
||||
var title = row.QuerySelector("td:nth-child(2)");
|
||||
foreach (var element in title.QuerySelectorAll("span, strong, div, br"))
|
||||
element.Remove();
|
||||
|
||||
release.Title = ParseUtil.NormalizeMultiSpaces(title.TextContent.Replace(" - ]", "]"));
|
||||
|
||||
if (catStr == "10") //change "Season #" to "S##" for TV shows
|
||||
release.Title = Regex.Replace(release.Title, @"Season (\d+)",
|
||||
m => string.Format("S{0:00}", int.Parse(m.Groups[1].Value)));
|
||||
|
||||
releases.Add(release);
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
OnParseError(results.ContentString, ex);
|
||||
}
|
||||
}
|
||||
return releases;
|
||||
}
|
||||
}
|
||||
}
|
@@ -38,7 +38,7 @@ namespace Jackett.Common.Indexers
|
||||
set => base.configData = value;
|
||||
}
|
||||
|
||||
protected readonly string[] OptionalFields = { "imdb", "imdbid", "rageid", "tmdbid", "tvdbid", "poster", "description" };
|
||||
protected readonly string[] OptionalFields = { "imdb", "imdbid", "rageid", "tmdbid", "tvdbid", "poster", "description", "doubanid" };
|
||||
|
||||
private static readonly string[] _SupportedLogicFunctions =
|
||||
{
|
||||
@@ -2030,6 +2030,13 @@ namespace Jackett.Common.Indexers
|
||||
release.TMDb = ParseUtil.CoerceLong(TmdbID);
|
||||
value = release.TMDb.ToString();
|
||||
break;
|
||||
case "doubanid":
|
||||
var DoubanIDRegEx = new Regex(@"(\d+)", RegexOptions.Compiled);
|
||||
var DoubanIDMatch = DoubanIDRegEx.Match(value);
|
||||
var DoubanID = DoubanIDMatch.Groups[1].Value;
|
||||
release.DoubanId = ParseUtil.CoerceLong(DoubanID);
|
||||
value = release.DoubanId.ToString();
|
||||
break;
|
||||
case "rageid":
|
||||
var RageIDRegEx = new Regex(@"(\d+)", RegexOptions.Compiled);
|
||||
var RageIDMatch = RageIDRegEx.Match(value);
|
||||
|
@@ -33,9 +33,9 @@ namespace Jackett.Common.Indexers
|
||||
"https://cinecalidad.unbl0ck.xyz/",
|
||||
"https://cinecalidad.u4m.club/",
|
||||
"https://cinecalidad.mrunblock.icu/",
|
||||
"https://www.cinecalidad.lat/",
|
||||
"https://cinecalidad3.com/",
|
||||
"https://www5.cine-calidad.com/",
|
||||
"https://v3.cine-calidad.com/",
|
||||
"https://www.cine-calidad.com/"
|
||||
};
|
||||
|
||||
@@ -44,7 +44,7 @@ namespace Jackett.Common.Indexers
|
||||
: base(id: "cinecalidad",
|
||||
name: "Cinecalidad",
|
||||
description: "Películas Full HD en Latino Dual.",
|
||||
link: "https://v3.cine-calidad.com/",
|
||||
link: "https://www.cinecalidad.lat/",
|
||||
caps: new TorznabCapabilities
|
||||
{
|
||||
MovieSearchParams = new List<MovieSearchParam> { MovieSearchParam.Q }
|
||||
|
@@ -39,11 +39,12 @@ namespace Jackett.Common.Indexers
|
||||
private const string SearchUrl = "buscar/";
|
||||
|
||||
public override string[] AlternativeSiteLinks { get; protected set; } = {
|
||||
"https://dontorrent.cx/",
|
||||
"https://dontorrent.wtf/",
|
||||
"https://todotorrents.net/",
|
||||
"https://tomadivx.net/",
|
||||
"https://seriesblanco.one/",
|
||||
"https://verdetorrent.com/"
|
||||
"https://verdetorrent.com/",
|
||||
"https://naranjatorrent.com/"
|
||||
};
|
||||
|
||||
public override string[] LegacySiteLinks { get; protected set; } = {
|
||||
@@ -62,6 +63,9 @@ namespace Jackett.Common.Indexers
|
||||
"https://dontorrent.pl/",
|
||||
"https://dontorrent.tel/",
|
||||
"https://dontorrent.nl/",
|
||||
"https://dontorrent.cx/",
|
||||
"https://dontorrent.bet/",
|
||||
"https://dontorrent.cab/",
|
||||
"https://dontorrent.eu/"
|
||||
};
|
||||
|
||||
@@ -80,7 +84,7 @@ namespace Jackett.Common.Indexers
|
||||
: base(id: "dontorrent",
|
||||
name: "DonTorrent",
|
||||
description: "DonTorrent is a SPANISH public tracker for MOVIES / TV / GENERAL",
|
||||
link: "https://dontorrent.cx/",
|
||||
link: "https://dontorrent.wtf/",
|
||||
caps: new TorznabCapabilities
|
||||
{
|
||||
TvSearchParams = new List<TvSearchParam>
|
||||
|
@@ -68,6 +68,8 @@ namespace Jackett.Common.Indexers
|
||||
new DisplayInfoConfigurationItem("", "<p>Please note that the following stats are not available for this indexer. Default values are used instead. </p><ul><li>Files</li><li>Seeders</li><li>Leechers</li></ul>")
|
||||
);
|
||||
|
||||
configData.AddDynamic("include-subs", new BoolConfigurationItem("Enable appending SubTitles to the Title"));
|
||||
|
||||
// Config item for title detail parsing
|
||||
configData.AddDynamic("title-detail-parsing", new BoolConfigurationItem("Enable Title Detail Parsing"));
|
||||
configData.AddDynamic(
|
||||
@@ -83,6 +85,7 @@ namespace Jackett.Common.Indexers
|
||||
|
||||
private string RSSKey => ((StringConfigurationItem)configData.GetDynamic("rssKey")).Value;
|
||||
private bool IsTitleDetailParsingEnabled => ((BoolConfigurationItem)configData.GetDynamic("title-detail-parsing")).Value;
|
||||
private bool IsSubsEnabled => ((BoolConfigurationItem)configData.GetDynamic("include-subs")).Value;
|
||||
|
||||
public string RssFeedUri => SiteLink + RSS_PATH + "&" + RSSKey;
|
||||
|
||||
@@ -200,9 +203,14 @@ namespace Jackett.Common.Indexers
|
||||
guid = builder.Uri;
|
||||
}
|
||||
|
||||
var subs = "";
|
||||
if (IsSubsEnabled)
|
||||
{
|
||||
subs = string.Concat(" JAPANESE [Subs: ", fi.SubTitles, "]");
|
||||
}
|
||||
yield return new ReleaseInfo
|
||||
{
|
||||
Title = string.Concat(fi.Title, " - ", fi.Quality),
|
||||
Title = string.Concat(fi.Title, " - ", fi.Quality, subs),
|
||||
Guid = guid,
|
||||
MagnetUri = fi.MagnetLink,
|
||||
InfoHash = fi.InfoHash,
|
||||
@@ -247,6 +255,7 @@ namespace Jackett.Common.Indexers
|
||||
var size = rssItem.SelectSingleNode("erai:size", nsm)?.InnerText;
|
||||
var description = rssItem.SelectSingleNode("description")?.InnerText;
|
||||
var quality = rssItem.SelectSingleNode("erai:resolution", nsm)?.InnerText;
|
||||
var subs = rssItem.SelectSingleNode("erai:subtitles", nsm)?.InnerText;
|
||||
|
||||
item = new RssFeedItem
|
||||
{
|
||||
@@ -256,7 +265,8 @@ namespace Jackett.Common.Indexers
|
||||
PublishDate = publishDate,
|
||||
Size = size,
|
||||
Description = description,
|
||||
Quality = quality
|
||||
Quality = quality,
|
||||
SubTitles = subs
|
||||
};
|
||||
return item.IsValid();
|
||||
}
|
||||
@@ -280,6 +290,8 @@ namespace Jackett.Common.Indexers
|
||||
|
||||
public string Quality { get; private set; }
|
||||
|
||||
public string SubTitles { get; private set; }
|
||||
|
||||
/// <summary>
|
||||
/// Check there is enough information to process the item.
|
||||
/// </summary>
|
||||
@@ -307,6 +319,7 @@ namespace Jackett.Common.Indexers
|
||||
Size = ReleaseInfo.GetBytes(feedItem.Size);
|
||||
DetailsLink = ParseDetailsLink(feedItem.Description);
|
||||
InfoHash = feedItem.InfoHash;
|
||||
SubTitles = feedItem.SubTitles.Replace("[", " ").Replace("]", " ").ToUpper();
|
||||
|
||||
if (Uri.TryCreate(feedItem.Link, UriKind.Absolute, out Uri magnetUri))
|
||||
MagnetLink = magnetUri;
|
||||
@@ -339,6 +352,8 @@ namespace Jackett.Common.Indexers
|
||||
|
||||
public string Quality { get; }
|
||||
|
||||
public string SubTitles { get; }
|
||||
|
||||
public string Title { get; set; }
|
||||
|
||||
public Uri MagnetLink { get; }
|
||||
|
@@ -132,6 +132,10 @@ namespace Jackett.Common.Indexers
|
||||
var releases = new List<ReleaseInfo>();
|
||||
foreach (JObject r in response["data"])
|
||||
{
|
||||
var title = (string)r["name"];
|
||||
// if tv then match query keywords against title #12753
|
||||
if (!query.IsImdbQuery && !query.MatchQueryStringAND(title))
|
||||
continue;
|
||||
var link = new Uri(
|
||||
SiteLink + "download.php/" + (string)r["filename"] + "?id=" + (string)r["id"] + "&passkey=" +
|
||||
configData.Passkey.Value);
|
||||
@@ -140,7 +144,7 @@ namespace Jackett.Common.Indexers
|
||||
var details = new Uri(SiteLink + "details.php?id=" + (string)r["id"]);
|
||||
var release = new ReleaseInfo
|
||||
{
|
||||
Title = (string)r["name"],
|
||||
Title = title,
|
||||
Details = details,
|
||||
Link = link,
|
||||
Category = MapTrackerCatToNewznab((string)r["type_category"]),
|
||||
|
@@ -1,555 +0,0 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.Specialized;
|
||||
using System.Diagnostics.CodeAnalysis;
|
||||
using System.Globalization;
|
||||
using System.Linq;
|
||||
using System.Net;
|
||||
using System.Text;
|
||||
using System.Text.RegularExpressions;
|
||||
using System.Threading.Tasks;
|
||||
using AngleSharp.Html.Parser;
|
||||
using Jackett.Common.Models;
|
||||
using Jackett.Common.Models.IndexerConfig;
|
||||
using Jackett.Common.Services.Interfaces;
|
||||
using Jackett.Common.Utils;
|
||||
using Newtonsoft.Json.Linq;
|
||||
using NLog;
|
||||
using static Jackett.Common.Models.IndexerConfig.ConfigurationData;
|
||||
using WebClient = Jackett.Common.Utils.Clients.WebClient;
|
||||
|
||||
namespace Jackett.Common.Indexers
|
||||
{
|
||||
[ExcludeFromCodeCoverage]
|
||||
public class MejorTorrent : BaseWebIndexer
|
||||
{
|
||||
private static class MejorTorrentCatType
|
||||
{
|
||||
public static string Pelicula => "Película";
|
||||
public static string Serie => "Serie";
|
||||
public static string SerieHd => "SerieHD"; // this category is created, doesn't exist in the site
|
||||
public static string Musica => "Música";
|
||||
public static string Otro => "Otro";
|
||||
}
|
||||
|
||||
private const string SearchUrl = "secciones.php";
|
||||
|
||||
public override string[] AlternativeSiteLinks { get; protected set; } = {
|
||||
"https://www.mejortorrentes.org/",
|
||||
"https://mejortorrent.unblockit.blue/",
|
||||
"https://mejortorrent.nocensor.sbs/"
|
||||
};
|
||||
|
||||
public override string[] LegacySiteLinks { get; protected set; } = {
|
||||
"https://www.mejortorrentt.net/",
|
||||
"http://www.mejortorrent.org/",
|
||||
"http://www.mejortorrent.tv/",
|
||||
"http://www.mejortorrentt.com/",
|
||||
"https://www.mejortorrentt.org/",
|
||||
"http://www.mejortorrentt.org/",
|
||||
"https://www.mejortorrents.net/",
|
||||
"https://www.mejortorrents1.com/",
|
||||
"https://www.mejortorrents1.net/",
|
||||
"https://www.mejortorrento.com/",
|
||||
"https://www.mejortorrento.org/",
|
||||
"https://www.mejortorrento.net/",
|
||||
"https://www.mejortorrento.info/",
|
||||
"https://mejortorrent.nocensor.space/",
|
||||
"https://www.mejortorrentes.com/",
|
||||
"https://www.mejortorrento.info/",
|
||||
"https://mejortorrent.nocensor.work/",
|
||||
"https://www.mejortorrentes.net/",
|
||||
"https://mejortorrent.unblockit.tv/",
|
||||
"https://mejortorrent.unblockit.how/",
|
||||
"https://mejortorrent.unblockit.cam/",
|
||||
"https://mejortorrent.nocensor.biz/",
|
||||
"https://mejortorrent.unblockit.day/",
|
||||
"https://mejortorrent.unblockit.llc/"
|
||||
};
|
||||
|
||||
public MejorTorrent(IIndexerConfigurationService configService, WebClient w, Logger l, IProtectionService ps,
|
||||
ICacheService cs)
|
||||
: base(id: "mejortorrent",
|
||||
name: "MejorTorrent",
|
||||
description: "MejorTorrent - Hay veces que un torrent viene mejor! :)",
|
||||
link: "https://www.mejortorrentes.org/",
|
||||
caps: new TorznabCapabilities
|
||||
{
|
||||
TvSearchParams = new List<TvSearchParam>
|
||||
{
|
||||
TvSearchParam.Q, TvSearchParam.Season, TvSearchParam.Ep
|
||||
},
|
||||
MovieSearchParams = new List<MovieSearchParam>
|
||||
{
|
||||
MovieSearchParam.Q
|
||||
},
|
||||
MusicSearchParams = new List<MusicSearchParam>
|
||||
{
|
||||
MusicSearchParam.Q
|
||||
}
|
||||
},
|
||||
configService: configService,
|
||||
client: w,
|
||||
logger: l,
|
||||
p: ps,
|
||||
cacheService: cs,
|
||||
configData: new ConfigurationData())
|
||||
{
|
||||
Encoding = Encoding.UTF8;
|
||||
Language = "es-ES";
|
||||
Type = "public";
|
||||
|
||||
var matchWords = new BoolConfigurationItem("Match words in title") { Value = true };
|
||||
configData.AddDynamic("MatchWords", matchWords);
|
||||
|
||||
configData.AddDynamic("flaresolverr", new DisplayInfoConfigurationItem("FlareSolverr", "This site may use Cloudflare DDoS Protection, therefore Jackett requires <a href=\"https://github.com/Jackett/Jackett#configuring-flaresolverr\" target=\"_blank\">FlareSolverr</a> to access it."));
|
||||
|
||||
AddCategoryMapping(MejorTorrentCatType.Pelicula, TorznabCatType.Movies, "Pelicula");
|
||||
AddCategoryMapping(MejorTorrentCatType.Serie, TorznabCatType.TVSD, "Serie");
|
||||
AddCategoryMapping(MejorTorrentCatType.SerieHd, TorznabCatType.TVHD, "Serie HD");
|
||||
AddCategoryMapping(MejorTorrentCatType.Musica, TorznabCatType.Audio, "Musica");
|
||||
// Other category is disabled because we have problems parsing documentaries
|
||||
//AddCategoryMapping(MejorTorrentCatType.Otro, TorznabCatType.Other, "Otro");
|
||||
}
|
||||
|
||||
public override async Task<IndexerConfigurationStatus> ApplyConfiguration(JToken configJson)
|
||||
{
|
||||
LoadValuesFromJson(configJson);
|
||||
var releases = await PerformQuery(new TorznabQuery());
|
||||
|
||||
await ConfigureIfOK(string.Empty, releases.Any(), () =>
|
||||
throw new Exception("Could not find releases from this URL"));
|
||||
|
||||
return IndexerConfigurationStatus.Completed;
|
||||
}
|
||||
|
||||
protected override async Task<IEnumerable<ReleaseInfo>> PerformQuery(TorznabQuery query)
|
||||
{
|
||||
if (string.IsNullOrEmpty(query.SearchTerm))
|
||||
query.SearchTerm = "Historia";
|
||||
var matchWords = ((BoolConfigurationItem)configData.GetDynamic("MatchWords")).Value;
|
||||
matchWords = query.SearchTerm != "" && matchWords;
|
||||
|
||||
// we remove parts from the original query
|
||||
query = ParseQuery(query);
|
||||
|
||||
var releases = await PerformQuerySearch(query, matchWords);
|
||||
|
||||
return releases;
|
||||
}
|
||||
|
||||
public override async Task<byte[]> Download(Uri link)
|
||||
{
|
||||
var parser = new HtmlParser();
|
||||
var downloadUrl = link.ToString();
|
||||
|
||||
// Eg https://www.mejortorrentt.net/peli-descargar-torrent-11995-Harry-Potter-y-la-piedra-filosofal.html
|
||||
var result = await RequestWithCookiesAsync(downloadUrl);
|
||||
if (result.Status != HttpStatusCode.OK)
|
||||
throw new ExceptionWithConfigData(result.ContentString, configData);
|
||||
var dom = parser.ParseDocument(result.ContentString);
|
||||
downloadUrl = SiteLink + dom.QuerySelector("a[href*=\"sec=descargas\"]").GetAttribute("href");
|
||||
|
||||
// Eg https://www.mejortorrentt.net/secciones.php?sec=descargas&ap=contar&tabla=peliculas&id=11995&link_bajar=1
|
||||
result = await RequestWithCookiesAsync(downloadUrl);
|
||||
if (result.Status != HttpStatusCode.OK)
|
||||
throw new ExceptionWithConfigData(result.ContentString, configData);
|
||||
dom = parser.ParseDocument(result.ContentString);
|
||||
|
||||
// There are several types of download links
|
||||
// 1. Direct link https://www.mejortorrentt.net/tor/peliculas/Harry_Potter_1_y_la_Piedra_Filosofal_MicroHD_1080p.torrent
|
||||
var selector = dom.QuerySelector("a[href^=\"/tor/\"]");
|
||||
if (selector != null)
|
||||
downloadUrl = SiteLink + selector.GetAttribute("href");
|
||||
else
|
||||
{
|
||||
// 2. Hidden link onclick="post('https://cdn1.mejortorrents.net/torrents/xcceijidcd', {table: 'peliculas', name: 'Harry_Potter_1_y_la_Piedra_Filosofal_MicroHD_1080p.torrent'});"
|
||||
var onClickParts = dom.QuerySelector("a[onclick*=\"/torrent\"]").GetAttribute("onclick").Split('\'');
|
||||
downloadUrl = $"{SiteLink}tor/{onClickParts[3]}/{onClickParts[5]}";
|
||||
}
|
||||
|
||||
// Eg https://www.mejortorrentt.net/tor/peliculas/Harry_Potter_1_y_la_Piedra_Filosofal_MicroHD_1080p.torrent
|
||||
var content = await base.Download(new Uri(downloadUrl));
|
||||
return content;
|
||||
}
|
||||
|
||||
private async Task<List<ReleaseInfo>> PerformQuerySearch(TorznabQuery query, bool matchWords)
|
||||
{
|
||||
var releases = new List<ReleaseInfo>();
|
||||
// search only the longest word, we filter the results later
|
||||
var searchTerm = GetLongestWord(query.SearchTerm);
|
||||
var qc = new NameValueCollection { { "sec", "buscador" }, { "valor", searchTerm } };
|
||||
var url = SiteLink + SearchUrl + "?" + qc.GetQueryString();
|
||||
var result = await RequestWithCookiesAsync(url);
|
||||
if (result.Status != HttpStatusCode.OK)
|
||||
throw new ExceptionWithConfigData(result.ContentString, configData);
|
||||
|
||||
try
|
||||
{
|
||||
var searchResultParser = new HtmlParser();
|
||||
var doc = searchResultParser.ParseDocument(result.ContentString);
|
||||
|
||||
var table = doc.QuerySelector("#main_table_center_center2 table table");
|
||||
// check the search term is valid
|
||||
if (table?.QuerySelector("tr table") != null)
|
||||
{
|
||||
// check there are results
|
||||
table = table.QuerySelector("tr table");
|
||||
var rows = table.QuerySelectorAll("tr");
|
||||
if (rows != null && rows.Length > 0 && rows[0].QuerySelectorAll("td").Length == 2)
|
||||
foreach (var row in rows)
|
||||
{
|
||||
var link = row.QuerySelector("td a");
|
||||
var rowTitle = link.TextContent;
|
||||
var rowDetailsLink = SiteLink + link.GetAttribute("href").TrimStart('/');
|
||||
var rowMejortorrentCat = row.QuerySelectorAll("td")[1].TextContent;
|
||||
string rowQuality = null;
|
||||
if (row.QuerySelector("td span") != null)
|
||||
rowQuality = row.QuerySelector("td span").TextContent;
|
||||
|
||||
await ParseRelease(releases, rowTitle, rowDetailsLink, rowMejortorrentCat,
|
||||
null, rowQuality, query, matchWords);
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
OnParseError(result.ContentString, ex);
|
||||
}
|
||||
|
||||
return releases;
|
||||
}
|
||||
|
||||
private async Task ParseRelease(ICollection<ReleaseInfo> releases, string title, string detailsStr,
|
||||
string mejortorrentCat, string publishStr, string quality, TorznabQuery query, bool matchWords)
|
||||
{
|
||||
// Remove trailing dot. Eg Harry Potter Y La Orden Del Fénix.
|
||||
title = title.Trim();
|
||||
if (title.EndsWith("."))
|
||||
title = title.Remove(title.Length - 1).Trim();
|
||||
|
||||
var cat = GetMejortorrentCategory(mejortorrentCat, detailsStr, title);
|
||||
if (cat == MejorTorrentCatType.Otro)
|
||||
return; // skip releases from this category
|
||||
|
||||
var categories = MapTrackerCatToNewznab(cat);
|
||||
var publishDate = TryToParseDate(publishStr, DateTime.Now);
|
||||
|
||||
// return results only for requested categories
|
||||
if (query.Categories.Any() && !query.Categories.Contains(categories.First()))
|
||||
return;
|
||||
|
||||
// match the words in the query with the titles
|
||||
if (matchWords && !CheckTitleMatchWords(query.SearchTerm, title))
|
||||
return;
|
||||
|
||||
// parsing is different for each category
|
||||
if (cat == MejorTorrentCatType.Serie || cat == MejorTorrentCatType.SerieHd)
|
||||
await ParseSeriesRelease(releases, query, title, detailsStr, cat, publishDate);
|
||||
else if (query.Episode == null) // if it's scene series, we don't return other categories
|
||||
{
|
||||
if (cat == MejorTorrentCatType.Pelicula)
|
||||
ParseMovieRelease(releases, query, title, detailsStr, cat, publishDate, quality);
|
||||
else
|
||||
{
|
||||
const long size = 104857600L; // 100 MB
|
||||
var release = GenerateRelease(title, detailsStr, detailsStr, cat, publishDate, size);
|
||||
releases.Add(release);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private async Task ParseSeriesRelease(ICollection<ReleaseInfo> releases, TorznabQuery query, string title,
|
||||
string detailsStr, string cat, DateTime publishDate)
|
||||
{
|
||||
var result = await RequestWithCookiesAsync(detailsStr);
|
||||
if (result.Status != HttpStatusCode.OK)
|
||||
throw new ExceptionWithConfigData(result.ContentString, configData);
|
||||
|
||||
var searchResultParser = new HtmlParser();
|
||||
var doc = searchResultParser.ParseDocument(result.ContentString);
|
||||
|
||||
var rows = doc.QuerySelectorAll("#main_table_center_center1 table table table tr");
|
||||
foreach (var row in rows)
|
||||
{
|
||||
var anchor = row.QuerySelector("a");
|
||||
if (anchor == null || anchor.GetAttribute("href") == "#abajo")
|
||||
continue;
|
||||
|
||||
var episodeTitle = anchor.TextContent.Trim();
|
||||
var downloadLink = SiteLink + anchor.GetAttribute("href").TrimStart('/');
|
||||
var episodePublishStr = row.QuerySelector("div").TextContent.Trim().Replace("Fecha: ", "");
|
||||
var episodePublish = TryToParseDate(episodePublishStr, publishDate);
|
||||
|
||||
// Convert the title to Scene format
|
||||
episodeTitle = ParseMejorTorrentSeriesTitle(title, episodeTitle, query);
|
||||
|
||||
// if the original query was in scene format, we filter the results to match episode
|
||||
// query.Episode != null means scene title
|
||||
if (query.Episode != null && !episodeTitle.Contains(query.GetEpisodeSearchString()))
|
||||
continue;
|
||||
|
||||
// guess size
|
||||
var size = 536870912L; // 512 MB
|
||||
if (episodeTitle.ToLower().Contains("720p"))
|
||||
size = 1073741824L; // 1 GB
|
||||
|
||||
var release = GenerateRelease(episodeTitle, detailsStr, downloadLink, cat, episodePublish, size);
|
||||
releases.Add(release);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private void ParseMovieRelease(ICollection<ReleaseInfo> releases, TorznabQuery query, string title,
|
||||
string detailsStr, string cat, DateTime publishDate, string quality)
|
||||
{
|
||||
title = title.Trim();
|
||||
|
||||
// parse tags in title, we need to put the year after the real title (before the tags)
|
||||
// Harry Potter And The Deathly Hallows: Part 1 [subs. Integrados]
|
||||
var tags = "";
|
||||
var queryMatches = Regex.Matches(title, @"[\[\(]([^\]\)]+)[\]\)]", RegexOptions.IgnoreCase);
|
||||
foreach (Match m in queryMatches)
|
||||
{
|
||||
var tag = m.Groups[1].Value.Trim().ToUpper();
|
||||
if (tag.Equals("4K")) // Fix 4K quality. Eg Harry Potter Y La Orden Del Fénix [4k]
|
||||
quality = "(UHD 4K 2160p)";
|
||||
else if (tag.Equals("FULLBLURAY")) // Fix 4K quality. Eg Harry Potter Y El Cáliz De Fuego (fullbluray)
|
||||
quality = "(COMPLETE BLURAY)";
|
||||
else // Add the tag to the title
|
||||
tags += " " + tag;
|
||||
title = title.Replace(m.Groups[0].Value, "");
|
||||
}
|
||||
title = title.Trim();
|
||||
|
||||
// clean quality
|
||||
if (quality != null)
|
||||
{
|
||||
var queryMatch = Regex.Match(quality, @"[\[\(]([^\]\)]+)[\]\)]", RegexOptions.IgnoreCase);
|
||||
if (queryMatch.Success)
|
||||
quality = queryMatch.Groups[1].Value;
|
||||
quality = quality.Trim().Replace("-", " ");
|
||||
quality = Regex.Replace(quality, "HDRip", "BDRip", RegexOptions.IgnoreCase); // fix for Radarr
|
||||
}
|
||||
|
||||
// add the year
|
||||
title = query.Year != null ? title + " " + query.Year : title;
|
||||
|
||||
// add the tags
|
||||
title += tags;
|
||||
|
||||
// add spanish
|
||||
title += " SPANISH";
|
||||
|
||||
// add quality
|
||||
if (quality != null)
|
||||
title += " " + quality;
|
||||
|
||||
// guess size
|
||||
var size = 1610612736L; // 1.5 GB
|
||||
if (title.ToLower().Contains("microhd"))
|
||||
size = 7516192768L; // 7 GB
|
||||
else if (title.ToLower().Contains("complete bluray") || title.ToLower().Contains("2160p"))
|
||||
size = 53687091200L; // 50 GB
|
||||
else if (title.ToLower().Contains("bluray"))
|
||||
size = 17179869184L; // 16 GB
|
||||
else if (title.ToLower().Contains("bdremux"))
|
||||
size = 21474836480L; // 20 GB
|
||||
|
||||
var release = GenerateRelease(title, detailsStr, detailsStr, cat, publishDate, size);
|
||||
releases.Add(release);
|
||||
}
|
||||
|
||||
private ReleaseInfo GenerateRelease(string title, string detailsStr, string downloadLink, string cat,
|
||||
DateTime publishDate, long size)
|
||||
{
|
||||
var link = new Uri(downloadLink);
|
||||
var details = new Uri(detailsStr);
|
||||
var release = new ReleaseInfo
|
||||
{
|
||||
Title = title,
|
||||
Details = details,
|
||||
Link = link,
|
||||
Guid = link,
|
||||
Category = MapTrackerCatToNewznab(cat),
|
||||
PublishDate = publishDate,
|
||||
Size = size,
|
||||
Files = 1,
|
||||
Seeders = 1,
|
||||
Peers = 2,
|
||||
DownloadVolumeFactor = 0,
|
||||
UploadVolumeFactor = 1
|
||||
};
|
||||
return release;
|
||||
}
|
||||
|
||||
private static bool CheckTitleMatchWords(string queryStr, string title)
|
||||
{
|
||||
// this code split the words, remove words with 2 letters or less, remove accents and lowercase
|
||||
var queryMatches = Regex.Matches(queryStr, @"\b[\w']*\b");
|
||||
var queryWords = from m in queryMatches.Cast<Match>()
|
||||
where !string.IsNullOrEmpty(m.Value) && m.Value.Length > 2
|
||||
select Encoding.UTF8.GetString(Encoding.GetEncoding("ISO-8859-8").GetBytes(m.Value.ToLower()));
|
||||
|
||||
var titleMatches = Regex.Matches(title, @"\b[\w']*\b");
|
||||
var titleWords = from m in titleMatches.Cast<Match>()
|
||||
where !string.IsNullOrEmpty(m.Value) && m.Value.Length > 2
|
||||
select Encoding.UTF8.GetString(Encoding.GetEncoding("ISO-8859-8").GetBytes(m.Value.ToLower()));
|
||||
titleWords = titleWords.ToArray();
|
||||
|
||||
return queryWords.All(word => titleWords.Contains(word));
|
||||
}
|
||||
|
||||
private static TorznabQuery ParseQuery(TorznabQuery query)
|
||||
{
|
||||
// Eg. Marco.Polo.2014.S02E08
|
||||
|
||||
// the season/episode part is already parsed by Jackett
|
||||
// query.SanitizedSearchTerm = Marco.Polo.2014.
|
||||
// query.Season = 2
|
||||
// query.Episode = 8
|
||||
var searchTerm = query.SanitizedSearchTerm;
|
||||
|
||||
// replace punctuation symbols with spaces
|
||||
// searchTerm = Marco Polo 2014
|
||||
searchTerm = Regex.Replace(searchTerm, @"[-._\(\)@/\\\[\]\+\%]", " ");
|
||||
searchTerm = Regex.Replace(searchTerm, @"\s+", " ");
|
||||
searchTerm = searchTerm.Trim();
|
||||
|
||||
// we parse the year and remove it from search
|
||||
// searchTerm = Marco Polo
|
||||
// query.Year = 2014
|
||||
var r = new Regex("([ ]+([0-9]{4}))$", RegexOptions.IgnoreCase);
|
||||
var m = r.Match(searchTerm);
|
||||
if (m.Success)
|
||||
{
|
||||
query.Year = int.Parse(m.Groups[2].Value);
|
||||
searchTerm = searchTerm.Replace(m.Groups[1].Value, "");
|
||||
}
|
||||
|
||||
// remove some words
|
||||
searchTerm = Regex.Replace(searchTerm, @"\b(espa[ñn]ol|spanish|castellano|spa)\b", "", RegexOptions.IgnoreCase);
|
||||
|
||||
query.SearchTerm = searchTerm;
|
||||
return query;
|
||||
}
|
||||
|
||||
private static string ParseMejorTorrentSeriesTitle(string title, string episodeTitle, TorznabQuery query)
|
||||
{
|
||||
// parse title
|
||||
// title = The Mandalorian - 1ª Temporada
|
||||
// title = The Mandalorian - 1ª Temporada [720p]
|
||||
// title = Grace and Frankie - 5ª Temporada [720p]: 5x08 al 5x13.
|
||||
var newTitle = title.Split(new[] { " - " }, StringSplitOptions.RemoveEmptyEntries)[0].Trim();
|
||||
// newTitle = The Mandalorian
|
||||
|
||||
// parse episode title
|
||||
var newEpisodeTitle = episodeTitle.Trim();
|
||||
// episodeTitle = 5x08 al 5x13.
|
||||
// episodeTitle = 2x01 - 2x02 - 2x03.
|
||||
var matches = Regex.Matches(newEpisodeTitle, "([0-9]+)x([0-9]+)", RegexOptions.IgnoreCase);
|
||||
if (matches.Count > 1)
|
||||
{
|
||||
newEpisodeTitle = "";
|
||||
foreach (Match m in matches)
|
||||
if (newEpisodeTitle.Equals(""))
|
||||
newEpisodeTitle += "S" + m.Groups[1].Value.PadLeft(2, '0')
|
||||
+ "E" + m.Groups[2].Value.PadLeft(2, '0');
|
||||
else
|
||||
newEpisodeTitle += "-E" + m.Groups[2].Value.PadLeft(2, '0');
|
||||
// newEpisodeTitle = S05E08-E13
|
||||
// newEpisodeTitle = S02E01-E02-E03
|
||||
}
|
||||
else
|
||||
{
|
||||
// episodeTitle = 1x04 - 05.
|
||||
var m = Regex.Match(newEpisodeTitle, "^([0-9]+)x([0-9]+)[^0-9]+([0-9]+)[.]?$", RegexOptions.IgnoreCase);
|
||||
if (m.Success)
|
||||
newEpisodeTitle = "S" + m.Groups[1].Value.PadLeft(2, '0')
|
||||
+ "E" + m.Groups[2].Value.PadLeft(2, '0') + "-"
|
||||
+ "E" + m.Groups[3].Value.PadLeft(2, '0');
|
||||
// newEpisodeTitle = S01E04-E05
|
||||
else
|
||||
{
|
||||
// episodeTitle = 1x02
|
||||
// episodeTitle = 1x02 -
|
||||
// episodeTitle = 1x08 - CONTRASEÑA: WWW.PCTNEW ORG bebe
|
||||
m = Regex.Match(newEpisodeTitle, "^([0-9]+)x([0-9]+)(.*)$", RegexOptions.IgnoreCase);
|
||||
if (m.Success)
|
||||
{
|
||||
newEpisodeTitle = "S" + m.Groups[1].Value.PadLeft(2, '0')
|
||||
+ "E" + m.Groups[2].Value.PadLeft(2, '0');
|
||||
// newEpisodeTitle = S01E02
|
||||
if (!m.Groups[3].Value.Equals(""))
|
||||
newEpisodeTitle += " " + m.Groups[3].Value.Replace(" -", "").Trim();
|
||||
// newEpisodeTitle = S01E08 CONTRASEÑA: WWW.PCTNEW ORG bebe
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// if the original query was in scene format, we have to put the year back
|
||||
// query.Episode != null means scene title
|
||||
var year = query.Episode != null && query.Year != null ? " " + query.Year : "";
|
||||
newTitle += year + " " + newEpisodeTitle;
|
||||
|
||||
// add quality
|
||||
if (title.ToLower().Contains("[720p]"))
|
||||
newTitle += " SPANISH 720p HDTV x264";
|
||||
else
|
||||
newTitle += " SPANISH SDTV XviD";
|
||||
|
||||
// return The Mandalorian S01E04 SPANISH 720p HDTV x264
|
||||
return newTitle;
|
||||
}
|
||||
|
||||
private static string GetMejortorrentCategory(string mejortorrentCat, string detailsStr, string title)
|
||||
{
|
||||
// get root category
|
||||
var cat = MejorTorrentCatType.Otro;
|
||||
if (mejortorrentCat == null)
|
||||
{
|
||||
if (detailsStr.Contains("peliculas_extend"))
|
||||
cat = MejorTorrentCatType.Pelicula;
|
||||
else if (detailsStr.Contains("series_extend"))
|
||||
cat = MejorTorrentCatType.Serie;
|
||||
else if (detailsStr.Contains("musica_extend"))
|
||||
cat = MejorTorrentCatType.Musica;
|
||||
}
|
||||
else if (mejortorrentCat.Equals(MejorTorrentCatType.Pelicula) ||
|
||||
mejortorrentCat.Equals(MejorTorrentCatType.Serie) ||
|
||||
mejortorrentCat.Equals(MejorTorrentCatType.Musica))
|
||||
cat = mejortorrentCat;
|
||||
|
||||
// hack to separate SD & HD series
|
||||
if (cat.Equals(MejorTorrentCatType.Serie) && title.ToLower().Contains("720p"))
|
||||
cat = MejorTorrentCatType.SerieHd;
|
||||
|
||||
return cat;
|
||||
}
|
||||
|
||||
private static string GetLongestWord(string text)
|
||||
{
|
||||
var words = text.Split(' ');
|
||||
if (!words.Any())
|
||||
return null;
|
||||
var longestWord = words.First();
|
||||
foreach (var word in words)
|
||||
if (word.Length >= longestWord.Length)
|
||||
longestWord = word;
|
||||
return longestWord;
|
||||
}
|
||||
|
||||
private static DateTime TryToParseDate(string dateToParse, DateTime dateDefault)
|
||||
{
|
||||
try
|
||||
{
|
||||
return DateTime.ParseExact(dateToParse, "yyyy-MM-dd", CultureInfo.InvariantCulture);
|
||||
}
|
||||
catch
|
||||
{
|
||||
// ignored
|
||||
}
|
||||
return dateDefault;
|
||||
}
|
||||
}
|
||||
}
|
@@ -88,14 +88,6 @@ namespace Jackett.Common.Indexers
|
||||
|
||||
configData.AddDynamic("freeleech", new BoolConfigurationItem("Search freeleech only") { Value = false });
|
||||
|
||||
AddCategoryMapping(29, TorznabCatType.TVAnime, "Anime");
|
||||
AddCategoryMapping(28, TorznabCatType.PC, "Appz/Packs");
|
||||
AddCategoryMapping(42, TorznabCatType.AudioAudiobook, "Audio Books");
|
||||
AddCategoryMapping(20, TorznabCatType.Books, "Books");
|
||||
AddCategoryMapping(30, TorznabCatType.TVDocumentary, "Documentary");
|
||||
AddCategoryMapping(47, TorznabCatType.Other, "Fonts");
|
||||
AddCategoryMapping(43, TorznabCatType.PCMac, "Mac");
|
||||
|
||||
AddCategoryMapping(96, TorznabCatType.MoviesUHD, "Movie/4K");
|
||||
AddCategoryMapping(25, TorznabCatType.MoviesSD, "Movies/480p");
|
||||
AddCategoryMapping(11, TorznabCatType.MoviesBluRay, "Movies/Bluray");
|
||||
@@ -108,31 +100,43 @@ namespace Jackett.Common.Indexers
|
||||
AddCategoryMapping(48, TorznabCatType.Movies, "Movies/x265");
|
||||
AddCategoryMapping(1, TorznabCatType.MoviesSD, "Movies/XviD");
|
||||
|
||||
AddCategoryMapping(17, TorznabCatType.AudioMP3, "Music/Audio");
|
||||
AddCategoryMapping(23, TorznabCatType.AudioForeign, "Music/Non-English");
|
||||
AddCategoryMapping(41, TorznabCatType.Audio, "Music/Packs");
|
||||
AddCategoryMapping(16, TorznabCatType.AudioVideo, "Music/Video");
|
||||
AddCategoryMapping(27, TorznabCatType.Audio, "Music/Flac");
|
||||
|
||||
AddCategoryMapping(45, TorznabCatType.AudioOther, "Podcast");
|
||||
|
||||
AddCategoryMapping(4, TorznabCatType.PCGames, "PC/Games");
|
||||
AddCategoryMapping(18, TorznabCatType.ConsolePS3, "PS3");
|
||||
AddCategoryMapping(8, TorznabCatType.ConsolePSP, "PSP");
|
||||
AddCategoryMapping(10, TorznabCatType.ConsoleWii, "Wii");
|
||||
AddCategoryMapping(9, TorznabCatType.ConsoleXBox360, "Xbox-360");
|
||||
|
||||
AddCategoryMapping(24, TorznabCatType.TVSD, "TV/480p");
|
||||
AddCategoryMapping(32, TorznabCatType.TVHD, "TV/Bluray");
|
||||
AddCategoryMapping(31, TorznabCatType.TVSD, "TV/DVD-R");
|
||||
AddCategoryMapping(33, TorznabCatType.TVSD, "TV/DVD-Rip");
|
||||
AddCategoryMapping(46, TorznabCatType.TVSD, "TV/Mobile");
|
||||
AddCategoryMapping(82, TorznabCatType.TVForeign, "TV/Non-English");
|
||||
AddCategoryMapping(14, TorznabCatType.TV, "TV/Packs");
|
||||
AddCategoryMapping(26, TorznabCatType.TVSD, "TV/SD/x264");
|
||||
AddCategoryMapping(7, TorznabCatType.TVHD, "TV/x264");
|
||||
AddCategoryMapping(34, TorznabCatType.TVUHD, "TV/x265");
|
||||
AddCategoryMapping(2, TorznabCatType.TVSD, "TV/XviD");
|
||||
|
||||
AddCategoryMapping(4, TorznabCatType.PCGames, "PC/Games");
|
||||
AddCategoryMapping(18, TorznabCatType.ConsolePS3, "PS");
|
||||
AddCategoryMapping(8, TorznabCatType.ConsolePSP, "PSP");
|
||||
AddCategoryMapping(10, TorznabCatType.ConsoleNDS, "Nintendo");
|
||||
AddCategoryMapping(9, TorznabCatType.ConsoleXBox, "Xbox");
|
||||
|
||||
AddCategoryMapping(17, TorznabCatType.AudioMP3, "Music/Audio");
|
||||
AddCategoryMapping(27, TorznabCatType.Audio, "Music/Flac");
|
||||
AddCategoryMapping(23, TorznabCatType.AudioForeign, "Music/Non-English");
|
||||
AddCategoryMapping(41, TorznabCatType.Audio, "Music/Packs");
|
||||
AddCategoryMapping(16, TorznabCatType.AudioVideo, "Music/Video");
|
||||
|
||||
AddCategoryMapping(29, TorznabCatType.TVAnime, "Anime");
|
||||
AddCategoryMapping(42, TorznabCatType.AudioAudiobook, "Audio Books");
|
||||
AddCategoryMapping(20, TorznabCatType.Books, "Books");
|
||||
AddCategoryMapping(102, TorznabCatType.BooksForeign, "Books/Non-English");
|
||||
AddCategoryMapping(30, TorznabCatType.TVDocumentary, "Documentary");
|
||||
AddCategoryMapping(95, TorznabCatType.TVDocumentary, "Educational");
|
||||
AddCategoryMapping(47, TorznabCatType.Other, "Fonts");
|
||||
AddCategoryMapping(43, TorznabCatType.PCMac, "Mac");
|
||||
AddCategoryMapping(45, TorznabCatType.AudioOther, "Podcast");
|
||||
AddCategoryMapping(28, TorznabCatType.PC, "Softwa/Packs");
|
||||
AddCategoryMapping(12, TorznabCatType.PC, "Software");
|
||||
|
||||
AddCategoryMapping(19, TorznabCatType.XXX, "XXX/0Day");
|
||||
AddCategoryMapping(6, TorznabCatType.XXX, "XXX/Movies");
|
||||
AddCategoryMapping(15, TorznabCatType.XXXPack, "XXX/Packs");
|
||||
}
|
||||
|
@@ -24,6 +24,7 @@ namespace Jackett.Common.Models
|
||||
public long? TVDBId { get; set; }
|
||||
public long? Imdb { get; set; }
|
||||
public long? TMDb { get; set; }
|
||||
public long? DoubanId { get; set; }
|
||||
public string Author { get; set; }
|
||||
public string BookTitle { get; set; }
|
||||
public long? Seeders { get; set; }
|
||||
@@ -61,6 +62,7 @@ namespace Jackett.Common.Models
|
||||
RageID = copyFrom.RageID;
|
||||
Imdb = copyFrom.Imdb;
|
||||
TMDb = copyFrom.TMDb;
|
||||
DoubanId = copyFrom.DoubanId;
|
||||
Author = copyFrom.Author;
|
||||
BookTitle = copyFrom.BookTitle;
|
||||
Seeders = copyFrom.Seeders;
|
||||
@@ -115,6 +117,6 @@ namespace Jackett.Common.Models
|
||||
public static long BytesFromKB(float kb) => (long)(kb * 1024f);
|
||||
|
||||
public override string ToString() =>
|
||||
$"[ReleaseInfo: Title={Title}, Guid={Guid}, Link={Link}, Details={Details}, PublishDate={PublishDate}, Category={Category}, Size={Size}, Files={Files}, Grabs={Grabs}, Description={Description}, RageID={RageID}, TVDBId={TVDBId}, Imdb={Imdb}, TMDb={TMDb}, Seeders={Seeders}, Peers={Peers}, Poster={Poster}, InfoHash={InfoHash}, MagnetUri={MagnetUri}, MinimumRatio={MinimumRatio}, MinimumSeedTime={MinimumSeedTime}, DownloadVolumeFactor={DownloadVolumeFactor}, UploadVolumeFactor={UploadVolumeFactor}, Gain={Gain}]";
|
||||
$"[ReleaseInfo: Title={Title}, Guid={Guid}, Link={Link}, Details={Details}, PublishDate={PublishDate}, Category={Category}, Size={Size}, Files={Files}, Grabs={Grabs}, Description={Description}, RageID={RageID}, TVDBId={TVDBId}, Imdb={Imdb}, TMDb={TMDb}, DoubanId={DoubanId}, Seeders={Seeders}, Peers={Peers}, Poster={Poster}, InfoHash={InfoHash}, MagnetUri={MagnetUri}, MinimumRatio={MinimumRatio}, MinimumSeedTime={MinimumSeedTime}, DownloadVolumeFactor={DownloadVolumeFactor}, UploadVolumeFactor={UploadVolumeFactor}, Gain={Gain}]";
|
||||
}
|
||||
}
|
||||
|
@@ -255,15 +255,17 @@ namespace Jackett.Updater
|
||||
"CurlSharp.dll",
|
||||
"CurlSharp.pdb",
|
||||
"Definitions/01torrent.yml",
|
||||
"Definitions/24rolika.yml",
|
||||
"Definitions/32pages.yml",
|
||||
"Definitions/3evils.yml",
|
||||
"Definitions/420files.yml",
|
||||
"Definitions/7torrents.yml",
|
||||
"Definitions/angietorrents.yml",
|
||||
"Definitions/DasUnerwartete.yml",
|
||||
"Definitions/academictorrents.yml",
|
||||
"Definitions/alein.yml",
|
||||
"Definitions/aither.yml", // switch to *-API #8682
|
||||
"Definitions/alein.yml",
|
||||
"Definitions/alexfilm.yml",
|
||||
"Definitions/angietorrents.yml",
|
||||
"Definitions/anidex.yml", // migrated to C#
|
||||
"Definitions/animeitalia.yml",
|
||||
"Definitions/animeworld.yml", // switch to *-API #8682
|
||||
@@ -278,12 +280,12 @@ namespace Jackett.Updater
|
||||
"Definitions/avg.yml",
|
||||
"Definitions/awesomehd.yml", // migrated to C#
|
||||
"Definitions/b2s-share.yml",
|
||||
"Definitions/beyond-hd-oneurl.yml", // #12993
|
||||
"Definitions/baibako.yml", // renamed rudub #5673
|
||||
"Definitions/bithq.yml",
|
||||
"Definitions/bit-titan.yml",
|
||||
"Definitions/beyond-hd-oneurl.yml", // #12993
|
||||
"Definitions/bigtorrent.yml", // merged with eStone #12352
|
||||
"Definitions/bigtower.yml",
|
||||
"Definitions/bit-titan.yml",
|
||||
"Definitions/bithq.yml",
|
||||
"Definitions/bitme.yml",
|
||||
"Definitions/bittorrentam.yml",
|
||||
"Definitions/blubits.yml",
|
||||
@@ -309,10 +311,9 @@ namespace Jackett.Updater
|
||||
"Definitions/crazyscorner.yml",
|
||||
"Definitions/czteam.yml",
|
||||
"Definitions/cztorrent.yml",
|
||||
"Definitions/darmowetorenty.yml", // migrated to C#
|
||||
"Definitions/danishbytes.yml", // migrated to C#
|
||||
"Definitions/darktracker.yml",
|
||||
"Definitions/DasUnerwartete.yml",
|
||||
"Definitions/darmowetorenty.yml", // migrated to C#
|
||||
"Definitions/datascene.yml", // switch to *-API #8682
|
||||
"Definitions/demonsite.yml",
|
||||
"Definitions/desireleasers.yml",
|
||||
@@ -330,8 +331,8 @@ namespace Jackett.Updater
|
||||
"Definitions/elitehd.yml",
|
||||
"Definitions/elittracker.yml",
|
||||
"Definitions/emtrek.yml",
|
||||
"Definitions/epizod.yml",
|
||||
"Definitions/eotforum.yml",
|
||||
"Definitions/epizod.yml",
|
||||
"Definitions/erzsebet.yml",
|
||||
"Definitions/erzsebetpl.yml",
|
||||
"Definitions/estrenosdtl.yml",
|
||||
@@ -360,8 +361,8 @@ namespace Jackett.Updater
|
||||
"Definitions/gormogon.yml",
|
||||
"Definitions/greeklegends.yml",
|
||||
"Definitions/gtorrent.yml",
|
||||
"Definitions/hachede.yml",
|
||||
"Definitions/hachede-c.yml",
|
||||
"Definitions/hachede.yml",
|
||||
"Definitions/hd4free.yml",
|
||||
"Definitions/hdbc.yml", // renamed to hdbitscom
|
||||
"Definitions/hdclub.yml",
|
||||
@@ -371,8 +372,10 @@ namespace Jackett.Updater
|
||||
"Definitions/hdplus.yml",
|
||||
"Definitions/hdreactor.yml", // renamed to hdhouse
|
||||
"Definitions/hdstreet.yml",
|
||||
"Definitions/hon3yhd.yml",
|
||||
"Definitions/hellastz.yml",
|
||||
"Definitions/hidden-palace.yml",
|
||||
"Definitions/hon3yhd-net.yml",
|
||||
"Definitions/hon3yhd.yml",
|
||||
"Definitions/horriblesubs.yml",
|
||||
"Definitions/horrorsite.yml",
|
||||
"Definitions/hush.yml",
|
||||
@@ -387,8 +390,8 @@ namespace Jackett.Updater
|
||||
"Definitions/kapaki.yml",
|
||||
"Definitions/katcrs.yml",
|
||||
"Definitions/kaztorka.yml",
|
||||
"Definitions/kickasstorrent.yml",
|
||||
"Definitions/kickasstorrent-kathow.yml", // renamed to kickasstorrents-ws
|
||||
"Definitions/kickasstorrent.yml",
|
||||
"Definitions/kikibt.yml",
|
||||
"Definitions/kisssub.yml",
|
||||
"Definitions/lapausetorrents.yml",
|
||||
@@ -416,21 +419,20 @@ namespace Jackett.Updater
|
||||
"Definitions/moviezone.yml", // migrated to teracod #9743
|
||||
"Definitions/music-master.yml",
|
||||
"Definitions/nachtwerk.yml",
|
||||
"Definitions/nbtorrents.yml",
|
||||
"Definitions/nexttorrent.yml",
|
||||
"Definitions/nforce.yml",
|
||||
"Definitions/nnm-club.yml", // renamed to noname-club
|
||||
"Definitions/nordichd.yml",
|
||||
"Definitions/nordicplus.yml",
|
||||
"Definitions/nostalgic.yml", // renamed to vhstapes
|
||||
"Definitions/nyaa.yml",
|
||||
"Definitions/nyaa-pantsu.yml",
|
||||
"Definitions/nyaa.yml",
|
||||
"Definitions/nyoo.yml",
|
||||
"Definitions/oasis.yml",
|
||||
"Definitions/onlineselfeducation.yml",
|
||||
"Definitions/onlyscene.yml",
|
||||
"Definitions/obscure.yml",
|
||||
"Definitions/oncesearch.yml",
|
||||
"Definitions/onlineselfeducation.yml",
|
||||
"Definitions/onlyscene.yml",
|
||||
"Definitions/passionetorrent.yml",
|
||||
"Definitions/pirateiro.yml",
|
||||
"Definitions/pleasuredome.yml",
|
||||
@@ -439,9 +441,9 @@ namespace Jackett.Updater
|
||||
"Definitions/pt99.yml",
|
||||
"Definitions/qctorrent.yml",
|
||||
"Definitions/qxr.yml",
|
||||
"Definitions/racing4everyone.yml", // switch to *-API #12870 #8682
|
||||
"Definitions/rapidetracker.yml",
|
||||
"Definitions/rarbg.yml", // migrated to C#
|
||||
"Definitions/racing4everyone.yml", // switch to *-API #12870 #8682
|
||||
"Definitions/redbits.yml", // switch to *-API #11540 #8682
|
||||
"Definitions/redtopia.yml",
|
||||
"Definitions/reelflix.yml", // switch to *-API #8682
|
||||
@@ -459,6 +461,7 @@ namespace Jackett.Updater
|
||||
"Definitions/scenexpress.yml",
|
||||
"Definitions/sdkino.yml",
|
||||
"Definitions/secretcinema.yml", // migrated to C# gazelle base tracker
|
||||
"Definitions/seedfile.yml",
|
||||
"Definitions/seedpeer.yml",
|
||||
"Definitions/sexxi.yml",
|
||||
"Definitions/sharefiles.yml",
|
||||
@@ -469,10 +472,9 @@ namespace Jackett.Updater
|
||||
"Definitions/shellife.yml",
|
||||
"Definitions/shokweb.yml",
|
||||
"Definitions/skipthecommercials.yml", // switch to *-API #8682
|
||||
"Definitions/torrentland.yml", // switch to *-API #13006 #8682
|
||||
"Definitions/skytorrents.yml",
|
||||
"Definitions/skytorrents-lol.yml",
|
||||
"Definitions/skytorrents-to.yml",
|
||||
"Definitions/skytorrents.yml",
|
||||
"Definitions/skytorrentsclone.yml", // renamed to skytorrents-lol
|
||||
"Definitions/skytorrentsclone2.yml", // renamed to skytorrents-to
|
||||
"Definitions/spacetorrent.yml",
|
||||
@@ -482,10 +484,10 @@ namespace Jackett.Updater
|
||||
"Definitions/t411v2.yml",
|
||||
"Definitions/takeabyte.yml",
|
||||
"Definitions/tazmaniaden.yml",
|
||||
"Definitions/tenyardtracker.yml", // to be migrated to c#, #795
|
||||
"Definitions/tbplus.yml",
|
||||
"Definitions/tehconnection.yml",
|
||||
"Definitions/tellytorrent.yml", // switch to *-API #8682
|
||||
"Definitions/tenyardtracker.yml", // to be migrated to c#, #795
|
||||
"Definitions/tfile.yml",
|
||||
"Definitions/the-devils-lounge.yml",
|
||||
"Definitions/the-madhouse.yml",
|
||||
@@ -508,6 +510,7 @@ namespace Jackett.Updater
|
||||
"Definitions/torrentgalaxyorg.yml", // renamed to torrentgalaxy
|
||||
"Definitions/torrenthane.yml",
|
||||
"Definitions/torrentkim.yml",
|
||||
"Definitions/torrentland.yml", // switch to *-API #13006 #8682
|
||||
"Definitions/torrentmax.yml",
|
||||
"Definitions/torrentproject.yml",
|
||||
"Definitions/torrentquest.yml",
|
||||
@@ -522,8 +525,8 @@ namespace Jackett.Updater
|
||||
"Definitions/torrentz2k.yml",
|
||||
"Definitions/torrof.yml",
|
||||
"Definitions/torviet.yml",
|
||||
"Definitions/trackeros.yml", // switch to *-API #12807
|
||||
"Definitions/trackeros-api.yml",
|
||||
"Definitions/trackeros.yml", // switch to *-API #12807
|
||||
"Definitions/tspate.yml",
|
||||
"Definitions/ttobogo.yml",
|
||||
"Definitions/turknova.yml",
|
||||
@@ -536,6 +539,7 @@ namespace Jackett.Updater
|
||||
"Definitions/vanila.yml",
|
||||
"Definitions/vhstapes.yml",
|
||||
"Definitions/waffles.yml",
|
||||
"Definitions/witchhunter.yml",
|
||||
"Definitions/world-of-tomorrow.yml", // #9213
|
||||
"Definitions/worldofp2p.yml",
|
||||
"Definitions/worldwidetorrents.yml",
|
||||
@@ -545,7 +549,7 @@ namespace Jackett.Updater
|
||||
"Definitions/xtremezone.yml", // migrated to C# XtremeZone base tracker
|
||||
"Definitions/yingk.yml",
|
||||
"Definitions/yourexotic.yml", // renamed to exoticaz
|
||||
"Definitions/witchhunter.yml",
|
||||
"Definitions/zooqle.yml",
|
||||
"Microsoft.Owin.dll",
|
||||
"Microsoft.Owin.FileSystems.dll",
|
||||
"Microsoft.Owin.Host.HttpListener.dll",
|
||||
|
Reference in New Issue
Block a user