Compare commits

...

88 Commits

Author SHA1 Message Date
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
Garfield69
4ea6ce6cc2 gktorrent: they are back onto .net domain 2019-04-01 10:59:00 +13:00
Garfield69
f905e44b09 racingforeveryone: updates for unit3d 1.9.2 2019-04-01 10:44:14 +13:00
Jorman
fa1ee57072 ilcorsaronero: update multi-page searching (#5001) 2019-04-01 09:50:34 +13:00
Jorman
da56368720 monova: date and size selector updates plus up to 5 page fetch (#5002)
Sometimes I got some error from monova, like date, size
So I update these field and I added the search and rss sync up to page 5
2019-04-01 09:06:00 +13:00
Garfield69
a61991fcdb custom.js: prevent null.trim error resolves #5000 2019-04-01 08:35:22 +13:00
WSHaRK993
8051e87d2a README: Jackett binary is now named jackett instead of JackettConsole (Linux/macOS) (#4995)
plus other cosmetic amendments
2019-04-01 08:29:31 +13:00
WSHaRK993
a0eb39f87b hdforever: Freeleech tag fix & token option (#4994) resolves #4979 2019-04-01 07:32:40 +13:00
flightlevel
b3d2ad94a7 Add proxy warning to dashboard 2019-03-31 11:50:32 +11:00
Garfield69
a6154898ed amigosshare: add info about torrent list. #4988 2019-03-30 16:34:37 +13:00
Garfield69
9b39e1c3c2 scenetime: add freeleech filter. resolves #4983 2019-03-29 16:32:35 +13:00
Garfield69
656702cde7 blutopia: changes for unit3d 1.9.2 2019-03-29 14:43:07 +13:00
Garfield69
34114c23fc channelx: updates for unit3d 1.9.2 #4924 2019-03-29 08:48:38 +13:00
Garfield69
31c629c862 Update no_information_provided.md 2019-03-29 07:25:01 +13:00
flightlevel
be34f78be0 Remove Mono from macOS instructions 2019-03-28 20:25:33 +11:00
flightlevel
219d9548a1 macOS no longer requires Mono 2019-03-28 20:23:45 +11:00
morpheus133
88a24cad1e bithumen: PublishDate to torrents from current year was handled wrongly. (#4978) 2019-03-28 09:10:52 +13:00
Garfield69
a86e1e82f2 avg: add language support for Russian and Ukranian. #4969 2019-03-28 08:54:34 +13:00
Garfield69
747394fce7 add peers.fm a private Russian tracker. Resolves #4969 2019-03-27 13:22:42 +13:00
Garfield69
09229dcf29 add avg a private Russian Games site. #4969 2019-03-27 10:41:51 +13:00
Garfield69
5afc1a1c9a torrentsectorcrew: add info about classic layout 2019-03-26 19:27:09 +13:00
Garfield69
505948b69a add tigers-dl a French Private tracker. #4961
yet to find volumefactors
2019-03-26 16:05:58 +13:00
kaso17
68e72e41cf Psytorrents: update certificate 2019-03-25 17:14:45 +01:00
kaso17
573ba5b41f BJShare: ad re-login 2019-03-25 17:14:34 +01:00
kaso17
dfd1ec375b Torrent Sector Crew: fix indexer 2019-03-25 16:56:06 +01:00
kaso17
3fa0b76b59 remove BTF invite flag 2019-03-25 15:30:21 +01:00
kaso17
c830a59d58 ImmortalSeed: fix indexer 2019-03-25 15:27:25 +01:00
kaso17
d05767fd3b Bittorrentfiles: fix links 2019-03-25 15:07:12 +01:00
64 changed files with 2533 additions and 675 deletions

View File

@@ -5,5 +5,5 @@ You've created an issue, but haven't provided any details to allow the community
Provide a description of the feature request or bug, the more details the better.
If you are experiencing an issue with a tracker, a **full enhanced log must be included**. Instructions for obtaining logs are here: https://github.com/Jackett/Jackett#troubleshooting
**Jackett version**:
**Mono version** (if not using Windows):
(At the bottom of your Jackett Dashboard page) **Jackett version**:
(if you installed using Jackett.Binaries.Mono.tar.gz) **Mono version**:

View File

@@ -9,16 +9,16 @@
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.
#### Supported Systems
* Windows using .NET 4.6.1 or above [Download here](https://www.microsoft.com/net/framework/versions/net461).
* Linux
* macOS using Mono 5.8 or above. [Download here](http://www.mono-project.com/download/).
* Windows 7SP1 or greater using .NET 4.6.1 or above [Download here](https://www.microsoft.com/net/framework/versions/net461)
* Linux ([supported operating systems here](https://github.com/dotnet/core/blob/master/release-notes/2.1/2.1-supported-os.md))
* macOS 10.12 or greater
### Supported Public Trackers
* 1337x
@@ -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)
@@ -134,6 +136,7 @@ Developer note: The software implements the [Torznab](https://github.com/Sonarr/
* Audiobook Torrents (ABT)
* AudioNews (AN)
* Awesome-HD (AHD)
* AVG (Audio Video Games)
* Avistaz (AsiaTorrents)
* B2S-Share
* Back-ups
@@ -151,7 +154,7 @@ Developer note: The software implements the [Torznab](https://github.com/Sonarr/
* BitMeTV
* BitsPiracy
* Bitspyder
* BitTorrentFiles [![(invite needed)][inviteneeded]](#)
* BitTorrentFiles
* BitTurk
* BJ-Share (BJ)
* BlueBird
@@ -199,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
@@ -212,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
@@ -230,7 +233,6 @@ Developer note: The software implements the [Torznab](https://github.com/Sonarr/
* HDCity
* HDHome (HDBigger)
* HDME
* HDplus
* HDSky
* HDTorrents.it
* Hebits
@@ -271,6 +273,7 @@ Developer note: The software implements the [Torznab](https://github.com/Sonarr/
* P2PBG
* Passione Torrent <!-- maintained by bonny1992 -->
* PassThePopcorn (PTP)
* Peers.FM
* PiratBit
* PirateTheNet (PTN)
* PiXELHD (PxHD)
@@ -328,12 +331,13 @@ Developer note: The software implements the [Torznab](https://github.com/Sonarr/
* The Show
* The-Torrents
* The Vault
* Tigers-dl
* Torrent Network (TN)
* Torrent Sector Crew (TSC)
* Torrent.LT
* TorrentBD
* TorrentBytes (TBy)
* TorrentCCF (TCCF) [![(invite needed)][inviteneeded]](#)
* TorrentCCF (TCCF)
* TorrentDay (TD)
* Torrentech (TTH)
* TorrentHeaven
@@ -388,8 +392,8 @@ Using the all indexer has no advantages (besides reduced management overhead), o
To get all Jackett indexers including their capabilities you can use `t=indexers` on the all indexer. To get only configured/unconfigured indexers you can also add `configured=true/false` as query parameter.
## Installation on Windows
## Installation on Windows
We recommend you install Jackett as a Windows service using the supplied installer. You may also download the zipped version if you would like to configure everything manually.
To get started with using the installer for Jackett, follow the steps below:
@@ -405,20 +409,30 @@ When installed as a service the tray icon acts as a way to open/start/stop Jacke
Jackett can also be run from the command line if you would like to see log messages (Ensure the server isn't already running from the tray/service). This can be done by using "JackettConsole.exe" (for Command Prompt), found in the Jackett data folder: "%ProgramData%\Jackett".
## Install on Linux (AMDx64)
1. Download and extract the latest `Jackett.Binaries.LinuxAMDx64.tar.gz` release from the [releases page](https://github.com/Jackett/Jackett/releases) and run Jackett with the command `./jackett`
2. (Optional) To install Jackett as a service, open the Terminal and run `sudo ./install_service_systemd.sh` You need root permissions to install the service. The service will start on each logon. You can always stop it by running `systemctl stop jackett.service` from Terminal. You can start it again it using `systemctl start jackett.service`. Logs are stored as usual under `~/.config/Jackett/log.txt` and also in `journalctl -u jackett.service`.
## Install on Linux (AMDx64)
On most operating systems all the required dependencies will already be present. In case they are not, you can refer to this page https://docs.microsoft.com/en-us/dotnet/core/linux-prerequisites?tabs=netcore2x#linux-distribution-dependencies
### Install as service
To install Jackett as a service, open the Terminal and run `sudo ./install_service_systemd.sh` You need root permissions to install the service. The service will start on each logon. You can always stop it by running `systemctl stop jackett.service` from Terminal. You can start it again it using `systemctl start jackett.service`. Logs are stored as usual under `~/.config/Jackett/log.txt` and also in `journalctl -u jackett.service`.
### Run without installing as a service
Download and extract the latest `Jackett.Binaries.LinuxAMDx64.tar.gz` release from the [releases page](https://github.com/Jackett/Jackett/releases) and run Jackett with the command `./jackett`
### home directory
If you want to run it with a user without a /home directory you need to add `Environment=XDG_CONFIG_HOME=/path/to/folder` to your systemd file, this folder will be used to store your config files.
## Install on Linux (ARMv7 or above)
1. Download and extract the latest `Jackett.Binaries.LinuxARM32.tar.gz` or `Jackett.Binaries.LinuxARM64.tar.gz` (32 bit is the most common on ARM) release from the [releases page](https://github.com/Jackett/Jackett/releases) and run Jackett with the command `./jackett`
2. (Optional) To install Jackett as a service, open the Terminal and run `sudo ./install_service_systemd.sh` You need root permissions to install the service. The service will start on each logon. You can always stop it by running `systemctl stop jackett.service` from Terminal. You can start it again it using `systemctl start jackett.service`. Logs are stored as usual under `~/.config/Jackett/log.txt` and also in `journalctl -u jackett.service`.
## Install on Linux (ARMv7 or above)
On most operating systems all the required dependencies will already be present. In case they are not, you can refer to this page https://docs.microsoft.com/en-us/dotnet/core/linux-prerequisites?tabs=netcore2x#linux-distribution-dependencies
### Install as service
To install Jackett as a service, open the Terminal and run `sudo ./install_service_systemd.sh` You need root permissions to install the service. The service will start on each logon. You can always stop it by running `systemctl stop jackett.service` from Terminal. You can start it again it using `systemctl start jackett.service`. Logs are stored as usual under `~/.config/Jackett/log.txt` and also in `journalctl -u jackett.service`.
### Run without installing as a service
Download and extract the latest `Jackett.Binaries.LinuxARM32.tar.gz` or `Jackett.Binaries.LinuxARM64.tar.gz` (32 bit is the most common on ARM) release from the [releases page](https://github.com/Jackett/Jackett/releases) and run Jackett with the command `./jackett`
### home directory
If you want to run it with a user without a /home directory you need to add `Environment=XDG_CONFIG_HOME=/path/to/folder` to your systemd file, this folder will be used to store your config files.
@@ -437,35 +451,39 @@ If you want to run it with a user without a /home directory you need to add `Env
Mono must be compiled with the Roslyn compiler (default), using MCS will cause "An error has occurred." errors (See https://github.com/Jackett/Jackett/issues/2704).
### Installation on Linux via Ansible
On a RHEL/Centos 7 system: [linuxhq.jackett](https://galaxy.ansible.com/linuxhq/jackett)
On an Ubuntu 16 system: [chrisjohnson00.jackett](https://galaxy.ansible.com/chrisjohnson00/jackett)
## Installation on macOS
### Prerequisites
Install [Mono 5.8](http://www.mono-project.com/download/#download-mac) or better (using the latest pkg installer is recommended).
* Setup ssl support by running `curl -sS https://curl.haxx.se/ca/cacert.pem | cert-sync --user /dev/stdin`
macOS 10.12 or greater
### Install as service
1. Download and extract the latest `Jackett.Binaries.Mono.tar.gz` release from the [releases page](https://github.com/Jackett/Jackett/releases).
2. Open the extracted folder and double-click on `install_service_macos_mono`.
1. Download and extract the latest `Jackett.Binaries.macOS.tar.gz` release from the [releases page](https://github.com/Jackett/Jackett/releases).
2. Open the extracted folder and double-click on `install_service_macos`.
3. If the installation was a success, you can close the Terminal window.
The service will start on each logon. You can always stop it by running `launchctl unload ~/Library/LaunchAgents/org.user.Jackett.plist` from Terminal. You can start it again it using `launchctl load ~/Library/LaunchAgents/org.user.Jackett.plist`.
Logs are stored as usual under `~/.config/Jackett/log.txt`.
### Run without installing as a service
Download and extract the latest `Jackett.Binaries.Mono.tar.gz` release from the [releases page](https://github.com/Jackett/Jackett/releases) and run Jackett using mono with the command `mono --debug JackettConsole.exe`.
Download and extract the latest `Jackett.Binaries.macOS.tar.gz` release from the [releases page](https://github.com/Jackett/Jackett/releases) and run Jackett with the command `./jackett`.
## Installation using Docker
Detailed instructions are available at [LinuxServer.io Jackett Docker](https://hub.docker.com/r/linuxserver/jackett/). The Jackett Docker is highly recommended, especially if you are having Mono stability issues or having issues running Mono on your system eg. QNAP, Synology. Thanks to [LinuxServer.io](https://linuxserver.io)
## Installation on Synology
Jackett is available as beta package from [SynoCommunity](https://synocommunity.com/)
## Running Jackett behind a reverse proxy
When running jackett behind a reverse proxy make sure that the original hostname of the request is passed to Jackett. If HTTPS is used also set the X-Forwarded-Proto header to "https". Don't forget to adjust the "Base Path Override" Jackett option accordingly.
@@ -558,7 +576,7 @@ cd Jackett/src
# dotnet core version
dotnet publish Jackett.Server -f netcoreapp2.2 --self-contained -r osx-x64 -c Debug # takes care of everything
./Jackett.Server/bin/Debug/netcoreapp2.2/osx-x64/JackettConsole # run jackett
./Jackett.Server/bin/Debug/netcoreapp2.2/osx-x64/jackett # run jackett
```
### Linux
@@ -571,14 +589,8 @@ cd Jackett/src
# dotnet core version
dotnet publish Jackett.Server -f netcoreapp2.2 --self-contained -r linux-x64 -c Debug # takes care of everything
./Jackett.Server/bin/Debug/netcoreapp2.2/linux-x64/JackettConsole # run jackett
./Jackett.Server/bin/Debug/netcoreapp2.2/linux-x64/jackett # run jackett
```
<!--
# mono version (currently broken)
nuget restore Jackett.sln # prepare dependencies
msbuild Jackett.Server/Jackett.Server.csproj /t:Build /p:Configuration=Debug # compile
mono Jackett.Server/bin/Debug/JackettServer.exe # run jackett
-->
## Screenshots

View File

@@ -270,6 +270,11 @@ table td.fit{
text-align: right;
margin-right: 1em;
}
input#searchquery{
input#searchquery {
width:400px;
}
#proxy-warning {
color: red;
}

View File

@@ -100,6 +100,7 @@ function loadJackettSettings() {
})
reloadIndexers();
proxyWarning(data.proxy_url);
});
}
@@ -1221,4 +1222,18 @@ function bindUIButtons() {
doNotify("Request to Jackett server failed", "danger", "glyphicon glyphicon-alert");
});
});
$('#jackett-proxy-url').on('input', function () {
proxyWarning($(this).val());
});
}
function proxyWarning(input) {
if (input != null && input.trim() !== "") {
$('#proxy-warning').show();
}
else
{
$('#proxy-warning').hide();
}
}

View File

@@ -281,6 +281,10 @@ div#jackett-releases-datatable_wrapper {
width: 100%;
overflow-x: scroll;
}
input#searchquery{
input#searchquery {
width:50%;
}
#proxy-warning {
color: red;
}

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=2017083001" media="only screen and (min-device-width: 480px)">
<link rel="stylesheet" type="text/css" href="../custom_mobile.css?changed=2017083001" 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">
@@ -87,8 +87,10 @@
<h4>Adding a Jackett indexer to RSS clients (RSS feed)</h4>
<ol>
<li>Click on the indexers corresponding <button type="button" class="btn btn-xs btn-info">Copy RSS Feed</button> button and paste it into the URL field of the RSS client.</li>
<li>You can adjust the <b>q</b> (search string) and <b>cat</b> (categories) arguments accordingly.
E.g. <b>...&cat=2030,2040&q=big+buck+bunny</b> will search for "big buck bunny" in the Movies/SD (2030) and Movies/HD (2040) categories (See the indexer configuration for available categories).</li>
<li>
You can adjust the <b>q</b> (search string) and <b>cat</b> (categories) arguments accordingly.
E.g. <b>...&cat=2030,2040&q=big+buck+bunny</b> will search for "big buck bunny" in the Movies/SD (2030) and Movies/HD (2040) categories (See the indexer configuration for available categories).
</li>
</ol>
</div>
<hr />
@@ -138,6 +140,12 @@
<option value="2">socks5</option>
</select>
</div>
<div id="proxy-warning" hidden>
<span>
WARNING: The proxy option is unstable and potentially leaks requests. If no fix from the community is forthcoming
in the next few months, the proxy option will be removed from Jackett. Recommendation is to use a VPN.
</span>
</div>
<div class="input-area">
<span class="input-header">Proxy url: </span>
<input id="jackett-proxy-url" class="form-control input-right" type="text" value="" placeholder="Blank to disable">
@@ -663,6 +671,6 @@
</script>
<script type="text/javascript" src="../libs/api.js?changed=2017083001"></script>
<script type="text/javascript" src="../custom.js?changed=20180711"></script>
<script type="text/javascript" src="../custom.js?changed=20190401"></script>
</body>
</html>

View File

@@ -6,6 +6,8 @@
type: private
encoding: UTF-8
links:
- https://bittorrentfiles.me/
legacylinks:
- https://www.Bittorrentfiles.me/
caps:

View File

@@ -10,6 +10,18 @@
legacylinks:
- http://amigos-share.club/
settings:
- name: username
type: text
label: Username
- name: password
type: password
label: Password
- name: info_results
type: info
label: "Search results"
default: "Set <b>Exibição De Torrents</b> to <b>Lista</b> in your <b>Minhas Configurações</b>.<br />Using <b>Capas</b> is not supported and will return 0 results."
caps:
categorymappings:
- {id: 107, cat: XXX, desc: "Adultos: Gay"}
@@ -48,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"}
@@ -130,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
@@ -157,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: table > tbody > tr:has(a[href^="torrents-details.php?id="])
fields:
title:
selector: a[href^="torrents-details.php?id="]
@@ -173,6 +185,12 @@
download:
selector: a[href^="download.php?id="]
attribute: href
banner:
selector: a[href^="torrents-details.php?id="]
attribute: title
filters:
- name: regexp
args: "src=\"(.*?)\""
category:
selector: td:first-child img
attribute: src
@@ -195,7 +213,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"
@@ -281,14 +299,14 @@
date:
text: now
size:
selector: td:nth-child(2) span.label-info
selector: td:nth-child(2) span.badge-info
seeders:
selector: td:nth-child(4)
leechers:
selector: td:nth-child(5)
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

@@ -0,0 +1,299 @@
---
site: avg
name: AVG
description: "Audio Video Games (BestRepack) is a RUSSIAN Private Torrent Tracker for GAMES"
language: ru-ru
type: private
encoding: UTF-8
links:
- https://avg.club/
caps:
categorymappings:
- {id: 110, cat: PC/Games, desc: "Репаки от R.G. Catalyst"}
- {id: 146, cat: PC/Games, desc: "Игры PC (Репаки) от R.G. Catalyst Горячие новинки"}
- {id: 112, cat: PC/Games, desc: "Игры PC (Репаки) от R.G. Catalyst Action"}
- {id: 113, cat: PC/Games, desc: "Игры PC (Репаки) от R.G. Catalyst Fighting"}
- {id: 114, cat: PC/Games, desc: "Игры PC (Репаки) от R.G. Catalyst RPG"}
- {id: 118, cat: PC/Games, desc: "Игры PC (Репаки) от R.G. Catalyst Аркады"}
- {id: 120, cat: PC/Games, desc: "Игры PC (Репаки) от R.G. Catalyst Квесты и приключения"}
- {id: 122, cat: PC/Games, desc: "Игры PC (Репаки) от R.G. Catalyst Стратегии"}
- {id: 124, cat: PC/Games, desc: "Игры PC (Репаки) от R.G. Catalyst Симуляторы"}
- {id: 126, cat: PC/Games, desc: "Игры PC (Репаки) от R.G. Catalyst Гонки"}
- {id: 147, cat: PC/Games, desc: "Игры PC (Репаки) от R.G. Catalyst Горячие новинки"}
- {id: 115, cat: PC/Games, desc: "Игры PC (Репаки) от R.G. Catalyst Action"}
- {id: 116, cat: PC/Games, desc: "Игры PC (Репаки) от R.G. Catalyst Fighting"}
- {id: 117, cat: PC/Games, desc: "Игры PC (Репаки) от R.G. Catalyst RPG"}
- {id: 119, cat: PC/Games, desc: "Игры PC (Репаки) от R.G. Catalyst Аркады"}
- {id: 121, cat: PC/Games, desc: "Игры PC (Репаки) от R.G. Catalyst Квесты и приключения"}
- {id: 123, cat: PC/Games, desc: "Игры PC (Репаки) от R.G. Catalyst Стратегии"}
- {id: 125, cat: PC/Games, desc: "Игры PC (Репаки) от R.G. Catalyst Симуляторы"}
- {id: 127, cat: PC/Games, desc: "Игры PC (Репаки) от R.G. Catalyst Гонки"}
- {id: 9, cat: PC/Games, desc: "Игры PC (Репаки) Горячие новинки"}
- {id: 2, cat: PC/Games, desc: "Игры PC (Репаки) Action"}
- {id: 8, cat: PC/Games, desc: "Игры PC (Репаки) Fighting"}
- {id: 3, cat: PC/Games, desc: "Игры PC (Репаки) RPG"}
- {id: 7, cat: PC/Games, desc: "Игры PC (Репаки) Аркады"}
- {id: 6, cat: PC/Games, desc: "Игры PC (Репаки) Квесты и приключения"}
- {id: 4, cat: PC/Games, desc: "Игры PC (Репаки) Стратегии"}
- {id: 5, cat: PC/Games, desc: "Игры PC (Репаки) Симуляторы"}
- {id: 73, cat: PC/Games, desc: "Игры PC (Репаки) Гонки"}
- {id: 149, cat: PC/Games, desc: "Игры PC (Репаки) «Стройбат»"}
- {id: 148, cat: PC/Games, desc: "Игры PC (Оригиналы) Горячие новинки"}
- {id: 129, cat: PC/Games, desc: "Игры PC (Оригиналы) Action"}
- {id: 131, cat: PC/Games, desc: "Игры PC (Оригиналы) Fighting"}
- {id: 133, cat: PC/Games, desc: "Игры PC (Оригиналы) RPG"}
- {id: 135, cat: PC/Games, desc: "Игры PC (Оригиналы) Аркады"}
- {id: 137, cat: PC/Games, desc: "Игры PC (Оригиналы) Квесты и приключения"}
- {id: 139, cat: PC/Games, desc: "Игры PC (Оригиналы) Стратегии"}
- {id: 141, cat: PC/Games, desc: "Игры PC (Оригиналы) Симуляторы"}
- {id: 143, cat: PC/Games, desc: "Игры PC (Оригиналы) Гонки"}
- {id: 19, cat: PC/Games, desc: "Игры PC (Оригиналы) Релизы с GOG.com (игры без защиты)"}
- {id: 130, cat: PC/Games, desc: "Игры PC (Оригиналы) Релизы с GOG.com (игры без защиты) Action"}
- {id: 132, cat: PC/Games, desc: "Игры PC (Оригиналы) Релизы с GOG.com (игры без защиты) Fighting"}
- {id: 134, cat: PC/Games, desc: "Игры PC (Оригиналы) Релизы с GOG.com (игры без защиты) RPG"}
- {id: 136, cat: PC/Games, desc: "Игры PC (Оригиналы) Релизы с GOG.com (игры без защиты) Аркады"}
- {id: 138, cat: PC/Games, desc: "Игры PC (Оригиналы) Релизы с GOG.com (игры без защиты) Квесты и приключения"}
- {id: 140, cat: PC/Games, desc: "Игры PC (Оригиналы) Релизы с GOG.com (игры без защиты) Стратегии"}
- {id: 142, cat: PC/Games, desc: "Игры PC (Оригиналы) Релизы с GOG.com (игры без защиты) Симуляторы"}
- {id: 144, cat: PC/Games, desc: "Игры PC (Оригиналы) Релизы с GOG.com (игры без защиты) Гонки"}
- {id: 145, cat: PC/Games, desc: "Игры PC (Оригиналы) Релизы с GOG.com (игры без защиты) Linux / MacOS"}
- {id: 10, cat: PC/Games, desc: "Игры PC (Оригиналы) Горячие новинки"}
- {id: 11, cat: PC/Games, desc: "Игры PC (Оригиналы) Action"}
- {id: 12, cat: PC/Games, desc: "Игры PC (Оригиналы) Fighting"}
- {id: 13, cat: PC/Games, desc: "Игры PC (Оригиналы) RPG"}
- {id: 14, cat: PC/Games, desc: "Игры PC (Оригиналы) Аркады"}
- {id: 15, cat: PC/Games, desc: "Игры PC (Оригиналы) Квесты и приключения"}
- {id: 16, cat: PC/Games, desc: "Игры PC (Оригиналы) Стратегии"}
- {id: 17, cat: PC/Games, desc: "Игры PC (Оригиналы) Симуляторы"}
- {id: 74, cat: PC/Games, desc: "Игры PC (Оригиналы) Гонки"}
- {id: 98, cat: PC/Games, desc: "Игры PC (Оригиналы) Игры для Linux"}
- {id: 99, cat: PC/Games, desc: "Игры PC (Оригиналы) Игры для MacOS"}
- {id: 70, cat: Console/Xbox, desc: "Игры для консолей Xbox"}
- {id: 71, cat: Console/PSP, desc: "Игры для консолей Playstation"}
- {id: 72, cat: Console/Other, desc: "Игры для консолей Другие консоли"}
- {id: 34, cat: Movies, desc: "Кинематограф Новинки"}
- {id: 109, cat: Movies/HD, desc: "Кинематограф Новинки HD Remux / Blu-Ray Discs"}
- {id: 108, cat: Movies/HD, desc: "Кинематограф Новинки HD Rips (720p,1080p)"}
- {id: 20, cat: Movies, desc: "Кинематограф Отечественное кино"}
- {id: 21, cat: Movies, desc: "Кинематограф Зарубежное кино"}
- {id: 28, cat: TV, desc: "Отечественные сериалы"}
- {id: 27, cat: TV, desc: "Зарубежные сериалы"}
- {id: 29, cat: TV, desc: "Мультфильмы"}
- {id: 30, cat: TV, desc: "Мультсериалы"}
- {id: 37, cat: TV, desc: "Документальное кино"}
- {id: 38, cat: TV, desc: "Концерты и передачи"}
- {id: 67, cat: TV/Anime, desc: "Аниме Релизы"}
- {id: 45, cat: Audio, desc: "Музыка Тяжелая и альтернативная музыка"}
- {id: 85, cat: Audio, desc: "Музыка Эстрадная и поп-музыка"}
- {id: 77, cat: Audio, desc: "Музыка Электронная музыка"}
- {id: 58, cat: Audio, desc: "Музыка Рэп, хип-хоп, R`n`B"}
- {id: 78, cat: Audio, desc: "Музыка Фолк, этническая и народная музыка"}
- {id: 42, cat: Audio, desc: "Музыка Классическая и академическая музыка"}
- {id: 82, cat: Audio, desc: "Музыка New Age, Chillout, музыка для медитации"}
- {id: 79, cat: Audio, desc: "Музыка Джаз, блюз"}
- {id: 80, cat: Audio, desc: "Музыка Авторская песня, шансон"}
- {id: 49, cat: Audio, desc: "Музыка Саундтреки"}
- {id: 50, cat: Audio, desc: "Музыка Саундтреки Саундтреки к фильмам, мультфильмам, сериалам"}
- {id: 51, cat: Audio, desc: "Музыка Саундтреки Саундтреки к играм"}
- {id: 81, cat: Audio, desc: "Музыка Прочая музыка"}
- {id: 83, cat: Audio, desc: "Музыка Прочая музыка Неофициальные сборники"}
- {id: 156, cat: PC, desc: "Программное обеспечение Live CD, DVD, USB версии"}
- {id: 157, cat: PC, desc: "Программное обеспечение Windows 10 и более поздние"}
- {id: 158, cat: PC, desc: "Программное обеспечение Windows 8.1 и более ранние"}
- {id: 159, cat: PC, desc: "Программное обеспечение Обновления и языковые пакеты"}
- {id: 160, cat: PC, desc: "Программное обеспечение Серверные версии"}
- {id: 193, cat: PC/Mac, desc: "Программное обеспечение macOS"}
- {id: 194, cat: PC/Mac, desc: "Программное обеспечение macOS Stable (Release)"}
- {id: 195, cat: PC/Mac, desc: "Программное обеспечение macOS Dev (Beta)"}
- {id: 164, cat: PC/Mac, desc: "Программное обеспечение macOS Дистрибутивы Linux"}
- {id: 163, cat: PC/Mac, desc: "Программное обеспечение macOS *nix OS"}
- {id: 162, cat: PC/Mac, desc: "Программное обеспечение macOS Программное обеспечение"}
- {id: 165, cat: PC, desc: "Программное обеспечение Мультимедиа и графика"}
- {id: 172, cat: PC, desc: "Программное обеспечение Мультимедиа и графика Аудио-редакторы"}
- {id: 171, cat: PC, desc: "Программное обеспечение Мультимедиа и графика Видео-редакторы"}
- {id: 170, cat: PC, desc: "Программное обеспечение Мультимедиа и графика Графические редакторы"}
- {id: 169, cat: PC, desc: "Программное обеспечение Мультимедиа и графика Материалы для аудио"}
- {id: 168, cat: PC, desc: "Программное обеспечение Мультимедиа и графика Материалы для видео"}
- {id: 167, cat: PC, desc: "Программное обеспечение Мультимедиа и графика Материалы для графики"}
- {id: 166, cat: PC, desc: "Программное обеспечение Мультимедиа и графика Моделирование, рендеринг, плагины"}
- {id: 173, cat: PC, desc: "Программное обеспечение Программирование и веб-разработка"}
- {id: 177, cat: PC, desc: "Программное обеспечение Программирование и веб-разработка DDK/SDK"}
- {id: 178, cat: PC, desc: "Программное обеспечение Программирование и веб-разработка Веб-редакторы"}
- {id: 176, cat: PC, desc: "Программное обеспечение Программирование и веб-разработка Системы управления базами данных (СУБД)"}
- {id: 175, cat: PC, desc: "Программное обеспечение Программирование и веб-разработка Компиляторы и среды разработки"}
- {id: 174, cat: PC, desc: "Программное обеспечение Программирование и веб-разработка Компоненты и дополнения"}
- {id: 179, cat: PC/0day, desc: "Программное обеспечение Windows Software"}
- {id: 188, cat: PC/0day, desc: "Программное обеспечение Windows Software Интернет-приложения"}
- {id: 187, cat: PC/0day, desc: "Программное обеспечение Windows Software Информационная безопасность"}
- {id: 186, cat: PC/0day, desc: "Программное обеспечение Windows Software Офисные приложения и редакторы"}
- {id: 185, cat: PC/0day, desc: "Программное обеспечение Windows Software Переводчики и словари"}
- {id: 184, cat: PC/0day, desc: "Программное обеспечение Windows Software Проигрыватели и кодеки"}
- {id: 183, cat: PC/0day, desc: "Программное обеспечение Windows Software Работа с носителями и медиа"}
- {id: 182, cat: PC/0day, desc: "Программное обеспечение Windows Software Системные приложения"}
- {id: 181, cat: PC/0day, desc: "Программное обеспечение Windows Software Эмуляторы"}
- {id: 180, cat: PC/0day, desc: "Программное обеспечение Windows Software Прочие приложения"}
- {id: 197, cat: PC/0day, desc: "Программное обеспечение Windows Software Архиваторы и файловые менеджеры"}
- {id: 203, cat: PC/0day, desc: "Программное обеспечение Windows Software Проигрыватели и кодеки"}
- {id: 202, cat: PC/0day, desc: "Программное обеспечение Windows Software Офисные приложения и редакторы"}
- {id: 201, cat: PC/0day, desc: "Программное обеспечение Windows Software Работа с носителями и медиа"}
- {id: 200, cat: PC/0day, desc: "Программное обеспечение Windows Software Информационная безопасность"}
- {id: 199, cat: PC/0day, desc: "Программное обеспечение Windows Software Интернет-приложения"}
- {id: 198, cat: PC/0day, desc: "Программное обеспечение Windows Software Системные приложения"}
- {id: 22, cat: Other, desc: "Прочее Оформление релизов"}
- {id: 53, cat: Other, desc: "Прочее Оформление релизов Оформление релизов (игры)"}
- {id: 54, cat: Other, desc: "Прочее Оформление релизов Оформление релизов (кино/мультфильмы/аниме)"}
- {id: 55, cat: Other, desc: "Прочее Оформление релизов Оформление релизов (музыка)"}
- {id: 192, cat: Other, desc: "Прочее Оформление релизов Оформление релизов (софт)"}
- {id: 31, cat: Other, desc: "Прочее Обновления/DLC"}
- {id: 102, cat: Other, desc: "Прочее Обновления/DLC для MacOS"}
- {id: 101, cat: Other, desc: "Прочее Обновления/DLC для Linux"}
- {id: 100, cat: Other, desc: "Прочее Обновления/DLC для Windows"}
- {id: 76, cat: Other, desc: "Прочее Языковые пакеты"}
- {id: 103, cat: Other, desc: "Прочее Языковые пакеты для MacOS"}
- {id: 104, cat: Other, desc: "Прочее Языковые пакеты для Linux"}
- {id: 105, cat: Other, desc: "Прочее Языковые пакеты для Windows"}
- {id: 84, cat: Other, desc: "Прочее Демо-, альфа-, бета-версии"}
- {id: 32, cat: Other, desc: "Прочее NoCD/NoDVD"}
- {id: 75, cat: Other, desc: "Прочее Моды"}
- {id: 106, cat: Other, desc: "Прочее Моды Моды для Titan Quest (+ Immortal Throne)"}
- {id: 95, cat: Other, desc: "Прочее Моды Моды для Dungeon Siege"}
- {id: 94, cat: Other, desc: "Прочее Моды Моды для Resident Evil 4"}
- {id: 93, cat: Other, desc: "Прочее Моды Моды для Doom III"}
- {id: 92, cat: Other, desc: "Прочее Моды Плагины для TESV Skyrim"}
- {id: 91, cat: Other, desc: "Прочее Моды Плагины для TESIV Oblivion"}
- {id: 90, cat: Other, desc: "Прочее Моды Плагины для TESIII Morrowind"}
- {id: 97, cat: Other, 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: table.error tr td div.msg:not(:contains(">>>"))
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: ""
submit: " Search "
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: regexp
args: "=(\\d+)\\."
size:
selector: td a.tr-dl
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

@@ -135,13 +135,24 @@
- name: replace
args: ["×", ""]
date:
selector: td:nth-child(5)
selector: td:nth-child(5):contains('.')
optional: true
remove: font
filters:
- name: replace
args: [". ", " "]
- name: prepend
args: "2019."
- name: re_replace
args: ["([0-9]{4}).([0-9]+).([0-9]+) (.*)", "$2.$3.$1 $4"]
date:
selector: td:nth-child(5):contains('ma'), td:nth-child(5):contains("tegnap"), td:nth-child(5):contains('-')
optional: true
remove: font
filters:
- name: replace
args: ["ma", "today"]
- name: replace
args: ["tegnap", "yesterday"]
description:
selector: td:nth-child(2) > div

View File

@@ -25,8 +25,9 @@
inputs:
username: "{{ .Config.username }}"
password: "{{ .Config.password }}"
remember: 1
error:
- selector: form[action*="/login"] .text-red
- selector: div.has-error
test:
path: torrents
@@ -36,12 +37,13 @@
inputs:
$raw: "{{range .Categories}}categories[]={{.}}&{{end}}"
search: "{{if .Query.IMDBID}}{{else}}{{ .Keywords }}{{end}}"
description: ""
uploader: ""
imdb: "{{ .Query.IMDBIDShort }}"
tvdb: ""
tmdb: ""
mal: ""
sorting: created_at
sort: created_at
direction: desc
qty: 100
rows:
@@ -61,6 +63,13 @@
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:
@@ -74,7 +83,7 @@
args: ([\d\.]+)
imdb:
optional: true
selector: a[href^="https://www.imdb.com/title/"]
selector: a[href*="www.imdb.com/title/tt"]
attribute: href
date:
selector: time
@@ -117,4 +126,4 @@
"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: private
encoding: UTF-8
links:
- https://casstudio.tk/
legacylinks:
- https://casstudio.tv/
caps:

View File

@@ -28,7 +28,7 @@
password: "{{ .Config.password }}"
remember: 1
error:
- selector: form[action*="/login"] .text-red
- selector: div.has-error
test:
path: torrents
selector: a[href$="/logout"]
@@ -84,15 +84,15 @@
args: ["https://via.placeholder.com/600x900", ""]
size:
selector: td:nth-child(5)
grabs:
seeders:
selector: td:nth-child(6)
leechers:
selector: td:nth-child(7)
grabs:
selector: td:nth-child(8)
filters:
- name: regexp
args: ([\d\.]+)
seeders:
selector: td:nth-child(7)
leechers:
selector: td:nth-child(8)
imdb:
optional: true
selector: a[href*="www.imdb.com/title/tt"]
@@ -138,4 +138,4 @@
"i[data-original-title=\"Global Double Upload\"]": "2" # Global Double Upload
"i[data-original-title=\"Featured\"]": "2" # Featured Torrent
"*": "1"
# UNIT3D 1.9
# UNIT3D 1.9.2

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

@@ -23,8 +23,9 @@
- https://www.gktorrent.org/
- https://www.gktorrent.me/
- https://www.rantop.org/
- https://www.gktorrent.net/
- https://www.gktorrent.cx/
- https://www.gktorrent.net/
caps:
categorymappings:
- {id: movies, cat: Movies, desc: "Movies"}
@@ -62,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

@@ -8,6 +8,18 @@
links:
- https://hdf.world/
settings:
- name: username
type: text
label: Username
- name: password
type: password
label: Password
- name: usetoken
type: checkbox
label: Always try to use the FreeLeech Token
default: false
caps:
categories:
1: Movies
@@ -49,9 +61,17 @@
rows:
selector: table#torrent_table > tbody > tr.torrent
fields:
download:
download-regular:
selector: a[href^="torrents.php?action=download&"]
attribute: href
download-usetoken:
selector: a[href^="torrents.php?action=download&"]
attribute: href
filters:
- name: append
args: "&usetoken=1"
download:
text: "{{if .Config.usetoken}}{{ .Result.download-usetoken }}{{else}}{{ .Result.download-regular }}{{end}}"
title:
selector: div.group_info
remove: span:nth-child(1), div.tags
@@ -210,7 +230,7 @@
selector: td:nth-child(8)
downloadvolumefactor:
case:
"div.group_info:contains(\"Free\")": "0"
"div.group_info:contains(\"/ Free\")": "0"
"div.group_info:contains(\"↓75%\")": "0.75"
"div.group_info:contains(\"↓50%\")": "0.50"
"div.group_info:contains(\"↓25%\")": "0.25"

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

@@ -59,16 +59,12 @@
# - path: "{{if .Keywords}}argh.php?search={{ .Keywords}}
# {{else}}/recenti
# {{end}}"
- path: "{{if .Keywords}}advsearch.php?&category={{range .Categories}}{{.}};{{end}}&search={{ .Keywords}}&order=data&by=DESC&page=0{{else}}/recenti{{end}}"
- path: "{{if .Keywords}}advsearch.php?&category={{range .Categories}}{{.}};{{end}}&search={{ .Keywords}}&order=data&by=DESC&page=1{{else}}/recenti{{end}}"
- path: "{{if .Keywords}}advsearch.php?&category={{range .Categories}}{{.}};{{end}}&search={{ .Keywords}}&order=data&by=DESC&page=2{{else}}/recenti{{end}}"
- path: "{{if .Keywords}}advsearch.php?&category={{range .Categories}}{{.}};{{end}}&search={{ .Keywords}}&order=data&by=DESC&page=3{{else}}/recenti{{end}}"
- path: "{{if .Keywords}}advsearch.php?&category={{range .Categories}}{{.}};{{end}}&search={{ .Keywords}}&order=data&by=DESC&page=4{{else}}/recenti{{end}}"
- path: "{{if .Keywords}}advsearch.php?&category={{range .Categories}}{{.}};{{end}}&search={{ .Keywords}}&order=data&by=DESC&page=5{{else}}/recenti{{end}}"
- path: "{{if .Keywords}}advsearch.php?&category={{range .Categories}}{{.}};{{end}}&search={{ .Keywords}}&order=data&by=DESC&page=6{{else}}/recenti{{end}}"
- path: "{{if .Keywords}}advsearch.php?&category={{range .Categories}}{{.}};{{end}}&search={{ .Keywords}}&order=data&by=DESC&page=7{{else}}/recenti{{end}}"
- path: "{{if .Keywords}}advsearch.php?&category={{range .Categories}}{{.}};{{end}}&search={{ .Keywords}}&order=data&by=DESC&page=8{{else}}/recenti{{end}}"
- path: "{{if .Keywords}}advsearch.php?&category={{range .Categories}}{{.}};{{end}}&search={{ .Keywords}}&order=data&by=DESC&page=9{{else}}/recenti{{end}}"
- path: "{{if .Keywords}}advsearch.php?&category={{range .Categories}}{{.}};{{end}}&search={{ .Keywords}}&order=data&by=DESC&page=0{{else}}/browse/0{{end}}"
- path: "{{if .Keywords}}advsearch.php?&category={{range .Categories}}{{.}};{{end}}&search={{ .Keywords}}&order=data&by=DESC&page=1{{else}}/browse/1{{end}}"
- path: "{{if .Keywords}}advsearch.php?&category={{range .Categories}}{{.}};{{end}}&search={{ .Keywords}}&order=data&by=DESC&page=2{{else}}/browse/2{{end}}"
- path: "{{if .Keywords}}advsearch.php?&category={{range .Categories}}{{.}};{{end}}&search={{ .Keywords}}&order=data&by=DESC&page=3{{else}}/browse/3{{end}}"
- path: "{{if .Keywords}}advsearch.php?&category={{range .Categories}}{{.}};{{end}}&search={{ .Keywords}}&order=data&by=DESC&page=4{{else}}/browse/4{{end}}"
- path: "{{if .Keywords}}advsearch.php?&category={{range .Categories}}{{.}};{{end}}&search={{ .Keywords}}&order=data&by=DESC&page=5{{else}}/browse/5{{end}}"
keywordsfilters:
- name: diacritics
args: replace

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

@@ -8,7 +8,10 @@
followredirect: true
links:
- https://kikibt.cc/
- https://kikibt.pw/
legacylinks:
- https://kikibt.me/
- http://kikibt.pw/
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

@@ -34,9 +34,15 @@
paths:
# https://monova.to/search?term=vikings+s05e05
# https://monova.to/video
- path: "{{if .Keywords}}search?term={{.Keywords}}{{else}}video{{end}}"
# https://monova.org/video?page=2
- path: "{{if .Keywords}}search?term={{.Keywords}}?page=1{{else}}video?page=1{{end}}"
- path: "{{if .Keywords}}search?term={{.Keywords}}?page=2{{else}}video?page=2{{end}}"
- path: "{{if .Keywords}}search?term={{.Keywords}}?page=3{{else}}video?page=3{{end}}"
- path: "{{if .Keywords}}search?term={{.Keywords}}?page=4{{else}}video?page=4{{end}}"
- path: "{{if .Keywords}}search?term={{.Keywords}}?page=5{{else}}video?page=5{{end}}"
rows:
selector: tr.desktop:not(tr.success)
#selector: tr.desktop:not(tr.success)
selector: tr.desktop
filters:
- name: andmatch
fields:
@@ -56,7 +62,11 @@
selector: td.torrent_name a
attribute: href
size:
optional: true
selector: td.center-align
filters:
- name: replace
args: ["N/A","500 MB"]
seeders:
text: "1"
leechers:
@@ -66,9 +76,14 @@
uploadvolumefactor:
text: "1"
date:
optional: true
selector: td.torrent_name
remove: a
filters:
- name: replace
args: ["added ",""]
- name: replace
args: [" ago.*$",""]
- name: replace
args: ["min.","minutes"]
- name: timeago

View File

@@ -0,0 +1,126 @@
---
site: peersfm
name: Peers.FM
description: "Peers.FM is a RUSSIAN Private Torrent Tracker for MOVIES / TV / GENERAL"
language: ru-ru
type: private
encoding: windows-1251
links:
- https://peers.fm/
caps:
categorymappings:
- {id: 18, cat: TV/Anime, desc: "Anime"}
- {id: 17, cat: PC, desc: "Database"}
- {id: 25, cat: TV, desc: "EDU"}
- {id: 14, cat: Movies/HD, desc: "HD Видео"}
- {id: 7, cat: Other, desc: "Images"}
- {id: 15, cat: PC/Mac, desc: "Mac"}
- {id: 26, cat: PC/Phone-Other, desc: "Mobile"}
- {id: 24, cat: TV, desc: "TV Show"}
- {id: 1, cat: PC, desc: "WaReZ"}
- {id: 10, cat: XXX, desc: "XXX"}
- {id: 9, cat: Audio/Audiobook, desc: "Аудиокниги"}
- {id: 3, cat: PC/Games, desc: "Игры/GameZ"}
- {id: 2, cat: Audio/Video, desc: "Клипы/Концерты"}
- {id: 8, cat: Books/Magazines, desc: "Книги/Журналы"}
- {id: 20, cat: Audio/Lossless, desc: "Музыка/Lossless"}
- {id: 11, cat: Audio/Mp3, desc: "Музыка/Mp3"}
- {id: 13, cat: TV, desc: "Мультфильмы"}
- {id: 12, cat: Other, desc: "Разное/Miscellaneous"}
- {id: 4, cat: Movies/DVD, desc: "Фильмы DVD"}
- {id: 6, cat: Movies, desc: "Фильмы MPEG4"}
modes:
search: [q]
tv-search: [q, season, ep]
login:
path: takelogin.php
method: post
inputs:
username: "{{ .Config.username }}"
password: "{{ .Config.password }}"
SSL: 1
error:
- selector: table[width="400"] tr td
test:
path: browse.php
selector: a[href="/logout.php"]
search:
paths:
- path: browse.php
inputs:
$raw: "{{range .Categories}}c{{.}}=1&{{end}}"
search: "{{ .Keywords }}"
# 0=active 1=incl dead 2=only dead 3=FREE
incldead: 1
rows:
selector: table[width="940px"] > tbody > tr:has(a[href^="details.php?id="])
fields:
title:
selector: a[href^="details.php?id="]
details:
selector: a[href^="details.php?id="]
attribute: href
category:
selector: a[href^="browse.php?cat="]
attribute: href
filters:
- name: querystring
args: cat
download:
selector: a[href^="download.php/"]
attribute: href
grabs:
selector: a[href^="download.php/"]
filters:
- name: regexp
args: (\d+)
size:
selector: td:nth-child(6)
date:
selector: td:nth-child(5)
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: "15:04:0502 Jan 2006"
seeders:
selector: td:nth-child(8)
leechers:
selector: td:nth-child(9)
downloadvolumefactor:
case:
img[src="pic/free_100.png"]: "0"
img[src="pic/free_75.png"]: "0.25"
img[src="pic/free_50.png"]: "0.5"
img[src="pic/free_25.png"]: "0.75"
"*": "1"
uploadvolumefactor:
case:
"*": "1"

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

@@ -50,7 +50,7 @@
password: "{{ .Config.password }}"
remember: 1
error:
- selector: form[action$="/login"] .text-red
- selector: div.has-error
test:
path: torrents
selector: a[href$="/logout"]
@@ -96,11 +96,11 @@
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\.]+)
@@ -132,12 +132,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

@@ -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

@@ -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

@@ -0,0 +1,201 @@
---
site: tigers-dl
name: Tigers-dl
description: "Tigers-dl is a FRENCH Private Torrent Tracker for MOVIES / TV / GENERAL"
language: fr-fr
type: private
encoding: UTF-8
links:
- https://www.tigers-dl.net/
caps:
categorymappings:
# Cam et Screener
- {id: 81, cat: Movies, desc: "Cam ts / tc / Fr"}
- {id: 82, cat: Movies, desc: "Cam ts / tc / US"}
# Movies
- {id: 11, cat: Movies, desc: "Action"}
- {id: 13, cat: Movies, desc: "Animation"}
- {id: 14, cat: Movies, desc: "Arts Martiaux"}
- {id: 15, cat: Movies, desc: "Aventure"}
- {id: 16, cat: Movies, desc: "Biographies"}
- {id: 17, cat: Movies, desc: "Comedie dramatique"}
- {id: 18, cat: Movies, desc: "Comedie musicale"}
- {id: 19, cat: Movies, desc: "Comedie"}
- {id: 20, cat: Movies, desc: "Divers"}
- {id: 21, cat: Movies, desc: "Documentaires"}
- {id: 22, cat: Movies, desc: "Drame"}
- {id: 23, cat: Movies, desc: "Epouvante-horreur"}
- {id: 24, cat: Movies, desc: "Espionnage"}
- {id: 25, cat: Movies, desc: "Famille"}
- {id: 26, cat: Movies, desc: "Fantastique"}
- {id: 27, cat: Movies, desc: "Guerre"}
- {id: 28, cat: Movies, desc: "Historique"}
- {id: 29, cat: Movies, desc: "Musical"}
- {id: 30, cat: Movies, desc: "Peplum"}
- {id: 31, cat: Movies, desc: "Policier"}
- {id: 32, cat: Movies, desc: "Romance"}
- {id: 33, cat: Movies, desc: "Science fiction"}
- {id: 34, cat: Movies, desc: "Thriller"}
- {id: 35, cat: Movies, desc: "Western"}
- {id: 42, cat: Movies, desc: "Coffret"}
- {id: 43, cat: Movies, desc: "Trilogie"}
- {id: 71, cat: Movies, desc: "Anciens Films"}
# Music / Concert
- {id: 37, cat: Audio/MP3, desc: "Music Mp3"}
- {id: 38, cat: Audio, desc: "Concerts"}
- {id: 39, cat: Audio, desc: "Megamix"}
- {id: 40, cat: Audio, desc: "Compilation"}
- {id: 41, cat: Audio, desc: "Spectacles"}
# Animation
- {id: 45, cat: TV, desc: "wall disney"}
- {id: 46, cat: TV, desc: "Dessins animé"}
- {id: 47, cat: TV/Anime, desc: "Manga"}
# Apps
- {id: 7, cat: PC/0day, desc: "Apps Win"}
- {id: 8, cat: PC, desc: "Apps Linux"}
- {id: 9, cat: PC/Mac, desc: "Apps Mac"}
- {id: 77, cat: PC/Phone-Other, desc: "Mobile"}
# Games
- {id: 49, cat: PC/Games, desc: "Jeux PC"}
- {id: 50, cat: Console/PSP, desc: "PSP"}
- {id: 51, cat: Console/Wii, desc: "wii"}
- {id: 52, cat: Console/PS3, desc: "PS3"}
- {id: 53, cat: Console/PS4, desc: "PS4"}
- {id: 61, cat: Console/Xbox, desc: "Xbox 360"}
# E-BOOKS
- {id: 55, cat: Books, desc: "Livres français"}
- {id: 56, cat: Books, desc: "BD"}
- {id: 57, cat: Books, desc: "Journaux"}
- {id: 58, cat: Books, desc: "Magazines"}
- {id: 59, cat: Books, desc: "Cuisine"}
- {id: 60, cat: Books, desc: "Science"}
- {id: 76, cat: Books, desc: "Informatiques"}
# Series TV
- {id: 63, cat: TV/SD, desc: "Séries VF"}
- {id: 64, cat: TV/HD, desc: "Séries VF 720p"}
- {id: 65, cat: TV/HD, desc: "Séries VF 1080p"}
- {id: 66, cat: TV/SD, desc: "Séries VOSTFR"}
- {id: 67, cat: TV/HD, desc: "Séries VOSTFR 720p"}
- {id: 68, cat: TV/HD, desc: "Séries VOSTFR 1080p"}
- {id: 69, cat: TV/SD, desc: "Séries VO"}
- {id: 70, cat: TV, desc: "Anciennes Séries !!!"}
# Movies Porno
- {id: 73, cat: XXX, desc: "Films porno - V.I.P"}
- {id: 74, cat: XXX, desc: "BD porno"}
- {id: 75, cat: XXX, desc: "Manga"}
modes:
search: [q]
tv-search: [q, season, ep]
movie-search: [q]
settings:
- name: username
type: text
label: Username
- name: password
type: password
label: Password
login:
path: index.php?page=login
method: form
form: form[action="index.php?page=login"]
inputs:
uid: "{{ .Config.username }}"
pwd: "{{ .Config.password }}"
error:
- selector: td.lista span[style="color:#FF0000;"]
test:
path: index.php
selector: :has(a[href="logout.php"])
search:
paths:
# https://www.tigers-dl.net/index.php?page=torrents&search=venom&category=0&active=0&order=3&by=2
- path: index.php
inputs:
page: "torrents"
category: "{{range .Categories}}{{.}};{{end}}"
search: "{{.Keywords}}"
# 0=all 1=active only 2=dead only
active: 0
# 1=cat. 2=name 3=age 4=size 5=seed 6=leech 7=comm
order: 3
# 1=desc 2=asc
by: 2
rows:
selector: table.lista tr:has(a[href^="index.php?page=torrent-details"])
fields:
title:
selector: td a[href*="torrent-details"]
details:
selector: td a[href*="torrent-details"]
attribute: href
category:
selector: td a[href*="category="]
attribute: href
filters:
- name: querystring
args: category
download:
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
filters:
- name: regexp
args: "src=(.+?) width="
size:
selector: td:nth-child(4)
seeders:
selector: td:nth-child(5)
leechers:
selector: td:nth-child(6)
grabs:
selector: td:nth-child(7)
filters:
- 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:
text: "1"

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://wvw.torrent9.vc/
legacylinks:
- https://www.torrents9.pw/
- https://www.torrent9.ch/
- https://www1.torrent9.ch/
- https://www2.torrent9.ch/
- https://wwv.torrent9.vg/
- https://www.torrent9.lol/
- https://www.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

@@ -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

@@ -82,7 +82,10 @@
- name: password
type: password
label: Password
- name: info_results
type: info
label: "Search results"
default: "<ol><li>Only the Classic profile is supported.<li>Make sure to set the <b>TorrentList-Layout</b> option in your profile to <b>Klassisches Layout, sehr breite Darstellung.</b><li>And for best results set the <b>Torrents pro Seite</b> to <b>100.</b></ol>"
login:
path: landing.php
method: form
@@ -117,98 +120,60 @@
orderby: "added"
sort: "desc"
rows:
selector: table.tableinborder:has(a[href^="download_ssl.php"])
selector: table.tablebrowse > tbody > tr:has(a[href^="download_ssl.php"])
fields:
title:
selector: a[title][href^="details.php"]
attribute: title
category:
selector: td[style][colspan]
case:
td[style$="#000033;"]:contains("Android"): 65
td[style$="#000033;"]:contains("iOS"): 83
td[style$="#000033;"]:contains("Linux"): 107
td[style$="#000033;"]:contains("MAC"): 48
td[style$="#000033;"]:contains("Sonstige"): 109
td[style$="#000033;"]:contains("Win"): 22
td[style$="#1d2f8c;"]:contains("aBooks"): 24
td[style$="#1d2f8c;"]:contains("Disco's"): 104
td[style$="#1d2f8c;"]:contains("Hörspiel"): 38
td[style$="#1d2f8c;"]:contains("Musik"): 6
td[style$="#1d2f8c;"]:contains("Tracks"): 82
td[style$="#1d2f8c;"]:contains("Videos"): 29
td[style$="#000000;"]:contains("3D"): 113
td[style$="#000000;"]:contains("HD"): 76
td[style$="#000000;"]:contains("Packs"): 78
td[style$="#000000;"]:contains("SD"): 75
td[style$="#000000;"]:contains("Sonstige"): 114
td[style$="#000000;"]:contains("Untouched"): 77
td[style$="#55316e;"]:contains("1080p"): 54
td[style$="#55316e;"]:contains("3D"): 5
td[style$="#55316e;"]:contains("720p"): 55
td[style$="#55316e;"]:contains("Anime"): 111
td[style$="#55316e;"]:contains("BluRay"): 43
td[style$="#55316e;"]:contains("DVDR"): 20
td[style$="#55316e;"]:contains("Int"): 120
td[style$="#55316e;"]:contains("Remux"): 119
td[style$="#55316e;"]:contains("UHD"): 121
td[style$="#55316e;"]:contains("UHD Remux"): 124
td[style$="#55316e;"]:contains("SD"): 36
td[style$="#620000;"]:contains("Anime"): 112
td[style$="#620000;"]:contains("HD"): 69
td[style$="#620000;"]:contains("Int"): 72
td[style$="#620000;"]:contains("Packs"): 68
td[style$="#620000;"]:contains("SD"): 66
td[style$="#620000;"]:contains("TV-Shows"): 108
td[style$="#003300;"]:contains("Diverses"): 117
td[style$="#003300;"]:contains("eBooks"): 28
td[style$="#003300;"]:contains("Sport"): 42
td[style$="#003300;"]:contains("Tutorials"): 103
td[style$="#003300;"]:contains("Wallpaper"): 9
td[style$="#FF00FF;"]:contains("XXX"): 64
td[style$="#FF3300;"]:contains("MAC"): 115
td[style$="#FF3300;"]:contains("Nintendo"): 37
td[style$="#FF3300;"]:contains("PC"): 4
td[style$="#FF3300;"]:contains("PSX"): 58
td[style$="#FF3300;"]:contains("Sonstige"): 116
td[style$="#FF3300;"]:contains("XBOX"): 50
selector: a[href*="cat="]
attribute: href
filters:
- name: querystring
args: cat
comments:
selector: a[href*="&tocomm="]
attribute: href
download:
selector: a[href^="download_ssl.php"]
attribute: href
banner:
selector: a.thumbnail > span > img
attribute: src
grabs:
selector: td:has(a[href*="&tosnatchers="])
selector: td:nth-child(9)
filters:
- name: regexp
args: "(\\d+) x"
args: "(\\d+)"
size:
selector: td:has(a[href*="&filelist="])
selector: td:nth-child(6)
filters:
- name: regexp
args: "(.*?) in"
- name: replace
args: [".", ""]
- name: replace
args: [",", "."]
files:
selector: td:has(a[href*="&filelist="]) > b
selector: a[href*="&filelist=1"]
seeders:
selector: td:has(a[href*="&toseeders="]) > font
selector: td:has(a[href*="&toseeders="])
filters:
- name: regexp
args: "(\\d+)"
leechers:
selector: td:has(a[href*="&todlers="]) > font
selector: td:has(a[href*="&todlers="])
filters:
- name: regexp
args: "(\\d+)"
date:
selector: td:has(a[href*="&tocomm="]) ~ td
selector: td:nth-child(5)
filters:
- name: re_replace
args: ["\\s", " "]
- name: dateparse
args: "02.01.2006 15:04:05"
args: "02.01.200615:04:05"
downloadvolumefactor:
case:
img[src="pic/oupic.gif"]: "0"
img[src="pic/-40.gif"]: "0.6"
"font[color=\"#730d1e\"]:contains(\"[OnlyUpload]\")": "0"
"*": "1"
uploadvolumefactor:
case:

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

@@ -139,6 +139,12 @@ namespace Jackett.Common.Indexers
if (string.IsNullOrWhiteSpace(query.SearchTerm) && !query.IsImdbQuery)
{
var results = await RequestStringWithCookies(TodayUrl);
if (results.IsRedirect)
{
// re-login
await ApplyConfiguration(null);
results = await RequestStringWithCookies(TodayUrl);
}
try
{
const string rowsSelector = "table.torrent_table > tbody > tr:not(tr.colhead)";
@@ -274,6 +280,12 @@ namespace Jackett.Common.Indexers
searchUrl += "?" + queryCollection.GetQueryString();
var results = await RequestStringWithCookies(searchUrl);
if (results.IsRedirect)
{
// re-login
await ApplyConfiguration(null);
results = await RequestStringWithCookies(searchUrl);
}
try
{
const string rowsSelector = "table.torrent_table > tbody > tr:not(tr.colhead)";

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

@@ -142,7 +142,7 @@ namespace Jackett.Common.Indexers
var qRow = row.Cq();
var qDetails = qRow.Find("div > a[href*=\"details.php?id=\"]"); // details link, release name get's shortened if it's to long
var qTitle = qRow.Find("td:eq(1) .tooltip-content div:eq(0)"); // use Title from tooltip
var qTitle = qRow.Find(".tooltip-content > div:eq(0)"); // use Title from tooltip
if (!qTitle.Any()) // fallback to Details link if there's no tooltip
{
qTitle = qDetails;
@@ -153,7 +153,7 @@ namespace Jackett.Common.Indexers
if (qDesciption.Any())
release.Description = qDesciption.Get(1).InnerText.Trim();
var qLink = row.Cq().Find("td:eq(2) a:eq(1)");
var qLink = row.Cq().Find("a[href*=\"download.php\"]");
release.Link = new Uri(qLink.Attr("href"));
release.Guid = release.Link;
release.Comments = new Uri(qDetails.Attr("href"));
@@ -187,7 +187,11 @@ namespace Jackett.Common.Indexers
else
release.DownloadVolumeFactor = 1;
release.UploadVolumeFactor = 1;
if (qRow.Find("img[title^=\"x2 Torrent\"]").Length >= 1)
release.UploadVolumeFactor = 2;
else
release.UploadVolumeFactor = 1;
releases.Add(release);
}

View File

@@ -10,7 +10,7 @@ namespace Jackett.Common.Indexers
public class Psytorrents : GazelleTracker
{
private static readonly string[] certificateHashs = new string[] {
"455333CC651C249E1A91DFF8EFC2A5F8044FE956", // expired
"8375026D07C1EAE2DCE7157ABF255357366AE341", // expired
};
public Psytorrents(IIndexerConfigurationService configService, WebClient webClient, Logger logger, IProtectionService protectionService)

View File

@@ -8,6 +8,7 @@ using System.Threading.Tasks;
using CsQuery;
using Jackett.Common.Models;
using Jackett.Common.Models.IndexerConfig;
using Jackett.Common.Models.IndexerConfig.Bespoke;
using Jackett.Common.Services.Interfaces;
using Jackett.Common.Utils;
using Jackett.Common.Utils.Clients;
@@ -23,9 +24,10 @@ namespace Jackett.Common.Indexers
private string SearchUrl { get { return SiteLink + "browse.php"; } }
private string DownloadUrl { get { return SiteLink + "download.php/{0}/download.torrent"; } }
private new ConfigurationDataRecaptchaLogin configData
private new ConfigurationDataSceneTime configData
{
get { return (ConfigurationDataRecaptchaLogin)base.configData; }
get { return (ConfigurationDataSceneTime)base.configData; }
set { base.configData = value; }
}
@@ -38,7 +40,7 @@ namespace Jackett.Common.Indexers
client: w,
logger: l,
p: ps,
configData: new ConfigurationDataRecaptchaLogin("For best results, change the 'Torrents per page' setting to the maximum in your profile on the SceneTime webpage."))
configData: new ConfigurationDataSceneTime())
{
Encoding = Encoding.GetEncoding("iso-8859-1");
Language = "en-us";
@@ -183,6 +185,11 @@ namespace Jackett.Common.Indexers
qParams.Add("search", query.GetQueryString());
}
// If Only Freeleech Enabled
if (configData.Freeleech.Value)
{
qParams.Add("freeleech", "on");
}
var searchUrl = SearchUrl + "?" + qParams.GetQueryString();
var results = await RequestStringWithCookies(searchUrl);

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

@@ -0,0 +1,21 @@
namespace Jackett.Common.Models.IndexerConfig.Bespoke
{
public class ConfigurationDataSceneTime : ConfigurationData
{
public StringItem Username { get; private set; }
public StringItem Password { get; private set; }
public RecaptchaItem Captcha { get; private set; }
public BoolItem Freeleech { get; private set; }
public DisplayItem Instructions { get; private set; }
public ConfigurationDataSceneTime()
: base()
{
Username = new StringItem { Name = "Username" };
Password = new StringItem { Name = "Password" };
Captcha = new RecaptchaItem() { Name = "Recaptcha" };
Freeleech = new BoolItem() { Name = "Freeleech Only (Optional)", Value = false };
Instructions = new DisplayItem("For best results, change the 'Torrents per page' setting to the maximum in your profile on the SceneTime webpage.") { Name = "" };
}
}
}

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");
}