Compare commits

...

583 Commits

Author SHA1 Message Date
Garfield69
bb52f0066d add arabp2p an Arabic Private site. resolves #6752 2020-04-21 19:27:04 +12:00
Cory
f3d7b9fe26 Revert "Core: remove ItemType enum in favor of pattern matching (#8277)" (#8295)
This reverts commit e83ed96194.
2020-04-21 01:45:21 -05:00
Garfield69
6afd992b9f filelist: update the info about passkey. 2caccea 2020-04-21 16:37:54 +12:00
ilike2burnthing
d1b0393866 torrentrex: Gone. Removed. Resolves #7770 (#8292) 2020-04-21 12:07:39 +12:00
milkiecc
4514ec2d71 milkie: add new private tracker (#8289) 2020-04-21 01:57:17 +02:00
Diego Heras
100f04f8ee filelist: add upload x2 (#8293) 2020-04-21 01:53:21 +02:00
Cory
e83ed96194 Core: remove ItemType enum in favor of pattern matching (#8277) 2020-04-20 17:52:42 -05:00
ilike2burnthing
34a096537b torrentview: new domain *9.net (#8285) 2020-04-21 08:14:03 +12:00
ilike2burnthing
836e9f0e63 torrentgalaxyorg: restore official proxies (#8284) 2020-04-21 08:12:56 +12:00
ilike2burnthing
c87d636b20 topnow: download URL change (#8282) 2020-04-21 08:12:07 +12:00
Garfield69
2cacceaef4 filelist: update passkey info
stress the difference between password and passkey
2020-04-21 07:06:48 +12:00
Garfield69
619731ece2 add haidan a Chinese private site. resolves #8278 2020-04-20 18:04:11 +12:00
Fugi
b76dcbfb82 nyaa.si: Restore filter config (#8275) 2020-04-20 15:31:26 +12:00
Garfield69
341c026c8f add foudecinema a French private site. resolves #8260 2020-04-20 15:30:27 +12:00
Garfield69
e6c4f27837 assorted: replace 2019 on TEST with .Today.Year 2020-04-20 12:18:44 +12:00
Ruben Pahino
8645e859b9 hdcity: detect freeleech flag (#8271) 2020-04-20 12:16:55 +12:00
Cory
c9aec23304 Cardigann: Add .Today.Year to template variables. Resolves #8258 (#8269) 2020-04-20 12:16:19 +12:00
Garfield69
3830c15bd4 lesaloon: new login path #7221 2020-04-20 07:14:09 +12:00
Garfield69
53d6042011 add sktorrent-org a semi-private site. resolves #8222 2020-04-19 16:29:19 +12:00
ilike2burnthing
a85bf67bcf Cpasbienclone: test/empty search fix (#8255) 2020-04-19 11:32:30 +12:00
Garfield69
b29a4770c2 add darktracker a Russian Private site. resolves #8154 2020-04-18 18:19:13 +12:00
Garfield69
a4b535d61e bfg, hdreactor, ret-ru: correct webdlrip 2020-04-18 17:42:00 +12:00
Garfield69
0ab4f3da2b rns: removed. merged with audiobooktorrents. resolves #5880 2020-04-18 15:34:50 +12:00
IIIspaceIII
4d07daaebe FileList: Add API functionality. Resolves #7004 Resolves #5190 (#7987) 2020-04-17 21:18:09 -05:00
Garfield69
dcc5527dd6 torrentbd: switch to cookie method. resolves #8243 2020-04-18 11:08:03 +12:00
morpheus133
cd4e5de8f4 Add support of IMDBid search for ncore indexer (#7847) 2020-04-17 17:45:26 -05:00
Diego Heras
a38b898561 info: fix readme build status 2020-04-18 00:07:58 +02:00
Diego Heras
d9cea8b552 internetarchive: fix torrents without title (#8242) 2020-04-17 16:57:41 -05:00
Garfield69
8f269c57ab retroflix: incldead #4859
correct search path
update cats
add config sort options
add multicat search
add banner
handle dual date presentation
2020-04-18 08:49:50 +12:00
ilike2burnthing
d7ef124a94 torrentparadise: cat update (#8239) 2020-04-18 07:37:04 +12:00
ilike2burnthing
d1cfb8b261 torrentkitty: add .vip official proxy (#8238) 2020-04-18 07:27:12 +12:00
Garfield69
238c42e2e2 torrentz2k: fix date, add latest. #8213 2020-04-17 19:43:24 +12:00
Garfield69
4a07286d41 add torrentz2k a public site. resolves #8213 2020-04-17 19:15:00 +12:00
Garfield69
6a5f19dc23 torrentbomb: set size for movies to 2GB else 512MB 2020-04-17 15:19:28 +12:00
Garfield69
32ec5540a5 torrenthane: set size for movies to 2GB else 512MB 2020-04-17 15:18:54 +12:00
Garfield69
7d98b9b4b2 torrentview: set size for movies to 2GB else 512MB 2020-04-17 15:18:34 +12:00
Garfield69
15129ab1e4 epizod: code tidy up 2020-04-17 15:16:23 +12:00
Garfield69
ff2484bbe4 ET-cd: drop cats. Only 7000 now available. resolves #8228 2020-04-17 10:49:41 +12:00
ilike2burnthing
ee0e2bb888 magnetdl: fix search tests for Sonarr et al (#8227) 2020-04-17 09:35:56 +12:00
ilike2burnthing
670692fb22 magnetdl: add official .org proxy (#8226) 2020-04-17 09:25:51 +12:00
Cory
fa0842c1c8 Cardigann: Add template functions eq/ne (#8214) 2020-04-17 08:52:54 +12:00
Garfield69
cfe0e10b70 mejortorrent: new domain .net resolves #8224 2020-04-17 08:35:52 +12:00
Garfield69
183fb11621 add epizod a French public site. resolves #8200 2020-04-16 19:52:11 +12:00
Garfield69
e7454772fb pwtorrents: http only. 2020-04-16 15:57:11 +12:00
Garfield69
5f5b9afc64 topnow: new layout #8199 2020-04-16 13:55:49 +12:00
Garfield69
a780b7a678 add torrentdb a private site. resolves #8112 2020-04-15 17:07:33 +12:00
cadatoiva
d7850d9367 HDTorrents: Update freeleech detection. Resolves #8197 2020-04-14 23:33:04 -05:00
Uilton Oliveira
7b45dcaed0 BJ-Share: Refactoring and bugfixes. Resolves #8033 (#8142) 2020-04-14 23:01:13 -05:00
Garfield69
fa7e808c73 add kinorun a Russian semi-private 3x site. resolves #7564 2020-04-15 11:23:13 +12:00
Garfield69
dd60498d49 TPB: ignore simplified chinese resolves #7291 2020-04-15 07:40:56 +12:00
Garfield69
ab595d3dfa restore ET.ag resoves #8186
also move proxy from .si to .ag
2020-04-14 19:58:29 +12:00
ilike2burnthing
245d2dd926 thepiratebay: remove proxies using tpb's new html (#8187) 2020-04-14 19:21:10 +12:00
Garfield69
e1eee85849 Revert "TPB: make tpb return 0 results when query is ideographs. resolves #7291"
This reverts commit 46bb3bbe67.
2020-04-14 18:52:21 +12:00
ilike2burnthing
d2122794f9 monova: improve search - andmatch & keywordfilters (#8185) 2020-04-14 18:21:07 +12:00
Garfield69
ccb8032011 magico: fix search wildcard. resolves #8171 2020-04-14 17:51:44 +12:00
garfield69
c27bcd100d bah. got to go to 0.16 2020-04-14 16:45:50 +12:00
garfield69
b3c7f26cf2 restore patch to auto now we are at correct versioning 2020-04-14 16:36:07 +12:00
garfield69
fac0016a11 bump patch to 40 to jump latest published version 2020-04-14 16:33:51 +12:00
Garfield69
18674c4192 xwtc, xwt: forsing http. resolves #8184 2020-04-14 15:38:44 +12:00
Cory
f6ba0ed4d3 Azure: Update project url (again)
[skip ci]
2020-04-13 18:18:59 -05:00
ilike2burnthing
d3a7df861e tpb, rutor: remove down root.yt proxies (#8169) 2020-04-14 08:41:02 +12:00
Ruben Pahino
257c799977 divteam: Add language flags taking VOSE into account (#8147) 2020-04-14 08:11:25 +12:00
krt-
0d40dc4d7d PiratBit: fix TV shows search, add "strip russian letters" option (#8167) 2020-04-13 20:24:59 +12:00
Diego Heras
47454e4c1e test: add unit test to validate all cardigann definitions (#8165)
* test: add unit test to validate all cardigann definitions

Error while parsing Cardigann definition 4thd.yml
YamlDotNet.Core.YamlException: (Line: 13, Col: 9, Idx: 240) - (Line: 13, Col: 9, Idx: 240): Exception during deserialization
 ---> System.Runtime.Serialization.SerializationException: Property 'dec' not found on type 'Jackett.Common.Models.CategorymappingBlock'.
2020-04-13 09:34:45 +02:00
Garfield69
1cbc19823d speedcd: correct typo in error msg. 2020-04-13 17:42:25 +12:00
Diego Heras
58aeabc164 speedcd: fix login. resolves #8151 (#8164) 2020-04-13 07:25:44 +02:00
cadatoiva
f99589443b PassThePopcorn: Add missing tags. Resolves #8157 2020-04-13 00:10:23 -05:00
Garfield69
0b264d5a7c filelist: new domain .io resolves #8161 2020-04-13 16:55:42 +12:00
Diego Heras
9cbc78b1c2 core: fix cookie parsing (part 2) (#8150)
* core: fix cookie parsing (part 2)

After fixing cookie storage in #8133 I noticed that I still have a lot of '.json.bak' files in the Jackett configuration folder. After deleting them they were created again in each request. The cause was we were parsing bad the cookies with '=' character in the value. Most Cloudflare cookies include if so we were sending bad cookies and solving the callenge in each request.

This PR should increase performance in several ways: we are not solving the challenge again (it takes time), we are not making extra requests and we are not updating the Jackett configuration in each request (both files '.json' and '.json.bak').

Tested with the client HttpWebClient2NetCore only. Please do some tests with the site 1337x.
2020-04-13 06:22:50 +02:00
Garfield69
10737431aa onejav: tags can be missing. resolves #8158 2020-04-13 14:59:21 +12:00
Garfield69
0fcc84f8c7 torrentparadise: add new cat. resolves #8152 2020-04-13 14:53:24 +12:00
Diego Heras
5ce1907da1 core: fix azure pipeline (#8159) 2020-04-13 01:30:08 +02:00
Garfield69
b5f5e7d619 Cardigann: disable the ignore unmatched properties.
and fix any yaml indexers that fail the syntax checking.

the option to ignoreUnmatchedProperties was enabled for #1549 and should have been turned off again once that task was completed.

leaving it enabled caused several unexplained behaviours in indexers where some statements were ignore by cardigann despite the intentions of the writer, and were not picked up during testing.
2020-04-13 09:45:57 +12:00
Diego Heras
5d47cf060a core: fix links in rss, torznab and potato feeds (#8141) 2020-04-12 18:06:39 +02:00
Diego Heras
8ce15eca73 core: fix cookie storage. resolves #8126 (#8133) 2020-04-12 15:00:14 +02:00
Cory
0fc36236cd Cardigann: Add query url separator option (#8128) 2020-04-12 19:55:56 +12:00
Cory
b343276603 Test pipelines build (#8136) 2020-04-12 19:12:19 +12:00
Garfield69
eb74a450e4 1337x: make full titles from href. resolves #8137 2020-04-12 15:56:31 +12:00
ilike2burnthing
bd11cd9f59 acgsou: update url 36dm.club (#8144) 2020-04-12 15:12:45 +12:00
ilike2burnthing
652ff788cf torrentview: update domain *8.net (#8145) 2020-04-12 15:09:43 +12:00
Garfield69
48a40f7155 add dimeadozen a semi-private site. resolves #8036 2020-04-12 11:48:05 +12:00
Garfield69
46bb3bbe67 TPB: make tpb return 0 results when query is ideographs. resolves #7291 2020-04-12 09:28:54 +12:00
Garfield69
f7b60376af asiancinema: upgraded to unit3d 2.2.7 resolves #8134 2020-04-12 07:06:45 +12:00
krt-
f355db6788 CardigannIndexer: Fix andmatch filter to respect keywordsfilters resolves #7988 (#8007) 2020-04-11 14:02:00 -05:00
Garfield69
c528fc0f98 TPB: .org is broke. resolves #8129 2020-04-11 19:15:48 +12:00
Garfield69
d18927e4b3 tvstore: switch on tv imdbid #8107 2020-04-11 19:03:46 +12:00
ilike2burnthing
68c946d8f1 torrent9: add /top_torrent/ so proxies can work (#8127) 2020-04-11 18:47:25 +12:00
Diego Heras
8d8622479d anidex: fix ddos protection bypass. resolves #8095 (#8106) 2020-04-11 14:46:15 +12:00
Garfield69
dd8556d21d casatorrent: new domain tctg.in 2020-04-11 12:25:50 +12:00
ilike2burnthing
4c4f1af5c2 Update unblockit proxies domain to *.one (#8118) 2020-04-11 10:21:17 +12:00
Garfield69
ef5fbc844d youbittorrent: new cat selector. resolves #8124 2020-04-11 10:18:58 +12:00
Cory
47bafe2a52 PassThePopcorn: Use freeleech status to set download factor. Resolves #6951 2020-04-10 13:58:23 -05:00
Diego Heras
bcc3a2c576 hdtorrents: add banner and code cleanup (#8089) 2020-04-10 13:43:28 -05:00
Garfield69
b8c364aea4 add 3changtrai a Vietnamese private site. resolves #8080 2020-04-10 20:16:26 +12:00
Garfield69
e4083c3aa6 film-paleis: tv title normalising to s01e01 #8104
thank you @controlol
2020-04-10 18:07:35 +12:00
Garfield69
96eba3fe7d add kaztorka a Russian semi-private site. resolves #8046 2020-04-10 17:42:13 +12:00
Cory
937aa6b370 Add multi value processing to GetQueryString (#7915) 2020-04-09 23:18:10 -05:00
Garfield69
3010f795fd bittorrentam: broken since january. removed. resolves #8017 2020-04-10 16:01:29 +12:00
Garfield69
7059584157 custom.js: occured -> occurred 2020-04-10 12:00:12 +12:00
Garfield69
c6ddf4ac87 leaguehd: amend cookie info and access test. #8111 2020-04-10 11:35:07 +12:00
Garfield69
9aae1a628a moecat: switch to cookie method. resolves #8111 2020-04-10 11:34:32 +12:00
Diego Heras
7736e2f87d core: disable SupportsImdbTVSearch in all trackers due to #8107 (#8108) 2020-04-10 07:48:59 +12:00
Diego Heras
208ca3b065 avistaz: fix category parsing. resolves #7593 (#8050) 2020-04-09 12:12:43 -05:00
Garfield69
4686f8ee5f add torrentbomb a Korean public site. resolves #8044 2020-04-09 17:44:16 +12:00
ilike2burnthing
4368d14e0b kickasstorrents, kathow: proxy fixes (#8101) 2020-04-09 14:49:03 +12:00
ilike2burnthing
97948cc574 torrentdownloads: remove new=1 so proxies can work (#8100) #8085
> I get clearance-failed for https://www.torrentdownloads.me/
> and failed,redirected for https://torrentdownloads.unblockit.pro/
https://github.com/Jackett/Jackett/issues/8085#issuecomment-610718909

It seems that the addition of `new=1` is the source of the issue for those proxies.
Seems to be unneeded as removing it doesn't change the order of results for .info on either their site or in Jackett.
2020-04-09 13:00:24 +12:00
Garfield69
fe3ebd6528 kat.li: handle proxy *.nz html. #8099 2020-04-09 11:25:08 +12:00
Garfield69
bea75c8647 cgpeers: new domain *.to reselves #8098 2020-04-09 10:11:46 +12:00
Garfield69
a5ed8c079b sporthd: update catogories #8090
also add config sort options
add size, seeds, leech and date
add freeleech tag
add vip description
2020-04-09 08:23:29 +12:00
Garfield69
0d0b6afb5f thepiratebay: add info about official status and proxies. 2020-04-08 17:34:38 +12:00
Garfield69
ac61c4d0ad topnow: new layout. resolves #8084 2020-04-08 13:30:48 +12:00
WMP
7727c82bea Btgigs improve (#8075) related to #8068 2020-04-08 10:39:45 +12:00
Garfield69
fc88e0f547 torrent9clone: add proxies
also fix title year move (single word titles would break)
2020-04-08 09:20:51 +12:00
Garfield69
ea0325a173 torrent9: drop proxies added by #7818
these proxies are for torrent9clone !!!
also fix title year move (single word titles would break)
2020-04-08 09:20:11 +12:00
Garfield69
d15d4fb433 gktorrent: fix .torrent DL
also fix title year move (single work totles would break)
2020-04-08 09:18:12 +12:00
Garfield69
e511191544 oxtorrent: fix .torrent dl resolves #8064
add info about proxies only supporting magnet DL
also correct year title move (single word titles would break)
2020-04-08 09:17:20 +12:00
Diego Heras
4f42af2a97 cinecalidad: add new public tracker. resolves #6081 (#8040) 2020-04-07 14:58:36 -05:00
Garfield69
f049d7ce97 Revert "spiritofrevolution: switch to cookie method. #7512"
This reverts commit 3cd459ef32.
2020-04-08 06:45:52 +12:00
Cory
6dc00de864 Re-run dotnet format and enable style enforcement. (#8053) 2020-04-07 11:17:17 -05:00
Diego Heras
4f9670413d torrentday: fix login without recaptcha. resolves #8057 (#8079)
I can't test this very well because I always get the callenge in all domains.
With this fix the configuration dialog will open at least.
2020-04-07 17:16:16 +02:00
Diego Heras
1c34303f58 iptorrents: fix response without results. resolves #8066 (#8078) 2020-04-07 16:50:04 +02:00
Garfield69
3cd459ef32 spiritofrevolution: switch to cookie method. #7512 2020-04-07 19:47:29 +12:00
Garfield69
cf9a517c8c add pussytorrents semi-private 3x site. resolves #6491 2020-04-07 19:03:57 +12:00
Cory
ec3a56ad6f TorrentHaven: Fix date parsing. Resolves #7983 (#8037) 2020-04-07 16:47:58 +12:00
Garfield69
fecd91d19c icetorrent: new engine. resolves #8071
new categories
new login
new domain
enable config sort options
2020-04-07 16:32:54 +12:00
Dustin Williams
3a513da0ea torrenting: Fix login (#8061) 2020-04-07 09:15:35 +12:00
Garfield69
783aa104c4 yggcookie: add user-agent. #8056 2020-04-07 08:33:24 +12:00
Diego Heras
f8595bf59e webui: add negative filtering in search results. resolves #7660 (#8048) 2020-04-06 09:12:15 +12:00
WMP
fe9671d309 btgigs: Added new cattegory TV/UHD (#8052) 2020-04-06 07:20:49 +12:00
Garfield69
88d6e570a1 pterclub: adjust description. #7950 2020-04-06 07:15:14 +12:00
Garfield69
23e76cf621 tntvillage: fix cat 30. #7926 2020-04-06 07:13:33 +12:00
Diego Heras
d660bbc25c style: .editorconfig force_attribute_style=separate (#8051) 2020-04-05 14:03:58 -05:00
Lukas Loibnegger
5ce6a77d3a newrealworld: some fixes. resolves #7314 (#8047) 2020-04-05 16:54:14 +02:00
Garfield69
3dcfd990cb cpabien: add cokie and user-agent method. resolves #7974 2020-04-05 19:19:55 +12:00
ilike2burnthing
f9cb1d6823 exttorrents: add proxy (#8041) 2020-04-05 15:08:04 +12:00
Garfield69
7dedeae827 restore tntvillage. resolves #7926
add complete category list
add date and grabs
clean up to current standards
2020-04-05 11:35:55 +12:00
Garfield69
13fb25478f arenabg: new domain *.ch resolves #8031 2020-04-05 10:00:31 +12:00
Diego Heras
f16ee42f7d torrentleech: code cleanup (#8038)
* Code cleanup

Tested
2020-04-04 22:34:55 +02:00
Diego Heras
16a59b8abd torrentday: some fixes and code cleanup (#8035)
* Add SupportsImdbTVSearch
* Code cleanup

Tested
2020-04-04 22:34:38 +02:00
Diego Heras
45e5d032f7 iptorrents: some fixes and code cleanup (#8034)
* Add SupportsImdbTVSearch
* Fix 4k category
* Remove files code, not available in the website
* Add description
* Add configuration advice
* Code cleanup

Tested
2020-04-04 22:34:19 +02:00
ilike2burnthing
4fa14efc89 cpasbienclone: change search (#8027) 2020-04-05 05:46:06 +12:00
Diego Heras
ada079dba7 core: remove virtual member calls (part 2) (#8023) 2020-04-04 19:56:51 +13:00
Diego Heras
484cc35577 core: remove unused imports (#8022) 2020-04-04 19:56:18 +13:00
ilike2burnthing
983e7954da Il Corsaro Nero: domain change (#8026)
also removed wrong link
2020-04-04 19:23:26 +13:00
Garfield69
3e082137b0 torrentparadise: add new cats. resolves #8015 2020-04-04 19:21:53 +13:00
Garfield69
46a37e5b6c pctorrent: add andmatch resolves #8019 drop rows w/out size. resolves #8020 2020-04-04 19:21:00 +13:00
Garfield69
e7050767fe firebit: add new cats. resolves #7961 2020-04-04 19:19:55 +13:00
Diego Heras
4d058ef8b1 epublibre: fix torrent download with retry (#8021) 2020-04-04 00:04:58 -05:00
Diego Heras
4741902ade core: remove unused classes (#8012) 2020-04-04 01:03:26 +02:00
Diego Heras
b2390bb954 core: remove virtual member calls (part 1) (#8011) 2020-04-04 00:37:42 +02:00
Garfield69
933f983fdf add speedmasterhd a private German site. resolves #7982 2020-04-03 17:02:58 +13:00
Cory
e1c15f82d2 TvStore: refactor and update (#7978) 2020-04-03 13:43:32 +13:00
Garfield69
4dce8f61d9 tvchaosuk: add new cat. 2020-04-03 13:40:17 +13:00
Cory
fc74b9ebcf core: Remove non-null extention classes. (#7979) 2020-04-03 13:31:39 +13:00
Garfield69
84204f43e9 unit3d: update translations. resolves #7985 2020-04-03 10:11:59 +13:00
krt-
3ef950ac64 rutracker: update category mappings, fix release title cleanup, strip… (#7984) 2020-04-03 10:11:22 +13:00
Garfield69
0004b900d0 feedurneed: gone. removed. resolves #6872 2020-04-03 08:29:08 +13:00
Garfield69
ef82fc136b xspeeds: site changed title layout. resoves #7975 2020-04-02 11:16:46 +13:00
Garfield69
5cfa72361b assorted: refresh missing cat handling. 2020-04-02 10:59:23 +13:00
Garfield69
db37b42b86 Revert "HDBitsAPI: enable torznab TV imdbid support. #4859"
This reverts commit 72e64b41a1.
2020-04-02 10:55:27 +13:00
Garfield69
72e64b41a1 HDBitsAPI: enable torznab TV imdbid support. #4859 2020-04-02 08:52:59 +13:00
Jonas Stendahl
09df00aae5 HDBitsAPI: Add missing filter options (#7931) 2020-04-02 08:05:33 +13:00
Diego Heras
76cbae8da5 audiobooktorrents: fix title (#7972) 2020-04-02 07:45:32 +13:00
Garfield69
76b6b3e5d7 siambit: add info about team PM preventing search 2020-04-01 22:02:47 +13:00
Garfield69
964803d170 assorted: refresh missing cat handling. 2020-04-01 20:10:32 +13:00
Garfield69
a08ad7e16d add pterclub a private Chinese site. resolves #7950 2020-04-01 15:48:29 +13:00
Garfield69
ec175fb31b torrentparadise: add new cats. resolves #7960 2020-04-01 15:14:24 +13:00
Garfield69
2e61ec23a6 linuxtracker: add new cats. resolves #7963 2020-04-01 15:13:58 +13:00
Garfield69
3e438c9a56 kathow: cats can be missing, provide default. resolves #7964 2020-04-01 15:13:21 +13:00
Garfield69
cfee3e79d2 cpasbienclone: fix year processing. resolves #7962 2020-04-01 15:11:03 +13:00
ilike2burnthing
8e64ecb027 piratbit: category fix. Resolves #7965 (#7967) 2020-04-01 13:55:58 +13:00
Garfield69
e7e1014759 torrentview: new domain *7.net resolves #7954 2020-04-01 11:59:43 +13:00
Garfield69
d7bc256c49 torrent9clone: add new cat xxx. resolves #7959 2020-04-01 11:59:04 +13:00
Garfield69
8f1ae194d1 sosuki: ignore rows without size. resolves #7958
these do not have a download link in the details page
2020-04-01 11:58:16 +13:00
Garfield69
30eb7ea088 firebit: fix category selector. resolves #7961 2020-04-01 11:57:08 +13:00
Garfield69
466c7ddb73 cpasbienclone: drop expired domain. resolves #7955 2020-04-01 11:56:37 +13:00
Diego Heras
6727b28cf1 speedcd: fix category search and add alternative domain (#7946) 2020-03-31 15:26:07 -05:00
Diego Heras
2672ade767 awesomehd: fix series search and audio track (#7947) 2020-03-31 14:37:07 +13:00
Garfield69
fcbd644c2b chilebt: lang es-419 #7855 2020-03-31 10:20:52 +13:00
Garfield69
4a232b1b25 add pc-torrent a Russian games site. resolves #7933 2020-03-30 15:14:59 +13:00
Diego Heras
e92bef31ef pretome: add configuration instructions (#7925) 2020-03-30 14:25:21 +13:00
Diego Heras
06449160b6 torrentbytes: add imdb search (#7930) #4859 2020-03-30 09:43:37 +13:00
Diego Heras
99d3aad60a newpct: huge refactor, alternative links, remove cache (#7927) 2020-03-30 09:40:31 +13:00
Diego Heras
aef52b694a funfile: add imdb search and code clean up (#7921) #4859 2020-03-30 09:32:37 +13:00
Garfield69
8c5a4c9f5c ettv: site is providing magnets only. resolves #7922 2020-03-30 08:48:13 +13:00
ilike2burnthing
b601b41932 badasstorrents: update for new layout resolves #7919 (#7920) 2020-03-30 08:26:03 +13:00
Cory
2608a4cd44 720-pier: Update parsing. Resolves #7877 resolves #7190 (#7895) 2020-03-29 10:21:09 -05:00
Diego Heras
729edfa262 polishtracker: add imdb search and code clean up (#7913) 2020-03-29 13:46:10 +02:00
Diego Heras
e808df2e53 pretome: add imdb search and code clean up (#7916) 2020-03-29 13:45:30 +02:00
Garfield69
96d1d4eee7 tvstore: fix out of bounds error. resolves #7876 2020-03-29 16:22:30 +13:00
Garfield69
27a7ce8d3f torrentdownload: add new cat. resolves #7914 2020-03-29 13:25:46 +13:00
Garfield69
e6a56a0cbb torlock: handle missing cats. resolves #7911 2020-03-29 13:05:19 +13:00
Garfield69
73fb71507c pornleech: site is forcing to http 2020-03-29 06:49:23 +13:00
ilike2burnthing
ba3dbcc5dc ETTV: proxies fixed (#7903) 2020-03-29 05:44:04 +13:00
Garfield69
206529a7a4 add dark-shadow a German private site. resolves #7892 #4573 2020-03-29 05:29:13 +13:00
Diego Heras
42ae10d71e awesomehd: migrated to c#. resolves #1943 resolves #1481 resolves #5225 (#7827) 2020-03-29 05:24:46 +13:00
Garfield69
2e69af5e40 add chilebt a Chilean private site. resolves #7855 2020-03-28 11:08:50 +13:00
Cory
ff3f3b9765 TorrentDay: fix invalid cast in results parser. Resolves #7875 (#7884) 2020-03-28 09:23:10 +13:00
Garfield69
c30a8656f5 720pier: switch to https 2020-03-27 23:12:48 +13:00
Cory
2920cf7d20 Revert accidentally deleted line. Resolves #7870 (#7874) 2020-03-27 21:35:26 +13:00
Garfield69
1c42d741a5 add torrenthane a Turkish public site. resolves #7853 2020-03-27 18:21:13 +13:00
Cory
06315470c4 core: remove enumerable related extensions (#7842) 2020-03-26 22:13:38 -05:00
Garfield69
5806ec4b94 purovicio: change language #5573 2020-03-27 13:54:02 +13:00
Garfield69
e88c49ac8c add ptsbao a Chinese private site. resolves #7820 2020-03-27 12:40:01 +13:00
Cory
b5a6aab894 core: prefer object initializers (#7342) 2020-03-26 17:15:28 -05:00
ilike2burnthing
12e55828f0 ETTV: update primary URL and proxies (#7862) 2020-03-27 09:23:09 +13:00
Garfield69
ea2c4d4c71 add purovicio a Spanish private site. resolves #5573 2020-03-27 08:53:45 +13:00
Garfield69
dc530f5abb add finelite a Finnish private site. resolves #7803 2020-03-26 20:00:22 +13:00
ende124
8dff433d2e norbits: fixed no results when the tracker returns one torrent (#7854) 2020-03-26 16:38:05 +13:00
Garfield69
c6f9927afa add rintor a Russian 3x site. resolves #7795 2020-03-26 16:37:40 +13:00
Garfield69
fa9db90d56 assorted 3x sites: add missing modes 2020-03-26 15:51:36 +13:00
Cory
8fbcbf25c3 core: Remove reflection in Nullable TryParse extension (#7844) 2020-03-26 06:56:22 +13:00
Cory
707298b0d7 core: Add enumerable extension FirstIfSingleOrDefault (#7837) 2020-03-26 06:54:51 +13:00
Garfield69
8de87f4b23 ztracker: add engine tag 2020-03-25 19:33:41 +13:00
Garfield69
281977a5e9 the-madhouse: add imdbid search
and silver DLVF
2020-03-25 19:33:28 +13:00
Garfield69
6c64f68360 crazycorner: add silver DLVF 2020-03-25 19:33:02 +13:00
Garfield69
fc8ebdca92 add turkseed a Turkish private site. resolves #7753 2020-03-25 19:32:46 +13:00
Garfield69
c249c2ef12 unit3d: avoid uneccessary relogin. resolves #7810
update all unit3d indexers of varying releases (19)
2020-03-25 16:30:52 +13:00
Cory
d7dddf6009 core: remove string extensions in favor of explicit conversion (#7839) 2020-03-24 21:39:38 -05:00
Ruben Pahino
c18c0d574f hdcity: append both Spanish and English when it's not VOSE (#7826) 2020-03-25 12:32:40 +13:00
Diego Heras
3257c8e759 blutopia: login with user/pass and fix login redirect (#7834) 2020-03-25 07:20:16 +13:00
Garfield69
105d1b669a torlock: fix a broken link caused by #7818 2020-03-24 20:40:52 +13:00
Garfield69
98d1f579ee teamhd: possible fix for access error. #7819 2020-03-24 20:33:46 +13:00
Garfield69
40705eebde add demon-site a Hungarian private site. resolves #7752 2020-03-24 20:03:47 +13:00
Garfield69
f3c35b2d6f mteamtp: fix titles #7824 2020-03-24 19:16:24 +13:00
Garfield69
684b664aa7 mteamtp: oops fix 7824 2020-03-24 14:45:14 +13:00
Garfield69
62b568e004 mteamtp: updates resolve #7824 2020-03-24 14:41:35 +13:00
Garfield69
939572100b tenyardtracker: ignore invalid cert. resolves #7812 2020-03-24 13:05:45 +13:00
Garfield69
2f23844edc sharewood: add french date for 'year ago'. resolves #7828 2020-03-24 12:26:28 +13:00
Garfield69
90fb780560 beitai, hdtime, pt99: fix imdbid search
these sites do not find imdbid if using the imdburl option.
but they do work if looking in the description.
2020-03-24 11:17:28 +13:00
ilike2burnthing
3cca3b2e38 Assorted proxies for assorted indexers (#7818)
* Update torrentz2.yml
* Update rutor.yml
* Update torrentgalaxyorg.yml
* Update torrentdownloads.yml
* Update torrent9.yml
* Update nyaasi.yml
* Update monova.yml
* Update limetorrents.yml
* Update kickasstorrent-kathow.yml
* Update kickasstorrent.yml
* Update itorrent.yml
* Update ilcorsaronero.yml
* Update glodls.yml
* Update eztv.yml
* Update exttorrents.yml
* Update exttorrents.yml
* Update extratorrent-cd.yml
* Update ettv.yml
* Update 1337x.yml
* Update torlock.yml
* Update kickasstorrent.yml
* Update isohunt2.yml
* Update torrentproject2.yml
* Update yourbittorrent.yml
* Update kickasstorrent.yml
* Update btdb.yml
* Update btdb.yml
* Update kickasstorrent.yml
* Update torrentz2.yml
* Update btdb.yml
* Update torrentz2.yml
* Update kickasstorrent.yml
* Update 1337x.yml
* Update torrent9.yml
* Update glodls.yml
* Update ettv.yml
* Update demonoid.yml
* Update idope.yml
* Update zooqle.yml
* Update eztv.yml
* Update skytorrentsclone.yml
* Update limetorrents.yml
* Update prostylex.yml
* Update movcr.yml
* Update torrentdownloads.yml
* Update monova.yml
* Update rutor.yml
* Update torrentgalaxyorg.yml
* Update magnet4you.yml
* Update nyaasi.yml
* Update tokyotosho.yml
* Update torrentdownload.yml
* Update oxtorrent.yml
* Update torrent9.yml
* Update oxtorrent.yml
* Update cpasbienclone.yml
* Update nntt.yml
* Update torrentdownload.yml
* Update torrentdownload.yml
2020-03-23 20:13:40 +13:00
Garfield69
ef73523c8e torrentdownload: fix category missing. enable cookie method. resolves #7784 2020-03-23 18:08:34 +13:00
Garfield69
79105d9750 limetorrents: handle missing category. resolves #7779 2020-03-23 17:43:33 +13:00
Garfield69
79a2c79e47 torrentz: handle missing category. resolves #7785 2020-03-23 17:37:58 +13:00
Garfield69
47b80b1c10 skyclone: handle missing category. resolves #6721 2020-03-23 16:45:38 +13:00
Diego Heras
91812d94b9 core/cardigann: add noappend modifier to category field (#7816) 2020-03-23 15:07:33 +13:00
ilike2burnthing
955bca06da GloTorrents: Update Links (#7817) 2020-03-23 14:59:10 +13:00
Garfield69
2cc43ff634 assorted indexers: tweek info on cookies 2020-03-23 13:30:15 +13:00
Garfield69
fb34e6fd54 cpasbien: switch to POST for search. #7771 2020-03-23 13:08:52 +13:00
Garfield69
c78cd997ee demonoid: ad dcookie method. #7771
add imdbid search #4859
update categories
fix search-in-titles (was: on now: 1)
2020-03-23 11:51:23 +13:00
Diego Heras
b9e7bb5261 torrentproject2: fix malformed size. resolves #7806 (#7815) 2020-03-23 10:52:08 +13:00
Diego Heras
a97dbedc99 xbytes2: fix categories and movie year. resolves #3290 resolves #7790 resolves #7793 (#7814) 2020-03-23 10:50:19 +13:00
Garfield69
6f33737eb9 tfile: removed. #7850 resolves #7281 2020-03-23 10:17:17 +13:00
Garfield69
47e2ab3a56 seedpeer: removed. #6450 resolves #7283 2020-03-23 10:01:58 +13:00
Garfield69
2b68356431 torrentland: update categories. resolves #7807
also add imdbid search #4859
drop no-poster banner
spot freeleech DLVF
2020-03-23 09:23:57 +13:00
junglebus
7a35701d12 Core: Package Update (#7800) 2020-03-23 04:05:17 +13:00
Garfield69
1b0888028f thepiratebay: add additional working proxies. #7256 2020-03-22 19:54:22 +13:00
Garfield69
c2ef2517c3 torrentleech: update categories. resolves #7791 2020-03-22 19:25:02 +13:00
junglebus
ff4ce78db0 Pipeline: macOS integration tests (#7801) 2020-03-22 18:42:34 +13:00
junglebus
38fddab2ad Pipeline: Add code coverage (#7799) 2020-03-22 18:40:58 +13:00
Garfield69
6eaaa419f6 torrentseeds: update categories. resolves #7794 2020-03-22 18:18:18 +13:00
Garfield69
d84a18700a ilcorsaronero: update categories, resolves #7778 2020-03-22 17:20:49 +13:00
Garfield69
9e499379ff focusx: update categories. resolves #7777 2020-03-22 16:43:49 +13:00
Garfield69
39a3157d75 zetorrents: handle no results error. resolves #7776 2020-03-22 16:29:14 +13:00
Garfield69
3139a2cd1d bittorrent.am: switch to https. resolves #7775 2020-03-22 12:41:09 +13:00
Garfield69
5978eb7263 Merge branch 'master' of https://github.com/Jackett/Jackett 2020-03-22 12:40:59 +13:00
Garfield69
2c1fdf0824 torrentproject2: new domain resolves #7773
replace blanks between words with plus
change row filter to be more inclusive
2020-03-22 12:17:53 +13:00
Seriox
15d3d08be7 TorrentSyndikat: Add wildcard to season only search. 2020-03-21 18:06:22 -05:00
Garfield69
c4b77eafb6 7torrents: change keyword-less search. resolves #7772 2020-03-22 11:49:43 +13:00
Garfield69
f2bf84a8d9 nostalgic: add cat5 resolves #7792 2020-03-22 11:38:03 +13:00
Garfield69
149171d60b 4thd: exclude rows without download links. resolves #7789 2020-03-22 11:03:43 +13:00
Garfield69
9e30f24025 ebbok-shares: add info about unread PM. resolves #7787 2020-03-22 10:55:38 +13:00
Garfield69
d013fa04b6 toros: add cat 9 resolves #7783 2020-03-22 09:57:42 +13:00
Garfield69
809a24f486 set DLVF=0 for various public sites. resolves #7781 2020-03-22 09:30:12 +13:00
Diego Heras
3f01a61510 core: update user-agent. resolves #7743 resolves #6099 (#7771) 2020-03-22 09:11:05 +13:00
Garfield69
1b6cc7740d thepiratebay: add assorted proxies 2020-03-22 06:23:38 +13:00
Garfield69
03b686ae59 monova: add unblockit proxy.
change how we filter out the sponsored rows so that the indexer can work with unblockit proxy too.
2020-03-22 06:23:12 +13:00
Garfield69
99411e1ed9 magnetdl: fix followredirect. resolves #7766 2020-03-22 06:21:33 +13:00
junglebus
67d01d4abc Core: Pipeline - Separate unit tests from build job (#7740) 2020-03-21 14:50:54 +01:00
josdion
3c6f55b65e Zamunda.net: fix freeleech detection (#7763) 2020-03-21 21:19:39 +13:00
Cory
916f4756ef Rargb: Update category mappings. Resolves #7760 (#7761) 2020-03-21 20:59:56 +13:00
Garfield69
401c3a3f41 readme: update linux .net core supported OS link for 3.1 2020-03-21 18:27:40 +13:00
Garfield69
6f854d0d99 add unblockit proxy for assorted public trackers. 2020-03-21 18:27:03 +13:00
ilike2burnthing
7c33c536bc 1337x: update the 1337x Proxy domain. (#7759)
and add a followredirect.
2020-03-21 17:21:51 +13:00
Cory
3d6da64973 DigitalHive: Fix error in configure script. Resolves #7755 (#7757) 2020-03-21 13:17:54 +13:00
Diego Heras
be8dfd7ad6 redacted: fix double login in gazelle trackers. resolves #6461 (#7756) 2020-03-21 13:17:25 +13:00
josdion
60da4948fa Zelka.org: Improve torrent names (#7750)
update categories
add freeleech DLVF
remove hard-coded sitelink from selectors
2020-03-21 13:16:51 +13:00
Cory
b2040d3a5b hd-torrents: Add global freeleech check. resolves #7734 (#7751) 2020-03-21 10:58:31 +13:00
Garfield69
869b09f574 microbit: add imdbid search support. #4859 2020-03-21 09:50:06 +13:00
Garfield69
aac2e42f9e thepiratebay: add tpb.bike as an alternate sitelink #7256
its an unofficial proxy but it works with the indexer
2020-03-21 06:57:14 +13:00
Garfield69
2ad340f1bc downloadville: fix cat 27 caused by da7589838f 2020-03-21 06:38:47 +13:00
Garfield69
943ddba22b worldoftomorrow: fix cat 95 2020-03-20 20:23:02 +13:00
Garfield69
79fa4da2bf arabafenice: fix cats 47 and 40 2020-03-20 20:22:12 +13:00
Garfield69
da7589838f downloadville: update categories 2020-03-20 20:20:03 +13:00
Garfield69
2a4be14998 1337x: fix cats 54, 70, 76 2020-03-20 20:13:16 +13:00
Garfield69
c81a2163ce sktorrent: fix cat 43 2020-03-20 20:09:13 +13:00
Garfield69
d3ada91c3a hdreactor: fix cat 5006 2020-03-20 20:08:10 +13:00
Garfield69
653dcca2af worldoftomorrow: fix cat 89 2020-03-20 20:06:41 +13:00
Garfield69
c2a24cae22 hdme: fix cat 57 2020-03-20 20:05:32 +13:00
Garfield69
babd49c082 torrent-explosive: fix cat 258 2020-03-20 20:02:15 +13:00
Garfield69
1007366471 torrentsectorcrew: fix cat 121 and 124 2020-03-20 20:00:40 +13:00
Garfield69
e747d4e2fa hachede: fix cat 125 2020-03-20 19:58:00 +13:00
Garfield69
efab277714 generationfree: fix cat 1 and 130 2020-03-20 19:56:38 +13:00
Garfield69
7f8cfa7eca insanetracker: update categories
add config sort options
add includedead
fix grabs > 999
description is optional
add engine tag
2020-03-20 19:40:09 +13:00
Garfield69
6abc8adcd1 horrorsite: update engine tag 2020-03-20 16:54:52 +13:00
Garfield69
8e1d171937 girotorrent: update categories 2020-03-20 16:54:26 +13:00
Garfield69
9f433dd0de generationfree: update categories 2020-03-20 16:53:50 +13:00
Garfield69
65da3e83af add horrorsite a Hungarian private tracker. resolves #7736 2020-03-20 13:04:47 +13:00
Garfield69
21250c275f galeriens: 2020-03-20 12:38:21 +13:00
Garfield69
e612c111c6 bithorlo: add cookie alert 2020-03-20 12:38:02 +13:00
Garfield69
e24c95d4e2 Revert "baibako: switch to private."
This reverts commit 6e8726c197.
2020-03-20 07:09:41 +13:00
Garfield69
2920caf7c0 film-paleis: add imdbid search. #4859
also add banner
add freeleech DLVF
2020-03-19 21:01:50 +13:00
Garfield69
f73a047ed9 extremetorrents: update categories 2020-03-19 18:52:01 +13:00
Garfield69
313ade66f4 btnext: add imdbid search. #4859
also update categories
add info about uread mail
add imdb link in results
fix date parsing
2020-03-19 15:51:56 +13:00
Garfield69
392a0d7b7e cardigannindexer: add optional arg to strdump
when you are using multiple strdumps it is useful to tag them with an unique eyecatcher so you can tell them apart in the enhanced log.
2020-03-19 09:09:58 +13:00
Garfield69
324afbcd0f fanoin: add imdbid search. #4859
also add config sort options
add uhd category
add movie-search
fix date selectors
no engine tag
2020-03-19 06:39:08 +13:00
Garfield69
7f003427fd carpathians: add imdbid search. #4859
also add config sort options
add x4 ULVF
add engine tag
2020-03-19 05:55:36 +13:00
Cory
a89246c9a7 core: improve date parsing for today/yesterday/tomorrow. resolves #7701 (#7704) 2020-03-18 21:11:48 +13:00
ende124
69b01c34f8 norbits: Add fullsearch option (#7710) 2020-03-18 20:50:13 +13:00
Garfield69
a41bf6ebe4 polishsource: add imdbid search. #4859 2020-03-18 19:57:58 +13:00
Garfield69
5bf224d84d torrentview: new domain *6.net 2020-03-18 17:44:17 +13:00
Garfield69
03af2a6d1d torrent-turk: add info about unread PM 2020-03-18 17:43:51 +13:00
Garfield69
aee7bba3ce estone: update search terms 2020-03-17 20:15:30 +13:00
Garfield69
29b1304967 downloadville: 2020-03-17 18:25:16 +13:00
Garfield69
81029b3019 documentarytorrents: update modes. 2020-03-17 18:10:32 +13:00
Garfield69
62caeb3f4d divteam: update categories 2020-03-17 17:58:53 +13:00
Garfield69
fba3e1922f deildu: add imdbid search. #4859 2020-03-17 16:46:46 +13:00
Garfield69
0aacf6344d cztorrent: update categories 2020-03-17 16:24:59 +13:00
Garfield69
9d3d8ea18d crnaberza: fix title search. 2020-03-17 16:10:01 +13:00
Garfield69
4da3921e21 crazyspirit: update cats 2020-03-17 13:06:58 +13:00
Diego Heras
fed41d5b68 epublibre: add server overloaded message (#7697) 2020-03-16 21:48:14 +01:00
Garfield69
15841e26a8 cinemamovies: add imdb search. #4859 2020-03-17 09:03:18 +13:00
Garfield69
22a5f46276 totallykids: add imdb search. #4859 2020-03-16 17:58:39 +13:00
Garfield69
eb5642f293 ptfiles: add imdb search. #4859
add config sort options
add UHD cat
add engine tag
remove obsolete search terms
2020-03-16 17:36:21 +13:00
Garfield69
98297b2d85 torrentleech-pl: add imdb search. #4859 2020-03-16 17:10:25 +13:00
Diego Heras
d900ac065f webui: save search sorting and number of entries indefinitely. resolves #4558 (#7686) 2020-03-16 12:59:49 +13:00
Cory
469620d88b gimme-peers: fix parse error on zero results resolves #7678 (#7683) 2020-03-16 00:21:00 +01:00
Diego Heras
461594e336 elitetracker: fix parsing error. resolves #7675 (#7684) 2020-03-15 17:26:18 -05:00
Cory
63f1870319 bithdtv: implement category searching. resolves #7577 resolves #7596 (#7663)
* Implement category searching. Fixes #7577

* Check if no results Resolves #7596
2020-03-15 22:49:31 +01:00
Cory
ba9710cd7c hdspace: add imdb search support (#7665) 2020-03-15 22:38:54 +01:00
Garfield69
44c814417c ztracker: add imdb search. #4859
add silver DLVF
correct a couple cats
2020-03-16 09:15:32 +13:00
Diego Heras
d1290fc226 epublibre: add new spanish public tracker. resolves #6309 (#7669) 2020-03-15 18:42:14 +01:00
junglebus
fa88fa8af8 Readme: Full framework now no longer needed (#7667)
Since we are now running self contained .NET Core, no .NET is required on the host system
2020-03-16 06:24:36 +13:00
Diego Heras
318b3667ff core: add more binary formats in .gitattributes (#7670) 2020-03-16 06:23:28 +13:00
Garfield69
7b0adc7e45 torrentwal: gone. removed. resolves #7286 2020-03-15 16:35:05 +13:00
Diego Heras
d27ab11d8c elitetracker: add imdb search and fix categories (#7657) 2020-03-15 00:18:42 +01:00
Cory
5b6c9fee49 Fix proxy in all cases (#7631) resolves #7411
Co-authored-by: Diego Heras <ngosang@hotmail.es>
2020-03-14 17:53:16 -05:00
Garfield69
594959c858 torrent.lt: add config sort options
add movie-search
add freeleech
2020-03-15 11:08:20 +13:00
Garfield69
5b570b5cec torrentland: fix ULVF 2020-03-15 11:07:10 +13:00
Garfield69
875be5dde9 spiritofrevolution: fix imdbsearch. #4859 2020-03-15 08:59:11 +13:00
Garfield69
ffd1600226 bitturk, blutopia: update categories 2020-03-15 08:58:39 +13:00
Garfield69
07ef45b637 datascene: add imdb search support. #4859
also add config sort options
incldead
2020-03-15 08:58:02 +13:00
Cory
24f7fa461d bithdtv: improve imdb search. resolves #7596 (#7629) 2020-03-14 19:16:03 +01:00
Garfield69
8ebeb2bb17 icetorrent: fix imdbid searches. resolves #7651
also drop searching with both browse and browseadult
now use one or the other via config checkbox.
2020-03-15 06:33:08 +13:00
Diego Heras
fe3fcda356 style: improve date utils code style (#7632) 2020-03-15 05:05:10 +13:00
Diego Heras
b689b4581e funfile: fix parsing error. resolves #7633 (#7639) 2020-03-15 05:04:05 +13:00
Garfield69
623da8f70d readme: update net461 link 2020-03-14 21:30:06 +13:00
Garfield69
6afaf39d5a .gitattributes default eol=lf for all text source
used mainly by my win10 desktop github, it would pop up a warning that lf was going to be converting LF to CRLF
https://github.com/desktop/desktop/issues/3841 provided this solve
2020-03-14 21:29:43 +13:00
Garfield69
55bd19dc45 moecat: add 2FA to config. resollves #7644 2020-03-14 19:40:47 +13:00
junglebus
0979b0c86d Pipeline: Get text after list of commits #3 2020-03-14 17:20:38 +11:00
junglebus
f4c8677091 Fix Pipeline: Get text after list of commits 2020-03-14 16:57:34 +11:00
junglebus
1123e9d101 Pipeline: Get text after list of commits 2020-03-14 16:43:40 +11:00
junglebus
9a39fcc310 Test build from master 2020-03-14 16:18:44 +11:00
junglebus
e8fc2c758f Update build triggers 2020-03-14 15:57:57 +11:00
junglebus
b8cdf9f929 No longer needed now that Cake is not used 2020-03-14 15:45:54 +11:00
junglebus
89c860a16d Update for GitHubRelease@1 2020-03-14 15:21:54 +11:00
junglebus
ee5255b24a Update README.md 2020-03-14 15:10:51 +11:00
junglebus
674e6e37ad Update pipeline for new Azure organization 2020-03-14 15:05:49 +11:00
Garfield69
082e761d0d add * Torrent Oyun indir a public Turkish games site. resolves #7636 2020-03-14 07:16:11 +13:00
Garfield69
6e8726c197 baibako: switch to private. 2020-03-14 05:39:25 +13:00
Garfield69
3a8ed21d75 amigosshare: handle missing cat 2020-03-13 20:23:49 +13:00
Garfield69
eda0205dcd add u-torrents a private Romanian site. resolves #7626 2020-03-13 06:54:35 +13:00
Garfield69
bd250ff971 add lastfiles a Romanian privat esite. resolves #7580 2020-03-12 21:20:55 +13:00
Garfield69
1c63e9444d zetorrents: refining title. #7574 2020-03-12 19:18:24 +13:00
Garfield69
57a5959751 add zetorrents a public french site. resolves #7574 2020-03-12 18:18:59 +13:00
Garfield69
9e005c4c0b Merge branch 'master' of https://github.com/Jackett/Jackett 2020-03-12 18:14:49 +13:00
Garfield69
c6d4746e85 assorted public trackers: info about cat 100001 -> 7000 2020-03-12 18:14:41 +13:00
Diego Heras
e9851a1dbc funfile: handle disabled download links. resolves #7436 (#7620) 2020-03-12 17:34:07 +13:00
Garfield69
96d23ca19a add torrentv a public movie site. resolves #7575 2020-03-12 17:31:03 +13:00
Garfield69
733494a8a3 scenefz: update for new engine. resolves #7625 2020-03-12 15:25:00 +13:00
Garfield69
ed763fe7e1 scenefz: domain change. #7625 2020-03-12 12:36:52 +13:00
Garfield69
1ef146eea4 add rapidzona a Russian public 3x site. resolves #7561 2020-03-12 09:15:48 +13:00
Diego Heras
ed884f507d puntotorrent: fix missing categories. resolves #7592 (#7623) 2020-03-12 08:53:25 +13:00
fnk93
ec6ed23ecc torrentseeds: fix re-login and add imdb id (#7611) 2020-03-11 19:34:02 +01:00
Garfield69
9d5456e370 add torrent-pirat a public Russian 3x site. resolves #7560 2020-03-12 06:03:28 +13:00
Garfield69
ad08e28aa9 add sosulki a public Russian 3X site. resolves #7559 2020-03-11 20:48:38 +13:00
Diego Heras
34dcdd3332 core: add trace running in docker (#7565) 2020-03-11 19:02:55 +13:00
Cory
628944cb59 TorrentHeaven: Update with user provided HTML. Resolves #7586 (related to #7387) (#7616) 2020-03-11 18:20:53 +13:00
Diego Heras
08bc5cca75 shazbat: fix parser. resolves #7604 (#7619) 2020-03-11 17:58:45 +13:00
Diego Heras
5c16161bfc morethantv: add banner and description. resolves #7594 (#7621) 2020-03-11 12:53:12 +13:00
Diego Heras
4eb7392678 core: improve linux install scripts. resolves #5533 #6098 #5407 (#7614) 2020-03-10 21:49:26 +01:00
halali
0448193ecd cztorrent: Fix for Sonarr Season pack search (#7607) 2020-03-11 08:41:11 +13:00
Garfield69
dc27463826 lesaloon: revert https switching. #7221 2020-03-11 07:53:07 +13:00
Celedhrim
d3ef94c8db Downloadville: add a fake referer in search (#7609) resolves #7514 2020-03-11 07:26:45 +13:00
cadatoiva
74e3dec4ed Revert "Update TorrentHeaven with user provided html. Resolves #7586"
This reverts commit 0b45557292.
2020-03-10 12:05:57 -05:00
cadatoiva
0b45557292 Update TorrentHeaven with user provided html. Resolves #7586 2020-03-10 12:02:03 -05:00
halali
0387de3c67 trezzor: Fix some selectors in search page (#7608) 2020-03-10 21:56:54 +13:00
Garfield69
6358e62741 awsomehd: add info about 90 day mandatory password change 2020-03-10 21:42:23 +13:00
Garfield69
b012502f87 rns: add info about unread PM preventing searches. 2020-03-10 21:41:29 +13:00
Garfield69
608bb7d9e4 sdbits: switch to https: resolves #7221 2020-03-10 20:43:17 +13:00
fnk93
5f4206608e TorrentSeeds: Convert to csharp (#7603) 2020-03-10 20:11:35 +13:00
Garfield69
aef10d1246 eggmeon: gone. removed. resolves #7133 2020-03-10 20:07:03 +13:00
Garfield69
6fc972aa08 onejav: description can be missing. resovles #7602 2020-03-10 19:22:41 +13:00
Garfield69
271dcda7aa cartoonchaos: add posters. resolves #7598 2020-03-10 18:20:21 +13:00
Garfield69
94656892f8 totallykids: add posters. resolves #7589 2020-03-10 18:10:18 +13:00
Diego Heras
5fedb9c613 moviesdvdr: fix banner and size (#7599) 2020-03-10 16:04:04 +13:00
snamds
538fa6a38d Newpct: optionally remove year from movies (#7597) 2020-03-10 15:53:57 +13:00
Garfield69
4bd4d9cb0f add imdbid to modes for any yaml that supports .Query.IMDBID 2020-03-10 15:35:59 +13:00
RicardoVelaC
a353af2ee5 vizuk: Update categories (#7605) resolves #7588 2020-03-10 14:34:27 +13:00
Garfield69
565a368689 hdarea: fix imdb lookup. resolves #7368 2020-03-10 14:23:14 +13:00
Garfield69
972d4c9485 bittower: revert back to http. #7221 2020-03-10 10:25:45 +13:00
Garfield69
45b77de6b2 torrentland: add UHD categories. resolves #7591 2020-03-10 07:42:24 +13:00
Garfield69
a27c641bcb torrentleech: update categories. resolves #7590 2020-03-10 06:52:40 +13:00
Garfield69
00cd1bd81c xbytes2: update categories. resolves #7587 2020-03-10 05:30:37 +13:00
Garfield69
80493b7fa1 add ParnuXi a Russian Public 3x site. resolves #7558 2020-03-09 20:11:02 +13:00
Garfield69
925471fa0c add pornolive a Russian Public 3x site. resolves #7557 2020-03-09 18:22:17 +13:00
Garfield69
9ae16dea57 add iv-torrents a Russian semi-private site. resolves #7556 2020-03-09 17:19:53 +13:00
Garfield69
1aa3a256eb add rutracker-ru a Russian Puiblic site. resolves #7526 2020-03-09 15:51:25 +13:00
Garfield69
89d12c6fa9 zelka: add info note about bulgarian ip filter 2020-03-09 11:31:36 +13:00
Garfield69
ab6ca013d3 yaml: switch from http to https #7221 2020-03-09 11:31:04 +13:00
Garfield69
20d6e3eb09 yaml: add note about sites not supporting https 2020-03-09 11:28:43 +13:00
Garfield69
37a50f8374 pleasuredome: fix details selector
also switch to https
2020-03-09 10:57:01 +13:00
Diego Heras
fac07933a2 solidtorrents: remove retries (#7584) 2020-03-08 22:26:50 +01:00
Garfield69
8b77c6b483 greeklegends: gone. removed. resolves #6369 2020-03-09 08:21:26 +13:00
Garfield69
f1414eeeec alein: gone. removed. resolves #4021 2020-03-09 08:14:16 +13:00
jshessen
7a7bf83d98 add MMA-Torrents, a private site. (#7567) 2020-03-09 07:05:38 +13:00
Diego Heras
1d48eb2dd7 avistaz, cinemaz, privatehd: add imdb search and banner (#7579) 2020-03-08 16:28:43 +01:00
Diego Heras
e3956e123e bakabt: fix optional tag. resolves #7571 #7420 (#7578) 2020-03-08 14:50:38 +01:00
Diego Heras
1cfe4f9226 bithdtv: add imdb search (#7576) 2020-03-08 14:12:08 +01:00
Diego Heras
2cc601c5a9 piratethenet: add imdb search and fix categories. resolves #7381 (#7562) 2020-03-08 12:45:10 +01:00
Diego Heras
a69664428a morethantv: add imdb search and others category (#7553) 2020-03-08 12:32:37 +01:00
Diego Heras
389daf9957 hdolimpo: add banner image (#7568) 2020-03-08 12:31:58 +01:00
Garfield69
93d200895b cartookchaos, totallykids: note https unsupported 2020-03-08 21:06:39 +13:00
Garfield69
43414bc9ed cartoonchaos: switch to https albeit with invalid ca 2020-03-08 20:54:49 +13:00
Garfield69
e630390c3f rustorka: note https unsupported 2020-03-08 20:54:08 +13:00
Diego Heras
eb59c0bd51 nostalgic: add vhstapes in the name (#7563) 2020-03-08 16:16:44 +13:00
Diego Heras
e743f8b3aa elitetorrent: add banner image (#7569) 2020-03-08 16:06:56 +13:00
Garfield69
6aaf12f1de documentarytorrents: fix typo in config sort options 2020-03-08 15:40:23 +13:00
Garfield69
bd5e407b53 galeriens: switch to cookie method. resolves #7544 2020-03-08 08:13:11 +13:00
Garfield69
c93d2821b1 torrentview: new domain *5.net resolves #7548 2020-03-08 07:56:21 +13:00
Garfield69
f65d2ba9e9 cpabien: new domain wvw. resolves #7547 2020-03-08 07:55:53 +13:00
Diego Heras
0f5655ce0d core: fix CloudflareSolverRe library. Resolves #7397 (#7546) 2020-03-08 07:21:23 +13:00
Garfield69
5484d05291 bigtower, hqsource, inperil: switch to https. #7221 2020-03-08 07:07:39 +13:00
Garfield69
fcc4168f54 xtremezone: add imdb to results. #4859 2020-03-08 07:04:04 +13:00
Garfield69
905a52a82b pornorip: andmatch 2020-03-07 17:47:28 +13:00
Garfield69
86fd318211 add pornorip a 3x site. resolves #7524 2020-03-07 17:43:33 +13:00
Garfield69
e66beb64f4 add pornotor a 3x site. resolves #7523 2020-03-07 16:20:03 +13:00
Garfield69
4b507a3cbb add torrentrex a public search engine. resolves #7515 2020-03-07 15:09:10 +13:00
junglebus
5033171c54 azure-pipeline: Add debug logging (#7541)
Hopefully will help with github publish failures, quite a few debug statements there...
https://github.com/microsoft/azure-pipelines-tasks/blob/master/Tasks/GitHubReleaseV0/operations/Action.ts
2020-03-07 14:51:06 +13:00
Garfield69
8faf1c94dc ccfbits: add imdb support. #4859
also add config sort options
update ULVF
add engine tag
2020-03-07 12:55:48 +13:00
Garfield69
d05ad1ccb5 ilcorsaroblu: now semi-private resolves #7528 2020-03-07 09:54:41 +13:00
Cory
9a1562ef8b readme: Sort trackers alphabetically (#7537) 2020-03-07 09:53:34 +13:00
Garfield69
b5aee501e2 legittorrents: add missing sort 2020-03-07 09:49:09 +13:00
Cory
dc9519c451 XtremeZone: add imdb search support (#7536) resolves #7520 2020-03-07 07:41:31 +13:00
fnk93
692d006078 Torrent-Explosiv: Remove [Group Tag] in title (#7532) 2020-03-07 07:35:33 +13:00
Cory
7aac4fcfcb TorrentBytes: fix title bug (#7529) resolves #7527 2020-03-07 07:35:10 +13:00
Garfield69
81e5589707 filmsclub: optional (TVShows) label for tv titles. #7289 2020-03-06 20:51:46 +13:00
Cory
c36e3356e2 PassThePopcorn: Fix Freeleech check (#7522) resolves #6951 2020-03-06 19:03:42 +13:00
fnk93
d477f01f84 Speedtorrent Reloaded: Update to new tracker source (#7519) resolves #7517 2020-03-06 17:25:28 +13:00
Cory
d080c4a2ac Fuzer: Fix parse error (#7521) resolves #7502 2020-03-06 17:21:28 +13:00
Garfield69
6252c73cf2 xtremezone: new layout et.al. resolves #7520
also add missing cats
add config sort options
add imdb support #4859
2020-03-06 17:13:31 +13:00
Cory
3f9d182083 core: Remove warning suppression (#7513) 2020-03-06 14:57:59 +13:00
Garfield69
0cabbd68c5 spiritofevolution: fix login. resolves #7512 2020-03-06 14:35:03 +13:00
Garfield69
c42027842b downloadville: add cat 95 2020-03-06 14:34:18 +13:00
Garfield69
66b433bde1 torrentdownloads: drop .me domain 2020-03-05 20:01:01 +13:00
garfield69
ae303a5d4e Fix parse errors in Fuzer and Hebits (#7506) resolves #7502 2020-03-05 19:45:27 +13:00
Garfield69
ca19d2219e pornolab: add new categories 2020-03-05 19:44:22 +13:00
Garfield69
28a85d6426 add spiritofrevolution a Private German site. resolves #7503 2020-03-05 17:37:08 +13:00
Garfield69
bd1d95ade5 filmsclub: massage TV titles for sonarr. #7289 2020-03-05 13:32:31 +13:00
Garfield69
6634c5a036 ilcorsaronero: new domain .pw 2020-03-05 12:58:06 +13:00
Garfield69
cc671dfab5 btdb: download can be missing. resolves #7508 2020-03-05 12:53:32 +13:00
Garfield69
dccdd89299 cinemageddon: switch to https #7221 2020-03-05 12:12:00 +13:00
Garfield69
c23370b5fc limetorrents: drop .zone as an alternate domain. #7496 2020-03-05 09:08:28 +13:00
garfield69
d53a0ae4b9 Fix parse errors with Shazbat (#7493) resolves #7492 2020-03-05 08:00:06 +13:00
Garfield69
4e8c52e16a uniondht: fix typo category wiiware #7409 2020-03-05 07:38:45 +13:00
Garfield69
eaae440c66 add xxxtor a Russian public 3x site. resolves #7471 2020-03-05 07:06:22 +13:00
Garfield69
c7e288a372 add KinoNaVse100 a Russian Semi-rpivate site. resolves #7425 2020-03-04 19:19:40 +13:00
Garfield69
a8375e8cfe add uniondht a Public Russian site. resolves #7409 2020-03-04 16:00:12 +13:00
Garfield69
4ed5507e4d audiobooktorrents: add info about unread PM. resolves #7422
fix files selector
add engine tag
2020-03-04 11:01:00 +13:00
Diego Heras
682304d186 animetosho: change feed url. resolves #7456 (#7487) 2020-03-04 10:06:02 +13:00
Garfield69
1455a905f1 elitetorrent-biz: new domain .nl resolves #7486 2020-03-04 09:38:25 +13:00
Diego Heras
64f066839d TorrentSyndikat: fix error caused by #7386 Resolves #7481 (#7485) 2020-03-04 09:35:13 +13:00
Diego Heras
cf676b4a3f SceneTime: fix error caused by #7394 Resolves #7475 (#7484) 2020-03-04 09:16:11 +13:00
Diego Heras
8bd74a2cc9 Filelist: fix error caused by #7360 and added grabs. Resolves #7474 (#7483) 2020-03-04 09:15:07 +13:00
Garfield69
77837b7483 filmclub: optional config to strip year from title. #7289 2020-03-04 08:40:52 +13:00
Garfield69
96e5e259e9 lechaudron: fix download link. #5559 2020-03-04 07:29:56 +13:00
Diego Heras
6999410617 core: fix file permissions (#7479) 2020-03-03 10:29:01 -06:00
Diego Heras
e55e92f9ac Core: Fix line endings to match style guide(#7476) 2020-03-03 10:28:26 -06:00
Garfield69
4710fa619c add linuxtracker a public repo for linux iso. resolves #7407 2020-03-03 16:41:11 +13:00
Diego Heras
61f9bec045 FunFile: fix error caused by #7369 Resolves #7451 (#7472) 2020-03-03 11:24:37 +13:00
Garfield69
318e8722db restore lechaudron, its back. resolves #5559 2020-03-03 11:19:32 +13:00
Diego Heras
86ce7ef1c8 Bit-City: fix error caused by #7357 Resolves #7459 (#7468) 2020-03-03 10:47:08 +13:00
Diego Heras
0997bf674a ImmortalSeed: fix error caused by #7375 Resolves #7461 (#7464) 2020-03-03 10:45:26 +13:00
Diego Heras
c07c4f0682 Ncore: fix error caused by #7378 Resolves #7444 (#7470) 2020-03-03 10:34:46 +13:00
Cory
1563418d88 Gimmepeers: Fix invalid CSS selector caused by #7371 (#7460) resolves #7457 2020-03-03 08:09:12 +13:00
fnk93
771c0ac68c Add Fantastic Heaven a German private site. (#7449) 2020-03-03 07:54:40 +13:00
Diego Heras
143ffbf790 HD-Torrents: fix error caused by #7373 Resolves #7426 (#7458) 2020-03-03 07:46:19 +13:00
Garfield69
a3f30a2dd9 newrealworld: fix parse errors caused by #7393 2020-03-02 20:54:41 +13:00
Garfield69
a9d3ae0107 torrentbytes: fix possible parse error caused by #7388 2020-03-02 20:49:59 +13:00
Garfield69
012f3d1bbc torrentheaven: fix parse errors caused by #7387 2020-03-02 20:45:31 +13:00
Garfield69
9826e2c2af myamity: fix parse errors caused by #7377 2020-03-02 20:40:09 +13:00
Garfield69
a512ea37c3 hdtorrents: imdb can be missing. fix #7373 2020-03-02 20:33:21 +13:00
Cory
3aedbc7baf Ncore: Fix parse errors caused by #7378 Resolves #7444 (#7445) 2020-03-02 18:46:08 +13:00
Garfield69
b32257ae95 add academictorrents a public site. resolves #7405 2020-03-02 18:15:35 +13:00
Cory
6c1c4092bd Fix null reference after conversion to AngleSharp (#7443) resolves #7442 2020-03-02 15:20:13 +13:00
Diego Heras
758138415e funfile: fix error caused by #7369 Resolves #7436 (#7440) 2020-03-02 12:28:45 +13:00
fnk93
b9a6c7c810 The Resurrection: Tracker closed down (#7439) #7174 2020-03-02 09:54:09 +13:00
Garfield69
dda62f1e18 add onejav a public Asian 3x site. resolves #7345 2020-03-02 09:43:40 +13:00
Garfield69
8fcb19e1ea nordichd: gome. removed. resolves #6708 2020-03-02 08:36:50 +13:00
Garfield69
66e7ced25b scenexpress: gone. removed. resolves #6859 2020-03-02 08:34:53 +13:00
Diego Heras
5f1848d1de bakabt: fix error caused by #7355 Resolves #7420 (#7434) 2020-03-02 08:05:44 +13:00
Christian Franchin
1f9c760246 bjshare: multiple improvements (#7432)
Add details to release when its from the last 24h list;
change cat4 to PCGames;
Changed category parsing on 24h list;
Added parsing from 4K to 2160p
2020-03-02 08:05:17 +13:00
Diego Heras
3f19e6becf ncore: fix error caused by #7378 Resolves #7430 (#7431) 2020-03-02 08:02:25 +13:00
Diego Heras
130c0bebbe divxtotal: fix download links and row parsing (#7423) 2020-03-02 08:01:59 +13:00
Diego Heras
b944993733 Remove CsQuery and use AngleSharp instead. Closes #7292 (#7404) 2020-03-02 07:58:14 +13:00
Garfield69
542f8d67e4 torrentleech-pl: andmatch resolves #7424 2020-03-02 07:49:31 +13:00
Diego Heras
35f9e0fbe0 Convert Nordicbits to AngleSharp (#7401) 2020-03-01 19:45:17 +13:00
Diego Heras
db669b31a1 Convert Nordbits to AngleSharp (#7402) 2020-03-01 19:16:15 +13:00
Garfield69
1b64476102 icetorrent: site's hrefs now prefixed with / 2020-03-01 17:22:21 +13:00
Garfield69
5530fa1ca4 crazycorner: magnets no longer available on primary results page. 2020-03-01 17:05:28 +13:00
junglebus
1fb77a6334 Package update (#7413)
All packages except Automapper are now on latest versions
2020-03-01 15:58:46 +13:00
Garfield69
175249d6f0 custom.js: occured -> occurred #7414 2020-03-01 15:52:32 +13:00
Garfield69
f59f73e228 mypornclub: handle date "last year" "last month" 2020-03-01 15:29:44 +13:00
Diego Heras
c1b2328bbf Convert Abnormal to AngleSharp (#7403) 2020-03-01 14:46:34 +13:00
ilike2burnthing
a3c1f3eb52 BTSOW: New Domain btsow.club (#7410) resolves #7280 2020-03-01 12:34:27 +13:00
Cory
f238e78337 Convert Shazbat to AngleSharp (#7400) 2020-03-01 12:27:09 +13:00
Cory
fd8823f6bd Convert XSpeeds to AngleSharp (#7398) 2020-03-01 12:26:46 +13:00
Diego Heras
c14ee124f5 Convert SceneTime to AngleSharp (#7394) 2020-03-01 12:07:41 +13:00
Diego Heras
f4d45517c5 Convert NewRealWorld to AngleSharp (#7393) 2020-03-01 12:07:18 +13:00
Diego Heras
091cfbb310 Convert Pretome to AngleSharp (#7392) 2020-03-01 12:06:58 +13:00
Diego Heras
698050e86a Convert RevolutionTT to AngleSharp (#7391) 2020-03-01 09:38:53 +13:00
Diego Heras
bb3faa3f62 Convert Partis to AngleSharp (#7390) 2020-03-01 09:30:07 +13:00
Diego Heras
08a68e0116 Convert SpeedCD to AngleSharp (#7389) 2020-03-01 09:29:51 +13:00
Diego Heras
d22ef13fb2 Convert TorrentBytes to AngleSharp (#7388) 2020-03-01 09:29:35 +13:00
Diego Heras
d5e2014233 Convert TorrentSyndikat to AngleSharp (#7386) 2020-03-01 08:43:12 +13:00
Diego Heras
dd52a16bff Convert TorrentHaven to AngleSharp (#7387) 2020-03-01 08:42:31 +13:00
Diego Heras
a697aba985 Convert TVStore to AngleSharp (#7385) 2020-03-01 08:42:11 +13:00
Diego Heras
1533ad1927 Convert TorrentLeech to AngleSharp (#7384) 2020-03-01 08:23:09 +13:00
Diego Heras
348461ebfc Convert TorrentDay to AngleSharp (#7383) 2020-03-01 08:22:29 +13:00
Diego Heras
b83a984365 Convert PirateTheNet to AngleSharp (#7382) 2020-03-01 08:20:15 +13:00
junglebus
b07d1a32ca readme: Remove appveyor badge (#7380) 2020-03-01 08:09:55 +13:00
Cory
e3bb63aac4 Convert NCore to AngleSharp (#7378) 2020-03-01 08:03:51 +13:00
Cory
65fc651d88 Convert myAmity to AngleSharp (#7377) 2020-03-01 08:03:13 +13:00
Cory
218e0c989c Convert MoreThanTV to AngleSharp (#7376) 2020-03-01 07:53:36 +13:00
Cory
6f252254e3 Convert ImmortalSeed to AngleSharp (#7375) 2020-03-01 07:53:04 +13:00
Cory
977052dfd7 Convert Hebits to AngleSharp (#7374) 2020-03-01 07:52:35 +13:00
Cory
b78d04c116 Convert HDTorrents to AngleSharp (#7373) 2020-03-01 07:36:37 +13:00
Cory
63267b597e Convert HDOlimpo to AngleSharp (#7372) 2020-03-01 07:35:15 +13:00
Cory
544501d2a8 Convert GimmePeers to AngleSharp (#7371) 2020-03-01 07:33:30 +13:00
Cory
169fda4dbb Convert Fuzer to AngleSharp (#7370) 2020-03-01 07:32:35 +13:00
Cory
d3d78d3662 Convert FunFile to AngleSharp (#7369) 2020-03-01 07:31:54 +13:00
garfield69
2d1175dcc1 azure-pipelines: drop assetUploadMode 2020-03-01 07:30:54 +13:00
Garfield69
0a7f06de31 hdarea: use imdbidShort. resolves #7368 2020-03-01 07:21:17 +13:00
junglebus
9f3f11ac49 Fail build if all artifacts aren't uploaded to Github 2020-02-29 21:36:09 +11:00
junglebus
49affa0555 Revert pipeline log changes 2020-02-29 20:46:46 +11:00
junglebus
f5c482f939 Try and read pipeline logs 2020-02-29 20:31:59 +11:00
junglebus
6c67b7a8de Try and find azure logs 2020-02-29 20:11:15 +11:00
junglebus
368947a061 Try and find pipeline logs 2020-02-29 20:00:24 +11:00
junglebus
f0138405a6 Try and Find log files 2020-02-29 19:46:05 +11:00
Garfield69
8373ee3b0c add mypornclub a public 3x site. resolves #7344 2020-02-29 19:44:00 +13:00
Garfield69
dfaf9dd3a6 filebase: drop debug, comment http only. 2020-02-29 19:24:05 +13:00
Garfield69
c1bde9b643 torrentleech: download_multiplier can be null. #7367 2020-02-29 17:00:01 +13:00
Garfield69
d86c60ffef hdarea: fix login error trap. #7368
update indexer for nexusphp 1.5b4
add config sort options
add uhd movie category
add imdb support
2020-02-29 16:07:08 +13:00
Garfield69
e4cfedfcfb torrentview: new domain *4.net resolves #7365 2020-02-29 12:21:28 +13:00
Garfield69
d3161e7b75 magnet4you, torrent4you: handle xK seelders and leechers. resolves #7364 2020-02-29 12:19:11 +13:00
garfield69
baf4730316 Update azure-pipelines.yml
the azure assetuploadmode=replace routine is missing a retry-upload-after-delete so ends up just removing the conflict but not uploading a replacement, bah!
lets try the the delete option which should clear any attachments prior to starting the first upload.
2020-02-29 11:43:40 +13:00
Diego Heras
a89b69e821 Convert IPTorrents to AngleSharp (#7363) #7292 2020-02-29 11:33:21 +13:00
Cory
4d48c1be44 Convert BB to AngleSharp (#7356) #7292 2020-02-29 11:32:43 +13:00
Cory
8056e47fef Convert HD-Space from csQuery to AngleSharp (#7352) #7292 2020-02-29 11:32:02 +13:00
Cory
63a3465aa6 Convert BitHdtv to AngleSharp (#7358) #7292 2020-02-29 10:42:08 +13:00
Cory
03bbafb0c9 Convert DigitalHive to AngleSharp (#7359) #7292 2020-02-29 10:40:27 +13:00
Cory
d8cbae68d5 Convert FileList to Angle Sharp (#7360) #7292 2020-02-29 10:25:23 +13:00
Cory
99c269c896 Convert BitCityReloaded to AngleSharp (#7357) #7292 2020-02-29 10:24:26 +13:00
Cory
b4075d1d35 Convert BakaBT to AngleSharp (#7355) #7292 2020-02-29 10:23:24 +13:00
Cory
49eebc90e4 Convert AnimeTorrents to AngleSharp (#7354) #7292 2020-02-29 10:22:13 +13:00
Cory
68b25de828 Convert Abstract/AvistazTracker to AngleSharp (#7353) #7292 2020-02-29 10:20:47 +13:00
Garfield69
00104205c0 add U2 (U2分享園@動漫花園) a Private Chinese Anime site. resolves #7337 2020-02-29 10:01:24 +13:00
Garfield69
28b53d8fb1 add boxingtorrents a Private site for boxing. resolves #7323 2020-02-28 19:13:21 +13:00
Garfield69
8a94d689b8 add exkinoray a Russian semi-private site. resolves #7318 2020-02-28 16:46:50 +13:00
gwenvador
ad00e49fe2 generationfree: new login (again!) (#7350) #7341 2020-02-28 16:39:19 +13:00
gwenvador
888361f46f Update generationfree.yml (#7347)
Change login username to correct value
2020-02-27 09:19:09 -06:00
Garfield69
edc4c31fa6 add ttsweb a private site. resolves #7301 2020-02-27 18:40:38 +13:00
Garfield69
a1dde973fb generationfree: site's login has changed. resolves #7341 2020-02-27 16:37:32 +13:00
Garfield69
525f58eb1d xwtorrents: Site's login has changed. resolves #7339 2020-02-27 16:37:07 +13:00
Sen Jiang
124fbf7c1b webui: Optimize favicon.ico with leanify (#7334)
leanify -i 1000 favicon.ico
variation on #7307
2020-02-27 07:30:21 +13:00
Cory
b9b10e4e91 core: Fix IsEmptyOrNull to return true when IsNull (#7338) resolves #7333 2020-02-27 07:24:36 +13:00
Garfield69
427b556869 btdb: fix title / details selector. resolves #7335 2020-02-27 07:22:04 +13:00
Garfield69
04f9f2dfe7 newstudio: fix SxxExx processing. resolves #7331 2020-02-26 20:51:52 +13:00
Garfield69
d8e7a63768 add filmsclub a Russian semi-private site. resolves #7289 2020-02-26 19:10:41 +13:00
Diego Heras
2f694147a1 lostfilm: Remove CsQuery and use AngleSharp instead #7292 (#7328)
also add missing torznab fields not available from results
2020-02-26 09:04:36 +13:00
Diego Heras
c339d54aed core: fix compilation warning (#7329) 2020-02-26 08:48:27 +13:00
Garfield69
58974623de tvchaosuk: update for unit3d 2.2.7 resolves #7327 2020-02-26 08:01:24 +13:00
Cory
889a8da4e5 Convert functions and properties to expression bodies when able (#7312)
Convert functions and properties to expression bodies when able
2020-02-25 10:08:03 -06:00
608 changed files with 25269 additions and 15213 deletions

View File

@@ -40,7 +40,7 @@ resharper_csharp_keep_blank_lines_in_declarations=1
resharper_csharp_max_line_length=125
resharper_csharp_stick_comment=false
resharper_csharp_wrap_after_invocation_lpar=true
resharper_force_attribute_style=join
resharper_force_attribute_style=separate
resharper_indent_invocation_pars=outside
resharper_indent_method_decl_pars=outside
resharper_indent_preprocessor_region=no_indent
@@ -123,7 +123,7 @@ dotnet_style_prefer_compound_assignment=true:suggestion
###############################
# Style Definitions
dotnet_naming_style.pascal_case_style.capitalization=pascal_case
# Use PascalCase for constant fields
# Use PascalCase for constant fields
dotnet_naming_rule.constant_fields_should_be_pascal_case.severity=warning
dotnet_naming_rule.constant_fields_should_be_pascal_case.symbols=constant_fields
dotnet_naming_rule.constant_fields_should_be_pascal_case.style=pascal_case_style
@@ -161,11 +161,11 @@ dotnet_naming_rule.asyncmethods_should_be_ends_with_async.style = ends_with_asyn
dotnet_naming_symbols.interface.applicable_kinds = interface
dotnet_naming_symbols.interface.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected
dotnet_naming_symbols.interface.required_modifiers =
dotnet_naming_symbols.interface.required_modifiers =
dotnet_naming_symbols.private_or_internal_field.applicable_kinds = field
dotnet_naming_symbols.private_or_internal_field.applicable_accessibilities = internal, private, private_protected
dotnet_naming_symbols.private_or_internal_field.required_modifiers =
dotnet_naming_symbols.private_or_internal_field.required_modifiers =
dotnet_naming_symbols.private_or_internal_static_field.applicable_kinds = field
dotnet_naming_symbols.private_or_internal_static_field.applicable_accessibilities = internal, private, private_protected
@@ -173,11 +173,11 @@ dotnet_naming_symbols.private_or_internal_static_field.required_modifiers = stat
dotnet_naming_symbols.types.applicable_kinds = class, struct, interface, enum
dotnet_naming_symbols.types.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected
dotnet_naming_symbols.types.required_modifiers =
dotnet_naming_symbols.types.required_modifiers =
dotnet_naming_symbols.non_field_members.applicable_kinds = property, event, method
dotnet_naming_symbols.non_field_members.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected
dotnet_naming_symbols.non_field_members.required_modifiers =
dotnet_naming_symbols.non_field_members.required_modifiers =
dotnet_naming_symbols.asyncmethods.applicable_kinds = delegate, method, local_function
dotnet_naming_symbols.asyncmethods.applicable_accessibilities = *
@@ -185,29 +185,29 @@ dotnet_naming_symbols.asyncmethods.required_modifiers = async
# Naming styles
dotnet_naming_style.pascal_case.required_prefix =
dotnet_naming_style.pascal_case.required_suffix =
dotnet_naming_style.pascal_case.word_separator =
dotnet_naming_style.pascal_case.required_prefix =
dotnet_naming_style.pascal_case.required_suffix =
dotnet_naming_style.pascal_case.word_separator =
dotnet_naming_style.pascal_case.capitalization = pascal_case
dotnet_naming_style.begins_with_i.required_prefix = I
dotnet_naming_style.begins_with_i.required_suffix =
dotnet_naming_style.begins_with_i.word_separator =
dotnet_naming_style.begins_with_i.required_suffix =
dotnet_naming_style.begins_with_i.word_separator =
dotnet_naming_style.begins_with_i.capitalization = pascal_case
dotnet_naming_style.private_or_internal_static_with_prefix.required_prefix = s_
dotnet_naming_style.private_or_internal_static_with_prefix.required_suffix =
dotnet_naming_style.private_or_internal_static_with_prefix.word_separator =
dotnet_naming_style.private_or_internal_static_with_prefix.required_prefix = _
dotnet_naming_style.private_or_internal_static_with_prefix.required_suffix =
dotnet_naming_style.private_or_internal_static_with_prefix.word_separator =
dotnet_naming_style.private_or_internal_static_with_prefix.capitalization = pascal_case
dotnet_naming_style.private_prefix.required_prefix = _
dotnet_naming_style.private_prefix.required_suffix =
dotnet_naming_style.private_prefix.word_separator =
dotnet_naming_style.private_prefix.required_suffix =
dotnet_naming_style.private_prefix.word_separator =
dotnet_naming_style.private_prefix.capitalization = camel_case
dotnet_naming_style.ends_with_async.required_prefix =
dotnet_naming_style.ends_with_async.required_prefix =
dotnet_naming_style.ends_with_async.required_suffix = Async
dotnet_naming_style.ends_with_async.word_separator =
dotnet_naming_style.ends_with_async.word_separator =
dotnet_naming_style.ends_with_async.capitalization = pascal_case
###############################

19
.gitattributes vendored
View File

@@ -1,16 +1,13 @@
# Set the default behavior, in case people don't have core.autocrlf set.
* text=auto
# Explicitly declare text files you want to always be normalized and converted
# to native line endings on checkout.
# Declare files that will always have LF line endings on checkout.
*.yml text eol=lf
*.sh text eol=lf
# Declare files that will always have CRLF line endings on checkout.
*.cs text eol=crlf
* text eol=lf
# Denote all files that are truly binary and should not be modified.
*.png binary
*.eot binary
*.ico binary
*.jpg binary
*.otf binary
*.png binary
*.ttf binary
*.woff binary
*.woff2 binary

3
.gitignore vendored
View File

@@ -195,9 +195,6 @@ FakesAssemblies/
# Visual Studio 6 workspace options file
*.opt
/tools
/BuildOutput
/Artifacts
/TestResults
*.DS_Store
.idea/
launchSettings.json

255
README.md
View File

@@ -2,8 +2,7 @@
[![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)
[![Build status](https://ci.appveyor.com/api/projects/status/gaybh5mvyx418nsp/branch/master?svg=true)](https://ci.appveyor.com/project/Jackett/jackett)
[![Build Status](https://dev.azure.com/Jackett-project/Jackett/_apis/build/status/Jackett.Jackett?branchName=master)](https://dev.azure.com/Jackett-project/Jackett/_build/latest?definitionId=1&branchName=master)
[![Build Status](https://dev.azure.com/Jackett/Jackett/_apis/build/status/Jackett.Jackett?branchName=master)](https://dev.azure.com/jackett/jackett/_build/latest?definitionId=1&branchName=master)
[![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/)
[![Discord](https://img.shields.io/badge/discord-chat-7289DA.svg?maxAge=60&style=flat-square)](https://discord.gg/J865QuA)
@@ -19,14 +18,15 @@ Developer note: The software implements the [Torznab](https://github.com/Sonarr/
#### Supported Systems
* Windows 7SP1 or greater using .NET 4.6.1 or above [Download here](https://www.microsoft.com/net/framework/versions/net461)
* Linux [supported operating systems here](https://github.com/dotnet/core/blob/master/release-notes/2.1/2.1-supported-os.md#linux)
* Windows 7SP1 or greater
* Linux [supported operating systems here](https://github.com/dotnet/core/blob/master/release-notes/3.1/3.1-supported-os.md#linux)
* macOS 10.13 or greater
<details> <summary> <b> Supported Public Trackers </b> </summary>
* 1337x
* 7torrents
* AcademicTorrents
* ACG.RIP
* ACGsou
* Anidex
@@ -36,11 +36,10 @@ Developer note: The software implements the [Torznab](https://github.com/Sonarr/
* Badass Torrents
* BigFANGroup
* BitRu
* BitTorrent.AM
* BT.etree
* BTDB
* BTDIGG
* BTeye
* BT.etree
* BTSOW
* Cili180
* ConCen
@@ -49,11 +48,13 @@ Developer note: The software implements the [Torznab](https://github.com/Sonarr/
* cpasbienClone
* Demonoid
* dmhy
* ETTV
* EliteTorrent.biz
* Epizod
* EstrenosDTL
* ExtraTorrent.cd
* ETTV
* EXT Torrents
* ExtraTorrent.ag
* ExtraTorrent.cd
* EZTV
* Filebase
* FireBit
@@ -65,16 +66,17 @@ Developer note: The software implements the [Torznab](https://github.com/Sonarr/
* Horrible Subs
* IBit
* Idope
* Il CorSaRo Blu
* Il Corsaro Nero <!-- maintained by bonny1992 -->
* Il Corsaro Blu
* Internet Archive (archive.org)
* Isohunt2
* iTorrent
* KickAssTorrent (KATcr)
* KickAssTorrent (kat.li)
* KickAssTorrent (KATcr)
* Legit Torrents
* LePorno
* LimeTorrents
* LinuxTracker
* MacTorrents
* Magnet4You
* MagnetDL
@@ -82,58 +84,75 @@ Developer note: The software implements the [Torznab](https://github.com/Sonarr/
* Monova
* MovCr
* MoviesDVDR
* MyPornClub
* Newpct (aka: tvsinpagar, descargas2020, torrentlocura, torrentrapid, tumejortorrent, pctnew, etc)
* Newstudio
* Nitro
* NNTT
* NoName Club (NNM-Club)
* Nyaa.si
* Nyaa-Pantsu
* Nyaa.si
* OneJAV
* OxTorrent
* ParnuXi
* PC-torrent
* PiratBit
* Pirateiro
* PornLeech
* PornoLive
* PornoRip
* PornoTor
* ProStyleX
* Rapidzona
* RARBG
* RinTor
* Rus-media
* RuTor
* Seedpeer
* RuTracker.RU
* shokweb
* ShowRSS
* SkyTorrentsClone
* SolidTorrents
* sukebei.Nyaa.si
* sosulki
* sukebei-Pantsu
* TFile
* sukebei.Nyaa.si
* The Pirate Bay (TPB)
* TNTVillage
* Tokyo Tosho
* TopNow
* Torlock
* TOROS
* Torrent Bomb (토렌트봄)
* Torrent Downloads (TD)
* Torrent Oyun indir
* torrent-pirat
* Torrent4You
* Torrent9
* Torrent9Clone
* TorrentDownload
* TorrentFunk
* TorrentGalaxy (TGx)
* TorrentHane
* TorrentKitty
* TorrentParadise
* TorrentProject2
* TorrentQuest
* Torrents.csv
* TorrentView
* TorrentWal
* Torrentv
* TorrentView (토렌트뷰)
* Torrentz2
* Torrentz2k
* Underverse
* UnionDHT
* xxxtor
* YourBittorrent
* YTS.ag
* zetorrents
* Zooqle
</details>
<details> <summary> <b> Supported Semi-Private Trackers </b> </summary>
* Alein
* AlexFilm
* AniDUB
* ArenaBG
@@ -142,31 +161,40 @@ Developer note: The software implements the [Torznab](https://github.com/Sonarr/
* CasStudioTV
* Crazy's Corner
* CzTorrent
* Deildu
* DXP (Deaf Experts)
* Deildu
* DimeADozen (EzTorrent)
* EniaHD
* Erzsebet
* ExKinoRay
* ExtremlymTorrents
* FilmsClub
* Gay-Torrents.net
* Gay-Torrents.org
* HamsterStudio
* HD Dolby
* HamsterStudio
* IV-Torrents
* KinoNaVse100
* Kaztorka
* Kinorun
* Kinozal
* Korsar
* LostFilm.tv
* MVGroup Forum
* MVGroup Main
* Marine Tracker
* Metal Tracker
* MuziekFrabriek
* MVGroup Forum
* MVGroup Main
* NetHD (VietTorrent)
* Pornolab
* PussyTorrents
* RiperAM
* RockBox
* Rustorka
* RuTracker
* Rustorka
* Sharewood
* SkTorrent
* SkTorrent-org
* SoundPark
* Toloka.to
* Torrent-Explosiv
@@ -181,11 +209,13 @@ Developer note: The software implements the [Torznab](https://github.com/Sonarr/
* 0day.kiev
* 2 Fast 4 You
* 3ChangTrai (3CT)
* 3D Torrents (3DT)
* 3evils
* 4thD (4th Dimension)
* 52PT
* 720pier
* AST4u
* Abnormal
* Acid Lounge (A-L)
* Aftershock
@@ -195,59 +225,66 @@ Developer note: The software implements the [Torznab](https://github.com/Sonarr/
* AnimeTorrents (AnT)
* Anthelion
* Araba Fenice (Phoenix)
* ArabP2P
* Asgaard (AG)
* AsianCinema
* AST4u
* Audiobook Torrents (ABT)
* AudioNews (AN)
* Awesome-HD (AHD)
* Audiobook Torrents (ABT + RNS)
* Avistaz (AsiaTorrents)
* Back-ups
* BakaBT
* BaconBits (bB)
* BeiTai
* BeyondHD (BHD)
* Bibliotik
* Awesome-HD (AHD)
* BIGTorrent
* BigTower
* Bit-City Reloaded
* BIT-HDTV
* BiT-TiTAN
* Bithorlo (BHO)
* BitHUmen
* Bitspyder
* BitTorrentFiles
* BitTurk
* BJ-Share (BJ)
* BlueBird
* Blutopia (BLU)
* Brasil Tracker
* BroadcastTheNet (BTN)
* BroadCity
* BRObits
* BrokenStones
* BTGigs (TG)
* BTNext (BTNT)
* BTSCHOOL
* Carpathians
* CartoonChaos (CC)
* CasaTorrent
* Back-ups
* BaconBits (bB)
* BakaBT
* BeiTai
* BeyondHD (BHD)
* BiT-TiTAN
* Bibliotik
* BigTower
* Bit-City Reloaded
* BitHUmen
* BitTorrentFiles
* BitTurk
* Bithorlo (BHO)
* Bitspyder
* BlueBird
* Blutopia (BLU)
* Boxing Torrents
* Brasil Tracker
* BroadCity
* BroadcastTheNet (BTN)
* BrokenStones
* CCFBits
* CGPeers
* CHDBits
* Carpathians
* CartoonChaos (CC)
* CasaTorrent
* ChannelX
* Cinemageddon
* ChileBT
* Cinecalidad
* CinemaMovies
* Cinematik
* CinemaZ (EuTorrents)
* Cinemageddon
* Cinematik
* Classix
* Concertos
* CrazyHD
* CrazySpirits
* CrnaBerza
* DXDHD
* DanishBits (DB)
* Dark-Shadow
* Dark Tracker
* Das Unerwartete
* DataScene (DS)
* Demon-Site
* DesiReleasers
* DesiTorrents
* Diablo Torrent
@@ -258,47 +295,45 @@ Developer note: The software implements the [Torznab](https://github.com/Sonarr/
* DocumentaryTorrents (DT)
* Downloadville
* Dragonworld Reloaded
* DXDHD
* EbookParadijs
* Ebooks-Shares
* EfectoDoppler
* EggMeOn
* Elite-Tracker
* Empornium (EMP)
* eShareNet
* eStone (XiDER, BeLoad)
* EpubLibre
* Ethor.net (Thor's Land)
* ExoticaZ (YourExotic)
* ExtremeTorrents
* FANO.IN
* FeedUrNeed (FuN)
* Fantastic Heaven
* Femdomcult
* FileList (FL)
* Film-Paleis
* FinElite (FE)
* FinVip
* FocusX
* Fou-Du-Cinema
* FreeTorrent
* FullMixMusic
* FunFile (FF)
* FunkyTorrents (FT)
* Fuzer (FZ)
* Galeriens (LaPauseTorrents)
* GAYtorrent.ru
* GFXPeers
* Galeriens (LaPauseTorrents)
* GazelleGames (GGn)
* Generation-Free
* GFXPeers
* GigaTorrents
* GimmePeers (formerly ILT) <!-- maintained by jamesb2147 -->
* GimmePeers (formerly ILT)
* GiroTorrent
* Greek Legends
* Greek Team
* HacheDe
* HD-Bits.com
* HD-Forever (HDF)
* HD-Olimpo
* HD-Only (HDO)
* HD-Space (HDS)
* HD-Spain
* HD-Torrents (HDT)
* HD-Bits.com
* HD4FANS
* HDArea (HDA)
* HDBits
@@ -315,23 +350,27 @@ Developer note: The software implements the [Torznab](https://github.com/Sonarr/
* HDTurk
* HDU
* HDZone
* HaiDan
* HQSource (HQS)
* HacheDe
* Hebits
* Hon3y HD
* HQSource (HQS)
* Horror Site
* HuSh
* ICE Torrent
* IPTorrents (IPT)
* ImmortalSeed (iS)
* Immortuos
* inPeril
* Insane Tracker
* IPTorrents (IPT)
* JPopsuki
* Kapaki
* Karagarga
* LegacyHD (HD4Free)
* LastFiles
* Le Saloon
* LeChaudron
* LeagueHD
* LearnFlakes
* LegacyHD (HD4Free)
* LibraNet (LN)
* LinkoManija
* LosslessClub
@@ -339,11 +378,12 @@ Developer note: The software implements the [Torznab](https://github.com/Sonarr/
* Magico (Trellas)
* Majomparádé (TurkDepo)
* MicroBit (µBit)
* Milkie
* MMA-Torrents
* MoeCat
* Mononoké-BT
* MoreThanTV (MTV)
* MyAnonamouse (MAM)
* myAmity
* MySpleen
* NBTorrents
* NCore
@@ -353,119 +393,123 @@ Developer note: The software implements the [Torznab](https://github.com/Sonarr/
* New Real World
* Norbits
* NordicBits (NB)
* NORDiCHD
* Nostalgic (The Archive)
* notwhat.cd
* Nostalgic (The Archive / VHSTAPES)
* OnlineSelfEducation
* Orpheus
* Ourbits (HDPter)
* P2PBG
* P2PElite
* PT99
* PTFiles (PTF)
* PThome
* PWTorrents (PWT)
* Partis
* PassThePopcorn (PTP)
* Peers.FM
* PiXELHD (PxHD)
* PirateTheNet (PTN)
* PixelCove (Ultimate Gamer)
* PiXELHD (PxHD)
* Pleasuredome
* PolishSource (PS)
* PolishTracker
* Pornbay
* PornBits (PB)
* Pornbay
* Pretome
* PrivateHD (PHD)
* ProAudioTorrents (PAT)
* Psytorrents
* PT99
* PTFiles (PTF)
* PThome
* PTerClub
* PTSBAO
* PuntoTorrent
* PWTorrents (PWT)
* PuroVicio
* R3V WTF!
* RPTorrents
* Racing4Everyone (R4E)
* RacingForMe (RFM)
* RainbowNation Sharing (RNS)
* Redacted (PassTheHeadphones)
* Red Star Torrent (RST)
* Redacted (PassTheHeadphones)
* RetroFlix
* RevolutionTT
* RoDVD (Cinefiles)
* Romanian Metal Torrent (RMT)
* RPTorrents
* SDBits
* SceneFZ
* SceneHD
* ScenePalace (SP)
* SceneRush
* SceneTime
* SceneXpress
* SDBits
* Secret Cinema
* SeedFile (SF)
* Shareisland
* ShareSpaceDB
* ShareUniversity
* Shareisland
* Shazbat
* Shellife (SL)
* SiamBIT
* SnowPT (SSPT)
* SpaceTorrent
* SpeedCD
* Speedmaster HD
* SpeedTorrent Reloaded
* Spirit of Revolution
* SportHD
* SportsCult
* SpringSunday
* SuperBits (SBS)
* TEKNO3D
* TLFBits
* TOrrent-tuRK (TORK)
* TTsWEB
* TV Chaos UK (TVCUK)
* TV-Vault
* TVstore
* TakeaByte
* Tapochek
* Tasmanit
* TeamHD
* TeamOS
* TEKNO3D
* TellyTorrent
* TenYardTorrents (TYT)
* TheAudioScene
* TheEmpire (TE)
* The Falling Angels (TFA)
* The Geeks
* The Horror Charnel (THC)
* The New Retro
* The Occult
* The Place
* The Resurrection
* The Shinning (TsH)
* The Show
* The-Madhouse
* The Vault
* TLFBits
* The-Madhouse
* TheAudioScene
* TheEmpire (TE)
* ToTheGlory
* Torrent Network (TN)
* Torrent Sector Crew (TSC)
* Torrent-Syndikat
* Torrent.LT
* TorrentBD
* TorrentBytes (TBy)
* TorrentCCF (TCCF)
* TorrentDay (TD)
* Torrentech (TTH)
* TorrentDB
* TorrentFactory
* TorrentHeaven
* TorrentHR
* Torrenting (TT)
* Torrentland
* TorrentHeaven
* TorrentLeech (TL)
* TorrentLeech.pl
* TorrentSeeds (TS)
* Torrent-Syndikat
* TOrrent-tuRK (TORK)
* Torrentech (TTH)
* Torrenting (TT)
* Torrentland
* TotallyKids (TK)
* ToTheGlory
* TranceTraffic
* Trezzor
* TurkSeed
* TurkTorrent (TT)
* TV Chaos UK (TVCUK)
* TV-Vault
* TVstore
* Twilight Torrents
* Twilights Zoom
* u-torrents (SceneFZ)
* U-Torrents
* U2 (U2分享園@動漫花園)
* UHDBits
* UnionGang
* UnlimitZ
@@ -473,17 +517,22 @@ Developer note: The software implements the [Torznab](https://github.com/Sonarr/
* WDT (Wrestling Desires Torrents / Ultimate Wrestling Torrents)
* World-In-HD
* World-of-Tomorrow
* x-ite.me (XM)
* xBytesV2
* XSpeeds (XS)
* XWTorrents (XWT)
* XWT-Classics
* XWTorrents (XWT)
* Xthor
* XtremeFile
* XtreMeZone (MYXZ)
* ExoticaZ (YourExotic)
* XtremeFile
* Zamunda.net
* Zelka.org
* eShareNet
* eStone (XiDER, BeLoad)
* inPeril
* myAmity
* notwhat.cd
* u-torrents (SceneFZ)
* x-ite.me (XM)
* xBytesV2
</details>
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 garfieldsixtynine -at- gmail.com to get them fixed/improved.

View File

@@ -1,20 +1,20 @@
author "sea3pea0"
description "Upstart Script to run NzbDrone as a service on Ubuntu/Debian based systems, as well as others"
#Set username for the process. Should probably be what you use for logging in
setuid {username to run jackett}
setgid users
#This is the install directory. If you installed using a deb package or the NzbDrone Repository you do not need to change this
env DIR=/opt/Jackett
env LD_LIBRARY_PATH=/usr/local/nzbdrone/lib
start on runlevel [2345]
stop on runlevel [016]
respawn
script
chdir $DIR
exec /volume1/@appstore/Mono/usr/bin/mono --debug JackettConsole.exe
end script
author "sea3pea0"
description "Upstart Script to run NzbDrone as a service on Ubuntu/Debian based systems, as well as others"
#Set username for the process. Should probably be what you use for logging in
setuid {username to run jackett}
setgid users
#This is the install directory. If you installed using a deb package or the NzbDrone Repository you do not need to change this
env DIR=/opt/Jackett
env LD_LIBRARY_PATH=/usr/local/nzbdrone/lib
start on runlevel [2345]
stop on runlevel [016]
respawn
script
chdir $DIR
exec /volume1/@appstore/Mono/usr/bin/mono --debug JackettConsole.exe
end script

View File

@@ -1,12 +1,23 @@
name: $(majorVersion).$(minorVersion).$(patchVersion)
variables:
majorVersion: 0
minorVersion: 13
minorVersion: 16
patchVersion: $[counter(variables['minorVersion'], 1)] #this will reset when we bump minor
jackettVersion: $(majorVersion).$(minorVersion).$(patchVersion)
buildConfiguration: Release
netCoreFramework: netcoreapp3.1
netCoreSdkVersion: 3.1.x
system.debug: true
trigger:
branches:
include:
- '*'
pr:
branches:
include:
- '*'
stages:
- stage: BuildJackett
@@ -243,13 +254,107 @@ stages:
inputs:
pathtoPublish: '$(Build.ArtifactStagingDirectory)'
- task: DotNetCoreCLI@2
displayName: Unit Tests (Windows only)
condition: and(succeeded(), startsWith(variables['runtime'], 'win'))
- stage: CodeStyle
displayName: Code Style Compliance
dependsOn: []
jobs:
- job: Linting
pool:
vmImage: ubuntu-latest
workspace:
clean: all
steps:
- checkout: self
- task: UseDotNet@2
displayName: Install .NET Core SDK
inputs:
command: test
packageType: sdk
version: $(netCoreSdkVersion)
installationPath: $(Agent.ToolsDirectory)/dotnet
- task: DotNetCoreCLI@2
displayName: Install Dotnet Format
inputs:
command: custom
custom: tool
arguments: update -g dotnet-format
- task: Bash@3
displayName: Lint Dotnet
inputs:
workingDirectory: $(Build.SourcesDirectory)
targetType: inline
failOnStderr: true
script: |
dotnet-format --dry-run --check --verbosity diagnostic --folder ./src/DateTimeRoutines
dotnet-format --dry-run --check --verbosity diagnostic --folder ./src/Jackett.Common
dotnet-format --dry-run --check --verbosity diagnostic --folder ./src/Jackett.IntegrationTests
dotnet-format --dry-run --check --verbosity diagnostic --folder ./src/Jackett.Server
dotnet-format --dry-run --check --verbosity diagnostic --folder ./src/Jackett.Service
dotnet-format --dry-run --check --verbosity diagnostic --folder ./src/Jackett.Test
dotnet-format --dry-run --check --verbosity diagnostic --folder ./src/Jackett.Tray
dotnet-format --dry-run --check --verbosity diagnostic --folder ./src/Jackett.Updater
- stage: UnitTestJackett
displayName: Unit Tests
dependsOn: CodeStyle
jobs:
- job: UnitTest
workspace:
clean: all
strategy:
matrix:
Mono:
buildDescription: Mono
imageName: ubuntu-latest
framework: net461
runtime: linux-x64
Windows:
buildDescription: Windows
imageName: windows-latest
framework: $(netCoreFramework)
runtime: win-x86
macOS:
buildDescription: macOS
imageName: macOS-latest
framework: $(netCoreFramework)
runtime: osx-x64
LinuxAmdx64:
buildDescription: Linux AMD x64
imageName: ubuntu-latest
framework: $(netCoreFramework)
runtime: linux-x64
LinuxARM32:
buildDescription: Linux ARM32
imageName: ubuntu-latest
framework: $(netCoreFramework)
runtime: linux-arm
LinuxARM64:
buildDescription: Linux ARM64
imageName: ubuntu-latest
framework: $(netCoreFramework)
runtime: linux-arm64
pool:
vmImage: $(imageName)
displayName: ${{ variables.buildDescription }}
steps:
- checkout: self
- task: UseDotNet@2
displayName: Install .NET Core SDK
inputs:
packageType: sdk
version: $(netCoreSdkVersion)
installationPath: $(Agent.ToolsDirectory)/dotnet
- task: DotNetCoreCLI@2
displayName: Build Test Project
inputs:
command: build
projects: '**/*.Test*/*.csproj'
arguments: '--configuration $(buildConfiguration) --framework $(framework)'
arguments: '--configuration $(buildConfiguration) --runtime $(runtime) --framework $(framework)'
- task: DotNetCoreCLI@2
displayName: Unit Tests (Mono, Linux and macOS)
@@ -258,7 +363,39 @@ stages:
command: test
projects: '**/*.Test*/*.csproj'
arguments: '--configuration $(buildConfiguration) --framework $(framework) --runtime $(runtime)'
testRunTitle: 'Unit - $(buildDescription) - $(Build.BuildId)'
- task: DotNetCoreCLI@2
displayName: Unit Tests & Code Coverage (Windows only)
condition: and(succeeded(), startsWith(variables['runtime'], 'win'))
inputs:
command: test
projects: '**/*.Test*/*.csproj'
arguments: '--configuration $(buildConfiguration) --framework $(framework) /p:CollectCoverage=true /p:CoverletOutputFormat=cobertura'
testRunTitle: 'Unit - $(buildDescription) - $(Build.BuildId)'
- task: DotNetCoreCLI@2
displayName: Install Coverage ReportGenerator Tool (Windows only)
condition: and(succeeded(), startsWith(variables['runtime'], 'win'))
inputs:
command: custom
custom: tool
arguments: install --tool-path . dotnet-reportgenerator-globaltool
- task: PowerShell@2
displayName: Generate Coverage Report (Windows only)
condition: and(succeeded(), startsWith(variables['runtime'], 'win'))
inputs:
targetType: inline
script: ./reportgenerator -reports:$(Build.SourcesDirectory)/src/*.Test*/coverage.*.cobertura.xml -targetdir:$(Build.SourcesDirectory)/coverlet/reports -reporttypes:"Cobertura"
- task: PublishCodeCoverageResults@1
displayName: Publish Code Coverage (Windows only)
condition: and(succeeded(), startsWith(variables['runtime'], 'win'))
inputs:
codeCoverageTool: Cobertura
summaryFileLocation: $(Build.SourcesDirectory)/coverlet/reports/Cobertura.xml
- stage: Integration
displayName: Integration Tests
@@ -277,11 +414,10 @@ stages:
buildDescription: Windows
imageName: windows-latest
artifactName: Jackett.Binaries.Windows.zip
# Enable once ChromeDriver is deployed to macOS image https://github.com/actions/virtual-environments/issues/7
# macOS:
# buildDescription: macOS
# imageName: macOS-latest
# artifactName: Jackett.Binaries.macOS.tar.gz
macOS:
buildDescription: macOS
imageName: macOS-latest
artifactName: Jackett.Binaries.macOS.tar.gz
LinuxAmdx64:
buildDescription: Linux AMD x64
imageName: ubuntu-latest
@@ -318,7 +454,7 @@ stages:
cd Jackett
if [[ "$(artifactName)" == *"Mono"* ]]; then mono --version; fi
if [[ "$(artifactName)" == *"Mono"* ]]; then sudo ./install_service_systemd_mono.sh; fi
if [[ "$(artifactName)" == *"macOS"* ]]; then sudo ./install_service_macos; fi
if [[ "$(artifactName)" == *"macOS"* ]]; then ./install_service_macos; fi
if [[ "$(artifactName)" == *"LinuxAMDx64"* ]]; then sudo ./install_service_systemd.sh; fi
- task: UseDotNet@2
@@ -333,11 +469,14 @@ stages:
inputs:
command: test
projects: '**/*IntegrationTest*/*.csproj'
testRunTitle: 'Integration - $(buildDescription) - $(Build.BuildId)'
- stage: PublishGithub
displayName: Publish to Github
dependsOn: Integration
dependsOn:
- UnitTestJackett
- Integration
condition: and(succeeded(), ne(variables['Build.Reason'], 'PullRequest'), eq(variables['Build.SourceBranch'], 'refs/heads/master'))
jobs:
- job: Publish
@@ -352,14 +491,14 @@ stages:
patterns: '**/Jackett*'
path: $(Build.ArtifactStagingDirectory)
- task: GitHubRelease@0
- task: GitHubRelease@1
displayName: Create Github release
inputs:
gitHubConnection: github.com_jackett
gitHubConnection: JackettPublish
repositoryName: '$(Build.Repository.Name)'
action: create
target: $(Build.SourceVersion)
tagSource: manual
tagSource: userSpecifiedTag
tag: v$(Build.BuildNumber)
title: v$(Build.BuildNumber)
assets: $(Build.ArtifactStagingDirectory)/drop/*
@@ -367,3 +506,24 @@ stages:
isDraft: true
addChangeLog: true
compareWith: lastNonDraftRelease
- task: PowerShell@2
displayName: Ensure all artifacts are uploaded to Github
inputs:
targetType: inline
script: |
$json = Invoke-WebRequest 'https://dev.azure.com/Jackett/Jackett/_apis/build/builds/$(Build.BuildId)/logs?api-version=5.0' | ConvertFrom-Json
$lastTwoLogUrls = $json.value[-1..-2].url
foreach($logUrl in $lastTwoLogUrls)
{
Write-Output $logUrl
$logText = Invoke-WebRequest $logUrl
if ($logText -like '*Creating a release for tag:*')
{
$logInspect = ($logText -split "Creating a release for tag:")[-1]
$successCount = (Select-String "Uploaded file successfully:" -InputObject $logInspect -AllMatches).Matches.Count
$failureCount = (Select-String "Duplicate asset found:" -InputObject $logInspect -AllMatches).Matches.Count
Write-Output "Success count is: $successCount and failure count is: $failureCount"
if (($successCount -ne 7) -or ($failureCount -ne 0)) { Write-Host "##vso[task.complete result=Failed;]DONE" }
}
}

View File

@@ -1,39 +1,66 @@
#!/bin/bash
#Setting up colors
# If you have problems installing Jackett, please open an issue on
# https://github.com/Jackett/Jackett/issues
# Setting up colors
BOLDRED="$(printf '\033[1;31m')"
BOLDGREEN="$(printf '\033[1;32m')"
NC="$(printf '\033[0m')" # No Color
# Stop and unload the service if it's running
jackettservice="jackett.service"
systemctl stop ${jackettservice}
# Check if the install script is running as root
if [ "$EUID" -ne 0 ]; then
echo "${BOLDRED}ERROR${NC}: Please run this script as root"
exit 1
fi
# Check if Jackett service is running
JACKETT_SERVICE="jackett.service"
echo "Checking if the service '${JACKETT_SERVICE}' is running ..."
if systemctl is-active --quiet "${JACKETT_SERVICE}"; then
echo "Service '${JACKETT_SERVICE}' is running"
# Stop and unload the service
if systemctl stop "${JACKETT_SERVICE}"; then
echo "Service '${JACKETT_SERVICE}' stopped"
else
echo "${BOLDRED}ERROR${NC}: The service '${JACKETT_SERVICE}' Can not be stopped"
exit 1
fi
else
echo "Service '${JACKETT_SERVICE}' is not running"
fi
# Move working directory to Jackett's
cd "$(dirname "$0")"
JACKETT_DIR="$(dirname "$(readlink -f "$0")")"
echo "Jackett will be installed in '${JACKETT_DIR}'"
if ! cd "${JACKETT_DIR}"; then
echo "${BOLDRED}ERROR${NC}: Can not cd into '${JACKETT_DIR}' folder"
exit 1
fi
# Check if we're running from Jackett's directory
if [ ! -f ./jackett ]; then
echo "${BOLDRED}ERROR${NC}: Couldn't locate jackett. Is the script in the right directory?"
echo "${BOLDRED}ERROR${NC}: Can not locate 'jackett' file in '${JACKETT_DIR}'."
echo "Is the script in the right directory?"
exit 1
fi
jackettdir="$(pwd)"
# Check if Jackett's owner is root
jackettuser="$(stat -c "%U" ./jackett)"
if [ "${jackettuser}" == "root" ]; then
echo "${BOLDRED}ERROR${NC}: Jackett shouldn't run as root. Please, change the owner of the Jackett directory."
exit 1
fi
# Check that no other service called Jackett is already running
if [[ $(systemctl status ${jackettservice} | grep "active (running)") ]]; then
echo "${BOLDRED}ERROR${NC}: Jackett already seems to be running as a service. Please stop it before running this script again."
JACKETT_USER="$(stat -c "%U" ./jackett)"
if [ "${JACKETT_USER}" == "root" ] || [ "${JACKETT_USER}" == "UNKNOWN" ] ; then
echo "${BOLDRED}ERROR${NC}: The owner of Jackett directory is '${JACKETT_USER}'."
echo "Please, change the owner with the command 'chown <user>:<user> -R \"${JACKETT_DIR}\"'"
echo "The user <user> will be used to run Jackett."
exit 1
fi
echo "Jackett will be executed with the user '${JACKETT_USER}'"
# Write the systemd service descriptor
cat >"/etc/systemd/system/${jackettservice}" <<EOL
JACKETT_SERVICE_PATH="/etc/systemd/system/${JACKETT_SERVICE}"
echo "Creating Jackett unit file in '${JACKETT_SERVICE_PATH}' ..."
cat > "${JACKETT_SERVICE_PATH}" <<EOL
[Unit]
Description=Jackett Daemon
After=network.target
@@ -43,35 +70,39 @@ SyslogIdentifier=jackett
Restart=always
RestartSec=5
Type=simple
User=${jackettuser}
Group=${jackettuser}
WorkingDirectory=${jackettdir}
ExecStart=${jackettdir}/jackett_launcher.sh
TimeoutStopSec=20
User=${JACKETT_USER}
Group=${JACKETT_USER}
WorkingDirectory=${JACKETT_DIR}
ExecStart=/bin/sh "${JACKETT_DIR}/jackett_launcher.sh"
TimeoutStopSec=30
[Install]
WantedBy=multi-user.target
EOL
if [ $? -ne 0 ]; then
echo "${BOLDRED}ERROR${NC}: Can not create the file '${JACKETT_SERVICE_PATH}'"
echo "The UnitPath of systemd changes from one distribution to another. You may have to edit the script and change the path manually."
exit 1
fi
echo "Installing Jackett service ..."
# Reload systemd daemon
systemctl daemon-reload
if ! systemctl daemon-reload; then
echo "${BOLDRED}ERROR${NC}: Can not reload systemd daemon"
exit 1
fi
# Enable the service for following restarts
systemctl enable ${jackettservice}
if ! systemctl enable "${JACKETT_SERVICE}"; then
echo "${BOLDRED}ERROR${NC}: Can not enable the service '${JACKETT_SERVICE}'"
exit 1
fi
# Run the service
systemctl start ${jackettservice}
# Check that it's running
if [[ $(systemctl status ${jackettservice} | grep "active (running)") ]]; then
echo "${BOLDGREEN}Agent successfully installed and launched!${NC}"
if systemctl start "${JACKETT_SERVICE}"; then
echo "${BOLDGREEN}Service successfully installed and launched!${NC}"
else
cat << EOL
${BOLDRED}ERROR${NC}: Could not launch service. The installation might have failed.
Please open an issue on https://github.com/Jackett/Jackett/issues and paste following information:
Jackett directory: \`${jackettdir}\`
Jackett user: \`${jackettuser}\`
EOL
echo "${BOLDRED}ERROR${NC}: Can not start the service '${JACKETT_SERVICE}'"
exit 1
fi

View File

@@ -1,43 +1,75 @@
#!/bin/bash
#Setting up colors
# If you have problems installing Jackett, please open an issue on
# https://github.com/Jackett/Jackett/issues
# Setting up colors
BOLDRED="$(printf '\033[1;31m')"
BOLDGREEN="$(printf '\033[1;32m')"
NC="$(printf '\033[0m')" # No Color
# Stop and unload the service if it's running
jackettservice="jackett.service"
systemctl stop ${jackettservice}
# Check if the install script is running as root
if [ "$EUID" -ne 0 ]; then
echo "${BOLDRED}ERROR${NC}: Please run this script as root"
exit 1
fi
# Check if Jackett service is running
JACKETT_SERVICE="jackett.service"
echo "Checking if the service '${JACKETT_SERVICE}' is running ..."
if systemctl is-active --quiet "${JACKETT_SERVICE}"; then
echo "Service '${JACKETT_SERVICE}' is running"
# Stop and unload the service
if systemctl stop "${JACKETT_SERVICE}"; then
echo "Service '${JACKETT_SERVICE}' stopped"
else
echo "${BOLDRED}ERROR${NC}: The service '${JACKETT_SERVICE}' Can not be stopped"
exit 1
fi
else
echo "Service '${JACKETT_SERVICE}' is not running"
fi
# Move working directory to Jackett's
cd "$(dirname "$0")"
JACKETT_DIR="$(dirname "$(readlink -f "$0")")"
echo "Jackett will be installed in '${JACKETT_DIR}'"
if ! cd "${JACKETT_DIR}"; then
echo "${BOLDRED}ERROR${NC}: Can not cd into '${JACKETT_DIR}' folder"
exit 1
fi
# Check if we're running from Jackett's directory
if [ ! -f ./JackettConsole.exe ]; then
echo "${BOLDRED}ERROR${NC}: Couldn't locate JackettConsole.exe. Is the script in the right directory?"
echo "${BOLDRED}ERROR${NC}: Can not locate 'JackettConsole.exe' file in '${JACKETT_DIR}'."
echo "Is the script in the right directory?"
exit 1
fi
jackettdir="$(pwd)"
# Check if Jackett's owner is root
jackettuser="$(stat -c "%U" ./JackettConsole.exe)"
if [ "${jackettuser}" == "root" ]; then
echo "${BOLDRED}ERROR${NC}: Jackett shouldn't run as root. Please, change the owner of the Jackett directory."
JACKETT_USER="$(stat -c "%U" ./JackettConsole.exe)"
if [ "${JACKETT_USER}" == "root" ] || [ "${JACKETT_USER}" == "UNKNOWN" ] ; then
echo "${BOLDRED}ERROR${NC}: The owner of Jackett directory is '${JACKETT_USER}'."
echo "Please, change the owner with the command 'chown <user>:<user> -R \"${JACKETT_DIR}\"'"
echo "The user <user> will be used to run Jackett."
exit 1
fi
echo "Jackett will be executed with the user '${JACKETT_USER}'"
# Check if mono is installed
command -v mono >/dev/null 2>&1 || { echo >&2 "${BOLDRED}ERROR${NC}: Jackett requires Mono but it's not installed. Aborting."; exit 1; }
monodir="$(dirname $(command -v mono))"
# Check that no other service called Jackett is already running
if [[ $(systemctl status ${jackettservice} | grep "active (running)") ]]; then
echo "${BOLDRED}ERROR${NC}: Jackett already seems to be running as a service. Please stop it before running this script again."
# Check if Mono is installed
echo "Checking if Mono is installed ..."
if ! command -v mono > /dev/null; then
echo "${BOLDRED}ERROR${NC}: Jackett requires Mono but it's not installed"
exit 1
fi
MONO_DIR="$(dirname "$(command -v mono)")"
echo "Mono is installed in '${MONO_DIR}'"
# Write the systemd service descriptor
cat >"/etc/systemd/system/${jackettservice}" <<EOL
JACKETT_SERVICE_PATH="/etc/systemd/system/${JACKETT_SERVICE}"
echo "Creating Jackett unit file in '${JACKETT_SERVICE_PATH}' ..."
cat > "${JACKETT_SERVICE_PATH}" <<EOL
[Unit]
Description=Jackett Daemon
After=network.target
@@ -47,36 +79,39 @@ SyslogIdentifier=jackett
Restart=always
RestartSec=5
Type=simple
User=${jackettuser}
Group=${jackettuser}
WorkingDirectory=${jackettdir}
ExecStart=${monodir}/mono --debug ${jackettdir}/JackettConsole.exe --NoRestart
TimeoutStopSec=20
User=${JACKETT_USER}
Group=${JACKETT_USER}
WorkingDirectory=${JACKETT_DIR}
ExecStart="${MONO_DIR}/mono" --debug "${JACKETT_DIR}/JackettConsole.exe" --NoRestart
TimeoutStopSec=30
[Install]
WantedBy=multi-user.target
EOL
if [ $? -ne 0 ]; then
echo "${BOLDRED}ERROR${NC}: Can not create the file '${JACKETT_SERVICE_PATH}'"
echo "The UnitPath of systemd changes from one distribution to another. You may have to edit the script and change the path manually."
exit 1
fi
echo "Installing Jackett service ..."
# Reload systemd daemon
systemctl daemon-reload
if ! systemctl daemon-reload; then
echo "${BOLDRED}ERROR${NC}: Can not reload systemd daemon"
exit 1
fi
# Enable the service for following restarts
systemctl enable ${jackettservice}
if ! systemctl enable "${JACKETT_SERVICE}"; then
echo "${BOLDRED}ERROR${NC}: Can not enable the service '${JACKETT_SERVICE}'"
exit 1
fi
# Run the service
systemctl start ${jackettservice}
# Check that it's running
if [[ $(systemctl status ${jackettservice} | grep "active (running)") ]]; then
echo "${BOLDGREEN}Agent successfully installed and launched!${NC}"
if systemctl start "${JACKETT_SERVICE}"; then
echo "${BOLDGREEN}Service successfully installed and launched!${NC}"
else
cat << EOL
${BOLDRED}ERROR${NC}: Could not launch service. The installation might have failed.
Please open an issue on https://github.com/Jackett/Jackett/issues and paste following information:
Mono directory: \`${monodir}\`
Jackett directory: \`${jackettdir}\`
Jackett user: \`${jackettuser}\`
EOL
echo "${BOLDRED}ERROR${NC}: Can not start the service '${JACKETT_SERVICE}'"
exit 1
fi

View File

@@ -7,12 +7,12 @@
JACKETT_DIR="$(dirname "$(readlink -f "$0")")"
# Launch Jackett
${JACKETT_DIR}/jackett --NoRestart
"${JACKETT_DIR}/jackett" --NoRestart
# Get user running the service
JACKETT_USER=$(whoami)
# Wait until the updater ends
while pgrep -u ${JACKETT_USER} JackettUpdater > /dev/null; do
while pgrep -u "${JACKETT_USER}" JackettUpdater > /dev/null; do
sleep 1
done

View File

@@ -9,6 +9,10 @@
using System;
using System.Text.RegularExpressions;
// ReSharper disable NotAccessedField.Global
// ReSharper disable MemberCanBePrivate.Global
// ReSharper disable UnusedMember.Global
namespace DateTimeRoutines
{
/// <summary>
@@ -21,11 +25,11 @@ namespace DateTimeRoutines
/// <summary>
/// Amount of seconds elapsed between 1970-01-01 00:00:00 and the date-time.
/// </summary>
/// <param name="date_time">date-time</param>
/// <param name="dateTime">date-time</param>
/// <returns>seconds</returns>
public static uint GetSecondsSinceUnixEpoch(this DateTime date_time)
public static uint GetSecondsSinceUnixEpoch(this DateTime dateTime)
{
var t = date_time - new DateTime(1970, 1, 1);
var t = dateTime - new DateTime(1970, 1, 1);
var ss = (int)t.TotalSeconds;
if (ss < 0)
return 0;
@@ -44,19 +48,19 @@ namespace DateTimeRoutines
/// <summary>
/// Index of first char of a date substring found in the string
/// </summary>
public readonly int IndexOfDate = -1;
public readonly int IndexOfDate;
/// <summary>
/// Length a date substring found in the string
/// </summary>
public readonly int LengthOfDate = -1;
public readonly int LengthOfDate;
/// <summary>
/// Index of first char of a time substring found in the string
/// </summary>
public readonly int IndexOfTime = -1;
public readonly int IndexOfTime;
/// <summary>
/// Length of a time substring found in the string
/// </summary>
public readonly int LengthOfTime = -1;
public readonly int LengthOfTime;
/// <summary>
/// DateTime found in the string
/// </summary>
@@ -82,45 +86,45 @@ namespace DateTimeRoutines
/// </summary>
public DateTime UtcDateTime;
internal ParsedDateTime(int index_of_date, int length_of_date, int index_of_time, int length_of_time, DateTime date_time)
internal ParsedDateTime(int indexOfDate, int lengthOfDate, int indexOfTime, int lengthOfTime, DateTime dateTime)
{
IndexOfDate = index_of_date;
LengthOfDate = length_of_date;
IndexOfTime = index_of_time;
LengthOfTime = length_of_time;
DateTime = date_time;
IsDateFound = index_of_date > -1;
IsTimeFound = index_of_time > -1;
IndexOfDate = indexOfDate;
LengthOfDate = lengthOfDate;
IndexOfTime = indexOfTime;
LengthOfTime = lengthOfTime;
DateTime = dateTime;
IsDateFound = indexOfDate > -1;
IsTimeFound = indexOfTime > -1;
UtcOffset = new TimeSpan(25, 0, 0);
IsUtcOffsetFound = false;
UtcDateTime = new DateTime(1, 1, 1);
}
internal ParsedDateTime(int index_of_date, int length_of_date, int index_of_time, int length_of_time, DateTime date_time, TimeSpan utc_offset)
internal ParsedDateTime(int indexOfDate, int lengthOfDate, int indexOfTime, int lengthOfTime, DateTime dateTime, TimeSpan utcOffset)
{
IndexOfDate = index_of_date;
LengthOfDate = length_of_date;
IndexOfTime = index_of_time;
LengthOfTime = length_of_time;
DateTime = date_time;
IsDateFound = index_of_date > -1;
IsTimeFound = index_of_time > -1;
UtcOffset = utc_offset;
IsUtcOffsetFound = Math.Abs(utc_offset.TotalHours) < 12;
IndexOfDate = indexOfDate;
LengthOfDate = lengthOfDate;
IndexOfTime = indexOfTime;
LengthOfTime = lengthOfTime;
DateTime = dateTime;
IsDateFound = indexOfDate > -1;
IsTimeFound = indexOfTime > -1;
UtcOffset = utcOffset;
IsUtcOffsetFound = Math.Abs(utcOffset.TotalHours) < 12;
if (!IsUtcOffsetFound)
UtcDateTime = new DateTime(1, 1, 1);
else
{
if (index_of_date < 0)//to avoid negative date exception when date is undefined
if (indexOfDate < 0)//to avoid negative date exception when date is undefined
{
var ts = date_time.TimeOfDay + utc_offset;
var ts = dateTime.TimeOfDay + utcOffset;
if (ts < new TimeSpan(0))
UtcDateTime = new DateTime(1, 1, 2) + ts;
else
UtcDateTime = new DateTime(1, 1, 1) + ts;
}
else
UtcDateTime = date_time + utc_offset;
UtcDateTime = dateTime + utcOffset;
}
}
}
@@ -129,7 +133,7 @@ namespace DateTimeRoutines
/// Date that is accepted in the following cases:
/// - no date was parsed by TryParseDateOrTime();
/// - no year was found by TryParseDate();
/// It is ignored if DefaultDateIsNow = true was set after DefaultDate
/// It is ignored if DefaultDateIsNow = true was set after DefaultDate
/// </summary>
public static DateTime DefaultDate
{
@@ -138,13 +142,7 @@ namespace DateTimeRoutines
_DefaultDate = value;
DefaultDateIsNow = false;
}
get
{
if (DefaultDateIsNow)
return DateTime.Now;
else
return _DefaultDate;
}
get => DefaultDateIsNow ? DateTime.Now : _DefaultDate;
}
private static DateTime _DefaultDate = DateTime.Now;
@@ -157,16 +155,17 @@ namespace DateTimeRoutines
/// <summary>
/// Defines default date-time format.
/// </summary>
[Flags]
public enum DateTimeFormat
{
/// <summary>
/// month number goes before day number
/// </summary>
USA_DATE,
UsaDate,
/// <summary>
/// day number goes before month number
/// </summary>
UK_DATE,
UkDate,
///// <summary>
///// time is specifed through AM or PM
///// </summary>
@@ -178,79 +177,79 @@ namespace DateTimeRoutines
#region parsing derived methods for DateTime output
/// <summary>
/// Tries to find date and time within the passed string and return it as DateTime structure.
/// Tries to find date and time within the passed string and return it as DateTime structure.
/// </summary>
/// <param name="str">string that contains date and/or time</param>
/// <param name="default_format">format to be used preferably in ambivalent instances</param>
/// <param name="date_time">parsed date-time output</param>
/// <param name="defaultFormat">format to be used preferably in ambivalent instances</param>
/// <param name="dateTime">parsed date-time output</param>
/// <returns>true if both date and time were found, else false</returns>
public static bool TryParseDateTime(this string str, DateTimeFormat default_format, out DateTime date_time)
public static bool TryParseDateTime(this string str, DateTimeFormat defaultFormat, out DateTime dateTime)
{
if (!TryParseDateTime(str, default_format, out ParsedDateTime parsed_date_time))
if (!TryParseDateTime(str, defaultFormat, out ParsedDateTime parsedDateTime))
{
date_time = new DateTime(1, 1, 1);
dateTime = new DateTime(1, 1, 1);
return false;
}
date_time = parsed_date_time.DateTime;
dateTime = parsedDateTime.DateTime;
return true;
}
/// <summary>
/// Tries to find date and/or time within the passed string and return it as DateTime structure.
/// Tries to find date and/or time within the passed string and return it as DateTime structure.
/// If only date was found, time in the returned DateTime is always 0:0:0.
/// If only time was found, date in the returned DateTime is DefaultDate.
/// </summary>
/// <param name="str">string that contains date and(or) time</param>
/// <param name="default_format">format to be used preferably in ambivalent instances</param>
/// <param name="date_time">parsed date-time output</param>
/// <param name="defaultFormat">format to be used preferably in ambivalent instances</param>
/// <param name="dateTime">parsed date-time output</param>
/// <returns>true if date and/or time was found, else false</returns>
public static bool TryParseDateOrTime(this string str, DateTimeFormat default_format, out DateTime date_time)
public static bool TryParseDateOrTime(this string str, DateTimeFormat defaultFormat, out DateTime dateTime)
{
if (!TryParseDateOrTime(str, default_format, out ParsedDateTime parsed_date_time))
if (!TryParseDateOrTime(str, defaultFormat, out ParsedDateTime parsedDateTime))
{
date_time = new DateTime(1, 1, 1);
dateTime = new DateTime(1, 1, 1);
return false;
}
date_time = parsed_date_time.DateTime;
dateTime = parsedDateTime.DateTime;
return true;
}
/// <summary>
/// Tries to find time within the passed string and return it as DateTime structure.
/// Tries to find time within the passed string and return it as DateTime structure.
/// It recognizes only time while ignoring date, so date in the returned DateTime is always 1/1/1.
/// </summary>
/// <param name="str">string that contains time</param>
/// <param name="default_format">format to be used preferably in ambivalent instances</param>
/// <param name="defaultFormat">format to be used preferably in ambivalent instances</param>
/// <param name="time">parsed time output</param>
/// <returns>true if time was found, else false</returns>
public static bool TryParseTime(this string str, DateTimeFormat default_format, out DateTime time)
public static bool TryParseTime(this string str, DateTimeFormat defaultFormat, out DateTime time)
{
if (!TryParseTime(str, default_format, out var parsed_time, null))
if (!TryParseTime(str, defaultFormat, out var parsedTime, null))
{
time = new DateTime(1, 1, 1);
return false;
}
time = parsed_time.DateTime;
time = parsedTime.DateTime;
return true;
}
/// <summary>
/// Tries to find date within the passed string and return it as DateTime structure.
/// Tries to find date within the passed string and return it as DateTime structure.
/// It recognizes only date while ignoring time, so time in the returned DateTime is always 0:0:0.
/// If year of the date was not found then it accepts the current year.
/// If year of the date was not found then it accepts the current year.
/// </summary>
/// <param name="str">string that contains date</param>
/// <param name="default_format">format to be used preferably in ambivalent instances</param>
/// <param name="defaultFormat">format to be used preferably in ambivalent instances</param>
/// <param name="date">parsed date output</param>
/// <returns>true if date was found, else false</returns>
public static bool TryParseDate(this string str, DateTimeFormat default_format, out DateTime date)
public static bool TryParseDate(this string str, DateTimeFormat defaultFormat, out DateTime date)
{
if (!TryParseDate(str, default_format, out ParsedDateTime parsed_date))
if (!TryParseDate(str, defaultFormat, out ParsedDateTime parsedDate))
{
date = new DateTime(1, 1, 1);
return false;
}
date = parsed_date.DateTime;
date = parsedDate.DateTime;
return true;
}
@@ -259,71 +258,69 @@ namespace DateTimeRoutines
#region parsing derived methods for ParsedDateTime output
/// <summary>
/// Tries to find date and time within the passed string and return it as ParsedDateTime object.
/// Tries to find date and time within the passed string and return it as ParsedDateTime object.
/// </summary>
/// <param name="str">string that contains date-time</param>
/// <param name="default_format">format to be used preferably in ambivalent instances</param>
/// <param name="parsed_date_time">parsed date-time output</param>
/// <param name="defaultFormat">format to be used preferably in ambivalent instances</param>
/// <param name="parsedDateTime">parsed date-time output</param>
/// <returns>true if both date and time were found, else false</returns>
public static bool TryParseDateTime(this string str, DateTimeFormat default_format, out ParsedDateTime parsed_date_time)
public static bool TryParseDateTime(this string str, DateTimeFormat defaultFormat, out ParsedDateTime parsedDateTime)
{
if (DateTimeRoutines.TryParseDateOrTime(str, default_format, out parsed_date_time)
&& parsed_date_time.IsDateFound
&& parsed_date_time.IsTimeFound
if (TryParseDateOrTime(str, defaultFormat, out parsedDateTime)
&& parsedDateTime.IsDateFound
&& parsedDateTime.IsTimeFound
)
return true;
parsed_date_time = null;
parsedDateTime = null;
return false;
}
/// <summary>
/// Tries to find time within the passed string and return it as ParsedDateTime object.
/// Tries to find time within the passed string and return it as ParsedDateTime object.
/// It recognizes only time while ignoring date, so date in the returned ParsedDateTime is always 1/1/1
/// </summary>
/// <param name="str">string that contains date-time</param>
/// <param name="default_format">format to be used preferably in ambivalent instances</param>
/// <param name="parsed_time">parsed date-time output</param>
/// <param name="defaultFormat">format to be used preferably in ambivalent instances</param>
/// <param name="parsedTime">parsed date-time output</param>
/// <returns>true if time was found, else false</returns>
public static bool TryParseTime(this string str, DateTimeFormat default_format, out ParsedDateTime parsed_time)
{
return TryParseTime(str, default_format, out parsed_time, null);
}
public static bool TryParseTime(this string str, DateTimeFormat defaultFormat, out ParsedDateTime parsedTime)
=> TryParseTime(str, defaultFormat, out parsedTime, null);
/// <summary>
/// Tries to find date and/or time within the passed string and return it as ParsedDateTime object.
/// Tries to find date and/or time within the passed string and return it as ParsedDateTime object.
/// If only date was found, time in the returned ParsedDateTime is always 0:0:0.
/// If only time was found, date in the returned ParsedDateTime is DefaultDate.
/// </summary>
/// <param name="str">string that contains date-time</param>
/// <param name="default_format">format to be used preferably in ambivalent instances</param>
/// <param name="parsed_date_time">parsed date-time output</param>
/// <param name="defaultFormat">format to be used preferably in ambivalent instances</param>
/// <param name="parsedDateTime">parsed date-time output</param>
/// <returns>true if date or time was found, else false</returns>
public static bool TryParseDateOrTime(this string str, DateTimeFormat default_format, out ParsedDateTime parsed_date_time)
public static bool TryParseDateOrTime(this string str, DateTimeFormat defaultFormat, out ParsedDateTime parsedDateTime)
{
parsed_date_time = null;
parsedDateTime = null;
ParsedDateTime parsed_time;
if (!TryParseDate(str, default_format, out
ParsedDateTime parsed_date))
ParsedDateTime parsedTime;
if (!TryParseDate(str, defaultFormat, out
ParsedDateTime parsedDate))
{
if (!TryParseTime(str, default_format, out parsed_time, null))
if (!TryParseTime(str, defaultFormat, out parsedTime, null))
return false;
var date_time = new DateTime(DefaultDate.Year, DefaultDate.Month, DefaultDate.Day, parsed_time.DateTime.Hour, parsed_time.DateTime.Minute, parsed_time.DateTime.Second);
parsed_date_time = new ParsedDateTime(-1, -1, parsed_time.IndexOfTime, parsed_time.LengthOfTime, date_time, parsed_time.UtcOffset);
var dateTime = new DateTime(DefaultDate.Year, DefaultDate.Month, DefaultDate.Day, parsedTime.DateTime.Hour, parsedTime.DateTime.Minute, parsedTime.DateTime.Second);
parsedDateTime = new ParsedDateTime(-1, -1, parsedTime.IndexOfTime, parsedTime.LengthOfTime, dateTime, parsedTime.UtcOffset);
}
else
{
if (!TryParseTime(str, default_format, out parsed_time, parsed_date))
if (!TryParseTime(str, defaultFormat, out parsedTime, parsedDate))
{
var date_time = new DateTime(parsed_date.DateTime.Year, parsed_date.DateTime.Month, parsed_date.DateTime.Day, 0, 0, 0);
parsed_date_time = new ParsedDateTime(parsed_date.IndexOfDate, parsed_date.LengthOfDate, -1, -1, date_time);
var dateTime = new DateTime(parsedDate.DateTime.Year, parsedDate.DateTime.Month, parsedDate.DateTime.Day, 0, 0, 0);
parsedDateTime = new ParsedDateTime(parsedDate.IndexOfDate, parsedDate.LengthOfDate, -1, -1, dateTime);
}
else
{
var date_time = new DateTime(parsed_date.DateTime.Year, parsed_date.DateTime.Month, parsed_date.DateTime.Day, parsed_time.DateTime.Hour, parsed_time.DateTime.Minute, parsed_time.DateTime.Second);
parsed_date_time = new ParsedDateTime(parsed_date.IndexOfDate, parsed_date.LengthOfDate, parsed_time.IndexOfTime, parsed_time.LengthOfTime, date_time, parsed_time.UtcOffset);
var dateTime = new DateTime(parsedDate.DateTime.Year, parsedDate.DateTime.Month, parsedDate.DateTime.Day, parsedTime.DateTime.Hour, parsedTime.DateTime.Minute, parsedTime.DateTime.Second);
parsedDateTime = new ParsedDateTime(parsedDate.IndexOfDate, parsedDate.LengthOfDate, parsedTime.IndexOfTime, parsedTime.LengthOfTime, dateTime, parsedTime.UtcOffset);
}
}
@@ -339,42 +336,39 @@ namespace DateTimeRoutines
/// It recognizes only time while ignoring date, so date in the returned ParsedDateTime is always 1/1/1
/// </summary>
/// <param name="str">string that contains date</param>
/// <param name="default_format">format to be used preferably in ambivalent instances</param>
/// <param name="parsed_time">parsed date-time output</param>
/// <param name="parsed_date">ParsedDateTime object if the date was found within this string, else NULL</param>
/// <param name="defaultFormat">format to be used preferably in ambivalent instances</param>
/// <param name="parsedTime">parsed date-time output</param>
/// <param name="parsedDate">ParsedDateTime object if the date was found within this string, else NULL</param>
/// <returns>true if time was found, else false</returns>
public static bool TryParseTime(this string str, DateTimeFormat default_format, out ParsedDateTime parsed_time, ParsedDateTime parsed_date)
public static bool TryParseTime(this string str, DateTimeFormat defaultFormat, out ParsedDateTime parsedTime, ParsedDateTime parsedDate)
{
parsed_time = null;
parsedTime = null;
string time_zone_r;
if (default_format == DateTimeFormat.USA_DATE)
time_zone_r = @"(?:\s*(?'time_zone'UTC|GMT|CST|EST))?";
else
time_zone_r = @"(?:\s*(?'time_zone'UTC|GMT))?";
var timeZoneR = defaultFormat == DateTimeFormat.UsaDate ?
@"(?:\s*(?'time_zone'UTC|GMT|CST|EST))?" : @"(?:\s*(?'time_zone'UTC|GMT))?";
Match m;
if (parsed_date != null && parsed_date.IndexOfDate > -1)
if (parsedDate != null && parsedDate.IndexOfDate > -1)
{//look around the found date
//look for <date> hh:mm:ss <UTC offset>
m = Regex.Match(str.Substring(parsed_date.IndexOfDate + parsed_date.LengthOfDate), @"(?<=^\s*,?\s+|^\s*at\s*|^\s*[T\-]\s*)(?'hour'\d{2})\s*:\s*(?'minute'\d{2})\s*:\s*(?'second'\d{2})\s+(?'offset_sign'[\+\-])(?'offset_hh'\d{2}):?(?'offset_mm'\d{2})(?=$|[^\d\w])", RegexOptions.Compiled);
//look for <date> hh:mm:ss <UTC offset>
m = Regex.Match(str.Substring(parsedDate.IndexOfDate + parsedDate.LengthOfDate), @"(?<=^\s*,?\s+|^\s*at\s*|^\s*[T\-]\s*)(?'hour'\d{2})\s*:\s*(?'minute'\d{2})\s*:\s*(?'second'\d{2})\s+(?'offset_sign'[\+\-])(?'offset_hh'\d{2}):?(?'offset_mm'\d{2})(?=$|[^\d\w])", RegexOptions.Compiled);
if (!m.Success)
//look for <date> [h]h:mm[:ss] [PM/AM] [UTC/GMT]
m = Regex.Match(str.Substring(parsed_date.IndexOfDate + parsed_date.LengthOfDate), @"(?<=^\s*,?\s+|^\s*at\s*|^\s*[T\-]\s*)(?'hour'\d{1,2})\s*:\s*(?'minute'\d{2})\s*(?::\s*(?'second'\d{2}))?(?:\s*(?'ampm'AM|am|PM|pm))?" + time_zone_r + @"(?=$|[^\d\w])", RegexOptions.Compiled);
//look for <date> [h]h:mm[:ss] [PM/AM] [UTC/GMT]
m = Regex.Match(str.Substring(parsedDate.IndexOfDate + parsedDate.LengthOfDate), @"(?<=^\s*,?\s+|^\s*at\s*|^\s*[T\-]\s*)(?'hour'\d{1,2})\s*:\s*(?'minute'\d{2})\s*(?::\s*(?'second'\d{2}))?(?:\s*(?'ampm'AM|am|PM|pm))?" + timeZoneR + @"(?=$|[^\d\w])", RegexOptions.Compiled);
if (!m.Success)
//look for [h]h:mm:ss [PM/AM] [UTC/GMT] <date>
m = Regex.Match(str.Substring(0, parsed_date.IndexOfDate), @"(?<=^|[^\d])(?'hour'\d{1,2})\s*:\s*(?'minute'\d{2})\s*(?::\s*(?'second'\d{2}))?(?:\s*(?'ampm'AM|am|PM|pm))?" + time_zone_r + @"(?=$|[\s,]+)", RegexOptions.Compiled);
m = Regex.Match(str.Substring(0, parsedDate.IndexOfDate), @"(?<=^|[^\d])(?'hour'\d{1,2})\s*:\s*(?'minute'\d{2})\s*(?::\s*(?'second'\d{2}))?(?:\s*(?'ampm'AM|am|PM|pm))?" + timeZoneR + @"(?=$|[\s,]+)", RegexOptions.Compiled);
if (!m.Success)
//look for [h]h:mm:ss [PM/AM] [UTC/GMT] within <date>
m = Regex.Match(str.Substring(parsed_date.IndexOfDate, parsed_date.LengthOfDate), @"(?<=^|[^\d])(?'hour'\d{1,2})\s*:\s*(?'minute'\d{2})\s*(?::\s*(?'second'\d{2}))?(?:\s*(?'ampm'AM|am|PM|pm))?" + time_zone_r + @"(?=$|[\s,]+)", RegexOptions.Compiled);
m = Regex.Match(str.Substring(parsedDate.IndexOfDate, parsedDate.LengthOfDate), @"(?<=^|[^\d])(?'hour'\d{1,2})\s*:\s*(?'minute'\d{2})\s*(?::\s*(?'second'\d{2}))?(?:\s*(?'ampm'AM|am|PM|pm))?" + timeZoneR + @"(?=$|[\s,]+)", RegexOptions.Compiled);
}
else//look anywhere within string
{
//look for hh:mm:ss <UTC offset>
//look for hh:mm:ss <UTC offset>
m = Regex.Match(str, @"(?<=^|\s+|\s*T\s*)(?'hour'\d{2})\s*:\s*(?'minute'\d{2})\s*:\s*(?'second'\d{2})\s+(?'offset_sign'[\+\-])(?'offset_hh'\d{2}):?(?'offset_mm'\d{2})?(?=$|[^\d\w])", RegexOptions.Compiled);
if (!m.Success)
//look for [h]h:mm[:ss] [PM/AM] [UTC/GMT]
m = Regex.Match(str, @"(?<=^|\s+|\s*T\s*)(?'hour'\d{1,2})\s*:\s*(?'minute'\d{2})\s*(?::\s*(?'second'\d{2}))?(?:\s*(?'ampm'AM|am|PM|pm))?" + time_zone_r + @"(?=$|[^\d\w])", RegexOptions.Compiled);
m = Regex.Match(str, @"(?<=^|\s+|\s*T\s*)(?'hour'\d{1,2})\s*:\s*(?'minute'\d{2})\s*(?::\s*(?'second'\d{2}))?(?:\s*(?'ampm'AM|am|PM|pm))?" + timeZoneR + @"(?=$|[^\d\w])", RegexOptions.Compiled);
}
if (!m.Success)
@@ -398,49 +392,49 @@ namespace DateTimeRoutines
return false;
}
if (string.Compare(m.Groups["ampm"].Value, "PM", true) == 0 && hour < 12)
if ("PM".Equals(m.Groups["ampm"].Value, StringComparison.OrdinalIgnoreCase) && hour < 12)
hour += 12;
else if (string.Compare(m.Groups["ampm"].Value, "AM", true) == 0 && hour == 12)
else if ("AM".Equals(m.Groups["ampm"].Value, StringComparison.OrdinalIgnoreCase) && hour == 12)
hour -= 12;
var date_time = new DateTime(1, 1, 1, hour, minute, second);
var dateTime = new DateTime(1, 1, 1, hour, minute, second);
if (m.Groups["offset_hh"].Success)
{
var offset_hh = int.Parse(m.Groups["offset_hh"].Value);
var offset_mm = 0;
var offsetHh = int.Parse(m.Groups["offset_hh"].Value);
var offsetMm = 0;
if (m.Groups["offset_mm"].Success)
offset_mm = int.Parse(m.Groups["offset_mm"].Value);
var utc_offset = new TimeSpan(offset_hh, offset_mm, 0);
offsetMm = int.Parse(m.Groups["offset_mm"].Value);
var utcOffset = new TimeSpan(offsetHh, offsetMm, 0);
if (m.Groups["offset_sign"].Value == "-")
utc_offset = -utc_offset;
parsed_time = new ParsedDateTime(-1, -1, m.Index, m.Length, date_time, utc_offset);
utcOffset = -utcOffset;
parsedTime = new ParsedDateTime(-1, -1, m.Index, m.Length, dateTime, utcOffset);
return true;
}
if (m.Groups["time_zone"].Success)
{
TimeSpan utc_offset;
TimeSpan utcOffset;
switch (m.Groups["time_zone"].Value)
{
case "UTC":
case "GMT":
utc_offset = new TimeSpan(0, 0, 0);
utcOffset = new TimeSpan(0, 0, 0);
break;
case "CST":
utc_offset = new TimeSpan(-6, 0, 0);
utcOffset = new TimeSpan(-6, 0, 0);
break;
case "EST":
utc_offset = new TimeSpan(-5, 0, 0);
utcOffset = new TimeSpan(-5, 0, 0);
break;
default:
throw new Exception("Time zone: " + m.Groups["time_zone"].Value + " is not defined.");
}
parsed_time = new ParsedDateTime(-1, -1, m.Index, m.Length, date_time, utc_offset);
parsedTime = new ParsedDateTime(-1, -1, m.Index, m.Length, dateTime, utcOffset);
return true;
}
parsed_time = new ParsedDateTime(-1, -1, m.Index, m.Length, date_time);
parsedTime = new ParsedDateTime(-1, -1, m.Index, m.Length, dateTime);
//}
//catch(Exception e)
//{
@@ -450,17 +444,17 @@ namespace DateTimeRoutines
}
/// <summary>
/// Tries to find date within the passed string and return it as ParsedDateTime object.
/// Tries to find date within the passed string and return it as ParsedDateTime object.
/// It recognizes only date while ignoring time, so time in the returned ParsedDateTime is always 0:0:0.
/// If year of the date was not found then it accepts the current year.
/// If year of the date was not found then it accepts the current year.
/// </summary>
/// <param name="str">string that contains date</param>
/// <param name="default_format">format to be used preferably in ambivalent instances</param>
/// <param name="parsed_date">parsed date output</param>
/// <param name="defaultFormat">format to be used preferably in ambivalent instances</param>
/// <param name="parsedDate">parsed date output</param>
/// <returns>true if date was found, else false</returns>
public static bool TryParseDate(this string str, DateTimeFormat default_format, out ParsedDateTime parsed_date)
public static bool TryParseDate(this string str, DateTimeFormat defaultFormat, out ParsedDateTime parsedDate)
{
parsed_date = null;
parsedDate = null;
if (string.IsNullOrEmpty(str))
return false;
@@ -470,17 +464,17 @@ namespace DateTimeRoutines
if (m.Success)
{
DateTime date;
if ((default_format ^ DateTimeFormat.USA_DATE) == DateTimeFormat.USA_DATE)
if ((defaultFormat ^ DateTimeFormat.UsaDate) == DateTimeFormat.UsaDate)
{
if (!convert_to_date(int.Parse(m.Groups["year"].Value), int.Parse(m.Groups["day"].Value), int.Parse(m.Groups["month"].Value), out date))
if (!ConvertToDate(int.Parse(m.Groups["year"].Value), int.Parse(m.Groups["day"].Value), int.Parse(m.Groups["month"].Value), out date))
return false;
}
else
{
if (!convert_to_date(int.Parse(m.Groups["year"].Value), int.Parse(m.Groups["month"].Value), int.Parse(m.Groups["day"].Value), out date))
if (!ConvertToDate(int.Parse(m.Groups["year"].Value), int.Parse(m.Groups["month"].Value), int.Parse(m.Groups["day"].Value), out date))
return false;
}
parsed_date = new ParsedDateTime(m.Index, m.Length, -1, -1, date);
parsedDate = new ParsedDateTime(m.Index, m.Length, -1, -1, date);
return true;
}
@@ -488,9 +482,9 @@ namespace DateTimeRoutines
m = Regex.Match(str, @"(?<=^|[^\d])(?'year'\d{2}|\d{4})\s*(?'separator'[\-])\s*(?'month'\d{1,2})\s*\'separator'+\s*(?'day'\d{1,2})(?=$|[^\d])", RegexOptions.Compiled | RegexOptions.IgnoreCase);
if (m.Success)
{
if (!convert_to_date(int.Parse(m.Groups["year"].Value), int.Parse(m.Groups["month"].Value), int.Parse(m.Groups["day"].Value), out var date))
if (!ConvertToDate(int.Parse(m.Groups["year"].Value), int.Parse(m.Groups["month"].Value), int.Parse(m.Groups["day"].Value), out var date))
return false;
parsed_date = new ParsedDateTime(m.Index, m.Length, -1, -1, date);
parsedDate = new ParsedDateTime(m.Index, m.Length, -1, -1, date);
return true;
}
@@ -511,8 +505,8 @@ namespace DateTimeRoutines
if (m.Success)
{
var month = -1;
var index_of_date = m.Index;
var length_of_date = m.Length;
var indexOfDate = m.Index;
var lengthOfDate = m.Length;
switch (m.Groups["month"].Value)
{
@@ -565,22 +559,19 @@ namespace DateTimeRoutines
break;
}
int year;
if (!string.IsNullOrEmpty(m.Groups["year"].Value))
year = int.Parse(m.Groups["year"].Value);
else
year = DefaultDate.Year;
var year = !string.IsNullOrEmpty(m.Groups["year"].Value) ?
int.Parse(m.Groups["year"].Value) : DefaultDate.Year;
if (!convert_to_date(year, month, int.Parse(m.Groups["day"].Value), out var date))
if (!ConvertToDate(year, month, int.Parse(m.Groups["day"].Value), out var date))
return false;
parsed_date = new ParsedDateTime(index_of_date, length_of_date, -1, -1, date);
parsedDate = new ParsedDateTime(indexOfDate, lengthOfDate, -1, -1, date);
return true;
}
return false;
}
private static bool convert_to_date(int year, int month, int day, out DateTime date)
private static bool ConvertToDate(int year, int month, int day, out DateTime date)
{
if (year >= 100)
{

View File

@@ -1,7 +1,10 @@
<Project Sdk="Microsoft.NET.Sdk">
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
<LangVersion>8</LangVersion>
<NoWarn />
<TreatWarningsAsErrors>false</TreatWarningsAsErrors>
<WarningsAsErrors />
</PropertyGroup>
</Project>

View File

@@ -1,4 +1,4 @@
function getUrlParams() {
function getUrlParams() {
var vars = [], hash;
var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
for (var i = 0; i < hashes.length; i++) {
@@ -7,4 +7,4 @@
vars[hash[0]] = hash[1];
}
return vars;
}
}

View File

@@ -182,6 +182,7 @@ function displayConfiguredIndexersList(indexers) {
indexersTable.find("table").dataTable(
{
"stateSave": true,
"stateDuration": 0,
"pageLength": -1,
"lengthMenu": [[10, 20, 50, 100, 250, 500, -1], [10, 20, 50, 100, 250, 500, "All"]],
"order": [[0, "asc"]],
@@ -241,9 +242,9 @@ function displayUnconfiguredIndexersList() {
}).fail(function (data) {
if(data.responseJSON.error !== undefined) {
var indexEnd = 2048 - "https://github.com/Jackett/Jackett/issues/new?title=[".length - indexerId.length - "] ".length - " (Config)".length; // keep url <= 2k #5104
doNotify("An error occured while configuring this indexer<br /><b>" + data.responseJSON.error.substring(0, indexEnd) + "</b><br /><i><a href=\"https://github.com/Jackett/Jackett/issues/new?title=[" + indexerId + "] " + data.responseJSON.error.substring(0, indexEnd) + " (Config)\" target=\"_blank\">Click here to open an issue on GitHub for this indexer.</a><i>", "danger", "glyphicon glyphicon-alert", false);
doNotify("An error occurred while configuring this indexer<br /><b>" + data.responseJSON.error.substring(0, indexEnd) + "</b><br /><i><a href=\"https://github.com/Jackett/Jackett/issues/new?title=[" + indexerId + "] " + data.responseJSON.error.substring(0, indexEnd) + " (Config)\" target=\"_blank\">Click here to open an issue on GitHub for this indexer.</a><i>", "danger", "glyphicon glyphicon-alert", false);
} else {
doNotify("An error occured while configuring this indexer, is Jackett server running ?", "danger", "glyphicon glyphicon-alert");
doNotify("An error occurred while configuring this indexer, is Jackett server running ?", "danger", "glyphicon glyphicon-alert");
}
});
});
@@ -253,6 +254,7 @@ function displayUnconfiguredIndexersList() {
indexersTable.find("table").DataTable(
{
"stateSave": true,
"stateDuration": 0,
"fnStateSaveParams": function (oSettings, sValue) {
sValue.search.search = ""; // don't save the search filter content
return sValue;
@@ -465,9 +467,9 @@ function testIndexer(id, notifyResult) {
updateTestState(id, "error", data.error, indexers);
if(data.responseJSON.error !== undefined && notifyResult) {
var indexEnd = 2048 - "https://github.com/Jackett/Jackett/issues/new?title=[".length - id.length - "] ".length - " (Test)".length; // keep url <= 2k #5104
doNotify("An error occured while testing this indexer<br /><b>" + data.responseJSON.error.substring(0, indexEnd) + "</b><br /><i><a href=\"https://github.com/Jackett/Jackett/issues/new?title=[" + id + "] " + data.responseJSON.error.substring(0, indexEnd) + " (Test)\" target=\"_blank\">Click here to open an issue on GitHub for this indexer.</a><i>", "danger", "glyphicon glyphicon-alert", false);
doNotify("An error occurred while testing this indexer<br /><b>" + data.responseJSON.error.substring(0, indexEnd) + "</b><br /><i><a href=\"https://github.com/Jackett/Jackett/issues/new?title=[" + id + "] " + data.responseJSON.error.substring(0, indexEnd) + " (Test)\" target=\"_blank\">Click here to open an issue on GitHub for this indexer.</a><i>", "danger", "glyphicon glyphicon-alert", false);
} else {
doNotify("An error occured while testing indexers, please take a look at indexers with failed test for more informations.", "danger", "glyphicon glyphicon-alert");
doNotify("An error occurred while testing indexers, please take a look at indexers with failed test for more informations.", "danger", "glyphicon glyphicon-alert");
}
});
}
@@ -677,9 +679,9 @@ function populateSetupForm(indexerId, name, config, caps, link, alternativesitel
}).fail(function (data) {
if(data.responseJSON.error !== undefined) {
var indexEnd = 2048 - "https://github.com/Jackett/Jackett/issues/new?title=[".length - indexerId.length - "] ".length - " (Config)".length; // keep url <= 2k #5104
doNotify("An error occured while updating this indexer<br /><b>" + data.responseJSON.error.substring(0, indexEnd) + "</b><br /><i><a href=\"https://github.com/Jackett/Jackett/issues/new?title=[" + indexerId + "] " + data.responseJSON.error.substring(0, indexEnd) + " (Config)\" target=\"_blank\">Click here to open an issue on GitHub for this indexer.</a><i>", "danger", "glyphicon glyphicon-alert", false);
doNotify("An error occurred while updating this indexer<br /><b>" + data.responseJSON.error.substring(0, indexEnd) + "</b><br /><i><a href=\"https://github.com/Jackett/Jackett/issues/new?title=[" + indexerId + "] " + data.responseJSON.error.substring(0, indexEnd) + " (Config)\" target=\"_blank\">Click here to open an issue on GitHub for this indexer.</a><i>", "danger", "glyphicon glyphicon-alert", false);
} else {
doNotify("An error occured while updating this indexer, request to Jackett server failed, is server running ?", "danger", "glyphicon glyphicon-alert");
doNotify("An error occurred while updating this indexer, request to Jackett server failed, is server running ?", "danger", "glyphicon glyphicon-alert");
}
}).always(function () {
$goButton.html(originalBtnText);
@@ -868,7 +870,7 @@ function showSearch(selectedIndexer, query, category) {
$('#jackett-search-perform').html($('#search-button-ready').html());
var searchResults = $('#searchResults');
searchResults.empty();
var datatable = updateSearchResultTable(searchResults, data).search('').columns().search('').draw();
updateSearchResultTable(searchResults, data).search('').columns().search('').draw();
searchResults.find('div.dataTables_filter input').focusWithoutScrolling();
}).fail(function () {
$('#jackett-search-perform').html($('#search-button-ready').html());
@@ -877,7 +879,7 @@ function showSearch(selectedIndexer, query, category) {
});
var searchTracker = releaseDialog.find("#searchTracker");
var searchCategory = releaseDialog.find('#searchCategory')
var searchCategory = releaseDialog.find('#searchCategory');
searchCategory.multiselect({
maxHeight: 400,
enableFiltering: true,
@@ -925,7 +927,7 @@ $.fn.dataTable.ext.search = [
function (settings, data, dataIndex) {
if (settings.sInstance != "jackett-search-results-datatable")
return true;
var deadfiltercheckbox = $(settings.nTableWrapper).find(".dataTables_deadfilter input")
var deadfiltercheckbox = $(settings.nTableWrapper).find(".dataTables_deadfilter input");
if (!deadfiltercheckbox.length) {
return true;
}
@@ -934,7 +936,7 @@ $.fn.dataTable.ext.search = [
return false;
return true;
}
]
];
function updateSearchResultTable(element, results) {
var resultsTemplate = Handlebars.compile($("#jackett-search-results").html());
@@ -955,6 +957,7 @@ function updateSearchResultTable(element, results) {
"dom": "lfr<\"dataTables_deadfilter\">tip",
"stateSave": true,
"stateDuration": 0,
"bAutoWidth": false,
"pageLength": 20,
"lengthMenu": [[10, 20, 50, 100, 250, 500, -1], [10, 20, 50, 100, 250, 500, "All"]],
@@ -987,6 +990,34 @@ function updateSearchResultTable(element, results) {
],
fnPreDrawCallback: function () {
var table = this;
var inputSearch = element.find("input[type=search]");
if (!inputSearch.attr("custom")) {
var newInputSearch = inputSearch.clone();
newInputSearch.attr("custom", "true");
newInputSearch.attr("data-toggle", "tooltip");
newInputSearch.attr("title", "Search query consists of several keywords.\nKeyword starting with \"-\" is considered a negative match.");
newInputSearch.on("input", function () {
var newKeywords = [];
var filterTextKeywords = $(this).val().split(" ");
$.each(filterTextKeywords, function(index, keyword) {
if (keyword === "" || keyword === "+" || keyword === "-")
return;
var newKeyword;
if (keyword.startsWith("+"))
newKeyword = $.fn.dataTable.util.escapeRegex(keyword.substring(1));
else if (keyword.startsWith("-"))
newKeyword = "^((?!" + $.fn.dataTable.util.escapeRegex(keyword.substring(1)) + ").)*$";
else
newKeyword = $.fn.dataTable.util.escapeRegex(keyword);
newKeywords.push(newKeyword);
});
var filterText = newKeywords.join(" ");
table.api().search(filterText, true, true).draw();
});
inputSearch.replaceWith(newInputSearch);
}
var deadfilterdiv = element.find(".dataTables_deadfilter");
var deadfiltercheckbox = deadfilterdiv.find("input");
if (!deadfiltercheckbox.length) {
@@ -1082,6 +1113,7 @@ function bindUIButtons() {
table.DataTable(
{
"stateSave": true,
"stateDuration": 0,
"bAutoWidth": false,
"pageLength": 20,
"lengthMenu": [[10, 20, 50, -1], [10, 20, 50, "All"]],

Binary file not shown.

Before

Width:  |  Height:  |  Size: 361 KiB

After

Width:  |  Height:  |  Size: 101 KiB

View File

@@ -1,4 +1,4 @@
<!DOCTYPE html>
<!DOCTYPE html>
<html lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
@@ -691,6 +691,6 @@
</script>
<script type="text/javascript" src="../libs/api.js?changed=2017083001"></script>
<script type="text/javascript" src="../custom.js?changed=20200222"></script>
<script type="text/javascript" src="../custom.js?changed=20200410"></script>
</body>
</html>

View File

@@ -86,4 +86,4 @@ var api = {
success: callback
});
}
}
}

View File

@@ -1,6 +1,6 @@
Handlebars.registerHelper('ifCond', function (v1, v2, options) {
Handlebars.registerHelper('ifCond', function (v1, v2, options) {
if(v1 === v2) {
return options.fn(this);
}
return options.inverse(this);
});
});

View File

@@ -1,4 +1,4 @@

Handlebars.registerHelper('dateFormat', function (context, block) {
if (window.moment) {
var f = block.hash.format || "YYYY-MM-DD HH:mm:ss";

View File

@@ -1,4 +1,4 @@
<!DOCTYPE html>
<!DOCTYPE html>
<html lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>

View File

@@ -1,4 +1,4 @@
---
---
site: 0daykiev
name: 0day.kiev
description: "0day.kiev.ua is a RUSSIAN Private Torrent Tracker for MOVIES / TV / GENERAL"

View File

@@ -5,6 +5,7 @@
language: en-us
type: public
encoding: UTF-8
followredirect: true
links:
- https://1337x.to/
- https://1337x.gd/
@@ -13,7 +14,17 @@
- https://x1337x.ws/
- https://x1337x.eu/
- https://x1337x.se/
- https://1337x.unblockit.one/
- https://1337.root.yt/
- https://1337x.unblockninja.com/
- https://1337x.black-mirror.xyz/
- https://1337x.unblocked.casa/
- https://1337x.proxyportal.fun/
- https://1337x.uk-unblock.xyz/
- https://1337x.ind-unblock.xyz/
legacylinks:
- https://1337x.unblocked.earth/
- https://1337x.unblockit.pro/
caps:
categorymappings:
@@ -44,12 +55,12 @@
- {id: 3, cat: Movies, desc: "Movies/SVCD/VCD"}
- {id: 4, cat: Movies/Foreign, desc: "Movies/Dubs/Dual Audio"}
- {id: 42, cat: Movies/HD, desc: "Movies/HD"}
- {id: 54, cat: Movies, desc: "Movies/h.264/x264"}
- {id: 54, cat: Movies/HD, desc: "Movies/h.264/x264"}
- {id: 55, cat: Movies, desc: "Movies/Mp4"}
- {id: 66, cat: Movies/3D, desc: "Movies/3D"}
- {id: 70, cat: Movies, desc: "Movies/HEVC/x265"}
- {id: 70, cat: Movies/HD, desc: "Movies/HEVC/x265"}
- {id: 73, cat: Movies, desc: "Movies/Bollywood"}
- {id: 76, cat: Movies, desc: "Movies/UHD"}
- {id: 76, cat: Movies/UHD, desc: "Movies/UHD"}
#TV
- {id: 5, cat: TV, desc: "TV/DVD"}
@@ -138,7 +149,7 @@
"asc": "asc"
download:
# the .torrent url is on the on the details page
# the .torrent url is on the on the details page
selector: ul li a[href^="{{ .Config.downloadlink }}"]
attribute: href
@@ -148,7 +159,7 @@
- path: "{{if or (.Query.Album) (.Query.Artist) (.Keywords) }}sort-search{{else}}cat/Movies{{end}}{{if or (.Query.Album) (.Query.Artist) }}/{{ or (.Query.Album) (.Query.Artist) }}{{else}}/{{ .Keywords }}{{end}}{{if or (.Query.Album) (.Query.Artist) (.Keywords) }}/{{else}}{{end}}{{ .Config.sort }}/{{ .Config.type }}/1/"
- path: "{{if or (.Query.Album) (.Query.Artist) (.Keywords) }}sort-search{{else}}cat/TV{{end}}{{if or (.Query.Album) (.Query.Artist) }}/{{ or (.Query.Album) (.Query.Artist) }}{{else}}/{{ .Keywords }}{{end}}{{if or (.Query.Album) (.Query.Artist) (.Keywords) }}/{{else}}{{end}}{{ .Config.sort }}/{{ .Config.type }}/{{if or (.Query.Album) (.Query.Artist) (.Keywords) }}2{{else}}1{{end}}/"
- path: "{{if or (.Query.Album) (.Query.Artist) (.Keywords) }}sort-search{{else}}cat/Music{{end}}{{if or (.Query.Album) (.Query.Artist) }}/{{ or (.Query.Album) (.Query.Artist) }}{{else}}/{{ .Keywords }}{{end}}{{if or (.Query.Album) (.Query.Artist) (.Keywords) }}/{{else}}{{end}}{{ .Config.sort }}/{{ .Config.type }}/{{if or (.Query.Album) (.Query.Artist) (.Keywords) }}3{{else}}1{{end}}/"
keywordsfilters:
keywordsfilters:
- name: replace # use this as a workaround till #893 is implemented
args: ["Greys Anatomy", "Grey's Anatomy"]
@@ -157,13 +168,21 @@
fields:
title:
# the movies, tv and music pages abbreviate the title so we process the href instead. #8137
selector: td[class^="coll-1"] a[href^="/torrent/"]
attribute: href
filters:
- name: split
args: ["/", 3]
- name: re_replace
args: ["(-+)", " "]
- name: replace
args: ["Grey's Anatomy", "Greys Anatomy"]
- name: replace
args: ["\u000f", ""] # get rid of unwanted character
category:
text: 40
category|noappend:
optional: true
selector: td[class^="coll-1"] a[href^="/sub/"]
attribute: href

View File

@@ -1,4 +1,4 @@
---
---
site: 2fast4you
name: 2 Fast 4 You
description: "2 Fast 4 You is a FRENCH Private site for TV / MOVIES / GENERAL"

View File

@@ -0,0 +1,160 @@
---
site: 3changtrai
name: 3ChangTrai
description: "3ChangTrai (3CT) is a VIETNAMESE Private Torrent Tracker for HD MOVIES / TV"
language: vi-vn
type: private
encoding: UTF-8
links:
- https://3changtrai.com/
caps:
categorymappings:
- {id: 401, cat: Movies, desc: "Movies"}
- {id: 402, cat: TV, desc: "TV Series"}
- {id: 403, cat: TV, desc: "TV Shows"}
- {id: 404, cat: TV/Documentary, desc: "Documentaries"}
- {id: 405, cat: TV/Anime, desc: "Animations"}
- {id: 406, cat: Audio/Video, desc: "Music Videos"}
- {id: 407, cat: TV/Sport, desc: "Sports"}
- {id: 408, cat: Audio, desc: "HQ Audio"}
- {id: 410, cat: PC, desc: "Software"}
- {id: 411, cat: Books, desc: "Documents"}
- {id: 412, cat: PC/Games, desc: "Games"}
modes:
search: [q, imdbid]
tv-search: [q, season, ep, imdbid]
movie-search: [q, imdbid]
settings:
- name: username
type: text
label: Username
- name: password
type: password
label: Password
- name: sort
type: select
label: Sort requested from site
default: "4"
options:
"4": "created"
"7": "seeders"
"5": "size"
"1": "title"
- name: type
type: select
label: Order requested from site
default: "desc"
options:
"desc": "desc"
"asc": "asc"
login:
path: login.php
method: form
form: form[action="takelogin.php"]
captcha:
type: image
selector: img[alt="CAPTCHA"]
input: imagestring
inputs:
username: "{{ .Config.username }}"
password: "{{ .Config.password }}"
logout: ""
securelogin: ""
ssl: yes
trackerssl: yes
error:
- selector: td.embedded:has(h2:contains("Đăng nhập thất bại!")) # Login failed!
- selector: td.embedded:has(h2:contains("Thất bại")) # Failure (captcha)
test:
path: index.php
selector: a[href="logout.php"]
search:
paths:
- path: torrents.php
inputs:
$raw: "{{ range .Categories }}cat{{.}}=1&{{end}}"
search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{else}}{{ .Keywords }}{{end}}"
# 0 incldead 1 active 2 dead
incldead: 0
# 0 all 1 normal 2 free 3 2x 4 2xfree 5 50% 6 2x50% 7 30%
spstate: 0
# 0 title 1 descr 3 uploader 4 imdburl
search_area: "{{ if .Query.IMDBID }}4{{else}}0{{end}}"
# 0 AND 1 OR 2 exact
search_mode: 0
sort: "{{ .Config.sort }}"
type: "{{ .Config.type }}"
# does not return imdb link in results
rows:
selector: table.torrents > tbody > tr:has(table.torrentname)
fields:
category:
selector: a[href^="?cat="]
attribute: href
filters:
- name: querystring
args: cat
title:
selector: a[href^="details.php?id="]
title:
optional: true
selector: a[title][href^="details.php?id="]
attribute: title
details:
selector: a[href^="details.php?id="]
attribute: href
download:
selector: a[href^="download.php?id="]
attribute: href
date:
# time type: time elapsed (default)
selector: td:nth-child(4) > span[title]
attribute: title
optional: true
filters:
- name: append
args: " +07:00"
- name: dateparse
args: "2006-01-02 15:04:05 -07:00"
date:
# time added
selector: td:nth-child(4):not(:has(span))
optional: true
filters:
- name: append
args: " +07:00"
- name: dateparse
args: "2006-01-0215:04:05 -07:00"
size:
selector: td:nth-child(5)
seeders:
selector: td:nth-child(6)
leechers:
selector: td:nth-child(7)
grabs:
selector: td:nth-child(8)
downloadvolumefactor:
case:
img.pro_free: 0
img.pro_free2up: 0
img.pro_50pctdown: 0.5
img.pro_50pctdown2up: 0.5
img.pro_30pctdown: 0.3
"*": 1
uploadvolumefactor:
case:
img.pro_50pctdown2up: 2
img.pro_free2up: 2
img.pro_2up: 2
"*": 1
description:
selector: td:nth-child(2)
remove: a, img
# NexusPHP Standard v1.5 Beta 4

View File

@@ -6,7 +6,7 @@
type: private
encoding: UTF-8
links:
- http://www.3dtorrents.org/
- http://www.3dtorrents.org/ # site does not support https ERR_CONNECTION_CLOSED
caps:
categorymappings:
@@ -60,7 +60,7 @@
- selector: span.errormsg
test:
path: index.php
search:
paths:
- path: index.php

View File

@@ -1,4 +1,4 @@
---
---
site: 3evils
name: 3evils
description: "3evils is a Private Torrent Tracker for MOVIES / TV / GENERAL"

View File

@@ -10,29 +10,29 @@
caps:
categorymappings:
- {id: 38, cat: Movies, "Movie Pack"}
- {id: 36, cat: Movies, "Movies/Classic Films"}
- {id: 13, cat: Movies, "Movies/Documentary"}
- {id: 21, cat: Movies/Foreign, "Movies/Foreign"}
- {id: 27, cat: Movies/HD, "MoviesHD"}
- {id: 29, cat: Movies/SD, "Movies/SD"}
- {id: 26, cat: Movies/SD, "Movies/XviD"}
- {id: 41, cat: TV/FOREIGN, "Foreign tv"}
- {id: 40, cat: TV, "Mini-Series"}
- {id: 43, cat: TV/HD, "TV H265"}
- {id: 42, cat: TV, "TV Movie"}
- {id: 4, cat: TV/HD, "TV/HD-x720"}
- {id: 14, cat: TV, "TV/Packs"}
- {id: 2, cat: TV/SD, "TV/SD MP4/mkv"}
- {id: 31, cat: TV/SD, "TV/XviD"}
- {id: 18, cat: PC/Games, "Games/PC"}
- {id: 44, cat: Audio, "Music/Pack"}
- {id: 12, cat: Audio/Lossless, "Music/FLAC"}
- {id: 15, cat: Audio/MP3, "Music/MP3"}
- {id: 37, cat: Audio, "Radio"}
- {id: 9, cat: PC/0day, "Apps/PC"}
- {id: 34, cat: Audio/Audiobook, "Audiobooks"}
- {id: 25, cat: Books/Ebook, "eBooks"}
- {id: 38, cat: Movies, desc: "Movie Pack"}
- {id: 36, cat: Movies, desc: "Movies/Classic Films"}
- {id: 13, cat: Movies, desc: "Movies/Documentary"}
- {id: 21, cat: Movies/Foreign, desc: "Movies/Foreign"}
- {id: 27, cat: Movies/HD, desc: "MoviesHD"}
- {id: 29, cat: Movies/SD, desc: "Movies/SD"}
- {id: 26, cat: Movies/SD, desc: "Movies/XviD"}
- {id: 41, cat: TV/FOREIGN, desc: "Foreign tv"}
- {id: 40, cat: TV, desc: "Mini-Series"}
- {id: 43, cat: TV/HD, desc: "TV H265"}
- {id: 42, cat: TV, desc: "TV Movie"}
- {id: 4, cat: TV/HD, desc: "TV/HD-x720"}
- {id: 14, cat: TV, desc: "TV/Packs"}
- {id: 2, cat: TV/SD, desc: "TV/SD MP4/mkv"}
- {id: 31, cat: TV/SD, desc: "TV/XviD"}
- {id: 18, cat: PC/Games, desc: "Games/PC"}
- {id: 44, cat: Audio, desc: "Music/Pack"}
- {id: 12, cat: Audio/Lossless, desc: "Music/FLAC"}
- {id: 15, cat: Audio/MP3, desc: "Music/MP3"}
- {id: 37, cat: Audio, desc: "Radio"}
- {id: 9, cat: PC/0day, desc: "Apps/PC"}
- {id: 34, cat: Audio/Audiobook, desc: "Audiobooks"}
- {id: 25, cat: Books/Ebook, desc: "eBooks"}
modes:
search: [q]
@@ -92,7 +92,7 @@
tags_type: 0
rows:
selector: table#torrent_table > tbody > tr.torrent
selector: table#torrent_table > tbody > tr.torrent:has(a[href^="torrents.php?action=download&id="])
fields:
category:

View File

@@ -22,7 +22,7 @@
- {id: 408, cat: Audio, desc: "HQ Audio/无损音乐"}
modes:
search: [q]
search: [q, imdbid]
tv-search: [q, season, ep, imdbid]
movie-search: [q, imdbid]
@@ -103,7 +103,7 @@
args: cat
details:
selector: a[href^="details.php?id="]
attribute: href
attribute: href
download:
selector: a[href^="download.php?id="]
attribute: href

View File

@@ -20,7 +20,7 @@
settings:
- name: info
type: info
default: 7torrents does not use categories. In your software Indexer settings, set the category to 100001.
default: 7torrents does not use categories. In your software Indexer settings, set the category to 7000.
- name: sort
type: select
label: Sort requested from site
@@ -35,7 +35,7 @@
paths:
- path: search
inputs:
query: "{{ if .Keywords }}{{ .Keywords }}{{else}}2020{{end}}"
query: "{{ if .Keywords }}{{ .Keywords }}{{else}} {{end}}"
sort: "{{ .Config.sort }}"
rows:

View File

@@ -0,0 +1,100 @@
---
site: academictorrents
name: AcademicTorrents
description: "AcademicTorrents is a Public Community-Maintained Distributed Repository for datasets and scientific knowledge."
language: en-us
type: public
encoding: UTF-8
links:
- https://academictorrents.com/
caps:
categorymappings:
- {id: 5, cat: Books, desc: "Paper"}
- {id: 6, cat: Other, desc: "Dataset"}
- {id: 7, cat: TV/Documentary, desc: "Course"}
modes:
search: [q]
settings:
- name: sort
type: select
label: Sort requested from site
default: "added"
options:
"added": "created"
"seeders": "seeders"
"size": "size"
"name": "title"
- name: type
type: select
label: Order requested from site
default: "DESC"
options:
"DESC": "desc"
"ASC": "asc"
search:
# https://academictorrents.com/browse.php?search=&c5=1&c6=1&c7=1&sort_field=added&sort_dir=DESC
paths:
- path: browse.php
- path: browse.php
inputs:
page: 1
inputs:
$raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
search: "{{ .Keywords }}"
sort_field: "{{ .Config.sort }}"
sort_dir: "{{ .Config.type }}"
rows:
selector: table.table> tbody > tr:has(a[href^="/browse.php?cat="])
filters:
- name: andmatch
fields:
category:
selector: a[href^="/browse.php?cat="]
attribute: href
filters:
- name: querystring
args: cat
title:
selector: a[href^="/details/"]
details:
selector: a[href^="/details/"]
attribute: href
download:
# /download/08078e0894099530913e9335bdbc804f42f6e872.torrent"
selector: a[href^="/details/"]
attribute: href
filters:
- name: replace
args: ["/details/", "/download/"]
- name: append
args: ".torrent"
date:
selector: td:nth-child(4)
filters:
- name: dateparse
args: "2006-01-02"
size:
selector: td:nth-child(5)
grabs:
selector: td:nth-child(6)
seeders:
text: 0
seeders:
selector: td:nth-child(7):not(:empty)
optional: true
filters:
- name: replace
args: ["+", ""]
leechers:
selector: td:nth-child(8)
downloadvolumefactor:
text: 0
uploadvolumefactor:
text: 1
# engine n/a

View File

@@ -7,6 +7,8 @@
followredirect: true
encoding: UTF-8
links:
- https://www.36dm.club/
legacylinks:
- https://www.acgsou.com/
caps:

View File

@@ -1,4 +1,4 @@
---
---
site: acidlounge
name: Acid-Lounge
description: "Acid Lounge (A-L) is a Private Torrent Tracker for 0DAY / GENERAL"

View File

@@ -1,4 +1,4 @@
---
---
site: aftershock
name: Aftershock
description: "Aftershock is a HUNGARIAN Private Torrent Tracker for MOVIES / GENERAL"
@@ -170,4 +170,4 @@
case:
span.icon_upload: 2
"*": 1
# XBT v3
# XBT v3

View File

@@ -1,146 +0,0 @@
---
site: alein
name: Alein
description: "Alein is a BULGARIAN Semi-Private Torrent Tracker for MOVIES / TV / GENERAL"
language: bg
type: semi-private
encoding: UTF-8
links:
- http://alein.org/
caps:
categorymappings:
- {id: 1, cat: Movies/SD, desc: "Movies-XviD"}
- {id: 15, cat: Movies/HD, desc: "Movies-x264"}
- {id: 41, cat: Movies, desc: "Movies-BG"}
- {id: 14, cat: Movies/HD, desc: "Movies-HD"}
- {id: 48, cat: Movies/UHD, desc: "Movies-x265"}
- {id: 39, cat: Movies/Foreign, desc: "Movies-XviD-Rus"}
- {id: 40, cat: Movies/Foreign, desc: "Movies-x264-Rus"}
- {id: 20, cat: Movies/Other, desc: "Movies-Animations"}
- {id: 16, cat: Movies/3D, desc: "Movies-3D"}
- {id: 5, cat: TV/Anime, desc: "Movies-Anime"}
- {id: 21, cat: Movies/BluRay, desc: "Movies-Blu-ray"}
- {id: 22, cat: TV/Documentary , desc: "Movies-Documentaries"}
- {id: 11, cat: Movies/DVD, desc: "Movies-DVD-R"}
- {id: 47, cat: TV/SD, desc: "TV-Episodes"}
- {id: 46, cat: TV/HD, desc: "TV-Episodes-HD"}
- {id: 3, cat: PC/ISO, desc: "Games-PC ISO"}
- {id: 31, cat: Console/Xbox, desc: "Games-XBOX"}
- {id: 33, cat: Console/PSP, desc: "Games-PS"}
- {id: 2, cat: Audio/MP3, desc: "Music-MP3"}
- {id: 50, cat: Audio/Lossless, desc: "Music-FLAC"}
- {id: 18, cat: Audio/Video, desc: "Music-Video"}
- {id: 9, cat: PC/0day, desc: "Software-Windows"}
- {id: 8, cat: PC, desc: "Software-Linux"}
- {id: 36, cat: Other, desc: "Trailer"}
- {id: 34, cat: Other/Misc, desc: "Pictures"}
- {id: 4, cat: Other, desc: "Other"}
- {id: 6, cat: Books/Comics, desc: "Books-Comics"}
- {id: 24, cat: PC/Phone-Other, desc: "Mobile-GSM"}
- {id: 23, cat: TV/Sport, desc: "Sport"}
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: sort
type: select
label: Sort requested from site
default: "3"
options:
"3": "created"
"5": "seeders"
"4": "size"
"2": "title"
- name: type
type: select
label: Order requested from site
default: "2"
options:
"2": "desc"
"1": "asc"
login:
path: index.php?page=login
method: form
form: form[action*="/index.php?page=login"]
inputs:
uid: "{{ .Config.username }}"
pwd: "{{ .Config.password }}"
error:
- selector: td.lista span[style="color:#FF0000;"]
test:
path: /
selector: a[href="logout.php"]
search:
paths:
# http://alein.org/index.php?page=torrents&category=1;15;41;14;48;39;20;16;5;21;22;11&search=venom&active=1
- path: index.php
inputs:
page: torrents
category: "{{ range .Categories }}{{.}};{{end}}"
search: "{{ .Keywords }}"
# 0 all 1 active only 2 dead only
active: 0
order: "{{ .Config.sort }}"
by: "{{ .Config.type }}"
rows:
selector: tr.trclass:not(:has(td.lista-cat-rec))
fields:
title:
selector: td a[href*="id="]
details:
selector: td a[href*="id="]
attribute: href
category:
selector: td a[href*="category="]
attribute: href
filters:
- name: querystring
args: category
download:
selector: td a[href*="id="]
attribute: href
filters:
- name: querystring
args: id
- name: prepend
args: "download.php?id="
- name: append
args: "&f={{ .Result.title }}.torrent"
banner:
selector: td a[href*="id="]
attribute: onmouseover
filters:
- name: regexp
args: "src=(.+?) width="
size:
selector: td:nth-child(6)
seeders:
selector: td:nth-child(7)
leechers:
selector: td:nth-child(8)
grabs:
selector: td:nth-child(9)
date:
selector: td:nth-child(5)
filters:
- name: dateparse
args: "02/01/2006"
downloadvolumefactor:
text: 0
uploadvolumefactor:
text: 1
# xbtit 2.3

View File

@@ -1,4 +1,4 @@
---
---
site: alexfilm
name: AlexFilm
description: "AlexFilm is a RUSSIAN Semi-Private Torrent Tracker for TV"
@@ -152,6 +152,5 @@
img[src="./styles/images/tor_silver.gif"]: 0.5
"*": 1
uploadvolumefactor:
case:
"*": 1
text: 1
# engine n/a

View File

@@ -158,8 +158,10 @@
keywordsfilters:
- name: re_replace
args: ["([12][0-9]{3})", ""]
rows:
selector: div#fancy-list-group ul.list-group li.list-group-item
fields:
_quality:
selector: div.list-group-item-content p.m-0 span.badge-primary:contains("1080p"), div.list-group-item-content p.m-0 span.badge-primary:contains("720p"), div.list-group-item-content p.m-0 span.badge-primary:contains("4k")
@@ -196,69 +198,70 @@
attribute: src
case:
# unfortunately the site does not have category numbers on the results page, just a .png which can apply to both movies and tv.
# therefore I've order the list to favour movies,
# therefore I've order the list to favour movies,
# also, not all .png have been verified as the site has many empty categories. their image names have been extrapolated from the cat desc.
"[src$=\"/XXXZ.png\"]": "74"
"[src$=\"/Hentai.png\"]": "75"
"[src$=\"/Anime.png\"]": "69"
"[src$=\"/Windows.png\"]": "21"
"[src$=\"/Mac.png\"]": "22"
"[src$=\"/Android.png\"]": "23"
"[src$=\"/Linux.png\"]": "25"
"[src$=\"/iPhone.png\"]": "26"
"[src$=\"/iPad.png\"]": "27"
"[src$=\"/iPod.png\"]": "28"
"[src$=\"/Cursos.png\"]": "71"
"[src$=\"/Apostila.png\"]": "72"
"[src$=\"/E-books.png\"]": "67"
"[src$=\"/Revista.png\"]": "68"
"[src$=\"/HQ.png\"]": "112"
"[src$=\"/Filmes.png\"]": "119"
"[src$=\"/Revistas-XXX.png\"]": "70"
"[src$=\"/PS4.png\"]": "79"
"[src$=\"/Jogos-PC.png\"]": "47"
"[src$=\"/Emulador.png\"]": "61"
"[src$=\"/Emulacao.png\"]": "109"
"[src$=\"/Jogos-Mac.png\"]": "48"
"[src$=\"/Jogos-PS1.png\"]": "49"
"[src$=\"/Jogos-PS2.png\"]": "50"
"[src$=\"/Jogos-PS3.png\"]": "51"
"[src$=\"/Jogos-Dreamcast.png\"]": "52"
"[src$=\"/Jogos-Xbox360.png\"]": "54"
"[src$=\"/Jogos-Xbox.png\"]": "56"
"[src$=\"/Jogos-Wii.png\"]": "55"
"[src$=\"/Jogos-DS.png\"]": "58"
"[src$=\"/jogosandroid.png\"]": "57"
"[src$=\"/Jogos-PSP.png\"]": "82"
"[src$=\"/Jogos-NS.png\"]": "110"
"[src$=\"/Jogos-XboxOne.png\"]": "78"
"[src$=\"/Axe.png\"]": "29"
"[src$=\"/Funk.png\"]": "31"
"[src$=\"/Pagode.png\"]": "32"
"[src$=\"/HIP_HOP.png\"]": "33"
"[src$=\"/Rap.png\"]": "34"
"[src$=\"/Rock.png\"]": "36"
"[src$=\"/Hard-Rock.png\"]": "37"
"[src$=\"/Blues.png\"]": "38"
"[src$=\"/Dance.png\"]": "39"
"[src$=\"/Discografia.png\"]": "40"
"[src$=\"/Erudita.png\"]": "41"
"[src$=\"/Forro.png\"]": "42"
"[src$=\"/Dubstep.png\"]": "43"
"[src$=\"/Sertanejo.png\"]": "46"
"[src$=\"/Samba.png\"]": "45"
"[src$=\"/Musica-Outros.png\"]": "77"
"[src$=\"/Reggae.png\"]": "76"
"[src$=\"/Gospel.png\"]": "83"
"[src$=\"/POP.png\"]": "115"
"[src$=\"/MPB.png\"]": "114"
"[src$=\"/OST.png\"]": "84"
"[src$=\"/Seriados.png\"]": "120"
"[src$=\"/Shows.png\"]": "65"
"[src$=\"/Aberta.png\"]": "63"
"[src$=\"/Esporte.png\"]": "62"
"[src$=\"/Fechada.png\"]": "64"
"[src$=\"/Videoaula.png\"]": "73"
"[src$=\"/XXXZ.png\"]": 74
"[src$=\"/Hentai.png\"]": 75
"[src$=\"/Anime.png\"]": 69
"[src$=\"/Windows.png\"]": 21
"[src$=\"/Mac.png\"]": 22
"[src$=\"/Android.png\"]": 23
"[src$=\"/Linux.png\"]": 25
"[src$=\"/iPhone.png\"]": 26
"[src$=\"/iPad.png\"]": 27
"[src$=\"/iPod.png\"]": 28
"[src$=\"/Cursos.png\"]": 71
"[src$=\"/Apostila.png\"]": 72
"[src$=\"/E-books.png\"]": 67
"[src$=\"/Revista.png\"]": 68
"[src$=\"/HQ.png\"]": 112
"[src$=\"/Filmes.png\"]": 119
"[src$=\"/Revistas-XXX.png\"]": 70
"[src$=\"/PS4.png\"]": 79
"[src$=\"/Jogos-PC.png\"]": 47
"[src$=\"/Emulador.png\"]": 61
"[src$=\"/Emulacao.png\"]": 109
"[src$=\"/Jogos-Mac.png\"]": 48
"[src$=\"/Jogos-PS1.png\"]": 49
"[src$=\"/Jogos-PS2.png\"]": 50
"[src$=\"/Jogos-PS3.png\"]": 51
"[src$=\"/Jogos-Dreamcast.png\"]": 52
"[src$=\"/Jogos-Xbox360.png\"]": 54
"[src$=\"/Jogos-Xbox.png\"]": 56
"[src$=\"/Jogos-Wii.png\"]": 55
"[src$=\"/Jogos-DS.png\"]": 58
"[src$=\"/jogosandroid.png\"]": 57
"[src$=\"/Jogos-PSP.png\"]": 82
"[src$=\"/Jogos-NS.png\"]": 110
"[src$=\"/Jogos-XboxOne.png\"]": 78
"[src$=\"/Axe.png\"]": 29
"[src$=\"/Funk.png\"]": 31
"[src$=\"/Pagode.png\"]": 32
"[src$=\"/HIP_HOP.png\"]": 33
"[src$=\"/Rap.png\"]": 34
"[src$=\"/Rock.png\"]": 36
"[src$=\"/Hard-Rock.png\"]": 37
"[src$=\"/Blues.png\"]": 38
"[src$=\"/Dance.png\"]": 39
"[src$=\"/Discografia.png\"]": 40
"[src$=\"/Erudita.png\"]": 41
"[src$=\"/Forro.png\"]": 42
"[src$=\"/Dubstep.png\"]": 43
"[src$=\"/Sertanejo.png\"]": 46
"[src$=\"/Samba.png\"]": 45
"[src$=\"/Musica-Outros.png\"]": 77
"[src$=\"/Reggae.png\"]": 76
"[src$=\"/Gospel.png\"]": 83
"[src$=\"/POP.png\"]": 115
"[src$=\"/MPB.png\"]": 114
"[src$=\"/OST.png\"]": 84
"[src$=\"/Seriados.png\"]": 120
"[src$=\"/Shows.png\"]": 65
"[src$=\"/Aberta.png\"]": 63
"[src$=\"/Esporte.png\"]": 62
"[src$=\"/Fechada.png\"]": 64
"[src$=\"/Videoaula.png\"]": 73
"*": 999
date:
text: now
date:
@@ -284,5 +287,5 @@
"span.badge-success:contains(\"FREE\")": 0
"*": 1
uploadvolumefactor:
case:
"*": 1
text: 1
# engine n/a

View File

@@ -1,4 +1,4 @@
---
---
site: arabafenice
name: ArabaFenice
description: "Araba Fenice (Phoenix) is an ITALIAN Private site for TV / MOVIES / GENERAL"
@@ -14,7 +14,7 @@
categorymappings:
# HRS
- {id: 34, cat: Movies/HD, desc: "1080p HRS x264"}
- {id: 47, cat: Movies/HD, desc: "2160p 4k UltraHD HRS"}
- {id: 47, cat: Movies/UHD, desc: "2160p 4k UltraHD HRS"}
- {id: 35, cat: TV, desc: "Serie TV HRS"}
- {id: 36, cat: Movies/SD, desc: "DVDRip HRS"}
- {id: 41, cat: Movies/SD, desc: "BDRip 576p HRS"}
@@ -38,7 +38,7 @@
- {id: 42, cat: TV, desc: "Serie Tv Sub Ita"}
- {id: 15, cat: TV/Documentary, desc: "documentaries"}
- {id: 33, cat: TV, desc: "mp4"}
- {id: 40, cat: TV/HD, desc: "2160p 4K UltraHD"}
- {id: 40, cat: TV/UHD, desc: "2160p 4K UltraHD"}
- {id: 38, cat: XXX, desc: "xXx"}
- {id: 43, cat: Other, desc: "Arabic for social"}
@@ -65,7 +65,7 @@
- {id: 32, cat: PC/Phone-Android, desc: "Android APP"}
modes:
search: [q]
search: [q, imdbid]
tv-search: [q, season, ep, imdbid]
movie-search: [q, imdbid]

View File

@@ -0,0 +1,165 @@
---
site: arabp2p
name: ArabP2P
description: "ArabP2P is an ARABIC Private Torrent Tracker for MOVIES / TV / GENERAL"
language: ar-ar
type: private
encoding: UTF-8
links:
- https://www.arabp2p.com/
settings:
- name: username
type: text
label: Username
- name: password
type: password
label: Password
- name: sort
type: select
label: Sort requested from site
default: "3"
options:
"3": "created"
"5": "seeders"
"4": "size"
"2": "title"
- name: type
type: select
label: Order requested from site
default: "2"
options:
"2": "desc"
"1": "asc"
caps:
categorymappings:
# المرئيات العربية Arabic Movies
- {id: 14, cat: Movies, desc: "اسلامي (Islamic)"}
- {id: 19, cat: TV/Documentary, desc: "وثائقي (Documentary)"}
- {id: 70, cat: TV, desc: "تعليمي (Educational)"}
- {id: 41, cat: Movies, desc: "افلام عربيه (Arabic Movies)"}
- {id: 88, cat: Movies, desc: "افلام مدبلجه عربي (Arabic Dubbed Movies)"}
- {id: 44, cat: TV, desc: "مسلسلات عربية (Arabic Series)"}
- {id: 89, cat: TV, desc: "مسلسلات عربية كامله (Full Arabic Series)"}
- {id: 52, cat: TV, desc: "مسرحيات (Plays)"}
- {id: 71, cat: TV, desc: "مسلسلات مدبلجه عربي (Arabic Dubbed Series)"}
- {id: 90, cat: TV, desc: "برامج ومسابقات (Shows)"}
- {id: 109, cat: TV, desc: "رمضان 2020 (Ramadan 2020)"}
# المرئيات الاجنبية Foreign Movies
- {id: 92, cat: TV/FOREIGN, desc: "تعليمي (Educational)"}
- {id: 93, cat: TV/Documentary, desc: "وثائقي (Documentary)"}
- {id: 45, cat: TV/FOREIGN, desc: "مسلسلات وبرامج اجنبيه (Serials)"}
- {id: 57, cat: TV/FOREIGN, desc: "مسلسلات آسيوية (Asian Series)"}
- {id: 42, cat: Movies/Foreign, desc: "افلام اجنبيه (Foreign)"}
- {id: 76, cat: Movies/3D, desc: "&ثلاثي الابعاد 3D (3D)"}
- {id: 74, cat: Movies/HD, desc: "جودة عالية HD"}
- {id: 59, cat: Movies/Foreign, desc: "افلام آسيوية (Asian Movies)"}
- {id: 86, cat: Movies/Foreign, desc: "افلام هنديه (Indian Movies)"}
# انمي مدبلج عربي Anime Arabic dubbed
- {id: 98, cat: TV/Anime, desc: "افلام (Movies)"}
- {id: 100, cat: TV/Anime, desc: "مسلسلات (Series)"}
- {id: 102, cat: TV/Anime, desc: "حلقات (Episdoes)"}
# انمي مترجم عربي Anime Arabic translator
- {id: 99, cat: TV/Anime, desc: "افلام (Movies)"}
- {id: 101, cat: TV/Anime, desc: "مسلسلات (Series)"}
- {id: 103, cat: TV/Anime, desc: "حلقات (Episodes)"}
- {id: 85, cat: TV/Anime, desc: "الكارتون الصامت والكلاسيكي (Cartoons)"}
# صوتيات Audio
- {id: 25, cat: Audio, desc: "القران الكريم (The Holy Quran)"}
- {id: 27, cat: Audio, desc: "محاضرات (Lectures)"}
- {id: 26, cat: Audio, desc: "اناشيد (Chants)"}
# برامج Software
- {id: 22, cat: PC, desc: "برامج عربية (Arabic Software)"}
- {id: 23, cat: PC, desc: "برامج عامه (Public Software)"}
- {id: 78, cat: PC/Phone-IOS, desc: "iPad/iPhone"}
- {id: 79, cat: PC/Phone-Android, desc: "android"}
# العاب Games
- {id: 30, cat: PC/Games, desc: "PC"}
- {id: 31, cat: Console/PS3, desc: "PS2"}
- {id: 53, cat: Console/Wii, desc: "wii"}
- {id: 55, cat: Console/PSP, desc: "PSP"}
- {id: 63, cat: Console/Xbox, desc: "XBOX"}
- {id: 64, cat: Console/PS3, desc: "PS3"}
# اخرى Other
- {id: 17, cat: Books, desc: "كتب (Books)"}
- {id: 65, cat: Other, desc: "صور (Images)"}
- {id: 56, cat: Other, desc: "رياضي (Sport)"}
- {id: 46, cat: Other, desc: "منوع (Misc)"}
modes:
search: [q]
tv-search: [q, season, ep]
movie-search: [q]
music-search: [q]
login:
path: index.php?page=login
method: form
form: form[action^="index.php?page=login"]
inputs:
uid: "{{ .Config.username }}"
pwd: "{{ .Config.password }}"
error:
- selector: tr td span[style="color:#FF0000;"]
test:
path: index.php
selector: a[href^="logout.php?t="]
search:
paths:
# https://www.arabp2p.com/index.php?page=torrents&search=&category=0&active=0&internel=0
- path: index.php
inputs:
page: torrents
search: "{{ .Keywords }}"
category: "{{ if .Categories }}{{ range .Categories }}{{.}};{{end}}{{else}}0{{end}}"
# 0 all 1 activeonly 2 deadonly
active: 0
# 0 all 1 internal 2 external
internel: 0
order: "{{ .Config.sort }}"
by: "{{ .Config.type }}"
# does not support imdbid search or provide imdb link in results
rows:
selector: table.torrent tr.torrent
fields:
category:
selector: td a[href^="index.php?page=torrents&category="]
attribute: href
filters:
- name: querystring
args: category
title:
selector: td a[href^="index.php?page=torrent-details"]
details:
selector: td a[href^="index.php?page=torrent-details"]
attribute: href
download:
selector: td a[href^="download.php"]
attribute: href
date:
selector: td:nth-child(4) span
attribute: title
filters:
- name: append
args: " +03:00" # (AST)
- name: dateparse
args: "2006-01-02 15:04:05 -07:00"
seeders:
selector: td:nth-child(5)
leechers:
selector: td:nth-child(6)
size:
selector: td:nth-child(7)
downloadvolumefactor:
text: 1
uploadvolumefactor:
text: 1
minimumratio:
text: 0.8
minimumseedtime:
text: 259200 # 3 days
# xbtit

View File

@@ -1,4 +1,4 @@
---
---
site: arenabg
name: ArenaBG
description: "ArenaBG is a BULGARIAN Semi-Private Torrent Tracker for 0DAY / GENERAL"
@@ -6,6 +6,8 @@
type: semi-private
encoding: UTF-8
links:
- https://arenabg.ch/
legacylinks:
- https://arenabg.com/
caps:

View File

@@ -1,4 +1,4 @@
---
---
site: asgaard
name: Asgaard
description: "Asgaard (AG) is a NORDIC Private Torrent Tracker for MOVIES / TV / GENERAL"
@@ -57,7 +57,7 @@
- {id: 43, cat: Books/Technical, desc: "Books Education"}
modes:
search: [q]
search: [q, imdbid]
tv-search: [q, season, ep, imdbid]
movie-search: [q, imdbid]
@@ -104,7 +104,7 @@
test:
path: /
selector: a[href$="/logout.php"]
search:
paths:
# https://asgrd.org/browse.php?sns=&sna=&spf=&sr=&sg=&sys=&sye=&srs=&sre=&si=tt2401090&ss=&incldead=0&only_free=0&sort=4&type=desc
@@ -178,6 +178,5 @@
img[src="./images/gold.png"]: 0
"*": 1
uploadvolumefactor:
case:
"*": 1
text: 1
# Midgaard

View File

@@ -15,7 +15,7 @@
- {id: 3, cat: Audio, desc: "Music"}
modes:
search: [q]
search: [q, imdbid]
tv-search: [q, season, ep, imdbid]
movie-search: [q, imdbid]
@@ -46,17 +46,20 @@
login:
path: login
method: form
form: form[action$="/login"]
inputs:
username: "{{ .Config.username }}"
password: "{{ .Config.password }}"
remember: on
selectorinputs:
_token:
selector: input[name="_token"]
attribute: value
error:
- selector: script[nonce]:contains("Error")
message:
selector: script[nonce]:contains("Error")
test:
path: /
selector: a[href$="/logout"]
- selector: div#ERROR_COPY
# test:
# path: /
# selector: a[href$="/logout"]
ratio:
path: /
@@ -65,13 +68,9 @@
- name: regexp
args: "Ratio : (\\d+)"
download:
selector: a[href*="/download/"]
attribute: href
search:
paths:
- path: filterTorrents
- path: torrents/filter
inputs:
$raw: "{{ range .Categories }}categories[]={{.}}&{{end}}"
search: "{{ if .Query.IMDBID }}{{else}}{{ .Keywords }}{{end}}"
@@ -81,6 +80,7 @@
tvdb: ""
tmdb: ""
mal: ""
igdb: ""
sorting: "{{ .Config.sort }}"
sort: "{{ .Config.sort }}"
direction: "{{ .Config.type }}"
@@ -95,11 +95,11 @@
attribute: href
filters:
- name: regexp
args: "/categories/.*?\\.(\\d+)"
args: "/categories/(\\d+)"
title:
selector: a.view-torrent
download:
selector: a[href*="/download_check/"]
selector: a[href*="/download/"]
attribute: href
details:
selector: a.view-torrent
@@ -134,7 +134,7 @@
filters:
# translations for Turkish|Estonian|Danish|Italian|Polish|Norwegian|Portuguese|Czech|Russian|Romanian|Spanish|French|German|Bulgarian|Dutch|Chinese
- name: re_replace
args: ["(?i)(önce|tagasi|geleden|fa|temu|siden|atrás|nazpět|назад|acum|în urmă|hace|il y a|vor|преди|前)", " ago"]
args: ["(?i)(önce|tagasi|geleden|fa|temu|siden|há|atrás|nazpět|назад|acum|în urmă|hace|il y a|vor|преди|前)", " ago"]
- name: re_replace
args: ["(?i)(minutit|minutter|minuti|minuty|minutos|минуты|минут|Minuten|минути|minuten)", "minutes"]
- name: re_replace
@@ -179,4 +179,4 @@
i[class*="fa-globe text-green"]: 2 # Global Double Upload
i[class*="fa-certificate text-pink"]: 2 # Featured Torrent
"*": 1
# UNIT3D 1.9.3
# UNIT3D 2.2.7

View File

@@ -6,7 +6,7 @@
type: public
encoding: UTF-8
links:
- http://audiobookbay.nl/
- http://audiobookbay.nl/ # site forces http, does not support https
legacylinks:
- https://audiobookbay.la/

View File

@@ -44,15 +44,27 @@
modes:
search: [q]
settings:
- name: username
type: text
label: Username
- name: password
type: password
label: Password
- name: info_results
type: info
label: Search results
default: "If you are getting the error <b>Login Failed, got redirected</b> then access the site with your browser and <b>mark as read</b> all PMs."
login:
path: takelogin.php
method: post
inputs:
username: "{{ .Config.username }}"
password: "{{ .Config.password }}"
use_ssl: "1"
perm_ssl: "1"
submitme: "X"
use_ssl: 1
perm_ssl: 1
submitme: X
error:
- selector: td.embedded:has(h2:contains("Oops"))
- selector: td.embedded:has(h2:contains("failed"))
@@ -65,58 +77,40 @@
inputs:
$raw: "{{range .Categories}}c{{.}}=1&{{end}}"
search: "{{ .Keywords }}"
searchin: "title"
incldead: "1"
searchin: title
incldead: 1
rows:
selector: tr.browse_color, tr.freeleech_color, tr[id^="kdescr"]
after: 1
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
filters:
- name: regexp
args: src=\'(.*?)\'
title:
selector: a[href^="details.php?id="][onmouseover]
attribute: onmouseover
filters:
- name: regexp
args: Tip\('<b>(.*?)</b>
category:
selector: a[href^="browse.php?cat="]
attribute: href
filters:
- name: querystring
args: cat
title:
selector: a[href^="details.php?id="][onmouseover]
attribute: onmouseover
filters:
- name: regexp
args: Tip\('<b>(.*?)</b>
- name: replace
args: ["\\", ""]
details:
selector: a[href^="details.php?id="][onmouseover]
attribute: href
download:
selector: a[href^="download.php"]
attribute: href
files:
selector: a[href^="filelist.php"]
size:
selector: td:nth-last-child(6)
grabs:
selector: td:nth-last-child(5)
banner:
selector: a[href^="details.php?id="][onmouseover]
attribute: onmouseover
filters:
- name: regexp
args: ([\d,]+)
seeders:
selector: td:nth-last-child(4)
leechers:
selector: td:nth-last-child(3)
date:
selector: td:nth-last-child(7)
downloadvolumefactor:
case:
"a.info > b:contains(\"[FREE]\")": "0"
"*": "1"
uploadvolumefactor:
case:
"*": "1"
args: src=\'(.*?)\'
description:
selector: a[href^="details.php?id="][onmouseover]
attribute: onmouseover
@@ -130,7 +124,29 @@
- name: prepend
args: "{{ .Result.description }}<br>\n"
description:
selector: td[colspan=13]
selector: td[colspan="13"]
filters:
- name: prepend
args: "{{ .Result.description }}<br>\n"
files:
selector: td:nth-last-child(9)
date:
selector: td:nth-last-child(7)
size:
selector: td:nth-last-child(6)
grabs:
selector: td:nth-last-child(5)
filters:
- name: regexp
args: (\d+)
seeders:
selector: td:nth-last-child(4)
leechers:
selector: td:nth-last-child(3)
downloadvolumefactor:
case:
"a.info > b:contains(\"[FREE]\")": 0
"*": 1
uploadvolumefactor:
text: 1
# U-232 V4

View File

@@ -1,4 +1,4 @@
---
---
site: audionews
name: AudioNews
description: "AudioNews (AN) is a Private Torrent Tracker for AUDIO SOFTWARE / SAMPLES / ETC"

View File

@@ -1,97 +0,0 @@
---
site: awesomehd
name: Awesome-HD
description: "An HD tracker"
language: en-us
type: private
encoding: UTF-8
links:
- https://awesome-hd.me/
caps:
categorymappings:
- {id: 1, cat: Movies/HD, desc: "Movies"}
- {id: 2, cat: TV/HD, desc: "TV-Shows"}
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: sort
type: select
label: Sort requested from site
default: "time"
options:
"time": "created"
"seeders": "seeders"
"size": "size"
- name: type
type: select
label: Order requested from site
default: "desc"
options:
"desc": "desc"
"asc": "asc"
login:
path: login.php
method: form
form: form#loginform
inputs:
username: "{{ .Config.username }}"
password: "{{ .Config.password }}"
keeplogged: 1
error:
- selector: form#loginform .warning
test:
path: torrents.php
search:
paths:
- path: torrents.php
inputs:
$raw: "{{ range .Categories }}filter_cat[{{.}}]=1&{{end}}"
searchstr: "{{ .Keywords }}"
page: torrents
order_by: "{{ .Config.sort }}"
order_way: "{{ .Config.type }}"
rows:
selector: table#torrent_table > tbody > tr.group, tr.torrent, tr.group_torrent:not(.edition_info)
fields:
download:
selector: a[href^="torrents.php?action=download&id="]
attribute: href
optional: true
details:
selector: a[href^="torrents.php?id="]
attribute: href
title:
selector: td:nth-child(3) > a
category:
selector: td:nth-child(2)
date:
selector: td:nth-last-child(5)
size:
selector: td:nth-last-child(4)
grabs:
selector: td:nth-last-child(3)
seeders:
selector: td:nth-last-child(2)
leechers:
selector: td:nth-last-child(1)
downloadvolumefactor:
case:
"*": 1
uploadvolumefactor:
case:
"*": 1

View File

@@ -1,4 +1,4 @@
 site: backups
site: backups
name: Back-ups
description: "Back-Ups is a Private Torrent Tracker for MOVIES / TV / GENERAL"
language: en-us

View File

@@ -57,15 +57,15 @@
selector: a[href*="/torrent/"]
attribute: href
date:
selector: td:nth-child(3)
selector: td:nth-child(4)
filters:
- name: timeago
size:
selector: td:nth-child(4)
seeders:
selector: td:nth-child(5)
leechers:
seeders:
selector: td:nth-child(6)
leechers:
selector: td:nth-child(7)
downloadvolumefactor:
text: 0
uploadvolumefactor:

View File

@@ -1,4 +1,4 @@
---
---
site: baibako
name: BaibaKo
description: "BaibaKo is a RUSSIAN Semi-Private Torrent Tracker for TV"
@@ -6,7 +6,7 @@
type: semi-private
encoding: windows-1251
links:
- http://baibako.tv/
- http://baibako.tv/ # site does not support https NET::ERR_CERT_AUTHORITY_INVALID
caps:
categorymappings:

View File

@@ -21,7 +21,7 @@
- {id: 408, cat: Audio, desc: "HQ Audio/无损音乐"}
modes:
search: [q]
search: [q, imdbid]
tv-search: [q, season, ep, imdbid]
movie-search: [q, imdbid]
@@ -71,8 +71,8 @@
incldead: 0
# 0 all 1 normal 2 free 3 2x 4 2xfree 5 50% 6 2x50% 7 30%
spstate: 0
# 0 title 1 descr 3 uploaded 4 imdburl
search_area: "{{ if .Query.IMDBID }}4{{else}}0{{end}}"
# 0 title 1 descr 3 uploaded 4 imdburl (searching imdburl does not work with tt1234567, but descr is good)
search_area: "{{ if .Query.IMDBID }}1{{else}}0{{end}}"
# 0 AND 1 OR 2 exact
search_mode: 0
sort: "{{ .Config.sort }}"
@@ -96,7 +96,7 @@
args: cat
details:
selector: a[href^="details.php?id="]
attribute: href
attribute: href
download:
selector: a[href^="download.php?id="]
attribute: href
@@ -148,4 +148,4 @@
description:
selector: td:nth-child(2)
remove: a, img
# NexusPHP Standard v1.5 Beta 4
# NexusPHP Standard v1.5 Beta 4

View File

@@ -35,7 +35,7 @@
- {id: 2, cat: TV, desc: "TV"}
modes:
search: [q]
search: [q, imdbid]
tv-search: [q, season, ep, imdbid]
movie-search: [q, imdbid]
@@ -50,8 +50,8 @@
paths:
- path: torrents
inputs:
$raw: "{{range .Categories}}categories[]={{.}}&{{end}}"
search: "{{if .Query.IMDBID}}{{else}}{{ .Keywords }}{{end}}"
$raw: "{{ range .Categories }}categories[]={{.}}&{{end}}"
search: "{{ if .Query.IMDBID }}{{else}}{{ .Keywords }}{{end}}"
description: ""
uploader: ""
imdb: "{{ .Query.IMDBIDShort }}"
@@ -114,6 +114,5 @@
i[data-original-title="75% Promo"]: 0.25
"*": 1
uploadvolumefactor:
case:
"*": 1
# UNIT3D
text: 1
# UNIT3D

View File

@@ -14,7 +14,7 @@
- {id: 2, cat: TV, desc: "TV"}
modes:
search: [q]
search: [q, imdbid]
tv-search: [q, season, ep, imdbid]
movie-search: [q, imdbid]
@@ -45,6 +45,7 @@
login:
path: login
method: form
form: form[action$="/login"]
captcha:
type: text
selector: div[style*="#999999;"]
@@ -53,10 +54,17 @@
username: "{{ .Config.username }}"
password: "{{ .Config.password }}"
remember: on
selectorinputs:
_token:
selector: input[name="_token"]
attribute: value
error:
- selector: div.has-error
test:
path: torrents
- selector: form[action$="/login"] .text-red
- selector: script:contains("toastr.error")
message:
selector: script:contains("toastr.error")
# test:
# path: torrents
search:
paths:
@@ -126,6 +134,5 @@
i[data-original-title="75% Promo"]: 0.25
"*": 1
uploadvolumefactor:
case:
"*": 1
# UNIT3D
text: 1
# UNIT3D

View File

@@ -1,4 +1,4 @@
---
---
site: bigfangroup
name: BigFANGroup
description: "BigFANGroup is a RUSSIAN Public Torrent Tracker for MOVIES / TV"
@@ -88,7 +88,7 @@
search:
# https://bigfangroup.org/browse.php?search=black+lightning&cat=0&incldead=0&year=0&format=0
#
#
paths:
- path: browse.php
inputs:
@@ -133,7 +133,7 @@
- name: replace
args: ["WEB DL", "WEBDL"]
- name: replace
args: ["WEB DLRip", "WEBDL"]
args: ["WEBDLRip", "WEBDL"]
- name: replace
args: ["HDTVRip", "HDTV"]
details:
@@ -184,10 +184,7 @@
- name: dateparse
args: "2 January 2006 15:04:05"
downloadvolumefactor:
case:
img[src="pic/freedownload.gif"]: 0
img[src="pic/silverdown.gif"]: 0
"*": 1
text: 0
uploadvolumefactor:
text: 1
# engine n/a

View File

@@ -6,6 +6,8 @@
type: private
encoding: UTF-8
links:
- https://www.bigtorrent.eu/
legacylinks:
- http://www.bigtorrent.eu/
caps:
@@ -96,4 +98,4 @@
"*": "1"
uploadvolumefactor:
case:
"*": "1"
"*": "1"

View File

@@ -6,14 +6,16 @@
type: private
encoding: UTF-8
links:
- http://bigtower.info/
- http://bigtower.info/ # site does not support https NET::ERR_CERT_DATE_INVALID
legacylinks:
- https://bigtower.info/
caps:
categorymappings:
# Movies
- {id: 11, cat: Movies/HD, desc: "DSS"}
- {id: 1, cat: Movies, desc: "Screener"}
- {id: 1, cat: Movies, desc: "Screener"}
- {id: 2, cat: Movies, desc: "DVDRip & BDRip"}
- {id: 3, cat: Movies/BluRay, desc: "Bluray 1080p & 720p"}
- {id: 5, cat: Movies/UHD, desc: "Ultra HD 4K"}
@@ -25,10 +27,10 @@
# MUSIC
- {id: 8, cat: Audio, desc: "Musica"}
# SOFTWARE
- {id: 9, cat: PC/0day, desc: "Software"}
# PHONE
- {id: 12, cat: PC/Phone-Other, desc: "Applicazioni"}

View File

@@ -1,4 +1,4 @@
---
---
site: bit-titan
name: BiT-TiTAN
description: "BiT-TiTAN is a GERMAN Private Torrent Tracker for MOVIES / TV / GENERAL"

View File

@@ -1,4 +1,4 @@
---
---
site: bithorlo
name: Bithorlo
description: "Bithorlo (BHO) is a HUNGARIAN Private Torrent Tracker for MOVIES / GENERAL"
@@ -56,13 +56,17 @@
movie-search: [q]
settings:
- name: info_alert
type: info
label: Alert about Cookie
default: "If during your cookie save you get the following error:</br><b>The 'Value'='xzlogin,xzrecover,xzsignup' part of the cookie is invalid.</b></br>Then remove <b>acopendivids=xzlogin,xzrecover,xzsignup; </b> from the cookie string before proceeding to save."
- name: cookie
type: text
label: Cookie
- name: info
type: info
label: How to get the Cookie
default: "<ol><li>Login to this tracker in your browser<li>Open the <b>DevTools</b> panel by pressing <b>F12</b><li>Select the <b>Network</b> tab<li>Click on the <b>Doc</b> button<li>Refresh the page by pressing <b>F5</b><li>Select the <b>Headers</b> tab<li>Find 'cookie:' in the <b>Request Headers</b> section<li>Copy & paste the whole cookie string to here</ol>"
default: "<ol><li>Login to this tracker with your browser<li>Open the <b>DevTools</b> panel by pressing <b>F12</b><li>Select the <b>Network</b> tab<li>Click on the <b>Doc</b> button<li>Refresh the page by pressing <b>F5</b><li>Select the <b>Headers</b> tab<li>Find <b>'cookie:'</b> in the <b>Request Headers</b> section<li><b>Select</b> and <b>Copy</b> the whole cookie string <i>(everything after 'cookie: ')</i> and <b>Paste</b> here.</ol>"
- name: sort
type: select
label: Sort requested from site

View File

@@ -42,8 +42,8 @@
- {id: 27, cat: Other, desc: "Klipek"}
modes:
search: [q]
tv-search: [q, season, ep]
search: [q, imdbid]
tv-search: [q, season, ep, imdbid]
movie-search: [q, imdbid]
login:
@@ -61,13 +61,15 @@
paths:
- path: browse.php
inputs:
$raw: "{{range .Categories}}c{{.}}=1&{{end}}"
search: "{{if .Query.IMDBID}}{{ .Query.IMDBID }}{{else}}{{ .Query.Keywords }}{{end}}"
$raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{else}}{{ .Keywords }}{{end}}"
incldead: 1
rows:
selector: table#torrenttable > tbody > tr:has(a[href^="details.php?id="])
filters:
- name: andmatch
fields:
# download button can be disbled in the profile, use details link instead
# download:
@@ -156,3 +158,4 @@
args: ["tegnap", "yesterday"]
description:
selector: td:nth-child(2) > div
# engine tbd

View File

@@ -6,7 +6,7 @@
type: public
encoding: UTF-8
links:
- http://bitru.org/
- http://bitru.org/ # site forces http, https is not supported
caps:
categories:
@@ -84,8 +84,8 @@
- name: regexp
args: "src=(.*?) "
date:
# Сегодня в 09:09 от
# Вчера в 22:47 от
# Сегодня в 09:09 от
# Вчера в 22:47 от
selector: td:nth-child(2) div.b-info div span:nth-child(2):contains("Сегодня"), td:nth-child(2) div.b-info div span:nth-child(2):contains("Вчера")
optional: true
filters:
@@ -96,7 +96,7 @@
- name: replace
args: ["Вчера в", "Yesterday"]
date:
# 08 ноября 2019 в 23:53 от
# 08 ноября 2019 в 23:53 от
selector: td:nth-child(2) div.b-info div span:nth-child(2):not(:contains("Сегодня")):not(:contains("Вчера"))
optional: true
filters:
@@ -134,7 +134,7 @@
selector: td:nth-child(3)
filters:
- name: replace
args: ["ТБ", "TB"]
args: ["ТБ", "TB"]
- name: replace
args: ["ГБ", "GB"]
- name: replace
@@ -145,12 +145,12 @@
selector: td:nth-child(4)
filters:
- name: replace
args: ["?", "1"]
args: ["?", "1"]
leechers:
selector: td:nth-child(5)
selector: td:nth-child(5)
filters:
- name: replace
args: ["?", "0"]
args: ["?", "0"]
downloadvolumefactor:
text: 0
uploadvolumefactor:

View File

@@ -1,83 +0,0 @@
---
site: bittorrentam
name: Bittorrent.AM
description: "Bittorrent.AM is a Public torrent index"
language: en-us
type: public
encoding: UTF-8
links:
- http://www.bittorrent.am/
caps:
categorymappings:
- {id: 0, cat: XXX, desc: "Adult"}
- {id: 1, cat: TV/Anime, desc: "Anime / Hentai"}
- {id: 2, cat: PC, desc: "Apps"}
- {id: 3, cat: Console, desc: "Games"}
- {id: 4, cat: Movies, desc: "Movies"}
- {id: 5, cat: Audio, desc: "Music"}
- {id: 6, cat: Other, desc: "Other"}
- {id: 7, cat: TV, desc: "Series / TV Shows"}
modes:
search: [q]
tv-search: [q, season, ep]
movie-search: [q]
settings:
- name: sort
type: select
label: Sort requested from site
default: "pdd"
options:
"pdd": "created desc"
"pd": "created asc"
"sdsd": "seeders desc"
"sds": "seeders asc"
"szd": "size desc"
"sz": "size asc"
"td": "title desc"
"t": "title asc"
download:
selector: a[ href^="magnet:?xt="]
attribute: href
search:
paths:
- path: "{{ if .Keywords }}search.php?kwds={{ .Keywords }}&ord={{ .Config.sort }}&cat=100{{else}}/{{end}}"
rows:
selector: table.torrentsTable:has(tr.r) tbody tr.r
fields:
category:
text: 6
title:
selector: td:nth-child(3) a
details:
selector: td:nth-child(3) a
attribute: href
download:
selector: td:nth-child(3) a
attribute: href
date:
selector: td:nth-child(1)
filters:
- name: dateparse
args: "02 Jan 2006"
size:
selector: td:nth-child(4)
seeders:
selector: td:nth-child(5)
filters:
- name: replace
args: ["-", "1"]
leechers:
selector: td:nth-child(6)
filters:
- name: replace
args: ["-", "0"]
downloadvolumefactor:
text: 0
uploadvolumefactor:
text: 1
# engine n/a

View File

@@ -6,8 +6,8 @@
type: private
encoding: UTF-8
links:
- http://www.bitturk.net/
- http://www.bitturk.net/ # site does not support https ERR_CONNECTION_REFUSED
caps:
categorymappings:
- {id: 69, cat: Movies, desc: "BiTTuRK Altın"}
@@ -20,6 +20,7 @@
- {id: 67, cat: XXX, desc: "XxX"}
- {id: 68, cat: Movies, desc: "Dual (TR-~)"}
- {id: 58, cat: Movies, desc: "Film"}
- {id: 72, cat: Movies, desc: "Belgesel"}
- {id: 60, cat: Movies/3D, desc: "3D"}
- {id: 45, cat: Movies, desc: "Eğitim / Prog "}
- {id: 1, cat: Movies, desc: "Filmler"}
@@ -52,12 +53,12 @@
- {id: 50, cat: TV, desc: "Yab@ncı Dizi"}
- {id: 51, cat: TV, desc: "Yerli Dizi"}
- {id: 44, cat: Books, desc: "E-BooK"}
modes:
search: [q]
tv-search: [q, season, ep]
movie-search: [q]
settings:
- name: username
type: text
@@ -84,7 +85,7 @@
options:
"desc": "desc"
"asc": "asc"
login:
path: ?p=home&pid=1
method: form
@@ -106,11 +107,11 @@
test:
path: ?p=home&pid=1
selector: a[href*="/?p=logout&"]
search:
paths:
- path: /
keywordsfilters:
keywordsfilters:
- name: re_replace
args: ["[^a-zA-Z0-9]+", "%25"]
inputs:
@@ -145,7 +146,7 @@
attribute: href
date:
optional: true
# Uploaded 30-01-2019 15:02 by
# Uploaded 30-01-2019 15:02 by
selector: td.torrent_name:not(:contains(" at "))
filters:
- name: regexp

View File

@@ -1,4 +1,4 @@
---
---
site: bluebirdhd
name: BlueBird
description: "BlueBird is a RUSSIAN Private Torrent Tracker for HD MOVIES"

View File

@@ -13,20 +13,21 @@
- {id: 1, cat: Movies, desc: "Movies"}
- {id: 2, cat: TV, desc: "TV"}
- {id: 3, cat: Movies, desc: "FANRES"}
- {id: 6, cat: TV/Anime, desc: "Anime"}
- {id: 7, cat: Movies/Other, desc: "Trailer"}
modes:
search: [q]
search: [q, imdbid]
tv-search: [q, season, ep, imdbid]
movie-search: [q, imdbid]
settings:
- name: cookie
- name: username
type: text
label: Cookie
- name: info
type: info
label: How to get the Cookie
default: "<ol><li>Login to this tracker with your browser<li>Open the <b>DevTools</b> panel by pressing <b>F12</b><li>Select the <b>Network</b> tab<li>Click on the <b>Doc</b> button<li>Refresh the page by pressing <b>F5</b><li>Select the <b>Headers</b> tab<li>Find 'cookie:' in the <b>Request Headers</b> section<li>Copy & paste the whole cookie string to here.</ol>"
label: Username
- name: password
type: password
label: Password
- name: sort
type: select
label: Sort requested from site
@@ -45,13 +46,23 @@
"asc": "asc"
login:
method: cookie
path: login
method: form
form: form[action$="/login"]
inputs:
cookie: "{{ .Config.cookie }}"
test:
path: /
selector: a[href$="/logout"]
username: "{{ .Config.username }}"
password: "{{ .Config.password }}"
remember: on
selectorinputs:
_token:
selector: input[name="_token"]
attribute: value
error:
- selector: div#ERROR_COPY
# test:
# path: /
# selector: a[href$="/logout"]
ratio:
path: /
selector: li:has(i.fa-sync-alt)
@@ -125,7 +136,7 @@
filters:
# translations for Turkish|Estonian|Danish|Italian|Polish|Norwegian|Portuguese|Czech|Russian|Romanian|Spanish|French|German|Bulgarian|Dutch|Chinese
- name: re_replace
args: ["(?i)(önce|tagasi|geleden|fa|temu|siden|atrás|nazpět|назад|acum|în urmă|hace|il y a|vor|преди|前)", " ago"]
args: ["(?i)(önce|tagasi|geleden|fa|temu|siden|há|atrás|nazpět|назад|acum|în urmă|hace|il y a|vor|преди|前)", " ago"]
- name: re_replace
args: ["(?i)(minutit|minutter|minuti|minuty|minutos|минуты|минут|Minuten|минути|minuten)", "minutes"]
- name: re_replace

View File

@@ -1,4 +1,4 @@
---
---
site: booktracker
name: BookTracker
description: "BookTracker is a RUSSIAN Semi-Private Torrent Tracker for EBOOKS"

View File

@@ -0,0 +1,133 @@
---
site: boxingtorrents
name: Boxing Torrents
description: "Boxing Torrents is a Private Torrent Tracker for BOXING"
language: en-us
type: private
encoding: UTF-8
links:
- https://tc-boxing.com/
caps:
categorymappings:
- {id: 15, cat: TV/Sport, desc: "3D"}
- {id: 9, cat: TV/Sport, desc: "Amateur - Full"}
- {id: 16, cat: TV/Sport, desc: "Blu-ray"}
- {id: 13, cat: TV/Sport, desc: "Career Set"}
- {id: 8, cat: TV/Sport, desc: "DVD"}
- {id: 10, cat: TV/Sport, desc: "Foreign - Excellent"}
- {id: 11, cat: TV/Sport, desc: "Foreign - Fair"}
- {id: 6, cat: TV/Sport, desc: "Foreign - Good"}
- {id: 12, cat: TV/Sport, desc: "Foreign - Poor"}
- {id: 1, cat: TV/Sport, desc: "Full - Excellent"}
- {id: 3, cat: TV/Sport, desc: "Full - Fair"}
- {id: 2, cat: TV/Sport, desc: "Full - Good"}
- {id: 4, cat: TV/Sport, desc: "Full - Poor"}
- {id: 14, cat: TV/Sport, desc: "HD"}
- {id: 7, cat: TV/Sport, desc: "Misc"}
modes:
search: [q]
tv-search: [q, season, ep]
settings:
- name: username
type: text
label: Username
- name: password
type: password
label: Password
- name: sort
type: select
label: Sort requested from site
default: "added"
options:
"added": "created"
"seeders": "seeders"
"size": "size"
"name": "title"
- name: type
type: select
label: Order requested from site
default: "DESC"
options:
"DESC": "desc"
"ASC": "asc"
- name: info_download
type: info
label: "Download Restrictions"
default: "You must have uploaded at least 10GB before you are able to access all torrent sizes. Until then, you are restricted to torrents no larger than 2.5GB."
login:
path: takelogin.php
method: post
inputs:
username: "{{ .Config.username }}"
password: "{{ .Config.password }}"
error:
- selector: td.embedded:contains("Login failed!")
test:
path: browse.php
selector: a[href="logout.php"]
download:
selector: a[href^="download.php"]
attribute: href
search:
paths:
# https://tc-boxing.com/browse.php?c16=1&c8=1&c14=1&incldead=1
# https://tc-boxing.com/browse.php?search=tyson&cat=0&incldead=1
- path: browse.php
inputs:
$raw: "{{ if .Categories }}{{ range .Categories }}c{{.}}=1&{{end}}{{else}}cat=0{{end}}"
# 0 active 1 incldead 2 onlydead
incldead: 1
search: "{{ .Keywords }}"
sort: "{{ .Config.sort }}"
d: "{{ .Config.type }}"
rows:
selector: table[border="1"][cellspacing="0"][cellpadding="5"] tr:has(a[href^="details.php?id="])
fields:
category:
selector: a[href^="browse.php?cat="]
attribute: href
filters:
- name: querystring
args: cat
title:
selector: a[href^="details.php?id="]
details:
selector: a[href^="details.php?id="]
attribute: href
download:
selector: a[href^="details.php?id="]
attribute: href
files:
selector: td:nth-last-child(8)
date:
selector: td:nth-last-child(6)
filters:
- name: dateparse
args: "2006-01-0215:04:05"
size:
selector: td:nth-last-child(5)
grabs:
selector: td:nth-last-child(4)
filters:
- name: regexp
args: (\d+)
seeders:
selector: td:nth-last-child(3)
leechers:
selector: td:nth-last-child(2)
downloadvolumefactor:
case:
"b:contains(\"FreeLeech\")": 0
"*": 1
uploadvolumefactor:
text: 1
# engine n/a

View File

@@ -6,6 +6,8 @@
type: private
encoding: UTF-8
links:
- https://broadcity.in/
legacylinks:
- http://broadcity.in/
caps:

View File

@@ -15,7 +15,7 @@
- {id: 410, cat: TV, desc: "TV Series/剧集"}
modes:
search: [q]
search: [q, imdbid]
tv-search: [q, season, ep, imdbid]
movie-search: [q, imdbid]
@@ -26,7 +26,7 @@
- name: info
type: info
label: How to get the Cookie
default: "<ol><li>Login to this tracker in your browser<li>Open the <b>DevTools</b> panel by pressing <b>F12</b><li>Select the <b>Network</b> tab<li>Click on the <b>Doc</b> button<li>Refresh the page by pressing <b>F5</b><li>Select the <b>Headers</b> tab<li>Find 'cookie:' in the <b>Request Headers</b> section<li>Copy & paste the whole cookie string to here</ol>"
default: "<ol><li>Login to this tracker with your browser<li>Open the <b>DevTools</b> panel by pressing <b>F12</b><li>Select the <b>Network</b> tab<li>Click on the <b>Doc</b> button<li>Refresh the page by pressing <b>F5</b><li>Select the <b>Headers</b> tab<li>Find <b>'cookie:'</b> in the <b>Request Headers</b> section<li><b>Select</b> and <b>Copy</b> the whole cookie string <i>(everything after 'cookie: ')</i> and <b>Paste</b> here.</ol>"
- name: sort
type: select
label: Sort requested from site
@@ -43,7 +43,7 @@
options:
"desc": "desc"
"asc": "asc"
login:
method: cookie
inputs:
@@ -86,7 +86,7 @@
args: cat
details:
selector: a[href^="details.php?id="]
attribute: href
attribute: href
download:
selector: a[href^="download.php?id="]
attribute: href

View File

@@ -5,12 +5,20 @@
language: en-us
type: public
encoding: UTF-8
followredirect: true
links:
- https://btdb.io/
- https://btdb.io/
- https://btdb.unblockit.one/ # redirects to btdb.io in browser but appears to have no issue in Jackett
- https://btdb.black-mirror.xyz/
- https://btdb.unblocked.casa/
- https://btdb.proxyportal.fun/
- https://btdb.uk-unblock.xyz/
- https://btdb.ind-unblock.xyz/
legacylinks:
- https://btdb.to/
- https://btdb.unblocked.app/
- https://btdb.eu/
- https://btdb.to/
- https://btdb.unblocked.app/
- https://btdb.eu/
- https://btdb.unblockit.pro/
caps:
categorymappings:
@@ -50,13 +58,15 @@
category:
text: 1
title:
selector: a[href^="/torrent/"]
selector: a[href*="/torrent/"]
details:
selector: a[href^="/torrent/"]
selector: a[href*="/torrent/"]
attribute: href
download:
# download can be missing despite icon being present. Fortunately the magnet is always there
selector: a[href$=".torrent"]
attribute: href
optional: true
magnet:
selector: a[href^="magnet:?xt="]
attribute: href

View File

@@ -20,7 +20,7 @@
settings:
- name: info
type: info
default: BTDigg does not use categories. In your software Indexer settings, set the category to 100001.
default: BTDigg does not use categories. In your software Indexer settings, set the category to 7000.
- name: sort
type: select
label: Sort requested from site

View File

@@ -20,7 +20,7 @@
settings:
- name: info
type: info
default: BTeye does not use categories. In your software Indexer settings, set the category to 100001.
default: BTeye does not use categories. In your software Indexer settings, set the category to 7000.
download:
selector: a[href^="magnet:?xt="]

View File

@@ -7,6 +7,17 @@
encoding: ISO-8859-2
links:
- https://btgigs.info/
settings:
- name: username
type: text
label: Username
- name: password
type: password
label: Password
- name: lang
type: checkbox
label: Add POLISH to title if is in polish category
default: false
caps:
categorymappings:
@@ -30,6 +41,7 @@
- {id: 26, cat: Other, desc: "Rozne"}
- {id: 30, cat: TV/Sport, desc: "Sport"}
- {id: 6, cat: TV, desc: "TV/Seriale"}
- {id: 37, cat: TV/UHD, desc: "TV/UHD"}
- {id: 29, cat: PC, desc: "Witaminki"}
- {id: 9, cat: XXX, desc: "XXX"}
@@ -49,11 +61,13 @@
- selector: td.embedded:has(h2:contains("Error"))
test:
selector: a[href^="logout.php"]
path: browse.php
path: index.php?news=1
search:
paths:
- path: browse.php
error:
- selector: a.altlink
inputs:
$raw: "{{range .Categories}}c{{.}}=1&{{end}}"
search: "{{ .Query.Keywords }}"
@@ -64,8 +78,21 @@
rows:
selector: table[border="1"][cellpadding=5] > tbody > tr:has(a[href^="details.php?id="])
fields:
title:
is_polish: #Workaround: https://github.com/Jackett/Jackett/issues/8068#issuecomment-610222414
text: ""
is_polish:
optional: true
selector: img[src*="cat_pl"]
attribute: src
title_phase1:
selector: a[href^="details.php?id="]
title_polish:
text: "{{ .Result.title_phase1 }}"
filters:
- name: append
args: " POLISH"
title:
text: "{{ if and (.Config.lang) (.Result.is_polish) }}{{ .Result.title_polish }}{{else}}{{ .Result.title_phase1 }}{{end}}"
details:
selector: a[href^="details.php?id="]
attribute: href
@@ -77,7 +104,7 @@
args: cat
download:
selector: a[href^="download.php/"]
attribute: href
attribute: href
description:
optional: true
selector: img[src^="/pic/cat_pl/"]

View File

@@ -1,4 +1,4 @@
---
---
site: btnext
name: BTNext
description: "BTNext (BTNT) is a PORTUGUESE Private Torrent Tracker for 0DAY / GENERAL"
@@ -6,8 +6,7 @@
type: private
encoding: UTF-8
links:
- http://tracker.btnext.com/
# note: the site forces http, https is not supported
- http://tracker.btnext.com/ # site forces http, https is not supported
caps:
categorymappings:
@@ -25,7 +24,10 @@
- {id: 16, cat: Movies/SD, desc: "Movies CAM"}
- {id: 74, cat: Movies/DVD, desc: "Movies DvD-R"}
- {id: 76, cat: Movies, desc: "Movies Packs"}
- {id: 91, cat: Movies/Other, desc: "Movies Kids"}
- {id: 115, cat: Movies/Other, desc: "Movies Kids"}
- {id: 91, cat: Movies/Other, desc: "Movies Kids Inglês"}
- {id: 113, cat: Movies/Other, desc: "Movies Kids PT-BR"}
- {id: 114, cat: Movies/Other, desc: "Movies Kids PT-PT"}
- {id: 77, cat: Movies/WEBDL, desc: "Movies WEB-DL"}
- {id: 85, cat: Movies/DVD, desc: "Movies Custom-DVDR"}
- {id: 14, cat: Movies/SD, desc: "Movies DVDRip/XViD"}
@@ -50,13 +52,14 @@
- {id: 7, cat: Audio, desc: "Music"}
- {id: 20, cat: Audio/Video, desc: "Music MVideo"}
- {id: 21, cat: Audio/MP3, desc: "Music MP3"}
- {id: 33, cat: Audio/Other, desc: "Music MP4"}
- {id: 33, cat: Audio/Video, desc: "Music MP4"}
- {id: 32, cat: Audio/Lossless, desc: "Music FLAC"}
- {id: 2, cat: Console, desc: "Games"}
- {id: 78, cat: PC/Games, desc: "Games Linux"}
- {id: 79, cat: PC/Mac, desc: "Games MacOSX"}
- {id: 28, cat: Console/NDS, desc: "Games Nintendo DS"}
- {id: 27, cat: PC/Games, desc: "Games PC/Windows"}
- {id: 111, cat: Console, desc: "Games Nintendo Sw"}
- {id: 80, cat: Console/PS3, desc: "Games PS2"}
- {id: 81, cat: Console/PS3, desc: "Games PS3"}
- {id: 82, cat: Console/PS4, desc: "Games PS4"}
@@ -71,10 +74,10 @@
- {id: 34, cat: PC/ISO, desc: "Applications Linux"}
- {id: 44, cat: Other, desc: "Miscellaneous"}
- {id: 54, cat: Audio/Audiobook, desc: "Books Audiobook"}
- {id: 57, cat: Books, desc: "Books E-Books"}
- {id: 57, cat: Books/Ebook, desc: "Books E-Books"}
- {id: 58, cat: Books/Comics, desc: "Books Comics"}
- {id: 59, cat: Books, desc: "Books Educational"}
- {id: 60, cat: Books, desc: "Books Magazines/Journals"}
- {id: 60, cat: Books/Magazines, desc: "Books Magazines/Journals"}
- {id: 61, cat: Other, desc: "Pics/Wallpapers"}
- {id: 62, cat: PC/Phone-Android, desc: "Android"}
- {id: 63, cat: PC/Phone-IOS, desc: "iOS"}
@@ -93,9 +96,9 @@
- {id: 69, cat: XXX/Imageset, desc: "XXX-Pics/Wallpapers"}
modes:
search: [q]
tv-search: [q, season, ep]
movie-search: [q]
search: [q, imdbid]
tv-search: [q, season, ep, imdbid]
movie-search: [q, imdbid]
settings:
- name: username
@@ -123,6 +126,10 @@
options:
"desc": "desc"
"asc": "asc"
- name: info_results
type: info
label: Search results
default: "If you get 0 results check the log for error: <b>An error has occurred!You can't view this page unless you read all your unread messages</b>, then access the site with your browser and <b>mark as read</b> all PMs."
login:
path: ?p=home&pid=1
@@ -149,16 +156,16 @@
search:
paths:
- path: /
keywordsfilters:
keywordsfilters:
- name: re_replace
args: ["[^a-zA-Z0-9]+", "%25"]
inputs:
p: torrents
pid: 32
$raw: "{{ range .Categories }}cid[]={{.}}&{{end}}"
keywords: "{{ .Keywords }}"
search_type: name
searchin: title
keywords: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{else}}{{ .Keywords }}{{end}}"
# name , description , both , uploader
search_type: "{{ if .Query.IMDBID }}description{{else}}name{{end}}"
"sortOptions[sortBy]": "{{ .Config.sort }}"
"sortOptions[sortOrder]": "{{ .Config.type }}"
error:
@@ -194,28 +201,62 @@
selector: a[rel="fancybox"]
optional: true
attribute: href
imdb:
# a href="http://tracker.btnext.com/data/torrents/imdb/tt0249677.jpg"
optional: true
selector: a[href*="/imdb/tt"]
attribute: href
filters:
- name: regexp
args: "imdb/(.+?).jpg"
- name: prepend
args: "https://www.imdb.com/title/"
downloadvolumefactor:
case:
"img[title=\"FREE!\"]": 0
"*": 1
uploadvolumefactor:
case:
"*": 1
text: 1
date:
selector: td.torrent_name > abbr.timeago
optional: true
attribute: data-time
date:
selector: td.torrent_name:not(:has(abbr.timeago))
selector: td.torrent_name:not(:has(abbr.timeago)):not(:contains("day")):not(:contains("Domingo")):not(:contains("Sábado")):not(:contains("Sexta")):not(:contains("Quinta")):not(:contains("Quarta")):not(:contains("Terça")):not(:contains("Segunda")):not(:contains("ontem")):not(:contains("Hoje"))
optional: true
remove: span, a, br
filters:
- name: replace
args: ["Enviado ", ""] # Uploaded
- name: replace
args: ["Uploaded ", ""]
- name: replace
args: [" por", ""] # by
- name: replace
args: [" by", ""]
- name: replace
args: ["às ", ""] # at
- name: replace
args: ["at ", ""]
- name: dateparse
args: "02-01-2006 15:04"
date:
selector: td.torrent_name:not(:has(abbr.timeago)):contains("day"), td.torrent_name:not(:has(abbr.timeago)):contains("Domingo"), td.torrent_name:not(:has(abbr.timeago)):contains("Sábado"), td.torrent_name:not(:has(abbr.timeago)):contains("Quinta"), td.torrent_name:not(:has(abbr.timeago)):contains("Sexta"), td.torrent_name:not(:has(abbr.timeago)):contains("Quarta"), td.torrent_name:not(:has(abbr.timeago)):contains("Terça"), td.torrent_name:not(:has(abbr.timeago)):contains("Segunda"), td.torrent_name:not(:has(abbr.timeago)):contains("ontem"), td.torrent_name:not(:has(abbr.timeago)):contains("Hoje")
optional: true
remove: span, a, br
filters:
- name: replace
args: ["Enviado ", ""] # Uploaded
- name: replace
args: ["Uploaded ", ""]
- name: replace
args: [" por", ""] # by
- name: replace
args: [" by", ""]
- name: replace
args: ["às ", ""] # at
- name: replace
args: ["at ", ""]
- name: replace
args: ["Hoje", "Today"]
- name: replace
@@ -234,6 +275,5 @@
args: ["Sábado", "Saturday"]
- name: replace
args: ["Domingo", "Sunday"]
- name: dateparse
args: "02-01-2006 15:04"
- name: fuzzytime
# TSUE 2.2

View File

@@ -1,4 +1,4 @@
---
---
site: btschool
name: BTSCHOOL
description: "BTSCHOOL is a CHINESE Private Torrent Tracker for MOVIES / TV / GENERAL"
@@ -23,7 +23,7 @@
- {id: 415, cat: Other, desc: "其他/Other"}
modes:
search: [q]
search: [q, imdbid]
tv-search: [q, season, ep, imdbid]
movie-search: [q, imdbid]
@@ -34,7 +34,7 @@
- name: info
type: info
label: How to get the Cookie
default: "<ol><li>Login to this tracker in your browser<li>Open the <b>DevTools</b> panel by pressing <b>F12</b><li>Select the <b>Network</b> tab<li>Click on the <b>Doc</b> button<li>Refresh the page by pressing <b>F5</b><li>Select the <b>Headers</b> tab<li>Find 'cookie:' in the <b>Request Headers</b> section<li>Copy & paste the whole cookie string to here</ol>"
default: "<ol><li>Login to this tracker with your browser<li>Open the <b>DevTools</b> panel by pressing <b>F12</b><li>Select the <b>Network</b> tab<li>Click on the <b>Doc</b> button<li>Refresh the page by pressing <b>F5</b><li>Select the <b>Headers</b> tab<li>Find <b>'cookie:'</b> in the <b>Request Headers</b> section<li><b>Select</b> and <b>Copy</b> the whole cookie string <i>(everything after 'cookie: ')</i> and <b>Paste</b> here.</ol>"
login:
method: cookie
@@ -78,7 +78,7 @@
attribute: title
details:
selector: a[title][href^="details.php?id="]
attribute: href
attribute: href
download:
selector: a[href^="download.php?id="]
attribute: href

View File

@@ -6,9 +6,10 @@
type: public
encoding: UTF-8
links:
- https://btio.pw/
- https://btsow.club/
legacylinks:
- https://btos.pw/
- https://btio.pw/
caps:
categories:
@@ -27,7 +28,7 @@
search:
paths:
- path: "search/{{ if .Keywords }}{{ .Keywords }}{{else}}2019{{end}}"
- path: "search/{{ if .Keywords }}{{ .Keywords }}{{else}}{{ .Today.Year }}{{end}}"
rows:
selector: div.row:has(a[href*="/detail/hash/"])
fields:

View File

@@ -1,4 +1,4 @@
---
---
site: carpathians
name: Carpathians
description: "Carpathians is a HUNGARIAN Private Torrent Tracker for 0DAY / GENERAL"
@@ -38,9 +38,33 @@
- {id: 110, cat: XXX, desc: "XXX"}
modes:
search: [q]
tv-search: [q, season, ep]
movie-search: [q]
search: [q, imdbid]
tv-search: [q, season, ep, imdbid]
movie-search: [q, imdbid]
settings:
- name: username
type: text
label: Username
- name: password
type: password
label: Password
- name: sort
type: select
label: Sort requested from site
default: "5"
options:
"5": "created"
"8": "seeders"
"6": "size"
"2": "title"
- name: type
type: select
label: Order requested from site
default: "desc"
options:
"desc": "desc"
"asc": "asc"
login:
path: takelogin.php
@@ -55,13 +79,18 @@
paths:
- path: browse.php
inputs:
$raw: "{{range .Categories}}c{{.}}=1&{{end}}"
search: "{{ .Keywords }}"
$raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
search: "{{ if .Query.IMDBID }}https://www.imdb.com/title/{{ .Query.IMDBID }}{{else}}{{ .Keywords }}{{end}}"
# 0 both 1 only active 2 only dead
incldead: 0
onlyname: 1
onlyname2: true
sort: "{{ .Config.sort }}"
type: "{{ .Config.type }}"
rows:
selector: table[id!="torrent_ajanlo"] > tbody > tr[id]
fields:
download:
selector: a[href^="download.php/"]
@@ -84,7 +113,7 @@
selector: a[id][href^="details.php?"]
attribute: href
imdb:
selector: a[href*="https://www.imdb.com/title/"]
selector: a[href*="www.imdb.com/title/tt"]
optional: true
attribute: href
banner:
@@ -99,7 +128,7 @@
selector: td:nth-child(7)
filters:
- name: regexp
args: ([\d\.]+)
args: (\d+)
seeders:
selector: td:nth-child(8)
leechers:
@@ -123,9 +152,10 @@
args: ["hete", "week"]
- name: timeago
downloadvolumefactor:
case:
"*": "1"
text: 1
uploadvolumefactor:
case:
img[src="pic/double.png"]: "2"
"*": "1"
img[src="pic/double.png"]: 2
img[src="pic/doubledouble2.png"]: 4
"*": 1
# TBDev & XBTT

View File

@@ -1,4 +1,4 @@
---
---
site: cartoonchaos
name: CartoonChaos
description: "CartoonChaos (CC) is a Private Torrent Tracker for ANIMATED MOVIES / TV"
@@ -6,7 +6,7 @@
type: private
encoding: UTF-8
links:
- http://www.cartoonchaos.org/
- http://www.cartoonchaos.org/ # site does not support https NET::ERR_CERT_AUTHORITY_INVALID
settings:
- name: username
@@ -59,6 +59,7 @@
search: [q, imdbid]
tv-search: [q, season, ep, imdbid]
movie-search: [q, imdbid]
music-search: [q]
login:
path: index.php?page=login
@@ -81,8 +82,9 @@
page: torrents
search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{else}}{{ .Keywords }}{{end}}"
category: "{{ if .Categories }}{{ range .Categories }}{{.}};{{end}}{{else}}0{{end}}"
# options: 0=title, 1=title&descr, 2=descr
options: "{{ if .Query.IMDBID }}1{{else}}0{{end}}"
# 0=title, 1=title&descr, 2=descr
options: "{{ if .Query.IMDBID }}2{{else}}0{{end}}"
# 0 all 1 activeonly 2 deadonly
active: 0
order: "{{ .Config.sort }}"
by: "{{ .Config.type }}"
@@ -115,6 +117,14 @@
args: [" http://anonym.to?javascript:popdetails('", ""]
- name: replace
args: ["');", ""]
banner:
selector: td a[href^="index.php?page=torrent-details"]
attribute: onmouseover
filters:
- name: regexp
args: "src=(.+?) width"
- name: replace
args: ["torrentimg/nocover.jpg", ""]
size:
selector: td:nth-child(10)
# two flavours of dates
@@ -146,4 +156,4 @@
"*": 1
uploadvolumefactor:
text: 1
# xbtit 2.0.0
# xbtit 2.0.0

View File

@@ -1,4 +1,4 @@
---
---
site: casatorrent
name: Casa-Torrent
description: "Casa-Torrent is a FRENCH Private Torrent Tracker for MOVIES / TV / GENERAL"
@@ -6,10 +6,11 @@
type: private
encoding: UTF-8
links:
- https://teamctgame.xyz/
- https://tctg.in/
legacylinks:
- https://teamctgame.co/
- http://teamctgame.xyz/
- https://teamctgame.xyz/
caps:
categorymappings:
@@ -162,7 +163,7 @@
attribute: onmouseover
filters:
- name: regexp
args: "le: </b>(.*?)<br"
args: "le: </b>(.*?)<br"
- name: dateparse
args: "02-01-2006"
downloadvolumefactor:

View File

@@ -1,4 +1,4 @@
---
---
site: casstudiotv
name: CasStudioTV
description: "CasStudioTV is a RUSSIAN Semi-Private Torrent Tracker for TV"
@@ -273,7 +273,7 @@
- path: search.php
inputs:
tracker_search: torrent
keywords: "{{ if .Keywords }}{{ .Keywords }}{{else}}2019{{end}}"
keywords: "{{ if .Keywords }}{{ .Keywords }}{{else}}{{ .Today.Year }}{{end}}"
terms: all
author: ""
sc: 1
@@ -308,7 +308,7 @@
selector: a[href^="./viewforum.php?f="] + b
filters:
- name: replace
args: ["ТБ", "TB"]
args: ["ТБ", "TB"]
- name: replace
args: ["ГБ", "GB"]
- name: replace

View File

@@ -42,9 +42,33 @@
- {id: 22, cat: Other, desc: "杂项"}
modes:
search: [q]
tv-search: [q, season, ep]
movie-search: [q]
search: [q, imdbid]
tv-search: [q, season, ep, imdbid]
movie-search: [q, imdbid]
settings:
- name: username
type: text
label: Username
- name: password
type: password
label: Password
- name: sort
type: select
label: Sort requested from site
default: "added"
options:
"added": "created"
"seeders": "seeders"
"size": "size"
"name": "title"
- name: type
type: select
label: Order requested from site
default: "DESC"
options:
"DESC": "desc"
"ASC": "asc"
login:
path: takelogin.php
@@ -60,13 +84,14 @@
search:
paths:
- path: browse.php
method: get
inputs:
$raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
search: "{{ .Keywords }}"
search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{else}}{{ .Keywords }}{{end}}"
# 0 active 1 incldead 2 deadonly
incldead: 1
sort: added
d: DESC
fullsearch: "{{ if .Query.IMDBID }}1{{else}}{{end}}"
sort: "{{ .Config.sort }}"
d: "{{ .Config.sort }}"
rows:
selector: table[border="1"][cellpadding="5"] > tbody > tr:has(a[href^="details.php?id="])
@@ -86,7 +111,7 @@
args: cat
details:
selector: a[href^="details.php?id="]
attribute: href
attribute: href
download:
selector: a[href^="download.php/"]
attribute: href
@@ -122,7 +147,10 @@
"*": 1
uploadvolumefactor:
case:
"font:has([src=\"/pic/arrowup1.gif\"]):contains(\"1.5x\")": 1.5
"font:has([src=\"/pic/arrowup1.gif\"]):contains(\"2x\")": 2
"*": 1
description:
selector: td:nth-child(2) > table > tbody > tr:nth-child(2)
remove: a, img
# Discuz! 7.2

View File

@@ -18,7 +18,7 @@
- {id: 4, cat: TV/Sport, desc: "Sports"}
modes:
search: [q]
search: [q, imdbid]
tv-search: [q, season, ep, imdbid]
movie-search: [q, imdbid]
@@ -49,17 +49,20 @@
login:
path: login
method: form
form: form[action$="/login"]
inputs:
username: "{{ .Config.username }}"
password: "{{ .Config.password }}"
remember: on
selectorinputs:
_token:
selector: input[name="_token"]
attribute: value
error:
- selector: script[nonce]:contains("Error")
message:
selector: script[nonce]:contains("Error")
test:
path: /
selector: a[href$="/logout"]
- selector: div#ERROR_COPY
# test:
# path: /
# selector: a[href$="/logout"]
ratio:
path: /
@@ -85,8 +88,10 @@
sort: "{{ .Config.sort }}"
direction: "{{ .Config.type }}"
qty: 100
rows:
selector: table > tbody > tr
fields:
category:
selector: a[href*="/categories/"]
@@ -132,7 +137,7 @@
filters:
# translations for Turkish|Estonian|Danish|Italian|Polish|Norwegian|Portuguese|Czech|Russian|Romanian|Spanish|French|German|Bulgarian|Dutch|Chinese
- name: re_replace
args: ["(?i)(önce|tagasi|geleden|fa|temu|siden|atrás|nazpět|назад|acum|în urmă|hace|il y a|vor|преди|前)", " ago"]
args: ["(?i)(önce|tagasi|geleden|fa|temu|siden|há|atrás|nazpět|назад|acum|în urmă|hace|il y a|vor|преди|前)", " ago"]
- name: re_replace
args: ["(?i)(minutit|minutter|minuti|minuty|minutos|минуты|минут|Minuten|минути|minuten)", "minutes"]
- name: re_replace
@@ -177,4 +182,4 @@
i[class*="fa-globe text-green"]: 2 # Global Double Upload
i[class*="fa-certificate text-pink"]: 2 # Featured Torrent
"*": 1
# UNIT3D 2.2.5
# UNIT3D 2.2.7

View File

@@ -45,7 +45,6 @@
search:
paths:
- path: torrents.php
method: post
inputs:
$raw: "{{range .Categories}}cat{{.}}=1&{{end}}"
search: "{{ .Query.Keywords }}"
@@ -67,7 +66,7 @@
args: cat
details:
selector: a[href^="details.php?id="]
attribute: href
attribute: href
download:
selector: a[href^="download.php?id="]
attribute: href

View File

@@ -1,29 +1,29 @@
---
site: greeklegends
name: GreekLegends
description: "Greek Legends is a Private Torrent Tracker for High Quality Content"
language: en-us
site: chilebt
name: ChileBT
description: "ChileBT is a CHILEAN Private Torrent Tracker for MOVIES / TV / GENERAL"
language: es-419
type: private
encoding: UTF-8
links:
- https://greeklegends.net/
- https://chilebt.com/
caps:
categorymappings:
- {id: 1, cat: Movies, desc: "Movies"}
- {id: 2, cat: TV, desc: "TV"}
- {id: 3, cat: Audio, desc: "Music"}
- {id: 4, cat: PC, desc: "Apps"}
- {id: 5, cat: Books, desc: "Books"}
- {id: 6, cat: Console, desc: "Games"}
- {id: 7, cat: TV/Documentary, desc: "Documentaries"}
- {id: 8, cat: PC/Phone-Other, desc: "Mobile Apps"}
- {id: 9, cat: Other/Misc, desc: "misc"}
- {id: 10, cat: TV/Sport, desc: "Sports"}
- {id: 11, cat: TV/Anime, desc: "Anime/Cartoon"}
- {id: 10, cat: Movies, desc: "Movies"}
- {id: 11, cat: TV, desc: "TV"}
- {id: 9, cat: Audio, desc: "Music"}
- {id: 7, cat: Other, desc: "Cultura / Educativos"}
- {id: 8, cat: PC/Games, desc: "Juegos"}
- {id: 6, cat: Books, desc: "EBook"}
- {id: 4, cat: TV/Anime, desc: "Anime"}
- {id: 5, cat: PC/0day, desc: "Aplicaciones / Programas"}
- {id: 14, cat: Movies, desc: "Infantil"}
- {id: 12, cat: Other/Misc, desc: "VIP"}
- {id: 13, cat: XXX, desc: "XXX"}
modes:
search: [q]
search: [q, imdbid]
tv-search: [q, season, ep, imdbid]
movie-search: [q, imdbid]
@@ -54,17 +54,22 @@
login:
path: login
method: form
form: form[action$="/login"]
inputs:
username: "{{ .Config.username }}"
password: "{{ .Config.password }}"
remember: on
selectorinputs:
_token:
selector: input[name="_token"]
attribute: value
error:
- selector: script[nonce]:contains("Error")
message:
selector: script[nonce]:contains("Error")
test:
path: /
selector: a[href$="/logout"]
# test:
# path: /
# selector: a[href$="/logout"]
ratio:
path: /
@@ -75,7 +80,7 @@
search:
paths:
- path: torrents/filter
- path: filterTorrents
inputs:
$raw: "{{ range .Categories }}categories[]={{.}}&{{end}}"
search: "{{ if .Query.IMDBID }}{{else}}{{ .Keywords }}{{end}}"
@@ -85,7 +90,6 @@
tvdb: ""
tmdb: ""
mal: ""
igdb: ""
sorting: "{{ .Config.sort }}"
sort: "{{ .Config.sort }}"
direction: "{{ .Config.type }}"
@@ -100,7 +104,7 @@
attribute: href
filters:
- name: regexp
args: "/categories/(\\d+)"
args: "/categories/.*?\\.(\\d+)"
title:
selector: a.view-torrent
download:
@@ -139,7 +143,7 @@
filters:
# translations for Turkish|Estonian|Danish|Italian|Polish|Norwegian|Portuguese|Czech|Russian|Romanian|Spanish|French|German|Bulgarian|Dutch|Chinese
- name: re_replace
args: ["(?i)(önce|tagasi|geleden|fa|temu|siden|atrás|nazpět|назад|acum|în urmă|hace|il y a|vor|преди|前)", " ago"]
args: ["(?i)(önce|tagasi|geleden|fa|temu|siden|há|atrás|nazpět|назад|acum|în urmă|hace|il y a|vor|преди|前)", " ago"]
- name: re_replace
args: ["(?i)(minutit|minutter|minuti|minuty|minutos|минуты|минут|Minuten|минути|minuten)", "minutes"]
- name: re_replace
@@ -184,4 +188,4 @@
i[class*="fa-globe text-green"]: 2 # Global Double Upload
i[class*="fa-certificate text-pink"]: 2 # Featured Torrent
"*": 1
# UNIT3D 2.2.7
# UNIT3D 1.9.3

View File

@@ -6,9 +6,10 @@
type: public
encoding: UTF-8
links:
- http://www.cilijj.xyz/
- https://www.cilijj.xyz/
legacylinks:
- http://www.cili180.com/
- http://www.cilijj.xyz/
caps:
categories:
@@ -27,7 +28,7 @@
method: post
followredirect: true
inputs:
keyword: "{{ if .Keywords }}{{ .Keywords }}{{else}}2019{{end}}"
keyword: "{{ if .Keywords }}{{ .Keywords }}{{else}}{{ .Today.Year }}{{end}}"
rows:
selector: div.list-area > dl.item

View File

@@ -6,6 +6,8 @@
type: private
encoding: UTF-8
links:
- https://cinemageddon.net/
legacylinks:
- http://cinemageddon.net/
caps:
@@ -45,7 +47,7 @@
- selector: table:contains("Login failed!")
test:
path: index.php
search:
paths:
- path: browse.php
@@ -94,4 +96,4 @@
"*": "1"
uploadvolumefactor:
case:
"*": "1"
"*": "1"

View File

@@ -31,9 +31,9 @@
- {id: 21, cat: Books, desc: "Book"}
modes:
search: [q]
tv-search: [q, season, ep]
movie-search: [q]
search: [q, imdbid]
tv-search: [q, season, ep, imdbid]
movie-search: [q, imdbid]
settings:
- name: cookie
@@ -42,7 +42,7 @@
- name: info
type: info
label: How to get the Cookie
default: "<ol><li>Login to this tracker with your browser<li>Open the <b>DevTools</b> panel by pressing <b>F12</b><li>Select the <b>Network</b> tab<li>Click on the <b>Doc</b> button<li>Refresh the page by pressing <b>F5</b><li>Select the <b>Headers</b> tab<li>Find 'cookie:' in the <b>Request Headers</b> section<li>Copy & paste the whole cookie string to here.</ol>"
default: "<ol><li>Login to this tracker with your browser<li>Open the <b>DevTools</b> panel by pressing <b>F12</b><li>Select the <b>Network</b> tab<li>Click on the <b>Doc</b> button<li>Refresh the page by pressing <b>F5</b><li>Select the <b>Headers</b> tab<li>Find <b>'cookie:'</b> in the <b>Request Headers</b> section<li><b>Select</b> and <b>Copy</b> the whole cookie string <i>(everything after 'cookie: ')</i> and <b>Paste</b> here.</ol>"
- name: sort
type: select
label: Sort requested from site
@@ -67,17 +67,19 @@
test:
path: index.php
selector: a[href^="/logout.php"]
search:
paths:
- path: browse.php
inputs:
$raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
search: "{{ .Keywords }}"
search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{else}}{{ .Keywords }}{{end}}"
# 0 onlyactive 1 all 4 requests 5 onlydead 6 polish 8 free 10 doubleup 11 premier 13 VOD
incldead: 1
# 0 title 1 descr
blah: 0
blah: "{{ if .Query.IMDBID }}1{{else}}0{{end}}"
gatunek: 0
quality: none
sort: "{{ .Config.sort }}"
type: "{{ .Config.type }}"
@@ -98,13 +100,17 @@
attribute: href
download:
selector: a[href^="download.php/"]
attribute: href
attribute: href
banner:
selector: a[href^="details.php?id="]
attribute: onmouseover
filters:
- name: regexp
args: "src=(.+?) "
imdb:
optional: true
selector: a[href*="www.imdb.com/title/tt"]
attribute: href
description:
optional: true
selector: img[src="pic/Poland.png"]

View File

@@ -117,4 +117,4 @@
uploadvolumefactor:
case:
"img[title=\"Platinum Torrent: No Download Stats are Recorded, Upload Stats are Doubled!\"]": 2
"*": 1
"*": 1

View File

@@ -6,7 +6,7 @@
type: private
encoding: UTF-8
links:
- http://classix-unlimited.co.uk/
- http://classix-unlimited.co.uk/ # site does not support https ERR_CONNECTION_CLOSED
caps:
categorymappings:
@@ -63,4 +63,4 @@
"*": "1"
uploadvolumefactor:
case:
"*": "1"
"*": "1"

View File

@@ -50,15 +50,21 @@
login:
path: login
method: form
form: form[action$="/login"]
inputs:
username: "{{ .Config.username }}"
password: "{{ .Config.password }}"
remember: on
selectorinputs:
_token:
selector: input[name="_token"]
attribute: value
error:
- selector: form[action$="/login"] .text-red
test:
path: /
selector: a[href$="/logout"]
# test:
# path: /
# selector: a[href$="/logout"]
ratio:
path: /
selector: span:has(i.fa-percent)

View File

@@ -1,4 +1,4 @@
---
---
site: cpasbien
name: cpasbien
description: "cpasbien is a FRENCH Public site for TV / MOVIES / GENERAL"
@@ -7,7 +7,7 @@
encoding: UTF-8
followredirect: true
links:
- https://vww.cpasbien-fr.fr/
- https://wvw.cpasbien-fr.fr/
legacylinks:
- http://www.cpasbiens.cc/
- http://www.cpabien.cm/
@@ -38,6 +38,7 @@
- https://www.cpasbien.vg/
- https://www.cpasbien.lol/
- https://www.gktorrent.biz/
- https://vww.cpasbien-fr.fr/
caps:
categorymappings:
@@ -50,7 +51,28 @@
tv-search: [q, season, ep]
movie-search: [q]
settings: []
settings:
- name: cookie
type: text
label: Cookie
- name: info_cookie
type: info
label: How to get the Cookie
default: "<ol><li>Login to this tracker with your browser<li>Open the <b>DevTools</b> panel by pressing <b>F12</b><li>Select the <b>Network</b> tab<li>Click on the <b>Doc</b> button<li>Refresh the page by pressing <b>F5</b><li>Select the <b>Headers</b> tab<li>Find <b>'cookie:'</b> in the <b>Request Headers</b> section<li><b>Select</b> and <b>Copy</b> the whole cookie string <i>(everything after 'cookie: ')</i> and <b>Paste</b> here.</ol>"
- name: useragent
type: text
label: User-Agent
label: User-Agent
- name: info_useragent
type: info
label: How to get the User-Agent
default: "<ol><li>From the same place you fetched the cookie,<li>Find <b>'user-agent:'</b> in the <b>Request Headers</b> section<li><b>Select</b> and <b>Copy</b> the whole user-agent string <i>(everything after 'user-agent: ')</i> and <b>Paste</b> here.</ol>"
login:
method: cookie
inputs:
cookie: "{{ .Config.cookie }}"
user-agent: "[ .Config.useragent ]"
download:
selector: a[href^="magnet:?xt="]
@@ -58,8 +80,11 @@
search:
paths:
# https://vww.cpasbien-fr.fr/index.php?do=search&subaction=search&story=dickinson%20s01e10
- path: "{{ if .Keywords }}index.php?do=search&subaction=search&story={{ .Keywords }}{{else}}{{end}}"
- path: "{{ if .Keywords }}index.php?do=search&subaction=search{{else}}{{end}}"
method: post
inputs:
story: "{{ if .Keywords }}{{ .Keywords }}{{else}}{{end}}"
# does not support imdbid search and does not return imdb link in results.
rows:
selector: div#gauche > table > tbody > tr:has(a)

View File

@@ -7,11 +7,18 @@
encoding: UTF-8
followredirect: true
links:
- https://www1.cpasbiens.cm/
- https://cpasbien.to/
- https://cpasbiens.black-mirror.xyz/
- https://cpasbiens.unblocked.casa/
- https://cpasbiens.proxyportal.fun/
- https://cpasbiens.uk-unblock.xyz/
- https://cpasbiens.ind-unblock.xyz/
legacylinks:
- https://www1.cpasbiens.ws/
- https://www2.cpasbiens.ws/
- https://cpasbiens.cm/
- https://www1.cpasbiens.cm/
- https://wwv.cpasbien.to/
caps:
categorymappings:
@@ -45,7 +52,7 @@
search:
paths:
- path: "{{ if .Keywords }}recherche/{{ .Keywords }}{{ .Config.sort }}{{else}}{{end}}"
- path: "{{ if .Keywords }}search_torrent/{{ .Keywords }}{{ .Config.sort }}{{else}}home/{{end}}"
rows:
selector: table.table-corps > tbody > tr:has(a)
@@ -56,9 +63,9 @@
site_date:
selector: a
filters:
# date is at the end of the title, so we get it and name it site_date
# year can be at the end of the title, so we get it and name it site_date
- name: regexp
args: "(\\w+)$"
args: "(\\d{4})$"
title:
selector: a
filters:
@@ -73,7 +80,7 @@
args: ["VOSTFR", "{{ .Result.site_date }} VOSTFR"]
# and we delete it at the end
- name: re_replace
args: ["(\\w+)$", ""]
args: ["(\\d{4})$", ""]
details:
selector: a
attribute: href

View File

@@ -1,4 +1,4 @@
---
---
site: crazyscorner
name: Crazy's Corner
description: "Crazy's Corner is a Private Torrent Tracker for MUSIC"
@@ -6,7 +6,7 @@
type: private
encoding: UTF-8
links:
- http://crazys-corner.info/
- http://crazys-corner.info/ # site does not support https ERR_CONNECTION_REFUSED
caps:
categorymappings:
@@ -129,12 +129,10 @@
details:
selector: a[href*="/details.php?id="]
attribute: href
# rows have download but site requires thanks so we use dl from details
download:
selector: a[href*="/details.php?id="]
attribute: href
magnet:
selector: a[href^="magnet:?xt="]
attribute: href
banner:
selector: img[src*="/torrents/images/"]
attribute: src
@@ -156,6 +154,7 @@
downloadvolumefactor:
case:
img[src$="_flags/freedownload.gif"]: 0
img[src$="_flags/silverdownload.gif"]: 0.5
"*": 1
uploadvolumefactor:
case:

View File

@@ -1,4 +1,4 @@
---
---
site: crazyspirits
name: CrazySpirits
description: "Crazy Spirits is a FRENCH Private Torrent Tracker for MOVIES / TV / GENERAL"
@@ -12,20 +12,21 @@
categorymappings:
# Documentaire
- {id: 96, cat: TV/Documentary, desc: "Docus TV"}
- {id: 124, cat: TV/Documentary, desc: "Docus Formation Video"}
# Films
- {id: 49, cat: Movies/3D, desc: "Films 3D"}
- {id: 1, cat: XXX, desc: "3X"}
- {id: 48, cat: XXX, desc: "3X HD1080p"}
- {id: 47, cat: XXX, desc: "3X HD720p"}
- {id: 50, cat: Movies/UHD, desc: "Films 4K"}
- {id: 51, cat: Movies/UHD, desc: "Films 4K UHDTV"}
- {id: 51, cat: TV/UHD, desc: "Films 4K UHDTV"}
- {id: 57, cat: Movies/BluRay, desc: "Films BDRip"}
- {id: 56, cat: Movies/BluRay, desc: "Films Blu-Ray"}
- {id: 58, cat: Movies/BluRay, desc: "Films BRRip"}
- {id: 66, cat: Movies, desc: "Films CamTS"}
- {id: 59, cat: Movies/DVD, desc: "Films DVDR"}
- {id: 60, cat: Movies/DVD, desc: "Films DVDRip"}
- {id: 98, cat: Movies, desc: "Films Film Animées"}
- {id: 98, cat: TV/Anime, desc: "Films Film Animées"}
- {id: 65, cat: Movies, desc: "Films FSCR"}
- {id: 52, cat: Movies/HD, desc: "Films HD 720p"}
- {id: 53, cat: Movies/HD, desc: "Films HD1080p"}
@@ -107,7 +108,7 @@
- name: info
type: info
label: How to get the Cookie
default: "<ol><li>Login to this tracker in your browser<li>Open the <b>DevTools</b> panel by pressing <b>F12</b><li>Select the <b>Network</b> tab<li>Click on the <b>Doc</b> button<li>Refresh the page by pressing <b>F5</b><li>Select the <b>Headers</b> tab<li>Find 'cookie:' in the <b>Request Headers</b> section<li>Copy & paste the whole cookie string to here</ol>"
default: "<ol><li>Login to this tracker with your browser<li>Open the <b>DevTools</b> panel by pressing <b>F12</b><li>Select the <b>Network</b> tab<li>Click on the <b>Doc</b> button<li>Refresh the page by pressing <b>F5</b><li>Select the <b>Headers</b> tab<li>Find <b>'cookie:'</b> in the <b>Request Headers</b> section<li><b>Select</b> and <b>Copy</b> the whole cookie string <i>(everything after 'cookie: ')</i> and <b>Paste</b> here.</ol>"
- name: sort
type: select
label: Sort requested from site
@@ -124,7 +125,7 @@
options:
"desc": "desc"
"asc": "asc"
login:
method: cookie
inputs:
@@ -149,13 +150,17 @@
# http://crazyspirits.com/torrents-search.php?c101=1&c102=1&c103=1&c104=1&c105=1&c106=1&search=&cat=0&incldead=0&freeleech=0&lang=0
- path: torrents-search.php
inputs:
$raw: "{{range .Categories}}c{{.}}=1&{{end}}"
$raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
search: "{{ .Keywords }}"
# 0 active 1 incldead 2 onlydead
incldead: 1
# 0 all 1 inclfree 2 onlyfree
freeleech: 0
# 0 all 1 french 2 english etc
lang: 0
sort: "{{ .Config.sort }}"
order: "{{ .Config.type }}"
# imdb search not supported and imdb links not in results.
rows:
selector: table.border_table > tbody > tr.t-row
@@ -192,13 +197,13 @@
attribute: onmouseover
filters:
- name: regexp
args: "Taille : </b>(.*?)<br"
args: "Taille : </b>(.*?)<br"
date:
selector: a[onmouseover][href^="torrents-details.php?id="]
attribute: onmouseover
filters:
- name: regexp
args: " Le : </b>(.*?)<br"
args: " Le : </b>(.*?)<br"
- name: dateparse
args: "02-01-2006"
downloadvolumefactor:
@@ -206,6 +211,5 @@
img[src="images/Torrents/free.png"]: 0
"*": 1
uploadvolumefactor:
case:
"*": 1
# TT3.0
text: 1
# TT3.0

View File

@@ -1,4 +1,4 @@
---
---
site: crnaberza
name: CrnaBerza
description: "Crna Berza is a BALKAN Private Torrent Tracker for MOVIES / TV / GENERAL"
@@ -100,15 +100,17 @@
search:
paths:
# http://www.crnaberza.com/browse.php?c52=1&c20=1&c34=1&incldead=1&search=star+trek
- path: browse.php
- path: browse.php
inputs:
$raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
search: "{{ .Keywords }}"
searchin: title
# 0 title 1 descr 2 both
blah: 0
# 0 active 1 incldead 2 onlydead
incldead: 1
sort: "{{ .Config.sort }}"
type: "{{ .Config.type }}"
# does not support searching imdbid and does not return imdb links
rows:
selector: tr:has(td.trowtorrent)

View File

@@ -1,4 +1,4 @@
 site: cztorrent
site: cztorrent
name: CzTorrent
description: "CzTorrent is a Czech Semi-Private site for TV / MOVIES / GENERAL"
language: cs-cz
@@ -22,7 +22,7 @@
- {id: 38, cat: Movies/HD, desc: "HD-LQ"}
- {id: 3, cat: PC/Games, desc: "Hry"}
- {id: 2, cat: Audio, desc: "Hudba"}
- {id: 34, cat: Audio/Video, desc: "Hudba DVD/HD"}
- {id: 34, cat: Audio/Video, desc: "Hudební video"}
- {id: 6, cat: Books, desc: "Knihy"}
- {id: 13, cat: Console, desc: "Konzole"}
- {id: 32, cat: Audio, desc: "Mluvené slovo"}
@@ -30,7 +30,6 @@
- {id: 4, cat: Other, desc: "Ostatní"}
- {id: 25, cat: TV, desc: "Seriály"}
- {id: 29, cat: Audio, desc: "Soundtrack"}
- {id: 19, cat: Audio/Video, desc: "Videoklipy"}
- {id: 24, cat: XXX, desc: "xXx"}
modes:
@@ -74,12 +73,18 @@
inputs:
$raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
s: "{{ .Keywords }}"
# 0 approved 1 all 2 not approved
t: 1
o: "{{ .Config.sort }}"
# does not support imdbid search and does not return imdb links
rows:
selector: tr.torr_hover
keywordsfilters:
- name: re_replace
args: ["S[0-9]{2}([^E]|$)", ""] # remove season tag without episode (search doesn't support it)
fields:
title:
selector: td.detaily a
@@ -89,17 +94,17 @@
- name: diacritics
args: replace
- name: replace
args: ["1080i", "1080p"]
args: ["1080i", "1080p"]
- name: replace
args: ["720i", "720p"]
args: ["720i", "720p"]
- name: replace
args: ["pLQ", "p"]
args: ["pLQ", "p"]
- name: replace
args: ["pHD", "p"]
args: ["pHD", "p"]
- name: replace
args: ["serie", ""]
args: ["serie", ""]
- name: replace
args: ["Serie", ""]
args: ["Serie", ""]
- name: re_replace
args: ["(\\d{2})\\.", "S$1"]
- name: re_replace
@@ -148,7 +153,7 @@
args: [ "|", 2 ]
- name: append
args: " +02:00"
- name: dateparse
- name: dateparse
args: "2.1.2006 15:04 -07:00"
seeders:
selector: td:nth-child(7) span

View File

@@ -0,0 +1,275 @@
---
site: dark-shadow
name: Dark-Shadow
description: "Dark-Shadow is a German Private site for TV / MOVIES / GENERAL"
language: de-de
type: private
encoding: UTF-8
links:
- https://dark-shadow.me/
legacylinks:
- https://dark-shadow.ml/
caps:
categorymappings:
# Film
- {id: 32, cat: Movies/HD, desc: "Film HD"}
- {id: 28, cat: Movies/SD, desc: "Film SD"}
- {id: 119, cat: Movies/DVD, desc: "Film DVD"}
- {id: 114, cat: Movies/UHD, desc: "Film 4K/2160p"}
- {id: 26, cat: Movies/3D, desc: "Film 3D"}
# Serien
- {id: 57, cat: TV/HD, desc: "Serien HD"}
- {id: 60, cat: TV/SD, desc: "Serien SD"}
- {id: 59, cat: TV, desc: "Serien Pack"}
- {id: 122, cat: TV, desc: "Serien Show"}
- {id: 123, cat: TV/Documentary, desc: "Serien Doku"}
# Doku
- {id: 14, cat: TV/Documentary, desc: "Doku HD"}
- {id: 15, cat: TV/Documentary, desc: "Doku SD"}
# Spiele
- {id: 17, cat: PC/Games, desc: "Spiele PC"}
- {id: 24, cat: Console, desc: "Spiele Konsole"}
- {id: 121, cat: Console, desc: "Spiele Wimmelbild"}
- {id: 126, cat: Console/Other, desc: "Spiele Mobil"}
# Musik
- {id: 110, cat: Audio/MP3, desc: "Musik MP3"}
- {id: 52, cat: Audio, desc: "Musik Pack"}
- {id: 48, cat: Audio/Lossless, desc: "Musik Flac"}
- {id: 120, cat: Audio/Video, desc: "Musik Video"}
# App
- {id: 12, cat: PC/0day, desc: "App PC"}
- {id: 125, cat: PC/Mac, desc: "App MacOS"}
- {id: 11, cat: PC/Phone-Other, desc: "App Mobil"}
# Sport
- {id: 61, cat: TV/Sport, desc: "Sport HD"}
- {id: 62, cat: TV/Sport, desc: "Sport SD"}
# Internal
- {id: 128, cat: Movies/HD, desc: "Internal Film HD"}
- {id: 129, cat: Movies/SD, desc: "Internal Film SD"}
- {id: 130, cat: TV/HD, desc: "Internal Serien HD"}
- {id: 131, cat: TV/SD, desc: "Internal Serien SD"}
- {id: 132, cat: Other, desc: "Internal Sonstiges"}
# Sonstiges
- {id: 64, cat: TV/Anime, desc: "Anime"}
- {id: 96, cat: Books/Ebook, desc: "e-Book"}
- {id: 63, cat: Audio/Audiobook, desc: "Hörbuch"}
- {id: 71, cat: Other, desc: "Anderes"}
# XXX
- {id: 73, cat: XXX/x264, desc: "XXX HD"}
- {id: 75, cat: XXX/Packs, desc: "XXX Pack"}
- {id: 76, cat: XXX/XviD, desc: "XXX SD"}
- {id: 124, cat: XXX/Other, desc: "XXX Clips"}
modes:
search: [q, imdbid]
tv-search: [q, season, ep, imdbid]
movie-search: [q, imdbid]
settings:
- name: username
type: text
label: Username
- name: password
type: password
label: Password
- name: info_pin
type: info
label: About Pin
default: If you have not set a Pin for your account then leave this box empty.
- name: pin
type: text
label: Pin
- name: sort
type: select
label: Sort requested from site
default: "added"
options:
"added": "created"
"seeds": "seeders"
"size": "size"
"name": "title"
- name: type
type: select
label: Order requested from site
default: "desc"
options:
"desc": "desc"
"asc": "asc"
login:
path: login.php
method: form
form: form[action="/login.php"]
cookies: ["JAVA=OK"] # avoid jscheck redirect
captcha:
type: image
selector: img[src^="cap/captcha_math.php"]
input: stringCaptcha
inputs:
username: "{{ .Config.username }}"
password: "{{ .Config.password }}"
pin: "{{ .Config.pin }}"
error:
- selector: div#login_error
test:
path: selection.php
download:
before:
path: ajax_det_poll.php
method: "post"
inputs:
set_thanks: "thanks"
det_id: "{{ .DownloadUri.Query.torrent }}"
ajax: "yes"
search:
paths:
- path: selection.php
inputs:
$raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{else}}{{ .Keywords }}{{end}}"
# 0 name 1 descr 2 both 4 imdb
blah: "{{ if .Query.IMDBID }}4{{else}}0{{end}}"
orderby: "{{ .Config.sort }}"
sort: "{{ .Config.type }}"
rows:
selector: div.selection_wrap
fields:
category:
selector: div.kat_cat_pic
case:
# Movies
":has(div.kat_cat_pic_name:contains(\"Movie\")):has(div.kat_cat_pic_name_b:contains(\"4K/2160p\"))": "114"
":has(div.kat_cat_pic_name:contains(\"Movie\")):has(div.kat_cat_pic_name_b:contains(\"DVD\"))": "119"
":has(div.kat_cat_pic_name:contains(\"Movie\")):has(div.kat_cat_pic_name_b:contains(\"HD\"))": "32"
":has(div.kat_cat_pic_name:contains(\"Movie\")):has(div.kat_cat_pic_name_b:contains(\"SD\"))": "28"
":has(div.kat_cat_pic_name:contains(\"Movie\")):has(div.kat_cat_pic_name_b:contains(\"3D\"))": "26"
# Serien
":has(div.kat_cat_pic_name:contains(\"Serien\")):has(div.kat_cat_pic_name_b:contains(\"SD\"))": "60"
":has(div.kat_cat_pic_name:contains(\"Serien\")):has(div.kat_cat_pic_name_b:contains(\"HD\"))": "57"
":has(div.kat_cat_pic_name:contains(\"Serien\")):has(div.kat_cat_pic_name_b:contains(\"Pack\"))": "59"
":has(div.kat_cat_pic_name:contains(\"Serien\")):has(div.kat_cat_pic_name_b:contains(\"Show\"))": "122"
":has(div.kat_cat_pic_name:contains(\"Serien\")):has(div.kat_cat_pic_name_b:contains(\"Doku\"))": "123"
# Musik
":has(div.kat_cat_pic_name:contains(\"Music\")):has(div.kat_cat_pic_name_b:contains(\"Flac\"))": "48"
":has(div.kat_cat_pic_name:contains(\"Music\")):has(div.kat_cat_pic_name_b:contains(\"MP3\"))": "110"
":has(div.kat_cat_pic_name:contains(\"Music\")):has(div.kat_cat_pic_name_b:contains(\"Pack\"))": "52"
":has(div.kat_cat_pic_name:contains(\"Music\")):has(div.kat_cat_pic_name_b:contains(\"Videos\"))": "120"
# Doku
":has(div.kat_cat_pic_name:contains(\"Doku\")):has(div.kat_cat_pic_name_b:contains(\"SD\"))": "15"
":has(div.kat_cat_pic_name:contains(\"Doku\")):has(div.kat_cat_pic_name_b:contains(\"HD\"))": "14"
# Games
":has(div.kat_cat_pic_name:contains(\"Game\")):has(div.kat_cat_pic_name_b:contains(\"PC\"))": "17"
":has(div.kat_cat_pic_name:contains(\"Game\")):has(div.kat_cat_pic_name_b:contains(\"Wimmelbild\"))": "121"
":has(div.kat_cat_pic_name:contains(\"Game\")):has(div.kat_cat_pic_name_b:contains(\"Konsole\"))": "24"
":has(div.kat_cat_pic_name:contains(\"Game\")):has(div.kat_cat_pic_name_b:contains(\"Mobil\"))": "126"
# App
":has(div.kat_cat_pic_name:contains(\"App\")):has(div.kat_cat_pic_name_b:contains(\"PC\"))": "12"
":has(div.kat_cat_pic_name:contains(\"App\")):has(div.kat_cat_pic_name_b:contains(\"MacOS\"))": "125"
":has(div.kat_cat_pic_name:contains(\"App\")):has(div.kat_cat_pic_name_b:contains(\"Mobil\"))": "11"
# Sport
":has(div.kat_cat_pic_name:contains(\"Sport\")):has(div.kat_cat_pic_name_b:contains(\"SD\"))": "62"
":has(div.kat_cat_pic_name:contains(\"Sport\")):has(div.kat_cat_pic_name_b:contains(\"HD\"))": "61"
# Sonstiges
":has(div.kat_cat_pic_name:contains(\"Sonstiges\")):has(div.kat_cat_pic_name_b:contains(\"Anime\"))": "64"
":has(div.kat_cat_pic_name:contains(\"Sonstiges\")):has(div.kat_cat_pic_name_b:contains(\"E-Book\"))": "96"
":has(div.kat_cat_pic_name:contains(\"Sonstiges\")):has(div.kat_cat_pic_name_b:contains(\"Hörbuch\"))": "63"
":has(div.kat_cat_pic_name:contains(\"Sonstiges\")):has(div.kat_cat_pic_name_b:contains(\"Other\"))": "71"
# XXX
":has(div.kat_cat_pic_name:contains(\"XXX\")):has(div.kat_cat_pic_name_b:contains(\"SD\"))": "76"
":has(div.kat_cat_pic_name:contains(\"XXX\")):has(div.kat_cat_pic_name_b:contains(\"HD\"))": "73"
":has(div.kat_cat_pic_name:contains(\"XXX\")):has(div.kat_cat_pic_name_b:contains(\"Pack\"))": "75"
":has(div.kat_cat_pic_name:contains(\"XXX\")):has(div.kat_cat_pic_name_b:contains(\"Clips\"))": "124"
# Internal
":has(div.kat_cat_pic_name:contains(\"Internal\")):has(div.kat_cat_pic_name_b:contains(\"Film HD\"))": "128"
":has(div.kat_cat_pic_name:contains(\"Internal\")):has(div.kat_cat_pic_name_b:contains(\"Film SD\"))": "129"
":has(div.kat_cat_pic_name:contains(\"Internal\")):has(div.kat_cat_pic_name_b:contains(\"Serien HD\"))": "130"
":has(div.kat_cat_pic_name:contains(\"Internal\")):has(div.kat_cat_pic_name_b:contains(\"Serien SD\"))": "131"
":has(div.kat_cat_pic_name:contains(\"Internal\")):has(div.kat_cat_pic_name_b:contains(\"Sonstiges\"))": "132"
title:
selector: a.selection_a
details:
selector: a.selection_a
attribute: href
download:
selector: a.selection_a
attribute: href
filters:
- name: replace
args: ["details.php?id=", "download.php?torrent="]
banner:
selector: div[id^="details"] img
attribute: src
optional: true
imdb:
selector: a[href*="www.imdb.com/title/tt"]
attribute: href
optional: true
size:
selector: div.selection_unter_ad
filters:
- name: replace
args: [".", ""]
- name: replace
args: [",", "."]
grabs:
selector: div.selection_unter_ae
filters:
- name: trim
args: "x"
- name: replace
args: [".", ""]
- name: replace
args: [",", "."]
# 2 flavours of dates
date:
# Heute 13:30:04
# Gestern 09:10:10
selector: div.selection_unter_ab:not(:contains("."))
optional: true
filters:
- name: replace
args: ["Heute", "Today"]
- name: replace
args: ["Gestern", "Yesterday"]
date:
# 30.02.2018 um 23:12:50
selector: div.selection_unter_ab:contains(".")
optional: true
filters:
- name: replace
args: [" um", ""]
- name: dateparse
args: "02.01.2006 15:04:05"
description:
selector: selection_unter_af
optional: true
seeders:
selector: div.selection_unter_aa
filters:
- name: replace
args: [".", ""]
- name: replace
args: [",", "."]
leechers:
selector: div.selection_unter_aaa
filters:
- name: replace
args: [".", ""]
- name: replace
args: [",", "."]
downloadvolumefactor:
case:
":root:has(div.onlyup)": 0
"*": 1
uploadvolumefactor:
text: 1
minimumratio:
text: 1.0
minimumseedtime:
text: 172800 # 2 day (48h)
# Engine tbd

View File

@@ -0,0 +1,835 @@
---
site: darktracker
name: Dark Tracker
description: "Dark Tracker is a RUSSIAN Private Torrent Tracker for 0DAY / GENERAL"
language: ru-ru
type: private
encoding: UTF-8
links:
- https://darkos.club/
- https://dark-os.com/
caps:
categorymappings:
# 3D
- {id: 801, cat: Movies/3D, desc: " | Фильмы в формате 3D"}
- {id: 802, cat: Movies/3D, desc: " | Мультфильмы в формате 3D"}
- {id: 803, cat: Movies/3D, desc: " | Музыкальные клипы и концерты в формате 3D"}
- {id: 800, cat: Movies/3D, desc: "Релизы Blu-ray disc 3D (iso)"}
- {id: 815, cat: Movies/3D, desc: " | Фильмы в формате 3D (iso)"}
- {id: 814, cat: Movies/3D, desc: " | Мультфильмы в формате 3D (iso)"}
- {id: 813, cat: Movies/3D, desc: " | Музыкальные клипы и концерты в формате 3D (iso)"}
- {id: 1046, cat: Movies/3D, desc: "Архив"}
# Кино, Видео и ТВ
# Cinema, Video and TV
- {id: 1055, cat: Movies, desc: "Новинки проката"}
- {id: 1058, cat: Movies, desc: " | Портал для новинок"}
- {id: 1056, cat: Movies/SD, desc: " | Новинки (CamRip|TS)"}
- {id: 1057, cat: Movies/WEBDL, desc: " | Новинки (HD|DVD|BD|WEB|TV|SAT|PDTV|-Rip)"}
- {id: 1059, cat: Movies, desc: " | Новинки (BD|HDTV|DVD)"}
- {id: 57, cat: Movies, desc: "Зарубежные фильмы"}
- {id: 1021, cat: Movies, desc: " | Фильмы 2011-2020"}
- {id: 63, cat: Movies, desc: " | Фильмы 2001-2010"}
- {id: 60, cat: Movies, desc: " | Фильмы до 2000 года"}
- {id: 1114, cat: Movies/HD, desc: " | Зарубежное кино (HD Video)"}
- {id: 65, cat: Movies, desc: " | Антология зарубежного кино"}
- {id: 515, cat: Movies, desc: " | Зарубежные Фильмы для детей"}
- {id: 85, cat: Movies, desc: "Отечественные фильмы"}
- {id: 90, cat: Movies, desc: " | Фильмы 2011-2020"}
- {id: 89, cat: Movies, desc: " | Фильмы 2001-2010"}
- {id: 88, cat: Movies, desc: " | Фильмы до 2000 года"}
- {id: 1115, cat: Movies/HD, desc: " | Отечественное кино (HD Video)"}
- {id: 516, cat: Movies, desc: " | Отечественные Фильмы для детей"}
- {id: 378, cat: TV, desc: "Сериалы"}
- {id: 281, cat: TV, desc: " | Отечественные cериалы"}
- {id: 277, cat: TV, desc: " | Зарубежные сериалы"}
- {id: 377, cat: TV, desc: "Мультфильмы"}
- {id: 106, cat: TV, desc: " | Отечественные мультфильмы"}
- {id: 108, cat: TV, desc: " | Иностранные мультфильмы"}
- {id: 280, cat: TV, desc: " | Мультсериалы"}
- {id: 92, cat: TV, desc: "DVD и HD Video"}
- {id: 99, cat: Movies, desc: " | Зарубежное кино"}
- {id: 97, cat: Movies, desc: " | Наше кино"}
- {id: 100, cat: TV, desc: " | Мультфильмы"}
- {id: 98, cat: Audio/Video, desc: " | Музыкальные клипы и концерты"}
- {id: 95, cat: TV, desc: " | Антология"}
- {id: 788, cat: TV/Documentary, desc: "Документальные фильмы и телепередачи"}
- {id: 1024, cat: TV/Documentary, desc: " | National Geographic"}
- {id: 1023, cat: TV/Documentary, desc: " | Discovery"}
- {id: 1022, cat: TV/Documentary, desc: " | Animal Planet"}
- {id: 790, cat: TV/Documentary, desc: " | BBC"}
- {id: 789, cat: TV/Documentary, desc: " | Среда Обитания"}
- {id: 70, cat: TV, desc: "Развлекательные телепередачи, юмор"}
- {id: 742, cat: TV, desc: " | Развлекательные телепередачи и шоу, приколы и юмор"}
- {id: 475, cat: TV/Anime, desc: "Аниме"}
- {id: 485, cat: TV/Anime, desc: " | Правила и FAQ"}
- {id: 484, cat: TV/Anime, desc: " | Аниме основной подраздел"}
- {id: 477, cat: TV/Anime, desc: " | Dorama и live-action"}
- {id: 483, cat: TV/Anime, desc: " | OST"}
- {id: 482, cat: TV/Anime, desc: " | Манга"}
- {id: 481, cat: TV/Anime, desc: " | Клипы"}
- {id: 480, cat: TV/Anime, desc: " | Фэндом"}
- {id: 478, cat: TV/Anime, desc: " | Полнометражные"}
- {id: 479, cat: TV/Anime, desc: " | Онгоинги"}
- {id: 827, cat: Other, desc: "Обучающее видео"}
- {id: 456, cat: Other, desc: "Мобильное видео"}
- {id: 101, cat: Other, desc: "Дополнительные материалы к фильмам"}
- {id: 1017, cat: Other, desc: " | Трейлеры"}
- {id: 270, cat: Other, desc: "Архив"}
# Игры для PC
# PC Games
- {id: 25, cat: PC/Games, desc: "Горячие новинки"}
- {id: 829, cat: PC/Games, desc: " | Пиратки"}
- {id: 707, cat: PC/Games, desc: " | Лицензии"}
- {id: 706, cat: PC/Games, desc: " | RePack"}
- {id: 708, cat: PC/Games, desc: "Demo/Beta версии Игр"}
- {id: 709, cat: PC/Games, desc: "Аркады"}
- {id: 711, cat: PC/Games, desc: " | Аркады (разное)"}
- {id: 710, cat: PC/Games, desc: " | Настольные и карточные аркады"}
- {id: 712, cat: PC/Games, desc: "Приключения и квесты"}
- {id: 713, cat: PC/Games, desc: "Стратегии"}
- {id: 716, cat: PC/Games, desc: " | TBS (пошаговые стратегии)"}
- {id: 715, cat: PC/Games, desc: " | RTS (стратегии в реальном времени)"}
- {id: 714, cat: PC/Games, desc: " | Экономические стратегии"}
- {id: 717, cat: PC/Games, desc: "Симуляторы"}
- {id: 721, cat: PC/Games, desc: " | Спортивные симуляторы"}
- {id: 720, cat: PC/Games, desc: " | Космические и Авиа симуляторы"}
- {id: 719, cat: PC/Games, desc: " | Гоночные симуляторы"}
- {id: 718, cat: PC/Games, desc: " | Прочие симуляторы"}
- {id: 722, cat: PC/Games, desc: "Action"}
- {id: 724, cat: PC/Games, desc: " | FPS (1st Person)"}
- {id: 723, cat: PC/Games, desc: " | TPS (3rd Person)"}
- {id: 725, cat: PC/Games, desc: "RPG"}
- {id: 726, cat: PC/Games, desc: "Эротические игры"}
- {id: 727, cat: PC/Games, desc: "Многопользовательские игры"}
- {id: 728, cat: PC/Games, desc: " | MMORPG"}
- {id: 729, cat: PC/Games, desc: "Для самых маленьких"}
- {id: 793, cat: PC/Games, desc: "Аниме-игры"}
- {id: 730, cat: PC/Games, desc: "Старые игры для PC"}
- {id: 458, cat: PC/Games, desc: "Игры для Apple"}
- {id: 508, cat: PC/Games, desc: "Игры для Linux"}
- {id: 731, cat: PC/Games, desc: "Прочее"}
- {id: 830, cat: PC/Games, desc: " | Дополнения"}
- {id: 737, cat: PC/Games, desc: " | Таблетки"}
- {id: 736, cat: PC/Games, desc: " | Моды"}
- {id: 735, cat: PC/Games, desc: " | Русификаторы"}
- {id: 734, cat: PC/Games, desc: " | Патчи"}
- {id: 733, cat: PC/Games, desc: " | Бонусные диски / Комплекты предзаказов"}
- {id: 738, cat: PC/Games, desc: "Игровое видео"}
- {id: 740, cat: PC/Games, desc: " | Трейлеры/Геймплей видео"}
- {id: 739, cat: PC/Games, desc: " | Видео прохождения игр"}
- {id: 269, cat: PC/Games, desc: "Архив"}
- {id: 25, cat: PC/Games, desc: "Горячие новинки"}
- {id: 829, cat: PC/Games, desc: " | Пиратки"}
- {id: 707, cat: PC/Games, desc: " | Лицензии"}
- {id: 706, cat: PC/Games, desc: " | RePack"}
- {id: 708, cat: PC/Games, desc: "Demo/Beta версии Игр"}
- {id: 709, cat: PC/Games, desc: "Аркады"}
- {id: 711, cat: PC/Games, desc: " | Аркады (разное)"}
- {id: 710, cat: PC/Games, desc: " | Настольные и карточные аркады"}
- {id: 712, cat: PC/Games, desc: "Приключения и квесты"}
- {id: 713, cat: PC/Games, desc: "Стратегии"}
- {id: 716, cat: PC/Games, desc: " | TBS (пошаговые стратегии)"}
- {id: 715, cat: PC/Games, desc: " | RTS (стратегии в реальном времени)"}
- {id: 714, cat: PC/Games, desc: " | Экономические стратегии"}
- {id: 717, cat: PC/Games, desc: "Симуляторы"}
- {id: 721, cat: PC/Games, desc: " | Спортивные симуляторы"}
- {id: 720, cat: PC/Games, desc: " | Космические и Авиа симуляторы"}
- {id: 719, cat: PC/Games, desc: " | Гоночные симуляторы"}
- {id: 718, cat: PC/Games, desc: " | Прочие симуляторы"}
- {id: 722, cat: PC/Games, desc: "Action"}
- {id: 724, cat: PC/Games, desc: " | FPS (1st Person)"}
- {id: 723, cat: PC/Games, desc: " | TPS (3rd Person)"}
- {id: 725, cat: PC/Games, desc: "RPG"}
- {id: 726, cat: PC/Games, desc: "Эротические игры"}
- {id: 727, cat: PC/Games, desc: "Многопользовательские игры"}
- {id: 728, cat: PC/Games, desc: " | MMORPG"}
- {id: 729, cat: PC/Games, desc: "Для самых маленьких"}
- {id: 793, cat: PC/Games, desc: "Аниме-игры"}
- {id: 730, cat: PC/Games, desc: "Старые игры для PC"}
- {id: 458, cat: PC/Games, desc: "Игры для Apple"}
- {id: 508, cat: PC/Games, desc: "Игры для Linux"}
- {id: 731, cat: PC/Games, desc: "Прочее"}
- {id: 830, cat: PC/Games, desc: " | Дополнения"}
- {id: 737, cat: PC/Games, desc: " | Таблетки"}
- {id: 736, cat: PC/Games, desc: " | Моды"}
- {id: 735, cat: PC/Games, desc: " | Русификаторы"}
- {id: 734, cat: PC/Games, desc: " | Патчи"}
- {id: 733, cat: PC/Games, desc: " | Бонусные диски / Комплекты предзаказов"}
- {id: 738, cat: PC/Games, desc: "Игровое видео"}
- {id: 740, cat: PC/Games, desc: " | Трейлеры/Геймплей видео"}
- {id: 739, cat: PC/Games, desc: " | Видео прохождения игр"}
- {id: 269, cat: PC/Games, desc: "Архив"}
# Консоли
# Console
- {id: 679, cat: Console/Xbox, desc: "XBox"}
- {id: 684, cat: Console/Xbox, desc: " | XBox360 | Игры"}
- {id: 683, cat: Console/Xbox, desc: " | XBox360 | Демоверсии"}
- {id: 682, cat: Console/Xbox, desc: " | Xbox360 | Live"}
- {id: 681, cat: Console/Xbox, desc: " | XBox360 | Программы / Прошивки"}
- {id: 680, cat: Console/Xbox, desc: " | XBox | Игры"}
- {id: 685, cat: Console/PS3, desc: "PlayStation"}
- {id: 694, cat: Console/PS3, desc: " | Playstation 3 | Игры"}
- {id: 693, cat: Console/PS3, desc: " | Playstation 3 | PSN Игры"}
- {id: 692, cat: Console/PS3, desc: " | Playstation 3 | Разное"}
- {id: 691, cat: Console/PS3, desc: " | PlayStation 2 | Игры"}
- {id: 690, cat: Console/PS3, desc: " | PlayStation 2 | Разное"}
- {id: 689, cat: Console/PS3, desc: " | PlayStation 1 | Игры"}
- {id: 688, cat: Console/PSP, desc: " | PSP | Игры"}
- {id: 687, cat: Console/PSP, desc: " | PSP | Программы / Прошивки"}
- {id: 686, cat: Console/PSP, desc: " | PSX-PSP"}
- {id: 695, cat: Console/NDS, desc: "Nintendo"}
- {id: 699, cat: Console/NDS, desc: " | Nintendo DS | Игры"}
- {id: 698, cat: Console, desc: " | GameCube | Игры"}
- {id: 697, cat: Console/Wii, desc: " | Wii | Игры"}
- {id: 696, cat: Console, desc: " | Nintendo | Разное"}
- {id: 700, cat: Console, desc: "Sega"}
- {id: 792, cat: Console, desc: "Архив"}
# Музыка
# Music
- {id: 537, cat: Audio/MP3, desc: "Russian (MP3)"}
- {id: 538, cat: Audio/MP3, desc: " | Pop"}
- {id: 539, cat: Audio/MP3, desc: " | Rock"}
- {id: 540, cat: Audio/MP3, desc: " | Metal"}
- {id: 545, cat: Audio/MP3, desc: " | Rap, Hip-Hop, R'n'B"}
- {id: 544, cat: Audio/MP3, desc: " | Electronic"}
- {id: 543, cat: Audio/MP3, desc: " | Шансон"}
- {id: 542, cat: Audio/MP3, desc: " | Авторская песня"}
- {id: 541, cat: Audio/MP3, desc: " | Музыка других жанров"}
- {id: 546, cat: Audio/MP3, desc: "World Pop (MP3)"}
- {id: 547, cat: Audio/MP3, desc: " | World Pop"}
- {id: 551, cat: Audio/MP3, desc: " | Latin Pop"}
- {id: 550, cat: Audio/MP3, desc: " | Dance"}
- {id: 549, cat: Audio/MP3, desc: " | Asian Pop"}
- {id: 548, cat: Audio/MP3, desc: " | 50 / 50"}
- {id: 552, cat: Audio/MP3, desc: "Rock (MP3)"}
- {id: 557, cat: Audio/MP3, desc: " | Rock"}
- {id: 556, cat: Audio/MP3, desc: " | Metal"}
- {id: 555, cat: Audio/MP3, desc: " | Alternative"}
- {id: 554, cat: Audio/MP3, desc: " | Punk Rock"}
- {id: 553, cat: Audio/MP3, desc: " | Rock 'n' Rol"}
- {id: 558, cat: Audio/MP3, desc: "Hip-Hop (MP3)"}
- {id: 561, cat: Audio/MP3, desc: " | Rap"}
- {id: 560, cat: Audio/MP3, desc: " | R&B"}
- {id: 559, cat: Audio/MP3, desc: " | Funk, Soul"}
- {id: 562, cat: Audio/MP3, desc: "Electronic (MP3)"}
- {id: 570, cat: Audio/MP3, desc: " | Trance, Goa Trance, Psy-Trance, PsyChill, Ambient Dub"}
- {id: 569, cat: Audio/MP3, desc: " | Drum & Bass, Jungle, Breakbeat, Dubstep, IDM"}
- {id: 568, cat: Audio/MP3, desc: " | House, Techno/MP3, Hardcore, Hardstyle, Jumpstyle"}
- {id: 567, cat: Audio/MP3, desc: " | Lo-Fi, Chillout, Lounge, Downtempo/MP3, Trip-Hop, Nu Jazz"}
- {id: 566, cat: Audio/MP3, desc: " | Radioshows, Podcasts, Live Sets, Mixes"}
- {id: 565, cat: Audio/MP3, desc: " | Traditional Electronic, Ambient, Experimental"}
- {id: 564, cat: Audio/MP3, desc: " | Industrial, Noise, EBM, Dark Electro/MP3, New Wave,..."}
- {id: 563, cat: Audio/MP3, desc: " | Newage, Relax"}
- {id: 571, cat: Audio/MP3, desc: "Classical (MP3)"}
- {id: 574, cat: Audio/MP3, desc: " | Instrumental"}
- {id: 573, cat: Audio/MP3, desc: " | Orchestral"}
- {id: 572, cat: Audio/MP3, desc: " | Vocal"}
- {id: 575, cat: Audio/MP3, desc: "Jazz & Blues & Country (MP3)"}
- {id: 577, cat: Audio/MP3, desc: " | Blues"}
- {id: 578, cat: Audio/MP3, desc: " | Jazz"}
- {id: 579, cat: Audio/MP3, desc: " | Swing"}
- {id: 580, cat: Audio/MP3, desc: "Reggae, Latin, Ethnik (MP3)"}
- {id: 581, cat: Audio/MP3, desc: " | Reggae"}
- {id: 576, cat: Audio/MP3, desc: " | Country"}
- {id: 582, cat: Audio/MP3, desc: " | Latin"}
- {id: 583, cat: Audio/MP3, desc: " | Ethnic"}
- {id: 584, cat: Audio/MP3, desc: "Soundtracks (MP3)"}
- {id: 587, cat: Audio/MP3, desc: " | Games"}
- {id: 586, cat: Audio/MP3, desc: " | Anime"}
- {id: 585, cat: Audio/MP3, desc: " | Movies"}
- {id: 588, cat: Audio/MP3, desc: "Discographies (MP3)"}
- {id: 598, cat: Audio/MP3, desc: " | Russian Pop"}
- {id: 597, cat: Audio/MP3, desc: " | World Pop"}
- {id: 596, cat: Audio/MP3, desc: " | Rock"}
- {id: 595, cat: Audio/MP3, desc: " | Russian Rock"}
- {id: 594, cat: Audio/MP3, desc: " | Russian Metal"}
- {id: 593, cat: Audio/MP3, desc: " | Metal"}
- {id: 591, cat: Audio/MP3, desc: " | Electronic"}
- {id: 592, cat: Audio/MP3, desc: " | Rap, Hip-Hop, R'n'B"}
- {id: 590, cat: Audio/MP3, desc: " | World Music from other genres"}
- {id: 589, cat: Audio/MP3, desc: " | Музыка других жанров"}
- {id: 599, cat: Audio/Lossless, desc: "Russian (LOSSLESS)"}
- {id: 607, cat: Audio/Lossless, desc: " | Pop"}
- {id: 606, cat: Audio/Lossless, desc: " | Rock"}
- {id: 605, cat: Audio/Lossless, desc: " | Metal"}
- {id: 604, cat: Audio/Lossless, desc: " | Rap, Hip-Hop, R'n'B"}
- {id: 603, cat: Audio/Lossless, desc: " | Electronic"}
- {id: 602, cat: Audio/Lossless, desc: " | Шансон"}
- {id: 601, cat: Audio/Lossless, desc: " | Авторская песня"}
- {id: 600, cat: Audio/Lossless, desc: " | Музыка других жанров"}
- {id: 608, cat: Audio/Lossless, desc: "World Pop (LOSSLESS)"}
- {id: 613, cat: Audio/Lossless, desc: " | World Pop"}
- {id: 612, cat: Audio/Lossless, desc: " | Latin Pop"}
- {id: 611, cat: Audio/Lossless, desc: " | Dance"}
- {id: 610, cat: Audio/Lossless, desc: " | Asian Pop"}
- {id: 609, cat: Audio/Lossless, desc: " | 50 / 50"}
- {id: 614, cat: Audio/Lossless, desc: "Rock (LOSSLESS)"}
- {id: 619, cat: Audio/Lossless, desc: " | Rock"}
- {id: 618, cat: Audio/Lossless, desc: " | Metal"}
- {id: 617, cat: Audio/Lossless, desc: " | Alternative"}
- {id: 616, cat: Audio/Lossless, desc: " | Punk Rock"}
- {id: 615, cat: Audio/Lossless, desc: " | Rock 'n' Rol"}
- {id: 620, cat: Audio/Lossless, desc: "Hip-Hop (LOSSLESS)"}
- {id: 623, cat: Audio/Lossless, desc: " | Rap"}
- {id: 622, cat: Audio/Lossless, desc: " | R&B"}
- {id: 621, cat: Audio/Lossless, desc: " | Funk, Soul"}
- {id: 624, cat: Audio/Lossless, desc: "Electronic (LOSSLESS)"}
- {id: 632, cat: Audio/Lossless, desc: " | Trance, Goa Trance, Psy-Trance, PsyChill, Ambient Dub"}
- {id: 631, cat: Audio/Lossless, desc: " | Drum & Bass, Jungle, Breakbeat, Dubstep, IDM"}
- {id: 630, cat: Audio/Lossless, desc: " | House, Techno/Lossless, Hardcore, Hardstyle, Jumpstyle"}
- {id: 629, cat: Audio/Lossless, desc: " | Lo-Fi, Chillout, Lounge, Downtempo/Lossless, Trip-Hop, Nu Jazz"}
- {id: 628, cat: Audio/Lossless, desc: " | Radioshows, Podcasts, Live Sets, Mixes"}
- {id: 627, cat: Audio/Lossless, desc: " | Traditional Electronic, Ambient, Experimental"}
- {id: 626, cat: Audio/Lossless, desc: " | Industrial, Noise, EBM, Dark Electro/Lossless, Aggrotech,..."}
- {id: 625, cat: Audio/Lossless, desc: " | Newage, Relax"}
- {id: 633, cat: Audio/Lossless, desc: "Classical (LOSSLESS)"}
- {id: 636, cat: Audio/Lossless, desc: " | Instrumental"}
- {id: 635, cat: Audio/Lossless, desc: " | Orchestral"}
- {id: 634, cat: Audio/Lossless, desc: " | Vocal"}
- {id: 637, cat: Audio/Lossless, desc: "Jazz & Blues & Country (LOSSLESS)"}
- {id: 641, cat: Audio/Lossless, desc: " | Swing"}
- {id: 640, cat: Audio/Lossless, desc: " | Jazz"}
- {id: 639, cat: Audio/Lossless, desc: " | Blues"}
- {id: 638, cat: Audio/Lossless, desc: " | Country"}
- {id: 642, cat: Audio/Lossless, desc: "Reggae, Latin, Ethnik (LOSSLESS)"}
- {id: 645, cat: Audio/Lossless, desc: " | Ethnic"}
- {id: 644, cat: Audio/Lossless, desc: " | Latin"}
- {id: 643, cat: Audio/Lossless, desc: " | Reggae"}
- {id: 646, cat: Audio/Lossless, desc: "Soundtracks (LOSSLESS)"}
- {id: 649, cat: Audio/Lossless, desc: " | Games"}
- {id: 648, cat: Audio/Lossless, desc: " | Anime"}
- {id: 647, cat: Audio/Lossless, desc: " | Movies"}
- {id: 650, cat: Audio/Lossless, desc: "Discographies (LOSSLESS)"}
- {id: 660, cat: Audio/Lossless, desc: " | Russian Pop"}
- {id: 659, cat: Audio/Lossless, desc: " | World Pop"}
- {id: 658, cat: Audio/Lossless, desc: " | Rock"}
- {id: 656, cat: Audio/Lossless, desc: " | Russian Metal"}
- {id: 655, cat: Audio/Lossless, desc: " | Metal"}
- {id: 657, cat: Audio/Lossless, desc: " | Russian Rock"}
- {id: 654, cat: Audio/Lossless, desc: " | Rap, Hip-Hop, R'n'B"}
- {id: 653, cat: Audio/Lossless, desc: " | Electronic"}
- {id: 652, cat: Audio/Lossless, desc: " | World Music from other genres"}
- {id: 651, cat: Audio/Lossless, desc: " | Музыка других жанров"}
- {id: 826, cat: Audio/Lossless, desc: "Music from other genres (LOSSLESS)"}
- {id: 447, cat: Audio/Lossless, desc: "Multichannel Music"}
- {id: 663, cat: Audio, desc: " | DVD-Audio, SACD, Audio-DVD"}
- {id: 662, cat: Audio, desc: " | DTS"}
- {id: 661, cat: Audio, desc: " | Vinyl-Rip и Hand-Made"}
- {id: 449, cat: Audio, desc: " | Зарубежная"}
- {id: 448, cat: Audio, desc: " | Отечественная"}
- {id: 445, cat: Audio, desc: "Concert Recording & Musical films (Documentary)"}
- {id: 674, cat: Audio, desc: " | New Concert Recording"}
- {id: 673, cat: Audio, desc: " | Rock"}
- {id: 672, cat: Audio, desc: " | Metal"}
- {id: 671, cat: Audio, desc: " | World Pop"}
- {id: 670, cat: Audio, desc: " | Музыка других жанров"}
- {id: 664, cat: Audio/Video, desc: "Clips"}
- {id: 669, cat: Audio/Video, desc: " | New Clips"}
- {id: 668, cat: Audio/Video, desc: " | Rock"}
- {id: 667, cat: Audio/Video, desc: " | Metal"}
- {id: 666, cat: Audio/Video, desc: " | World Pop"}
- {id: 665, cat: Audio/Video, desc: " | Музыка других жанров"}
- {id: 455, cat: Audio, desc: "Apple Lossless"}
- {id: 446, cat: Audio, desc: "Karaoke"}
- {id: 272, cat: Audio, desc: "Архив"}
# Спорт
# Sport
- {id: 495, cat: TV/Sport, desc: "Футбол"}
- {id: 755, cat: TV/Sport, desc: " | Чемпионат России"}
- {id: 754, cat: TV/Sport, desc: " | Чемпионат Украины"}
- {id: 753, cat: TV/Sport, desc: " | Чемпионат Испании"}
- {id: 752, cat: TV/Sport, desc: " | Чемпионат Англии"}
- {id: 751, cat: TV/Sport, desc: " | Чемпионат Италии"}
- {id: 750, cat: TV/Sport, desc: " | Чемпионат Германии"}
- {id: 749, cat: TV/Sport, desc: " | Чемпионат Франции"}
- {id: 748, cat: TV/Sport, desc: " | Другие чемпионаты"}
- {id: 505, cat: TV/Sport, desc: " | Лига Чемпионов"}
- {id: 747, cat: TV/Sport, desc: " | Лига Европы"}
- {id: 497, cat: TV/Sport, desc: " | Чемпионат мира"}
- {id: 498, cat: TV/Sport, desc: " | Чемпионат Европы"}
- {id: 496, cat: TV/Sport, desc: " | Международные матчи"}
- {id: 513, cat: TV/Sport, desc: " | Товарищеские матчи"}
- {id: 746, cat: TV/Sport, desc: " | Пляжный футбол"}
- {id: 745, cat: TV/Sport, desc: " | Мини-футбол"}
- {id: 499, cat: TV/Sport, desc: " | Обзорные и аналитические передачи"}
- {id: 744, cat: TV/Sport, desc: " | Футбольное видео, прочее о футболе"}
- {id: 500, cat: TV/Sport, desc: "Хоккей"}
- {id: 760, cat: TV/Sport, desc: " | КХЛ"}
- {id: 759, cat: TV/Sport, desc: " | NHL"}
- {id: 758, cat: TV/Sport, desc: " | Европейские клубные чемпионаты"}
- {id: 757, cat: TV/Sport, desc: " | Чемпионат Мира"}
- {id: 756, cat: TV/Sport, desc: " | Международные турниры"}
- {id: 501, cat: TV/Sport, desc: "Баскетбол"}
- {id: 763, cat: TV/Sport, desc: " | NBA"}
- {id: 762, cat: TV/Sport, desc: " | Европейский клубный баскетбол"}
- {id: 761, cat: TV/Sport, desc: " | Международные турниры"}
- {id: 502, cat: TV/Sport, desc: "Теннис"}
- {id: 768, cat: TV/Sport, desc: " | ATP World Tour"}
- {id: 767, cat: TV/Sport, desc: " | WTA Tour"}
- {id: 766, cat: TV/Sport, desc: " | ATP World Tour Masters 1000"}
- {id: 765, cat: TV/Sport, desc: " | Grand Slam tournaments"}
- {id: 764, cat: TV/Sport, desc: " | Team"}
- {id: 503, cat: TV/Sport, desc: "Авто и мото спорт"}
- {id: 769, cat: TV/Sport, desc: "Боевые единоборства"}
- {id: 773, cat: TV/Sport, desc: " | Бокс"}
- {id: 772, cat: TV/Sport, desc: " | Рестлинг"}
- {id: 771, cat: TV/Sport, desc: " | Ultimate Fighting Championship"}
- {id: 770, cat: TV/Sport, desc: " | Mixed Martial Arts"}
- {id: 504, cat: TV/Sport, desc: "Другие виды спорта"}
- {id: 786, cat: TV/Sport, desc: " | Биатлон"}
- {id: 785, cat: TV/Sport, desc: " | Волейбол"}
- {id: 784, cat: TV/Sport, desc: " | Гандбол"}
- {id: 783, cat: TV/Sport, desc: " | Бильярд"}
- {id: 782, cat: TV/Sport, desc: " | Бейсбол"}
- {id: 781, cat: TV/Sport, desc: " | Американский футбол"}
- {id: 780, cat: TV/Sport, desc: " | Покер"}
- {id: 779, cat: TV/Sport, desc: " | Легкая атлетика"}
- {id: 778, cat: TV/Sport, desc: " | Тяжелая атлетика"}
- {id: 777, cat: TV/Sport, desc: " | Велоспорт"}
- {id: 776, cat: TV/Sport, desc: " | Гимнастика"}
- {id: 775, cat: TV/Sport, desc: " | Летние виды спорта"}
- {id: 774, cat: TV/Sport, desc: " | Зимние виды спорта"}
- {id: 787, cat: TV/Sport, desc: "Архив"}
# Аудиокниги
# Audiobooks
- {id: 942, cat: Audio/Audiobook, desc: "Произведения отечественных авторов"}
- {id: 943, cat: Audio/Audiobook, desc: " | Фантастика, фэнтези, ужасы, мистика"}
- {id: 944, cat: Audio/Audiobook, desc: " | Приключения, детектив, боевик, триллер"}
- {id: 945, cat: Audio/Audiobook, desc: " | Художественная литература"}
- {id: 947, cat: Audio/Audiobook, desc: " | Современная проза, классика, поэзия"}
- {id: 946, cat: Audio/Audiobook, desc: " | Историческая литература"}
- {id: 949, cat: Audio/Audiobook, desc: " | Книги для IPhone, IPod, Apple"}
- {id: 951, cat: Audio/Audiobook, desc: " | Детская литература"}
- {id: 952, cat: Audio/Audiobook, desc: " | Сатира, Юмор"}
- {id: 955, cat: Audio/Audiobook, desc: "Произведения зарубежных авторов"}
- {id: 967, cat: Audio/Audiobook, desc: " | Фантастика, фэнтези, ужасы, мистика"}
- {id: 966, cat: Audio/Audiobook, desc: " | Приключения, детектив, боевик, триллер"}
- {id: 965, cat: Audio/Audiobook, desc: " | Художественная литература"}
- {id: 962, cat: Audio/Audiobook, desc: " | Современная проза, классика, поэзия"}
- {id: 963, cat: Audio/Audiobook, desc: " | Историческая литература"}
- {id: 960, cat: Audio/Audiobook, desc: " | Книги для IPhone, IPod, Apple"}
- {id: 959, cat: Audio/Audiobook, desc: " | Детская литература"}
- {id: 958, cat: Audio/Audiobook, desc: " | Сатира, Юмор"}
- {id: 968, cat: Audio/Audiobook, desc: "Прочая литература"}
- {id: 1025, cat: Audio/Audiobook, desc: " | Аудиоспектакли и литературные чтения"}
- {id: 1026, cat: Audio/Audiobook, desc: " | ЖЗЛ, мемуары, биографии"}
- {id: 1089, cat: Audio/Audiobook, desc: " | Для детей, родителей и учителей"}
- {id: 1019, cat: Audio/Audiobook, desc: " | Разножанровые, многоавторские сборники"}
- {id: 970, cat: Audio/Audiobook, desc: " | Обучающая и научно-популярная литература"}
- {id: 971, cat: Audio/Audiobook, desc: " | Аудиокниги на иностранных языках"}
- {id: 972, cat: Audio/Audiobook, desc: " | Психология, Тренинг, Саморазвитие"}
- {id: 973, cat: Audio/Audiobook, desc: " | Философия и религия"}
- {id: 969, cat: Audio/Audiobook, desc: " | Разное"}
- {id: 1047, cat: Audio/Audiobook, desc: "Архив"}
# Книги и журналы
# Books and Magazines
- {id: 336, cat: Books, desc: "Книги отечественных авторов"}
- {id: 341, cat: Books, desc: " | Фантастика, фэнтези, ужасы, мистика"}
- {id: 974, cat: Books, desc: " | Приключения, детектив, боевик, триллер"}
- {id: 975, cat: Books, desc: " | Художественная литература"}
- {id: 976, cat: Books, desc: " | Историческая литература"}
- {id: 977, cat: Books, desc: " | Современная проза, классика, поэзия"}
- {id: 979, cat: Books, desc: " | Детская литература"}
- {id: 980, cat: Books, desc: " | Сатира, Юмор"}
- {id: 982, cat: Books, desc: "Книги зарубежных авторов"}
- {id: 991, cat: Books, desc: " | Фантастика, фэнтези, ужасы, мистика"}
- {id: 990, cat: Books, desc: " | Приключения, детектив, боевик, триллер"}
- {id: 989, cat: Books, desc: " | Художественная литература"}
- {id: 988, cat: Books, desc: " | Историческая литература"}
- {id: 987, cat: Books, desc: " | Современная проза, классика, поэзия"}
- {id: 986, cat: Books, desc: " | Детская литература"}
- {id: 985, cat: Books, desc: " | Сатира, Юмор"}
- {id: 992, cat: Books, desc: "Прочая литература"}
- {id: 1028, cat: Books, desc: " | ЖЗЛ. Биографии. Мемуары. Историография."}
- {id: 1004, cat: Books, desc: " | Философия, Религия, Эзотерика"}
- {id: 1050, cat: Books, desc: " | Публицистика, Социология и Политология"}
- {id: 1005, cat: Books, desc: " | Художественная литература на ин языках"}
- {id: 1018, cat: Books, desc: " | Для детей, родителей и учителей"}
- {id: 1003, cat: Books, desc: " | Психология, Тренинг, Саморазвитие"}
- {id: 1002, cat: Books, desc: " | Техническая и научно-популярная литература"}
- {id: 1001, cat: Books, desc: " | Строительство, Дизайн и Ремонт"}
- {id: 1067, cat: Books, desc: " | Домоводство, Сад, Огород, Хобби"}
- {id: 1000, cat: Books, desc: " | Кулинария"}
- {id: 999, cat: Books, desc: " | Медицина и Здоровье"}
- {id: 998, cat: Books, desc: " | Бизнес, Право, Экономика, Финансы"}
- {id: 997, cat: Books, desc: " | Разножанровые коллекции книг и библиотеки"}
- {id: 996, cat: Books, desc: " | Компьютерная литература"}
- {id: 1094, cat: Books, desc: " | Компьютерная литература на иностранных языках"}
- {id: 995, cat: Books, desc: " | Справочники, энциклопедии и словари"}
- {id: 1090, cat: Books, desc: " | Обучающая и развивающая литература, учебники"}
- {id: 994, cat: Books, desc: " | Разное"}
- {id: 292, cat: Books, desc: "Журналы"}
- {id: 1015, cat: Books, desc: " | Мужские"}
- {id: 1014, cat: Books, desc: " | Женские (мода, шитьё)"}
- {id: 1068, cat: Books, desc: " | Кулинария"}
- {id: 1013, cat: Books, desc: " | Игровые и Компьютерные журналы"}
- {id: 1012, cat: Books, desc: " | Мультимедийные приложения"}
- {id: 1011, cat: Books, desc: " | Научно-популярные, техника, авто"}
- {id: 1101, cat: Books, desc: " | Журналы по электротехнике и радиоэлектронике"}
- {id: 1010, cat: Books, desc: " | Домоводство, Хобби, Бизнес"}
- {id: 1091, cat: Books, desc: " | Строительство, Дизайн и Ремонт"}
- {id: 464, cat: Books, desc: " | Комиксы, Графика, Wallpapers, Арт"}
- {id: 1008, cat: Books, desc: " | Подшивки журналов и газет"}
- {id: 1016, cat: Books, desc: " | Журналы и газеты (общий раздел)"}
- {id: 1093, cat: Books, desc: " | Журналы и газеты на иностранных языках"}
- {id: 295, cat: Books, desc: "Книги и журналы для самых маленьких и их родителей"}
- {id: 468, cat: Books, desc: "Архив"}
# Операционные системы и программное обеспечение
# Software
- {id: 834, cat: PC/0day, desc: "Операционные системы от Microsoft"}
- {id: 844, cat: PC/0day, desc: " | Оригинальные образы восстановления ОС ноутбуков (нетбуков)"}
- {id: 1083, cat: PC/0day, desc: " | Windows 10 (оригинальные образы)"}
- {id: 1084, cat: PC/0day, desc: " | Windows 8 / 8.1 (оригинальные образы)"}
- {id: 1085, cat: PC/0day, desc: " | Windows 7 (оригинальные образы)"}
- {id: 1086, cat: PC/0day, desc: " | Windows Vista (оригинальные образы)"}
- {id: 1087, cat: PC/0day, desc: " | Windows XP (оригинальные образы)"}
- {id: 1088, cat: PC/0day, desc: " | Windows OS, выпущенные до 2001 года (оригинальные образы)"}
- {id: 1035, cat: PC/0day, desc: " | Сборки Windows 10"}
- {id: 843, cat: PC/0day, desc: " | Сборки Windows 8 / 8.1"}
- {id: 842, cat: PC/0day, desc: " | Сборки Windows 7"}
- {id: 841, cat: PC/0day, desc: " | Сборки Windows Vista"}
- {id: 840, cat: PC/0day, desc: " | Сборки Windows XP"}
- {id: 1051, cat: PC/0day, desc: " | Сборки Windows - &quot;все в одном&quot;"}
- {id: 839, cat: PC/0day, desc: " | Серверные ОС"}
- {id: 838, cat: PC/0day, desc: " | Патчи, RC, Beta, Service Packs и дополнения для ОС от..."}
- {id: 837, cat: PC/0day, desc: " | Изменение интерфейса"}
- {id: 1096, cat: PC/0day, desc: " | Обои и Скринсейверы"}
- {id: 836, cat: PC/0day, desc: " | Разное (Windows)"}
- {id: 1029, cat: PC/0day, desc: " | Активация ОС Windows и ПО Microsoft"}
- {id: 1071, cat: PC/0day, desc: " | Архив"}
- {id: 845, cat: PC/Mac, desc: "Операционные системы и ПО для Apple Macintosh"}
- {id: 852, cat: PC/Mac, desc: " | Mac OS"}
- {id: 851, cat: PC/Mac, desc: " | Mac OS (для РС-Хакинтош)"}
- {id: 850, cat: PC/Mac, desc: " | Системные программы для Mac OS"}
- {id: 849, cat: PC/Mac, desc: " | Программы для просмотра и обработки видео"}
- {id: 848, cat: PC/Mac, desc: " | Mac OS Программы для просмотра и обработки графики"}
- {id: 847, cat: PC/Mac, desc: " | Mac OS Аудио редакторы и конверторы для Mac OS"}
- {id: 846, cat: PC/Mac, desc: " | Другие программы для Mac OS"}
- {id: 1072, cat: PC/Mac, desc: " | Архив"}
- {id: 853, cat: PC, desc: "Операционные системы и ПО для Linux, Unix и других ОС"}
- {id: 856, cat: PC, desc: " | Операционные системы"}
- {id: 855, cat: PC, desc: " | Программное обеспечение"}
- {id: 854, cat: PC, desc: " | Разное"}
- {id: 1073, cat: PC, desc: " | Архив"}
- {id: 857, cat: PC, desc: "Веб-разработка и Программирование"}
- {id: 864, cat: PC, desc: " | Среды программирования, компиляторы и вспомогател..."}
- {id: 863, cat: PC, desc: " | Компоненты для сред программирования"}
- {id: 862, cat: PC, desc: " | Системы управления базами данных"}
- {id: 861, cat: PC, desc: " | Текстовые редакторы"}
- {id: 860, cat: PC, desc: " | Скрипты и шаблоны"}
- {id: 859, cat: PC, desc: " | Веб-разработка"}
- {id: 858, cat: PC, desc: " | Разное"}
- {id: 1074, cat: PC, desc: " | Архив"}
- {id: 865, cat: PC, desc: "Системные программы"}
- {id: 918, cat: PC, desc: " | Live /PE/ Boot CD (DVD, USB)"}
- {id: 875, cat: PC, desc: " | Настройка и оптимизация ОС (software)"}
- {id: 874, cat: PC, desc: " | Резервное копирование и восстановление данных"}
- {id: 1092, cat: PC, desc: " | Архиваторы и файловые менеджеры"}
- {id: 873, cat: PC, desc: " | Диагностика и обслуживание (hardware)"}
- {id: 872, cat: PC, desc: " | Сборники программ"}
- {id: 871, cat: PC, desc: " | Работа с носителями информации (SSD, HDD, USB, DVD, CD)"}
- {id: 1098, cat: PC, desc: " | Программы для работы с ПК со смартфонами (планшетами) н..."}
- {id: 870, cat: PC, desc: " | Программы для интернет и сетей"}
- {id: 869, cat: PC, desc: " | Безопасность"}
- {id: 868, cat: PC, desc: " | Серверное ПО"}
- {id: 867, cat: PC, desc: " | Драйверы"}
- {id: 866, cat: PC, desc: " | Разное"}
- {id: 1075, cat: PC, desc: " | Архив"}
- {id: 876, cat: PC, desc: "Системы для бизнеса, офиса, научной и проектной работы"}
- {id: 884, cat: PC, desc: " | Офисные системы"}
- {id: 1102, cat: PC, desc: " | Дополнения (надстройки и т.д.) для офисных систем"}
- {id: 4, cat: PC, desc: " | Системы для бизнеса"}
- {id: 881, cat: PC, desc: " | Системы для научной работы"}
- {id: 892, cat: PC, desc: " | Программы для архитекторов и дизайнеров интерьеров"}
- {id: 889, cat: PC, desc: " | Программы для верстки, сканирования, печати и работы ..."}
- {id: 890, cat: PC, desc: " | Работа с PDF и DjVu"}
- {id: 882, cat: PC, desc: " | Медицинский софт"}
- {id: 879, cat: PC, desc: " | Софт для специалистов"}
- {id: 880, cat: PC, desc: " | Словари, переводчики"}
- {id: 878, cat: PC, desc: " | САПР"}
- {id: 877, cat: PC, desc: " | Разное"}
- {id: 1077, cat: PC, desc: " | Архив"}
- {id: 913, cat: PC, desc: "Справочно-правовые системы"}
- {id: 917, cat: PC, desc: " | Консультант Плюс"}
- {id: 1070, cat: PC, desc: " | КонсультантБухгалтер: Версия Проф"}
- {id: 1036, cat: PC, desc: " | Архив Консультант Плюс"}
- {id: 916, cat: PC, desc: " | Другие справочно-правовые системы"}
- {id: 914, cat: PC, desc: " | Справочные системы"}
- {id: 915, cat: PC, desc: " | Общий архив раздела &quot;Справочно-правовые системы&quot;"}
- {id: 908, cat: PC, desc: "Системы навигации и карты, ГИС"}
- {id: 1107, cat: PC/Phone-IOS, desc: " | iOS"}
- {id: 1106, cat: PC/Phone-Android, desc: " | Android"}
- {id: 1105, cat: PC, desc: " | Garmin"}
- {id: 1104, cat: PC/0day, desc: " | Windows XP/Vista/7/8/8.1/10"}
- {id: 1103, cat: PC/0day, desc: " | Windows CE"}
- {id: 1108, cat: PC, desc: " | Разное (Системы навигации и карты, ГИС)"}
- {id: 1097, cat: PC, desc: " | Архив (Системы навигации и карты, ГИС)"}
- {id: 885, cat: PC, desc: "Программы для работы с мультимедиа и 3D"}
- {id: 896, cat: PC, desc: " | 3D моделирование, рендеринг и плагины для них"}
- {id: 895, cat: PC, desc: " | Анимация"}
- {id: 894, cat: PC, desc: " | Аудио, видео конвертеры"}
- {id: 893, cat: PC, desc: " | Редакторы и конвертеры графики"}
- {id: 891, cat: PC, desc: " | Работа со звуком, Редакторы видео"}
- {id: 888, cat: PC, desc: " | Аудио и видео плееры, рекордеры и кодеки"}
- {id: 887, cat: PC, desc: " | Каталогизаторы и просмотр графики"}
- {id: 886, cat: PC, desc: " | Разное"}
- {id: 1076, cat: PC, desc: " | Архив"}
- {id: 897, cat: PC, desc: "Материалы для мультимедиа и дизайна"}
- {id: 907, cat: PC, desc: " | Текстуры, материалы и проекты"}
- {id: 906, cat: PC, desc: " | 3D модели и сцены Photostoсks"}
- {id: 905, cat: PC, desc: " | Заготовки, виньетки, костюмы, шаблоны и рамки"}
- {id: 904, cat: PC, desc: " | Стили, кисти, формы и узоры"}
- {id: 903, cat: PC, desc: " | Футажи"}
- {id: 902, cat: PC, desc: " | Шрифты"}
- {id: 901, cat: PC, desc: " | Библиотеки сэмплов и Звуковые эффекты"}
- {id: 900, cat: PC, desc: " | Векторные клипарты"}
- {id: 899, cat: PC, desc: " | Растровые клипарты"}
- {id: 898, cat: PC, desc: " | Разное"}
- {id: 1078, cat: PC, desc: " | Архив"}
- {id: 909, cat: PC, desc: "Разное"}
# Смартфоны и Планшеты
# mobiles
- {id: 921, cat: PC/Phone-Other, desc: "Windows Phone 7"}
- {id: 936, cat: PC/Phone-Other, desc: " | Прошивки"}
- {id: 935, cat: PC/Phone-Other, desc: " | Игры"}
- {id: 934, cat: PC/Phone-Other, desc: " | Программы"}
- {id: 1079, cat: PC/Phone-Other, desc: " | Архив"}
- {id: 922, cat: PC/Phone-Other, desc: "Windows Mobile 5.x - 6.x"}
- {id: 927, cat: PC/Phone-Other, desc: " | Прошивки"}
- {id: 926, cat: PC/Phone-Other, desc: " | Игры"}
- {id: 925, cat: PC/Phone-Other, desc: " | Программы"}
- {id: 1080, cat: PC/Phone-Other, desc: " | Архив"}
- {id: 923, cat: PC/Phone-Android, desc: "Android"}
- {id: 930, cat: PC/Phone-Android, desc: " | Игры"}
- {id: 929, cat: PC/Phone-Android, desc: " | Программы"}
- {id: 928, cat: PC/Phone-Android, desc: " | Прошивки"}
- {id: 1081, cat: PC/Phone-Android, desc: " | Архив"}
- {id: 924, cat: PC/Phone-Other, desc: "Symbian"}
- {id: 933, cat: PC/Phone-Other, desc: " | Игры"}
- {id: 932, cat: PC/Phone-Other, desc: " | Программы"}
- {id: 931, cat: PC/Phone-Other, desc: " | Прошивки"}
- {id: 1082, cat: PC/Phone-Other, desc: " | Архив"}
- {id: 1048, cat: PC/Phone-Other, desc: "Архив"}
# Авто и Мото
# Auto and Bikes
- {id: 1095, cat: TV/Sport, desc: "Книги по ремонту/обслуживанию/эксплуатации ТС"}
- {id: 1110, cat: TV/Sport, desc: "Программы для прошивки и диагностики авто, прошивки"}
- {id: 1111, cat: TV/Sport, desc: "Мото техника"}
- {id: 1112, cat: TV/Sport, desc: "Водный транспорт"}
- {id: 1113, cat: TV/Sport, desc: "Видео по ремонту и тюнингу ТС"}
# Песочница
# sandbox
- {id: 507, cat: Other, desc: "Песочница"}
# Pron
# xxx
- {id: 1037, cat: XXX, desc: "Русское порно"}
- {id: 1038, cat: XXX, desc: " | Фильмы"}
- {id: 1039, cat: XXX, desc: " | Ролики, сайт рипы"}
- {id: 1040, cat: XXX, desc: " | Любительское видео"}
- {id: 368, cat: XXX, desc: "Зарубежное порно"}
- {id: 1062, cat: XXX, desc: " | Фильмы 2020 года"}
- {id: 1061, cat: XXX, desc: " | Фильмы 2001-2019 года"}
- {id: 1043, cat: XXX, desc: " | Фильмы до 2000 года"}
- {id: 1042, cat: XXX, desc: " | Зарубежные фильмы с переводом"}
- {id: 1069, cat: XXX, desc: " | Порно Пародии"}
- {id: 1065, cat: XXX, desc: " | Нетрадиционное порно"}
- {id: 821, cat: XXX, desc: " | Ролики, сайт рипы"}
- {id: 1041, cat: XXX, desc: " | Японское порно без цензуры"}
- {id: 820, cat: XXX, desc: " | Мульты"}
- {id: 819, cat: XXX, desc: " | Фото"}
- {id: 818, cat: XXX, desc: " | Разное"}
- {id: 816, cat: XXX, desc: "3D Pron"}
- {id: 825, cat: XXX, desc: " | Фильмы"}
- {id: 824, cat: XXX, desc: " | Ролики, сайт рипы"}
- {id: 823, cat: XXX, desc: " | Мульты"}
- {id: 822, cat: XXX, desc: " | Разное"}
- {id: 271, cat: XXX, desc: "Архив"}
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: striprussian
type: checkbox
label: Strip Russian Letters
default: false
- name: sort
type: select
label: Sort requested from site
default: "1"
options:
"1": "created"
"10": "seeders"
"7": "size"
"2": "title"
- name: type
type: select
label: Order requested from site
default: "2"
options:
"2": "desc"
"1": "asc"
login:
path: login.php
method: form
form: form[action="./login.php"]
inputs:
login_username: "{{ .Config.username }}"
login_password: "{{ .Config.password }}"
redirect: /
autologin: 1
error:
- selector: table.error
test:
path: index.php
selector: a[href="./login.php?logout=1"]
search:
paths:
- path: tracker.php
keywordsfilters:
- name: diacritics
args: replace
- name: re_replace # S01 to сезон 1
args: ["(?i)\\bS0*(\\d+)\\b", "сезон $1"]
- name: re_replace # S01E01 to сезон 1 серии 1
args: ["(?i)\\bS0*(\\d+)E0*(\\d+)\\b", "сезон $1 серии $2"]
inputs:
$raw: "{{ if .Categories }}{{ range .Categories }}f[]={{.}}&{{end}}{{else}}f[]=-1{{end}}"
prev_allw: 1
prev_a: 0
prev_dla: 0
prev_dlc: 0
prev_dld: 0
prev_dlw: 0
prev_my: 0
prev_new: 0
prev_sd: 0
prev_da: 1
prev_dc: 0
prev_df: 1
prev_ds: 0
prev_tor_type: 0
# sort by 1=registered 2=topicTitle 4=completed 10=seed 11=leech 12=up 13=down 5=replies 6=views 7=size 8=lastPost 9=seedLastSeen
o: "{{ .Config.sort }}"
# 1=asc 2=desc
s: "{{ .Config.type }}"
# show category
dc: 0
# show forum
df: 1
# show author
da: 1
# show speed
ds: 0
# -1=all time
tm: -1
# seed not seen -1=disregard
sns: -1
# group releases -1=not selected
srg: -1
nm: "{{ .Keywords }}"
# find a username
pn: ""
# search by partial word
allw: 0
rows:
selector: tr[id^="tor_"]:has(a[href^="./download.php?id="])
fields:
category:
selector: a[href^="viewforum.php?f="]
attribute: href
filters:
- name: querystring
args: f
descr_cat:
selector: a[href^="viewforum.php?f="]
attribute: href
filters:
- name: querystring
args: f
description:
selector: a[href^="viewforum.php?f="]
filters:
- name: prepend
args: "cat={{ .Result.descr_cat }} "
title:
selector: a[href^="viewtopic.php?t="]
filters:
# hell no, i'm not unravelling this pile of spaghetti. Someone else can spend their life sorting this mess out.
# Stand Up (16.02.2020) WEB-DLRip (сезон 7, выпуск 13)
# Прощаться не будем (2018) WEBDL [H.264/1080p-LQ] (серии 1-4 из 4) [Расширенная версия]
# Поцелуй Сократа (2011) WEBDL (сезон 1, серии 1-12 из 12)
# Барри / Barry (2018-2019) WEB-DLRip (сезон 1-2, серии 1-16 из 16) Amedia
# Стрела / Arrow / Сезон: 8 / Серии: 1-10 из 10 (Дэвид Баррет, Дэвид Наттер) [2019, фантастика, боевик, драма, детектив, приключения, WEB-DLRip] [MVO] [LostFilm]
# Викинги / Vikings / 6 сезон / 1-10 из 20 / (Стив Сэйнт Лигер) [2019, боевик, драма, мелодрама, военный, история, WEB-DLRip] [MVO] [AlexFilm]
# Рикошет (Денис Карышев, Вячеслав Кириллов) (16 серий из 16) [2019/2020, боевик, WEBDL, HDTV] 50%DL
# to show but a few variations!
# normalize to SXXEYY format
- name: re_replace
args: ["[\\,\\:\\-\\/\\|\\[\\]]", " "]
# - name: re_replace
# args: ["[\\.\\,\\:\\-\\/\\|\\[\\]\\(\\)]", " "]
# - name: re_replace
# args: ["(.*)[CСcс]езон\\s*(\\d+)\\s*[CСcс]ери[ияй]\\s*(\\d+)\\s*(\\d+)\\s*из\\s*\\d+(.*)", "$1 S$2E$3-$4 rus $5"]
# - name: re_replace
# args: ["(.*)[CСcс]езон\\s*(\\d+)\\s*(\\d+)\\s*(\\d+)\\s*[CСcс]ери[ияй]\\s*из\\s*\\d+(.*)", "$1 S$2E$3-$4 rus $5"]
# - name: re_replace
# args: ["(.*)(\\d+)\\s*[CСcс]езон\\s*(\\d+)\\s*(\\d+)\\s*[CСcс]ери[ияй]\\s*из\\s*\\d+(.*)", "$1 S$2E$3-$4 rus $5"]
# - name: re_replace
# args: ["(.*)[CСcс]езон\\s*(\\d+)\\s*[CСcс]ери[ияй]\\s*(\\d+)\\s*(\\d+)\\s*(.*)", "$1 S$2E$3-$4 rus $5"]
# - name: re_replace
# args: ["(.*)[CСcс]езон\\s*(\\d+)\\s*[CСcс]ери[ияй]\\s*(\\d+)\\s*из\\s*\\d+(.*)", "$1 S$2E$3 rus $4"]
# - name: re_replace
# args: ["(.*)[CСcс]езон\\s*(\\d+)(.*)", "$1 S$2 rus $3"]
# - name: re_replace
# args: ["(.*)[CСcс]]ери[ия]\\s*(\\d+)(.*)", "$1 E$2 rus $3"]
- name: re_replace
args: ["(\\([А-Яа-яЁё\\W]+\\))|(^[А-Яа-яЁё\\W\\d]+\\/ )|([а-яА-ЯЁё \\-]+,+)|([а-яА-ЯЁё]+)", "{{ if .Config.striprussian }}{{ else }}$1$2$3$4{{ end }}"]
- name: replace
args: ["WEBRip", "WEBDL"]
- name: replace
args: ["WEB DL", "WEBDL"]
- name: replace
args: ["WEBDLRip", "WEBDL"]
- name: replace
args: ["HDTVRip", "HDTV"]
details:
selector: a[href^="viewtopic.php?t="]
attribute: href
download:
selector: a[href^="./download.php?id="]
attribute: href
magnet:
selector: a[href^="magnet:?xt="]
attribute: href
size:
selector: td:nth-child(6) > u
seeders:
selector: td.seedmed > b
leechers:
selector: td.leechmed > b
grabs:
selector: td:nth-child(9)
date:
selector: td:last-child > u
downloadvolumefactor:
case:
img[src="images/tor_gold.gif"]: 0
img[src="images/tor_silver.gif"]: 0.5
"*": 1
uploadvolumefactor:
text: 1
# TorrentPier II

View File

@@ -1,4 +1,4 @@
---
---
site: datascene
name: DataScene
description: "DataScene (DS) is a ROMANIAN Private Torrent Tracker for MOVIES / TV / GENERAL"
@@ -54,9 +54,33 @@
- {id: 12, cat: XXX, desc: "XxX"}
modes:
search: [q]
movie-search: [q]
tv-search: [q, season, ep]
search: [q, imdbid]
tv-search: [q, season, ep, imdbid]
movie-search: [q, imdbid]
settings:
- name: username
type: text
label: Username
- name: password
type: password
label: Password
- name: sort
type: select
label: Sort requested from site
default: "4"
options:
"4": "created"
"7": "seeders"
"5": "size"
"1": "title"
- name: type
type: select
label: Order requested from site
default: "desc"
options:
"desc": "desc"
"asc": "asc"
login:
path: takelogin.php
@@ -68,7 +92,7 @@
- selector: td.embedded:has(h2:contains("failed"))
test:
path: browse.php
ratio:
path: browse.php
selector: font:contains("Ratio:") > span
@@ -77,9 +101,14 @@
paths:
- path: browse.php
inputs:
$raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
search: "{{ .Keywords }}"
incldead: 1
$raw: "{{ if .Categories}}{{ range .Categories }}c{{.}}=1&{{end}}{{else}}cat=0{{end}}"
search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{else}}{{ .Keywords }}{{end}}"
# 1 active 2 incldead 3 onlydead 4 free
incldead: 2
# 0 name 1 genre 2 descr 3 imdb
blah: "{{ if .Query.IMDBID }}3{{else}}0{{end}}"
sort: "{{ .Config.sort }}"
type: "{{ .Config.type }}"
rows:
selector: div.ncls > table > tbody > tr:has(a.tname)

View File

@@ -26,9 +26,9 @@
- {id: 8, cat: TV, desc: "TV shows"}
modes:
search: [q]
tv-search: [q, season, ep]
movie-search: [q]
search: [q, imdbid]
tv-search: [q, season, ep, imdbid]
movie-search: [q, imdbid]
settings:
- name: username
@@ -61,7 +61,7 @@
username: "{{ .Config.username }}"
password: "{{ .Config.password }}"
keeplogged: 1
test:
test:
path: my.php
search:
@@ -69,10 +69,14 @@
- path: browse.php
inputs:
$raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
search: "{{ .Keywords }}"
search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{else}}{{ .Keywords }}{{end}}"
# active 1 incldead 2 onlydead
incldead: 1
# 1 = look in description
Lysing: "{{ if .Query.IMDBID }}1{{else}}{{end}}"
sort: "{{ .Config.sort }}"
type: "{{ .Config.type }}"
# does not return imdb links
rows:
selector: table[class="torrentlist"] > tbody > tr:has(a[href*="details.php?id="])

View File

@@ -5,13 +5,22 @@
language: en-us
type: public
encoding: UTF-8
followredirect: true
links:
- https://www.demonoid.is/
- https://dnoid.black-mirror.xyz/
- https://dnoid.unblocked.casa/
- https://dnoid.proxyportal.fun/
- https://dnoid.uk-unblock.xyz/
- https://dnoid.ind-unblock.xyz/
legacylinks:
- https://www.dnoid.to/
- https://www.dnoid.to/
- https://demonoid.unblockit.pro/
- https://demonoid.unblockit.one/ # currently down
caps:
categorymappings:
# fetch these from https://www.demonoid.is/cached/torrent_categories_script.js?v5
# Applications
- {id: 1, cat: PC/Phone-Android, desc: "Applications Android"}
- {id: 2, cat: PC/Phone-IOS, desc: "Applications Iphone / Ipod touch"}
@@ -129,6 +138,7 @@
- {id: 108, cat: TV/Anime, desc: "Anime Horror"}
- {id: 109, cat: TV/Anime, desc: "Anime Other"}
- {id: 157, cat: TV/Anime, desc: "Anime Romance"}
- {id: 158, cat: TV/Anime, desc: "Anime Sci-Fi"}
# Movies
- {id: 151, cat: Movies, desc: "Movies Action"}
- {id: 110, cat: Movies, desc: "Movies Adventure"}
@@ -258,14 +268,21 @@
- {id: 233, cat: TV, desc: "TV Trailers"}
- {id: 234, cat: TV, desc: "TV War"}
- {id: 235, cat: TV, desc: "TV Western"}
# cat misc has no subcats
# cat 7 misc has no subcats
modes:
search: [q]
tv-search: [q, season, ep]
movie-search: [q]
search: [q, imdbid]
tv-search: [q, season, ep, imdbid]
movie-search: [q, imdbid]
settings:
- name: cookie
type: text
label: Cookie
- name: info
type: info
label: How to get the Cookie
default: "<ol><li>Access this tracker with your browser<li>Open the <b>DevTools</b> panel by pressing <b>F12</b><li>Select the <b>Network</b> tab<li>Click on the <b>Doc</b> button<li>Refresh the page by pressing <b>F5</b><li>Select the <b>Headers</b> tab<li>Find <b>'cookie:'</b> in the <b>Request Headers</b> section<li><b>Select</b> and <b>Copy</b> the whole cookie string <i>(everything after 'cookie: ')</i> and <b>Paste</b> here.</ol>"
- name: sort
type: select
label: Sort requested from site
@@ -282,14 +299,19 @@
"desc": "desc"
"asc": "asc"
login:
method: cookie
test:
path: files/
download:
selector: a[href^="magnet:?xt="]
attribute: href
search:
paths:
# https://www.demonoid.is/files/?c154&language=0&quality=0&seeded=2&query=world&to=on&sort=
# https://www.demonoid.is/files/?seeded=2&language=0&quality=0&to=on&query=world
# https://www.demonoid.is/files/?c154&language=0&quality=0&seeded=2&query=world&to=1&sort=
# https://www.demonoid.is/files/?seeded=2&language=0&quality=0&to=1&query=world
- path: files/
inputs:
$raw: "{{ range .Categories }}c{{.}}&{{end}}"
@@ -300,10 +322,11 @@
# 0 all
quality: 0
# search in titles only
to: on
query: "{{ .Keywords }}"
to: "{{ if .Query.IMDBID }}{{else}}1{{end}}"
query: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{else}}{{ .Keywords }}{{end}}"
sort: "{{ .Config.sort }}"
order: "{{ .Config.type }}"
# does not return imdb link in results
rows:
selector: table.font_12px tr:has(td[class^="tone_1"])
@@ -324,7 +347,7 @@
optional: true
attribute: title
category:
selector: a[href*="&subcategory="]
selector: span > a[href*="&subcategory="]
attribute: href
optional: true
filters:

View File

@@ -0,0 +1,169 @@
---
site: demonsite
name: Demon-Site
description: "Demon-Site is a HUNGARIAN Private Torrent Tracker for MOVIES / TV / GENERAL"
language: hu
type: private
encoding: UTF-8
links:
- https://demon-site.eu/
caps:
categorymappings:
- {id: 6, cat: Movies/BluRay, desc: "Film/BDRip/Eng"}
- {id: 5, cat: Movies/BluRay, desc: "Film/BDRip/Hun"}
- {id: 4, cat: Movies/SD, desc: "Film/Cam/Eng"}
- {id: 3, cat: Movies/SD, desc: "Film/Cam/Hun"}
- {id: 8, cat: Movies/DVD, desc: "Film/DVD/Eng"}
- {id: 7, cat: Movies/DVD, desc: "Film/DVD/Hun"}
- {id: 10, cat: Movies/DVD, desc: "Film/DVD9/Eng"}
- {id: 9, cat: Movies/DVD, desc: "Film/DVD9/Hun"}
- {id: 12, cat: Movies/HD, desc: "Film/HD/Eng"}
- {id: 11, cat: Movies/HD, desc: "Film/HD/Hun"}
- {id: 2, cat: Movies/SD, desc: "Film/XviD/Eng"}
- {id: 1, cat: Movies/SD, desc: "Film/XviD/Hun"}
- {id: 18, cat: PC/Games, desc: "Játék/ISO"}
- {id: 19, cat: PC/Games, desc: "Játék/Rip"}
- {id: 23, cat: Books, desc: "Könyv/Eng"}
- {id: 22, cat: Books, desc: "Könyv/Hun"}
- {id: 24, cat: Other, desc: "Képek"}
- {id: 20, cat: Console, desc: "Konzol"}
- {id: 21, cat: PC/Phone-Other, desc: "Mobil"}
- {id: 16, cat: Audio, desc: "Mp3/Eng"}
- {id: 15, cat: Audio, desc: "Mp3/Hun"}
- {id: 17, cat: PC/0day, desc: "Program"}
- {id: 14, cat: TV, desc: "Sorozat/Eng"}
- {id: 13, cat: TV, desc: "Sorozat/Hun"}
- {id: 25, cat: XXX, desc: "XXX/Film"}
- {id: 26, cat: XXX, desc: "XXX/Kép"}
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: 2facode
type: text
label: 2FA code
- name: info_2fa
type: info
label: "About 2FA code"
default: "Only fill in the <b>2FA code</b> box if you have enabled <b>2FA</b> on the Demon-Site Web Site. Otherwise just leave it empty."
- name: sort
type: select
label: Sort requested from site
default: "4"
options:
"1": "name"
"5": "size"
"4": "added"
"7": "seeders"
- name: type
type: select
label: Order requested from site
default: "desc"
options:
"desc": "desc"
"asc": "asc"
login:
path: login.php
method: post
inputs:
username: "{{ .Config.username }}"
password: "{{ .Config.password }}"
code: "{{ .Config.2facode }}"
error:
- selector: td.embedded:contains("Hiba")
message:
selector: table[cellpadding="5"] tr:last-child td
test:
path: index.php
selector: a[href^="logout.php?k="]
search:
paths:
# https://demon-site.eu/browse.php?c25=1&c26=1&search=&incldead=1
- path: browse.php
inputs:
$raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
search: "{{ .Keywords }}"
# 0 active 1 both 2 dead 3 myupload 4 notseeded
incldead: 1
sort: "{{ .Config.sort }}"
type: "{{ .Config.type }}"
# does not support imdbid searches
rows:
selector: table > tbody > tr:has(a[href^="download.php?torrent="])
fields:
category:
selector: a[href^="browse.php?cat="]
attribute: href
filters:
- name: querystring
args: cat
title:
selector: a[href^="details.php?id="]
attribute: title
filters:
- name: regexp
args: "Név:\\s*(.+?)\\s*Első név:"
details:
selector: a[href^="details.php?id="]
attribute: href
download:
selector: a[href^="download.php?torrent="]
attribute: href
banner:
selector: a.preview
attribute: href
imdb:
selector: a[href*="www.imdb.com/title/tt"]
attribute: href
files:
selector: td:nth-child(3)
filters:
- name: regexp
args: (\d+)
date:
selector: td:nth-child(5)
filters:
- name: dateparse
args: "2006-01-02 15:04:05"
size:
selector: td:nth-child(6)
grabs:
selector: td:nth-child(7)
filters:
- name: regexp
args: (\d+)
seeders:
selector: td:nth-child(8)
leechers:
selector: td:nth-child(9)
downloadvolumefactor:
text: 1
downloadvolumefactor:
optional: true
selector: img[src="skin/sotet/arrowdown.png"] ~ span
filters:
- name: regexp
args: (\d+)
uploadvolumefactor:
text: 1
uploadvolumefactor:
optional: true
selector: img[src="skin/sotet/arrowup.png"] ~ span
filters:
- name: regexp
args: (\d+)
# engine n/a

View File

@@ -17,7 +17,7 @@
- {id: 5, cat: Console, desc: "Game"}
modes:
search: [q]
search: [q, imdbid]
tv-search: [q, season, ep, imdbid]
movie-search: [q, imdbid]
@@ -48,17 +48,20 @@
login:
path: login
method: form
form: form[action$="/login"]
inputs:
username: "{{ .Config.username }}"
password: "{{ .Config.password }}"
remember: on
selectorinputs:
_token:
selector: input[name="_token"]
attribute: value
error:
- selector: script[nonce]:contains("Error")
message:
selector: script[nonce]:contains("Error")
test:
path: /
selector: a[href$="/logout"]
- selector: div#ERROR_COPY
# test:
# path: /
# selector: a[href$="/logout"]
ratio:
path: /
@@ -133,7 +136,7 @@
filters:
# translations for Turkish|Estonian|Danish|Italian|Polish|Norwegian|Portuguese|Czech|Russian|Romanian|Spanish|French|German|Bulgarian|Dutch|Chinese
- name: re_replace
args: ["(?i)(önce|tagasi|geleden|fa|temu|siden|atrás|nazpět|назад|acum|în urmă|hace|il y a|vor|преди|前)", " ago"]
args: ["(?i)(önce|tagasi|geleden|fa|temu|siden|há|atrás|nazpět|назад|acum|în urmă|hace|il y a|vor|преди|前)", " ago"]
- name: re_replace
args: ["(?i)(minutit|minutter|minuti|minuty|minutos|минуты|минут|Minuten|минути|minuten)", "minutes"]
- name: re_replace

View File

@@ -0,0 +1,163 @@
---
site: dimeadozen
name: DimeADozen
description: "DimeADozen (EzTorrent) is a Semi-Private Torrent Tracker for BOOTLEG MUSIC"
language: en
type: semi-private
encoding: UTF-8
links:
- http://www.dimeadozen.org/ # site does not support https ERR_CONNECTION_REFUSED
caps:
categorymappings:
- {id: 51, cat: Audio, desc: "Acoustic"}
- {id: 4, cat: Audio, desc: "Alternate"}
- {id: 47, cat: Audio, desc: "Alternate Country"}
- {id: 7, cat: Audio, desc: "Americana"}
- {id: 45, cat: Audio, desc: "Avantgarde"}
- {id: 23, cat: Audio, desc: "Bluegrass"}
- {id: 10, cat: Audio, desc: "Blues"}
- {id: 17, cat: Audio, desc: "Brit Pop"}
- {id: 42, cat: Audio, desc: "Celtic Soul"}
- {id: 24, cat: Audio, desc: "Chanson"}
- {id: 25, cat: Audio, desc: "Classic"}
- {id: 55, cat: Audio, desc: "Classical"}
- {id: 44, cat: Audio, desc: "Club Rock"}
- {id: 3, cat: Audio, desc: "Country"}
- {id: 41, cat: Audio, desc: "Dancefloor"}
- {id: 49, cat: Audio, desc: "Desert Surf"}
- {id: 48, cat: Audio, desc: "Drum'n'Bass"}
- {id: 53, cat: Audio, desc: "Electronica"}
- {id: 26, cat: Audio, desc: "Ethno"}
- {id: 9, cat: Audio, desc: "Folk"}
- {id: 12, cat: Audio, desc: "Funk"}
- {id: 19, cat: Audio, desc: "Garage Rock"}
- {id: 27, cat: Audio, desc: "Gospel"}
- {id: 28, cat: Audio, desc: "Gothic Rock"}
- {id: 40, cat: Audio, desc: "Grunge"}
- {id: 61, cat: Audio, desc: "Hard Rock"}
- {id: 59, cat: Audio, desc: "Hardcore"}
- {id: 34, cat: Audio, desc: "Heavy Metal"}
- {id: 29, cat: Audio, desc: "HipHop"}
- {id: 30, cat: Audio, desc: "House"}
- {id: 31, cat: Audio, desc: "Industrial"}
- {id: 57, cat: Audio, desc: "Irish Folk"}
- {id: 50, cat: Audio, desc: "Jam Bands"}
- {id: 2, cat: Audio, desc: "Jazz"}
- {id: 60, cat: Audio, desc: "Jazz Fusion"}
- {id: 18, cat: Audio, desc: "Kraut Rock"}
- {id: 32, cat: Audio, desc: "Latin Music"}
- {id: 33, cat: Audio, desc: "Mainstream"}
- {id: 46, cat: Audio, desc: "New German Wave"}
- {id: 5, cat: Audio, desc: "New Wave"}
- {id: 14, cat: Audio, desc: "Pop"}
- {id: 13, cat: Audio, desc: "Progressive Rock"}
- {id: 58, cat: Audio, desc: "Psychedelic"}
- {id: 6, cat: Audio, desc: "Punk"}
- {id: 35, cat: Audio, desc: "Rap"}
- {id: 36, cat: Audio, desc: "Rave"}
- {id: 21, cat: Audio, desc: "Reggae"}
- {id: 1, cat: Audio, desc: "Rock"}
- {id: 20, cat: Audio, desc: "Rock'n'Roll"}
- {id: 8, cat: Audio, desc: "Singer/Songwriter"}
- {id: 22, cat: Audio, desc: "Ska"}
- {id: 37, cat: Audio, desc: "Skiffle"}
- {id: 11, cat: Audio, desc: "Soul"}
- {id: 54, cat: Audio, desc: "Southern Rock"}
- {id: 38, cat: Audio, desc: "Swing"}
- {id: 39, cat: Audio, desc: "Techno"}
- {id: 43, cat: Audio, desc: "Tin Pan Alley"}
- {id: 52, cat: Audio, desc: "Unplugged"}
- {id: 15, cat: Audio, desc: "West Coast"}
- {id: 16, cat: Audio, desc: "World Music"}
- {id: 56, cat: Audio, desc: "Zydeco"}
modes:
search: [q]
music-search: [q]
settings:
- name: username
type: text
label: Username
- name: password
type: password
label: Password
login:
path: take-login.php
method: post
inputs:
username: "{{ .Config.username }}"
password: "{{ .Config.password }}"
returnto: "index.php"
logout: ""
error:
- selector: table.message:contains("Error")
test:
path: index.php
selector: a[href="account-logout.php"]
download:
# download.php/673256/Talk%20Talk%20-%201986-07-05%20Paris.torrent
selector: a[href^="download.php/"]
attribute: href
search:
paths:
# http://www.dimeadozen.org/torrents-browse.php?search=%2Btalk+%2Bparis&cat=0&incldead=1&searchscope=1
- path: torrents-browse.php
inputs:
search: "{{ .Keywords }}"
# (empty) active only, 1 incldead
incldead: 1
# (empty) search in title & filename & descr, 1 title & filename only
searchscope: 1
keywordsfilters:
- name: re_replace
args: ["(\\w+)", " +$1"] # prepend + to each word
# does not support multi category filtering
# does not support imdbid searches, does not return imdb link in results
# does not support sorting
rows:
selector: table.torrent > tbody > tr:has(a[href^="torrents-details.php?id="])
fields:
category:
selector: a[href^="torrents-browse.php?cat="]
attribute: href
filters:
- name: querystring
args: cat
title:
selector: a[href^="torrents-details.php?id="]
details:
selector: a[href^="torrents-details.php?id="]
attribute: href
download:
selector: a[href^="torrents-details.php?id="]
attribute: href
files:
selector: td:nth-child(3)
date:
selector: td:nth-child(5)
filters:
- name: dateparse
args: "2006-01-0215:04:05"
size:
selector: td:nth-child(6)
grabs:
selector: td:nth-child(7)
filters:
- name: regexp
args: (\d+)
seeders:
selector: td:nth-child(8)
leechers:
selector: td:nth-child(9)
downloadvolumefactor:
text: 1
uploadvolumefactor:
text: 1
# EzTorrent 0.7

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