Compare commits

...

312 Commits

Author SHA1 Message Date
flightlevel
cf3848a54f .NET Core preparation: Access ServerConfig without using JackettModule 2018-06-17 11:48:59 +10:00
kaso17
f1d774aa07 Gazelle: don't use hardcoded encoding 2018-06-15 17:18:47 +02:00
kaso17
c109133fcc Redacted: fix download without FL tokens 2018-06-15 17:14:56 +02:00
kaso17
3538fdfaf7 Synthesiz3r: removed (dead) 2018-06-15 11:58:29 +02:00
kaso17
3468e7d404 improve BEncode error handling 2018-06-15 11:12:03 +02:00
kaso17
ec4afda184 Audiobook Torrents: improve compatibility 2018-06-15 10:44:26 +02:00
kaso17
67b1835264 Bit-City Reloaded: fix login 2018-06-15 10:30:43 +02:00
kaso17
aee64aa589 Shareisland: update URL 2018-06-14 19:28:51 +02:00
kaso17
687e6e237f TorrentWTF: removed (dead) 2018-06-14 19:28:36 +02:00
kaso17
b48dd5e930 cpasbien: URL update 2018-06-14 18:38:07 +02:00
kaso17
5ee6833610 NCore: fix else 2018-06-14 17:53:46 +02:00
morpheus133
c998ba3762 Additional fix for #1450 (#3227)
* Additional fix for #1450
Sonarr is search for a tilte if the result title is different it reject it.
So it is not enough that Jackett give the result it must give with the same language.

Workaround create a new title from the original one and from the title.
It also make some fine tunning:
if title not contains the language we add it from category

* Make decision safer
2018-06-14 17:44:22 +02:00
kaso17
2d4f7ab0e9 Waffles: fix category parsing 2018-06-14 17:39:16 +02:00
kaso17
676d03eb88 mono: redirect workaround 2018-06-14 17:28:57 +02:00
garfield69
6f7ecbfb7b Yggtorrent: domain changed, fixes #3228 2018-06-13 13:01:32 +12:00
Raphael Barreiros
c4aa49eb32 Update BJ-Share to new domain name (#3225)
* Update BJ-Share to new domain name

BJ-Share changed its domain from bj-share.me to bj-share.info

* Added LegacySiteLinks method
2018-06-13 07:44:42 +12:00
garfield69
32aae44ffc Btbit: fix slash in wrong place #3902 2018-06-13 07:04:35 +12:00
garfield69
7883534c5e Btbit: apply sort for all results #3209 2018-06-13 06:49:10 +12:00
kaso17
b58c9fb718 HDHome: try to fix search 2018-06-11 18:31:27 +02:00
kaso17
99d8f63f9e HDChina: try to fix search 2018-06-11 18:31:10 +02:00
la55u
635e8240d2 RevTT: added files count (#3213) 2018-06-11 17:36:29 +02:00
R91g
117a670aa3 Update readme (add HD-Spain tracker) (#3223)
Add new private tracker HD-Spain
2018-06-11 17:33:49 +02:00
R91g
f49c58a1fa HD-Spain: add indexer (#3222)
Add Spanish Private HD tracker https://www.hd-spain.com/
Based on Albvadi's code from HD-Spain forum all credit to him, I only added some changes for better search, ISO correct and spain flag detection
2018-06-11 17:33:26 +02:00
kaso17
2492f1b797 NCore: add comment 2018-06-11 17:31:46 +02:00
kaso17
d6781f67b2 NCore: improve search fix 2018-06-11 17:28:24 +02:00
morpheus133
2e0c22eb6d NCore: fix for #1450 (#3220)
Some workoround to "Ncore - not forward all search results to Sonarr, Radarr"
In case of TV shows if nothing is founded, retry the search without SxxExx after the show name.
This will list all torrent also if their title or description are changed.
Than add the result only if it contains the skipped SxxExx
2018-06-11 17:15:21 +02:00
flightlevel
f7bf4060ea Don't publish experimental artifacts 2018-06-11 17:21:34 +10:00
flightlevel
8c953bbf01 Avoid Engine for AspNetCore 2018-06-11 17:17:56 +10:00
aurelien
4e91761fdf Elite Tracker: Add HTTPS tracker option (#3217)
* Add option for Elite Tracker (FR) for download torrent using https for tracker URL.

* change return type.
clean code.

* use the SiteLink variable instead of hard coding
2018-06-11 06:42:21 +02:00
kaso17
53f8465e67 Demonoid: change to public 2018-06-10 15:55:51 +02:00
flightlevel
e8bc2816ef Update migration logging 2018-06-10 12:51:34 +10:00
flightlevel
28ed7cc8a5 BJShare: Remove unused variable
Remove warning in build
2018-06-10 12:40:02 +10:00
flightlevel
089d9f2e3d Ignore launchSettings.json 2018-06-10 12:38:32 +10:00
garfield69
b4eda2ed54 Ettv: sort by created for rss, test and no-keyword search #3209 2018-06-09 08:01:24 +12:00
garfield69
4d8d21a815 Btbit: sort by created for rss, test, and no-keyword searches #3209 2018-06-09 07:39:08 +12:00
kaso17
f3290800d8 bloackhole: fix magnet links 2018-06-08 16:04:54 +02:00
kaso17
22a858c076 SceneTime: fix search 2018-06-07 18:33:44 +02:00
kaso17
823419c032 Shareisland: fix legacylinks 2018-06-07 18:19:57 +02:00
Jorman
908d3f64f4 Added Audiobook category (#3203) 2018-06-06 12:44:49 +12:00
flightlevel
4b599f391c Mono 5.8 is the minimum supported runtime
#3181 fix. Can get away without using RuntimeInformation and didn't
consider public trackers without a password
2018-06-05 21:47:20 +10:00
kaso17
6d8239caab Demonoid: improve download debugging 2018-06-05 13:34:54 +02:00
Jorman
dae37f273a ilcorsaroblu: Update url (#3202) 2018-06-05 13:21:37 +02:00
kaso17
1615bff2d0 handle RuntimeInformation exception 2018-06-05 13:14:32 +02:00
kaso17
b303befbb9 SceneTime: fix indexer 2018-06-05 13:09:07 +02:00
kaso17
e243c11cc0 update mono reference 2018-06-05 07:24:05 +02:00
Travis Boss
c860bca320 changed log button from btn-danger to btn-success, less scary (#3196) 2018-06-04 14:59:16 +12:00
flightlevel
a60c1fca36 .NET 4.6.1 or Mono 5.4 is now the minimum supported runtime 2018-06-03 21:27:47 +10:00
la55u
5ad2c7a371 RevTT: Minor fixes (#3193)
* fixed RevTT pc/iso category

* added grabs count to RevTT
2018-06-03 01:11:42 +02:00
Jorman
3df0218347 Changed link after site fix (#3188) 2018-06-02 17:43:46 +10:00
flightlevel
601783aef6 .NET Core preparation 2 2018-06-02 17:42:01 +10:00
flightlevel
ac5af81344 .NET Core preparation (#3177)
The DPAPI won't be present, will be using AspNetCore DataProtection
instead
2018-05-30 21:28:20 +10:00
Celedhrim
823563c84f downloadville: fix typo (#3175)
Fix typo if MULTI replacement is check
2018-05-29 22:07:31 +02:00
Celedhrim
47410c5eb6 yggtorrent: fix typo (#3174)
Fix typo if multi language replacement is activate
2018-05-29 22:07:05 +02:00
kaso17
af135f4ae9 Torrent9: update links 2018-05-29 14:41:08 +02:00
kaso17
3eeced3a04 Racing4Everyone: update links 2018-05-29 14:40:56 +02:00
kaso17
8ea99b548d PolishSource: add login detection 2018-05-29 14:09:47 +02:00
kaso17
ae73e8188d Torrent.LT: update categories
fixes #2279
2018-05-29 13:48:07 +02:00
kaso17
9c5cda72da Demonoid: fix download handling 2018-05-29 13:26:35 +02:00
Jonas Stendahl
fb1e24799d TorrentBytes: Don't use truncated release names (#3168) 2018-05-29 12:24:13 +02:00
bpikap
5721948434 torrent-turk: add indexer (#3161)
* Add tracker torrent-turk

* Add torrent-turk to readme
2018-05-29 12:23:39 +02:00
Jorman
d7b6f413be README: Update for Girotorrent (#3159)
Added new girotorrent
2018-05-29 12:23:01 +02:00
Jorman
959ec4667d Girotorrent:_ add indexer (#3158)
Italian Private Tracker
2018-05-29 12:22:45 +02:00
kaso17
20433db169 RevolutionTT: remove debug output 2018-05-24 16:28:14 +02:00
kaso17
54465798e9 GazelleGames: add relogin detection 2018-05-24 16:13:13 +02:00
kaso17
313147d224 Demonoid: add redirect error detection 2018-05-24 16:05:45 +02:00
kaso17
84bd947eca ICE Torrent: update definition 2018-05-24 16:05:23 +02:00
kaso17
366abc4431 Mega-Bliz: fix and improve definition 2018-05-24 15:45:23 +02:00
DarkSupremo
2f7fa2f063 Bjshare: fix broken regex (#3137) 2018-05-23 15:40:23 +02:00
Celedhrim
205f6cac12 Yggtorrent and downloadville: Better MULTI replace (#3135) 2018-05-23 14:11:22 +02:00
Jorman
f602b3db24 README: add Il Corsaro Blu (#3132)
Update file to adding new traker file
2018-05-23 14:10:34 +02:00
Jorman
0d72f1f228 add tracker Il Corsaro Blu (#3131) 2018-05-23 14:10:13 +02:00
kaso17
508125e68f RGU: fix AND search 2018-05-22 18:52:47 +02:00
kaso17
cfb714e13c TorrentSeeds: add andmatch 2018-05-22 18:30:49 +02:00
kaso17
b9dcfd1b02 Torlock: add andmatch 2018-05-22 18:30:29 +02:00
kaso17
a1b2dc67b8 Elit Tracker: add andmatch 2018-05-22 18:30:10 +02:00
Celedhrim
2207c5a961 yggtorrents and downloadville: support multi to french title rewriting (#3130) 2018-05-22 18:07:15 +02:00
kaso17
2caa09bb1e fix bee 2018-05-21 15:51:07 +02:00
kaso17
68906f6e40 readme: fix link 2018-05-21 12:26:02 +02:00
kaso17
2cf3cf15e3 README: add Roslyn note 2018-05-21 12:24:39 +02:00
Jorman
88202c1f7f Isohunt2: fix size parsing (#3127)
Sometimes when parsing, the size of the rel was not enough to have Gb instead Mb or Kb to Mb or whatever
So the size in row is for example 1.015.22 Mb (less than 1024)
So in this case the parser return error

I searched a way to replace this, I found a solution, hope that works in a log way
2018-05-20 21:08:22 +02:00
DarkSupremo
6293c787e7 Bj share: improve search results (#3126)
* Improved anime search and speed-share resolution detection

* - Code Refactored to new standards
- Removed publish date from search mode, since the tracker does not provide that information, it was based on the serie year (but it does provide it on last 24h page, that's still prssent)
- Code clean
- Added season to all animes but One Piece (every anime that i searched in this tracker have the correct season and episode numbering, except One Piece that have an incorrect season set and episode is in absolute format, its added automatically on every new release, so must be the source from where they get that info that is wrong, since its an popular show, added it as an workaround and explained on code as comment)
2018-05-20 21:07:00 +02:00
flightlevel
f67fda3bf4 Add detail to build steps and remove Bountysource 2018-05-20 21:56:50 +10:00
kaso17
c81dd24fe7 RevolutionTT: add time debug output 2018-05-20 10:10:30 +02:00
kaso17
af94dd2757 TVChaosUK: fix parse error 2018-05-20 09:51:18 +02:00
kaso17
0a07738c5b HDME: fix passkey 2018-05-19 06:33:11 +02:00
kaso17
e05783a25a Cardigann: add support for .Config.sitelink 2018-05-19 06:32:16 +02:00
kaso17
27d4ab3967 TorrentBytes: support hidden userbars 2018-05-18 18:10:32 +02:00
kaso17
04b3efbbc2 Gazelle Trackers: fix freeleech token option 2018-05-17 17:21:46 +02:00
kaso17
ccd5347be2 RGU: fix login 2018-05-17 17:13:59 +02:00
kaso17
e1c5f3ed6d Cardigann: handle unauthorized error code 2018-05-17 16:31:24 +02:00
kaso17
c1fb41204c CloudFlare: increase retries 2018-05-15 12:50:14 +02:00
kaso17
b50733054f RevolutionTT: fix time parsing 2018-05-15 12:46:57 +02:00
kaso17
e324773c91 Union Fansub: fix column parsing for some users
thank you @eduarditotv
2018-05-14 16:53:00 +02:00
kaso17
6a4c34d5df torznab: fix limit parameter 2018-05-14 16:48:57 +02:00
kaso17
bc34b9f176 KickAssTorrent (kat.li): fix zise parsing 2018-05-14 02:32:38 +02:00
kaso17
96af05fbef Torrent9: fix download 2018-05-14 02:23:29 +02:00
kaso17
842d9e79ce YIFI: cleanup 2018-05-14 02:12:09 +02:00
kaso17
086d8b32e9 YIFI: use date_uploaded_unix 2018-05-14 02:11:12 +02:00
kaso17
a6390f2bc5 Hebits: fix download links
fixes #3037
2018-05-13 18:23:40 +02:00
kaso17
1ab0827ae7 Torrenting: add imdbid support 2018-05-13 18:06:50 +02:00
kaso17
db0f651f33 TorrentLeech: improve dash remove code
fixes #3096
2018-05-13 17:42:22 +02:00
kaso17
7f163c3945 improve torznab error handling 2018-05-13 17:15:59 +02:00
kaso17
cb53867b37 Torrent9: remove category option, can't make it work reliable with support for All and others 2018-05-13 15:35:00 +02:00
kaso17
b5b907c9ed RGU: remove dupe submitme 2018-05-13 15:08:09 +02:00
Jachryl
2f8ef4aec2 add rgu tracker (#3084)
* add rgu tracker

* add / to url
2018-05-13 15:00:24 +02:00
kaso17
e5929c850c Updater: remove tehconnection.yml 2018-05-13 14:58:44 +02:00
kaso17
86771a87c6 CzTorrent: use cookie login 2018-05-13 14:58:30 +02:00
flightlevel
fca6ac0dbc Make Configuration buttons clearer 2018-05-12 12:09:37 +10:00
flightlevel
da61eb8988 AnimeBytes username is case sensitive 2018-05-12 11:59:15 +10:00
snamds
ef22d43f46 Add spanish tracker Newpct (#3077)
* Rss mode working

* Fully working. Beta testing

* Added vo and minor changes

* Alternative link support
2018-05-12 11:55:24 +10:00
HDVinnie
f63f1361ce Remove TehConnection From README (#3083) 2018-05-12 11:35:31 +10:00
HDVinnie
547c9174b1 Delete tehconnection.yml (#3082)
- Site went down and came back under Gazelle codebase. This `.yml` is no longer useful.
2018-05-12 11:35:13 +10:00
Garfield69
cb292bbf06 nextorrent: back to original domain #3081 2018-05-10 09:04:04 +12:00
Garfield69
784c41b83a Revert "LostFilm: process the release date for #3087"
This reverts commit 8067f1948e.
2018-05-09 20:13:47 +12:00
Garfield69
42fbe9270a Revert "WiHD: renew deprecated category ids as per #3085"
This reverts commit 628ab0ca82.
2018-05-09 20:08:59 +12:00
Garfield69
8067f1948e LostFilm: process the release date for #3087
instead of the episode air date
2018-05-09 19:17:03 +12:00
Garfield69
143cc6e8d0 btworld: fix for #3090 2018-05-09 15:54:53 +12:00
Garfield69
628ab0ca82 WiHD: renew deprecated category ids as per #3085 2018-05-09 15:41:50 +12:00
proton-ab
cc13d7edf6 Update AnimeBytes required passkey length (#3079)
Allow length of 48 for passkey for future changes in AnimeBytes codebase.
2018-05-08 17:25:04 +12:00
proton-ab
6ea2c18384 Update AnimeBytes passkey note message (#3078) 2018-05-08 17:24:43 +12:00
Garfield69
fb316d9068 kickasstorrent-kathow: make category selector optional to prevent error #3072 2018-05-08 14:52:05 +12:00
Garfield69
fda730dcad nextorrent: fix the downloadlink and make seeds/leech 999 #3081 2018-05-08 14:21:54 +12:00
flightlevel
8d921202fa Animebytes username requirement (#3076) 2018-05-06 10:36:53 +10:00
Kicker83
e6b135e151 Added new replace (#3068)
xbytesv2 adds two years in title, when the show has season episodes released in two different years. For example, supergirl season 3, has episodes in 2017 and 2018. In this case xbytesv2 format the title like this: "Supergirl (2017 18/S03/E13/AMZ WEB DL 1080p/AC3 5 1 /DUAL/SUB) Grupo V2" 
This new filter, deletes both years. 
Please don't remove this replace:
          - name: re_replace
            args: ["S(\\d{1,2}) E(\\d{1,2})", "S$1E$2"]
2018-05-05 18:03:54 +12:00
mitsu375
dbde3b469a Create btworld.yml (#3055) 2018-05-03 16:10:58 +12:00
mitsu375
7841bcab06 Update README.md (#3057) 2018-05-03 16:10:43 +12:00
Garfield69
efe1346d41 torrentDownloads: add optional .torrent or magnet download 2018-05-02 17:34:46 +12:00
flightlevel
42beb6018e DotNet Core preparation (#3046)
.NET core uses HttpRequest instead of HttpRequestMessage
2018-05-01 21:06:18 +10:00
kaso17
2d0e82159d AnimeBytes: more fixes 2018-04-27 16:52:21 +02:00
kaso17
08ad94a2f5 RuTracker: update regex 2018-04-27 16:36:57 +02:00
kaso17
0eebea0ef7 cpasbien: update URL 2018-04-27 16:32:48 +02:00
kaso17
e4888b83d8 AnimeBytes: finish new API 2018-04-27 16:32:26 +02:00
kaso17
37f8066901 TorrentDay: make .it the default again 2018-04-27 15:50:49 +02:00
kaso17
92f976916f AnimeBytes: update config items 2018-04-26 19:30:21 +02:00
kaso17
530ad7ecf5 AnimeBytes: migrate to new API (useless reults for now) 2018-04-26 19:30:03 +02:00
kaso17
c1bc750059 allow other options to be edited with in case of a recaptcha 2018-04-26 19:29:03 +02:00
Kicker83
364061fde0 Fixes and optimizations (#3029)
Fixes and optimizations suggested by kaso17
2018-04-26 13:09:18 +00:00
kaso17
1b4826f966 BaseIndexer: fix potato API 2018-04-25 20:35:35 +02:00
kaso17
580eacdb18 TorrentDay: add .it domain again 2018-04-25 19:11:51 +02:00
kaso17
270b8c9041 AnimeBytes: disable login 2018-04-24 23:54:21 +02:00
kaso17
9f7590783d TorrentDay: add missing / 2018-04-24 23:51:57 +02:00
kaso17
63dceed010 AnimeBytes: disable indexer 2018-04-24 23:49:38 +02:00
Garfield69
ee3e0dd0e1 scenetime: add cat 19 tv-hd hevc/x265 resolves #3020 2018-04-25 07:50:56 +12:00
Robin Edbom
e19d59c4ab Fix for #3010 (#3014)
* Fix for #3010

This will fix the problem with torrentday.it being down and https:///torrentday.com will redirect you to https://www.torrentday.com. And since we don't allow redirects, this will not work without the www.

* Added the feedback from #3014
2018-04-24 12:21:59 +12:00
kaso17
d29132a540 TorrentLeech: add v4 site link to legacy list 2018-04-23 18:19:50 +02:00
kaso17
0037811fb5 JPopsuki: fix error detection 2018-04-23 17:52:57 +02:00
kaso17
1f1b8d0074 3D Torrents: fix DL link 2018-04-23 17:37:15 +02:00
kaso17
dae6aeb4b5 TorrentDay: disable .it domain 2018-04-23 17:13:57 +02:00
Ivan PIdov
9bfb249425 Zamunda.net: Improve torrent names (#3003) 2018-04-23 15:06:22 +00:00
kaso17
0bbcecc1c3 PTP: add free option 2018-04-23 16:33:29 +02:00
kaso17
a871e35449 BeyondHD: enable tracker specific categories 2018-04-23 16:33:08 +02:00
Brian Hardisty
9961031b0e BeyondHD: Add new / missing categories (#3005)
This adds the following categories:

- 102: Movie / 4K Disk
- 103: Movie / 4K Remux
-  38: Movie / WEB-DL
- 106: Internal / BHDStudio 1080p
- 105: Internal / BHDStudio 720p
- 104: TV Show / 4K
-  99: TV Show / Sports
- 100: TV Show / Sports / WEB-DL

Additionally 94: `Movie / 4K` was renamed to `Movie / 4K Other` to
match the updated category name on the tracker.
2018-04-23 14:26:35 +00:00
Connor Smith
c2d3214c01 Grey's Anatomy manual fix for 1337x (#2998)
Implementing Magico fix for Grey's Anatomy as 1337x does the same with apostrophes.
2018-04-23 14:21:44 +00:00
Garfield69
13e14f3e62 ettv: add optional .torrent download 2018-04-20 19:02:31 +12:00
kaso17
ffe435051b Merge branch 'master' of https://github.com/Jackett/Jackett 2018-04-18 11:44:36 +02:00
kaso17
5e00b2ec33 Freedom-HD: improve re-login detection 2018-04-18 11:44:17 +02:00
Akuma737
a73fbccd22 Anidex: Add language id support (#2988) 2018-04-18 09:32:58 +00:00
kaso17
48cdc3bb5e TorrentLeech: fix error message 2018-04-17 20:56:01 +02:00
kaso17
535f71c18c TorrentLeech: add recaptcha handling 2018-04-17 13:55:18 +02:00
kaso17
9ceeb71448 BaseIndexer: fix meta indexer fallback decision 2018-04-17 12:43:00 +02:00
kaso17
457449866e UpdateService: first update check after 1 hour 2018-04-17 11:35:34 +02:00
kaso17
427428d09b AlphaRatio: remove dots from search string 2018-04-17 11:03:40 +02:00
kaso17
82b203c9c3 update readme 2018-04-17 10:38:40 +02:00
kaso17
9677c2deee Merge branch 'master' of https://github.com/Jackett/Jackett 2018-04-17 10:38:07 +02:00
kaso17
9000745877 Torrent9: fix category 2018-04-17 10:37:53 +02:00
DarkSupremo
2fb413123c Improved anime search and speed-share resolution detection (#2973) 2018-04-16 14:38:20 +12:00
Garfield69
6316b82600 worldwidetorrents: andmatch 2018-04-15 18:55:18 +12:00
Garfield69
2746d797ee cpabien: domain change 2018-04-15 12:36:30 +12:00
Garfield69
7e5a7ad153 torrentdownloads: fix date from "2017y ago" to "0m ago" 2018-04-14 15:51:28 +12:00
kaso17
e947059da1 HDBits: attempt to fix download 2018-04-13 20:27:34 +02:00
kaso17
65aaaa3d77 Racing4Everyone: fix categories 2018-04-13 18:07:00 +02:00
HDVinnie
c2b2c94e1b Racing4Everyone: add definition (#2965)
* (Create) racing4everyone.yml

- I have yet to test this. If anyone is willing to please do. Currently is open reg for 3 more days.

* (Update) Add R4E to README

- added racing4everyone (R4E)
2018-04-13 14:48:33 +00:00
Harald Weber
e8465f23b9 Bittorrentfiles: Fixed indexer (#2964) 2018-04-12 10:49:50 +00:00
kaso17
09d37ab232 GFTracker: removed (dead) 2018-04-11 18:45:30 +02:00
kaso17
f413355610 NextTorrent: update site link 2018-04-11 18:43:25 +02:00
kaso17
5a97cd7dd2 Andraste: removed (dead) 2018-04-11 18:39:24 +02:00
kaso17
7b354d1582 TVChaosUK: add support for pre times 2018-04-11 18:36:22 +02:00
kaso17
b964a33ae2 Xthor: use episode search string first (3) 2018-04-11 18:15:15 +02:00
kaso17
dfa513da24 Xthor: use episode search string first (2) 2018-04-11 18:14:25 +02:00
kaso17
dcee9128f9 Xthor: search for 2018-04-11 18:12:06 +02:00
kaso17
30a8e1b4c5 FileList: update sitelink 2018-04-11 18:06:18 +02:00
kaso17
a5e2e6ef60 The Pirate Bay: add parent + sub category 2018-04-10 14:49:19 +02:00
kaso17
772709d46c Cardigann: add support for multiple category blocks 2018-04-10 14:48:46 +02:00
kaso17
71f60c612a Merge branch 'master' of https://github.com/Jackett/Jackett 2018-04-09 19:34:16 +02:00
kaso17
e6834990ec The Pirate Bay: fix categories and add order option 2018-04-09 19:33:34 +02:00
flightlevel
17d7ed5a2b TorrentLeech: Update DateTime parsing (#2935) 2018-04-09 19:36:20 +10:00
flightlevel
10bf70c663 Add no reponse and pull request templates 2018-04-08 12:43:55 +10:00
Kevin Richter
8c14820a38 Add download/upload factor to nyaa trackers (#2924)
* Add download/upload factors for nyaa trackers

* Add Intelij to Ignore
2018-04-08 06:45:36 +12:00
kaso17
63772f289d add aggregate indexers 2018-04-07 18:48:13 +02:00
kaso17
8d5aec030c Merge branch 'master' of https://github.com/Jackett/Jackett 2018-04-07 17:55:08 +02:00
kaso17
280547ad01 add configured option for t=indexers 2018-04-07 17:54:42 +02:00
Garfield69
d01d57037e bjshare: correction to 5bfe0179b2 for quality parsing. 2018-04-07 06:57:16 +12:00
kaso17
48279699eb Torznab XML: fix language typo 2018-04-06 17:46:49 +02:00
kaso17
b26e287a62 add t=indexers for meta indexers 2018-04-06 17:43:18 +02:00
kaso17
66289cb3f3 fix indexer API XML support 2018-04-06 16:47:59 +02:00
kaso17
5bfe0179b2 BJShare: parse quality 2018-04-06 15:16:04 +02:00
kaso17
b9b5b3a442 Avistaz: search without season/episode 2018-04-06 14:32:46 +02:00
kaso17
402dd9d917 Cloudflare: adjust parameters 2018-04-06 12:20:36 +02:00
kaso17
7d332aada4 Demonoid: fix comments link 2018-04-06 12:18:16 +02:00
flightlevel
df8f634ede TorrentLeech: Add Imdb to results (#2910) 2018-04-06 20:07:27 +10:00
marseneault
fcd0167ee7 TorrentLeech - Fix for V5 Interface (#2908)
* CloudFlareUtilities: Version 1.2.0

* TorrentLeech: Fix V5 interface
2018-04-06 18:18:58 +10:00
Garfield69
8cd330e5fb yggtorrent: amendments for login fixes #2852 2018-04-06 08:20:46 +12:00
Garfield69
77d8ef50b3 kickasstorrent-kathow: domain changed yet again. fix #2891 2018-04-06 07:14:57 +12:00
javeloper1
4d480e204a Added sukebei.pantsu.cat and sukebei.nyaa.si to Definitions (#2877)
* Added sukebei.pantsu.cat and sukebei.nyaa.si to Definitions

* Update README.md

Added sukebeis to public tracker list
2018-04-06 07:09:59 +12:00
kaso17
a6486fc233 YGGtorrent: cookie login for now 2018-04-03 23:06:06 +02:00
kaso17
655bc5c05e Update README.md 2018-04-03 23:00:03 +02:00
Kilay
3dfd0d22bb yggtorrent: change for new website #2852 (#2872) 2018-04-03 20:58:57 +00:00
HDVinnie
c56c2b0dd9 tehconnection: add indexer
#2836
2018-04-03 20:56:49 +00:00
kaso17
01a43e04e1 The Pirate Bay: fix multi category search and cleanup 2018-04-02 02:22:33 +02:00
kaso17
2ad2e06754 Cardigann: add join expression 2018-04-02 02:22:13 +02:00
Garfield69
20d1813793 kickasstorrent-kathow: handle new torrents without size,seeders,leechers. fixes #2839 2018-04-02 09:13:25 +12:00
R91g
534e718925 Hachede: fix TV Shows search and spanish language (#2838)
Change TV Shows search format for Spanish style and add [spanish] for detected Spanish language in Sonarr/Radarr
2018-04-02 08:52:48 +12:00
R91g
9fc5b97de8 HDCity: Fix TV Shows search, encoding... (#2841)
Change TV Shows search format for Spanish style, change encoding in HDCity to ISO-8859-1, now accented characters works perfects and add [spanish] for detected Spanish language in Sonarr/Radarr
2018-04-02 08:52:15 +12:00
R91g
684fadd2d2 Puntotorrent: TV Shows search and spanish language (#2842)
Change TV Shows search format for Spanish style and add [spanish] for detected Spanish language in Sonarr/Radarr
2018-04-02 08:51:41 +12:00
kaso17
b66fd18380 handle cloudflare error 523 2018-04-01 15:40:43 +02:00
kaso17
d1d8ef916e The-Torrents: fix definition 2018-04-01 15:40:20 +02:00
kaso17
c9a53fa2b2 YTS: handle error messages 2018-04-01 15:25:35 +02:00
kaso17
93d1976a14 use default categories 2018-04-01 14:56:58 +02:00
kaso17
5b07e6424a Cardigann: add support for default categories 2018-04-01 14:56:45 +02:00
kaso17
ecec3d2006 Merge branch 'master' of https://github.com/Jackett/Jackett 2018-04-01 14:28:24 +02:00
kaso17
f99bc5ba41 Shareisland: fix 25% free 2018-04-01 14:28:18 +02:00
kaso17
9aae53bfb7 Shareisland: update definition 2018-04-01 14:27:37 +02:00
Luke Anderson
59700dcd91 Correct Github to GitHub (#2829) 2018-04-01 06:29:43 +12:00
kaso17
13e1ab231f AOX: fix definition 2018-03-30 17:36:32 +02:00
kaso17
8fd10dd2d1 Torlock: use categories in search 2018-03-30 16:49:20 +02:00
kaso17
271036b527 Xtreme Zone: fix DL link 2018-03-30 16:29:14 +02:00
kaso17
66ca1942b3 readme: include build instructions 2018-03-29 19:17:27 +02:00
kaso17
87db689ea9 TorrentCCF: update links 2018-03-29 18:01:57 +02:00
kaso17
525f78caca OxTorrent: removed (dead) 2018-03-29 17:37:27 +02:00
kaso17
0e38b1ada8 Xtreme Zone: disable legacylinks 2018-03-29 17:31:50 +02:00
kaso17
50da308553 Merge branch 'master' of https://github.com/Jackett/Jackett 2018-03-29 17:26:20 +02:00
kaso17
c11de64a35 Xtreme Zone: change to myxz.eu 2018-03-29 17:26:11 +02:00
Garfield69
d232acb85e kickasstorrent-kathow: domian change fixes #2824 2018-03-29 16:31:28 +13:00
kaso17
9cfbdd3545 Torrent9: fix category usage 2018-03-27 17:25:56 +02:00
kaso17
cdc6210160 Merge branch 'master' of https://github.com/Jackett/Jackett 2018-03-27 17:13:22 +02:00
kaso17
c866748de3 Torlock: fix time parsing fro mins 2018-03-27 17:13:01 +02:00
Garfield69
af869583e3 resultsController: minor spelling correction to logged warning 2018-03-27 08:13:37 +13:00
kaso17
756cf7c0a6 LostFilm: improve login 2018-03-26 13:23:31 +02:00
kaso17
a839f7d56f TorrentLeech: fix download link again 2018-03-26 12:47:32 +02:00
kaso17
06bf11b64e remove movie-search limitation for imdbid 2018-03-26 12:42:23 +02:00
kaso17
626a9cbc6a Torlock: fix categories 2018-03-25 20:52:17 +02:00
kaso17
ef9f5ad865 Merge branch 'master' of https://github.com/Jackett/Jackett 2018-03-25 19:27:25 +02:00
kaso17
b775064c60 2 Fast 4 You: fix definition 2018-03-25 19:25:56 +02:00
Jorman
21f8fa966d Il Corsaro Nero: improve parsing (#2792)
Little modify to better recognize full seasons
Little modify to clear results
2018-03-25 15:23:11 +00:00
kaso17
257295ed08 TorrentLeech: fix download link 2018-03-25 17:21:40 +02:00
kaso17
57fc97dff7 TorrentSyndikat: update categories 2018-03-25 17:14:27 +02:00
kaso17
55ee2148e1 TorrentSyndikat: fix daylight saving time 2018-03-25 17:03:10 +02:00
kaso17
65b008b75a TorrentSyndikat: fix time parsing 2018-03-25 16:55:39 +02:00
Fippsy
dc8d1698f0 torrentsyndikat: Fix for Issue #2788 Exception (torrentsyndikat): String was not recognized as a valid TimeSpan.: Parse error (Test) (#2795) 2018-03-25 14:51:53 +00:00
Garfield69
9071b1fe29 readme: enhanced logging 2018-03-25 16:03:01 +13:00
Garfield69
3190cd0fd5 amend templates with enhanced log requests 2018-03-25 15:59:38 +13:00
flightlevel
0e5f843bac No information provided template 2018-03-25 12:54:03 +11:00
flightlevel
5eb84f6236 Add duplicate issue template 2018-03-25 12:53:13 +11:00
Garfield69
c94b8682c8 brasiltracker: update description 2018-03-24 08:03:28 +13:00
Garfield69
4ba5e64ccb shareisland: minor indentation corrections 2018-03-24 08:00:51 +13:00
RicardoVelaC
799b7ca422 Update README.md (#2782)
Add xBytesV2
2018-03-23 17:47:47 +00:00
kaso17
9d188996ca Merge branch 'master' of https://github.com/Jackett/Jackett 2018-03-23 18:47:08 +01:00
RicardoVelaC
f808b61210 Add Spanish tracker xBytesV2 (#2775)
* Add files via upload

* Add files via upload

* Update xbytes2.yml

* Update xbytes2.yml

* Update xbytes2.yml

* Update xbytes2.yml

* fix indent+remove sickrage hack
2018-03-23 17:46:51 +00:00
kaso17
e4a8ef36c0 Brasil Tracker: IMDB note 2018-03-23 12:17:51 +01:00
kaso17
478e3ba74e Brasil Tracker: add indexer 2018-03-23 12:10:39 +01:00
kaso17
cbde01d520 Il Corsaro Nero: certificate update (proper) 2018-03-23 11:22:01 +01:00
kaso17
403621ab8a Revert "Il Corsaro Nero: certificate update"
This reverts commit 71a42b089e.
2018-03-23 11:21:22 +01:00
kaso17
71a42b089e Il Corsaro Nero: certificate update 2018-03-23 10:54:46 +01:00
kaso17
65ce4f54a1 Rarbg: improve app_id handling 2018-03-23 06:26:08 +01:00
Jorman
2d900d1734 tntvillage: Update definition (#2755)
Added a possibility to translate
Stagione into Season or S0X
2018-03-23 05:23:44 +00:00
Jorman
af90708fad ilcorsaronero: Update definition (#2756)
Added a possibility to translate
Stagione into S0X or Season
2018-03-23 05:22:59 +00:00
Jorman
649f57b0bf shareisland: Update tracker (#2754)
Update upload/download modifier
Added a possibility to handle better Stagione instead S0? or Season
2018-03-23 05:22:20 +00:00
kaso17
792d2a433f TorrentSyndikat: fix parse error 2018-03-22 20:10:15 +01:00
kaso17
b55d55c640 adjust cloudflare ClearanceDelay 2018-03-22 19:58:49 +01:00
Garfield69
021468d6f5 torrentz2: fix #2770 urlencode display name for magnet 2018-03-22 17:33:37 +13:00
kaso17
6e5e326d64 CloudFlareUtilities: update version 2018-03-21 22:33:42 +01:00
Garfield69
da212064f4 torrentdownloads: drop debug string dump 2018-03-21 19:42:08 +13:00
Garfield69
f4a0dfb6de RarBG: add app_id to API calls, now a requirement. #2753 2018-03-21 13:19:03 +13:00
Growiel
d4e184fbca Update TorrentKim's URL (#2751)
Updated TorrentKim link to the new URL of https://torrentkim.pro/
2018-03-21 09:02:10 +13:00
kaso17
e4cd2351cf update dependencies 2018-03-20 15:59:28 +01:00
Garfield69
b1a9361221 nextorrent: domain change. correction to aa1583497c 2018-03-20 07:19:24 +13:00
kaso17
c137530f5d Merge branch 'master' of https://github.com/Jackett/Jackett 2018-03-19 17:45:43 +01:00
kaso17
aa1583497c NextTorrent: update sitelink 2018-03-19 17:43:39 +01:00
Alx
e564149ee0 readme: Add Configuring OMDb section(#2739) 2018-03-19 12:58:37 +00:00
kaso17
a2fbaba8e8 KickAssTorrent (thekat.io): update URL 2018-03-19 12:51:59 +01:00
kaso17
15ff725ee5 PassThePopcorn: use keeplogged=1 again 2018-03-18 17:16:37 +01:00
Garfield69
8db85b5abb cpabien: domain change yet again. #2725 2018-03-17 07:09:38 +13:00
kaso17
6ad732cd87 PassThePopcorn: avoid relogins 2018-03-14 17:59:17 +01:00
kaso17
7d1110e86a PassThePopcorn: avoid session limits 2018-03-14 17:45:36 +01:00
HDVinnie
b4fd588e9b blutopia: fix definition (#2713)
* (Fix) blutopia.yml

- Updated Description
- Updated Search Path
- Added MAL ID

* Update blutopia.yml

Add uploader input parameter
2018-03-14 14:51:49 +00:00
kaso17
2120457518 AnimeTorrents: improve search 2018-03-14 15:42:47 +01:00
kaso17
24c4a1e002 MoreThanTV: ip ban test 2018-03-14 15:16:20 +01:00
kaso17
7c5e557f7f GhostCity: removed (dead) 2018-03-13 18:17:48 +01:00
kaso17
e3fc4a86a3 IPTorrents: enforce Torrents - Category column == Icons 2018-03-12 18:24:50 +01:00
kaso17
0e3baba110 TorrentSyndikat: avoid double slash in comments URL 2018-03-10 19:09:00 +01:00
flightlevel
c2e7282bd3 No longer need to pin Cake version 2018-03-10 19:31:10 +11:00
flightlevel
119784ab5c Remove FileHelpers Dependency (#2692) 2018-03-10 19:28:59 +11:00
flightlevel
3e5e48c3a0 Change namespace to Jackett.Common (#2691)
Really hope I don't break anything with this
Went to have a go at .NET core and it just became too confusing for me with 'Jackett' namespace referring to both Jackett.Common and Jackett
2018-03-10 19:05:56 +11:00
Garfield69
7ab8138060 torrentseeds: add descrption 2018-03-10 09:32:57 +13:00
kaso17
60505e1638 Mega-Bliz: added note 2018-03-09 18:58:49 +01:00
kaso17
b52c67848c TorrentSeeds: fix category 2018-03-09 18:58:34 +01:00
kaso17
a0a7055583 TorrentSeeds: added indexer 2018-03-09 18:58:22 +01:00
kaso17
83163c2b9b EoT-Forum: fix login detection 2018-03-09 17:40:31 +01:00
kaso17
fb499570aa SceneFZ / u-torrents: update layout 2018-03-09 17:08:49 +01:00
kaso17
536d6a65db AnimeBytes: attempt to fix CSRF token missing, invalid or expired. 2018-03-09 16:22:04 +01:00
kaso17
82d0c934ff increase log cache 2018-03-08 11:42:10 +01:00
kaso17
75bb28f376 fix view log unformated messages ({0}) 2018-03-08 11:40:20 +01:00
kaso17
21c7bf604a Rockhard Lossless: removed (dead)
according to https://opentrackers.org/rockhard-lossless/
2018-03-06 11:10:51 +01:00
kaso17
a3de7fc47b CZTeam: removed (shutdown)
http://torrentinvites.org/f36/czteam-club-general-2017-review-226056/
2018-03-05 18:56:01 +01:00
kaso17
e3d9c68f5a Gormogon: removed (shutdown) 2018-03-05 18:51:53 +01:00
kaso17
3b27a04590 House-of-Torrents: removed (dead) 2018-03-05 18:49:03 +01:00
kaso17
4b9ff6a6f8 NextTorrent: update URL 2018-03-05 18:46:58 +01:00
kaso17
a2185bf957 update TrustedRootCertificates notice 2018-03-05 15:46:34 +01:00
kaso17
02f0dd8c59 TorrentHeaven: update categories 2018-03-05 13:34:55 +01:00
Garfield69
3848a0bcd6 scenefz: domain update. #2665 2018-03-04 11:27:49 +13:00
kaso17
e2cc72589a Abnormal: fix time parsing
fixes #2654
2018-03-01 12:38:27 +01:00
kaso17
4216136d42 NUGet: use 4.4.13 2018-03-01 08:03:32 +01:00
380 changed files with 5138 additions and 4250 deletions

View File

@@ -1,7 +1,7 @@
**Please use the search bar** at the top of the page and make sure you are not creating an already submitted issue. Duplicating issues makes it more difficult for everyone to follow. Your issue may have already been solved in the past as well.
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 log must be included**. Instructions for obtaining logs are here: https://github.com/Jackett/Jackett#troubleshooting
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):

7
.github/duplicate_issue.md vendored Normal file
View File

@@ -0,0 +1,7 @@
Duplicate of #{{ chosenIssue.number }}
Hi @{{ payload.sender.login }},
This issue looks similar to #{{ chosenIssue.number }}.
To prevent issue tracker clutter, this issue will now be closed. If you feel this issue isn't a duplicate of #{{ chosenIssue.number }}, then feel free to post a comment on this issue stating why it's not a duplicate. Your comment will automatically re-open this issue.

9
.github/no_information_provided.md vendored Normal file
View File

@@ -0,0 +1,9 @@
Hi @{{ payload.sender.login }},
You've created an issue, but haven't provided any details to allow the community to assist you. To prevent issue tracker clutter, this issue will now be closed. Please provide the information needed below and your comment will automatically re-open this issue.
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):

3
.github/no_response.md vendored Normal file
View File

@@ -0,0 +1,3 @@
Hi @{{ payload.data.user.login }},
No response has been received for {{ days }} days. To prevent issue tracker clutter, this issue will now be closed. To re-open the issue, please provide the information requested and the issue will automatically re-open.

7
.github/pull_request_readme.md vendored Normal file
View File

@@ -0,0 +1,7 @@
Hi @{{ payload.pull_request.user.login }},
Thanks for your contribution to Jackett!
If you are adding a new indexer, please ensure that you've added it to the readme as well
A human will be along soon to review

2
.gitignore vendored
View File

@@ -199,3 +199,5 @@ FakesAssemblies/
/Artifacts
/TestResults
*.DS_Store
.idea/
launchSettings.json

View File

@@ -2,7 +2,6 @@
[![GitHub issues](https://img.shields.io/github/issues/Jackett/Jackett.svg?maxAge=60&style=flat-square)](https://github.com/Jackett/Jackett/issues)
[![GitHub pull requests](https://img.shields.io/github/issues-pr/Jackett/Jackett.svg?maxAge=60&style=flat-square)](https://github.com/Jackett/Jackett/pulls)
[![Bountysource](https://img.shields.io/bountysource/team/jackett/activity.svg?style=flat-square)](https://www.bountysource.com/teams/jackett)
[![Build status](https://ci.appveyor.com/api/projects/status/gaybh5mvyx418nsp/branch/master?svg=true)](https://ci.appveyor.com/project/Jackett/jackett)
[![Github Releases](https://img.shields.io/github/downloads/Jackett/Jackett/total.svg?maxAge=60&style=flat-square)](https://github.com/Jackett/Jackett/releases/latest)
[![Docker Pulls](https://img.shields.io/docker/pulls/linuxserver/jackett.svg?maxAge=60&style=flat-square)](https://hub.docker.com/r/linuxserver/jackett/)
@@ -17,8 +16,8 @@ Developer note: The software implements the [Torznab](https://github.com/Sonarr/
#### Supported Systems
* Windows using .NET 4.5.2 [Download here](https://www.microsoft.com/net/framework/versions/net452).
* Linux and macOS using Mono 4.6.0 and above. [Download here](http://www.mono-project.com/download/). Earlier versions of mono may work but some trackers may fail to negotiate SSL correctly, and others may cause Jackett to crash when used.
* Windows using .NET 4.6.1 or above [Download here](https://www.microsoft.com/net/framework/versions/net461).
* Linux and macOS using Mono 5.8 or above. [Download here](http://www.mono-project.com/download/). Earlier versions of mono may work, but some trackers may fail to negotiate SSL correctly, and others may cause Jackett to crash when used.
### Supported Public Trackers
* 1337x
@@ -37,19 +36,22 @@ Developer note: The software implements the [Torznab](https://github.com/Sonarr/
* Horrible Subs
* Idope
* Il Corsaro Nero <!-- maintained by bonny1992 -->
* Il Corsaro Blu
* Isohunt2
* KickAssTorrent
* KickAssTorrent (thekat.se clone)
* LimeTorrents
* MagnetDL
* NextTorrent
* Newpct (aka: tvsinpagar, descargas2020, torrentlocura, torrentrapid, etc)
* Nyaa.si
* Nyaa-Pantsu
* Nyoo
* OxTorrent
* RARBG
* RuTor
* ShowRSS
* sukebei.Nyaa.si
* sukebei-Pantsu
* The Pirate Bay
* TNTVillage <!-- maintained by bonny1992 -->
* Tokyo Toshokan
@@ -90,7 +92,6 @@ Developer note: The software implements the [Torznab](https://github.com/Sonarr/
* Abnormal
* Acid-Lounge
* AlphaRatio
* Andraste
* AnimeBytes
* AnimeTorrents
* AOX
@@ -120,9 +121,11 @@ Developer note: The software implements the [Torznab](https://github.com/Sonarr/
* BJ-Share
* BlueBird
* Blutopia
* Brasil Tracker
* BroadcastTheNet
* BrokenStones
* BTNext
* BTWorld
* Carpathians
* CCFBits
* CGPeers
@@ -131,7 +134,6 @@ Developer note: The software implements the [Torznab](https://github.com/Sonarr/
* Cinemageddon
* CinemaZ
* Classix
* CZTeam
* DanishBits
* DataScene
* Demonoid
@@ -157,20 +159,19 @@ Developer note: The software implements the [Torznab](https://github.com/Sonarr/
* Fuzer
* GayTorrent.ru
* GazelleGames
* GFTracker
* Gfxnews
* GFXPeers
* Ghost City
* GigaTorrents
* GimmePeers <!-- maintained by jamesb2147 -->
* Girotottent
* GODS [![(invite needed)][inviteneeded]](#)
* Gormogon
* Greek Team
* HacheDe
* Hardbay
* HD-Forever
* HD-Only
* HD-Space
* HD-Spain
* HD-Torrents
* HD-Bits.com
* HDBits
@@ -182,7 +183,6 @@ Developer note: The software implements the [Torznab](https://github.com/Sonarr/
* HDTorrents.it
* Hebits
* Hon3y HD
* House-of-Torrents
* Hyperay
* ICE Torrent
* I Love Classics
@@ -211,7 +211,7 @@ Developer note: The software implements the [Torznab](https://github.com/Sonarr/
* notwhat.cd
* Ourbits
* Passione Torrent <!-- maintained by bonny1992 -->
* PassThePopcorn [![(invite needed)][inviteneeded]](#)
* PassThePopcorn
* PirateTheNet
* PiXELHD
* PolishSource
@@ -221,9 +221,10 @@ Developer note: The software implements the [Torznab](https://github.com/Sonarr/
* Psytorrents
* PTFiles
* PuntoTorrent
* Racing4Everyone (R4E)
* Redacted (PassTheHeadphones)
* RevolutionTT
* Rockhard Lossless
* RGU
* RoDVD
* SceneFZ
* SceneReactor
@@ -240,9 +241,9 @@ Developer note: The software implements the [Torznab](https://github.com/Sonarr/
* SportsCult
* SportHD
* Superbits
* Synthesiz3r
* Tasmanit
* TBPlus
* TenYardTracker
* The Empire
* The Geeks
* The Horror Charnel
@@ -253,7 +254,6 @@ Developer note: The software implements the [Torznab](https://github.com/Sonarr/
* The Show
* The Vault
* The-Torrents
* TenYardTracker
* Torrent Network
* Torrent Sector Crew
* Torrent.LT
@@ -268,8 +268,9 @@ Developer note: The software implements the [Torznab](https://github.com/Sonarr/
* Torrentland
* TorrentLeech
* Torrents.Md
* TorrentSeeds
* Torrent-Syndikat
* TorrentWTF
* TOrrent-tuRK (TORK)
* TorViet
* ToTheGlory
* TranceTraffic
@@ -283,6 +284,7 @@ Developer note: The software implements the [Torznab](https://github.com/Sonarr/
* World-In-HD
* WorldOfP2P
* x264
* xBytesV2
* XSpeeds
* Xthor
* Your Exotic Torrents
@@ -291,6 +293,13 @@ Developer note: The software implements the [Torznab](https://github.com/Sonarr/
Trackers marked with [![(invite needed)][inviteneeded]](#) have no active maintainer and are missing features or are broken. If you have an invite for them please send it to kaso1717 -at- gmail.com to get them fixed/improved.
### Aggregate indexers
A special "all" indexer is available at `/api/v2.0/indexers/all/results/torznab/api`.
It will query all configured indexers and return the combined results.
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
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.
@@ -309,7 +318,7 @@ 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".
## Installation on Linux
1. Install [Mono 4.6](http://www.mono-project.com/download/#download-lin) or better (using the latest stable release for your distribution is recommended)
1. Install [Mono 5.8](http://www.mono-project.com/download/#download-lin) or better (using the latest stable release is recommended)
* Follow the instructions on the mono website and install the `mono-devel` and the `ca-certificates-mono` packages.
* On Red Hat/CentOS/openSUSE/Fedora the `mono-locale-extras` package is also required.
2. Install libcurl:
@@ -322,6 +331,8 @@ Detailed instructions for [Ubuntu 14.x](http://www.htpcguides.com/install-jacket
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.
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 macOS
### Prerequisites
@@ -371,18 +382,42 @@ Example config for apache:
- On Linux (as user root): `wget -O - https://curl.haxx.se/ca/cacert.pem | cert-sync /dev/stdin`
- On macOS: `curl -sS https://curl.haxx.se/ca/cacert.pem | cert-sync --user /dev/stdin`
* __Enable logging__
* __Enable enhanced logging__
You can get additional logging with the command line switches `-t -l` or by enabling `Enhanced logging` via the web interface (followed by clicking on the `Apply Server Settings` button).
You can get *enhanced* logging with the command line switches `-t -l` or by enabling `Enhanced logging` via the web interface (followed by clicking on the `Apply Server Settings` button).
Please post logs if you are unable to resolve your issue with these switches ensuring to remove your username/password/cookies.
The logfiles (log.txt/updater.txt) are stored in `%ProgramData%\Jackett` on Windows and `~/.config/Jackett/` on Linux/macOS.
## Configuring OMDb
This feature is used as a fallback to get the movie/series title if only the IMDB ID is provided in the request.
To use it, please just request a free API key on [OMDb](http://www.omdbapi.com/apikey.aspx) (1,000 daily requests limit) and paste the key in Jackett
## Creating an issue
Please supply as much information about the problem you are experiencing as possible. Your issue has a much greater chance of being resolved if logs are supplied so that we can see what is going on. Creating an issue with '### isn't working' doesn't help anyone to fix the problem.
## Contributing
All contributions are welcome just send a pull request. Jackett's framework allows our team (and any other volunteering dev) to implement new trackers in an hour or two. If you'd like support for a new tracker but are not a developer then feel free to leave a request on the [issues page](https://github.com/Jackett/Jackett/issues). It is recommended to use Visual Studio 2017 when making code changes in this project. You can download the community version for free [here](https://www.visualstudio.com/downloads/).
## Building from source
### Windows
* Open the Jackett solution in Visual Studio 2017 (version 15.7 or above)
* Right click on the Jackett solution and click 'Rebuild Solution' to restore nuget packages
* Select Jackett.Console as startup project
* Build/Start the project
### Linux
```bash
sudo apt install mono-complete nuget msbuild # install build tools (debian/ubuntu)
git clone https://github.com/Jackett/Jackett.git
cd Jackett/src
nuget restore Jackett.sln # prepare dependencies
msbuild Jackett.Console/Jackett.Console.csproj /t:Build /p:Configuration=Debug # compile
mono Jackett.Console/bin/Debug/JackettConsole.exe # run jackett
```
## Screenshots
![screenshot](https://i.imgur.com/0d1nl7g.png "screenshot")

View File

@@ -27,6 +27,7 @@ deploy:
description: $(release_description)
auth_token:
secure: hOg+16YTIbq4kO9u4D1YVOTbWDqgCX6mAQYMbnmBBSw2CiUsZh7OKbupoUb3FtWa
artifact: /^(?:(?![Ee]xperimental).)*$/
draft: true
on:
branch: master

View File

@@ -1,5 +1,4 @@
#tool nuget:?package=NUnit.ConsoleRunner
#addin nuget:?package=Cake.FileHelpers
#addin nuget:?package=Cake.Git
//////////////////////////////////////////////////////////////////////
@@ -174,7 +173,7 @@ Task("Appveyor-Push-Artifacts")
}
});
Task("Potential-Release-Notes")
Task("Release-Notes")
.IsDependentOn("Appveyor-Push-Artifacts")
.Does(() =>
{
@@ -213,7 +212,7 @@ Task("Potential-Release-Notes")
string buildNote = String.Join(Environment.NewLine, notesList);
Information(buildNote);
FileAppendLines(workingDir + "\\BuildOutput\\ReleaseNotes.txt", notesList.ToArray());
System.IO.File.WriteAllLines(workingDir + "\\BuildOutput\\ReleaseNotes.txt", notesList.ToArray());
}
else
{
@@ -273,7 +272,7 @@ private string RelativeWinPathToCygPath(string relativePath)
//////////////////////////////////////////////////////////////////////
Task("Default")
.IsDependentOn("Potential-Release-Notes")
.IsDependentOn("Release-Notes")
.Does(() =>
{
Information("Default Task Completed");

View File

@@ -158,14 +158,15 @@ if(-Not $SkipToolPackageRestore.IsPresent) {
if((!(Test-Path $PACKAGES_CONFIG_MD5)) -Or
($md5Hash -ne (Get-Content $PACKAGES_CONFIG_MD5 ))) {
Write-Verbose -Message "Missing or changed package.config hash..."
Remove-Item * -Recurse -Exclude packages.config,nuget.exe
Get-ChildItem -Exclude packages.config,nuget.exe,Cake.Bakery |
Remove-Item -Recurse
}
Write-Verbose -Message "Restoring tools from NuGet..."
$NuGetOutput = Invoke-Expression "&`"$NUGET_EXE`" install -ExcludeVersion -OutputDirectory `"$TOOLS_DIR`""
if ($LASTEXITCODE -ne 0) {
Throw "An error occured while restoring NuGet tools."
Throw "An error occurred while restoring NuGet tools."
}
else
{
@@ -185,7 +186,7 @@ if (Test-Path $ADDINS_PACKAGES_CONFIG) {
$NuGetOutput = Invoke-Expression "&`"$NUGET_EXE`" install -ExcludeVersion -OutputDirectory `"$ADDINS_DIR`""
if ($LASTEXITCODE -ne 0) {
Throw "An error occured while restoring NuGet addins."
Throw "An error occurred while restoring NuGet addins."
}
Write-Verbose -Message ($NuGetOutput | out-string)
@@ -202,7 +203,7 @@ if (Test-Path $MODULES_PACKAGES_CONFIG) {
$NuGetOutput = Invoke-Expression "&`"$NUGET_EXE`" install -ExcludeVersion -OutputDirectory `"$MODULES_DIR`""
if ($LASTEXITCODE -ne 0) {
Throw "An error occured while restoring NuGet modules."
Throw "An error occurred while restoring NuGet modules."
}
Write-Verbose -Message ($NuGetOutput | out-string)

View File

@@ -1,7 +1,8 @@
using System;
using System.Runtime.InteropServices;
using CurlSharp.Enums;
namespace CurlSharp
namespace CurlSharp.Callbacks
{
/// <summary>
/// Called when cURL has debug information for the client.

View File

@@ -1,6 +1,7 @@
using System;
using CurlSharp.Enums;
namespace CurlSharp
namespace CurlSharp.Callbacks
{
/// <summary>
/// Called when <c>cURL</c> wants to lock a shared resource.

View File

@@ -19,6 +19,7 @@
using System;
using System.Runtime.InteropServices;
using CurlSharp.Enums;
namespace CurlSharp
{

View File

@@ -19,6 +19,8 @@
using System;
using System.Runtime.InteropServices;
using CurlSharp.Callbacks;
using CurlSharp.Enums;
namespace CurlSharp
{

View File

@@ -19,6 +19,7 @@
using System;
using System.Runtime.InteropServices;
using CurlSharp.Enums;
namespace CurlSharp
{

View File

@@ -20,6 +20,7 @@
using System;
using System.Collections;
using System.Runtime.InteropServices;
using CurlSharp.Enums;
namespace CurlSharp
{

View File

@@ -17,6 +17,8 @@
*
**************************************************************************/
using CurlSharp.Enums;
namespace CurlSharp
{
/// <summary>

View File

@@ -19,6 +19,8 @@
using System;
using System.Runtime.InteropServices;
using CurlSharp.Callbacks;
using CurlSharp.Enums;
namespace CurlSharp
{

View File

@@ -20,6 +20,7 @@
using System;
using System.Collections.Generic;
using System.Runtime.InteropServices;
using CurlSharp.Enums;
namespace CurlSharp
{

View File

@@ -18,6 +18,7 @@
**************************************************************************/
using System;
using CurlSharp.Callbacks;
namespace CurlSharp
{

View File

@@ -18,7 +18,7 @@
**************************************************************************/
using System;
using System.Runtime.InteropServices;
using CurlSharp.Enums;
namespace CurlSharp
{

View File

@@ -1,4 +1,4 @@
namespace CurlSharp
namespace CurlSharp.Enums
{
/// <summary>
/// Contains values used to specify the order in which cached connections

View File

@@ -1,4 +1,4 @@
namespace CurlSharp
namespace CurlSharp.Enums
{
/// <summary>
/// Status code returned from <see cref="CurlEasy" /> functions.

View File

@@ -17,7 +17,7 @@
* $Id: Enums.cs,v 1.1 2005/02/17 22:47:25 jeffreyphillips Exp $
**************************************************************************/
namespace CurlSharp
namespace CurlSharp.Enums
{
/// <summary>
/// One of these is returned by <see cref="CurlHttpMultiPartForm.AddSection" />.

View File

@@ -1,4 +1,4 @@
namespace CurlSharp
namespace CurlSharp.Enums
{
/// <summary>
/// These are options available to build a multi-part form section

View File

@@ -1,4 +1,4 @@
namespace CurlSharp
namespace CurlSharp.Enums
{
/// <summary>
/// This enumeration contains values used to specify the FTP Ssl

View File

@@ -1,4 +1,4 @@
namespace CurlSharp
namespace CurlSharp.Enums
{
/// <summary>
/// This enumeration contains values used to specify the FTP Ssl level

View File

@@ -1,4 +1,4 @@
namespace CurlSharp
namespace CurlSharp.Enums
{
/// <summary>
/// This enumeration contains values used to specify the HTTP authentication

View File

@@ -1,4 +1,4 @@
namespace CurlSharp
namespace CurlSharp.Enums
{
/// <summary>
/// Contains values used to specify the HTTP version level when using

View File

@@ -1,4 +1,4 @@
namespace CurlSharp
namespace CurlSharp.Enums
{
/// <summary>
/// This enumeration is used to extract information associated with an

View File

@@ -1,4 +1,4 @@
namespace CurlSharp
namespace CurlSharp.Enums
{
/// <summary>
/// A member of this enumeration is passed as the first parameter to the

View File

@@ -1,4 +1,4 @@
namespace CurlSharp
namespace CurlSharp.Enums
{
/// <summary>
/// Contains values used to initialize libcurl internally. One of

View File

@@ -1,4 +1,4 @@
namespace CurlSharp
namespace CurlSharp.Enums
{
/// <summary>
/// Your handler for the <see cref="CurlEasy.CurlIoctlCallback" />

View File

@@ -1,4 +1,4 @@
namespace CurlSharp
namespace CurlSharp.Enums
{
/// <summary>
/// Your handler for the <see cref="CurlEasy.CurlIoctlCallback" /> delegate

View File

@@ -1,4 +1,4 @@
namespace CurlSharp
namespace CurlSharp.Enums
{
/// <summary>
/// This enumeration contains values used to specify the IP resolution

View File

@@ -1,4 +1,4 @@
namespace CurlSharp
namespace CurlSharp.Enums
{
/// <summary>
/// Values containing the type of shared access requested when libcurl

View File

@@ -1,4 +1,4 @@
namespace CurlSharp
namespace CurlSharp.Enums
{
/// <summary>
/// Members of this enumeration should be passed to

View File

@@ -1,4 +1,4 @@
namespace CurlSharp
namespace CurlSharp.Enums
{
/// <summary>
/// The status code associated with an <see cref="CurlEasy" /> object in a

View File

@@ -1,4 +1,4 @@
namespace CurlSharp
namespace CurlSharp.Enums
{
/// <summary>
/// Contains return codes for many of the functions in the

View File

@@ -8,7 +8,7 @@
//
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
namespace CurlSharp
namespace CurlSharp.Enums
{
public enum CurlMultiOption
{

View File

@@ -1,4 +1,4 @@
namespace CurlSharp
namespace CurlSharp.Enums
{
/// <summary>
/// Contains values used to specify the preference of libcurl between

View File

@@ -8,7 +8,7 @@
//
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
namespace CurlSharp
namespace CurlSharp.Enums
{
public enum CurlOptType
{

View File

@@ -17,7 +17,9 @@
*
**************************************************************************/
namespace CurlSharp
using CurlSharp.Callbacks;
namespace CurlSharp.Enums
{
/// <summary>
/// One of these is passed as the first parameter to

View File

@@ -8,7 +8,7 @@
//
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
namespace CurlSharp
namespace CurlSharp.Enums
{
/* bitmask bits for CURLMOPT_PIPELINING */

View File

@@ -1,4 +1,4 @@
namespace CurlSharp
namespace CurlSharp.Enums
{
/// <summary>
/// This enumeration contains values used to specify the proxy type when

View File

@@ -1,4 +1,4 @@
namespace CurlSharp
namespace CurlSharp.Enums
{
/// <summary>
/// Contains return codes from many of the functions in the

View File

@@ -1,4 +1,4 @@
namespace CurlSharp
namespace CurlSharp.Enums
{
/// <summary>
/// A member of this enumeration is passed to the function

View File

@@ -1,4 +1,4 @@
namespace CurlSharp
namespace CurlSharp.Enums
{
/// <summary>
/// Contains values used to specify the Ssl version level when using

View File

@@ -1,4 +1,4 @@
namespace CurlSharp
namespace CurlSharp.Enums
{
/// <summary>
/// Contains values used to specify the time condition when using

View File

@@ -1,4 +1,4 @@
namespace CurlSharp
namespace CurlSharp.Enums
{
/// <summary>
/// A member of this enumeration is passed to the function

View File

@@ -1,4 +1,4 @@
namespace CurlSharp
namespace CurlSharp.Enums
{
/// <summary>
/// A bitmask of libcurl features OR'd together as the value of the

View File

@@ -24,6 +24,7 @@ using System;
using System.IO;
using System.Reflection;
using System.Runtime.InteropServices;
using CurlSharp.Enums;
namespace CurlSharp
{

View File

@@ -1,10 +1,4 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace CurlSharp
namespace CurlSharp
{
public class SSLFix
{

View File

@@ -5,14 +5,11 @@
// sergey.stoyan@gmail.com
// 27 February 2007
//********************************************************************************************
using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
using System.Text.RegularExpressions;
using System.Threading;
using System.Collections;
namespace Cliver
namespace DateTimeRoutines
{
/// <summary>
/// Miscellaneous and parsing methods for DateTime

View File

@@ -221,7 +221,7 @@ function displayUnconfiguredIndexersList() {
}
}).fail(function (data) {
if(data.responseJSON.error !== undefined) {
doNotify("An error occured while configuring this indexer<br /><b>" + data.responseJSON.error + "</b><br /><i><a href=\"https://github.com/Jackett/Jackett/issues/new?title=[" + indexerId + "] " + data.responseJSON.error + " (Config)\" target=\"_blank\">Click here to open an issue on Github for this indexer.</a><i>", "danger", "glyphicon glyphicon-alert", false);
doNotify("An error occured while configuring this indexer<br /><b>" + data.responseJSON.error + "</b><br /><i><a href=\"https://github.com/Jackett/Jackett/issues/new?title=[" + indexerId + "] " + data.responseJSON.error + " (Config)\" target=\"_blank\">Click here to open an issue on GitHub for this indexer.</a><i>", "danger", "glyphicon glyphicon-alert", false);
} else {
doNotify("An error occured while configuring this indexer, is Jackett server running ?", "danger", "glyphicon glyphicon-alert");
}
@@ -444,7 +444,7 @@ function testIndexer(id, notifyResult) {
}).fail(function (data) {
updateTestState(id, "error", data.error, indexers);
if(data.responseJSON.error !== undefined && notifyResult) {
doNotify("An error occured while testing this indexer<br /><b>" + data.responseJSON.error + "</b><br /><i><a href=\"https://github.com/Jackett/Jackett/issues/new?title=[" + id + "] " + data.responseJSON.error + " (Test)\" target=\"_blank\">Click here to open an issue on Github for this indexer.</a><i>", "danger", "glyphicon glyphicon-alert", false);
doNotify("An error occured while testing this indexer<br /><b>" + data.responseJSON.error + "</b><br /><i><a href=\"https://github.com/Jackett/Jackett/issues/new?title=[" + id + "] " + data.responseJSON.error + " (Test)\" target=\"_blank\">Click here to open an issue on GitHub for this indexer.</a><i>", "danger", "glyphicon glyphicon-alert", false);
} else {
doNotify("An error occured while testing indexers, please take a look at indexers with failed test for more informations.", "danger", "glyphicon glyphicon-alert");
}
@@ -497,10 +497,14 @@ function populateConfigItems(configForm, config) {
hasReacaptcha = true;
captchaItem = config[i];
}
else if (config[i].id === 'cookieheader' && hasReacaptcha) { // inject cookie into captcha item
captchaItem.cookieheader = config[i].value;
console.log(captchaItem);
}
}
var setupItemTemplate = Handlebars.compile($("#setup-item").html());
if (hasReacaptcha && !window.jackettIsLocal) {
if (hasReacaptcha && !window.jackettIsLocal && false) { // disable this for now, use inline cookie (below)
var setupValueTemplate = Handlebars.compile($("#setup-item-nonlocalrecaptcha").html());
captchaItem.value_element = setupValueTemplate(captchaItem);
var template = setupItemTemplate(captchaItem);
@@ -509,11 +513,22 @@ function populateConfigItems(configForm, config) {
for (var i = 0; i < config.length; i++) {
var item = config[i];
var setupValueTemplate = Handlebars.compile($("#setup-item-" + item.type).html());
item.value_element = setupValueTemplate(item);
var template = setupItemTemplate(item);
$formItemContainer.append(template);
if ((item.id === 'username' || item.id === 'password') && hasReacaptcha) {
continue; // skip username/password if there's a recaptcha
}
if (item.type != 'recaptcha') {
var setupValueTemplate = Handlebars.compile($("#setup-item-" + item.type).html());
item.value_element = setupValueTemplate(item);
var template = setupItemTemplate(item);
$formItemContainer.append(template);
}
if (item.type === 'recaptcha') {
// inject cookie dialog until recaptcha can be solved again
var setupValueTemplate = Handlebars.compile($("#setup-item-nonlocalrecaptcha").html());
captchaItem.value_element = setupValueTemplate(captchaItem);
var template = setupItemTemplate(captchaItem);
$formItemContainer.append(template);
/*
var jackettrecaptcha = $('.jackettrecaptcha');
jackettrecaptcha.data("version", item.version);
switch (item.version) {
@@ -543,6 +558,7 @@ function populateConfigItems(configForm, config) {
});
break;
}
*/
}
}
}
@@ -634,7 +650,7 @@ function populateSetupForm(indexerId, name, config, caps, link, alternativesitel
}
}).fail(function (data) {
if(data.responseJSON.error !== undefined) {
doNotify("An error occured while updating this indexer<br /><b>" + data.responseJSON.error + "</b><br /><i><a href=\"https://github.com/Jackett/Jackett/issues/new?title=[" + indexerId + "] " + data.responseJSON.error + " (Config)\" target=\"_blank\">Click here to open an issue on Github for this indexer.</a><i>", "danger", "glyphicon glyphicon-alert", false);
doNotify("An error occured while updating this indexer<br /><b>" + data.responseJSON.error + "</b><br /><i><a href=\"https://github.com/Jackett/Jackett/issues/new?title=[" + indexerId + "] " + data.responseJSON.error + " (Config)\" target=\"_blank\">Click here to open an issue on GitHub for this indexer.</a><i>", "danger", "glyphicon glyphicon-alert", false);
} else {
doNotify("An error occured while updating this indexer, request to Jackett server failed, is server running ?", "danger", "glyphicon glyphicon-alert");
}

View File

@@ -30,7 +30,7 @@
<script type="text/javascript" src="../bootstrap/bootstrap.min.js?changed=2017083001"></script>
<script type="text/javascript" src="../libs/bootstrap-notify.js?changed=2017083001"></script>
<script type="text/javascript" src="../libs/bootstrap-multiselect.js?changed=2017083001"></script>
<script type="text/javascript" src="https://www.google.com/recaptcha/api.js?render=explicit" async defer></script>
<!--<script type="text/javascript" src="https://www.google.com/recaptcha/api.js?render=explicit" async defer></script>-->
<link rel="stylesheet" type="text/css" href="../bootstrap/bootstrap.min.css?changed=2017083001">
<link rel="stylesheet" type="text/css" href="../animate.css?changed=2017083001">
@@ -94,11 +94,11 @@
<hr />
<h3>Jackett Configuration</h3>
<div class="text-center">
<div class="btn-group">
<div class="btn-toolbar">
<button id="change-jackett-port" class="btn btn-primary btn-sm">
<i class="fa fa-wrench"></i> Apply server settings <span class="glyphicon glyphicon-ok-wrench" aria-hidden="true"></span>
</button>
<button id="view-jackett-logs" class="btn btn-danger btn-sm">
<button id="view-jackett-logs" class="btn btn-success btn-sm">
<i class="fa fa-rss"></i> View logs <span class="glyphicon glyphicon-ok-wrench" aria-hidden="true"></span>
</button>
<button id="trigger-updater" class="btn btn-warning btn-sm">
@@ -189,7 +189,7 @@
<div class="setup-item-recaptcha">
<p>This site requires you to solve a ReCaptcha. It's no longer possible to solve the captcha in Jackett. Please enter the cookie for the site manually. <a href="https://github.com/Jackett/Jackett/wiki/Finding-cookies" target="_blank">See here</a> on how get the cookies.</p>
<div class="setup-item-label">Full cookie header</div>
<input class="form-control" type="text" value="" />
<input class="form-control" type="text" value="{{cookieheader}}" />
</div>
</script>
<script id="setup-item" type="text/x-handlebars-template">
@@ -659,6 +659,6 @@
</script>
<script type="text/javascript" src="../libs/api.js?changed=2017083001"></script>
<script type="text/javascript" src="../custom.js?changed=2017110602"></script>
<script type="text/javascript" src="../custom.js?changed=2017110603"></script>
</body>
</html>

View File

@@ -1,19 +1,16 @@
using CurlSharp;
using System;
using System.Collections.Concurrent;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
using System.Net.Http.Headers;
using Jackett.Utils;
using System.Net;
using System.Threading;
using Jacket.Common;
using Jackett.Models.Config;
using CurlSharp;
using CurlSharp.Enums;
using Jackett.Common.Models.Config;
using Jackett.Common.Utils;
namespace Jackett
namespace Jackett.Common
{
public class CurlHelper
{

View File

@@ -120,11 +120,17 @@
paths:
# present trending results if there are no search parms supplied
- path: "{{if .Keywords}}/search/{{ .Keywords}}/1/{{else}}/trending{{end}}"
keywordsfilters:
- name: replace # use this as a workaround till #893 is implemented
args: ["Greys Anatomy", "Grey's Anatomy"]
rows:
selector: tr:has(a[href^="/torrent/"])
fields:
title:
selector: td[class^="coll-1"] a[href^="/torrent/"]
filters:
- name: replace
args: ["Grey's Anatomy", "Greys Anatomy"]
category:
optional: true
selector: td[class^="coll-1"] a[href^="/sub/"]

View File

@@ -68,7 +68,9 @@
- {id: 22, cat: Audio/MP3, desc: "Musique: Album MP3"}
- {id: 23, cat: Audio/Lossless, desc: "Musique: Album Flac"}
- {id: 64, cat: Audio, desc: "Musique: Mégamix Maison"}
- {id: 94, cat: Audio, desc: "Musique: Podcast"}
- {id: 58, cat: Audio, desc: "Musique: Concert"}
- {id: 93, cat: TV, desc: "Serie TV: Saison VOSTFR"}
- {id: 61, cat: TV, desc: "Serie TV: Episode VOSTFR"}
- {id: 63, cat: TV, desc: "Serie TV: Episode VO"}
- {id: 12, cat: TV/Anime, desc: "Serie TV: Animation"}
@@ -100,9 +102,11 @@
- path: torrents-search.php
inputs:
$raw: "{{range .Categories}}c{{.}}=1&{{end}}"
search: "{{ .Query.Keywords }}"
search: "{{ .Keywords }}"
incldead: "1"
keywordsfilters:
- name: re_replace
args: ["^$", "%"] # replace empty search string with %
rows:
selector: table.ttable_headinner > tbody > tr[class^="t-row"]
fields:

View File

@@ -48,9 +48,6 @@
- selector: span.errormsg
test:
path: index.php
download:
selector: a[href^="download.php?id="]
search:
paths:

View File

@@ -1,4 +1,4 @@
---
---
site: Bittorrentfiles
name: Bittorrentfiles
description: "Bittorrentfiles is a Private GERMAN tracker"
@@ -135,22 +135,22 @@
selector: a[href^="/download.php"]
attribute: href
files:
selector: td:nth-child(2) > table > tbody > tr:nth-child(2) > td:nth-child(5) > a
selector: td:nth-child(7)
grabs:
selector: td:nth-child(2) > table > tbody > tr:nth-child(2) > td:nth-child(2)
selector: td:nth-child(6)
size:
selector: td:nth-child(2) > table > tbody > tr:nth-child(2) > td:nth-child(6)
selector: td:nth-child(8)
filters:
- name: replace
args: [".", ""]
- name: replace
args: [",", "."]
seeders:
selector: td:nth-child(2) > table > tbody > tr:nth-child(2) > td:nth-child(2)
selector: td:nth-child(3) > a
leechers:
selector: td:nth-child(2) > table > tbody > tr:nth-child(2) > td:nth-child(3)
selector: td:nth-child(4)
date:
selector: td:nth-child(2) > table > tbody > tr:nth-child(2) > td:nth-child(10)
selector: td:nth-child(9)
filters:
- name: split
args: ["by", 0]
@@ -168,4 +168,4 @@
uploadvolumefactor:
case:
img[alt="2xU"]: "2"
"*": "1"
"*": "1"

View File

@@ -38,10 +38,13 @@
type: info
label: Category Id Note
default: "You can filter your searches by using any of the following category numbers (comma delimited):<br>1 :Anime - Sub<br>2 :Anime - Raw<br>3 :Anime - Dub<br>4 :LA - Sub<br>5 :LA - Raw<br>6 :Light Novel<br>7 :Manga - TLed<br>8 :Manga - Raw<br>9 :♫ - Lossy<br>10 :♫ - Lossless<br>11 :♫ - Video<br>12 :Games<br>13 :Applications<br>14 :Pictures<br>15 :Adult Video<br>16 :Other"
- name: lang-id
type: text
label: Language Id
search:
paths:
- path: "?{{if .Config.cat-id}}id={{.Config.cat-id }}&{{else}}{{end}}q={{if .Keywords}}{{.Keywords}}{{else}}{{end}}"
- path: "?{{if .Config.cat-id}}id={{.Config.cat-id }}&{{else}}{{end}}{{if .Config.lang-id}}lang_id={{.Config.lang-id}}&{{else}}{{end}}q={{if .Keywords}}{{.Keywords}}{{else}}{{end}}"
rows:
selector: div.table-responsive > table > tbody > tr
fields:

View File

@@ -10,23 +10,10 @@
caps:
categorymappings:
# Japanese
- {id: 1, cat: Movies, desc: "jMovies"}
- {id: 2, cat: TV, desc: "TV Shows"}
- {id: 3, cat: TV/Other, desc: "Variety Shows"}
# Korean
- {id: 6, cat: Movies, desc: "kMovies"}
- {id: 4, cat: TV, desc: "TV Shows"}
- {id: 14, cat: TV/Other, desc: "Variety Shows"}
# Chinese
- {id: 8, cat: Movies, desc: "cMovies"}
- {id: 9, cat: TV, desc: "TV Shows"}
- {id: 13, cat: TV/Other, desc: "Variety Shows"}
# Adult
- {id: 13, cat: XXX, desc: "Adult"}
- {id: 13, cat: Movies, desc: "Movie"}
- {id: 11, cat: TV, desc: "TV-Show"}
- {id: 5, cat: TV/Other, desc: "Variety Show"}
- {id: 24, cat: XXX, desc: "Adult"}
modes:
search: [q]
@@ -51,9 +38,6 @@
test:
path: index.php
download:
selector: a[href^="download.php?id="]
search:
paths:
- path: index.php
@@ -64,19 +48,16 @@
options: "0"
active: "0"
rows:
selector: table > tbody > tr > td > table.lista > tbody > tr:has(a[href^="index.php?page=torrent-details&id="])
selector: table.table.table-bordered > tbody > tr:has(a[href^="index.php?page=torrent-details&id="])
fields:
download:
selector: a[href^="index.php?page=downloadcheck&id="]
selector: a[href^="download.php"]
attribute: href
title:
selector: a[onmouseover][href^="index.php?page=torrent-details&id="]
selector: a[title][href^="index.php?page=torrent-details&id="]
banner:
selector: a[onmouseover][href^="index.php?page=torrent-details&id="]
attribute: onmouseover
filters:
- name: regexp
args: "src=(.*?) "
selector: img[src^="torrentimg/"]
attribute: src
category:
selector: a[href^="index.php?page=torrents&category="]
attribute: href
@@ -84,43 +65,42 @@
- name: querystring
args: category
details:
selector: a[onmouseover][href^="index.php?page=torrent-details&id="]
selector: a[title][href^="index.php?page=torrent-details&id="]
attribute: href
size:
selector: td:nth-child(12)
selector: p:has(b:contains("Size:"))
remove: b
date:
selector: td:nth-child(7)
selector: p:has(b:contains("Added:"))
remove: b
filters:
- name: replace
args: ["@ ", ""]
- name: append
args: " +01:00"
- name: dateparse
args: "02/01/2006 -07:00"
args: "01/02/2006 15:04:05 -07:00"
seeders:
selector: b:contains("Seeds:") + a
leechers:
selector: b:contains("Leechers:") + a
grabs:
selector: td:nth-child(10)
selector: p:has(b:contains("Complete:"))
remove: b, a[href^="index.php?page=peers"]
filters:
- name: replace
args: ["---", "0"]
seeders:
selector: td:nth-child(8)
leechers:
selector: td:nth-child(9)
downloadvolumefactor:
case:
img[alt="Full Star 100% Free"]: "0"
img[alt="Half Star 50% Free"]: "0.5"
img[alt="Empty Star 25% Free"]: "0.75"
i.fa-star: "0"
i.fa-star-half-o: "0.5"
i.fa-star-o: "0.75"
"*": "1"
uploadvolumefactor:
case:
span[title="2x Upload Multiplier"]: "2"
"*": "1"
description:
selector: td:nth-child(2)
remove: a
description|append:
selector: td:nth-child(3) > img
attribute: title
filters:
- name: prepend
args: "<br>Language: "
selector: p:has(b:contains("Language:"))

View File

@@ -72,7 +72,7 @@
rows:
selector: tr.browse_color, tr.freeleech_color, tr[id^="kdescr"]
after: 1
fields:
fields: # some users (rank specific?) have an extra column (td:nth-child(4)) with bookmark features
banner:
selector: a[href^="details.php?id="][onmouseover]
attribute: onmouseover
@@ -98,20 +98,20 @@
selector: a[href^="download.php"]
attribute: href
files:
selector: td:nth-child(4)
selector: a[href^="filelist.php"]
size:
selector: td:nth-child(7)
selector: td:nth-last-child(6)
grabs:
selector: td:nth-child(8)
selector: td:nth-last-child(5)
filters:
- name: regexp
args: ([\d,]+)
seeders:
selector: td:nth-child(9)
selector: td:nth-last-child(4)
leechers:
selector: td:nth-child(10)
selector: td:nth-last-child(3)
date:
selector: td:nth-child(6)
selector: td:nth-last-child(7)
downloadvolumefactor:
case:
"a.info > b:contains(\"[FREE]\")": "0"

View File

@@ -1,7 +1,7 @@
---
site: blutopia
name: Blutopia
description: "HD Movie tracker"
description: "HD Tracker Movies/TV/FANRES"
language: en-us
type: private
encoding: UTF-8
@@ -32,13 +32,15 @@
search:
paths:
- path: /filter
- path: /filterTorrents
inputs:
$raw: "{{range .Categories}}categories[]={{.}}&{{end}}"
search: "{{if .Query.IMDBID}}{{else}}{{ .Keywords }}{{end}}"
uploader: ""
imdb: "{{ .Query.IMDBIDShort }}"
tvdb: ""
tmdb: ""
mal: ""
sorting: created_at
direction: desc
qty: 100
@@ -100,4 +102,4 @@
uploadvolumefactor:
case:
"i[data-original-title=\"Double upload\"]": "2"
"*": "1"
"*": "1"

View File

@@ -28,7 +28,7 @@
search:
paths:
- path: "list/{{if .Keywords}}{{.Keywords}}{{else}}movie{{end}}.html"
- path: "list/{{if .Keywords}}{{.Keywords}}{{else}}movie{{end}}/1-1-0.html"
rows:
selector: .rs
fields:

View File

@@ -1,29 +1,23 @@
---
site: torrentwtf
name: Torrentwtf
description: "Torrentwtf is a Czech Private site for TV / MOVIES / GENERAL"
language: cs-cz
site: btworld
name: BTWorld
description: "HD Movie/TV Tracker"
language: en-us
type: private
encoding: UTF-8
links:
- https://torrent.wtf/
- https://btworld.org/
caps:
categorymappings:
- {id: 1, cat: Movies, desc: "Filmy"}
- {id: 2, cat: TV, desc: "Seriály"}
- {id: 3, cat: Audio, desc: "Hudba"}
- {id: 5, cat: PC/Games, desc: "Hry"}
- {id: 6, cat: Books, desc: "Knihy"}
- {id: 8, cat: PC, desc: "Software"}
- {id: 9, cat: XXX, desc: "xXx"}
- {id: 10, cat: Other, desc: "Ostatní"}
- {id: 1, cat: Movies, desc: "Movies"}
- {id: 2, cat: TV, desc: "TV"}
modes:
search: [q]
tv-search: [q, season, ep, imdbid]
movie-search: [q, imdbid]
login:
path: /login
method: form
@@ -31,19 +25,21 @@
username: "{{ .Config.username }}"
password: "{{ .Config.password }}"
error:
- selector: table.main:contains("Tieto poverenia sa nezhodujú s našimi záznamami.")
- selector: table.main:contains("Login Failed!")
test:
path: /torrents
search:
paths:
- path: /filter
- path: /filterTorrents
inputs:
$raw: "{{range .Categories}}categories[]={{.}}&{{end}}"
search: "{{if .Query.IMDBID}}{{else}}{{ .Keywords }}{{end}}"
uploader: ""
imdb: "{{ .Query.IMDBIDShort }}"
tvdb: ""
tmdb: ""
mal: ""
sorting: created_at
direction: desc
qty: 100
@@ -65,9 +61,6 @@
args: "/categories/.*?\\.(\\d+)"
title:
selector: a.view-torrent
filters:
- name: re_replace
args: [".*? / ", ""]
download:
selector: a[href*="/download_check/"]
attribute: href
@@ -108,4 +101,4 @@
uploadvolumefactor:
case:
"i[data-original-title=\"Double upload\"]": "2"
"*": "1"
"*": "1"

View File

@@ -6,8 +6,12 @@
type: public
encoding: UTF-8
links:
- http://cpabien.mx/
- http://www.cpasbiens.cc/
legacylinks:
- http://www.cpabien.cm/
- http://cpabien.cm/
- http://cpasbiens1.com/
- http://cpabien.mx/
- https://www.cpabien.bz/
- http://www.cpabien.bz/
- http://www.cpabien.cx/
@@ -29,13 +33,13 @@
settings: []
download:
selector: "#telecharger a"
selector: div.btn-download a
attribute: href
search:
paths:
- path: "/search.php?t={{ .Keywords }}"
- path: "{{ if .Keywords }}recherche/{{ .Keywords }}{{else}}derniers/{{end}}"
rows:
selector: div[class^='ligne']
selector: table.table-corps tbody tr td
fields:
site_date:
selector: a

View File

@@ -1,96 +0,0 @@
---
site: czteam
name: CZTeam
description: "CZTeam (CZT) is a ROMANIAN Private Torrent Tracker for MOVIES / TV / GENERAL"
language: cs-cz
type: private
encoding: UTF-8
links:
- https://czteam.club/
caps:
categorymappings:
- {id: 1, cat: Movies, desc: "Movies"}
- {id: 2, cat: TV, desc: "TV-Eps"}
- {id: 3, cat: Audio, desc: "Music"}
- {id: 4, cat: PC/Games, desc: "Games"}
- {id: 5, cat: PC/ISO, desc: "Software"}
- {id: 6, cat: XXX, desc: "XxX"}
- {id: 7, cat: Other, desc: "Other"}
modes:
search: [q]
tv-search: [q, season, ep]
login:
path: login.php
method: post
inputs:
username: "{{ .Config.username }}"
password: "{{ .Config.password }}"
keeplogged: 1
login: "Log in"
error:
- selector: form#loginform > span.warning
test:
path: torrents.php
search:
paths:
- path: torrents.php
inputs:
$raw: "{{range .Categories}}filter_cat[{{.}}]=1&{{end}}"
searchstr: "{{ .Query.Keywords }}"
order_by: time
order_way: desc
action: basic
searchsubmit: 1
rows:
selector: table#torrent_table > tbody > tr.torrent
fields:
download:
selector: a[href^="torrents.php?action=download&id="]
attribute: href
title:
selector: a.torrent_name
category:
selector: td.cats_col
case:
div.cats_movies: 1
div.cats_tveps: 2
div.cats_music: 3
div.cats_games: 4
div.cats_software: 5
div.cats_xxx: 6
div.cats_other: 7
details:
selector: a.torrent_name
attribute: href
banner:
selector: a.torrent_name
optional: true
attribute: cover
files:
selector: td:nth-child(3)
date:
selector: td:nth-child(4)
size:
selector: td:nth-child(5)
grabs:
selector: td:nth-child(6)
seeders:
selector: td:nth-child(7)
leechers:
selector: td:nth-child(8)
downloadvolumefactor:
case:
"strong.tl_free": "0"
"strong.tl_neutral": "0"
"*": "1"
uploadvolumefactor:
case:
"strong.tl_neutral": "0"
"*": "1"
description:
selector: div.torrent_info
remove: strong

View File

@@ -38,16 +38,15 @@
tv-search: [q, season, ep]
movie-search: [q]
settings:
- name: cookie
type: text
label: Cookie
login:
path: /login-page
method: form
form: form[action^="/login"]
method: cookie
inputs:
username: "{{ .Config.username }}"
password: "{{ .Config.password }}"
persistent_login: "1"
error:
- selector: div.error
cookie: "{{ .Config.cookie }}"
test:
path: /torrents

View File

@@ -128,7 +128,18 @@
"2" : "Argent (Silver)"
"3" : "Or (Gold)"
"4" : "Argent & Or (Both)"
- name: multilang
type: checkbox
label: Replace MULTI by another language in release name
default: false
- name: multilanguage
type: select
label: Replace MULTI by this language
default: FRENCH
options:
FRENCH : "FRENCH"
MULTI.FRENCH : "MULTI.FRENCH"
ENGLISH: "ENGLISH"
login:
path: tracker/index.php?page=login
method: post
@@ -168,8 +179,15 @@
rows:
selector: table > tbody > tr > td > table.lista > tbody > tr:has(td[onmouseover="this.className='post'"])
fields:
title:
title_phase1:
selector: a[onmouseover][href^="index.php?page=torrent-details&id="]
title_multilang:
text: "{{ .Result.title_phase1 }}"
filters:
- name: re_replace
args: ["[\\.\\s\\[\\-][Mm][Uu][Ll][Tt][Ii][\\.\\s\\]\\-]", ".{{ .Config.multilanguage }}."]
title:
text: "{{if .Config.multilang }}{{ .Result.title_multilang }}{{else}}{{ .Result.title_phase1 }}{{end}}"
details:
selector: a[onmouseover][href^="index.php?page=torrent-details&id="]
attribute: href

View File

@@ -115,6 +115,8 @@
rows:
selector: table > tbody > tr:has(img[src*="/pic/categories/"])
filters:
- name: andmatch
fields:
title:
# using attribute title from td(3) because the text from td(2) a(2) can be abbreviated

View File

@@ -90,11 +90,7 @@
- selector: td.lista[align="center"][colspan="2"] > span
test:
path: index.php
selector: img[alt="Ratio"]
ratio:
path: index.php
selector: img[alt="Ratio"] + font
selector: a[href^="logout.php"]
search:
paths:

View File

@@ -52,16 +52,25 @@
tv-search: [q, season, ep]
movie-search: [q]
settings: []
settings:
- name: downloadlink
type: select
label: Download link
default: "magnet:"
options:
"https://etorrent.click/" : "eTorrent.click"
"magnet:": "magnet"
download:
selector: a[href^="magnet:"]
selector: a[href^="{{ .Config.downloadlink }}"]
search:
path: torrents-search.php
inputs:
$raw: "{{range .Categories}}c{{.}}=1&{{end}}"
search: "{{ .Keywords }}"
sort: "id"
order: "desc"
incldead: "1"
keywordsfilters:
- name: replace
@@ -103,4 +112,4 @@
downloadvolumefactor:
text: "0"
uploadvolumefactor:
text: "1"
text: "1"

View File

@@ -87,6 +87,7 @@
- selector: div.myFrame:has(font.error)
test:
path: torrents-search.php
selector: a.logout
search:
paths:

View File

@@ -0,0 +1,225 @@
---
site: girotorrent
name: Girotorrent
description: "Girotorrent is an ITALIAN Private site for TV / MOVIES / GENERAL"
language: it-it
type: private
encoding: UTF-8
links:
- http://girotorrent.org/
caps:
categorymappings:
# LIBREDICOLA
- {id: 13, cat: Books, desc: "Giornali e Riviste"}
- {id: 15, cat: Books, desc: "Ebook"}
- {id: 16, cat: Books, desc: "Fumetti"}
- {id: 70, cat: Books, desc: "Manuali e Guide"}
- {id: 72, cat: Audio/Audiobook, desc: "Audiolibri"}
# CINEMA
- {id: 17, cat: Movies/Other, desc: "Movie Cam-Ts"}
- {id: 18, cat: Movies/Other, desc: "Movie Screener"}
- {id: 61, cat: Movies/Other, desc: "Movie R5-R6"}
- {id: 19, cat: Movies/Other, desc: "Movie DVDRip"}
- {id: 20, cat: Movies/Other, desc: "Movie BDRip"}
- {id: 60, cat: Movies/Other, desc: "Movie BluRay"}
- {id: 63, cat: Movies/Other, desc: "Movie WEBDLRip"}
# VIDEOTECA
- {id: 22, cat: Movies/SD, desc: "Movie BDRip"}
- {id: 23, cat: Movies/SD, desc: "Movie DvdRip"}
- {id: 23, cat: Movies/SD, desc: "Movie WEBRip"}
- {id: 24, cat: Movies/DVD, desc: "Movie DVD-R 5"}
- {id: 25, cat: Movies/DVD, desc: "Movie DVD-R 9"}
- {id: 26, cat: Movies/HD, desc: "Movie Blu-Ray HD"}
- {id: 27, cat: Movies/3D, desc: "Movie 3D-SBS"}
- {id: 96, cat: Movies/HD, desc: "Movie x265 HEVC"}
- {id: 28, cat: Movies/Foreign, desc: "Movie Subbet-ita"}
- {id: 73, cat: Movies/SD, desc: "Movie MP4"}
- {id: 29, cat: Movies/Foreign, desc: "Movie Ligua Originale"}
# ANIMAZIONE
- {id: 32, cat: TV/Anime, desc: "Anime Disney"}
- {id: 33, cat: TV/Anime, desc: "Anime"}
- {id: 34, cat: TV/Anime, desc: "Anime Altri Cartoni"}
# TELEVISIONE
- {id: 36, cat: TV, desc: "TV Serie TV"}
- {id: 77, cat: TV, desc: "TV Reality"}
- {id: 37, cat: TV, desc: "TV Film TV"}
- {id: 59, cat: TV, desc: "TV Sport"}
- {id: 38, cat: TV, desc: "TV Concerti-Spettacoli"}
- {id: 39, cat: TV, desc: "TV Teatro-Cabaret"}
- {id: 40, cat: TV/Documentary, desc: "Tv Documentario"}
# MUSICA
- {id: 42, cat: Audio, desc: "Musica CD Singoli"}
- {id: 43, cat: Audio, desc: "Musica Italiana"}
- {id: 44, cat: Audio, desc: "Musica Straniera"}
- {id: 45, cat: Audio, desc: "Musica Compilation"}
- {id: 46, cat: Audio, desc: "Musica Video Clip"}
- {id: 58, cat: Audio, desc: "Musica Discografie"}
# SALA GIOCHI
- {id: 47, cat: PC/Games, desc: "PC Games"}
- {id: 48, cat: PC/Games, desc: "PC Giochi PS2-PS3"}
- {id: 49, cat: PC/Games, desc: "PC Giochi Nintendo Wii"}
- {id: 50, cat: PC/Games, desc: "PC Giochi Xbox"}
- {id: 52, cat: PC/Games, desc: "PC Giochi DS-DS3"}
# SOFTWARE
- {id: 54, cat: PC, desc: "PC Programmi Windows"}
- {id: 55, cat: PC/Mac, desc: "PC Mac"}
- {id: 69, cat: PC, desc: "PC Portable"}
- {id: 56, cat: PC, desc: "PC Linux"}
# CELLULARI-PALMARI
- {id: 71, cat: PC/Phone-Android, desc: "Android APP"}
- {id: 74, cat: Other, desc: "Varie"}
- {id: 75, cat: Other, desc: "Immagini Wallpaper"}
modes:
search: [q]
tv-search: [q, season, ep]
movie-search: [q]
login:
path: /index.php?page=login
method: post
inputs:
uid: "{{ .Config.username }}"
pwd: "{{ .Config.password }}"
error:
- selector: div.error
test:
path: /index.php
selector: a[href="logout.php"]
download:
before:
path: "thanks.php"
method: "post"
inputs:
infohash: "{{ .DownloadUri.Query.id }}"
thanks: "1"
rndval: "1487013827343"
selector: a[href^="download.php?id="]
search:
paths:
- path: /index.php
keywordsfilters:
- name: re_replace
args: ["S[0-9]{2}([^E]|$)", ""] # remove season tag without episode (search doesn't support it)
- name: diacritics
args: replace
# most ITA TV torrents are in XXxYY format, so we search without S/E prefixes and filter later
- name: re_replace
args: ["S0?(\\d{1,2})", " $1 "]
- name: re_replace
args: ["E(\\d{2,3})", " $1 "]
inputs:
search: "{{ .Keywords }}"
category: "{{range .Categories}}{{.}};{{end}}"
page: "torrents"
active: 0
rows:
selector: div.b-content > table > tbody > tr > td > table.lista > tbody > tr:has(a[href^="index.php?page=torrent-details&id="])
#http://girotorrent.org/index.php?page=torrent-details&id=73d93dccf84ea3a8b614a3113acfd9eea186d730
fields:
download:
selector: a[href^="index.php?page=downloadcheck&id="]
attribute: href
title: # shortened title?
selector: a[onmouseover][href^="index.php?page=torrent-details&id="]
# normalize to SXXEYY format
filters:
- name: re_replace # replace special characters with " " (space)
args: ["[^a-zA-Z0-9]|\\.", " "]
# normalize to SXXEYY format
- name: re_replace
args: ["(\\d{2})x(\\d{2})", "S$1E$2"]
- name: re_replace
args: ["(\\d{1})x(\\d{2})", "S0$1E$2"]
- name: re_replace #Stagione X --> S0X
args: ["Stagione (\\d{0,1}\\s)", "S0$1"]
- name: re_replace #Stagione XX --> SXX
args: ["Stagione (\\d{2}\\s)", "S$1"]
- name: re_replace #/ Episodio [YY-YY --> EYY-YY
args: ["(\\s\\/\\sEpisodio|\\s\\/\\sEpisodi|\\sEpisodio|\\s\\|\\sEpisodio|\\sEpisodi)\\s\\[", "E"]
- name: re_replace #/ Completa [episodi YY-YY --> EYY-YY
args: ["(\\s\\/\\sCompleta\\s\\[episodi\\s)", "E"]
- name: re_replace #remove di YY] | remove /YY]
args: ["(\\sdi\\s\\d{1,2}|\\/\\d{1,2})\\]", " "]
- name: re_replace #remove various
args: ["(Serie completa|Completa|\\[in pausa\\])", ""]
# fine prova
title: # long titles?
optional: true
selector: a[title][href^="index.php?page=torrent-details"]
attribute: title
filters:
- name: replace
args: ["Vedi Dettagli: ", ""]
# inizio prova
- name: re_replace # replace special characters with " " (space)
args: ["[^a-zA-Z0-9]|\\.", " "]
# normalize to SXXEYY format
- name: re_replace
args: ["(\\d{2})x(\\d{2})", "S$1E$2"]
- name: re_replace
args: ["(\\d{1})x(\\d{2})", "S0$1E$2"]
- name: re_replace #Stagione X --> S0X
args: ["Stagione (\\d{0,1}\\s)", "S0$1"]
- name: re_replace #Stagione XX --> SXX
args: ["Stagione (\\d{2}\\s)", "S$1"]
- name: re_replace #/ Episodio [YY-YY --> EYY-YY
args: ["(\\s\\/\\sEpisodio|\\s\\/\\sEpisodi|\\sEpisodio|\\s\\|\\sEpisodio|\\sEpisodi)\\s\\[", "E"]
- name: re_replace #/ Completa [episodi YY-YY --> EYY-YY
args: ["(\\s\\/\\sCompleta\\s\\[episodi\\s)", "E"]
- name: re_replace #remove di YY] | remove /YY]
args: ["(\\sdi\\s\\d{1,2}|\\/\\d{1,2})\\]", " "]
- name: re_replace #remove various
args: ["(Serie completa|Completa|\\[in pausa\\])", ""]
# fine prova
category:
selector: a[href^="index.php?page=torrents&category="]
attribute: href
filters:
- name: querystring
args: category
details:
selector: a[onmouseover][href^="index.php?page=torrent-details&id="]
attribute: href
banner:
optional: true
selector: a[onmouseover][href^="index.php?page=torrent-details&id="]
attribute: onmouseover
filters:
- name: regexp
args: "src=(.+?) "
size:
selector: td:nth-child(11)
date:
selector: td:nth-child(6)
filters:
- name: dateparse
args: "02/01/2006"
grabs:
selector: td:nth-child(9)
filters:
- name: replace
args: ["---", "0"]
seeders:
selector: td:nth-child(7)
leechers:
selector: td:nth-child(8)
downloadvolumefactor:
case:
img[alt="Free Leech"]: "0"
img[alt="Gold 100% Free"]: "0"
img[alt="Silver 50% Free"]: "0.5"
img[alt="Bronze 25% Free"]: "0.75"
"*": "1"
uploadvolumefactor:
text: "1"
uploadvolumefactor:
optional: true
selector: img[alt$="x Upload Multiplier"]
attribute: alt
filters:
- name: replace
args: ["x Upload Multiplier", ""]

View File

@@ -1,195 +0,0 @@
---
site: gormogon
name: Gormogon
description: "Gormogon is a Private Torrent Tracker for CLASSIC MOVIES / TV / GENERAL"
language: en-us
type: private
encoding: UTF-8
links:
- http://www.gormogon.com
caps:
categorymappings:
# Movies:
- {id: 1, cat: Movies/DVD, desc: "DVD-R"}
- {id: 2, cat: Movies, desc: "Action"}
- {id: 14, cat: Movies, desc: "Adventure"}
- {id: 15, cat: Movies, desc: "Animation"}
- {id: 16, cat: Movies, desc: "Biography"}
- {id: 17, cat: Movies, desc: "Comedy"}
- {id: 18, cat: Movies, desc: "Crime"}
- {id: 19, cat: Movies, desc: "Disney"}
- {id: 92, cat: Movies, desc: "Documentary"}
- {id: 20, cat: Movies, desc: "Drama"}
- {id: 21, cat: Movies, desc: "Family"}
- {id: 22, cat: Movies, desc: "Fantasy"}
- {id: 23, cat: Movies, desc: "Film Noir"}
- {id: 97, cat: Movies, desc: "History"}
- {id: 24, cat: Movies, desc: "Horror"}
- {id: 25, cat: Movies, desc: "Martial Arts"}
- {id: 26, cat: Movies, desc: "Musicals"}
- {id: 27, cat: Movies, desc: "Mystery"}
- {id: 28, cat: Movies, desc: "Romance"}
- {id: 29, cat: Movies, desc: "Sci-Fi"}
- {id: 30, cat: Movies, desc: "Thriller"}
- {id: 31, cat: Movies, desc: "War"}
- {id: 32, cat: Movies, desc: "Western"}
- {id: 33, cat: Movies, desc: "Other"}
# Classic TV:
- {id: 34, cat: TV, desc: "Action"}
- {id: 35, cat: TV, desc: "Adventure"}
- {id: 36, cat: TV, desc: "Animation"}
- {id: 37, cat: TV, desc: "Biography"}
- {id: 38, cat: TV, desc: "Comedy"}
- {id: 39, cat: TV, desc: "Crime"}
- {id: 40, cat: TV, desc: "Disney"}
- {id: 41, cat: TV, desc: "Documentary"}
- {id: 42, cat: TV, desc: "Drama"}
- {id: 43, cat: TV, desc: "Family"}
- {id: 44, cat: TV, desc: "Fantasy"}
- {id: 45, cat: TV, desc: "TV Noir"}
- {id: 46, cat: TV, desc: "Horror"}
- {id: 47, cat: TV, desc: "Martial Arts"}
- {id: 49, cat: TV, desc: "Musicals"}
- {id: 50, cat: TV, desc: "Mystery"}
- {id: 51, cat: TV, desc: "Romance"}
- {id: 52, cat: TV, desc: "Sci-Fi"}
- {id: 48, cat: TV, desc: "Shows"}
- {id: 53, cat: TV, desc: "Thriller"}
- {id: 54, cat: TV, desc: "War"}
- {id: 55, cat: TV, desc: "Western"}
- {id: 56, cat: TV, desc: "Other"}
- {id: 90, cat: TV, desc: "TV Movies"}
# Old Time Radio
- {id: 57, cat: Audio, desc: "Action"}
- {id: 58, cat: Audio, desc: "Adventure"}
- {id: 59, cat: Audio, desc: "Biography"}
- {id: 60, cat: Audio, desc: "Comedy"}
- {id: 61, cat: Audio, desc: "Crime"}
- {id: 62, cat: Audio, desc: "Documentary"}
- {id: 63, cat: Audio, desc: "Drama"}
- {id: 64, cat: Audio, desc: "Family"}
- {id: 65, cat: Audio, desc: "Fantasy"}
- {id: 66, cat: Audio, desc: "Radio Noir"}
- {id: 67, cat: Audio, desc: "Horror"}
- {id: 68, cat: Audio, desc: "Musicals"}
- {id: 69, cat: Audio, desc: "Mystery"}
- {id: 70, cat: Audio, desc: "Romance"}
- {id: 71, cat: Audio, desc: "Sci-Fi"}
- {id: 72, cat: Audio, desc: "Shows"}
- {id: 73, cat: Audio, desc: "Thriller"}
- {id: 74, cat: Audio, desc: "War"}
- {id: 75, cat: Audio, desc: "Western"}
- {id: 76, cat: Audio, desc: "Other"}
# Music:
- {id: 77, cat: Audio, desc: "Official Sountracks"}
- {id: 78, cat: Audio, desc: "Theme Tunes"}
- {id: 79, cat: Audio, desc: "Music 30s"}
- {id: 80, cat: Audio, desc: "Music 40s"}
- {id: 81, cat: Audio, desc: "Music 50s"}
- {id: 85, cat: Audio, desc: "Music 60s"}
- {id: 86, cat: Audio, desc: "Music 70s"}
- {id: 87, cat: Audio, desc: "Music '80 - '84"}
# Printed:
- {id: 82, cat: Books, desc: "Books"}
- {id: 91, cat: Books, desc: "Newspaper"}
- {id: 83, cat: Books, desc: "Scripts"}
- {id: 84, cat: Books, desc: "Posters"}
- {id: 88, cat: Books, desc: "Comics"}
- {id: 89, cat: Books, desc: "Magazines"}
# Software:
- {id: 94, cat: Other, desc: "Screensavers"}
- {id: 95, cat: PC, desc: "Programs"}
- {id: 96, cat: Other, desc: "Other"}
modes:
search: [q]
tv-search: [q, season, ep]
login:
path: index.php?page=login&returnto=index.php
method: post
inputs:
uid: "{{ .Config.username }}"
pwd: "{{ .Config.password }}"
error:
- selector: td.lista > span[style="color:#FF0000;"]
test:
path: index.php
selector: form[name="jump1"]
ratio:
path: index.php
selector: form[name="jump1"] > table > tbody > tr > td:contains("SR ")
filters:
- name: trim
args: ")"
- name: split
args: [" ", 1]
download:
selector: a[href^="download.php?id="]
search:
paths:
- path: index.php
inputs:
search: "{{ .Query.Keywords }}"
category: "{{range .Categories}}{{.}};{{end}}"
page: torrents
active: 0
rows:
selector: table.lista > tbody > tr:has(a[href^="index.php?page=torrents&category="])
fields:
download:
selector: a[href^="index.php?page=downloadcheck&id="]
attribute: href
title:
selector: a[onmouseover][href^="index.php?page=torrent-details&id="]
category:
selector: a[href^="index.php?page=torrents&category="]
attribute: href
filters:
- name: querystring
args: category
details:
selector: a[onmouseover][href^="index.php?page=torrent-details&id="]
attribute: href
size:
selector: td:nth-child(10)
date:
selector: td:nth-child(5)
filters:
- name: dateparse
args: "02/01/2006"
grabs:
selector: td:nth-child(8)
filters:
- name: replace
args: ["---", "0"]
seeders:
selector: td:nth-child(6)
leechers:
selector: td:nth-child(7)
downloadvolumefactor:
case:
img[alt="gold"]: "0"
img[alt="silver"]: "0.5"
"*": "1"
uploadvolumefactor:
case:
img[alt="2x Upload Multiplier"]: "2"
img[alt="3x Upload Multiplier"]: "3"
img[alt="4x Upload Multiplier"]: "4"
img[alt="5x Upload Multiplier"]: "5"
img[alt="6x Upload Multiplier"]: "6"
img[alt="7x Upload Multiplier"]: "7"
img[alt="8x Upload Multiplier"]: "8"
img[alt="9x Upload Multiplier"]: "9"
img[alt="10x Upload Multiplier"]: "10"
"*": "1"

View File

@@ -80,12 +80,15 @@
search:
path: /
keywordsfilters:
- name: re_replace
args: ["S0?(\\d{1,2})E(\\d{1,2})", "$1x$2"]
inputs:
p: "torrents"
page: "1"
pid: "10"
$raw: "{{range .Categories}}&cid[]={{.}}{{end}}"
keywords: "{{ .Query.Keywords }}"
keywords: "{{ .Keywords }}"
search_type: "name"
searchin: "title"
rows:
@@ -93,6 +96,9 @@
fields:
title:
selector: td.torrent_name > a, .newIndicator > a
filters:
- name: append
args: " [spanish]"
details:
selector: td.torrent_name > a, .newIndicator > a
attribute: href

View File

@@ -33,9 +33,6 @@
- selector: table.main:contains("Login Failed!")
test:
path: my.php
download:
selector: a[href^="/download.php"]
search:
paths:

View File

@@ -61,7 +61,6 @@
search:
paths:
- path: /torrents.php
method: post
inputs:
$raw: "{{range .Categories}}cat{{.}}=1&{{end}}"
search: "{{if .Query.IMDBID}}{{ .Query.IMDBID }}{{else}}{{ .Keywords }}{{end}}"

View File

@@ -4,7 +4,7 @@
description: "HDCity is a SPANISH site for HD content"
language: es-es
type: private
encoding: UTF-8
encoding: ISO-8859-1
links:
- https://hdcity.li/
@@ -129,11 +129,14 @@
search:
path: index.php
keywordsfilters:
- name: re_replace
args: ["S0?(\\d{1,2})E(\\d{1,2})", "$1x$2"]
inputs:
page: "torrents"
$raw: "&category={{range .Categories}}{{.}};{{end}}"
active: "1"
search: "{{ .Query.Keywords }}"
search: "{{ .Keywords }}"
rows:
selector: "#category+table table tr:not(:first-child):not(:last-child)"
fields:
@@ -145,6 +148,9 @@
args: category
title:
selector: td[valign="middle"] a
filters:
- name: append
args: " [spanish]"
details:
selector: td[valign="middle"] a
attribute: href

View File

@@ -82,7 +82,6 @@
search:
paths:
- path: /torrents.php
method: post
inputs:
$raw: "{{range .Categories}}cat{{.}}=1&{{end}}"
search: "{{if .Query.IMDBID}}{{ .Query.IMDBID }}{{else}}{{ .Keywords }}{{end}}"

View File

@@ -91,6 +91,11 @@
download:
selector: td:nth-child(11) > a
attribute: href
filters:
- name: prepend
args: "{{ .Config.sitelink }}"
- name: replace # https download links are redirected to http causing invalid cookies => invalid passkeys
args: ["https", "http"]
size:
selector: td:nth-child(6)
remove: br
@@ -103,3 +108,9 @@
selector: td:nth-child(8)
leechers:
selector: td:nth-child(9)
downloadvolumefactor:
case:
"font:contains(\"(FreeLeech)\")": "0"
"*": "1"
uploadvolumefactor:
text: "1"

View File

@@ -0,0 +1,142 @@
---
site: hdspain
name: HD-Spain
description: "HD-Spain is a SPANISH site for HD content"
language: es-es
type: private
encoding: ISO-8859-1
links:
- https://www.hd-spain.com/
caps:
categorymappings:
- {id: 1 , cat: Movies/HD, desc: "Películas"}
- {id: 5 , cat: Movies/HD, desc: "Pelíc. Anim."}
- {id: 4 , cat: TV/HD, desc: "Series"}
- {id: 3 , cat: TV/HD, desc: "Series Anim."}
- {id: 6 , cat: TV/Documentary, desc: "Documentales"}
- {id: 11, cat: TV/Sport, desc: "Deportes"}
- {id: 7 , cat: Audio/Video, desc: "Música/Espec."}
- {id: 9 , cat: TV/OTHER, desc: "Programas TV"}
- {id: 8 , cat: Audio/Lossless, desc: "Audios"}
- {id: 10, cat: XXX/x264, desc: "XXX"}
modes:
search: [q]
login:
path: index.php
method: form
inputs:
usuario: "{{ .Config.username }}"
contrasena: "{{ .Config.password }}"
error:
- selector: p.error
test:
path: index.php
selector: .tcabecera
search:
path: index.php
keywordsfilters:
- name: re_replace
args: ["S0?(\\d{1,2})E(\\d{1,2})", "$1x$2"]
inputs:
sec: listado
ord: 9
b: "{{ .Keywords }}"
ver: "0"
relanz: "0"
$raw: "{{range .Categories}}&cat[]={{.}}{{end}}"
rows:
selector: "table.listatorrents tr:not(:first-child)"
fields:
category:
selector: td.categorias a
attribute: href
filters:
- name: querystring
args: cat
title:
selector: td.titulo a[id]
filters:
- name: append
args: " [spanish]"
details:
selector: td.titulo a
attribute: href
size:
selector: td.tamano
seeders:
selector: td.usuarios.seeds a
leechers:
selector: td.usuarios.leechers a
grabs:
selector: td.usuarios.completados
date:
optional: true
selector: td.fecha
attribute: title
filters:
- name: replace
args: ["Lunes", "Monday"]
- name: replace
args: ["Martes", "Tuesday"]
- name: re_replace
args: ["Miércoles", "Wednesday"]
- name: replace
args: ["Jueves", "Thursday"]
- name: replace
args: ["Viernes", "Friday"]
- name: re_replace
args: ["Sábado", "Saturday"]
- name: replace
args: ["Domingo", "Sunday"]
- name: replace
args: ["Enero", "January"]
- name: replace
args: ["Febrero", "February"]
- name: replace
args: ["Marzo", "March"]
- name: replace
args: ["Abril", "April"]
- name: replace
args: ["Mayo", "May"]
- name: replace
args: ["Junio", "June"]
- name: replace
args: ["Julio", "July"]
- name: replace
args: ["Agosto", "August"]
- name: replace
args: ["Septiembre", "September"]
- name: replace
args: ["Octubre", "October"]
- name: replace
args: ["Noviembre", "November"]
- name: replace
args: ["Diciembre", "December"]
- name: dateparse
args: "Monday 2 January 2006, 15:04"
download:
selector: td.descargar a
attribute: href
downloadvolumefactor:
text: "1"
downloadvolumefactor:
optional: true
selector: td.descargar a b strong
filters:
- name: replace
args: [" X2", ""]
- name: replace
args: ["Freeleech", "0"]
uploadvolumefactor:
text: "1"
uploadvolumefactor:
optional: true
selector: td.descargar a b strong
filters:
- name: replace
args: ["Freeleech X2", "2"]

View File

@@ -114,7 +114,7 @@
selector: td:has(a[href$="filelist=1#filelist"])
remove: a
date:
selector: td > font:contains("Added on")
selector: td > font:has(i.fa-clock-o)
remove: b
filters:
- name: replace

View File

@@ -0,0 +1,160 @@
---
site: ilcorsaroblu
name: Il Corsaro Blu
description: "Il Corsaro Blu is an ITALIAN Public site for TV / MOVIES / GENERAL"
language: it-it
type: public
encoding: UTF-8
links:
- https://www.ilcorsaroblu.info/
legacylinks:
- http://ilcorsaroblu.org/
- https://www.ilcorsaroblu.org/
caps:
categorymappings:
# Adult
- {id: 12, cat: XXX, desc: "Adult"}
# Applicazioni
- {id: 5, cat: PC/Phone-Android, desc: "Android"}
# Books
- {id: 6, cat: Books, desc: "Books"}
# Games
- {id: 3, cat: Other, desc: "Games"}
# Music
- {id: 2, cat: Audio, desc: "Music"}
# Movies
- {id: 17, cat: Movies/SD, desc: "Movie BDRip"}
- {id: 21, cat: Movies/Other, desc: "Movies - Films"}
- {id: 11, cat: Movies/DVD, desc: "DVD-R"}
- {id: 14, cat: Movies/HD, desc: "Movie 720p"}
- {id: 13, cat: Movies/HD, desc: "Movie 1080p"}
- {id: 15, cat: Movies/3D, desc: "Movie 3D"}
- {id: 24, cat: TV/OTHER, desc: "TV Show Standard"}
- {id: 19, cat: TV/HD, desc: "Tv Show 1080p"}
- {id: 20, cat: TV/HD, desc: "Tv Show 720"}
# Various
- {id: 4, cat: Other, desc: "Other"}
- {id: 7, cat: PC, desc: "Windows"}
- {id: 8, cat: Other, desc: "Linux"}
- {id: 9, cat: PC/Mac, desc: "Mac"}
- {id: 23, cat: Other, desc: "Archive"}
modes:
search: [q]
tv-search: [q, season, ep]
movie-search: [q]
settings: []
search:
paths:
- path: /index.php
keywordsfilters:
- name: re_replace
args: ["S[0-9]{2}([^E]|$)", ""] # remove season tag without episode (search doesn't support it)
- name: diacritics
args: replace
# most ITA TV torrents are in XXxYY format, so we search without S/E prefixes and filter later
- name: re_replace
args: ["S0?(\\d{1,2})", " $1 "]
- name: re_replace
args: ["E(\\d{2,3})", " $1 "]
inputs:
search: "{{ .Keywords }}"
category: "{{range .Categories}}{{.}};{{end}}"
page: torrents
active: 0
rows:
selector: div.b-content > table > tbody > tr > td > table.lista > tbody > tr:has(a[href^="index.php?page=torrents&category="])
fields:
title:
selector: td:nth-child(2) > a
# normalize to SXXEYY format
filters:
- name: re_replace # replace special characters with " " (space)
args: ["[^a-zA-Z0-9]|\\.", " "]
# normalize to SXXEYY format
- name: re_replace
args: ["(\\d{2})x(\\d{2})", "S$1E$2"]
- name: re_replace
args: ["(\\d{1})x(\\d{2})", "S0$1E$2"]
- name: re_replace #Stagione X --> S0X
args: ["Stagione (\\d{0,1}\\s)", "S0$1"]
- name: re_replace #Stagione XX --> SXX
args: ["Stagione (\\d{2}\\s)", "S$1"]
- name: re_replace #/ Episodio [YY-YY --> EYY-YY
args: ["(\\s\\/\\sEpisodio|\\s\\/\\sEpisodi|\\sEpisodio|\\s\\|\\sEpisodio|\\sEpisodi)\\s\\[", "E"]
- name: re_replace #/ Completa [episodi YY-YY --> EYY-YY
args: ["(\\s\\/\\sCompleta\\s\\[episodi\\s)", "E"]
- name: re_replace #remove di YY] | remove /YY]
args: ["(\\sdi\\s\\d{1,2}|\\/\\d{1,2})\\]", " "]
- name: re_replace #remove various
args: ["(Serie completa|Completa|\\[in pausa\\])", ""]
# fine prova
download: # handle torrents with normal torrent file download
optional: true
selector: a[href^="download.php?id="]
attribute: href
filters:
- name: querystring
args: id
- name: toupper
- name: prepend
args: http://itorrents.org/torrent/
- name: append
args: ".torrent"
_magnetfilename: # convert title to valid magnet filename
text: "{{ .Result.title }}"
filters:
- name: validfilename
- name: urlencode
magnet: # generate magnet link from download link
optional: true
selector: a[href^="download.php?id="]
attribute: href
filters:
- name: querystring
args: id
- name: prepend
args: "magnet:?xt=urn:btih:"
- name: append
args: "&dn={{ .Result._magnetfilename }}.torrent"
- name: append # add some well known public trackers
args: "&tr=udp://tracker.openbittorrent.com:80/announce&tr=udp://tracker.opentrackr.org:1337/announce"
magnet: # in case a direct magnet link is provided use it
optional: true
selector: a[href^="magnet:?xt="]
attribute: href
category:
selector: a[href^="index.php?page=torrents&category="]
attribute: href
filters:
- name: querystring
args: category
details:
selector: td:nth-child(2) a
attribute: href
banner:
optional: true
selector: td:nth-child(2) > a
attribute: onmouseover
filters:
- name: regexp
args: "src=(.+?) "
size:
selector: td:nth-child(9)
date:
selector: td:nth-child(5)
filters:
- name: dateparse
args: "02/01/2006"
grabs:
selector: td:nth-child(8)
filters:
- name: replace
args: ["---", "0"]
seeders:
selector: td:nth-child(6)
leechers:
selector: td:nth-child(7)

View File

@@ -1,4 +1,4 @@
---
---
site: ilcorsaronero
name: Il Corsaro Nero
description: "Il Corsaro Nero is an ITALIAN Public site for TV / MOVIES / GENERAL"
@@ -8,7 +8,7 @@
links:
- https://ilcorsaronero.info/
certificates:
- 65cfce90841c5522003c8a29f1c139e72b40a88a # incomplete CA chain
- aa7c40aa360a1cec8a9687312fd50402b912e618 # incomplete CA chain
caps:
categorymappings:
@@ -41,9 +41,19 @@
# {{else if and .Query.Keywords (not .advanced-search)}}argh.php?search={{ .Query.Keywords}}
# {{else}}/recenti
# {{end}}"
- path: "{{if .Query.Keywords}}argh.php?search={{ .Query.Keywords}}
- path: "{{if .Keywords}}argh.php?search={{ .Keywords}}
{{else}}/recenti
{{end}}"
keywordsfilters:
- name: re_replace
args: ["S[0-9]{2}([^E]|$)", ""] # remove season tag without episode (search doesn't support it)
- name: diacritics
args: replace
# most ITA TV torrents are in XXxYY format, so we search without S/E prefixes and filter later
- name: re_replace
args: ["S0?(\\d{1,2})", " $1 "]
- name: re_replace
args: ["E(\\d{2,3})", " $1 "]
rows:
selector: "tr.odd,tr.odd2"
fields:
@@ -54,15 +64,32 @@
- name: split
args: [ "/", -1 ]
- name: urldecode
- name: re_replace
args: [ "_+", " "]
- name: replace
args: [ "_", " "]
- name: replace
args: [ " ", " "]
args: [ ".", " "]
- name: re_replace
args: [ "\\s{2,}", " "]
# normalize to SXXEYY format
- name: re_replace
args: ["(\\d{2})x(\\d{2})", "S$1E$2"]
- name: re_replace
args: ["(\\d{1})x(\\d{2})", "S0$1E$2"]
- name: re_replace #Stagione X --> S0X
args: ["Stagione (\\d{0,1}\\s)", "S0$1"]
- name: re_replace #Stagione XX --> SXX
args: ["Stagione (\\d{2}\\s)", "S$1"]
- name: re_replace #/ Episodio [YY-YY --> EYY-YY
args: ["(\\s\\/\\sEpisodio|\\s\\/\\sEpisodi|\\sEpisodio|\\s\\|\\sEpisodio|\\sEpisodi)\\s\\[", "E"]
- name: re_replace #/ Completa [episodi YY-YY --> EYY-YY
args: ["(\\s\\/\\sCompleta\\s\\[episodi\\s)", "E"]
- name: re_replace #remove di YY] | remove /YY]
args: ["(\\sdi\\s\\d{1,2}|\\/\\d{1,2})\\]", " "]
- name: re_replace #remove various
args: ["(Serie completa|Completa|\\[in pausa\\])", ""]
# fine prova
- name: re_replace #try to find multi episode
args: ["(S\\d{2}E\\d{2})\\s(\\d{2})", "$1-$2"]
category:
selector: td:nth-child(1) a
attribute: href

View File

@@ -77,6 +77,9 @@
attribute: href
size:
selector: td.size-row
filters:
- name: re_replace
args: ["(\\d+).(?=\\d{3}(\\D|$))", "$1"]
seeders:
selector: td.sn
date:
@@ -96,4 +99,4 @@
downloadvolumefactor:
text: "0"
uploadvolumefactor:
text: "1"
text: "1"

View File

@@ -1,3 +1,5 @@
# looks like gazelle but ajax.php seems to be disabled:
# https://jpopsuki.eu/ajax.php?action=browse&order_by=time&order_way=desc => Invalid
---
site: jpopsuki
name: JPopsuki
@@ -34,7 +36,7 @@
keeplogged: 1
login: "Log in"
error:
- selector: form#loginform > span.warning
- selector: form#loginform > span.warning, font[color="red"]
test:
path: torrents.php

View File

@@ -1,13 +1,16 @@
---
site: kickasstorrent-kathow
name: KickAssTorrent (thekat.nz)
description: "thekat.nz is a Public KickAssTorrent clone for TV / MOVIES / GENERAL"
name: KickAssTorrent (kat.li)
description: "kat.li is a Public KickAssTorrent clone for TV / MOVIES / GENERAL"
language: en-us
type: public
encoding: UTF-8
links:
- https://thekat.nz/
- https://kat.li/
legacylinks:
- https://kickass.gg/
- https://katcr.io/
- https://thekat.nz/
- https://thekat.se/
- https://kat.how/
@@ -35,6 +38,7 @@
selector: table[class="data"] tr[id]
fields:
category:
optional: true
selector: span[id^="cat_"] > strong > a
attribute: href
filters:
@@ -54,12 +58,23 @@
- name: urldecode
size:
selector: td:nth-child(2)
filters:
- name: replace
args: ["N/A", "0 Bytes"]
- name: re_replace # replace all but last dot (They use dots as decimal and thousands separators)
args: ["[.](?=.*[.])", ""]
date:
selector: td:nth-child(3)
seeders:
selector: td:nth-child(4)
filters:
- name: replace
args: ["N/A", "0"]
leechers:
selector: td:nth-child(5)
filters:
- name: replace
args: ["N/A", "0"]
description:
selector: td:nth-child(1) > div > div > span
downloadvolumefactor:

View File

@@ -258,6 +258,8 @@
args: ["^Extinct", "Extinct 2017"]
- name: re_replace
args: ["^The Flash", "The Flash 2014"]
- name: replace
args: ["Nanatsu no Taizai - Imashime no Fukkatsu - E", "Nanatsu no Taizai - Imashime no Fukkatsu - S02E"]
- name: re_replace
args: ["^The Magicians", "The Magicians 2015"]
# Workaround to remove the translated name from the series, didn't found an better and reliable way to do this, feel free to add more as needed.

View File

@@ -10,53 +10,20 @@
caps:
categorymappings:
# TV
- {id: 23, cat: TV, desc: "TV/HD"}
- {id: 47, cat: TV, desc: "TV/PACKS"}
- {id: 28, cat: TV, desc: "TV/eps"}
- {id: 25, cat: TV, desc: "TV/HDRIP"}
- {id: 24, cat: TV, desc: "TV/TV-packs"}
- {id: 26, cat: TV/HD, desc: "TV/X264-HD"}
- {id: 27, cat: TV/SD, desc: "TV/X264-SD"}
# Movies
- {id: 10, cat: Movies, desc: "Movies/0DAY"}
- {id: 56, cat: Movies/3D, desc: "Movies/3D"}
- {id: 16, cat: TV/Anime, desc: "Movies/ANIME"}
- {id: 44, cat: Movies, desc: "Movies/CAM"}
- {id: 18, cat: Movies/DVD, desc: "Movies/DVDR"}
- {id: 49, cat: Movies/HD, desc: "Movies/hd 1080p"}
- {id: 48, cat: Movies/HD, desc: "Movies/hd 720p"}
- {id: 55, cat: Movies, desc: "Movies/Box Sets"}
- {id: 53, cat: Movies, desc: "Movies/Sports"}
- {id: 17, cat: Movies, desc: "Movies/X264"}
- {id: 57, cat: Movies, desc: "Movies/xmas"}
- {id: 15, cat: Movies/SD, desc: "Movies/XVID"}
# Music
- {id: 54, cat: Audio/Audiobook, desc: "Music/Audio Book"}
- {id: 19, cat: Audio/Lossless, desc: "Music/FLAC"}
- {id: 20, cat: Audio, desc: "Music/DVDR"}
- {id: 21, cat: Audio/MP3, desc: "Music/MP3"}
- {id: 42, cat: Audio, desc: "Music/0DAY"}
- {id: 22, cat: Audio/Video, desc: "Music/VID"}
# Apps
- {id: 9, cat: PC/0day, desc: "Apps/APPS"}
- {id: 11, cat: Books/Ebook, desc: "Apps/EBOOKS"}
- {id: 46, cat: PC/Phone-Other, desc: "Apps/IPHONE/ANDROID"}
- {id: 51, cat: PC, desc: "Apps/Linux"}
- {id: 52, cat: PC/Mac, desc: "Apps/MAC"}
# Games
- {id: 58, cat: Console/Other, desc: "Games/Android"}
- {id: 45, cat: PC/Games, desc: "Games/GAMES"}
- {id: 59, cat: Console/NDS, desc: "Games/NDS"}
- {id: 50, cat: Console, desc: "Games/PS2"}
- {id: 14, cat: Console/PS3, desc: "Games/PS3"}
- {id: 12, cat: Console/Wii, desc: "Games/WII"}
- {id: 13, cat: Console/Xbox 360, desc: "Games/XBOX360"}
# XXX
- {id: 38, cat: XXX, desc: "XXX"}
- {id: 39, cat: XXX, desc: "XXX/0DAY"}
- {id: 40, cat: XXX/Imageset, desc: "XXX/IMAGESET"}
- {id: 41, cat: XXX/Other, desc: "XXX/SITERIPS"}
- {id: 9, cat: TV/Anime, desc: "Anime"}
- {id: 1, cat: PC/0day, desc: "Apps"}
- {id: 13, cat: PC/0day, desc: "Apps"}
- {id: 5, cat: TV, desc: "Episodes"}
- {id: 2, cat: PC/Games, desc: "Games"}
- {id: 12, cat: PC/Games, desc: "Games/PC Rips"}
- {id: 8, cat: Console/Other, desc: "Games/PS2"}
- {id: 7, cat: Console/PSP, desc: "Games/PSP"}
- {id: 3, cat: Movies, desc: "Movies"}
- {id: 11, cat: Movies/SD, desc: "Movies/HDTV"}
- {id: 10, cat: Movies/SD, desc: "Movies/XviD"}
- {id: 4, cat: Audio, desc: "Music"}
- {id: 14, cat: Audio, desc: "Music"}
- {id: 6, cat: XXX, desc: "XXX"}
modes:
search: [q]
@@ -101,12 +68,13 @@
selector: table tr td.text
test:
path: browse.php
selector: li a[href^="logout.php?hash_please="]
selector: a[href*="logout.php?hash_please="]
search:
paths:
- path: browse.php
inputs:
$raw: "{{range .Categories}}c{{.}}=1&{{end}}"
search: "{{ .Keywords }}"
searchin: "title"
incldead: "{{ .Config.incldead }}"
@@ -136,11 +104,7 @@
selector: td:nth-of-type(3) a
attribute: href
files:
optional: true
selector: td:nth-of-type(5) a
files:
optional: true
selector: td:nth-of-type(5):not(:has(a))
selector: td:nth-of-type(5)
date:
selector: td:nth-of-type(7)
filters:
@@ -154,12 +118,13 @@
- name: regexp
args: "([\\d]+)"
seeders:
selector: td:nth-of-type(10) a font
selector: td:nth-of-type(10)
leechers:
selector: td:nth-of-type(11)
downloadvolumefactor:
case:
"span:contains(\"Unlimited\")": "0"
"img[title=\"Free Torrent\"]": "0" # torrent specific free leech (icon)?
"a.info:contains(\"Free\")": "0" # global freeleech note?
"*": "1"
uploadvolumefactor:
text: "1"

View File

@@ -6,19 +6,24 @@
type: public
encoding: UTF-8
links:
- http://www.nextorrent.pro/
- http://www.nextorrent.tv/
legacylinks:
- https://www.nextorrent.site/
- http://www.nextorrent.site/
- http://www.nextorrent.bz/
- http://www.nextorrent.pro/
- https://www.nextorrent.cc/
- https://www.nextorrent.org/
- https://www.nextorrent.tv/
caps:
categorymappings:
- {id: Film, cat: Movies, desc: "Movies"}
- {id: Films, cat: Movies, desc: "Movies"}
- {id: Séries, cat: TV, desc: "TV"}
- {id: Animes, cat: TV/Anime, desc: "TV/Anime"}
- {id: Jeux, cat: Console, desc: "Games"}
- {id: Ebooks, cat: Books, desc: "EBooks"}
- {id: Jeux-PC, cat: PC/Games, desc: "Games PC"}
- {id: Jeux-Consoles, cat: Console, desc: "Games Console"}
- {id: Musique, cat: Audio, desc: "Music"}
- {id: Ebook, cat: Books, desc: "EBooks"}
- {id: Logiciels, cat: PC, desc: "Software"}
modes:
@@ -29,24 +34,22 @@
settings: []
download:
selector: a[href^="/_get/NexTorrent.pro-"]
selector: a[href^="/get_torrent/"]
search:
paths:
- path: /
inputs:
s: "{{ .Keywords }}"
- path: "recherche/{{ .Query.Keywords }}"
rows:
selector: article[id^="post-"]
selector: div.listing-torrent > table tbody tr:has(a)
fields:
site_date:
selector: h2 a
selector: td:nth-child(1) a
filters:
# date is at the end of the title, so we get it and name it site_date
- name: regexp
args: "(\\w+)$"
title:
selector: h2 a
selector: td:nth-child(1) a
filters:
# now we put the date at the right place according scene naming rules using .Result.site_date
- name: replace
@@ -59,32 +62,28 @@
- name: re_replace
args: ["(\\w+)$", ""]
details:
selector: h2 a
selector: td:nth-child(1) a
attribute: href
download:
selector: h2 a
selector: td:nth-child(1) a
attribute: href
banner:
selector: div.post_image
attribute: src
category:
selector: p.meta span.post-category a
selector: td:nth-child(1) i
attribute: class
size:
# there is no size on the primary search results page. defaulting to 500 MB
text: "500 MB"
selector: td:nth-child(2)
date:
selector: p.meta span.post-date a time.entry-date
attribute: datetime
filters:
- name: dateparse
args: "2006-01-02T15:04:05-07:00"
text: now
seeders:
# there is no seeders on the primary search results page. defaulting to 0
text: 0
seeders:
optional: true
selector: td:nth-child(3)
leechers:
text: 0
leechers:
# there is no leechers on the primary search results page. defaulting to 0
text: 0
optional: true
selector: td:nth-child(4)
downloadvolumefactor:
text: "0"
uploadvolumefactor:

View File

@@ -113,3 +113,7 @@
filters:
- name: replace
args: ["Unknown", "0"]
downloadvolumefactor:
text: "0"
uploadvolumefactor:
text: "1"

View File

@@ -122,3 +122,7 @@
selector: td:nth-child(7)
grabs:
selector: td:nth-child(8)
downloadvolumefactor:
text: "0"
uploadvolumefactor:
text: "1"

View File

@@ -1,93 +0,0 @@
---
site: OxTorrent
name: OxTorrent
description: "OxTorrent is a FRENCH Public site for TV / MOVIES / GENERAL"
language: fr-fr
type: public
encoding: UTF-8
links:
- http://www.oxtorrent.com/
# legacylinks:
caps:
categorymappings:
- {id: films, cat: Movies, desc: "Movies"}
- {id: series, cat: TV, desc: "TV"}
modes:
search: [q]
tv-search: [q, season, ep]
settings: []
download:
selector: a[href^="/get_torrent/"]
search:
paths:
- path: "recherche/{{ .Query.Keywords }}"
rows:
selector: div.listing-torrent > table tbody tr:has(a)
fields:
site_date:
selector: td:nth-child(1) a
filters:
# date is at the end of the title, so we get it and name it site_date
- name: regexp
args: "(\\w+)$"
title:
selector: td:nth-child(1) a
filters:
# now we put the date at the right place according scene naming rules using .Result.site_date
- name: replace
args: ["FRENCH", "{{ .Result.site_date }} FRENCH"]
- name: replace
args: ["TRUEFRENCH", "{{ .Result.site_date }} TRUEFRENCH"]
- name: replace
args: ["VOSTFR", "{{ .Result.site_date }} VOSTFR"]
# and we delete it at the end
- name: re_replace
args: ["(\\w+)$", ""]
details:
selector: td:nth-child(1) a
attribute: href
download:
selector: td:nth-child(1) a
attribute: href
size:
selector: td:nth-child(2)
filters:
- name: re_replace
args: [ "\\.(\\d) Ko", "$1X00"]
- name: re_replace
args: [ " Ko", "000"]
- name: re_replace
args: [ "\\.(\\d) Mo", "$1X00000"]
- name: re_replace
args: [ " Mo", "000000"]
- name: re_replace
args: [ "\\.(\\d) Go", "$1X00000000"]
- name: re_replace
args: [ " Go", "000000000"]
- name: re_replace
args: [ "\\.(\\d) To", "$1X00000000000"]
- name: re_replace
args: [ " To", "000000000000"]
- name: replace
args: [ "X", "" ]
date:
text: "now"
seeders:
text: 0
seeders:
selector: td:nth-child(3)
optional: true
leechers:
text: 0
leechers:
selector: td:nth-child(4)
optional: true
downloadvolumefactor:
text: "0"
uploadvolumefactor:
text: "1"

View File

@@ -44,6 +44,7 @@
- selector: td.embedded:has(h2:contains("failed"))
- selector: td.embedded:has(h2:contains("Error"))
test:
selector: a[href^="logout.php"]
path: /browse.php
search:

View File

@@ -106,11 +106,14 @@
search:
path: index.php
keywordsfilters:
- name: re_replace
args: ["S0?(\\d{1,2})E(\\d{1,2})", "T$1 $2"]
inputs:
page: "torrents"
$raw: "&category={{range .Categories}}{{.}};{{end}}"
active: "1"
search: "{{ .Query.Keywords }}"
search: "{{ .Keywords }}"
rows:
selector: "#mcol .block-content-l table table.lista > tbody > tr:not(:first-child):not(.descripcion)"
fields:
@@ -122,6 +125,9 @@
args: category
title:
selector: td:nth-child(2) a
filters:
- name: append
args: " [spanish]"
details:
selector: td:nth-child(3) a
attribute: href

View File

@@ -0,0 +1,111 @@
---
site: racing4everyone
name: Racing4Everyone (R4E)
description: "Private Torrent Tracker for RACING"
language: en-us
type: private
encoding: UTF-8
links:
- https://racing4everyone.eu/
legacylinks:
- https://racing4everyone.jp/
caps:
categorymappings:
- {id: 1, cat: TV/Sport, desc: "BTCC"}
- {id: 3, cat: TV/Sport, desc: "DTM"}
- {id: 4, cat: TV/Sport, desc: "Formula 1 2018"}
- {id: 6, cat: TV/Sport, desc: "Formula 1 2017-1950 (HD)"}
- {id: 21, cat: TV/Sport, desc: "Formula 1 2017-1950 (SD)"}
- {id: 22, cat: TV/Sport, desc: "Formula 2"}
- {id: 23, cat: TV/Sport, desc: "Formula E"}
- {id: 24, cat: TV/Sport, desc: "Misc"}
- {id: 25, cat: TV/Sport, desc: "Motorbikes"}
- {id: 26, cat: TV/Sport, desc: "MotoGP/2/3"}
- {id: 31, cat: TV/Sport, desc: "Nascar"}
- {id: 32, cat: TV/Sport, desc: "Stockcars"}
- {id: 33, cat: TV/Sport, desc: "Touring Cars"}
- {id: 50, cat: TV/Sport, desc: "WRC"}
- {id: 53, cat: TV/Sport, desc: "Open-Wheelers"}
- {id: 54, cat: TV/Sport, desc: "Documentaries/Movies"}
- {id: 55, cat: TV/Sport, desc: "Season Reviews"}
modes:
search: [q]
login:
path: /login
method: form
inputs:
username: "{{ .Config.username }}"
password: "{{ .Config.password }}"
error:
- selector: table.main:contains("Login Failed!")
test:
path: /torrents
search:
paths:
- path: /filterTorrents
inputs:
$raw: "{{range .Categories}}categories[]={{.}}&{{end}}"
search: "{{ .Keywords }}"
uploader: ""
sorting: created_at
direction: desc
qty: 100
preprocessingfilters:
- name: jsonjoinarray
args: ["$.result", ""]
- name: prepend
args: "<table>"
- name: append
args: "</table>"
rows:
selector: tr
fields:
category:
selector: a[href*="/categories/"]
attribute: href
filters:
- name: regexp
args: "/categories/.*?\\.(\\d+)"
title:
selector: a.view-torrent
download:
selector: a[href*="/download_check/"]
attribute: href
filters:
- name: replace
args: ["/download_check/", "/download/"]
details:
selector: a.view-torrent
attribute: href
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
attribute: datetime
filters:
- name: append
args: " +00:00"
- name: dateparse
args: "2006-01-02 15:04:05 -07:00"
downloadvolumefactor:
case:
"i[data-original-title=\"100% Free\"]": "0"
"i[data-original-title=\"Global FreeLeech\"]": "0"
"*": "1"
uploadvolumefactor:
case:
"i[data-original-title=\"Double upload\"]": "2"
"*": "1"

View File

@@ -0,0 +1,152 @@
---
site: RGU
name: RGU
description: "RGU is a Private site for MOVIES / TV / GENERAL"
language: en-us
type: private
encoding: UTF-8
links:
- https://rgu.rgt.life/
caps:
categorymappings:
- {id: 19, cat: Movies/BluRay, desc: "007 Movies"}
- {id: 9, cat: TV/Anime, desc: "ANIME/HD"}
- {id: 1, cat: PC/0day, desc: "Apps"}
- {id: 18, cat: Movies/BluRay, desc: "Dr Who"}
- {id: 5, cat: TV, desc: "TV Episodes"}
- {id: 2, cat: PC/Games, desc: "Games/PC"}
- {id: 11, cat: TV/HD, desc: "TV/HD"}
- {id: 30, cat: Console/PS4, desc: "GAMES/PS4"}
- {id: 7, cat: Console/PSP, desc: "Games/PSP"}
- {id: 17, cat: Movies/BluRay, desc: "Movie Packs"}
- {id: 10, cat: Movies, desc: "Movies X264"}
- {id: 3, cat: Movies/DVD, desc: "Movies/DVDR"}
- {id: 50, cat: Movies/BluRay, desc: "Movies/Bluray-UHD"}
- {id: 31, cat: Movies/BluRay, desc: "MOVIES/COMPLETE-BLURAY"}
- {id: 3, cat: Movies/DVD, desc: "MOVIES/DVDR"}
- {id: 16, cat: TV, desc: "TV Packs"}
- {id: 6, cat: XXX, desc: "MOVIES/XXX"}
modes:
search: [q]
tv-search: [q, season, ep]
movie-search: [q]
settings:
- name: username
type: text
label: Username
- name: password
type: password
label: Password
- name: incldead
type: select
label: "Search Torrents that are:"
default: "0"
options:
"0" : "Active"
"1": "Including Dead"
"2": "Only Dead"
- name: onlyfree
type: checkbox
label: Show only Free torrents
default: false
- name: info
type: info
label: Results Per Page
default: For best results, change the 'Torrents per page' setting to 100 on your profile.
login:
path: login.php
method: form
form: form[action="takelogin.php"]
inputs:
username: "{{ .Config.username }}"
password: "{{ .Config.password }}"
submitme: "X"
submitme: "X" # two submitme needed?!? shouldn't make a difference
error:
- selector: h2:contains("Login failed!")
message:
selector: td.colhead2
test:
path: browse.php
search:
paths:
- path: browse.php
inputs:
$raw: "{{range .Categories}}c{{.}}=1&{{end}}"
search: "{{ .Keywords }}"
searchin: "title"
incldead: "{{ .Config.incldead }}"
"only_free": "{{ if .Config.onlyfree }}1{{else}}0{{end}}"
keywordsfilters:
- name: re_replace
args: ["(\\w+)", " +$1"] # prepend + to each word
rows:
selector: tr.browse_color, tr[id^="kdescr"]
after: 1
fields:
category:
selector: td:nth-of-type(1) a
attribute: href
filters:
- name: querystring
args: cat
title:
selector: td:nth-of-type(2) a
attribute: onmouseover
filters:
- name: split
args: [">", "1"]
- name: replace
args: ["</b", ""]
details:
selector: td:nth-of-type(2) > a[onmouseover]
attribute: href
banner:
selector: td:nth-of-type(2) > a[onmouseover]
attribute: onmouseover
filters:
- name: regexp
args: "src=\\\\'(.+?)\\\\'"
- name: replace
args: ["./pic/noposter.png", ""]
download:
selector: td:nth-of-type(3) a
attribute: href
files:
selector: td:nth-of-type(5)
date:
selector: td:nth-of-type(7)
filters:
- name: dateparse
args: "Jan 02 2006 03:04 PM"
size:
selector: td:nth-of-type(8)
grabs:
selector: td:nth-of-type(9)
filters:
- name: regexp
args: "([\\d]+)"
seeders:
selector: td:nth-of-type(10)
leechers:
selector: td:nth-of-type(11)
description:
selector: td[colspan="14"]
filters:
- name: replace
args: ["\n", "<br>\n"]
downloadvolumefactor:
case:
"b:contains(\"[Free and Double]\")": "0"
"img[alt=\"Free Torrent\"]": "0"
"*": "1"
uploadvolumefactor:
case:
"b:contains(\"[Free and Double]\")": "2"
"*": "1"

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