Compare commits

...

76 Commits

Author SHA1 Message Date
Garfield69
db300f5ae9 skytorrentclone: restore magnets only option. #4542 2019-04-25 07:09:25 +12:00
Garfield69
1d224b6db9 casatorrent: new domain #4911 2019-04-24 16:21:35 +12:00
Garfield69
a3e97bb050 amigosshare: new results layout 2019-04-23 19:21:57 +12:00
Garfield69
e5827c3456 megabliz: set as private 2019-04-22 17:28:50 +12:00
Garfield69
27d2b6caae kikibt: drop .cc domain, only using .pw now. 2019-04-22 08:32:58 +12:00
Garfield69
bcdc1879d9 btkitty: new domain 2019-04-22 08:28:37 +12:00
Garfield69
a8999e8276 torrentkitty: new domain 2019-04-22 08:20:31 +12:00
Garfield69
4c2db157e9 torrent9clone: back to .lol
same as gktorrent?
2019-04-21 17:34:35 +12:00
Garfield69
10a46bac48 gktorrent: back to .net
whats the f'ing point of yo-yo'ing from .tv to .net and back again?
2019-04-21 17:18:02 +12:00
Garfield69
7d6b282039 Revert "RarBG: bump requestDelay to 2.2 for #5107"
This reverts commit f6bb9ca263.
2019-04-21 15:28:19 +12:00
Garfield69
f6bb9ca263 RarBG: bump requestDelay to 2.2 for #5107 2019-04-21 10:50:34 +12:00
Garfield69
11e8d4d290 custom.js: ensure url len <= 2k resolves #5104
https://stackoverflow.com/questions/417142/what-is-the-maximum-length-of-a-url-in-different-browsers
2019-04-21 09:52:09 +12:00
Peter Zsak
c88a213b2e insanetracker: new login.php page (#5105) 2019-04-21 08:03:55 +12:00
Garfield69
4295e65dfe skytorrentsclone: back to .lol domain
the .to domain redirects to BTDB

turns out .to was a completely different site than .lol and not an alternate as first thought.
changes made for .to have been reversed.
.lol uses query parm for search,
and itorrents.org for dl links
2019-04-19 18:04:40 +12:00
Garfield69
8151fbf382 add concen a public conspiracy torrent tracker. resolves #5097 2019-04-19 16:04:27 +12:00
flightlevel
709cafda62 Enable workstation garbage collection
Attempting to limit the amount of memory used by Jackett for users with high core CPUs  https://blog.markvincze.com/troubleshooting-high-memory-usage-with-asp-net-core-on-kubernetes/
2019-04-19 11:41:47 +10:00
Garfield69
13a1cd3ab7 Merge branch 'master' of https://github.com/Jackett/Jackett 2019-04-19 11:35:32 +12:00
Garfield69
7c0fd1233f index.html: shortcut favicon update. resolves #5095
stupid firefox
nothing wrong with the previous version of the link wihch works fine on chrome
but firefox won't show it, something to do with cache or other crap.
adding a ? solves, so what the heck.
2019-04-19 11:35:29 +12:00
Ellmout
bdc592edfd Sharewood: Add Grabs, Freeleech, and Double Upload (#5087) 2019-04-17 19:30:30 +12:00
Garfield69
f2baa8f43c hdtorrents: attempt to handle mederator profile. #5065
clean up  imdbid logic
sometimes grabs is missing
bump selector count by 4 for mederator's extra links
2019-04-17 12:22:26 +12:00
Garfield69
9274a26a0e ettv: new domain .to 2019-04-16 07:23:07 +12:00
Garfield69
3a7608317f shelllife: oops. resolves #5074 2019-04-15 08:17:53 +12:00
Garfield69
67ea8db2da xwtorrents: add optional seedbox dl resolves #5071 2019-04-14 16:35:36 +12:00
flightlevel
40b0cdffc3 Reduce cache size 2019-04-14 11:59:48 +10:00
kaso17
2f96ffa15d TorrentHeaven: add certificate hash 2019-04-13 15:52:00 +02:00
kaso17
8086b221ec remove GODs (dead) 2019-04-12 17:32:43 +02:00
Garfield69
bf25db7c5f losslessclub: add music-search 2019-04-12 07:42:59 +12:00
Garfield69
dfa6529e58 trancetraffic: add music-search 2019-04-12 07:40:56 +12:00
Garfield69
c3603014ca shelllife: add music-search 2019-04-12 07:38:54 +12:00
Garfield69
4bf6393b6e jpopsuki: add music-search 2019-04-12 07:34:02 +12:00
Garfield69
c57231206f funkytorrents: add music-search 2019-04-12 07:28:08 +12:00
Garfield69
b4a8174a6b fullmixmusic: add music-search 2019-04-12 07:25:58 +12:00
Garfield69
8722cb8061 readme: add lidarr mention 2019-04-12 07:17:06 +12:00
Garfield69
03105455fb casstudio: new domain .tk resolves #5060 2019-04-12 07:10:46 +12:00
Garfield69
3e0bc22459 soundpark: add music-search #5022 2019-04-12 07:06:45 +12:00
Garfield69
d8746032ca remove hdplus. its gone. #4843 2019-04-11 09:28:34 +12:00
Garfield69
a1832997b3 gktorrent: back to .tv
like a yo yo
2019-04-11 09:13:39 +12:00
Garfield69
4d3ebab00c torrent9clone: new domain 2019-04-11 09:09:34 +12:00
Garfield69
5f110e2691 kikibt: new domain 2019-04-11 08:59:54 +12:00
Garfield69
060efffc7e tigers-dl: changes to their search results
build download link as its been dropped
shift all the other selectors as a result fot he dl-link being dropped
2019-04-11 08:31:11 +12:00
Garfield69
c27ed6fd41 add torrents-local, a Russian semi-Private tracker. resolves #5049 2019-04-10 17:24:28 +12:00
Garfield69
8edfb79a3e remove crazyhd yml #5043 2019-04-10 15:57:10 +12:00
Garfield69
eef0d55776 Revert "add crazyhd a Bangladeshi private tracker. resolves #5043"
This reverts commit d99de43309.
2019-04-10 15:55:20 +12:00
Garfield69
79a3d07d09 torrent9: new domain 2019-04-10 08:51:08 +12:00
Garfield69
d44408c988 add focusx a Russian Public site. Resolves #5045 2019-04-09 16:01:37 +12:00
Garfield69
d99de43309 add crazyhd a Bangladeshi private tracker. resolves #5043 2019-04-09 08:44:56 +12:00
Garfield69
eaa562a20a torrentproject2: update row selector 2019-04-09 08:02:03 +12:00
Garfield69
b124ba469f torrent9clone: new domain 2019-04-09 06:59:25 +12:00
flightlevel
d002382883 Updater: remove jackett executable
#5022
2019-04-08 20:32:08 +10:00
Garfield69
363d08634a puntotorrent: update categories. resolves #5042 2019-04-08 10:59:12 +12:00
Garfield69
2b503e01a1 amigosshare: adjustments resolves #5004
add banner
fix a category
2019-04-07 16:41:27 +12:00
Garfield69
a838dbcb6c xktorrent: categories
and other assorted selectors
2019-04-07 09:53:51 +12:00
Garfield69
16f96e0419 avg: update category selector
and date processing
2019-04-07 08:44:33 +12:00
Garfield69
5fe974afad asiancinema: updates for unit3d 1.9.2 2019-04-07 08:26:05 +12:00
Garfield69
593bbb37d3 dxdhd: updates for unti3d 1.9.2
plus add / amend categories
2019-04-07 08:11:27 +12:00
ThomasClemenceau
c9fbc7268b cpasbien, cpasbienclone, gktorrent, torrent9, torrent9clone: fix title with MULTI language. (#5031)
The MULTI was before the year so it was not supported by Radarr,Couchpotato etc..
2019-04-06 10:43:51 +13:00
Garfield69
a32ad215cd add SoundPark a semi-private russian site for music. #5022
downloading is untested.
the site has an aggressive advert method and the dl link is only available ad-free to members or vip
a newbie like me has to wait 1 week before becoming a member
meanwhile the dl link redirects to ads randomly :-(
2019-04-06 10:06:35 +13:00
Garfield69
34509d284f torrent9clone: new domain wwv.*.vg 2019-04-06 08:48:45 +13:00
Garfield69
2ca7975d3d cpasbien, cpasbienclone, gktorrent, torrent9, torrent9clone: fix title. resolves #5027 2019-04-06 07:52:28 +13:00
Garfield69
e8dbaa4a8e lesaloon: add capcha. resolves #5026 2019-04-05 15:59:40 +13:00
Garfield69
a6fd4c3da1 cpasbeinclone: update for recent html changes 2019-04-04 09:44:21 +13:00
Garfield69
1b3365d8ad spacetorrent: drop redundant French date replacements 2019-04-04 09:17:45 +13:00
Garfield69
a822b3c4f4 tigers-dl: support multi languages for dates
and date selector
and fix grabs when ---
2019-04-04 08:59:26 +13:00
Garfield69
ff663cc202 arenabg: download link for .torrent has changed. #5013 2019-04-03 08:12:03 +13:00
kaso17
4c3dbb4746 TCCF: remove inv flag 2019-04-02 16:55:39 +02:00
kaso17
a4ba0d21d9 HTTPClients: avoid Exception User-Unhandled notices 2019-04-02 15:39:14 +02:00
Garfield69
859da99442 yggtorrent: optionally disable sonarrv3hack. resolves #4987 2019-04-02 11:21:49 +13:00
Garfield69
1cbeb74c8e sharewood: correct results sort. resolves #5006 2019-04-02 08:05:40 +13:00
Garfield69
4ae705eb15 elitetorrentbiz: new domain .io resolves #5008 2019-04-02 07:18:46 +13:00
flightlevel
b469c2e764 Fix proxy javascript error 2019-04-01 19:40:35 +11:00
flightlevel
2712ff432b Revert "Revert "Revert "Revert "Add proxy warning to dashboard""""
This reverts commit 5d21a69b07.
2019-04-01 19:24:49 +11:00
Garfield69
9da64d5bbf amigosshare: search page changes. resolves #5004
Also the logout link has gone!!!
2019-04-01 17:32:49 +13:00
Garfield69
5d21a69b07 Revert "Revert "Revert "Add proxy warning to dashboard"""
This reverts commit a083090b5e.
2019-04-01 17:30:53 +13:00
Garfield69
a083090b5e Revert "Revert "Add proxy warning to dashboard""
This reverts commit 27ae1b3e82.
2019-04-01 15:45:32 +13:00
Garfield69
27ae1b3e82 Revert "Add proxy warning to dashboard"
This reverts commit b3d2ad94a7.
2019-04-01 12:49:07 +13:00
Garfield69
f0245900e4 Revert "custom.js: prevent null.trim error resolves #5000"
This reverts commit a61991fcdb.
2019-04-01 12:49:03 +13:00
53 changed files with 1833 additions and 664 deletions

View File

@@ -9,7 +9,7 @@
This project is a new fork and is recruiting development help. If you are able to help out please contact us.
Jackett works as a proxy server: it translates queries from apps ([Sonarr](https://github.com/Sonarr/Sonarr), [Radarr](https://github.com/Radarr/Radarr), [SickRage](https://sickrage.github.io/), [CouchPotato](https://couchpota.to/), [Mylar](https://github.com/evilhero/mylar), [DuckieTV](https://github.com/SchizoDuckie/DuckieTV), [qBittorrent](https://www.qbittorrent.org/), [Nefarious](https://github.com/lardbit/nefarious) etc) into tracker-site-specific http queries, parses the html response, then sends results back to the requesting software. This allows for getting recent uploads (like RSS) and performing searches. Jackett is a single repository of maintained indexer scraping & translation logic - removing the burden from other apps.
Jackett works as a proxy server: it translates queries from apps ([Sonarr](https://github.com/Sonarr/Sonarr), [Radarr](https://github.com/Radarr/Radarr), [SickRage](https://sickrage.github.io/), [CouchPotato](https://couchpota.to/), [Mylar](https://github.com/evilhero/mylar), [Lidarr](https://github.com/lidarr/lidarr), [DuckieTV](https://github.com/SchizoDuckie/DuckieTV), [qBittorrent](https://www.qbittorrent.org/), [Nefarious](https://github.com/lardbit/nefarious) etc) into tracker-site-specific http queries, parses the html response, then sends results back to the requesting software. This allows for getting recent uploads (like RSS) and performing searches. Jackett is a single repository of maintained indexer scraping & translation logic - removing the burden from other apps.
Developer note: The software implements the [Torznab](https://github.com/Sonarr/Sonarr/wiki/Implementing-a-Torznab-indexer) (with [nZEDb](https://github.com/nZEDb/nZEDb/blob/dev/docs/newznab_api_specification.txt) category numbering) and [TorrentPotato](https://github.com/RuudBurger/CouchPotatoServer/wiki/Couchpotato-torrent-provider) APIs.
@@ -31,6 +31,7 @@ Developer note: The software implements the [Torznab](https://github.com/Sonarr/
* BTDB
* BTDigg
* BTKitty
* ConCen
* cpasbien
* cpasbienClone
* DIGBT
@@ -96,7 +97,6 @@ Developer note: The software implements the [Torznab](https://github.com/Sonarr/
* GDF76
* Kinozal
* LostFilm.tv
* Mega-Bliz
* Metal Tracker
* MVGroup Forum
* MVGroup Main
@@ -107,6 +107,8 @@ Developer note: The software implements the [Torznab](https://github.com/Sonarr/
* RuTracker
* Sharewood
* SkTorrent
* SoundPark
* Torrents-Local
* Union Fansub
* Vanila
* XtreMeZone (MYXZ)
@@ -200,6 +202,7 @@ Developer note: The software implements the [Torznab](https://github.com/Sonarr/
* FANO.IN
* FileList (FL)
* Femdomcult
* FocusX
* Freedom-HD (Freedom Paradise)
* FreeTorrent
* FullMixMusic
@@ -213,7 +216,6 @@ Developer note: The software implements the [Torznab](https://github.com/Sonarr/
* GigaTorrents
* GimmePeers (formerly ILT) <!-- maintained by jamesb2147 -->
* GiroTorrent
* GODS
* Greek Team
* HacheDe
* Hardbay
@@ -231,7 +233,6 @@ Developer note: The software implements the [Torznab](https://github.com/Sonarr/
* HDCity
* HDHome (HDBigger)
* HDME
* HDplus
* HDSky
* HDTorrents.it
* Hebits
@@ -255,6 +256,7 @@ Developer note: The software implements the [Torznab](https://github.com/Sonarr/
* Magico (Trellas)
* Majomparádé (TurkDepo)
* Manicomio Share
* Mega-Bliz
* Mononoké-BT
* MoreThanTV (MTV)
* MyAnonamouse (MAM)
@@ -336,7 +338,7 @@ Developer note: The software implements the [Torznab](https://github.com/Sonarr/
* Torrent.LT
* TorrentBD
* TorrentBytes (TBy)
* TorrentCCF (TCCF) [![(invite needed)][inviteneeded]](#)
* TorrentCCF (TCCF)
* TorrentDay (TD)
* Torrentech (TTH)
* TorrentHeaven

View File

@@ -99,8 +99,8 @@ function loadJackettSettings() {
doNotify(value, "danger", "glyphicon glyphicon-alert", false);
})
proxyWarning(data.proxy_url);
reloadIndexers();
proxyWarning(data.proxy_url);
});
}
@@ -222,12 +222,12 @@ function displayUnconfiguredIndexersList() {
doNotify("Configuration failed: " + data.error, "danger", "glyphicon glyphicon-alert");
}
}).fail(function (data) {
if(data.responseJSON.error !== undefined) {
doNotify("An error occured while configuring this indexer<br /><b>" + data.responseJSON.error + "</b><br /><i><a href=\"https://github.com/Jackett/Jackett/issues/new?title=[" + indexerId + "] " + data.responseJSON.error + " (Config)\" target=\"_blank\">Click here to open an issue on GitHub for this indexer.</a><i>", "danger", "glyphicon glyphicon-alert", false);
} else {
doNotify("An error occured while configuring this indexer, is Jackett server running ?", "danger", "glyphicon glyphicon-alert");
}
if(data.responseJSON.error !== undefined) {
var indexEnd = 2048 - "https://github.com/Jackett/Jackett/issues/new?title=[".length - indexerId.length - "] ".length - " (Config)".length; // keep url <= 2k #5104
doNotify("An error occured while configuring this indexer<br /><b>" + data.responseJSON.error.substring(0, indexEnd) + "</b><br /><i><a href=\"https://github.com/Jackett/Jackett/issues/new?title=[" + indexerId + "] " + data.responseJSON.error.substring(0, indexEnd) + " (Config)\" target=\"_blank\">Click here to open an issue on GitHub for this indexer.</a><i>", "danger", "glyphicon glyphicon-alert", false);
} else {
doNotify("An error occured while configuring this indexer, is Jackett server running ?", "danger", "glyphicon glyphicon-alert");
}
});
});
});
@@ -444,12 +444,13 @@ function testIndexer(id, notifyResult) {
doNotify("Test failed for " + id + ": \n" + data.error, "danger", "glyphicon glyphicon-alert");
}
}).fail(function (data) {
updateTestState(id, "error", data.error, indexers);
if(data.responseJSON.error !== undefined && notifyResult) {
doNotify("An error occured while testing this indexer<br /><b>" + data.responseJSON.error + "</b><br /><i><a href=\"https://github.com/Jackett/Jackett/issues/new?title=[" + id + "] " + data.responseJSON.error + " (Test)\" target=\"_blank\">Click here to open an issue on GitHub for this indexer.</a><i>", "danger", "glyphicon glyphicon-alert", false);
} else {
doNotify("An error occured while testing indexers, please take a look at indexers with failed test for more informations.", "danger", "glyphicon glyphicon-alert");
}
updateTestState(id, "error", data.error, indexers);
if(data.responseJSON.error !== undefined && notifyResult) {
var indexEnd = 2048 - "https://github.com/Jackett/Jackett/issues/new?title=[".length - id.length - "] ".length - " (Test)".length; // keep url <= 2k #5104
doNotify("An error occured while testing this indexer<br /><b>" + data.responseJSON.error.substring(0, indexEnd) + "</b><br /><i><a href=\"https://github.com/Jackett/Jackett/issues/new?title=[" + id + "] " + data.responseJSON.error.substring(0, indexEnd) + " (Test)\" target=\"_blank\">Click here to open an issue on GitHub for this indexer.</a><i>", "danger", "glyphicon glyphicon-alert", false);
} else {
doNotify("An error occured while testing indexers, please take a look at indexers with failed test for more informations.", "danger", "glyphicon glyphicon-alert");
}
});
}
@@ -651,11 +652,12 @@ function populateSetupForm(indexerId, name, config, caps, link, alternativesitel
doNotify("Configuration failed: " + data.error, "danger", "glyphicon glyphicon-alert");
}
}).fail(function (data) {
if(data.responseJSON.error !== undefined) {
doNotify("An error occured while updating this indexer<br /><b>" + data.responseJSON.error + "</b><br /><i><a href=\"https://github.com/Jackett/Jackett/issues/new?title=[" + indexerId + "] " + data.responseJSON.error + " (Config)\" target=\"_blank\">Click here to open an issue on GitHub for this indexer.</a><i>", "danger", "glyphicon glyphicon-alert", false);
} else {
doNotify("An error occured while updating this indexer, request to Jackett server failed, is server running ?", "danger", "glyphicon glyphicon-alert");
}
if(data.responseJSON.error !== undefined) {
var indexEnd = 2048 - "https://github.com/Jackett/Jackett/issues/new?title=[".length - indexerId.length - "] ".length - " (Config)".length; // keep url <= 2k #5104
doNotify("An error occured while updating this indexer<br /><b>" + data.responseJSON.error.substring(0, indexEnd) + "</b><br /><i><a href=\"https://github.com/Jackett/Jackett/issues/new?title=[" + indexerId + "] " + data.responseJSON.error.substring(0, indexEnd) + " (Config)\" target=\"_blank\">Click here to open an issue on GitHub for this indexer.</a><i>", "danger", "glyphicon glyphicon-alert", false);
} else {
doNotify("An error occured while updating this indexer, request to Jackett server failed, is server running ?", "danger", "glyphicon glyphicon-alert");
}
}).always(function () {
$goButton.html(originalBtnText);
$goButton.prop('disabled', false);
@@ -1229,8 +1231,11 @@ function bindUIButtons() {
}
function proxyWarning(input) {
if (input && input.trim() != "")
if (input != null && input.trim() !== "") {
$('#proxy-warning').show();
}
else
{
$('#proxy-warning').hide();
}
}

View File

@@ -19,7 +19,7 @@
<link rel="apple-touch-icon" sizes="180x180" href="../apple-touch-icon-180x180.png" />
<link rel="mask-icon" href="jackett_medium.png" color="#35c5f4">
<link rel="icon" type="image/ico" href="../favicon.ico" />
<link rel='shortcut icon' type='image/x-icon' href='../favicon.ico' />
<link rel='shortcut icon' type='image/x-icon' href='../favicon.ico?' />
<script type="text/javascript" src="../libs/filesize.min.js?changed=2017083001"></script>
<script type="text/javascript" src="../libs/jquery.min.js?changed=2017083001"></script>
<script type="text/javascript" src="../libs/jquery.dataTables.min.js?changed=2017083001" charset="utf8"></script>
@@ -34,8 +34,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="../custom.css?changed=20190331" media="only screen and (min-device-width: 480px)">
<link rel="stylesheet" type="text/css" href="../custom_mobile.css?changed=20190331" media="only screen and (max-device-width: 480px)">
<link rel="stylesheet" type="text/css" href="../custom.css?changed=20190401" media="only screen and (min-device-width: 480px)">
<link rel="stylesheet" type="text/css" href="../custom_mobile.css?changed=20190401" 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">
@@ -671,6 +671,6 @@
</script>
<script type="text/javascript" src="../libs/api.js?changed=2017083001"></script>
<script type="text/javascript" src="../custom.js?changed=20190331"></script>
<script type="text/javascript" src="../custom.js?changed=20190421"></script>
</body>
</html>

View File

@@ -60,7 +60,7 @@
- {id: 2, cat: Movies, desc: "Filmes: Terror"}
- {id: 1, cat: Movies, desc: "Filmes: Ação"}
- {id: 80, cat: Movies, desc: "Filmes: Aventura"}
- {id: 70, cat: Other, desc: "Fotos: XXX"}
- {id: 70, cat: XXX, desc: "Fotos: XXX"}
- {id: 79, cat: Console/PS4, desc: "Jogos: Ps4"}
- {id: 47, cat: PC/Games, desc: "Jogos: Pc"}
- {id: 61, cat: Console, desc: "Jogos: Emuladores e Roms"}
@@ -142,18 +142,18 @@
error:
- selector: div.alert-error
test:
path: index.php
path: torrents-search.php
selector: a[href="account-logout.php"]
ratio:
path: index.php
path: torrents-search.php
selector: li:contains("Ratio:") a b
search:
paths:
# http://amigos-share.club/torrents-search.php?search=&c1=1&c19=1&c36=1&incldead=0&freeleech=0&lang=0sort=id&order=desc&page=1
- path: torrents-search.php
# site displays just 21 results, no profile options found to change this, so we attempt to fetch 5 pages
# site displays just 9 results, no profile options found to change this, so we attempt to fetch 5 pages
- path: torrents-search.php
inputs:
page: 1
@@ -169,13 +169,13 @@
inputs:
$raw: "{{range .Categories}}c{{.}}=1&{{end}}"
search: "{{ .Keywords }}"
incldead: 0
incldead: 1
freeleech: 0
lang: 0
sort: "id"
order: "desc"
rows:
selector: table.table-striped > tbody > tr:has(a[href^="torrents-details.php?id="])
selector: div#fancy-list-group ul.list-group li.list-group-item
fields:
title:
selector: a[href^="torrents-details.php?id="]
@@ -186,7 +186,7 @@
selector: a[href^="download.php?id="]
attribute: href
category:
selector: td:first-child img
selector: div.list-group-item-addon img
attribute: src
case:
# unfortunately the site does not have category numbers on the results page, just a .png which can apply to both movies and tv.
@@ -207,7 +207,7 @@
"[src$=\"/E-books.png\"]": "67"
"[src$=\"/Revista.png\"]": "68"
"[src$=\"/Aventura.png\"]": "80"
"[src$=\"/XXX.png\"]": "70"
"[src$=\"/Revistas-XXX.png\"]": "70"
"[src$=\"/Jogos-Ps4.png\"]": "79"
"[src$=\"/Jogos-PC.png\"]": "47"
"[src$=\"/Jogos-EmuladoreseRoms.png\"]": "61"
@@ -293,14 +293,14 @@
date:
text: now
size:
selector: td:nth-child(2) span.label-info
selector: div.list-group-item-content p.m-0 span.badge-info
seeders:
selector: td:nth-child(4)
selector: div.list-group-item-controls a:nth-child(1)
leechers:
selector: td:nth-child(5)
selector: div.list-group-item-controls a:nth-child(2)
downloadvolumefactor:
case:
"span.label-success i:contains(\"FREE\")": "0"
"span.badge-success:contains(\"FREE\")": "0"
"*": "1"
uploadvolumefactor:
case:

View File

@@ -78,10 +78,10 @@
- name: downloadlink
type: select
label: Download link
default: "magnet:"
default: "magnet:?xt="
options:
"/download/" : ".torrent"
"magnet:": "magnet"
"/get/key:" : ".torrent"
"magnet:?xt=": "magnet"
login:
path: /
@@ -100,7 +100,7 @@
selector: a[href="/users/logout/"]
download:
selector: a[href^="{{ .Config.downloadlink }}"]
selector: a[href*="{{ .Config.downloadlink }}"]
search:
paths:

View File

@@ -25,10 +25,19 @@
inputs:
username: "{{ .Config.username }}"
password: "{{ .Config.password }}"
remember: 1
error:
- selector: form[action*="/login"] .text-red
- selector: div.has-error
test:
path: torrents
selector: a[href$="/logout"]
ratio:
path: torrents
selector: li:has(i.fa-sync-alt)
filters:
- name: regexp
args: "Ratio : (\\d+)"
search:
paths:
@@ -36,23 +45,24 @@
inputs:
$raw: "{{range .Categories}}categories[]={{.}}&{{end}}"
search: "{{if .Query.IMDBID}}{{else}}{{ .Keywords }}{{end}}"
description: ""
uploader: ""
imdb: "{{ .Query.IMDBIDShort }}"
tvdb: ""
tmdb: ""
mal: ""
sorting: created_at
direction: desc
sort: "created_at"
direction: "desc"
qty: 100
rows:
selector: table > tbody > tr
fields:
category:
selector: a[href*="/category/"]
selector: a[href*="/categories/"]
attribute: href
filters:
- name: regexp
args: "/category/.*?\\.(\\d+)"
args: "/categories/.*?\\.(\\d+)"
title:
selector: a.view-torrent
download:
@@ -61,17 +71,28 @@
details:
selector: a.view-torrent
attribute: href
banner:
optional: true
selector: div.torrent-poster img
attribute: src
filters:
- name: replace
args: ["https://via.placeholder.com/600x900", ""]
size:
selector: td:nth-child(5)
seeders:
selector: td:nth-child(7)
leechers:
selector: td:nth-child(8)
grabs:
selector: td:nth-child(6)
leechers:
selector: td:nth-child(7)
grabs:
selector: td:nth-child(8)
filters:
- name: regexp
args: ([\d\.]+)
imdb:
optional: true
selector: a[href*="www.imdb.com/title/tt"]
attribute: href
date:
selector: time
filters:
@@ -100,12 +121,17 @@
args: [" (ay|kuud|måneder|mesi|miesiące|meses|měsíce|месяца|месяцев|luni|meses|mois|Monaten|месеца|maanden)", "months"]
downloadvolumefactor:
case:
"i[data-original-title=\"100% Free\"]": "0" # Single Torrent Freeleech
"i[data-original-title=\"Personal Freeleech\"]": "0" # 24 Hour FreeLeech From BON Store
"i[data-original-title=\"Special Freeleech\"]": "0" # Special FreeLeech For Certain User Groups
"i[data-original-title=\"Freeleech Token\"]": "0" # Freeleech From Token
"i[data-original-title=\"Global FreeLeech\"]": "0" # Global Freeleech
"i[data-original-title=\"Freeleech\"]": "0" # Freeleech
"i[data-original-title=\"Featured\"]": "0" # Featured Torrent
"*": "1"
uploadvolumefactor:
case:
"i[data-original-title=\"Double upload\"]": "2" # Single Torrent Double Upload
"i[data-original-title=\"Double Upload\"]": "2" # Global Double Upload
"i[data-original-title=\"Double Upload\"]": "2" # Single Torrent Double Upload
"i[data-original-title=\"Global Double Upload\"]": "2" # Global Double Upload
"i[data-original-title=\"Featured\"]": "2" # Featured Torrent
"*": "1"
# UNIT3D
# UNIT3D 1.9.2

View File

@@ -240,8 +240,8 @@
selector: td a.gen
attribute: href
filters:
- name: querystring
args: f
- name: regexp
args: "=(\\d+)\\."
size:
selector: td a.tr-dl
seeders:
@@ -258,74 +258,35 @@
grabs:
optional: true
selector: td[title^="Replies"]
# date for English
# date for English, Russian, Ukrainian
date:
selector: td[title="Added"] p:last-of-type
optional: true
filters:
- name: dateparse
args: "2-01-06"
# date for Russian
date:
selector: td[title="Добавлен"] p:last-of-type
optional: true
selector: td[title="Added"] p:last-of-type, td[title="Добавлен"] p:last-of-type, td[title="Додано"] p:last-of-type
filters:
# replace month abbreviations
- name: replace
args: ["Янв", "Jan"]
- name: replace
args: ["Фев", "Feb"]
- name: replace
args: ["Мар", "Mar"]
- name: replace
args: ["Апр", "Apr"]
- name: replace
args: ["Май", "May"]
- name: replace
args: ["Июн", "Jun"]
- name: replace
args: ["Июл", "Jul"]
- name: replace
args: ["Авг", "Aug"]
- name: replace
args: ["Сен", "Sep"]
- name: replace
args: ["Окт", "Oct"]
- name: replace
args: ["Ноя", "Nov"]
- name: replace
args: ["Дек", "Dec"]
- name: dateparse
args: "2-Jan-06"
# date for Ukrainian
date:
selector: td[title="Додано"] p:last-of-type
optional: true
filters:
- name: replace
args: ["Січ", "Jan"]
- name: replace
args: ["Лют", "Feb"]
- name: replace
args: ["Бер", "Mar"]
- name: replace
args: ["Кві", "Apr"]
- name: replace
args: ["Травень", "May"]
- name: replace
args: ["Чер", "Jun"]
- name: replace
args: ["Лип", "Jul"]
- name: replace
args: ["Сер", "Aug"]
- name: replace
args: ["Вер", "Sep"]
- name: replace
args: ["Жов", "Oct"]
- name: replace
args: ["Лис", "Nov"]
- name: replace
args: ["Грудень", "Dec"]
- name: re_replace
args: ["Янв|Січ", "Jan"]
- name: re_replace
args: ["Фев|Лют", "Feb"]
- name: re_replace
args: ["Мар|Бер", "Mar"]
- name: re_replace
args: ["Апр|Кві", "Apr"]
- name: re_replace
args: ["Май|Травень", "May"]
- name: re_replace
args: ["Июн|Чер", "Jun"]
- name: re_replace
args: ["Июл|Лип", "Jul"]
- name: re_replace
args: ["Авг|Сер", "Aug"]
- name: re_replace
args: ["Сен|Вер", "Sep"]
- name: re_replace
args: ["Окт|Жов", "Oct"]
- name: re_replace
args: ["Ноя|Лис", "Nov"]
- name: re_replace
args: ["Дек|Грудень", "Dec"]
- name: dateparse
args: "2-Jan-06"
downloadvolumefactor:

View File

@@ -7,15 +7,16 @@
encoding: UTF-8
followredirect: true
links:
- http://btkitty.pet/
- https://btkittys.co/
legacylinks:
- https://cnbtkitty.org/
- http://cnbtkitty.org/
- https://cnbtkitty.com/
- http://cnbtkitty.com/
- https://cnbtkitty.me/
- http://cnbtkitty.me/
- http://cnbtkitty.ws/
- https://cnbtkitty.org/
- http://cnbtkitty.org/
- https://cnbtkitty.com/
- http://cnbtkitty.com/
- https://cnbtkitty.me/
- http://cnbtkitty.me/
- http://cnbtkitty.ws/
- http://btkitty.pet/
caps:
categorymappings:

View File

@@ -6,6 +6,8 @@
type: private
encoding: UTF-8
links:
- http://teamctgame.xyz/
legacylinks:
- https://teamctgame.co/
caps:

View File

@@ -6,6 +6,8 @@
type: private
encoding: UTF-8
links:
- https://casstudio.tk/
legacylinks:
- https://casstudio.tv/
caps:

View File

@@ -0,0 +1,62 @@
---
site: concen
name: ConCen
description: "ConCen (Conspiracy Central) is a Public conspiracy related torrent index"
language: en-us
type: public
encoding: UTF-8
links:
- https://concen.org/
caps:
categories:
1: Other
modes:
search: [q]
settings: []
search:
paths:
- path: "torrents/concen.org/content/ufos-extraterrestrials-and-classified-free-energy-pack"
inputs:
title_op: "allwords"
title: "{{.Keywords}}"
title_1_op: "not"
title_1: ""
seeds: "All"
rows:
selector: table > tbody > tr
fields:
title:
selector: td.views-field-title a
category:
text: 1
details:
selector: td.views-field-title a
attribute: href
download:
selector: td.views-field-field-torrent a
attribute: href
magnet:
selector: td.views-field-name a
attribute: href
filters:
- name: prepend
args: "magnet:"
date:
selector: td.views-field-created
size:
selector: td.views-field-size
seeders:
selector: td.views-field-seeds
leechers:
selector: td.views-field-peers
grabs:
selector: td.views-field-completed
downloadvolumefactor:
text: "0"
uploadvolumefactor:
text: "1"

View File

@@ -67,7 +67,9 @@
filters:
# now we put the date at the right place according scene naming rules using .Result.site_date
- name: replace
args: ["FRENCH", "{{ .Result.site_date }} FRENCH"]
args: [" FRENCH", " {{ .Result.site_date }} FRENCH"]
- name: replace
args: ["MULTI", "{{ .Result.site_date }} MULTI"]
- name: replace
args: ["TRUEFRENCH", "{{ .Result.site_date }} TRUEFRENCH"]
- name: replace

View File

@@ -16,21 +16,28 @@
categorymappings:
- {id: films, cat: Movies, desc: "Movies"}
- {id: series, cat: TV, desc: "TV"}
- {id: musique, cat: Audio, desc: "Music"}
- {id: ebook, cat: Books, desc: "Ebook"}
- {id: logiciels, cat: PC, desc: "Software"}
- {id: jeux-pc, cat: PC/Games, desc: "PC Games"}
- {id: jeux-consoles, cat: Console, desc: "Console Games"}
modes:
search: [q]
tv-search: [q, season, ep]
movie-search: [q]
settings: []
download:
selector: div#btn-download a
selector: div.btn-download a
attribute: href
search:
paths:
- path: "{{if .Keywords}}recherche/{{.Keywords}}{{else}}{{end}}"
rows:
selector: div#gauche > table > tbody > tr:has(a)
selector: table.table-corps > tbody > tr:has(a)
fields:
site_date:
selector: a
@@ -43,7 +50,9 @@
filters:
# now we put the date at the right place according scene naming rules using .Result.site_date
- name: replace
args: ["FRENCH", "{{ .Result.site_date }} FRENCH"]
args: [" FRENCH", " {{ .Result.site_date }} FRENCH"]
- name: replace
args: ["MULTI", "{{ .Result.site_date }} MULTI"]
- name: replace
args: ["TRUEFRENCH", "{{ .Result.site_date }} TRUEFRENCH"]
- name: replace
@@ -61,21 +70,21 @@
selector: div.poid
filters:
- name: re_replace
args: [ "\\.(\\d) Ko", "$1X00"]
args: [ "\\.(\\d)Ko", "$1X00"]
- name: re_replace
args: [ " Ko", "000"]
args: [ "Ko", "000"]
- name: re_replace
args: [ "\\.(\\d) Mo", "$1X00000"]
args: [ "\\.(\\d)Mo", "$1X00000"]
- name: re_replace
args: [ " Mo", "000000"]
args: [ "Mo", "000000"]
- name: re_replace
args: [ "\\.(\\d) Go", "$1X00000000"]
args: [ "\\.(\\d)Go", "$1X00000000"]
- name: re_replace
args: [ " Go", "000000000"]
args: [ "Go", "000000000"]
- name: re_replace
args: [ "\\.(\\d) To", "$1X00000000000"]
args: [ "\\.(\\d)To", "$1X00000000000"]
- name: re_replace
args: [ " To", "000000000000"]
args: [ "To", "000000000000"]
- name: replace
args: [ "X", "" ]
date:

View File

@@ -15,10 +15,11 @@
- {id: 3, cat: Audio, desc: "Music"}
- {id: 4, cat: TV/Anime, desc: "Anime"}
- {id: 5, cat: PC/0day, desc: "Apps"}
- {id: 6, cat: Books, desc: "Books"}
- {id: 6, cat: Books, desc: "eBooks"}
- {id: 7, cat: PC/Games, desc: "Games"}
- {id: 8, cat: TV/Sport, desc: "Sports"}
- {id: 9, cat: Other, desc: "Other"}
- {id: 9, cat: Other, desc: "Others"}
- {id: 10, cat: XXX, desc: "XXX"}
modes:
search: [q]
@@ -31,10 +32,19 @@
inputs:
username: "{{ .Config.username }}"
password: "{{ .Config.password }}"
remember: 1
error:
- selector: table.main:contains("Login Failed!")
- selector: div.has-error
test:
path: torrents
selector: a[href$="/logout"]
ratio:
path: torrents
selector: li:has(i.fa-sync-alt)
filters:
- name: regexp
args: "Ratio : (\\d+)"
search:
paths:
@@ -42,13 +52,14 @@
inputs:
$raw: "{{range .Categories}}categories[]={{.}}&{{end}}"
search: "{{if .Query.IMDBID}}{{else}}{{ .Keywords }}{{end}}"
description: ""
uploader: ""
imdb: "{{ .Query.IMDBIDShort }}"
tvdb: ""
tmdb: ""
mal: ""
sorting: created_at
direction: desc
sort: "created_at"
direction: "desc"
qty: 100
rows:
selector: table > tbody > tr
@@ -67,17 +78,28 @@
details:
selector: a.view-torrent
attribute: href
banner:
optional: true
selector: div.torrent-poster img
attribute: src
filters:
- name: replace
args: ["https://via.placeholder.com/600x900", ""]
size:
selector: td:nth-child(5)
seeders:
selector: td:nth-child(7)
leechers:
selector: td:nth-child(8)
grabs:
selector: td:nth-child(6)
leechers:
selector: td:nth-child(7)
grabs:
selector: td:nth-child(8)
filters:
- name: regexp
args: ([\d\.]+)
imdb:
optional: true
selector: a[href*="www.imdb.com/title/tt"]
attribute: href
date:
selector: time
filters:
@@ -106,12 +128,17 @@
args: [" (ay|kuud|måneder|mesi|miesiące|meses|měsíce|месяца|месяцев|luni|meses|mois|Monaten|месеца|maanden)", "months"]
downloadvolumefactor:
case:
"i[data-original-title=\"100% Free\"]": "0" # Single Torrent Freeleech
"i[data-original-title=\"Personal Freeleech\"]": "0" # 24 Hour FreeLeech From BON Store
"i[data-original-title=\"Special Freeleech\"]": "0" # Special FreeLeech For Certain User Groups
"i[data-original-title=\"Freeleech Token\"]": "0" # Freeleech From Token
"i[data-original-title=\"Global FreeLeech\"]": "0" # Global Freeleech
"i[data-original-title=\"Freeleech\"]": "0" # Freeleech
"i[data-original-title=\"Featured\"]": "0" # Featured Torrent
"*": "1"
uploadvolumefactor:
case:
"i[data-original-title=\"Double upload\"]": "2" # Single Torrent Double Upload
"i[data-original-title=\"Double Upload\"]": "2" # Global Double Upload
"i[data-original-title=\"Double Upload\"]": "2" # Single Torrent Double Upload
"i[data-original-title=\"Global Double Upload\"]": "2" # Global Double Upload
"i[data-original-title=\"Featured\"]": "2" # Featured Torrent
"*": "1"
# UNIT3D
# UNIT3D 1.9.2

View File

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

View File

@@ -6,6 +6,8 @@
type: public
encoding: UTF-8
links:
- https://www.ettv.to/
legacylinks:
- https://www.ettv.tv/
caps:

View File

@@ -0,0 +1,237 @@
---
site: focusx
name: FocusX
description: "FocusX is a RUSSIAN Public torrent site for MOVIES and TV"
language: re-RU
type: public
encoding: UTF-8
links:
- https://focu.sx/
caps:
categorymappings:
- {id: 111, cat: Movies, desc: "1922"}
- {id: 135, cat: Movies, desc: "Анон"}
- {id: 168, cat: Movies, desc: "Воспитательница"}
- {id: 10, cat: Movies, desc: "Мёд в голове"}
- {id: 16, cat: Movies, desc: "Малыш"}
- {id: 18, cat: Movies, desc: "Копенгаген"}
- {id: 19, cat: Movies, desc: "Заброшенный"}
- {id: 38, cat: Movies, desc: "Звёздные войны: Эпизод 7 Пробуждение силы"}
- {id: 42, cat: Movies, desc: "В лабиринте молчания"}
- {id: 44, cat: Movies, desc: "Женщина в золотом"}
- {id: 45, cat: Movies, desc: "Падение Лондона"}
- {id: 46, cat: Movies, desc: "Высотка"}
- {id: 49, cat: Movies, desc: "Капитан Америка: Гражданская война"}
- {id: 50, cat: Movies, desc: "Рыцарь кубков"}
- {id: 54, cat: Movies, desc: "Охотник: Война Зимы"}
- {id: 57, cat: Movies, desc: "Портниха"}
- {id: 60, cat: Movies, desc: "Бэтмен против Супермена: На заре справедливости"}
- {id: 61, cat: Movies, desc: "Комета"}
- {id: 64, cat: Movies, desc: "Зоотопия"}
- {id: 65, cat: Movies, desc: "В твоих глазах"}
- {id: 66, cat: Movies, desc: "Люди Икс: Апокалипсис"}
- {id: 67, cat: Movies, desc: "Потерянный Валентин"}
- {id: 70, cat: Movies, desc: "Припаркованные"}
- {id: 71, cat: Movies, desc: "Легенда о Тарзане"}
- {id: 72, cat: Movies, desc: "Пока я не исчезну"}
- {id: 73, cat: Movies, desc: "Механик: Воскрешение"}
- {id: 74, cat: Movies, desc: "Варкрафт"}
- {id: 76, cat: Movies, desc: "Гнилые кварталы"}
- {id: 80, cat: Movies, desc: "Приятные вибрации"}
- {id: 83, cat: Movies, desc: "Возмущение"}
- {id: 84, cat: Movies, desc: "Трейнспоттинг (На игле)"}
- {id: 85, cat: Movies, desc: "Тысячу раз 'спокойной ночи'"}
- {id: 90, cat: Movies, desc: "Дангал"}
- {id: 100, cat: TV, desc: "Смертельное оружие"}
- {id: 101, cat: TV, desc: "Гавайи 5-0"}
- {id: 102, cat: TV, desc: "Черный Список"}
- {id: 103, cat: TV, desc: "Нелюди"}
- {id: 106, cat: TV, desc: "Одаренные"}
- {id: 107, cat: TV, desc: "Теория большого взрыва"}
- {id: 108, cat: TV, desc: "Ходячие мертвецы"}
- {id: 109, cat: TV, desc: "Хроники Шаннары"}
- {id: 110, cat: TV, desc: "Порох"}
- {id: 112, cat: TV, desc: "Субура"}
- {id: 115, cat: TV, desc: "Безбожники"}
- {id: 116, cat: TV, desc: "Секретные Материалы"}
- {id: 118, cat: TV, desc: "Охотник за разумом"}
- {id: 119, cat: TV, desc: "Алиенист"}
- {id: 120, cat: TV, desc: "Ординатор"}
- {id: 121, cat: TV, desc: "Уэйко"}
- {id: 122, cat: TV, desc: "Американская история преступлений"}
- {id: 124, cat: TV, desc: "Бельвью"}
- {id: 126, cat: TV, desc: "Видоизменённый углерод"}
- {id: 128, cat: TV, desc: "Здесь и Сейчас"}
- {id: 129, cat: TV, desc: "Взлет"}
- {id: 130, cat: TV, desc: "Инстинкт"}
- {id: 131, cat: TV, desc: "Стартап"}
- {id: 133, cat: TV, desc: "Террор"}
- {id: 136, cat: TV, desc: "Мир Дикого Запада"}
- {id: 138, cat: TV, desc: "В пустыне смерти"}
- {id: 139, cat: TV, desc: "Дождь"}
- {id: 140, cat: TV, desc: "Страйк"}
- {id: 141, cat: TV, desc: "Безопасность"}
- {id: 143, cat: TV, desc: "Подлый пит"}
- {id: 144, cat: TV, desc: "Голиаф"}
- {id: 146, cat: TV, desc: "Весьма Английский Скандал"}
- {id: 147, cat: TV, desc: "Королева Сахара"}
- {id: 155, cat: TV, desc: "Наследники"}
- {id: 156, cat: TV, desc: "Джек Райан"}
- {id: 158, cat: TV, desc: "Леденящие кровь приключения Сабрины"}
- {id: 161, cat: TV, desc: "Частные сыщики"}
- {id: 162, cat: TV, desc: "Изнанка дела"}
- {id: 163, cat: TV, desc: "Наркос: Мексика"}
- {id: 164, cat: TV, desc: "Возвращение домой"}
- {id: 165, cat: TV, desc: "Метод Комински"}
- {id: 166, cat: TV, desc: "Элита"}
- {id: 167, cat: TV, desc: "Грязный Джон"}
- {id: 169, cat: TV, desc: "Романовы"}
- {id: 170, cat: TV, desc: "Страна приливов"}
- {id: 171, cat: TV, desc: "Тюрьма Оз"}
- {id: 172, cat: TV, desc: "Смертельный класс"}
- {id: 173, cat: TV, desc: "Парфюм"}
- {id: 174, cat: TV, desc: "Цветочный дом"}
- {id: 175, cat: TV, desc: "Каратель"}
- {id: 176, cat: TV, desc: "Матрёшка"}
- {id: 177, cat: TV, desc: "Берлинская резидентура"}
- {id: 178, cat: TV, desc: "Настоящий Детектив"}
- {id: 179, cat: TV, desc: "Половое Просвещение"}
- {id: 180, cat: TV, desc: "АКАДЕМИЯ АМБРЕЛЛА"}
- {id: 181, cat: TV, desc: "Сорвиголова"}
- {id: 182, cat: TV, desc: "Мистер Посредник"}
- {id: 9, cat: TV, desc: "Иерихон"}
- {id: 11, cat: TV, desc: "11-22-63"}
- {id: 12, cat: TV, desc: "Апокалипсис: Первая мировая война"}
- {id: 13, cat: TV, desc: "Смерть в раю"}
- {id: 14, cat: TV, desc: "Джереми Кларксон: Военные истории"}
- {id: 15, cat: TV, desc: "Чёрные паруса"}
- {id: 17, cat: TV, desc: "Карточный домик"}
- {id: 37, cat: TV, desc: "Джек Айриш"}
- {id: 39, cat: TV, desc: "Чужестранка"}
- {id: 40, cat: TV, desc: "Девушка по вызову"}
- {id: 41, cat: TV, desc: "Джереми Кларксон: Триллер"}
- {id: 43, cat: TV, desc: "Игра престолов"}
- {id: 47, cat: TV, desc: "Острые козырьки"}
- {id: 48, cat: TV, desc: "Странная парочка"}
- {id: 51, cat: TV, desc: "Проповедник"}
- {id: 52, cat: TV, desc: "Изгой"}
- {id: 53, cat: TV, desc: "Рэй Донован"}
- {id: 55, cat: TV, desc: "Оранжевый - хит сезона"}
- {id: 56, cat: TV, desc: "Бесстыдники"}
- {id: 58, cat: TV, desc: "Мистер Робот"}
- {id: 59, cat: TV, desc: "Валландер"}
- {id: 62, cat: TV, desc: "Штамм"}
- {id: 63, cat: TV, desc: "Куорри"}
- {id: 68, cat: TV, desc: "Бесстыжие"}
- {id: 69, cat: TV, desc: "Нарко"}
- {id: 75, cat: TV, desc: "Все схвачено"}
- {id: 77, cat: TV, desc: "Граница"}
- {id: 79, cat: TV, desc: "Бош"}
- {id: 81, cat: TV, desc: "Викинги"}
- {id: 82, cat: TV, desc: "Салем"}
- {id: 86, cat: TV, desc: "Кровавая Гонка"}
- {id: 87, cat: TV, desc: "Сеньор Авила"}
- {id: 88, cat: TV, desc: "Стрелок"}
- {id: 89, cat: TV, desc: "Миднайт Техас"}
- {id: 91, cat: TV, desc: "Утиные Истории"}
- {id: 96, cat: TV, desc: "Двойка"}
- {id: 97, cat: TV, desc: "Тик-герой"}
modes:
search: [q]
settings: []
search:
paths:
# https://focu.sx/tracker/search?freeleech=0&query=daredevil
- path: "{{if .Keywords}}tracker/search?freeleech=0&query={{.Keywords}}{{else}}tracker/{{end}}"
followredirect: true
rows:
selector: ol.torrentListItems li.torrentListItem
fields:
title:
selector: div.name div.titleText h3 a
details:
selector: div.name div.titleText h3 a
attribute: href
filters:
- name: prepend
args: "{{ .Config.sitelink }}"
category:
selector: div.torrentCategory a
attribute: href
filters:
- name: querystring
args: category_id
download:
selector: div.download a
attribute: href
filters:
- name: prepend
args: "{{ .Config.sitelink }}"
magnet:
selector: div.download a[href^="magnet:?"]
attribute: href
date:
selector: div.name div.titleText div.secondRow div span
attribute: title
# 7 мар 2019 в 21:06
filters:
- name: replace
args: [" в ", " "]
- name: replace
args: ["янв", "Jan"]
- name: replace
args: ["фев", "Feb"]
- name: replace
args: ["мар", "Mar"]
- name: replace
args: ["апр", "Apr"]
- name: replace
args: ["май", "May"]
- name: replace
args: ["июн", "Jun"]
- name: replace
args: ["июл", "Jul"]
- name: replace
args: ["авг", "Aug"]
- name: replace
args: ["сен", "Sep"]
- name: replace
args: ["окт", "Oct"]
- name: replace
args: ["ноя", "Nov"]
- name: replace
args: ["дек", "Dec"]
- name: dateparse
args: "2 Jan 2006 15:04"
size:
selector: div.size
filters:
- name: replace
args: [".", ""]
- name: replace
args: [",", "."]
- name: replace
args: ["ТБ", "TB"]
- name: replace
args: ["ГБ", "GB"]
- name: replace
args: ["МБ", "MB"]
- name: replace
args: ["КБ", "KB"]
grabs:
selector: div.snatched
seeders:
selector: div.seeders
leechers:
selector: div.leechers
downloadvolumefactor:
case:
"div.name div.titleText h3 span:contains(\"Золото\")": "0"
"*": "1"
uploadvolumefactor:
text: "1"

View File

@@ -16,6 +16,7 @@
modes:
search: [q]
music-search: [q, album, artist, label, year]
login:
path: login.php
@@ -32,7 +33,7 @@
paths:
- path: browse.php
inputs:
search: "{{ .Query.Keywords }}"
search: "{{if .Query.Artist}}{{ .Query.Artist }}{{else}}{{ .Keywords }}{{end}}"
showsearch: "1"
incldead: "1"
rows:

View File

@@ -51,7 +51,7 @@
modes:
search: [q]
tv-search: [q, season, ep]
music-search: [q, album, artist, label, year]
login:
path: takelogin.php
@@ -69,7 +69,7 @@
- path: browse.php
inputs:
#$raw: "{{range .Categories}}c{{.}}=1&{{end}}"
search: "{{ .Query.Keywords }}"
search: "{{if .Query.Artist}}{{ .Query.Artist }}{{else}}{{ .Keywords }}{{end}}"
incldead: 1
rows:
selector: table.mainouter > tbody > tr > td.outer > table > tbody > tr.mouse_out

View File

@@ -63,7 +63,9 @@
filters:
# now we put the date at the right place according scene naming rules using .Result.site_date
- name: replace
args: ["FRENCH", "{{ .Result.site_date }} FRENCH"]
args: [" FRENCH", " {{ .Result.site_date }} FRENCH"]
- name: replace
args: ["MULTI", "{{ .Result.site_date }} MULTI"]
- name: replace
args: ["TRUEFRENCH", "{{ .Result.site_date }} TRUEFRENCH"]
- name: replace

View File

@@ -1,165 +0,0 @@
---
site: gods
name: GODS
description: "GODS is a German Private site for TV / MOVIES / GENERAL"
language: de-de
type: private
encoding: windows-1252
links:
- https://gods.lu/
caps:
categorymappings:
# Movie
- {id: 132, cat: Movies/BluRay, desc: "BluRay"}
- {id: 146, cat: Movies/HD, desc: "Remux"}
- {id: 186, cat: Movies/UHD, desc: "UHD"}
- {id: 189, cat: Movies/HD, desc: "HD"}
- {id: 190, cat: Movies/SD, desc: "SD"}
- {id: 20, cat: Movies/DVD, desc: "DVD"}
- {id: 131, cat: Movies/3D, desc: "3D"}
- {id: 16, cat: Movies, desc: "Packs"}
# Serien
- {id: 187, cat: TV/UHD, desc: "Staffeln UHD"}
- {id: 173, cat: TV/HD, desc: "Staffeln HD"}
- {id: 133, cat: TV/SD, desc: "Staffeln SD"}
- {id: 188, cat: TV/UHD, desc: "Folgen UHD"}
- {id: 174, cat: TV/HD, desc: "Folgen HD"}
- {id: 7, cat: TV/SD, desc: "Folgen SD"}
# Doku
- {id: 152, cat: TV/Documentary, desc: "HD"}
- {id: 153, cat: TV/Documentary, desc: "SD"}
# Spiele
- {id: 4, cat: PC/Games, desc: "Windows"}
- {id: 29, cat: Console/XBox360, desc: "XBOX 360"}
- {id: 126, cat: Console/Wii, desc: "Wii"}
- {id: 183, cat: Console/Wii, desc: "Wii U"}
- {id: 128, cat: Console/PS3, desc: "PS3"}
- {id: 154, cat: Console/Other, desc: "Andere"}
# Musik
- {id: 6, cat: Audio, desc: "Alben"}
- {id: 139, cat: Audio/Lossless, desc: "Lossless"}
- {id: 177, cat: Audio, desc: "Singles"}
- {id: 157, cat: Audio, desc: "Charts"}
- {id: 192, cat: Audio, desc: "Packs"}
- {id: 161, cat: Audio/Video, desc: "Video"}
- {id: 22, cat: PC/0day, desc: "Windows"}
- {id: 129, cat: PC/Mac, desc: "Mac OS"}
- {id: 164, cat: PC/0day, desc: "Linux"}
- {id: 124, cat: PC/Phone-Android, desc: "Android"}
- {id: 165, cat: PC/Phone-IOS, desc: "Apple iOS"}
- {id: 167, cat: PC/Phone-Other, desc: "Andere"}
# Sport
- {id: 130, cat: TV/Sport, desc: "HD"}
- {id: 135, cat: TV/Sport, desc: "SD"}
# International
- {id: 170, cat: Movies/Foreign, desc: "Filme HD"}
- {id: 134, cat: Movies/Foreign, desc: "Filme SD"}
- {id: 171, cat: TV/Foreign, desc: "Folgen HD"}
- {id: 172, cat: TV/Foreign, desc: "Folgen SD"}
# Sonstiges
- {id: 28, cat: TV/Anime, desc: "Anime"}
- {id: 13, cat: Books, desc: "e-Book"}
- {id: 11, cat: Audio/Audiobook, desc: "Hören"}
- {id: 136, cat: Other, desc: "Bilder"}
- {id: 9, cat: Other, desc: "Tutorial"}
- {id: 178, cat: Other, desc: "Anderes"}
modes:
search: [q]
tv-search: [q, season, ep]
movie-search: [q]
settings:
- name: pin
type: text
label: Pin
- name: username
type: text
label: Username
- name: password
type: password
label: Password
login:
path: login/
method: form
form: form
inputs:
username: "{{ .Config.username }}"
password: "{{ .Config.password }}"
pin: "{{ .Config.pin }}"
test:
path: browse.php
search:
paths:
- path: browse.php
inputs:
$raw: "{{range .Categories}}c{{.}}=1&{{end}}"
search: "{{ .Query.Keywords }}"
intitle: "1"
incldead: "1"
team: "0"
orderby: "added"
sort: desc
rows:
selector: table.tableinborder > tbody > tr:has(a[href^="details.php"])
fields:
title:
selector: a[href^="details.php"]
banner:
selector: a[href^="details.php"] > span > img
attribute: src
category:
selector: a[href^="browse.php?cat="]
attribute: href
filters:
- name: querystring
args: cat
details:
selector: a[href^="details.php"]
attribute: href
comments:
selector: a[href*="&tocomm="]
attribute: href
download:
selector: a[href^="download.php"]
attribute: href
files:
selector: td:nth-child(2) > table > tbody > tr:nth-child(2) > td:nth-child(1) > b:nth-child(2)
grabs:
selector: td:nth-child(2) > table > tbody > tr:nth-child(2) > td:nth-child(3) > b:nth-child(1)
size:
selector: td:nth-child(2) > table > tbody > tr:nth-child(2) > td:nth-child(1) > b:nth-child(1)
filters:
- name: replace
args: [".", ""]
- name: replace
args: [",", "."]
seeders:
selector: td:nth-child(2) > table > tbody > tr:nth-child(2) > td:nth-child(3) > b:nth-child(1)
leechers:
selector: td:nth-child(2) > table > tbody > tr:nth-child(2) > td:nth-child(3) > b:nth-child(3)
date:
selector: td:nth-child(2) > table > tbody > tr:nth-child(2) > td:nth-child(6)
filters:
- name: replace
args: ["\xA0", " "]
- name: dateparse
args: "02.01.2006 15:04:05"
downloadvolumefactor:
case:
img[alt="onlyupload"]: "0"
"*": "1"
uploadvolumefactor:
case:
"*": "1"

View File

@@ -1,123 +0,0 @@
---
site: hdplus
name: HDplus
description: "HDplus is Private Torrent Tracker for MOVIES / TV / MUSIC"
language: en-us
type: private
encoding: UTF-8
links:
- https://hdplus.xyz/
caps:
categorymappings:
- {id: 1, cat: Movies, desc: "Movies"}
- {id: 2, cat: TV, desc: "TV"}
- {id: 3, cat: Audio, desc: "Music"}
modes:
search: [q, imdbid]
tv-search: [q, season, ep, imdbid]
movie-search: [q, imdbid]
login:
path: login
method: form
inputs:
username: "{{ .Config.username }}"
password: "{{ .Config.password }}"
remember: 1
selectorinputs:
_token:
selector: meta[name="csrf-token"]
attribute: content
error:
- selector: form[action$="/login"] .text-red
test:
path: /
selector: a[href$="/logout"]
ratio:
path: /
selector: span:has(i.fa-sync-alt)
filters:
- name: regexp
args: "Ratio : (\\d+)"
search:
paths:
- path: filterTorrents
inputs:
$raw: "{{range .Categories}}categories[]={{.}}&{{end}}"
search: "{{if .Query.IMDBID}}{{else}}{{ .Keywords }}{{end}}"
uploader: ""
imdb: "{{ .Query.IMDBIDShort }}"
tvdb: ""
tmdb: ""
sort: created_at
direction: desc
qty: 100
rows:
selector: table > tbody > tr
fields:
category:
selector: a[href*="/categories/"]
attribute: href
filters:
- name: regexp
args: "/categories/.*?\\.(\\d+)"
title:
selector: a.view-torrent
download:
selector: a[href*="/download/"]
attribute: href
details:
selector: a.view-torrent
attribute: href
size:
selector: td:nth-child(5)
seeders:
selector: td:nth-child(7)
leechers:
selector: td:nth-child(8)
grabs:
selector: td:nth-child(6)
filters:
- name: regexp
args: ([\d\.]+)
date:
selector: time
filters:
# translations for Turkish|Estonian|Danish|Italian|Polish|Norwegian|Portoguese|Czech|Russian|Romanian|Spanish|French|German|Bulgarian|Dutch
- name: re_replace
args: ["(önce|tagasi|geleden|fa|temu|siden|atrás|nazpět|назад|acum|hace|il y a|vor|преди)", "ago"]
- name: re_replace
args: ["(dakika|minut|minuto|minuta|minutt|минута|Minute|minuut)", "minute"]
- name: re_replace
args: ["(dakika|minutit|minutter|minuti|minuty|minutos|минуты|минут|Minuten|минути|minuten)", "minutes"]
- name: re_replace
args: ["(saat|tund|time|ora|godzina|hora|hodina|час|oră|heure|Stunde|uur)", "hour"]
- name: re_replace
args: ["(saat|tundi|timer|ore|godziny|horas|hodiny|hoden|часа|часов|ore|heures|Stunden)", "hours"]
- name: re_replace
args: ["(gün|päev|dag|giorno|dzień|dia|den|день|zi|día|jour|Tag|ден)", "day"]
- name: re_replace
args: ["(gün|päeva|dage|giorni|dni|dias|dny|дня|дней|zile|días|jours|Tagen|дни|dagen)", "days"]
- name: re_replace
args: ["(hafta|nädal|uge|settimana|tydzień|uke|semana|týden|неделю|săptămână|semaine|Woche|седмица)", "week"]
- name: re_replace
args: ["(hafta|nädalat|uger|settimane|tygodnie|uker|semanas|týdny|недели|недель|săptămâni|semaines|Wochen|седмици|weken)", "weeks"]
- name: re_replace
args: [" (ay|kuu|måned|mese|miesiąc|mês|měsíc|месяц|lună|mes|mois|Monat|месец|maand)", "month"]
- name: re_replace
args: [" (ay|kuud|måneder|mesi|miesiące|meses|měsíce|месяца|месяцев|luni|meses|mois|Monaten|месеца|maanden)", "months"]
downloadvolumefactor:
case:
"i[data-original-title=\"100% Free\"]": "0" # Single Torrent Freeleech
"i[data-original-title=\"Global freeleech\"]": "0" # Global Freeleech
"*": "1"
uploadvolumefactor:
case:
"i[data-original-title=\"Double upload\"]": "2" # Single Torrent Double Upload
"i[data-original-title=\"Double Upload\"]": "2" # Global Double Upload
"*": "1"
# UNIT3D

View File

@@ -46,14 +46,14 @@
movie-search: [q, imdbid]
login:
path: takelogin.php
path: login.php
method: post
inputs:
username: "{{ .Config.username }}"
password: "{{ .Config.password }}"
notsecure: "1"
error:
- selector: div.login_error_content
- selector: div.login_error_content_text
test:
path: browse.php

View File

@@ -26,6 +26,7 @@
modes:
search: [q]
tv-search: [q, season, ep]
music-search: [q, album, artist, label, year]
login:
path: login.php
@@ -49,7 +50,7 @@
- path: torrents.php
inputs:
$raw: "{{range .Categories}}filter_cat[{{.}}]=1&{{end}}"
searchstr: "{{ .Query.Keywords }}"
searchstr: "{{if .Query.Artist}}{{ .Query.Artist }}{{else}}{{ .Keywords }}{{end}}"
order_by: time
order_way: desc
action: basic

View File

@@ -7,8 +7,11 @@
encoding: UTF-8
followredirect: true
links:
- https://kikibt.cc/
- https://kikibt.pw/
legacylinks:
- https://kikibt.me/
- http://kikibt.pw/
- https://kikibt.cc/
caps:
categorymappings:

View File

@@ -86,6 +86,10 @@
inputs:
uid: "{{ .Config.username }}"
pwd: "{{ .Config.password }}"
captcha:
type: image
selector: img[src^="access_code/"]
input: private_key
error:
- selector: tr td span[style="color:#FF0000;"]
test:

View File

@@ -14,7 +14,7 @@
modes:
search: [q]
tv-search: [q, season, ep]
music-search: [q, album, artist, label, year]
login:
path: takelogin.php
@@ -32,7 +32,7 @@
paths:
- path: browse.php
inputs:
search: "{{ .Query.Keywords }}"
search: "{{if .Query.Artist}}{{ .Query.Artist }}{{else}}{{ .Keywords }}{{end}}"
t: "all"
rows:
selector: div#releases-table > table > tbody > tr:has(a.browselink)

View File

@@ -1,9 +1,9 @@
---
site: megabliz
name: Mega-Bliz
description: "Mega-Bliz is a Semi-Private site for MOVIES / TV / GENERAL"
description: "Mega-Bliz is a Private site for MOVIES / TV / GENERAL"
language: en-us
type: semi-private
type: private
encoding: UTF-8
links:
- https://mega-bliz.nl/

View File

@@ -12,55 +12,55 @@
categorymappings:
- {id: 17, cat: Movies/Other, desc: "VCD/SVCD - SVCD/VCD"}
- {id: 78, cat: Movies/Other, desc: "VCD/SVCD - Estrenos VCD/SVCD"}
- {id: 14, cat: Movies/SD, desc: "XVID - Series"}
- {id: 45, cat: Movies/SD, desc: "XVID - Animación"}
- {id: 46, cat: Movies/SD, desc: "XVID - Deportes"}
- {id: 47, cat: Movies/SD, desc: "XVID - Documentales"}
- {id: 14, cat: TV/SD, desc: "XVID - Series"}
- {id: 45, cat: TV/Anime, desc: "XVID - Animación"}
- {id: 46, cat: TV/Sport, desc: "XVID - Deportes"}
- {id: 47, cat: TV/Documentary, desc: "XVID - Documentales"}
- {id: 33, cat: Movies/SD, desc: "XVID - Estrenos"}
- {id: 48, cat: Movies/SD, desc: "XVID - Películas"}
- {id: 114, cat: Movies/SD, desc: "XVID - Estrenos BajaCalidad"}
- {id: 12, cat: Movies/SD, desc: "XVID - Adulto (+18)"}
- {id: 51, cat: Movies/SD, desc: "XVID - Música"}
- {id: 37, cat: Movies/DVD, desc: "DVD - Animación"}
- {id: 38, cat: Movies/DVD, desc: "DVD - Deportes"}
- {id: 39, cat: Movies/DVD, desc: "DVD - Documentales"}
- {id: 12, cat: XXX/XviD, desc: "XVID - Adulto (+18)"}
- {id: 51, cat: Audio/Video, desc: "XVID - Música"}
- {id: 37, cat: TV/Anime, desc: "DVD - Animación"}
- {id: 38, cat: TV/Sport, desc: "DVD - Deportes"}
- {id: 39, cat: TV/Documentary, desc: "DVD - Documentales"}
- {id: 40, cat: Movies/DVD, desc: "DVD - Películas"}
- {id: 41, cat: Movies/DVD, desc: "DVD - Series"}
- {id: 42, cat: Movies/DVD, desc: "DVD - Adulto (+18)"}
- {id: 43, cat: Movies/DVD, desc: "DVD - Música"}
- {id: 106, cat: Movies/HD, desc: "HDRip - Animación"}
- {id: 107, cat: Movies/HD, desc: "HDRip - Deportes"}
- {id: 108, cat: Movies/HD, desc: "HDRip - Documentales"}
- {id: 41, cat: TV/SD, desc: "DVD - Series"}
- {id: 42, cat: XXX/DVD, desc: "DVD - Adulto (+18)"}
- {id: 43, cat: Audio/Video, desc: "DVD - Música"}
- {id: 106, cat: TV/Anime, desc: "HDRip - Animación"}
- {id: 107, cat: TV/Sport, desc: "HDRip - Deportes"}
- {id: 108, cat: TV/Documentary, desc: "HDRip - Documentales"}
- {id: 109, cat: Movies/HD, desc: "HDRip - Películas"}
- {id: 110, cat: Movies/HD, desc: "HDRip - Series"}
- {id: 112, cat: Movies/HD, desc: "HDRip - Adulto (+18)"}
- {id: 111, cat: Movies/HD, desc: "HDRip - Música"}
- {id: 117, cat: Movies/3D, desc: "3D - Animación"}
- {id: 118, cat: Movies/3D, desc: "3D - Deportes"}
- {id: 119, cat: Movies/3D, desc: "3D - Documentales"}
- {id: 110, cat: TV/HD, desc: "HDRip - Series"}
- {id: 112, cat: XXX/x264, desc: "HDRip - Adulto (+18)"}
- {id: 111, cat: Audio/Video, desc: "HDRip - Música"}
- {id: 117, cat: TV/Anime, desc: "3D - Animación"}
- {id: 118, cat: TV/Sport, desc: "3D - Deportes"}
- {id: 119, cat: TV/Documentary, desc: "3D - Documentales"}
- {id: 120, cat: Movies/3D, desc: "3D - Películas"}
- {id: 121, cat: Movies/3D, desc: "3D - Adulto (+18)"}
- {id: 126, cat: Movies/HD, desc: "Micro HD - Animación"}
- {id: 127, cat: Movies/HD, desc: "Micro HD - Deportes"}
- {id: 128, cat: Movies/HD, desc: "Micro HD - Documentales"}
- {id: 121, cat: XXX, desc: "3D - Adulto (+18)"}
- {id: 126, cat: TV/Anime, desc: "Micro HD - Animación"}
- {id: 127, cat: TV/Sport, desc: "Micro HD - Deportes"}
- {id: 128, cat: TV/Documentary, desc: "Micro HD - Documentales"}
- {id: 57, cat: Movies/HD, desc: "Micro HD - Películas"}
- {id: 124, cat: Movies/HD, desc: "Micro HD - Series"}
- {id: 129, cat: Movies/HD, desc: "Micro HD - Adulto"}
- {id: 130, cat: Movies/HD, desc: "Micro HD - Música"}
- {id: 53, cat: Movies/HD, desc: "HD - Animación"}
- {id: 54, cat: Movies/HD, desc: "HD - Deportes"}
- {id: 55, cat: Movies/HD, desc: "HD - Documentales"}
- {id: 124, cat: TV/HD, desc: "Micro HD - Series"}
- {id: 129, cat: XXX/x264, desc: "Micro HD - Adulto"}
- {id: 130, cat: Audio/Video, desc: "Micro HD - Música"}
- {id: 53, cat: TV/Anime, desc: "HD - Animación"}
- {id: 54, cat: TV/Sport, desc: "HD - Deportes"}
- {id: 55, cat: TV/Documentary, desc: "HD - Documentales"}
- {id: 56, cat: Movies/HD, desc: "HD - BDrip/BDremux/FullBD"}
- {id: 58, cat: Movies/HD, desc: "HD - WEB-DL/Line Dubbed"}
- {id: 59, cat: Movies/HD, desc: "HD - Series"}
- {id: 63, cat: Movies/HD, desc: "HD - Adulto (+18)"}
- {id: 61, cat: Movies/HD, desc: "HD - Música"}
- {id: 136, cat: Movies/UHD, desc: "UHD - Animación"}
- {id: 137, cat: Movies/UHD, desc: "UHD - Deportes"}
- {id: 138, cat: Movies/UHD, desc: "UHD - Documentales"}
- {id: 59, cat: TV/HD, desc: "HD - Series"}
- {id: 63, cat: XXX/x264, desc: "HD - Adulto (+18)"}
- {id: 61, cat: Audio/Video, desc: "HD - Música"}
- {id: 136, cat: TV/Anime, desc: "UHD - Animación"}
- {id: 137, cat: TV/Sport, desc: "UHD - Deportes"}
- {id: 138, cat: TV/Documentary, desc: "UHD - Documentales"}
- {id: 139, cat: Movies/UHD, desc: "UHD - Películas"}
- {id: 140, cat: Movies/UHD, desc: "UHD - Series"}
- {id: 141, cat: Movies/UHD, desc: "UHD - Adulto (+18)"}
- {id: 140, cat: TV/UHD, desc: "UHD - Series"}
- {id: 141, cat: XXX/x264, desc: "UHD - Adulto (+18)"}
- {id: 69, cat: Audio/MP3, desc: "MP3"}
- {id: 70, cat: Audio/Lossless, desc: "FLAC"}
- {id: 71, cat: Audio/Other, desc: "Otros Formatos"}

View File

@@ -53,8 +53,9 @@
- path: filterTorrents
inputs:
search: "{{ .Keywords }}"
description: ""
uploader: ""
sort: created_at
sorting: created_at
direction: desc
qty: 100
rows:
@@ -80,6 +81,9 @@
selector: div.bouton-s
leechers:
selector: div.bouton-l
grabs:
selector: div.bouton-c
date:
selector: div.col-detail div.row div span
filters:
@@ -97,8 +101,10 @@
args: " ago"
downloadvolumefactor:
case:
"span.badge-extra:contains('Freeleech')" : "0"
"*": "1"
uploadvolumefactor:
case:
"span.badge-extra:contains('Double Upload')" : "2"
"*": "1"
# UNIT3D

View File

@@ -14,7 +14,7 @@
modes:
search: [q]
tv-search: [q, season, ep]
music-search: [q, album, artist, label, year]
login:
path: takelogin.php
@@ -31,7 +31,7 @@
paths:
- path: browse.php
inputs:
search: "{{ .Query.Keywords }}"
search: "{{if .Query.Artist}}{{ .Query.Artist }}{{else}}{{ .Keywords }}{{end}}"
incldead: 1
rows:
selector: table#ct > tbody > tr.torrent_row

View File

@@ -6,9 +6,9 @@
type: public
encoding: UTF-8
links:
- https://www.skytorrents.to/
legacylinks:
- https://www.skytorrents.lol/
legacylinks:
- https://www.skytorrents.to/
caps:
categories:
@@ -29,23 +29,23 @@
movie-search: [q]
settings:
- name: btdb.eu-links
- name: itorrents-links
type: checkbox
label: Add download links via btdb.eu
label: Add download links via itorrents.org
default: true
- name: info
type: info
label: btdb.eu Note
default: Without the btdb.eu option only magnet links will be provided.
label: ITorrents Note
default: Without the itorrents option only magnet links will be provided.
search:
# https://www.skytorrents.lol/?search=mr+mercedes+s02e05&sort=created
# https://www.skytorrents.lol/?query=mr+mercedes+s02e05&sort=created
# https://www.skytorrents.lol/top100
paths:
- path: "{{ if .Keywords }}?search={{ .Keywords }}&sort=created{{else}}top100{{end}}"
- path: "{{ if .Keywords }}?search={{ .Keywords }}&sort=created&page=2{{else}}{{end}}"
- path: "{{ if .Keywords }}?search={{ .Keywords }}&sort=created&page=3{{else}}{{end}}"
- path: "{{ if .Keywords }}?search={{ .Keywords }}&sort=created&page=4{{else}}{{end}}"
- path: "{{ if .Keywords }}?query={{ .Keywords }}&sort=created{{else}}top100{{end}}"
- path: "{{ if .Keywords }}?query={{ .Keywords }}&sort=created&page=2{{else}}{{end}}"
- path: "{{ if .Keywords }}?query={{ .Keywords }}&sort=created&page=3{{else}}{{end}}"
- path: "{{ if .Keywords }}?query={{ .Keywords }}&sort=created&page=4{{else}}{{end}}"
rows:
selector: tr.result
fields:
@@ -62,11 +62,11 @@
details:
selector: td a
attribute: href
download-btdb.eu:
selector: a[href^="//btdb.eu"]
download-itorrents:
selector: a[href^="//itorrents"]
attribute: href
download:
text: "{{if .Config.btdb.eu-links}}{{ .Result.download-btdb.eu }}{{else}}{{end}}"
text: "{{if .Config.itorrents-links}}{{ .Result.download-itorrents }}{{else}}{{end}}"
magnet:
selector: a[href^="magnet:?"]
attribute: href

View File

@@ -0,0 +1,130 @@
---
site: soundpark
name: SoundPark
description: "SoundPark Semi-Private RUSSIAN site dedicated to MUSIC."
language: ru-RU
type: semi-private
encoding: UTF-8
links:
- https://soundpark-club.com/
- https://soundpark-club.casa/
caps:
categories:
"Music": Audio
modes:
search: [q]
music-search: [q, album, artist, label, year]
login:
path: login
method: form
form: form[action="/login"]
inputs:
username: "{{ .Config.username }}"
password: "{{ .Config.password }}"
returnto: ""
error:
- selector: div.stdmsg_text
test:
path: /
selector: a[href="/logout"]
download:
selector: a[href^="/album/download-torrent/"]
search:
paths:
- path: "{{if .Keywords}}search{{else}}music{{end}}"
inputs:
q: "{{if .Query.Artist}}{{ .Query.Artist }}{{else}}{{ .Keywords }}{{end}}"
num: 50
rows:
# first selector is for the music page (recent uploads) and the second selector is for the search page
selector: div[itemscope] > table.browse_albums, div.div-rellist
fields:
title:
selector: tr:nth-child(1) td:nth-child(1) h2 a, div h3 a
details:
selector: tr:nth-child(1) td:nth-child(1) h2 a, div h3 a
attribute: href
category:
text: "Music"
banner:
selector: tr:nth-child(2) td:nth-child(1) a img, div i img
attribute: src
optional: true
download:
selector: tr:nth-child(1) td:nth-child(1) h2 a, div h3 a
attribute: href
# dates come in two flavours:
# Russian, Spanish and English supported
date:
# fix for spanish yesterday, the time is not present
text: now
date:
# Today at 22:28:10
# Yesterday at 10:18:40
# Вчера в 10:18:40
# Hoy a las 07:33:17
selector: tr:nth-child(1) > td:nth-child(2) > div.details > span:nth-child(1):contains(":"), div > span.edit:contains(":")
optional: true
filters:
- name: replace
args: [" at ", " "]
- name: re_replace
args: ["Ayer a las|Вчера в", "Yesterday"]
- name: re_replace
args: ["Hoy a las|Сегодня в", "Today"]
date:
# 3 april 2019
selector: tr:nth-child(1) > td:nth-child(2) > div.details > span:nth-child(1):not(:contains(":")), div > span.edit:not(:contains(":"))
optional: true
filters:
- name: re_replace
args: ["enero|января", "January"]
- name: re_replace
args: ["febrero|февраля", "February"]
- name: re_replace
args: ["marzo|марта ", "March"]
- name: re_replace
args: ["abril|апреля", "April"]
- name: re_replace
args: ["mayo|мая", "May"]
- name: re_replace
args: ["junio|июня", "June"]
- name: re_replace
args: ["julio|июля", "July"]
- name: re_replace
args: ["agosto|августа", "August"]
- name: re_replace
args: ["septiembre|сентября", "September"]
- name: re_replace
args: ["octubre|октября", "October"]
- name: re_replace
args: ["noviembre|ноября", "November"]
- name: re_replace
args: ["diciembre|декабря", "December"]
- name: dateparse
args: "2 January 2006"
size:
# search page does not have size.
text: "500 MB"
size:
# but today's page can, if the content fixed-length string contains a title that is not too long.
selector: tr:nth-child(2) td.descr meta
attribute: content
optional: true
filters:
- name: regexp
args: "Size: (.*?),"
seeders:
text: 1
leechers:
text: 1
downloadvolumefactor:
text: 1
uploadvolumefactor:
text: 1

View File

@@ -67,24 +67,16 @@
date:
selector: td:nth-child(4)
filters:
- name: replace
args: ["heures", "hours"]
- name: replace
args: ["heure", "hour"]
- name: replace
args: ["jours", "days"]
- name: replace
args: ["jour", "day"]
- name: replace
args: ["semaines", "weeks"]
- name: replace
args: ["semaine", "week"]
- name: replace
args: ["mois", "months"]
args: ["moi", "month"]
- name: replace
args: ["ans", "years"]
- name: replace
args: ["an", "year"]
args: [" an", " year"]
- name: append
args: " ago"
size:

View File

@@ -142,8 +142,15 @@
- name: querystring
args: category
download:
selector: td a[href^="download.php?id="]
selector: td a[href*="torrent-details"]
attribute: href
filters:
- name: querystring
args: id
- name: prepend
args: "download.php?id="
- name: append
args: "&f={{.Result.title}}.torrent"
banner:
selector: td a[href*="id="]
attribute: onmouseover
@@ -151,18 +158,43 @@
- name: regexp
args: "src=(.+?) width="
size:
selector: td:nth-child(5)
selector: td:nth-child(4)
seeders:
selector: td:nth-child(6)
selector: td:nth-child(5)
leechers:
selector: td:nth-child(7)
selector: td:nth-child(6)
grabs:
selector: td:nth-child(8)
date:
selector: td:nth-child(9) img
attribute: alt
selector: td:nth-child(7)
filters:
- name: timeago
- name: replace
args: ["---", "0"]
date:
selector: td:nth-child(8)
filters:
filters:
# translations for Turkish|Estonian|Danish|Italian|Polish|Norwegian|Portoguese|Czech|Russian|Romanian|Spanish|French|German|Bulgarian|Dutch
- name: re_replace
args: ["(?i)(dakika|minut|minuto|minuta|minutt|минута|Minute|minuut)", "minute"]
- name: re_replace
args: ["(?i)(dakika|minutit|minutter|minuti|minuty|minutos|минуты|минут|Minuten|минути|minuten)", "minutes"]
- name: re_replace
args: ["(?i)(saat|tund|time|ora|godzina|hora|hodina|час|oră|heure|Stunde|uur)", "hour"]
- name: re_replace
args: ["(?i)(saat|tundi|timer|ore|godziny|horas|hodiny|hoden|часа|часов|ore|heures|Stunden)", "hours"]
- 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)(gün|päeva|dage|giorni|dni|dias|dny|дня|дней|zile|días|jours|Tagen|дни|dagen)", "days"]
- name: re_replace
args: ["(?i)(hafta|nädal|uge|settimana|tydzień|uke|semana|týden|неделю|săptămână|semaine|Woche|седмица)", "week"]
- name: re_replace
args: ["(?i)(hafta|nädalat|uger|settimane|tygodnie|uker|semanas|týdny|недели|недель|săptămâni|semaines|Wochen|седмици|weken)", "weeks"]
- name: re_replace
args: ["(?i) (ay|kuu|måned|mese|miesiąc|mês|měsíc|месяц|lună|mes|mois|Monat|месец|maand)", "month"]
- name: re_replace
args: ["(?i) (ay|kuud|måneder|mesi|miesiące|meses|měsíce|месяца|месяцев|luni|meses|mois|Monaten|месеца|maanden)", "months"]
- name: append
args: " ago"
downloadvolumefactor:
text: "1"
uploadvolumefactor:

View File

@@ -7,7 +7,7 @@
encoding: UTF-8
followredirect: true
links:
- https://wvw.t9.pe/
- https://www.torrent9.cat/
legacylinks:
- http://www.torrent9.ec/
@@ -26,6 +26,7 @@
- https://www.torrent9.uno/
- https://wvw.torrent9.uno/
- https://ww1.torrent9.uno/
- https://wvw.t9.pe/
caps:
categorymappings:
@@ -63,7 +64,9 @@
filters:
# now we put the date at the right place according scene naming rules using .Result.site_date
- name: replace
args: ["FRENCH", "{{ .Result.site_date }} FRENCH"]
args: [" FRENCH", " {{ .Result.site_date }} FRENCH"]
- name: replace
args: ["MULTI", "{{ .Result.site_date }} MULTI"]
- name: replace
args: ["TRUEFRENCH", "{{ .Result.site_date }} TRUEFRENCH"]
- name: replace

View File

@@ -7,11 +7,15 @@
encoding: UTF-8
followredirect: true
links:
- https://www2.torrent9.ch/
- https://www.torrent9.lol/
legacylinks:
- https://www.torrents9.pw/
- https://www.torrent9.ch/
- https://www1.torrent9.ch/
- https://www2.torrent9.ch/
- https://wwv.torrent9.vg/
- https://www.torrent9.vc/
- https://wvw.torrent9.vc/
caps:
categorymappings:
@@ -72,7 +76,9 @@
filters:
# now we put the date at the right place according scene naming rules using .Result.site_date
- name: replace
args: ["FRENCH", "{{ .Result.site_date }} FRENCH"]
args: [" FRENCH", " {{ .Result.site_date }} FRENCH"]
- name: replace
args: ["MULTI", "{{ .Result.site_date }} MULTI"]
- name: replace
args: ["TRUEFRENCH", "{{ .Result.site_date }} TRUEFRENCH"]
- name: replace

View File

@@ -6,6 +6,8 @@
type: public
encoding: UTF-8
links:
- https://gotorrentkitty.cc/
legacylinks:
- http://cntorrentkitty.com/
- http://cntorrentkitty.xyz/

View File

@@ -61,7 +61,7 @@
- path: "?t={{if .Keywords}}{{.Keywords}}{{else}}test{{end}}&orderby=latest{{if .Config.filter-verified }}&safe=on{{else}}{{end}}"
followredirect: true
rows:
selector: "#similarfiles div:has(a[href^=\"/t3-\"])"
selector: "#similarfiles div:has(a[href^=\"/t0-\"])"
fields:
title:
selector: span > a

View File

@@ -0,0 +1,863 @@
---
site: torrentslocal
name: Torrents-Local
description: "Torrents-Local is a RUSSIAN Semi-Private Torrent Tracker"
language: ru-ru
type: semi-private
encoding: UTF-8
links:
- https://torrents-local.xyz/
caps:
categorymappings:
# Кино, Видео и ТВ
- {id: 8, cat: Movies, desc: "Арт-хаус и авторское кино"}
- {id: 12, cat: Movies, desc: "Аниме"}
- {id: 473, cat: Movies, desc: "AMV и пр. видео"}
- {id: 214, cat: Movies, desc: "Dorama и live-action"}
- {id: 685, cat: Movies, desc: "DVD"}
- {id: 371, cat: Movies, desc: "HD"}
- {id: 932, cat: Movies, desc: "HD Полнометражные"}
- {id: 119, cat: Movies, desc: "OST"}
- {id: 561, cat: Movies, desc: "OST (lossless)"}
- {id: 149, cat: Movies, desc: "Манга"}
- {id: 148, cat: Movies, desc: "Онгоинги"}
- {id: 215, cat: Movies, desc: "Полнометражные"}
- {id: 202, cat: Movies, desc: "Фэндом"}
- {id: 6, cat: Movies, desc: "Зарубежное кино"}
- {id: 592, cat: Movies, desc: "Азиатские фильмы"}
- {id: 160, cat: Movies, desc: "Индийские фильмы"}
- {id: 813, cat: Movies, desc: "Коллекции"}
- {id: 591, cat: Movies, desc: "Фильмы до 1960 года"}
- {id: 590, cat: Movies, desc: "Фильмы 1961 - 2000"}
- {id: 589, cat: Movies, desc: "Фильмы 2001 - 2005"}
- {id: 588, cat: Movies, desc: "Фильмы 2006 - 2010"}
- {id: 945, cat: Movies, desc: "Фильмы 2011 - 2015"}
- {id: 978, cat: Movies, desc: "Фильмы 2016 - 2019"}
- {id: 479, cat: Movies, desc: "Фильмы на языке оригинала"}
- {id: 10, cat: Movies, desc: "Мультфильмы"}
- {id: 759, cat: Movies, desc: "Короткометражные"}
- {id: 475, cat: Movies, desc: "СССР"}
- {id: 7, cat: Movies, desc: "Отечественное кино"}
- {id: 227, cat: Movies, desc: "СССР"}
- {id: 888, cat: Movies, desc: "3D и 4K Видео"}
- {id: 399, cat: Movies, desc: "3D и 4K Кинофильмы"}
- {id: 339, cat: Movies, desc: "3D и 4K Мультфильмы"}
- {id: 948, cat: Movies, desc: "3D и 4K Документальные фильмы"}
- {id: 670, cat: Movies, desc: "Разное"}
- {id: 212, cat: Movies, desc: "Театр"}
- {id: 146, cat: Movies, desc: "Трейлеры и дополнительные материалы"}
- {id: 100, cat: Movies, desc: "Видео для портативных устройств"}
- {id: 105, cat: Movies, desc: "Видео для мобильных (3GP, MP4, AVI)"}
- {id: 690, cat: Movies, desc: "Видео для iPhone, iPod Touch"}
- {id: 689, cat: Movies, desc: "Видео для PSP"}
# DVD/HD видео"
- {id: 832, cat: Movies/HD, desc: "Арт-хаус и авторское кино HD"}
- {id: 835, cat: Movies/HD, desc: "Классика зарубежного кино"}
- {id: 837, cat: Movies/HD, desc: "Классика зарубежного кино DVD"}
- {id: 836, cat: Movies/HD, desc: "Классика зарубежного кино HD"}
- {id: 842, cat: Movies/HD, desc: "Зарубежное кино HD"}
- {id: 876, cat: Movies/HD, desc: "HD Коллекции"}
- {id: 845, cat: Movies/HD, desc: "HD до 2000 года"}
- {id: 844, cat: Movies/HD, desc: "HD 2001 - 2005"}
- {id: 843, cat: Movies/HD, desc: "HD 2006 - 2010"}
- {id: 870, cat: Movies/HD, desc: "HD 2011 - 2015"}
- {id: 980, cat: Movies/HD, desc: "HD 2016 - 2019"}
- {id: 846, cat: Movies/HD, desc: "Мультфильмы HD"}
- {id: 849, cat: Movies/HD, desc: "Отечественное кино DVD/HD"}
- {id: 851, cat: Movies/HD, desc: "Отечественное кино DVD"}
- {id: 850, cat: Movies/HD, desc: "Отечественное кино HD"}
# Сериалы
- {id: 14, cat: TV, desc: "Зарубежные сериалы"}
- {id: 862, cat: TV, desc: "Сборники"}
- {id: 454, cat: TV, desc: "Сериалы на языке оригинала"}
- {id: 115, cat: TV, desc: "24 часа / 24"}
- {id: 981, cat: TV, desc: "Ад на колёсах / Hell on Wheels"}
- {id: 982, cat: TV, desc: "Американская история ужасов / American Horror Story"}
- {id: 194, cat: TV, desc: "Анатомия страcти / Grey&#039;s Anatomy"}
- {id: 734, cat: TV, desc: "Антураж / Красавцы / Entourage"}
- {id: 997, cat: TV, desc: "Банши / Banshee"}
- {id: 153, cat: TV, desc: "Баффи - Истребительница вампиров / Buffy the Vampire..."}
- {id: 998, cat: TV, desc: "Белый воротничок / White Collar"}
- {id: 1013, cat: TV, desc: "Бесстыжие / Shameless"}
- {id: 379, cat: TV, desc: "Блудливая калифорния / Californication"}
- {id: 988, cat: TV, desc: "Бруклин 9-9 / Brooklyn Nine-Nine"}
- {id: 999, cat: TV, desc: "Быть человеком / Being Human"}
- {id: 992, cat: TV, desc: "В поле зрения / Person of Interest"}
- {id: 1000, cat: TV, desc: "Викинги / Vikings"}
- {id: 818, cat: TV, desc: "Во все тяжкие / Breaking Bad; Лучше звоните Солу / Better..."}
- {id: 1011, cat: TV, desc: "Воздействие / Leverage"}
- {id: 90, cat: TV, desc: "Герои / Heroes"}
- {id: 86, cat: TV, desc: "Говорящая с призраками / Ghost Whisperer"}
- {id: 558, cat: TV, desc: "Готэм / Gotham"}
- {id: 126, cat: TV, desc: "Грань / Fringe"}
- {id: 162, cat: TV, desc: "Гримм / Grimm"}
- {id: 1001, cat: TV, desc: "Далеко во Вселенной / Farscape"}
- {id: 134, cat: TV, desc: "Два с половиной человека / Two and a Half Men"}
- {id: 1002, cat: TV, desc: "Две девицы на мели / 2 Broke Girls"}
- {id: 81, cat: TV, desc: "Декстер / Dexter"}
- {id: 114, cat: TV, desc: "Демоны Да Винчи / Da Vinci&#039;s Demons"}
- {id: 380, cat: TV, desc: "Дефективный детектив / Monk"}
- {id: 164, cat: TV, desc: "Дневники вампира / The Vampire Diaries; Древние / The..."}
- {id: 112, cat: TV, desc: "Доктор Кто / Doctor Who"}
- {id: 61, cat: TV, desc: "Доктор Хаус / House M.D."}
- {id: 121, cat: TV, desc: "Друзья / Friends &amp; Джо / Joey"}
- {id: 560, cat: TV, desc: "Её звали Никита / La Femme Nikita"}
- {id: 125, cat: TV, desc: "Зачарованные / Charmed"}
- {id: 91, cat: TV, desc: "Звездные Врата / Stargate"}
- {id: 433, cat: TV, desc: "Звездный крейсер Галактика / Battlestar Galactica"}
- {id: 92, cat: TV, desc: "Звездный путь / Star Trek"}
- {id: 220, cat: TV, desc: "Игра Престолов / Game of Thrones"}
- {id: 245, cat: TV, desc: "Как сказал Джим / According to Jim"}
- {id: 201, cat: TV, desc: "Как я встретил вашу маму / How I met your mother"}
- {id: 995, cat: TV, desc: "Карточный домик / House of Cards"}
- {id: 641, cat: TV, desc: "Касл / Castle"}
- {id: 653, cat: TV, desc: "Клан Сопрано / The Sopranos"}
- {id: 127, cat: TV, desc: "Коломбо / Columbo"}
- {id: 191, cat: TV, desc: "Компьютерщики / The IT Crowd"}
- {id: 1010, cat: TV, desc: "Континуум / Continuum"}
- {id: 196, cat: TV, desc: "Кости / Bones"}
- {id: 431, cat: TV, desc: "Косяки (Дурман) / Weeds"}
- {id: 62, cat: TV, desc: "Клиника / Scrubs"}
- {id: 424, cat: TV, desc: "Легенда об Искателе / Legend of the Seeker"}
- {id: 387, cat: TV, desc: "Медиум / Medium"}
- {id: 1003, cat: TV, desc: "Менталист / The Mentalist"}
- {id: 193, cat: TV, desc: "Меня зовут Эрл / My name is Earl"}
- {id: 751, cat: TV, desc: "Мерлин / Merlin"}
- {id: 165, cat: TV, desc: "Мертвая зона / The Dead Zone"}
- {id: 192, cat: TV, desc: "Молокососы / Skins"}
- {id: 994, cat: TV, desc: "Мотель Бейтс / Bates Motel"}
- {id: 197, cat: TV, desc: "Мыслить как преступник / Criminal minds"}
- {id: 381, cat: TV, desc: "Настоящая Кровь / True Blood"}
- {id: 1014, cat: TV, desc: "Нация Z / Z Nation"}
- {id: 1004, cat: TV, desc: "Оборотень / Teen Wolf"}
- {id: 195, cat: TV, desc: "Одинокие сердца / The O.C."}
- {id: 1012, cat: TV, desc: "Однажды в сказке / Once Upon a Time"}
- {id: 990, cat: TV, desc: "Однокурсники / Community"}
- {id: 64, cat: TV, desc: "Остаться в живых / LOST"}
- {id: 198, cat: TV, desc: "Отбросы / Плохие / Misfits"}
- {id: 386, cat: TV, desc: "Отчаянные домохозяйки / Desperate housewives"}
- {id: 406, cat: TV, desc: "Офис / The Office"}
- {id: 63, cat: TV, desc: "Побег / Prison Break"}
- {id: 1005, cat: TV, desc: "Полтергейст: Наследие / Poltergeist: The Legacy"}
- {id: 583, cat: TV, desc: "Притворщик / Pretender"}
- {id: 1006, cat: TV, desc: "Прослушка / The Wire"}
- {id: 167, cat: TV, desc: "Пуаро Агаты Кристи / Agatha Christie&#039;s Poirot"}
- {id: 943, cat: TV, desc: "Редкие и старинные сериалы"}
- {id: 991, cat: TV, desc: "Рухнувшие небеса / Falling Skies"}
- {id: 98, cat: TV, desc: "Сверхъестественное / Supernatural"}
- {id: 88, cat: TV, desc: "Секретные материалы / X-files"}
- {id: 1007, cat: TV, desc: "Силиконовая долина / Silicon Valley"}
- {id: 166, cat: TV, desc: "Скорая помощь / ER"}
- {id: 385, cat: TV, desc: "Спартак / Spartacus"}
- {id: 752, cat: TV, desc: "Сплетница / Gossip Girl"}
- {id: 128, cat: TV, desc: "Стрела / Arrow"}
- {id: 983, cat: TV, desc: "Сыны Анархии / Sons of Anarchy"}
- {id: 101, cat: TV, desc: "Тайны Смолвиля / Smallville"}
- {id: 993, cat: TV, desc: "Темное дитя / Orphan Black"}
- {id: 190, cat: TV, desc: "Теория Большого Взрыва / The Big Bang Theory; Мол..."}
- {id: 738, cat: TV, desc: "Теория Лжи (Обмани меня) / Lie to me"}
- {id: 246, cat: TV, desc: "Торчвуд / Torchwood"}
- {id: 996, cat: TV, desc: "Уилфред / Wilfred"}
- {id: 129, cat: TV, desc: "Флэш / The Flash"}
- {id: 161, cat: TV, desc: "Ходячие мертвецы / The Walking Dead; Бойтесь хо..."}
- {id: 150, cat: TV, desc: "Холм одного дерева / One Tree Hill"}
- {id: 986, cat: TV, desc: "Хранилище 13 / Warehouse 13"}
- {id: 124, cat: TV, desc: "Части тела / Nip Tuck"}
- {id: 985, cat: TV, desc: "Чертова служба в госпитале Мэш / M*A*S*H"}
- {id: 984, cat: TV, desc: "Чёрный список / The Blacklist"}
- {id: 200, cat: TV, desc: "Числа / Numb3rs"}
- {id: 472, cat: TV, desc: "Шерлок / Sherlock"}
- {id: 1008, cat: TV, desc: "Штамм / The Strain"}
- {id: 123, cat: TV, desc: "Эврика / Eureka"}
- {id: 1009, cat: TV, desc: "Электронные жучки / Bugs"}
- {id: 987, cat: TV, desc: "Элементарно / Elementary"}
- {id: 597, cat: TV, desc: "Латиноамериканские сериалы"}
- {id: 11, cat: TV, desc: "Мультсериалы"}
- {id: 383, cat: TV, desc: "Аватар: Легенда об Аанге / Avatar: The Last Airbender"}
- {id: 889, cat: TV, desc: "Американский папаша / American Dad! (Seth MacFarlane)"}
- {id: 933, cat: TV, desc: "Бернард / Bernard"}
- {id: 143, cat: TV, desc: "Битва зверей / Beast Wars"}
- {id: 168, cat: TV, desc: "Букашки / Minuscule"}
- {id: 758, cat: TV, desc: "Гриффины / Family Guy (Seth MacFarlane)"}
- {id: 934, cat: TV, desc: "Губка Боб Квадратные Штаны / SpongeBob SquarePants"}
- {id: 46, cat: TV, desc: "Звездные войны / Star wars"}
- {id: 935, cat: TV, desc: "Маша и Медведь"}
- {id: 133, cat: TV, desc: "Мыши-байкеры с Марса / Biker Mice from Mars"}
- {id: 652, cat: TV, desc: "Охотники за привидениями"}
- {id: 936, cat: TV, desc: "Пингвины из Мадагаскара / The Penguins of Madagascar"}
- {id: 937, cat: TV, desc: "Приключения Лунтика"}
- {id: 938, cat: TV, desc: "Робоцып / Robot Chicken"}
- {id: 132, cat: TV, desc: "Симпсоны / The Simpsons"}
- {id: 421, cat: TV, desc: "Смешарики"}
- {id: 184, cat: TV, desc: "Том и Джерри / Tom and Jerry"}
- {id: 405, cat: TV, desc: "Тотали Спайс / Totally Spies"}
- {id: 142, cat: TV, desc: "Трансформеры / Transformers"}
- {id: 687, cat: TV, desc: "Футурама / Futurama"}
- {id: 384, cat: TV, desc: "Царь горы / King of the hill"}
- {id: 158, cat: TV, desc: "Что с Энди / What with Andy"}
- {id: 382, cat: TV, desc: "Школа волшебниц / Winx Club"}
- {id: 939, cat: TV, desc: "Шоу Кливленда / The Cleveland Show (Seth MacFarlane)"}
- {id: 434, cat: TV, desc: "Экранизация комиксов / Comics"}
- {id: 131, cat: TV, desc: "Южный Парк / South Park"}
- {id: 13, cat: TV, desc: "Отечественные cериалы"}
- {id: 137, cat: TV, desc: "Бригада"}
- {id: 188, cat: TV, desc: "Восьмидесятые"}
- {id: 815, cat: TV, desc: "Глухарь"}
- {id: 559, cat: TV, desc: "Интерны"}
- {id: 189, cat: TV, desc: "Кадетство"}
- {id: 221, cat: TV, desc: "Карпов"}
- {id: 422, cat: TV, desc: "Реальные пацаны"}
- {id: 661, cat: TV, desc: "Сваты"}
- {id: 138, cat: TV, desc: "Солдаты"}
- {id: 584, cat: TV, desc: "Убойная сила"}
- {id: 651, cat: TV, desc: "Улицы разбитых фонарей"}
- {id: 136, cat: TV, desc: "Универ"}
# Документалистика, юмор, спорт"
- {id: 57, cat: TV, desc: "Документальные фильмы и телепередачи"}
- {id: 155, cat: TV, desc: "BBC"}
- {id: 186, cat: TV, desc: "Discovery Channel"}
- {id: 570, cat: TV, desc: "HD"}
- {id: 634, cat: TV, desc: "IMAX/3D"}
- {id: 403, cat: TV, desc: "National Geographic"}
- {id: 824, cat: TV, desc: "Авиация"}
- {id: 855, cat: TV, desc: "Биографии. Личности и кумиры"}
- {id: 856, cat: TV, desc: "Видовые, релаксационные"}
- {id: 443, cat: TV, desc: "Военное дело"}
- {id: 635, cat: TV, desc: "Диагностика кармы"}
- {id: 929, cat: TV, desc: "Документальные фильмы на языке оригинала"}
- {id: 554, cat: TV, desc: "Живая планета"}
- {id: 830, cat: TV, desc: "За рулем"}
- {id: 867, cat: TV, desc: "Информационно-аналитические передачи и публицистика"}
- {id: 633, cat: TV, desc: "История и мировая культура"}
- {id: 531, cat: TV, desc: "Космос"}
- {id: 185, cat: TV, desc: "Криминальная документалистика"}
- {id: 965, cat: TV, desc: "Научно-популярные фильмы"}
- {id: 866, cat: TV, desc: "Паранормальные явления и экстрасенсорика"}
- {id: 523, cat: TV, desc: "Политика и экономика"}
- {id: 949, cat: TV, desc: "Путешествия и туризм"}
- {id: 425, cat: TV, desc: "Религия"}
- {id: 109, cat: TV, desc: "Обои и картинки"}
- {id: 890, cat: TV, desc: "Абстракции"}
- {id: 736, cat: TV, desc: "Аватары, Иконки, Смайлы"}
- {id: 625, cat: TV, desc: "Живопись, Графика, Фэнтези арт"}
- {id: 891, cat: TV, desc: "Игры"}
- {id: 626, cat: TV, desc: "Картинки"}
- {id: 899, cat: TV, desc: "Кино и мультфильмы"}
- {id: 927, cat: TV, desc: "Компьютеры, ноутбуки, Интернет"}
- {id: 919, cat: TV, desc: "Космос"}
- {id: 898, cat: TV, desc: "Красивые девушки"}
- {id: 920, cat: TV, desc: "Кулинария"}
- {id: 627, cat: TV, desc: "Обои на разную тематику"}
- {id: 926, cat: TV, desc: "Праздники"}
- {id: 892, cat: TV, desc: "Природа, города и страны"}
- {id: 893, cat: TV, desc: "Спорт"}
- {id: 894, cat: TV, desc: "Техника"}
- {id: 628, cat: TV, desc: "Фото знаменитостей"}
- {id: 58, cat: TV, desc: "Развлекательные телепередачи и шоу, приколы и юмор"}
- {id: 154, cat: TV, desc: "Comedy Club"}
- {id: 551, cat: TV, desc: "Top Gear"}
- {id: 877, cat: TV, desc: "Авторские шоу и концерты, бенефисы и концертографии"}
- {id: 878, cat: TV, desc: "Демонстрационные шоу"}
- {id: 145, cat: TV, desc: "КВН"}
- {id: 858, cat: TV, desc: "Пародийные телепередачи и шоу"}
- {id: 632, cat: TV, desc: "Познавательно-развлекательные телепередачи, игры и виктори..."}
- {id: 621, cat: TV, desc: "Пост-КВН и Молодежные скетч-шоу"}
- {id: 857, cat: TV, desc: "Премии вручения, праздничные и новогодние программы"}
- {id: 930, cat: TV, desc: "Развлекательные телепередачи на языке оригинала"}
- {id: 372, cat: TV, desc: "Реалити и ток-шоу"}
- {id: 59, cat: TV, desc: "Спорт"}
- {id: 208, cat: TV, desc: "Автоспорт"}
- {id: 750, cat: TV, desc: "Американский футбол, регби и бейсбол"}
- {id: 229, cat: TV, desc: "Биатлон и лыжи"}
- {id: 528, cat: TV, desc: "Бильярд"}
- {id: 206, cat: TV, desc: "Боевые искусства"}
- {id: 828, cat: TV, desc: "Бокс"}
- {id: 205, cat: TV, desc: "Брейк-данс"}
- {id: 207, cat: TV, desc: "Велоспорт и мотоспорт"}
- {id: 210, cat: TV, desc: "Культуризм, фитнес"}
- {id: 407, cat: TV, desc: "Паркур"}
- {id: 817, cat: TV, desc: "Покер"}
- {id: 404, cat: TV, desc: "Скейтборд"}
- {id: 209, cat: TV, desc: "Сноуборд"}
- {id: 673, cat: TV, desc: "Теннис"}
- {id: 791, cat: TV, desc: "Зимние Олимпийские Игры 2014 в Сочи"}
- {id: 793, cat: TV, desc: "Биатлон"}
- {id: 970, cat: TV, desc: "Бобслей/Санный спорт/Скелетон"}
- {id: 795, cat: TV, desc: "Конькобежный спорт"}
- {id: 794, cat: TV, desc: "Лыжный спорт"}
- {id: 971, cat: TV, desc: "Сноуборд/Фристайл/Шорт-трек/Керлинг"}
- {id: 969, cat: TV, desc: "Фигурное катание"}
- {id: 792, cat: TV, desc: "Хоккей"}
- {id: 797, cat: TV, desc: "Обзорные и разные тематические передачи"}
- {id: 60, cat: TV, desc: "Футбол"}
- {id: 490, cat: TV, desc: "Игры национальных сборных"}
- {id: 491, cat: TV, desc: "Международные лиги и кубки"}
- {id: 492, cat: TV, desc: "Национальные чемпионаты и кубки зарубежных стран"}
- {id: 489, cat: TV, desc: "Обзоры и передачи о футболе"}
- {id: 649, cat: TV, desc: "Товарищеские и выставочные матчи"}
- {id: 488, cat: TV, desc: "Футбольное видео"}
- {id: 493, cat: TV, desc: "Чемпионат и Кубок России"}
- {id: 829, cat: TV, desc: "Чемпионат мира 2014"}
- {id: 204, cat: TV, desc: "Хоккей"}
- {id: 450, cat: TV, desc: "NHL"}
- {id: 449, cat: TV, desc: "КХЛ"}
- {id: 451, cat: TV, desc: "Международные турниры по хоккею"}
- {id: 636, cat: TV, desc: "Обучающее видео"}
- {id: 452, cat: TV, desc: "Хоккейное видео"}
- {id: 203, cat: TV, desc: "Баскетбол"}
- {id: 662, cat: TV, desc: "NBA"}
- {id: 760, cat: TV, desc: "NCAA"}
- {id: 666, cat: TV, desc: "Баскетбольное видео"}
- {id: 664, cat: TV, desc: "Европейский клубный баскетбол"}
- {id: 663, cat: TV, desc: "Международные турниры"}
- {id: 665, cat: TV, desc: "Обучающее видео"}
- {id: 763, cat: TV, desc: "Рестлинг"}
- {id: 897, cat: TV, desc: "DVD"}
- {id: 814, cat: TV, desc: "NXT"}
- {id: 772, cat: TV, desc: "Packs &amp; Documentaries"}
- {id: 764, cat: TV, desc: "RAW"}
- {id: 765, cat: TV, desc: "SmackDown!"}
- {id: 768, cat: TV, desc: "TNA IMPACT WRESTLING"}
- {id: 770, cat: TV, desc: "TNA PPV"}
- {id: 896, cat: TV, desc: "WWE Classics"}
- {id: 769, cat: TV, desc: "WWE PPV"}
# Книги, аудиокниги, обучающие видео"
- {id: 15, cat: Books, desc: "Книги (общий раздел)"}
- {id: 1015, cat: Books, desc: "Собрание сочинений"}
- {id: 1016, cat: Books, desc: "Издательские серии и циклы"}
- {id: 852, cat: Books, desc: "Библиотеки и собрания книг"}
- {id: 1018, cat: Books, desc: "Естественные и формальные науки"}
- {id: 358, cat: Books, desc: "Научно-популярная литература"}
- {id: 1032, cat: Books, desc: "Головоломки, логические задачи и игры"}
- {id: 942, cat: Books, desc: "Иностранные языки"}
- {id: 20, cat: Books, desc: "Авто и мото"}
- {id: 359, cat: Books, desc: "Детские книги и журналы"}
- {id: 97, cat: Books, desc: "Журналы (общий раздел)"}
- {id: 972, cat: Books, desc: "Искусство. Культурология. Путеводители"}
- {id: 356, cat: Books, desc: "Искусство фотографии"}
- {id: 354, cat: Books, desc: "Историческая литература и военное дело"}
- {id: 116, cat: Books, desc: "Комиксы"}
- {id: 973, cat: Books, desc: "Кулинария"}
- {id: 352, cat: Books, desc: "Медицина и здоровье"}
- {id: 816, cat: Books, desc: "Многопредметные энциклопедии и словари"}
- {id: 446, cat: Books, desc: "Ноты и музыкальная литература"}
- {id: 946, cat: Books, desc: "Психология. Философия. Эзотерика."}
- {id: 756, cat: Books, desc: "Радиоэлектроника"}
- {id: 355, cat: Books, desc: "Рисунок, графический дизайн"}
- {id: 353, cat: Books, desc: "Спорт, боевые искусства"}
- {id: 357, cat: Books, desc: "Строительство и ремонт"}
- {id: 94, cat: Books, desc: "Учебные"}
- {id: 93, cat: Books, desc: "Художественные"}
- {id: 640, cat: Books, desc: "Хобби и увлечения, коллекционирование (разное)"}
- {id: 1019, cat: Books, desc: "Художественная литература"}
- {id: 1020, cat: Books, desc: "Собрание сочинений (классическая литература)"}
- {id: 1021, cat: Books, desc: "Собрание сочинений (классическая фантастика/фэнтези)"}
- {id: 1022, cat: Books, desc: "Собрание сочинений (современная литература)"}
- {id: 1023, cat: Books, desc: "Собрание сочинений (современная фантастика/фэнтези)"}
- {id: 1024, cat: Books, desc: "Издательские серии и циклы"}
- {id: 1025, cat: Books, desc: "Библиотеки и собрания книг"}
- {id: 1026, cat: Books, desc: "Классическая русская литература"}
- {id: 1027, cat: Books, desc: "Классическая зарубежная литература"}
- {id: 1028, cat: Books, desc: "Классическая фантастика и фэнтези"}
- {id: 1029, cat: Books, desc: "Современная литература"}
- {id: 1030, cat: Books, desc: "Современная фантастика и фэнтези"}
- {id: 1031, cat: Books, desc: "Ранобэ"}
- {id: 16, cat: Books, desc: "Компьютерная литература"}
- {id: 344, cat: Books, desc: "Unix-подобная операционная система"}
- {id: 346, cat: Books, desc: "Веб-дизайн и программирование"}
- {id: 348, cat: Books, desc: "Графика"}
- {id: 351, cat: Books, desc: "Железо (книги о ПК)"}
- {id: 341, cat: Books, desc: "Компьютерные журналы"}
- {id: 347, cat: Books, desc: "Программирование"}
- {id: 343, cat: Books, desc: "Программы"}
- {id: 342, cat: Books, desc: "Программы от Microsoft"}
- {id: 349, cat: Books, desc: "Сети"}
- {id: 345, cat: Books, desc: "Базы данных, СУБД"}
- {id: 350, cat: Books, desc: "Хакинг и безопасность"}
- {id: 17, cat: Books, desc: "Аудиокниги"}
- {id: 941, cat: Books, desc: "Детская литература"}
- {id: 940, cat: Books, desc: "Иностранные языки"}
- {id: 468, cat: Books, desc: "Классическая литература (Аудиокниги)"}
- {id: 853, cat: Books, desc: "Психология, тренинги, саморазвитие (Аудиокниги)"}
- {id: 95, cat: Books, desc: "Современная литература (Аудиокниги)"}
- {id: 96, cat: Books, desc: "Учебные аудиокниги (разное)"}
- {id: 854, cat: Books, desc: "Фантастика / Фэнтези / Мистика (Аудиокниги)"}
- {id: 19, cat: Books, desc: "Видеоуроки и обучающие интерактивные DVD"}
- {id: 629, cat: Books, desc: "Авто и мото"}
- {id: 596, cat: Books, desc: "Беременность, роды, уход за новорождённым"}
- {id: 439, cat: Books, desc: "Бизнес"}
- {id: 575, cat: Books, desc: "Для детей"}
- {id: 642, cat: Books, desc: "Игра на барабанах"}
- {id: 522, cat: Books, desc: "Иностранные языки"}
- {id: 426, cat: Books, desc: "Йога"}
- {id: 595, cat: Books, desc: "Кулинария"}
- {id: 744, cat: Books, desc: "Массаж"}
- {id: 577, cat: Books, desc: "Медицина и здоровье"}
- {id: 219, cat: Books, desc: "Музыка"}
- {id: 811, cat: Books, desc: "Пикап, правила общения"}
- {id: 217, cat: Books, desc: "ПО"}
- {id: 593, cat: Books, desc: "Психология, тренинги, саморазвитие"}
- {id: 654, cat: Books, desc: "Рисование"}
- {id: 218, cat: Books, desc: "Рыбалка"}
- {id: 747, cat: Books, desc: "Секреты красоты"}
- {id: 576, cat: Books, desc: "Строительство и ремонт"}
- {id: 474, cat: Books, desc: "Танцы"}
- {id: 743, cat: Books, desc: "Фокусы и трюки"}
- {id: 82, cat: Books, desc: "Подкасты"}
# Музыка"
- {id: 216, cat: Audio, desc: "Rocksteady, Ska, Reggae, Dub"}
- {id: 83, cat: Audio, desc: "World Music, Ethnic, Folk"}
- {id: 401, cat: Audio, desc: "Сборники"}
- {id: 598, cat: Audio, desc: "Башкирская, татарская"}
- {id: 617, cat: Audio, desc: "Видео"}
- {id: 616, cat: Audio, desc: "Сборники клипов"}
- {id: 615, cat: Audio, desc: "Сборники"}
- {id: 637, cat: Audio, desc: "Юмор"}
- {id: 22, cat: Audio, desc: "Джаз и Блюз"}
- {id: 606, cat: Audio, desc: "Lossless"}
- {id: 686, cat: Audio, desc: "Кавказ"}
- {id: 733, cat: Audio, desc: "Видео"}
- {id: 23, cat: Audio, desc: "Классическая музыка"}
- {id: 607, cat: Audio, desc: "Lossless"}
- {id: 27, cat: Audio, desc: "Музыка других жанров"}
- {id: 608, cat: Audio, desc: "Lossless"}
- {id: 553, cat: Audio, desc: "Мюзикл"}
- {id: 24, cat: Audio, desc: "Поп музыка"}
- {id: 470, cat: Audio, desc: "Зарубежная"}
- {id: 599, cat: Audio, desc: "Зарубежная (lossless)"}
- {id: 469, cat: Audio, desc: "Отечественная"}
- {id: 600, cat: Audio, desc: "Отечественная (lossless)"}
- {id: 471, cat: Audio, desc: "Сборники"}
- {id: 25, cat: Audio, desc: "Рэп, Хип-Хоп, R&#039;n&#039;B"}
- {id: 925, cat: Audio, desc: "WebRip Видео (Зарубежное)"}
- {id: 880, cat: Audio, desc: "WebRip Видео (Отечественное)"}
- {id: 410, cat: Audio, desc: "DVD видео"}
- {id: 411, cat: Audio, desc: "HD видео"}
- {id: 420, cat: Audio, desc: "Instrumental"}
- {id: 235, cat: Audio, desc: "Зарубежный Рэп, Хип-Хоп"}
- {id: 611, cat: Audio, desc: "Зарубежный Рэп, Хип-Хоп, R&#039;n&#039;B (lossless)"}
- {id: 921, cat: Audio, desc: "Зарубежный R&#039;n&#039;B"}
- {id: 922, cat: Audio, desc: "Отечественный R&#039;n&#039;B"}
- {id: 234, cat: Audio, desc: "Отечественный Рэп, Хип-Хоп"}
- {id: 612, cat: Audio, desc: "Отечественный Рэп, Хип-Хоп, R&#039;n&#039;B (lossless)"}
- {id: 409, cat: Audio, desc: "Видео (Заруб.)"}
- {id: 412, cat: Audio, desc: "Видео (Отеч.)"}
- {id: 26, cat: Audio, desc: "Саундтреки и Караоке"}
- {id: 484, cat: Audio, desc: "Саундтреки к играм"}
- {id: 579, cat: Audio, desc: "Саундтреки к играм (lossless)"}
- {id: 485, cat: Audio, desc: "Саундтреки к фильмам и сериалам"}
- {id: 580, cat: Audio, desc: "Саундтреки к фильмам и сериалам (lossless)"}
- {id: 735, cat: Audio, desc: "Караоке"}
- {id: 156, cat: Audio, desc: "Шансон, Авторская и Военная песня"}
- {id: 676, cat: Audio, desc: "Шансон"}
- {id: 677, cat: Audio, desc: "Авторская и Военная песня"}
- {id: 678, cat: Audio, desc: "Сборники"}
- {id: 239, cat: Audio, desc: "Видео (Музыка)"}
- {id: 241, cat: Audio, desc: "DVD"}
- {id: 240, cat: Audio, desc: "HD"}
- {id: 376, cat: Audio, desc: "Клипы (Зарубежные)"}
- {id: 375, cat: Audio, desc: "Клипы (Отечественные)"}
- {id: 549, cat: Audio, desc: "Сборники Клипов"}
# Рок-музыка"
- {id: 30, cat: Audio, desc: "Зарубежная Alternative"}
- {id: 267, cat: Audio, desc: "Alternative"}
- {id: 562, cat: Audio, desc: "Alternative (lossless)"}
- {id: 368, cat: Audio, desc: "Emo / Hardcore"}
- {id: 563, cat: Audio, desc: "Emo / Hardcore (lossless)"}
- {id: 369, cat: Audio, desc: "Industrial"}
- {id: 564, cat: Audio, desc: "Industrial (lossless)"}
- {id: 266, cat: Audio, desc: "Punk"}
- {id: 565, cat: Audio, desc: "Punk (lossless)"}
- {id: 364, cat: Audio, desc: "Отечественная Alternative"}
- {id: 370, cat: Audio, desc: "Alternative"}
- {id: 566, cat: Audio, desc: "Alternative (lossless)"}
- {id: 365, cat: Audio, desc: "Emo / Hardcore"}
- {id: 567, cat: Audio, desc: "Emo / Hardcore (lossless)"}
- {id: 366, cat: Audio, desc: "Industrial"}
- {id: 568, cat: Audio, desc: "Industrial (lossless)"}
- {id: 367, cat: Audio, desc: "Punk"}
- {id: 569, cat: Audio, desc: "Punk (lossless)"}
- {id: 29, cat: Audio, desc: "Зарубежный Metal"}
- {id: 254, cat: Audio, desc: "Avant-garde, Experimental"}
- {id: 498, cat: Audio, desc: "Avant-garde, Experimental (lossless)"}
- {id: 253, cat: Audio, desc: "Black, Folk, Pagan, Viking"}
- {id: 499, cat: Audio, desc: "Black, Folk, Pagan, Viking (lossless)"}
- {id: 252, cat: Audio, desc: "Death, Doom, Sludge, Stoner"}
- {id: 500, cat: Audio, desc: "Death, Doom, Sludge, Stoner (lossless)"}
- {id: 251, cat: Audio, desc: "Gothic Metal"}
- {id: 501, cat: Audio, desc: "Gothic Metal (lossless)"}
- {id: 250, cat: Audio, desc: "Grind, Brutal Death"}
- {id: 502, cat: Audio, desc: "Grind, Brutal Death (lossless)"}
- {id: 249, cat: Audio, desc: "Heavy, Power, Progressive"}
- {id: 503, cat: Audio, desc: "Heavy, Power, Progressive (lossless)"}
- {id: 895, cat: Audio, desc: "Symphonic, Operatic"}
- {id: 909, cat: Audio, desc: "Symphonic, Operatic (lossless)"}
- {id: 247, cat: Audio, desc: "Thrash, Speed"}
- {id: 504, cat: Audio, desc: "Thrash, Speed (lossless)"}
- {id: 28, cat: Audio, desc: "Зарубежный Rock"}
- {id: 260, cat: Audio, desc: "Classic Rock &amp; Hard Rock"}
- {id: 505, cat: Audio, desc: "Classic Rock &amp; Hard Rock (lossless)"}
- {id: 258, cat: Audio, desc: "Folk-Rock"}
- {id: 506, cat: Audio, desc: "Folk-Rock (lossless)"}
- {id: 444, cat: Audio, desc: "Garage Rock, Post-Punk, Gothic Rock, Synth Pop"}
- {id: 507, cat: Audio, desc: "Garage Rock, Post-Punk, Gothic Rock, Synth Pop (lossless)"}
- {id: 256, cat: Audio, desc: "Instrumental"}
- {id: 508, cat: Audio, desc: "Instrumental (lossless)"}
- {id: 257, cat: Audio, desc: "Indie Rock, Britpop, Pop-Rock, Soft Rock"}
- {id: 509, cat: Audio, desc: "Indie Rock, Britpop, Pop-Rock, Soft Rock (lossless)"}
- {id: 259, cat: Audio, desc: "Progressive &amp; Art-Rock"}
- {id: 510, cat: Audio, desc: "Progressive &amp; Art-Rock (lossless)"}
- {id: 255, cat: Audio, desc: "Rockabilly, Psychobilly, Rock&#039;n&#039;Roll"}
- {id: 511, cat: Audio, desc: "Rockabilly, Psychobilly, Rock&#039;n&#039;Roll (lossless)"}
- {id: 99, cat: Audio, desc: "Отечественный Метал"}
- {id: 336, cat: Audio, desc: "Black, Folk, Pagan, Viking"}
- {id: 512, cat: Audio, desc: "Black, Folk, Pagan, Viking (lossless)"}
- {id: 338, cat: Audio, desc: "Death, Grind"}
- {id: 513, cat: Audio, desc: "Death, Grind (lossless)"}
- {id: 335, cat: Audio, desc: "Doom, Gothic"}
- {id: 514, cat: Audio, desc: "Doom, Gothic (lossless)"}
- {id: 333, cat: Audio, desc: "Hard &amp; Heavy, Power, Speed, Thrash"}
- {id: 515, cat: Audio, desc: "Hard &amp; Heavy, Power, Speed, Thrash (lossless)"}
- {id: 334, cat: Audio, desc: "Progressive, Art"}
- {id: 516, cat: Audio, desc: "Progressive, Art (lossless)"}
- {id: 31, cat: Audio, desc: "Отечественный Рок"}
- {id: 360, cat: Audio, desc: "Classic Rock &amp; Hard Rock &amp; Rock&#039;n&#039;Roll"}
- {id: 517, cat: Audio, desc: "Classic Rock &amp; Hard Rock &amp; Rock&#039;n..."}
- {id: 361, cat: Audio, desc: "Progressive &amp; Art-Rock"}
- {id: 518, cat: Audio, desc: "Progressive &amp; Art-Rock (lossless)"}
- {id: 362, cat: Audio, desc: "Pop-Rock &amp; Soft Rock &amp; Folk Rock"}
- {id: 519, cat: Audio, desc: "Pop-Rock &amp; Soft Rock &amp; Folk Rock (lossless)"}
- {id: 141, cat: Audio, desc: "Experimental"}
- {id: 526, cat: Audio, desc: "Lossless"}
- {id: 85, cat: Audio, desc: "Восточноазиатский Рок / Поп"}
- {id: 527, cat: Audio, desc: "Lossless"}
- {id: 32, cat: Audio, desc: "Видео (Рок-музыка)"}
- {id: 374, cat: Audio, desc: "Alternative"}
- {id: 238, cat: Audio, desc: "DVD"}
- {id: 573, cat: Audio, desc: "Experimental"}
- {id: 237, cat: Audio, desc: "HD"}
- {id: 574, cat: Audio, desc: "J-Rock / Pop / Visual Kei"}
- {id: 571, cat: Audio, desc: "Metal"}
- {id: 572, cat: Audio, desc: "Rock"}
- {id: 373, cat: Audio, desc: "Документалистика"}
- {id: 400, cat: Audio, desc: "Сборники Рок-Музыки"}
# Электронная музыка"
- {id: 33, cat: Audio, desc: "Trance, Goa-Trance, Psy-Trance, PsyChill, Ambient Dub"}
- {id: 429, cat: Audio, desc: "Trance - Albums, Compilations"}
- {id: 430, cat: Audio, desc: "Trance - Radioshows, Livesets, Mixes"}
- {id: 874, cat: Audio, desc: "Trance - Singles, EPs"}
- {id: 533, cat: Audio, desc: "Trance - Singles, Albums, LPs (lossless)"}
- {id: 428, cat: Audio, desc: "Goa-Trance / Psychedelic / Psy-Chill / Ambient Dub"}
- {id: 534, cat: Audio, desc: "Goa-Trance / Psychedelic / Psy-Chill / Ambient Dub..."}
- {id: 658, cat: Audio, desc: "Сборники"}
- {id: 34, cat: Audio, desc: "House, Techno"}
- {id: 438, cat: Audio, desc: "Techno / Minimal / Tech House"}
- {id: 535, cat: Audio, desc: "Techno / Minimal / Tech House (lossless)"}
- {id: 435, cat: Audio, desc: "House / Electro House"}
- {id: 536, cat: Audio, desc: "House / Electro House (lossless)"}
- {id: 659, cat: Audio, desc: "Сборники House / Electro House"}
- {id: 398, cat: Audio, desc: "Livesets"}
- {id: 436, cat: Audio, desc: "Progressive House / Deep House"}
- {id: 396, cat: Audio, desc: "Vinyls / EPs / tracks"}
- {id: 35, cat: Audio, desc: "Drum &amp; Bass, Jungle, Electro, Breakbeat, IDM,..."}
- {id: 416, cat: Audio, desc: "Breakbeat / Beats"}
- {id: 540, cat: Audio, desc: "Breakbeat / Beats (lossless)"}
- {id: 415, cat: Audio, desc: "Drum &amp; Bass / Jungle"}
- {id: 543, cat: Audio, desc: "Drum &amp; Bass / Jungle (lossless)"}
- {id: 417, cat: Audio, desc: "Electro"}
- {id: 544, cat: Audio, desc: "Electro (lossless)"}
- {id: 419, cat: Audio, desc: "Hardcore / Hardstyle"}
- {id: 545, cat: Audio, desc: "Hardcore / Hardstyle (lossless)"}
- {id: 418, cat: Audio, desc: "Idm"}
- {id: 546, cat: Audio, desc: "Idm (lossless)"}
- {id: 660, cat: Audio, desc: "Сборники"}
- {id: 36, cat: Audio, desc: "Chillout, Lounge, Downtempo, Trip-Hop"}
- {id: 538, cat: Audio, desc: "Lossless"}
- {id: 402, cat: Audio, desc: "Сборники"}
- {id: 84, cat: Audio, desc: "Industrial"}
- {id: 539, cat: Audio, desc: "Lossless"}
- {id: 630, cat: Audio, desc: "Дискографии"}
- {id: 242, cat: Audio, desc: "Видео (Электронная музыка)"}
- {id: 244, cat: Audio, desc: "DVD"}
- {id: 243, cat: Audio, desc: "HD"}
- {id: 377, cat: Audio, desc: "Клипы"}
# Игры для PC"
- {id: 40, cat: PC/Games, desc: "Новые раздачи"}
- {id: 65, cat: PC/Games, desc: "Горячие Новинки"}
- {id: 75, cat: PC/Games, desc: "Action"}
- {id: 457, cat: PC/Games, desc: "Action до 2003 г."}
- {id: 900, cat: PC/Games, desc: "FPS (1st Person)"}
- {id: 901, cat: PC/Games, desc: "TPS (3rd Person)"}
- {id: 902, cat: PC/Games, desc: "Counter Strike"}
- {id: 102, cat: PC/Games, desc: "Horror"}
- {id: 456, cat: PC/Games, desc: "Horror до 2003 г."}
- {id: 822, cat: PC/Games, desc: "Азартные игры"}
- {id: 68, cat: PC/Games, desc: "Аркады"}
- {id: 464, cat: PC/Games, desc: "Аркады до 2003 г."}
- {id: 73, cat: PC/Games, desc: "Гонки"}
- {id: 463, cat: PC/Games, desc: "Гонки до 2003 г."}
- {id: 270, cat: PC/Games, desc: "Для самых маленьких"}
- {id: 823, cat: PC/Games, desc: "Другое"}
- {id: 624, cat: PC/Games, desc: "Программы для игр"}
- {id: 548, cat: PC/Games, desc: "Сборники до 2003 г."}
- {id: 67, cat: PC/Games, desc: "Демо-версии"}
- {id: 458, cat: PC/Games, desc: "Русификаторы \ Англофикаторы"}
- {id: 442, cat: PC/Games, desc: "Патчи"}
- {id: 66, cat: PC/Games, desc: "Модификации"}
- {id: 657, cat: PC/Games, desc: "Логические"}
- {id: 77, cat: PC/Games, desc: "Многопользовательские"}
- {id: 69, cat: PC/Games, desc: "Приключения и квесты"}
- {id: 461, cat: PC/Games, desc: "Приключения и квесты до 2003 г."}
- {id: 76, cat: PC/Games, desc: "Ролевые (RPG)"}
- {id: 455, cat: PC/Games, desc: "Ролевые (RPG) до 2003 г."}
- {id: 908, cat: PC/Games, desc: "Симуляторы"}
- {id: 271, cat: PC/Games, desc: "Спортивные симуляторы"}
- {id: 787, cat: PC/Games, desc: "Космические симуляторы"}
- {id: 74, cat: PC/Games, desc: "Другие симуляторы"}
- {id: 71, cat: PC/Games, desc: "Автосимуляторы"}
- {id: 72, cat: PC/Games, desc: "Авиасимуляторы"}
- {id: 70, cat: PC/Games, desc: "Стратегии"}
- {id: 459, cat: PC/Games, desc: "Стратегии до 2003 г."}
- {id: 903, cat: PC/Games, desc: "TBS (пошаговые стратегии)"}
- {id: 904, cat: PC/Games, desc: "RTS (стратегии в реальном времени)"}
- {id: 905, cat: PC/Games, desc: "Экономические стратегии"}
- {id: 496, cat: PC/Games, desc: "Файтинги"}
- {id: 497, cat: PC/Games, desc: "Файтинги до 2003 г."}
- {id: 906, cat: PC/Games, desc: "Репаки от R.G.Packers Torrents.Local"}
- {id: 38, cat: PC/Games, desc: "Игровые серверы"}
- {id: 961, cat: PC/Games, desc: "Игры с эмуляторами"}
- {id: 78, cat: PC/Games, desc: "Игровое видео"}
- {id: 117, cat: PC/Games, desc: "Counter-Strike"}
- {id: 483, cat: PC/Games, desc: "Lineage"}
- {id: 788, cat: PC/Games, desc: "Warcraft 3"}
- {id: 486, cat: PC/Games, desc: "World of Warcraft"}
- {id: 487, cat: PC/Games, desc: "Видеожурналы"}
- {id: 825, cat: PC/Games, desc: "Видеопрохождение игр"}
- {id: 482, cat: PC/Games, desc: "Телепередачи"}
# Игры для других платформ"
- {id: 44, cat: Console, desc: "Xbox 360"}
- {id: 868, cat: Console, desc: "PS3"}
- {id: 56, cat: Console, desc: "PS2"}
- {id: 337, cat: Console, desc: "PS1"}
- {id: 45, cat: Console, desc: "PSP"}
- {id: 42, cat: Console, desc: "Разное"}
# Программы и дизайн"
- {id: 918, cat: PC, desc: "Новые раздачи"}
- {id: 808, cat: PC, desc: "Android"}
- {id: 809, cat: PC, desc: "Игры"}
- {id: 810, cat: PC, desc: "Софт"}
- {id: 89, cat: PC, desc: "Linux, Unix и другие ОС"}
- {id: 631, cat: PC, desc: "Устаревшие дистрибутивы"}
- {id: 427, cat: PC, desc: "Программное обеспечение"}
- {id: 495, cat: PC, desc: "Игры"}
- {id: 55, cat: PC, desc: "Mac OS X, iPhone, iPod Touch"}
- {id: 586, cat: PC, desc: "Программы для iPhone/iPod Touch"}
- {id: 684, cat: PC, desc: "Игры для iPhone/iPod Touch"}
- {id: 683, cat: PC, desc: "Темы для iPhone/iPod Touch"}
- {id: 681, cat: PC, desc: "Дистрибутивы, сборки Mac OS X"}
- {id: 585, cat: PC, desc: "Программы для Mac OS X"}
- {id: 680, cat: PC, desc: "Игры для Mac OS X"}
- {id: 737, cat: PC, desc: "Разное"}
- {id: 50, cat: PC, desc: "Веб-разработка и Программирование"}
- {id: 319, cat: PC, desc: "WYSIWYG Редакторы для веб-диза"}
- {id: 316, cat: PC, desc: "Компоненты для сред программирования"}
- {id: 315, cat: PC, desc: "Скрипты и шаблоны"}
- {id: 317, cat: PC, desc: "Среды программирования, компиляторы и вспомогател..."}
- {id: 318, cat: PC, desc: "Текстовые редакторы"}
- {id: 52, cat: PC, desc: "ГИС, системы навигации и карты"}
- {id: 332, cat: PC, desc: "Материалы для мультимедиа и дизайна"}
- {id: 594, cat: PC, desc: "Авторские сборки"}
- {id: 582, cat: PC, desc: "Кисти"}
- {id: 746, cat: PC, desc: "Семплы"}
- {id: 552, cat: PC, desc: "Футажи"}
- {id: 581, cat: PC, desc: "Шрифты"}
- {id: 47, cat: PC, desc: "Операционные системы от Microsoft"}
- {id: 284, cat: PC, desc: "Настольные ОС от Microsoft (выпущенные до Windows XP)"}
- {id: 280, cat: PC, desc: "Windows XP"}
- {id: 282, cat: PC, desc: "Windows Vista"}
- {id: 378, cat: PC, desc: "Windows 7"}
- {id: 944, cat: PC, desc: "Windows 8"}
- {id: 789, cat: PC, desc: "Windows 10"}
- {id: 281, cat: PC, desc: "Серверные ОС"}
- {id: 732, cat: PC, desc: "WPI, Live CD, Пакеты обновлений"}
- {id: 51, cat: PC, desc: "Программы для работы с мультимедиа и 3D"}
- {id: 324, cat: PC, desc: "3D моделирование, рендеринг и плагины для них"}
- {id: 325, cat: PC, desc: "Анимация"}
- {id: 330, cat: PC, desc: "Аудио- и видео-, CD- проигрыватели и каталогизаторы"}
- {id: 328, cat: PC, desc: "Аудио- и видео- конверторы"}
- {id: 118, cat: PC, desc: "Графические редакторы"}
- {id: 331, cat: PC, desc: "Каталогизаторы и просмотрщики графики"}
- {id: 623, cat: PC, desc: "Кодеки"}
- {id: 329, cat: PC, desc: "Работа со звуком"}
- {id: 327, cat: PC, desc: "Редакторы видео"}
- {id: 326, cat: PC, desc: "Создание DVD-видео"}
- {id: 322, cat: PC, desc: "Плагины для программ компании Adobe"}
- {id: 321, cat: PC, desc: "Программные комплекты"}
- {id: 323, cat: PC, desc: "Программы для верстки, печати и работы со шрифтами"}
- {id: 48, cat: PC, desc: "Системные программы"}
- {id: 291, cat: PC, desc: "Анти-шпионы и анти-трояны"}
- {id: 300, cat: PC, desc: "Архиваторы и файловые менеджеры"}
- {id: 289, cat: PC, desc: "Драйвера"}
- {id: 287, cat: PC, desc: "Изменение интерфейса ОС Windows"}
- {id: 296, cat: PC, desc: "Информация и диагностика"}
- {id: 290, cat: PC, desc: "Программы для защиты информации"}
- {id: 295, cat: PC, desc: "Программы для интернет и сетей"}
- {id: 292, cat: PC, desc: "Программы для защиты компьютера"}
- {id: 299, cat: PC, desc: "Программы для настройки и оптимизации ОС"}
- {id: 297, cat: PC, desc: "Работа с носителями информации"}
- {id: 285, cat: PC, desc: "Работа с жёстким диском"}
- {id: 301, cat: PC, desc: "Резервное копирование"}
- {id: 288, cat: PC, desc: "Серверное ПО для Windows"}
- {id: 298, cat: PC, desc: "Сервисное обслуживание компьютера"}
- {id: 286, cat: PC, desc: "Скринсейверы"}
- {id: 54, cat: PC, desc: "Разное"}
- {id: 622, cat: PC, desc: "Обучающие программы, энциклопедии, электронные пособия ..."}
- {id: 303, cat: PC, desc: "Системы для бизнеса, офиса, научной и проектной работы"}
- {id: 313, cat: PC, desc: "Медицинский софт"}
- {id: 305, cat: PC, desc: "Офисные системы"}
- {id: 312, cat: PC, desc: "Программы для архитекторов и дизайнеров интерьеров"}
- {id: 314, cat: PC, desc: "Прочие справочные системы"}
- {id: 308, cat: PC, desc: "Работа с PDF и DjVu"}
- {id: 307, cat: PC, desc: "Распознавание текста, звука и синтез речи"}
- {id: 311, cat: PC, desc: "САПР"}
- {id: 306, cat: PC, desc: "Системы для бизнеса"}
- {id: 310, cat: PC, desc: "Системы для научной работы"}
- {id: 309, cat: PC, desc: "Словари, переводчики"}
modes:
search: [q]
login:
path: login.php
method: post
inputs:
"login_username": "{{ .Config.username }}"
"login_password": "{{ .Config.password }}"
autologin: 1
login: "Log in"
error:
- selector: h4.text-danger
test:
path: tracker.php
selector: a[href="./login.php?logout=1"]
search:
paths:
- path: tracker.php
method: post
inputs:
$raw: "{{ if .Categories }}{{ range .Categories }}f[]={{.}}&{{end}}{{else}}f[]=-1{{end}}"
prev_allw: 1
prev_a: 0
prev_dla: 0
prev_dlc: 0
prev_dld: 0
prev_dlw: 0
prev_my: 0
prev_new: 0
prev_sd: 0
prev_da: 1
prev_dc: 0
prev_df: 1
prev_ds: 0
prev_tor_type: 0
# sort by 1=registered 2=topicTitle 4=completed 10=seed 11=leech 12=up 13=down 5=replies 6=views 7=size 8=lastPost 9=seedLastSeen
o: 1
# 1=asc 2=desc
s: 2
# show category
dc: 0
# show forum
df: 1
# show author
da: 1
# show speed
ds: 0
# -1=all time
tm: -1
# seed not seen -1=disregard
sns: -1
# group releases -1=not selected
srg: -1
nm: "{{ .Keywords }}"
# find a username
pn: ""
rows:
selector: tr[id^="tor_"]
fields:
title:
selector: td a.genmed b
details:
selector: td a.genmed
attribute: href
download:
selector: td a.tr-dl
attribute: href
category:
selector: td a.gen
attribute: href
filters:
- name: querystring
args: "f"
size:
selector: td a.tr-dl
filters:
- name: replace
args: [".", ""]
- name: replace
args: [",", "."]
seeders:
selector: td.seedmed
leechers:
selector: td.leechmed
# Russian and Ukranian and English languages are supported
grabs:
optional: true
selector: td[title^="Ответов"]
grabs:
optional: true
selector: td[title^="Відповідей"]
grabs:
optional: true
selector: td[title^="Replies"]
# date for English, Russian, Ukrainian
date:
selector: td[title="Added"] p:last-of-type, td[title="Добавлен"] p:last-of-type, td[title="Додано"] p:last-of-type
filters:
# replace month abbreviations
- name: re_replace
args: ["Янв|Січ", "Jan"]
- name: re_replace
args: ["Фев|Лют", "Feb"]
- name: re_replace
args: ["Мар|Бер", "Mar"]
- name: re_replace
args: ["Апр|Кві", "Apr"]
- name: re_replace
args: ["Май|Травень", "May"]
- name: re_replace
args: ["Июн|Чер", "Jun"]
- name: re_replace
args: ["Июл|Лип", "Jul"]
- name: re_replace
args: ["Авг|Сер", "Aug"]
- name: re_replace
args: ["Сен|Вер", "Sep"]
- name: re_replace
args: ["Окт|Жов", "Oct"]
- name: re_replace
args: ["Ноя|Лис", "Nov"]
- name: re_replace
args: ["Дек|Грудень", "Dec"]
- name: dateparse
args: "2-Jan-06"
downloadvolumefactor:
case:
img[src="styles/images/tor_gold.gif"]: "0"
img[src="styles/images/tor_silver.gif"]: "0.5"
"*": "1"
uploadvolumefactor:
case:
"*": "1"

View File

@@ -16,7 +16,7 @@
modes:
search: [q]
tv-search: [q, season, ep]
music-search: [q, album, artist, label, year]
login:
path: takelogin.php
@@ -33,7 +33,7 @@
paths:
- path: browse.php
inputs:
search: "{{ .Query.Keywords }}"
search: "{{if .Query.Artist}}{{ .Query.Artist }}{{else}}{{ .Keywords }}{{end}}"
rows:
selector: table.mainouter table > tbody > tr:has(a[href^="details.php?id="])
fields:

View File

@@ -12,23 +12,20 @@
categorymappings:
- {id: 1, cat: Movies, desc: "Film"}
- {id: 2, cat: TV, desc: "Série"}
- {id: 3, cat: TV/Anime, desc: "Film d'Animation"}
- {id: 5, cat: TV/Sport, desc: "Sport"}
- {id: 3, cat: TV/Anime, desc: "Animés"}
- {id: 5, cat: Audio, desc: "Audios"}
- {id: 6, cat: TV/Documentary, desc: "Documentaire"}
- {id: 7, cat: Audio, desc: "Musique"}
- {id: 8, cat: Audio/Other, desc: "Podcast Audio"}
- {id: 7, cat: Other, desc: "Formations"}
- {id: 13, cat: Books/Ebook, desc: "eBooks"}
- {id: 14, cat: TV, desc: "Spectacle"}
- {id: 14, cat: Console, desc: "Jeux"}
- {id: 15, cat: Audio/Video, desc: "Concert"}
- {id: 18, cat: TV/Anime, desc: "Manga"}
- {id: 19, cat: Books/Comics, desc: "Comics"}
- {id: 20, cat: Books/Comics, desc: "Bande dessinée"}
- {id: 22, cat: Console, desc: "Jeux"}
- {id: 25, cat: PC, desc: "Logiciels"}
- {id: 27, cat: TV, desc: "Spectacles"}
modes:
search: [q]
tv-search: [q, season, ep, imdbid]
movie-search: [q, imdbid]
tv-search: [q, season, ep]
movie-search: [q]
login:
path: login
@@ -37,18 +34,14 @@
username: "{{ .Config.username }}"
password: "{{ .Config.password }}"
remember: 1
selectorinputs:
_token:
selector: meta[name="csrf-token"]
attribute: content
error:
- selector: form[action$="/login"] span strong
test:
path: /
path: torrents
selector: a[href$="/logout"]
ratio:
path: /
path: torrents
selector: span:has(i.fa-sync-alt)
filters:
- name: regexp
@@ -59,14 +52,11 @@
- path: filterTorrents
inputs:
$raw: "{{range .Categories}}categories[]={{.}}&{{end}}"
search: "{{if .Query.IMDBID}}{{else}}{{ .Keywords }}{{end}}"
search: "{{ .Keywords }}"
description: ""
uploader: ""
imdb: "{{ .Query.IMDBIDShort }}"
tvdb: ""
tmdb: ""
mal: ""
sorting: created_at
direction: desc
sort: "created_at"
direction: "desc"
qty: 100
rows:
selector: table > tbody > tr
@@ -85,21 +75,17 @@
details:
selector: a.view-torrent
attribute: href
imdb:
selector: a[href^="https://www.imdb.com/title/"]
attribute: href
optional: true
size:
selector: td:nth-child(5)
seeders:
selector: td:nth-child(7)
leechers:
selector: td:nth-child(8)
selector: td:nth-child(4)
grabs:
selector: td:nth-child(6)
selector: td:nth-child(5)
filters:
- name: regexp
args: ([\d\.]+)
seeders:
selector: td:nth-child(6)
leechers:
selector: td:nth-child(7)
date:
selector: time
filters:
@@ -117,12 +103,13 @@
args: " ago"
downloadvolumefactor:
case:
"i[data-original-title=\"100% Free\"]": "0" # Single Torrent Freeleech
"i[data-original-title=\"Freeleech\"]": "0" # Single Torrent Freeleech
"i[data-original-title=\"Global freeleech\"]": "0" # Global Freeleech
"*": "1"
uploadvolumefactor:
case:
"i[data-original-title=\"Global freeleech\"]": "2" # Global Freeleech
"i[data-original-title=\"Double upload\"]": "2" # Single Torrent Double Upload
"i[data-original-title=\"Double Upload\"]": "2" # Global Double Upload
"*": "1"
# UNIT3D
# UNIT3D 1.?

View File

@@ -61,6 +61,19 @@
modes:
search: [q]
tv-search: [q, season, ep]
settings:
- name: username
type: text
label: Username
- name: password
type: password
label: Password
- name: seedbox
type: checkbox
label: "Use SeedBox Download Link"
default: false
login:
path: login.php
@@ -103,9 +116,14 @@
title:
selector: a[href^="details.php?id="]
attribute: title
download:
download1:
selector: a[href^="download.php"]
attribute: href
download2:
selector: a[href^="download2.php"]
attribute: href
download:
text: "{{if .Config.seedbox}}{{ .Result.download2 }}{{else}}{{ .Result.download1 }}{{end}}"
details:
selector: a[href^="details.php?id="]
attribute: href

View File

@@ -139,6 +139,10 @@
type: checkbox
label: Enhance sonarr compatibility with anime by renaming episode (xxx to exxx). Works only if episode is at the end of the query. Can disturb movies search. (back to the future 3 -> back to the future e3)
default: false
- name: sonarrv3hack
type: checkbox
label: "Enable Full season search hack: Sonarrv3 send 'Series Name SXX' but it won't match 'Series Name - Saison 01' for example so we remove the 'SXX' ==> 'Series Name'"
default: true
login:
method: form
@@ -159,7 +163,7 @@
keywordsfilters:
# Full season seach hack: Sonarrv3 send 'Series Name SXX' but it won't match 'Series Name - Saison 01' for example so we remove the 'SXX' ==> 'Series Name'
- name: re_replace
args: ["(.*)[sS](\\d{1,4})$", "$1"]
args: ["(.*)[sS](\\d{1,4})$", "{{ if .Config.sonarrv3hack }}$1{{else}}$1S$2{{end}}"]
- name: replace
args: ["\"", ""]
- name: trim

View File

@@ -155,34 +155,29 @@ namespace Jackett.Common.Indexers
release.Title = qRow.Find("td.mainblockcontent b a").Text();
release.Description = qRow.Find("td:nth-child(3) > span").Text();
if (0 != qRow.Find("td.mainblockcontent u").Length)
{
var imdbStr = qRow.Find("td.mainblockcontent u").Parent().First().Attr("href").Replace("http://www.imdb.com/title/tt", "").Replace("/", "");
long imdb;
if (ParseUtil.TryCoerceLong(imdbStr, out imdb))
{
release.Imdb = imdb;
}
}
release.MinimumRatio = 1;
release.MinimumSeedTime = 172800;
int tdIndex = 0;
if(qRow.Find("td:nth-last-child(1)").Text() == "Edit") tdIndex = 1;
// moderators get additional delete, recomend and like links
if (qRow.Find("td:nth-last-child(4)").Text() == "Edit") tdIndex = 4;
// Sometimes the uploader column is missing
int seeders, peers;
if (ParseUtil.TryCoerceInt(qRow.Find($"td:nth-last-child({tdIndex + 3})").Text(), out seeders))
if (ParseUtil.TryCoerceInt(qRow.Find($"td:nth-last-child({tdIndex + 3})").Text(), out int seeders))
{
release.Seeders = seeders;
if (ParseUtil.TryCoerceInt(qRow.Find($"td:nth-last-child({tdIndex + 2})").Text(), out peers))
if (ParseUtil.TryCoerceInt(qRow.Find($"td:nth-last-child({tdIndex + 2})").Text(), out int peers))
{
release.Peers = peers + release.Seeders;
}
}
release.Grabs = ParseUtil.CoerceLong(qRow.Find($"td:nth-last-child({tdIndex + 1})").Text());
// Sometimes the grabs column is missing
if (ParseUtil.TryCoerceLong(qRow.Find($"td:nth-last-child({tdIndex + 1})").Text(), out long grabs))
{
release.Grabs = grabs;
}
string fullSize = qRow.Find("td.mainblockcontent").Get(6).InnerText;
release.Size = ReleaseInfo.GetBytes(fullSize);
@@ -216,7 +211,7 @@ namespace Jackett.Common.Indexers
else
release.DownloadVolumeFactor = 1;
var imdblink = qRow.Find("a[href^=\"https://www.imdb.com/title/\"]").Attr("href");
var imdblink = qRow.Find("a[href*=\"www.imdb.com/title/\"]").Attr("href");
release.Imdb = ParseUtil.GetLongFromString(imdblink);
releases.Add(release);

View File

@@ -22,6 +22,7 @@ namespace Jackett.Common.Indexers
public override string[] LegacySiteLinks { get; protected set; } = new string[] {
"https://torrentheaven.myfqdn.info/",
};
private string IndexUrl { get { return SiteLink + "index.php"; } }
private string LoginCompleteUrl { get { return SiteLink + "index.php?strWebValue=account&strWebAction=login_complete&ancestry=verify"; } }
@@ -46,6 +47,8 @@ namespace Jackett.Common.Indexers
Language = "de-de";
Type = "private";
wc.AddTrustedCertificate(new Uri(SiteLink).Host, "cbf23ac75b07255ad7548a87567a839d23f31576"); // incomplete CA chain
AddCategoryMapping(1, TorznabCatType.PCGames, "GAMES/PC");
AddCategoryMapping(3, TorznabCatType.Console, "GAMES/Sonstige");
AddCategoryMapping(59, TorznabCatType.ConsolePS4, "GAMES/PlayStation");

View File

@@ -13,7 +13,7 @@ namespace Jackett.Common.Services
{
private readonly List<TrackerCache> cache = new List<TrackerCache>();
private readonly int MAX_RESULTS_PER_TRACKER = 1000;
private readonly TimeSpan AGE_LIMIT = new TimeSpan(7, 0, 0, 0);
private readonly TimeSpan AGE_LIMIT = new TimeSpan(0, 1, 0, 0);
public void CacheRssResults(IIndexer indexer, IEnumerable<ReleaseInfo> releases)
{
@@ -44,7 +44,7 @@ namespace Jackett.Common.Services
// Prune cache
foreach(var tracker in cache)
{
tracker.Results = tracker.Results.OrderByDescending(i => i.Created).Take(MAX_RESULTS_PER_TRACKER).ToList();
tracker.Results = tracker.Results.Where(x => x.Created > DateTime.Now.Subtract(AGE_LIMIT)).OrderByDescending(i => i.Created).Take(MAX_RESULTS_PER_TRACKER).ToList();
}
}
}

View File

@@ -14,6 +14,7 @@ using Jackett.Common.Models.Config;
using Jackett.Common.Services.Interfaces;
using NLog;
using Jackett.Common.Helpers;
using System.Diagnostics;
namespace Jackett.Common.Utils.Clients
{
@@ -23,6 +24,34 @@ namespace Jackett.Common.Utils.Clients
static protected string webProxyUrl;
static protected IWebProxy webProxy;
[DebuggerNonUserCode] // avoid "Exception User-Unhandled" Visual Studio messages
static public bool ValidateCertificate(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors)
{
if (sender.GetType() != typeof(HttpWebRequest))
return sslPolicyErrors == SslPolicyErrors.None;
var request = (HttpWebRequest)sender;
var hash = certificate.GetCertHashString();
ICollection<string> hosts;
trustedCertificates.TryGetValue(hash, out hosts);
if (hosts != null)
{
if (hosts.Contains(request.Host))
return true;
}
if (sslPolicyErrors != SslPolicyErrors.None)
{
// Throw exception with certificate details, this will cause a "Exception User-Unhandled" when running it in the Visual Studio debugger.
// The certificate is only available inside this function, so we can't catch it at the calling method.
throw new Exception("certificate validation failed: " + certificate.ToString());
}
return sslPolicyErrors == SslPolicyErrors.None;
}
static public void InitProxy(ServerConfig serverConfig)
{
// dispose old SocksWebProxy
@@ -100,30 +129,7 @@ namespace Jackett.Common.Utils.Clients
}
// custom handler for our own internal certificates
ServicePointManager.ServerCertificateValidationCallback += delegate (object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors)
{
if (sender.GetType() != typeof(HttpWebRequest))
return sslPolicyErrors == SslPolicyErrors.None;
var request = (HttpWebRequest)sender;
var hash = certificate.GetCertHashString();
ICollection<string> hosts;
trustedCertificates.TryGetValue(hash, out hosts);
if (hosts != null)
{
if (hosts.Contains(request.Host))
return true;
}
if (sslPolicyErrors != SslPolicyErrors.None)
{
throw new Exception("certificate validation failed: " + certificate.ToString());
}
return sslPolicyErrors == SslPolicyErrors.None;
};
ServicePointManager.ServerCertificateValidationCallback += ValidateCertificate;
}
override protected async Task<WebClientByteResult> Run(WebRequest webRequest)

View File

@@ -14,6 +14,7 @@ using Jackett.Common.Models.Config;
using Jackett.Common.Services.Interfaces;
using NLog;
using Jackett.Common.Helpers;
using System.Diagnostics;
namespace Jackett.Common.Utils.Clients
{
@@ -30,6 +31,34 @@ namespace Jackett.Common.Utils.Clients
static protected string webProxyUrl;
static protected IWebProxy webProxy;
[DebuggerNonUserCode] // avoid "Exception User-Unhandled" Visual Studio messages
static public bool ValidateCertificate(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors)
{
if (sender.GetType() != typeof(HttpWebRequest))
return sslPolicyErrors == SslPolicyErrors.None;
var request = (HttpWebRequest)sender;
var hash = certificate.GetCertHashString();
ICollection<string> hosts;
trustedCertificates.TryGetValue(hash, out hosts);
if (hosts != null)
{
if (hosts.Contains(request.Host))
return true;
}
if (sslPolicyErrors != SslPolicyErrors.None)
{
// Throw exception with certificate details, this will cause a "Exception User-Unhandled" when running it in the Visual Studio debugger.
// The certificate is only available inside this function, so we can't catch it at the calling method.
throw new Exception("certificate validation failed: " + certificate.ToString());
}
return sslPolicyErrors == SslPolicyErrors.None;
}
static public void InitProxy(ServerConfig serverConfig)
{
// dispose old SocksWebProxy
@@ -134,30 +163,7 @@ namespace Jackett.Common.Utils.Clients
ServicePointManager.SecurityProtocol = (SecurityProtocolType)192 | (SecurityProtocolType)768 | (SecurityProtocolType)3072;
// custom handler for our own internal certificates
ServicePointManager.ServerCertificateValidationCallback += delegate (object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors)
{
if (sender.GetType() != typeof(HttpWebRequest))
return sslPolicyErrors == SslPolicyErrors.None;
var request = (HttpWebRequest)sender;
var hash = certificate.GetCertHashString();
ICollection<string> hosts;
trustedCertificates.TryGetValue(hash, out hosts);
if (hosts != null)
{
if (hosts.Contains(request.Host))
return true;
}
if (sslPolicyErrors != SslPolicyErrors.None)
{
throw new Exception("certificate validation failed: " + certificate.ToString());
}
return sslPolicyErrors == SslPolicyErrors.None;
};
ServicePointManager.ServerCertificateValidationCallback += ValidateCertificate;
}
override protected async Task<WebClientByteResult> Run(WebRequest webRequest)

View File

@@ -14,6 +14,7 @@ using Jackett.Common.Models.Config;
using Jackett.Common.Services.Interfaces;
using NLog;
using Jackett.Common.Helpers;
using System.Diagnostics;
namespace Jackett.Common.Utils.Clients
{
@@ -24,6 +25,32 @@ namespace Jackett.Common.Utils.Clients
static protected string webProxyUrl;
static protected IWebProxy webProxy;
[DebuggerNonUserCode] // avoid "Exception User-Unhandled" Visual Studio messages
static public bool ValidateCertificate(HttpRequestMessage request, X509Certificate2 certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors)
{
{
var hash = certificate.GetCertHashString();
ICollection<string> hosts;
trustedCertificates.TryGetValue(hash, out hosts);
if (hosts != null)
{
if (hosts.Contains(request.RequestUri.Host))
return true;
}
if (sslPolicyErrors != SslPolicyErrors.None)
{
// Throw exception with certificate details, this will cause a "Exception User-Unhandled" when running it in the Visual Studio debugger.
// The certificate is only available inside this function, so we can't catch it at the calling method.
throw new Exception("certificate validation failed: " + certificate.ToString());
}
return sslPolicyErrors == SslPolicyErrors.None;
}
}
static public void InitProxy(ServerConfig serverConfig)
{
// dispose old SocksWebProxy
@@ -137,26 +164,7 @@ namespace Jackett.Common.Utils.Clients
})
{
// custom certificate validation handler (netcore version)
clientHandlr.ServerCertificateCustomValidationCallback = (request, certificate, chain, sslPolicyErrors) =>
{
var hash = certificate.GetCertHashString();
ICollection<string> hosts;
trustedCertificates.TryGetValue(hash, out hosts);
if (hosts != null)
{
if (hosts.Contains(request.RequestUri.Host))
return true;
}
if (sslPolicyErrors != SslPolicyErrors.None)
{
throw new Exception("certificate validation failed: " + certificate.ToString());
}
return sslPolicyErrors == SslPolicyErrors.None;
};
clientHandlr.ServerCertificateCustomValidationCallback = ValidateCertificate;
clearanceHandlr.InnerHandler = clientHandlr;
using (var client = new HttpClient(clearanceHandlr))

View File

@@ -103,5 +103,18 @@ namespace Jackett.Common.Utils
}
}
}
public bool IsNonWindowsDotNetCoreVariant(JackettVariant variant)
{
if (variant == JackettVariant.CoreMacOs || variant == JackettVariant.CoreLinuxAmdx64
|| variant == JackettVariant.CoreLinuxArm32 || variant == JackettVariant.CoreLinuxArm64)
{
return true;
}
else
{
return false;
}
}
}
}

View File

@@ -6,6 +6,7 @@
<AssemblyName>JackettConsole</AssemblyName>
<OutputType>Exe</OutputType>
<NoWarn>NU1605</NoWarn>
<ServerGarbageCollection>false</ServerGarbageCollection>
</PropertyGroup>
<PropertyGroup Condition="'$(TargetFramework)' != 'net461' and $(RuntimeIdentifier.Contains('win')) == 'false'">

View File

@@ -174,6 +174,34 @@ namespace Jackett.Updater
// On unix we kill the PIDs after the update so e.g. systemd can automatically restart the process
KillPids(pids);
}
Variants variants = new Variants();
if (variants.IsNonWindowsDotNetCoreVariant(variant))
{
// On Linux you can't modify an executable while it is executing
// https://github.com/Jackett/Jackett/issues/5022
// https://stackoverflow.com/questions/16764946/what-generates-the-text-file-busy-message-in-unix#comment32135232_16764967
// Delete the ./jackett executable
try
{
logger.Info("Attempting to remove the jackett executable from: " + options.Path);
string executable = options.Path.TrimEnd('/') + "/jackett";
if (File.Exists(executable))
{
File.Delete(executable);
logger.Info("Deleted " + executable);
}
else
{
logger.Info("jackett executable not found in: " + executable);
}
}
catch (Exception e)
{
logger.Error(e);
}
}
logger.Info("Finding files in: " + updateLocation);
var files = Directory.GetFiles(updateLocation, "*.*", SearchOption.AllDirectories);
foreach (var file in files)
@@ -292,6 +320,9 @@ namespace Jackett.Updater
"Definitions/redtopia.yml",
"Definitions/btxpress.yml",
"Definitions/btstornet.yml",
"Definitions/crazyhd.yml",
"Definitions/hdplus.yml",
"Definitions/gods.yml",
};
foreach (var oldFile in oldFiles)
@@ -402,8 +433,8 @@ namespace Jackett.Updater
private string GetJackettConsolePath(string directoryPath)
{
if (variant == Variants.JackettVariant.CoreMacOs || variant == Variants.JackettVariant.CoreLinuxAmdx64
|| variant == Variants.JackettVariant.CoreLinuxArm32 || variant == Variants.JackettVariant.CoreLinuxArm64)
Variants variants = new Variants();
if (variants.IsNonWindowsDotNetCoreVariant(variant))
{
return Path.Combine(directoryPath, "jackett");
}