Compare commits

..

1880 Commits

Author SHA1 Message Date
kaso17
c137530f5d Merge branch 'master' of https://github.com/Jackett/Jackett 2018-03-19 17:45:43 +01:00
kaso17
aa1583497c NextTorrent: update sitelink 2018-03-19 17:43:39 +01:00
Alx
e564149ee0 readme: Add Configuring OMDb section(#2739) 2018-03-19 12:58:37 +00:00
kaso17
a2fbaba8e8 KickAssTorrent (thekat.io): update URL 2018-03-19 12:51:59 +01:00
kaso17
15ff725ee5 PassThePopcorn: use keeplogged=1 again 2018-03-18 17:16:37 +01:00
Garfield69
8db85b5abb cpabien: domain change yet again. #2725 2018-03-17 07:09:38 +13:00
kaso17
6ad732cd87 PassThePopcorn: avoid relogins 2018-03-14 17:59:17 +01:00
kaso17
7d1110e86a PassThePopcorn: avoid session limits 2018-03-14 17:45:36 +01:00
HDVinnie
b4fd588e9b blutopia: fix definition (#2713)
* (Fix) blutopia.yml

- Updated Description
- Updated Search Path
- Added MAL ID

* Update blutopia.yml

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

* Add slash to the end of the legacylinks + add the tracker to the readme
2018-02-27 07:15:32 +13:00
halali
8948cc56a9 Add Torrent.wtf tracker (#2633)
* Add Torrent.wtf tracker

* Update Readme
2018-02-27 07:13:40 +13:00
Andy Simons
af2cfd5a2c Nnm-club: fix season parsing (#2632)
* newstudio - new ru semi-private tracker
rutracker - add series parser
rutor - global search without category + series parser

* newstudio rus semi-private tracker

* 999 -> 99

* remove old definition

* - add newstudio tracker to the README
- newstudio def: remove reduntal inputs
- rutor def: revert setting usage into query

* nnm-club: new russian semi-private tracker
newstudo: fix quality naming

* readme

* fix quality naming

* seasons parsing fix

* fix

* follow redirect on torrent file download

* nnm-club + rutracker name parsing improvements

* rutracker: add strip russian letters option

* lostfilm: new series regex

* lostfilm: add tracker name into title

* nnm-club: fix season parsing
2018-02-27 07:13:17 +13:00
Garfield69
054ef1b66f btdb: add andmatch 2018-02-25 07:33:07 +13:00
Garfield69
1f47546846 SkyTorrents: shutdown.
details at
https://torrentfreak.com/skytorrents-dumps-massive-torrent-database-and-shuts-down180221/
2018-02-22 07:11:48 +13:00
Garfield69
4b3adbcb2f yggtorrent: add anime #2615 2018-02-21 07:57:36 +13:00
kaso17
8e8488a939 Merge branch 'master' of https://github.com/Jackett/Jackett 2018-02-19 17:11:49 +01:00
kaso17
8252a2884d torrent9: update domain
fix #2612
2018-02-19 17:11:36 +01:00
Albvadi
d766cdcf0c Fix HDcity.li (#2609)
Fixed for work with both themes.
2018-02-19 16:03:50 +00:00
eriuhdkjnwwk
4955d8c71d Cat 6 is actually XXX/Movies (#2606) 2018-02-18 19:27:17 +13:00
Garfield69
566a83bb98 bt-scene: andmatch 2018-02-18 19:27:30 +13:00
Garfield69
785d00a1e0 horriblesubs: help users using https to avoid redirect error. #2605 2018-02-18 12:52:59 +13:00
Ellmout
6e6e89463c Update archetorrent.yml (#2601) 2018-02-18 08:18:14 +13:00
Kevin Richter
24ccd16311 Jpopsuki add support for torrents with red background (#2604) 2018-02-18 08:17:43 +13:00
Ellmout
a67dd5dc6a Update archetorrent.yml (#2599) 2018-02-16 20:44:51 +00:00
kaso17
144bb40707 update readme 2018-02-16 20:38:11 +01:00
kaso17
ed82e34d10 Tasmanit: title fix attempt 2018-02-16 19:46:44 +01:00
Andy Simons
0b1c9751e5 Lostfilm: new series regex (#2586) resolves #2585
* newstudio - new ru semi-private tracker
rutracker - add series parser
rutor - global search without category + series parser

* newstudio rus semi-private tracker

* 999 -> 99

* remove old definition

* - add newstudio tracker to the README
- newstudio def: remove reduntal inputs
- rutor def: revert setting usage into query

* nnm-club: new russian semi-private tracker
newstudo: fix quality naming

* readme

* fix quality naming

* seasons parsing fix

* fix

* follow redirect on torrent file download

* nnm-club + rutracker name parsing improvements

* rutracker: add strip russian letters option

* lostfilm: new series regex

* lostfilm: add tracker name into title
2018-02-16 08:25:52 +13:00
Garfield69
05f82c66b0 hd4free: Gone. Deleting indexer resolves #2584 2018-02-14 11:49:42 +13:00
Garfield69
32dd7293d0 torrentz2: add some more categories 2018-02-14 08:22:37 +13:00
WhoKnowsWhat
a923563357 Added Torrent2 filters safe-search and verified (#2581) 2018-02-14 08:20:31 +13:00
Garfield69
5e4022cc43 mvgroup: optionally strip S01E01 from torznab searches. resolves #2488 2018-02-13 09:04:34 +13:00
kaso17
5e35072a39 Merge branch 'master' of https://github.com/Jackett/Jackett 2018-02-12 18:39:25 +01:00
kaso17
bfb88e60e0 GazelleGames: more fixes 2018-02-12 18:35:20 +01:00
Albvadi
35df096333 Adding spanish tracker Union Fansub (#2580)
* Create unionfansub.yml

Adding spanish tracker Union Fansub

* Adding UnionFansub to the list

* Update unionfansub.yml

Adding description
2018-02-12 16:03:03 +00:00
Rotem
c2328ae72c Hebits: Fixed hebrew encoding (#2577) 2018-02-12 15:30:51 +00:00
kaso17
02b12dc8e4 NextTorrent: fix date string 2018-02-12 16:06:47 +01:00
kaso17
9a5f0de726 BTDB: set dummy seeders/leechers 2018-02-12 16:03:26 +01:00
Garfield69
4504d45f0c torlock: domain change. resolves #2571 2018-02-11 07:11:21 +13:00
Andy Simons
b53a30a267 rutracker + nnmclub title parsing improvements (#2566)
* newstudio - new ru semi-private tracker
rutracker - add series parser
rutor - global search without category + series parser

* newstudio rus semi-private tracker

* 999 -> 99

* remove old definition

* - add newstudio tracker to the README
- newstudio def: remove reduntal inputs
- rutor def: revert setting usage into query

* nnm-club: new russian semi-private tracker
newstudo: fix quality naming

* readme

* fix quality naming

* seasons parsing fix

* fix

* follow redirect on torrent file download

* nnm-club + rutracker name parsing improvements

* rutracker: add strip russian letters option
2018-02-11 07:04:53 +13:00
eriuhdkjnwwk
3ce6296a58 Updated categories and separated podcasts since it's 'misc' (#2568) 2018-02-10 17:21:23 +13:00
Garfield69
1556dc46c1 cpabien: oops also restore the size filters. 2018-02-10 17:01:05 +13:00
Garfield69
15bf794f9e cpabien: domain changed to cpabien.mx #2564
plus revert selectors from ad5a949d60
2018-02-10 16:43:03 +13:00
Garfield69
1c13158e79 btdb: support for thier new html. #2559 2018-02-10 12:33:19 +13:00
Garfield69
940863a1a4 nextorrent: support for new domain nextorrent.pro #2401 2018-02-10 09:08:43 +13:00
kaso17
ccf6780e6d add --NoUpdates option 2018-02-09 17:30:07 +01:00
kaso17
abb644eeb8 Your Exotic Torrents: add indexer 2018-02-09 17:05:31 +01:00
Garfield69
5bfa6ff736 torrentday: add cat=27 music/albums resolves #2558 2018-02-08 11:52:15 +13:00
kaso17
da51c070d0 GazelleGames: improve parser 2018-02-07 16:53:24 +01:00
kaso17
6d09f67adc Elit Tracker: fix parser 2018-02-07 16:05:39 +01:00
Garfield69
ea0c155c27 superbits: add TV DK cat=26 resolves #2553 2018-02-07 17:49:43 +13:00
Kilay
60fb7bc3d5 GkTorrent: fix parser (#2551) 2018-02-06 17:00:48 +00:00
kaso17
ba59cbd1b3 add gazellegames 2018-02-06 17:40:39 +01:00
kaso17
a433eb564b Femdomcult: add indexer 2018-02-06 17:40:05 +01:00
kaso17
9215ae44ba update Sonarr or Radarr instructions 2018-02-06 14:38:39 +01:00
kaso17
ad4aa891cf improve erroe message 2018-02-06 14:29:32 +01:00
kaso17
1c03172211 Cardigann: fix relative download link handling 2018-02-06 14:02:11 +01:00
kaso17
92263c6e04 GazelleGames: cleanup 2018-02-05 19:17:52 +01:00
kaso17
0b208008cf Add GazelleGames indexer 2018-02-05 19:12:41 +01:00
kaso17
7db24cc4a0 OmdbResolver: fix encoding warning 2018-02-02 16:56:30 +01:00
kaso17
5558136b51 Il Corsaro Nero: update certificate 2018-02-02 16:09:21 +01:00
kaso17
d49666835f SceneFZ: parsing fixes 2018-02-02 16:00:53 +01:00
Albvadi
7f5612d0dc Adding spanish tracker Torrentland (#2531)
* Adding spanish tracker Torrentland

Create the definition for spanish tracker Torrentland

* Adding torrentland to the private trackers
2018-02-02 14:50:36 +00:00
Albvadi
7253a09531 Update puntotorrent.yml (#2530)
Remove optional grabs
2018-02-02 14:48:04 +00:00
kaso17
f56e53255e Merge branch 'master' of https://github.com/Jackett/Jackett 2018-02-01 18:13:52 +01:00
kaso17
27286a1b71 cpabien: update links
fixes #2529
2018-02-01 18:13:45 +01:00
Albvadi
a5d4fadca5 Corrections in Puntotorrent and HDCity (#2528)
* Update hdcity.yml

Corrected login path

* Update puntotorrent.yml

Make grabs optional for new torrents
2018-02-01 17:06:54 +00:00
kaso17
1165d5ff9c u-Torrent: remove (same as SzeneFZ now) 2018-02-01 15:47:37 +01:00
kaso17
c65a4dbe12 Merge branch 'master' of https://github.com/Jackett/Jackett 2018-02-01 14:02:08 +01:00
garfield69
c335ae6eb4 highlight versions 2018-02-01 17:57:58 +13:00
Garfield69
6ffb9dc9ef delete hachede-c #2521 2018-02-01 07:43:53 +13:00
Albvadi
08ce9b903b Update hachede.me (#2521)
* Update hachede.me

Union of both views (classic and modern) in a same definition.

* Delete hachede-c.yml

Remove definition for exclusive classic view
2018-02-01 07:40:24 +13:00
kaso17
156f6f6cce SceneFZ: fix login 2018-01-31 14:18:20 +01:00
kaso17
3f681060b2 Merge branch 'master' of https://github.com/Jackett/Jackett 2018-01-30 20:04:33 +01:00
kaso17
6a4a9a09f5 Kapaki: fix definition 2018-01-30 20:04:19 +01:00
Garfield69
6dae7cd11d YIFI: handle movies without torrents 2018-01-31 07:12:01 +13:00
Garfield69
85f522b055 nnm-club: domain change. for #2513 2018-01-31 07:05:39 +13:00
kaso17
5eb63005ad TorrentDay: cleanup 2018-01-30 14:41:09 +01:00
kaso17
2fb3d52b44 YTS: handle movies without torrents 2018-01-30 14:37:39 +01:00
kaso17
7c1fbdd44b TorrentDay: use new JSON API 2018-01-30 14:11:10 +01:00
Kilay
fdeacaa554 GkTorrent: fix class change in html (#2510) 2018-01-30 10:14:38 +00:00
Garfield69
d81b00616a ETTV: oops forgot to make change for UHD. #2509 2018-01-30 19:26:01 +13:00
Garfield69
2af5e0c37b ETTV: add all the missing categories. resolves #2509 2018-01-30 19:23:09 +13:00
Garfield69
7c657796aa ExtraTorrent-ag: add public tracker. resolves #2478 2018-01-30 16:05:13 +13:00
LuisMi
c8c62354f4 TBPlus: Add indexer (#2502) 2018-01-29 18:38:57 +00:00
rog0rr
62e9f712a0 TorrentDay: fix parser (#2501)
A few class renames and some element rearranging on the browse table has broken Jackett in the last few days - this fixes them
2018-01-29 18:38:19 +00:00
kaso17
c60ae71bd9 Revert "TorrentDay: update parser"
This reverts commit 52ff0a6a1d.
2018-01-29 19:37:20 +01:00
kaso17
99b27fa084 Merge branch 'master' of https://github.com/Jackett/Jackett 2018-01-29 19:35:25 +01:00
kaso17
52ff0a6a1d TorrentDay: update parser 2018-01-29 19:35:11 +01:00
Garfield69
2a224785c3 YIFY: add public yifymovie.co with UHD support. Resolves #2479 2018-01-26 14:34:00 +13:00
kaso17
54ee2a1e97 KickAssTorrent: add support for cookie configuration 2018-01-25 11:49:55 +01:00
kaso17
8eace1b1e9 GkTorrent: fix legacy links 2018-01-25 11:49:24 +01:00
Garfield69
eb658ab421 torrent9: fix download link. resolves #2470 2018-01-25 15:04:33 +13:00
Garfield69
53f33b0fc1 superbits: add cat24 film 4k. resolves #2476 2018-01-25 11:38:00 +13:00
kaso17
871966166b MyAnonamouse: add auto re-login 2018-01-24 13:09:35 +01:00
kaso17
69e71bbe87 fix serverURL 2018-01-24 13:03:39 +01:00
kaso17
ac9274c540 Fuzer: add support for IMDB search 2018-01-23 20:51:10 +01:00
kaso17
bcd9836088 Demonoid: handle new ad type 2018-01-23 20:44:44 +01:00
kaso17
4fef4f872e basepath: add support for /jackett base path redirection 2018-01-23 20:40:37 +01:00
kaso17
d578f585b3 Psytorrents: add supportsFreeleechTokens 2018-01-23 20:39:15 +01:00
kaso17
42b9e2a406 update apache example reverse proxy config 2018-01-23 20:22:38 +01:00
kaso17
de2f6eeabf Merge branch 'master' of https://github.com/Jackett/Jackett 2018-01-23 18:23:40 +01:00
kaso17
3fcaf3926a Revert "Psytorrents: removed (dead)"
This reverts commit f6e37d0b83.
2018-01-23 17:55:32 +01:00
Garfield69
b396818c52 bittorrentfiles: add description 2018-01-23 20:11:00 +13:00
kaso17
f89c9769be Cardigann: improve domain change error handling 2018-01-22 17:35:56 +01:00
kaso17
dd9a6c1c7b KickAssTorrent (thekat.nz): update legacylinks 2018-01-22 17:04:06 +01:00
kaso17
98b92ddc76 KickAssTorrent: fix definition 2018-01-22 16:56:11 +01:00
kaso17
8e9b144cff BrowserUtil: update ChromeUserAgent 2018-01-22 16:55:54 +01:00
kaso17
9cc4021cb3 Cinematik: fix download 2018-01-21 11:45:08 +01:00
Fippsy
c63c615dc3 BitTorrentFiles: Add indexer (#2444) 2018-01-21 10:01:19 +00:00
Garfield69
4055c205da hachede: modern and classic versions of the indexers for #2428 2018-01-21 08:45:42 +13:00
garfield69
dc892cd95b Rename hdcity to hdcity.yml 2018-01-19 07:29:15 +13:00
Albvadi
f609f1cc9c Add spanish tracker HDCity (#2434)
* Update README.md

Adding Puntotorrent forgotten from [this PR](https://github.com/Jackett/Jackett/pull/2433)

* Add definition for  HDCity

Add definition for spanish tracker HDCity

* Adding HDCity to the index
2018-01-19 07:17:35 +13:00
Garfield69
ebad07fde5 gktorrent: domain change. resolves #2440 2018-01-19 06:38:54 +13:00
kaso17
d44dc77511 PuntoTorrent: cleanup 2018-01-17 11:18:04 +01:00
Albvadi
2a9e0d4c73 Adding puntotorrent and details for HacheDe (#2433)
* Update hachede.yml

Adding details link

* Adding spanish tracker Puntotorrent

Adding spanish tracker Puntotorrent requested [here](https://github.com/Jackett/Jackett/issues/1468)
2018-01-17 10:13:04 +00:00
kaso17
6ecc500dde libcurl: add support for new cloudflare server type 2018-01-15 20:20:23 +01:00
kaso17
f452f20189 Shareisland: fix download link again 2018-01-15 20:11:58 +01:00
kaso17
f25719fd9e Fuzer: add support for invalid BannerUrls 2018-01-15 19:08:48 +01:00
Indrek Ardel
8f0c5e478e Update TorrentBytes category mappings (#2424)
* Update TorrentBytes category mappings

* Fix a typo
2018-01-15 08:47:21 +13:00
kaso17
bbcff986f9 enable useUnsafeHeaderParsing 2018-01-13 18:15:54 +01:00
kaso17
1bc3413660 TorrentHR: fix non empty search 2018-01-13 16:33:39 +01:00
demptheman
bd6f1ec538 Superbits: Fix bug if no torrents match search (#2403) 2018-01-13 15:21:02 +00:00
Garfield69
6c487e159b hachede: add description
and align code to standard layout
2018-01-12 08:52:55 +13:00
Albvadi
57f9be98b8 Adding spanish tracker HacheDe (#2402)
* New definition for HacheDe

Add definition for new spanish tracker: HacheDe

* Update README.md

Adding HacheDe

* Update hachede.yml

Remove strdump for debug purposes
2018-01-12 08:42:10 +13:00
kaso17
6a0bebad3b Merge branch 'master' of https://github.com/Jackett/Jackett 2018-01-10 19:07:27 +01:00
kaso17
4d7e170dcc SceneReactor: fix files selector 2018-01-10 19:07:19 +01:00
Garfield69
7dad79d5a5 infinityt: removed, its closed.
see https://opentrackers.org/infinity-t-has-shut-down/ for details.
2018-01-11 07:05:04 +13:00
kaso17
2a2298dcec Add SceneReactor indexer 2018-01-10 18:55:20 +01:00
kaso17
31118e222b ULTRAHDCLUB: removed (dead) 2018-01-10 18:20:52 +01:00
kaso17
8a02403f83 Cardigann: add support for text captcha 2018-01-10 18:20:11 +01:00
kaso17
26933d9286 Shareisland: try to fix title parsing 2018-01-10 16:38:19 +01:00
kaso17
a33c9eea0a PolishTracker: remove unused cats 2018-01-10 14:39:11 +01:00
plebann
93eae3fdbf PolishTracker: CategoryMapping update, Fix to allow search over multiple categories (#2395) 2018-01-10 13:37:01 +00:00
kaso17
becfabfc79 u-torrents: removed (same as Szene FZ now) 2018-01-10 14:19:35 +01:00
kaso17
946c8bd5bf SceneFZ: fix login and add u-torrents references 2018-01-10 14:16:28 +01:00
kaso17
5f01a62292 update dependencies 2018-01-10 14:15:53 +01:00
kaso17
739708edb4 DateTimeRoutines: use netstandardt2.0 2018-01-10 14:15:26 +01:00
kaso17
f21cb39d38 AutoMapper: update to 6.2.2 2018-01-10 11:59:57 +01:00
kaso17
05a9e96bbb CloudFlareUtilities: update to 1.0.0 2018-01-10 11:56:09 +01:00
kaso17
b639c27883 Merge branch 'master' of https://github.com/Jackett/Jackett 2018-01-09 16:39:42 +01:00
DarkSupremo
9e1bec1ea4 Speed-Share: Added resolution; removed year from title, since it was not reliable, and added few workarounds to improve the search on some shows; BJ-Share and Manicomio-Share, added few workarounds to improve search on few shows; PS: Still need find an reliable pattern to remove translated series name from Manicomio-Share, i just added an workaround to few shows for now (#2391) 2018-01-09 15:39:23 +00:00
kaso17
3c4ae55407 DanishBits: add blandet category 2018-01-09 16:13:15 +01:00
Garfield69
70ca19c6d9 mvgroup*: improvements to optional bbc title stripping
1. do not filter 'BBC ' from anywhere but the start of the title string
2. condense the two optional title blocks into a single title block
2018-01-09 07:40:13 +13:00
kaso17
92c11b8320 Shareisland: fix link 2018-01-08 12:04:23 +01:00
kaso17
7f59ae0b6f Merge branch 'master' of https://github.com/Jackett/Jackett 2018-01-08 11:52:34 +01:00
kaso17
232819b6bd Revert "Shareisland: update definition"
This reverts commit 78daa5012d.
2018-01-08 11:51:25 +01:00
Garfield69
29b83757e3 mvgroup*: option to strip BBC from front of titles. Resolves #2367 2018-01-06 19:11:30 +13:00
furryllama
efc4600918 Gimmepeers: Add missing categories (#2370) 2018-01-05 18:07:24 +00:00
kaso17
e92b87e4dd PiXELHD: fix error detection 2018-01-05 18:56:54 +01:00
kaso17
5ef4e2f0dd Frozen Layer: add exired certificate 2018-01-05 18:25:55 +01:00
kaso17
ae2264f344 Superbits: set GUID 2018-01-05 18:08:05 +01:00
kaso17
8c32b8ccb1 Empornium: fix login 2018-01-05 18:02:23 +01:00
kaso17
80fb235b06 UI: Don't send referrer 2018-01-05 17:55:51 +01:00
kaso17
f07e603826 Add Empornium 2018-01-05 17:55:39 +01:00
kaso17
bcdf1cc781 Add Empornium indexer 2018-01-05 17:55:32 +01:00
kaso17
e9bbaf7075 Updater: remove secretcinema.yml 2018-01-03 19:51:00 +01:00
BenJamin Morin
d71a8798dc GimmePeers: fix support for Top 20 list (#2360)
modified the ProcessPage Method to select the last table with the browsetable class attribute so that if the Top 20 table is visible it will be ignored and the master list is the only one that will display.  Works with Top 20 on and off.
2018-01-03 18:49:07 +00:00
kaso17
15a9eee66e Merge branch 'master' of https://github.com/Jackett/Jackett 2018-01-03 19:48:13 +01:00
kaso17
cacafcff58 Secret Cinema: migrate to gazelle base 2018-01-03 19:46:12 +01:00
kaso17
7193d6d28f GazelleTracker: add support for IMDB search 2018-01-03 19:33:30 +01:00
Andrew
ceaeb02105 Karagarga: Fix date (#2358) 2018-01-03 15:52:16 +13:00
kaso17
4942d429f0 RevolutionTT: use normal details link 2018-01-02 21:05:26 +01:00
kaso17
67093c96bc ETTV: update definition 2018-01-02 20:59:03 +01:00
kaso17
78daa5012d Shareisland: update definition 2018-01-02 20:47:12 +01:00
kaso17
748565b6dc SceneFZ: support new tracker software 2018-01-02 20:40:38 +01:00
kaso17
33581ce5b0 TorznabCats: fix all list 2018-01-02 20:39:44 +01:00
kaso17
7309e6a694 HDChina: update links 2018-01-02 20:22:16 +01:00
kaso17
61d1c02961 fix password resetting 2018-01-02 20:08:37 +01:00
kaso17
87584668dd HD-Torrents: use new UHD cats 2018-01-02 19:12:08 +01:00
kaso17
8773022f10 TorznabCats: add support for UHD cats 2018-01-02 19:11:53 +01:00
kaso17
1a803fb182 HD-Torrents: add UHD catgories 2018-01-02 19:00:32 +01:00
Ryan Lewon
e2b23b6ebc Updated iptorrents indexer column to add proper support for 4K(2160p) (#2344)
* Updated to add new 4K indexer column to add proper support for 4K(2160p)
from tracker.

* Changed MoviesSD to MoviesHD.
2018-01-01 06:39:56 +13:00
garfield69
a5f845625f Delete Hounddawgs.cs 2018-01-01 06:37:58 +13:00
Tobias Nordahl Kristensen
f949291cdc Hounddawgs removed (#2343)
http://infinity-t.org/ is the official "recommendation" as an replacement.
2018-01-01 06:33:44 +13:00
Garfield69
2ab1c3a63e waffles: fix dateparse 2017-12-29 14:52:06 +13:00
Garfield69
55805e251c ilcorsaronero: add missing categories 2017-12-29 08:49:09 +13:00
kaso17
844d2ba1ad HD4Free: add support for new software 2017-12-27 19:42:04 +01:00
kaso17
4059815811 ignore cloudflare ob cookies 2017-12-27 19:05:19 +01:00
kaso17
caac781651 Shareisland: update to new software/layout 2017-12-27 18:46:31 +01:00
kaso17
ff1e19dbc7 Merge branch 'master' of https://github.com/Jackett/Jackett 2017-12-27 17:46:13 +01:00
Andrey Dorokhov
95adced183 Fix a link to appveyor build status (#2330) 2017-12-27 16:45:01 +00:00
Garfield69
44dbdf2f10 limetorrents: make downloadlink optionally itorrent or magnet 2017-12-27 20:43:23 +13:00
DarkSupremo
68cbd6e6be Fix to BJ-Share and Speed-Share (#2321)
* Fixed anime search on BJShare, removing the season from search and changing the output from "Anime SXXEXX" to "Anime EXX".
Season had to be removed because the season numbering on anime is all wrong in this tracker.

* - Changed to change title based on search for category of every row in bj-share, instead of category of search
- Fixed title parse on B2S-Share and Speed-Share to animes (series not changed) from "Anime SXXEXX" to "Anime EXX"

* - Added anime title change on empty search as well - BJ-Share

* B2S-Share: Removed episode from search and added andmatch (episode search do not work with translated series name), changed title to return 'original name SXXEXX' instead of 'translated name SXXEXX (original name)', because Sonarr was not recognizing the serie (it will only apply to series and movies, animes does not have translated name)

* added few comments to the code

* Fixed year being added after season/episode, it will be added now between series name and season/episode (animes not included), eg: Serie 2017 S05E06

* Small bugfixes in regex
2017-12-26 17:02:43 +13:00
Garfield69
2e8196b753 kickasstorrent: oops #2280 2017-12-23 18:08:47 +13:00
Garfield69
cf9677ec38 kickasstorrent: katcr have updated their search engine #2280
however, their ddos protection still breaks jackett for now
2017-12-23 18:02:37 +13:00
kaso17
d7c25cb94b Dragonworld Reloaded: fix categories 2017-12-22 15:27:40 +01:00
kaso17
c08b4f4fcd Dragonworld Reloaded: add support for pin 2017-12-22 15:21:39 +01:00
Garfield69
dd8ecd1380 torrentbd: sitelink should be base only 2017-12-22 06:26:24 +13:00
Garfield69
e923be03cc sktorrent: sitelink should be base only 2017-12-22 06:25:15 +13:00
Garfield69
c040cf3a3a downloadville: sitelink should be base only 2017-12-22 06:23:11 +13:00
kaso17
5c0dadcb3a Torrent.LT: fix description 2017-12-20 18:54:37 +01:00
kaso17
6f7f50c82f add Torrent.LT indexer
Thank you @karkaaa
Fixes #2279
2017-12-20 18:51:55 +01:00
kaso17
8c90b8ed02 MagnetDL: fix default category on empty category search 2017-12-20 18:21:03 +01:00
kaso17
121c7bc686 Merge branch 'master' of https://github.com/Jackett/Jackett 2017-12-20 17:18:59 +01:00
kaso17
743de0fae7 TorrentNetwork: fix login 2017-12-20 17:18:36 +01:00
Garfield69
9b3b140fad worldwidetorrents: test using categories fix #2311 2017-12-20 07:32:10 +13:00
kaso17
ed41d383a3 HDSky: fix search 2017-12-18 19:02:58 +01:00
kaso17
4692cd60ee TorznabQuery: allow / character 2017-12-18 18:38:33 +01:00
kaso17
14d3a9eb0a Zooqle: fix search 2017-12-18 18:34:48 +01:00
kaso17
20b4d93686 Zooqle: improve search behaviour 2017-12-18 18:32:04 +01:00
kaso17
80960665ec 1337x: make download link configurable 2017-12-18 18:11:37 +01:00
kaso17
97a5d58f13 Cardigann: apply template engine to download/selector 2017-12-18 18:11:11 +01:00
Tadeo Kondrak
26258f2768 TorrentBytes is now a private tracker (#2301) 2017-12-18 08:26:35 +13:00
Garfield69
be2514f3c0 limetorrents: switch downloads from itorrents to magnet #2299 2017-12-18 06:46:15 +13:00
Garfield69
74535a54ee yggtorrent: back to original domain resolves #2283 2017-12-16 07:40:54 +13:00
hed0nist
fea5e454fc Update README.md (#2282) 2017-12-15 17:57:39 +00:00
hed0nist
a54c089e6d Create oxtorrent.yml (#2281) 2017-12-15 17:57:31 +00:00
Michael Mawhinney
dafe618494 thepiratebay: remove stale links. resolves #2277 (#2278)
* thepiratebay: remove stale links. resolves #2277

* thepiratebay: move stale links to legacylinks section. resolves #2277
2017-12-14 17:13:15 +13:00
Garfield69
cab46874f7 torrent9: domain change. fix #2273 2017-12-14 06:15:04 +13:00
kaso17
cce2cb01f9 Merge branch 'master' of https://github.com/Jackett/Jackett 2017-12-13 09:37:19 +01:00
kaso17
f31e0d1c13 WebClient delay: store time after the request
fix #2256
2017-12-13 09:37:09 +01:00
Garfield69
2c029f7532 isohunt2: add public search engine. resolves #2023 2017-12-13 16:19:41 +13:00
kaso17
e6f8109749 Cardigann: add support for download/filters 2017-12-12 16:01:26 +01:00
kaso17
b4f4ed5fe0 KickAssTorrent (thekat.nz): improve download filters 2017-12-12 16:00:08 +01:00
Garfield69
7fb6fd4fd9 kickasstorrent-kathow: fix #2269 bypass mylink.st on downloads 2017-12-12 20:13:22 +13:00
Garfield69
38384bd1df readme: enhance the enhanced logging instructions ;-) 2017-12-12 17:57:16 +13:00
Garfield69
3a5db7e813 kickasstorrent-kathow: fix #2255 new search path 2017-12-09 15:27:36 +13:00
kaso17
df068d6e4d ICE Torrent: add support for extra column
fixes #2243
2017-12-08 13:52:15 +01:00
kaso17
318cc86c6b YGGtorrent: fix login error detection 2017-12-07 23:34:27 +01:00
kaso17
2c83038ea8 Mono: check if the certificate store was initialized 2017-12-07 14:35:50 +01:00
kaso17
29f111aec4 GazelleTracker: add support for freeleech token usage 2017-12-05 16:44:47 +01:00
kaso17
6a24c55f06 Apollo: migrate to Gazelle base 2017-12-05 16:15:19 +01:00
kaso17
11ff114a61 Merge branch 'master' of https://github.com/Jackett/Jackett 2017-12-05 16:04:36 +01:00
kaso17
f7fb87f62b UI: fix category order 2017-12-05 15:40:13 +01:00
kaso17
3ba8dda800 UI: fix typo 2017-12-05 15:25:08 +01:00
kaso17
54c1acb669 UI: Add Copy RSS Feed button 2017-12-05 15:24:50 +01:00
Garfield69
ad5a949d60 cpabien: domain change fix #2231
switch to www.cpabien.cx
amend a couple css selectors
drop redundant size processing
tested with Jackett Dashboard and Sonarr
2017-12-05 10:56:34 +13:00
kaso17
6901b128d0 Xthor: use categories again 2017-12-04 21:38:21 +01:00
kaso17
aa002d1ee4 YGGtorrent: email login no longer supported 2017-12-04 19:29:14 +01:00
kaso17
a4edb62743 Xthor: disable categories 2017-12-04 18:00:37 +01:00
kaso17
eee8d1d8ff fix whitespaces 2017-12-04 13:37:00 +01:00
kaso17
2934bfb3e7 Add PIDFile CLI option 2017-12-04 12:20:22 +01:00
kaso17
105bd85441 PTFiles: fix support for users with wait time 2017-12-03 06:54:18 +01:00
kaso17
d49cb02d2f TorrentNetwork: improve passkey handling 2017-12-03 06:47:50 +01:00
kaso17
bc4bbbb7fb YGGtorrent: really fix download 2017-12-03 06:34:45 +01:00
kaso17
70a47c80b5 TorrentVault: removed (dead) 2017-12-02 05:09:55 +01:00
kaso17
ed8deaa1ba YGGtorrent: fix download link 2017-12-02 04:50:09 +01:00
kaso17
9b7dfdc01d add Bithorlo tracker 2017-12-01 15:27:07 +01:00
kaso17
f6e37d0b83 Psytorrents: removed (dead) 2017-12-01 14:15:54 +01:00
kaso17
4dc07fbc26 Add CCFBits trcker 2017-12-01 14:13:09 +01:00
kaso17
4d2adf4325 HttpWebClient2: implement AddTrustedCertificate() 2017-12-01 13:01:34 +01:00
kaso17
bed9b9d54b Speed.cd: fix login 2017-12-01 12:29:30 +01:00
kaso17
35191c913d update icon
Thank you @Giligilitelj
fix #1598
2017-12-01 10:46:01 +01:00
kaso17
4f93f1efc6 JackettTray: fix running detection 2017-12-01 10:39:50 +01:00
kaso17
0f5937b387 JackettTray: check if it's already running
fixes #2181
2017-12-01 10:28:19 +01:00
kaso17
4eda11f79e Xthor: detect API limit errors 2017-12-01 08:02:52 +01:00
kaso17
7f7496d64e YTS: cleanup 2017-12-01 07:53:16 +01:00
Garfield69
57aa438e64 yggtorrent: domain change. fix #2211 2017-12-01 16:20:14 +13:00
Garfield69
bffe1e3796 nyaasi: add additional categories 2017-12-01 10:58:25 +13:00
kaso17
acc8a24c21 Nyaa.si: add movies categories 2017-11-30 16:31:59 +01:00
kaso17
74cdd16bc6 Merge branch 'master' of https://github.com/Jackett/Jackett 2017-11-30 16:12:20 +01:00
kaso17
eed9745c67 DanishBits: add legacy site links 2017-11-30 16:12:10 +01:00
DarkSupremo
5fbe1ce66e B2S-Share: fix search and title output (#2206)
Removed episode from search and added andmatch (episode search do not work with translated series name), changed title to return 'original name SXXEXX' instead of 'translated name SXXEXX (original name)', because Sonarr was not recognizing the serie (it will only apply to series and movies, animes does not have translated name)

The only drawback is that it will not search for very older episodes (not on first page), but that can be softened increasing the results per page in user profile, but i consider it way better than before, many series was not returning anything, since they had an translated name on the tracker, and an search with episode would work only searching for translated name and episode.
2017-11-30 15:26:43 +01:00
Andy Simons
492816ab35 Fix: Downloading of torrent file don't follow redirect (#2196) 2017-11-30 12:11:42 +01:00
kaso17
16f255745f fix DataFolder command line option 2017-11-30 11:17:09 +01:00
kaso17
570553f7d6 YTS: various improvements 2017-11-29 19:32:21 +01:00
kaso17
254b918a08 Xthor: add LegacySiteLinks 2017-11-29 19:18:08 +01:00
kaso17
f49a960f5e YTS: add LegacySiteLinks 2017-11-29 19:13:52 +01:00
kaso17
b8507c71b6 ETTV: revert to old keywordsfilters
they fixed their search engine
2017-11-29 19:10:42 +01:00
Benjamin Staneck
e4698309a4 add a link to the Jackett project (#2204)
to the footer for easy access
2017-11-29 19:02:48 +01:00
Flip
20c57bcac6 update xthor tld (#2202) 2017-11-29 07:53:59 +13:00
Garfield69
36c5ec25ab thepiratebay: fix date parsing #2197
commit e5142d9b3f causing String was not
recognized as a valid DateTime.
2017-11-28 09:15:23 +13:00
halali
3d5c22b640 Trezzor: use full title (#2193) 2017-11-26 09:43:52 +01:00
Garfield69
4697e53d7c YTS: domain change. fix #2190 2017-11-26 06:23:38 +13:00
Garfield69
f7d5bc0ab5 ettv: fix #2187
drop sort by added and pre-search keyword filters to prevent
intereference with andmatch
Tested on Jackett Dashboard and Sonarr
2017-11-26 06:11:26 +13:00
kaso17
d7945eed8c ETTV: fix search 2017-11-25 12:50:43 +01:00
Garfield69
1d060af852 ETTV: force andmatch post-search to fix #2187 2017-11-25 06:44:10 +13:00
Garfield69
670141aef7 nnm-club: various improvements
add additional active categories
support multi-category search
downloads can be missing, prevent error
remove hardcoded full path to gifs, ensures domain independency
2017-11-24 10:50:11 +13:00
Andy Simons
93330fc56e NoName Club tracker (#2186)
* newstudio - new ru semi-private tracker
rutracker - add series parser
rutor - global search without category + series parser

* newstudio rus semi-private tracker

* 999 -> 99

* remove old definition

* - add newstudio tracker to the README
- newstudio def: remove reduntal inputs
- rutor def: revert setting usage into query

* nnm-club: new russian semi-private tracker
newstudo: fix quality naming

* readme

* fix quality naming

* seasons parsing fix

* fix
2017-11-24 07:20:12 +13:00
kaso17
72df2c1545 Fix HTTPS custom port handling 2017-11-22 11:20:00 +01:00
kaso17
fc3a1e21d3 macos install: make sure dir exists 2017-11-21 22:10:32 +01:00
kaso17
c20688837f PotatoFeed: default to -1 for leechers/seeders 2017-11-21 14:48:59 +01:00
Guizzoni
1db57a746b Update speed-share.yml (#2172)
Small fix, Jackett was trying to relogin every search.
2017-11-21 06:05:16 +13:00
DarkSupremo
d9178dd053 BJ-Share, B2S-Share and Speed-Share: fix Anime search (#2171)
* Fixed anime search on BJShare, removing the season from search and changing the output from "Anime SXXEXX" to "Anime EXX".
Season had to be removed because the season numbering on anime is all wrong in this tracker.

* - Changed to change title based on search for category of every row in bj-share, instead of category of search
- Fixed title parse on B2S-Share and Speed-Share to animes (series not changed) from "Anime SXXEXX" to "Anime EXX"

* - Added anime title change on empty search as well - BJ-Share
2017-11-20 15:27:25 +01:00
Garfield69
e163e6f8cf 1337x:: update categories 2017-11-20 20:54:49 +13:00
flightlevel
4b11007393 Assist Release Note Creation Attempt 2 (#2165)
Logic wasn't quite right for which commits to include
2017-11-19 18:37:47 +11:00
flightlevel
3929ff2662 Assist Release Note Creation (#2164)
Finds hash of the last tag and then uses the commit summary to assist in
release note creation
2017-11-19 17:19:49 +11:00
sbalke
76b088b5ec Changed torrentvault.yml action from advanced to basic. This fixed the search returning everything. (#2160) 2017-11-18 17:58:16 +13:00
kaso17
59388a8f80 allow proxy changes without restart 2017-11-17 16:46:58 +01:00
kaso17
01dec12909 TorrentSyndikat: fix (re)login issue 2017-11-17 15:01:25 +01:00
kaso17
dda27ef45f YGGtorrent: fix movies category 2017-11-17 14:14:40 +01:00
kaso17
968a7729c3 Fix SocksWebProxy race condition 2017-11-16 18:00:49 +01:00
kaso17
afe64a1b8f fix SocksWebProxy race condition 2017-11-16 16:51:34 +01:00
kaso17
83ab3c8b07 Shareisland: add error detection 2017-11-16 15:46:01 +01:00
kaso17
baf20927e4 ICE Torrent: update to new layout 2017-11-16 15:42:36 +01:00
Guizzoni
3a126f07c4 Login selector on b2s-share & speed-share (#2153)
* Update speed-share.yml

Added login selector to make sure we're logged in.

* Update b2s-share.yml

Added login selector to make sure we're logged in.
2017-11-16 14:26:27 +01:00
kaso17
c1e495b212 Hounddawgs: make grabs optional 2017-11-16 14:02:02 +01:00
kaso17
9a50a378cb Merge branch 'master' of https://github.com/Jackett/Jackett 2017-11-16 13:30:43 +01:00
Garfield69
4cf9dc6eb9 newstudio: various improvements
correct date parse
and add english date handling (for users that set english in profile)
add freeleech gold
add category in results for Sonarr
add banner
amend descritpion tag
2017-11-16 20:16:35 +13:00
Garfield69
86c5c61e84 rutor: correct date field 2017-11-16 19:53:05 +13:00
Garfield69
d12888f611 rutor: cosmetic clean up of yaml comments 2017-11-16 19:17:40 +13:00
Andy Simons
1c8bce2935 Trackers (#2151)
* newstudio - new ru semi-private tracker
rutracker - add series parser
rutor - global search without category + series parser

* newstudio rus semi-private tracker

* 999 -> 99

* remove old definition

* - add newstudio tracker to the README
- newstudio def: remove reduntal inputs
- rutor def: revert setting usage into query
2017-11-16 19:08:49 +13:00
Ellmout
075092857b ArcheTorrent - Better search v3 (#2150)
* ArcheTorrent - Better search

* ArcheTorrent - Better search v2

ArcheTorrent - Better search v2

* ArcheTorrent - Better search v3

ArcheTorrent - Better search v3
2017-11-16 07:01:32 +13:00
kaso17
dd09daf28f WebClient: improve logging 2017-11-15 19:00:27 +01:00
kaso17
798dc9bf4b UpdateService: add logging 2017-11-15 19:00:10 +01:00
kaso17
0a82f950c3 fix update process 2017-11-15 15:23:44 +01:00
kaso17
dc46dd48b1 cleanup 2017-11-14 20:43:42 +01:00
kaso17
280be17c3a use original exe filename 2017-11-14 20:31:27 +01:00
kaso17
fb6c7d2b64 Merge branch 'master' of https://github.com/Jackett/Jackett 2017-11-14 20:22:00 +01:00
kaso17
7b80d3c07e fix updater options 2017-11-14 20:21:40 +01:00
kaso17
b2a27591e6 fix NoRestart option 2017-11-14 20:21:31 +01:00
Guizzoni
fb63d22666 Update speed-share.yml (#2138)
Added proper tracker configuration instructions in an info box
2017-11-13 19:05:41 +01:00
kaso17
dcb171a655 The Place: enable andmatch filter 2017-11-13 18:11:19 +01:00
kaso17
b2bc982c1c The Empire: enable andmatch filter 2017-11-13 18:11:06 +01:00
kaso17
255a0f0ffa NetHD: enable andmatch filter 2017-11-13 18:10:55 +01:00
kaso17
80ea816bc7 hyperRay: enable andmatch filter 2017-11-13 18:10:46 +01:00
kaso17
b1371aae2b HDSky: enable andmatch filter 2017-11-13 18:10:35 +01:00
kaso17
c66984cd3b update readme 2017-11-13 17:35:01 +01:00
kaso17
27a455ad00 Merge branch 'master' of https://github.com/Jackett/Jackett 2017-11-13 16:55:12 +01:00
kaso17
69e7c7def3 clear cookies on unconfigure 2017-11-13 16:55:02 +01:00
kaso17
21882c81d8 PirateTheNet: improve login 2017-11-13 16:54:44 +01:00
Ellmout
47f53ab47f ArcheTorrent: improve search (#2119)
* ArcheTorrent - Better search

* ArcheTorrent - Better search v2

ArcheTorrent - Better search v2
2017-11-13 13:04:24 +01:00
kaso17
30ac099653 Reset SiteLink on unconfigure 2017-11-13 12:55:54 +01:00
kaso17
1a85927e44 PirateTheNet: add auo relogin support 2017-11-13 11:18:41 +01:00
ZackEndboss
b1d55fdf00 Update TorrentSyndikat.cs (#2128)
Add imdb support
2017-11-13 19:42:25 +11:00
Nathan Holland
1c62504b22 Remove Static Configuration Class and .NET Core Prep (#2122)
* Remove static configuration class that required prior knowledge of when it was initialised to dependency injected method that ensures all configuration has already occured.

* Specify a different log name for the updater, require a path when running the Jackett updater

* Update to all .NET Standard packages

* Explicitly specify the restore project style

* Move automapper out of the  DI framework and put crude detection to prevent it from initializing more than once.
2017-11-13 19:38:38 +11:00
Garfield69
fe504ed660 TPB: lowercase the search to allow proxies to work. fix #2120 2017-11-12 19:12:00 +13:00
flightlevel
9507369293 Cake build: Code tidy (#2121) 2017-11-12 11:01:05 +11:00
kaso17
84571f05fc The Place: update site links 2017-11-11 13:56:18 +01:00
flightlevel
a6ba9040d9 Use Cake to Build (#2113) 2017-11-11 17:14:14 +11:00
Nathan Holland
29e61feede Bugfixes (#2112)
* The module will need to be registered first thing in order to support commands such as --Help.

* Ignore mac directory attribute files

* Fix command line parameters not being correctly passed to the console
2017-11-11 16:21:26 +11:00
Garfield69
d055cf789f downloadville: add French Private site for Movies/TV/General. resolves #1565 2017-11-11 16:35:04 +13:00
Garfield69
15412c2508 elittracker: add Hungarian Private site 0day/general #1445 2017-11-11 07:32:09 +13:00
kaso17
c216727735 PassThePopcorn: make GUID uniq 2017-11-10 16:56:08 +01:00
kaso17
a38b13608e automapper: default to UTF8 encoding 2017-11-10 12:48:24 +01:00
kaso17
0b302915d6 Fix automapper encoding handling 2017-11-10 12:46:04 +01:00
kaso17
009cc28415 Torrent Downloads: use magnet links 2017-11-10 12:06:59 +01:00
kaso17
7007f2e650 ETTV: improve keywordsfilters 2017-11-10 11:30:11 +01:00
Garfield69
05b1895205 ettv: fix #2052 so that 'sortby added' returns proper results
the default search for ettv is to return 'any words' matched, which when
paired with 'sortby added' meant the top resutls were not useful.
now we prefix the keyworks with '+' and urlencodes them, ensuring that
'all words' matched is returned.
2017-11-10 09:50:30 +13:00
Garfield69
955aa2c9ec ettv: add description 2017-11-10 08:02:09 +13:00
kaso17
7b8f6ccd7f add ETTV 2017-11-09 13:28:44 +01:00
kaso17
a6b5401c0b add support for magnet file download links 2017-11-09 13:28:15 +01:00
kaso17
6d53e486c5 fix Content/Definition folder usage in Debug mode 2017-11-09 12:32:36 +01:00
kaso17
aa35280ca9 Shareisland: force HTTPS 2017-11-09 11:38:42 +01:00
kaso17
b5d846442d Fix tracing/logging options 2017-11-09 11:22:48 +01:00
kaso17
b040187c3f fix null pointer exception 2017-11-08 17:48:27 +01:00
kaso17
804dc12a47 BJShare: fix seeders/leechers 2017-11-08 17:33:40 +01:00
kaso17
5095c543d0 The Horror Charnel: improve rows selector 2017-11-08 16:41:50 +01:00
kaso17
3ae850e69b Cardigann: fix null pointer exception in if template 2017-11-08 16:18:28 +01:00
kaso17
4cd01433b7 fix null pointer 2017-11-08 16:06:13 +01:00
kaso17
06c47ec10a fix null pointer exception during startup 2017-11-08 16:03:38 +01:00
Nathan Holland
e90bf47d8a Move service config service back into shared .NET Framework Library (#2095) 2017-11-08 15:48:47 +01:00
Nathan Holland
52c0179e8e Feature/autofac tidyup (#2096)
* Move service config service back into shared .NET Framework Library

* Move Content files into shared folder. Make autoface load different assembilies depending on what framework is using it.

* Change my mind on what the shared module should be called. Common Module is too bland.

* DotNet4.SocksProxy is not yet publically .NET Standard. Revert to previous SocksWebProxy package.

* Check in unstaged change to test dependency injection setup.
2017-11-08 15:45:21 +01:00
flightlevel
2209ab226c Updater: Use Product Version (#2094) 2017-11-08 19:53:00 +11:00
Garfield69
ed0dbf4f18 docs: drop torrentproject 2017-11-08 08:11:11 +13:00
Garfield69
81b2eed342 torrentproject: removed to stop user confusion re: 403 forbidden
in the event it revives we can always add it back ;-)
2017-11-08 07:44:44 +13:00
kaso17
5a555427ee torznab: fix time format for pubDate default 2017-11-07 17:14:10 +01:00
kaso17
9c98465b21 EliteTracker: clear cookies on login 2017-11-07 16:17:07 +01:00
kaso17
8c053797ce WebClient: set Accept-Language if missing 2017-11-07 16:10:12 +01:00
kaso17
210085b854 Add Running Jackett behind a reverse proxy 2017-11-07 12:10:28 +01:00
Garfield69
e72298ad42 gfxnews: update categories, support milti-cat search #2036 2017-11-07 19:13:28 +13:00
Garfield69
3b447b697c yggtorrent: add all cats, fix rss, plus more. fix #2066 2017-11-07 17:21:13 +13:00
flightlevel
a3c685388e Move Definitions to Jackett.Common (#2085) 2017-11-07 11:42:18 +11:00
flightlevel
2363793d29 Remove unused ProxyType (#2084) 2017-11-07 11:34:33 +11:00
Alexander Chapliuk
969c365a64 LostFilm.tv: Perform logout before logging in to invalidate session and fix "error":1 response (#2083) 2017-11-07 11:16:05 +11:00
kaso17
1d1259e8eb MySpleen: fix search 2017-11-06 17:54:00 +01:00
kaso17
55ce1394c6 Cardigann template: add if support for collections 2017-11-06 17:16:29 +01:00
kaso17
8499d06a14 KickAssTorrent (thekat.nz): fix legacy link 2017-11-06 16:00:01 +01:00
kaso17
1739ac3935 TehConnection: removed (dead) 2017-11-06 15:26:51 +01:00
kaso17
1a802f3e32 Blu-bits: removed (dead) 2017-11-06 15:15:02 +01:00
kaso17
51d2c2148a DigitalHive: improve login error handling 2017-11-06 15:13:02 +01:00
kaso17
25d0ec6ddb BitHQ: removed (dead) 2017-11-06 15:12:42 +01:00
kaso17
b9d12aec9b Hyperay: add error detection 2017-11-06 15:04:19 +01:00
kaso17
44f241a4eb IndexerException: use GetBaseException for better error messages 2017-11-06 15:03:12 +01:00
kaso17
27e314088e AnimeBytes: add captcha support 2017-11-06 14:30:03 +01:00
kaso17
be2a041a71 AnimeBytes: add captcha support 2017-11-06 14:29:46 +01:00
flightlevel
38d5394a48 Bump Custom.js version (#2080)
Prevent browser using cached old version
2017-11-06 22:14:00 +11:00
Andy Simons
2b32fb358c Socks proxy support (#2058)
* socks proxy implementaion through SocksWebProxy package

* after merge fixes
2017-11-06 21:51:26 +11:00
flightlevel
7ce1c4acfb Appveyor: Patch Version (#2073)
-Patch csproj version in Appveyor build
-Rename Jacket.Common to Jackett.Common
-Remove build.bat (no longer used or maintained)
2017-11-05 21:53:43 +11:00
Nathan Holland
571c52a0f2 Feature/netcore preparation (#2072)
* Use platform detection that works on mono 4.6+

* Move to use package reference for restoring nuget packages.

* DateTimeRoutines does not have Nuget packages that support .NET Standard (and therefore .NET Core). We will have to include them for now until we can get rid of this dependency.

* Start spliting some interfaces into their own files - this will help by allowing us to split them out in the future into a seperate project so the actual implementations can stay within their respective architectures when required

* Move out common libraries

* Few more tidy up tasks to get things working with .NET Standard

* Restructure the solution layout

* Encoding work to reduce rework later on platforms without Windows codepages (or require compliance with RFC1345)

* Move folder structure around to have more natural layout of the solutions

* DI server configuration to get rid of "temporary" hack and dependency circle for serverservice

* Make all encoding consistent to match the expected encoding casing for earlier versions of mono.
2017-11-05 20:42:03 +11:00
Garfield69
47a2ffa313 kickasstorrent-kathow: domain change .se -> .nz fix #2065 2017-11-04 12:37:46 +13:00
Garfield69
1026d0a290 frozenlayer: add SPANISH Public ANIME site for #1556 2017-11-04 12:23:08 +13:00
Garfield69
f02dad054b torrent9: fix #2057
drop sort by seeds as site's page is broken
add category to results
add category filter in settings because site does not support multi-cats
add date now to prevent ugly' 2017y ago'
2017-11-02 14:47:56 +13:00
Nathan Holland
36bd2c032f Use platform detection that works on mono 4.6+ (#2055) 2017-11-01 21:37:51 +11:00
flightlevel
5c35ada012 Use BencondNET instead of MonoTorrent (#2048) 2017-11-01 12:42:26 +11:00
Garfield69
e0833ba719 bt-scene: add Public site for MOVIES/TV/GENERAL resolves #2038 2017-11-01 12:42:20 +13:00
Garfield69
7039bbdb51 t411v2: gone. redirects to yggtorrent.com fix #2040 2017-11-01 10:05:54 +13:00
Garfield69
bc4d69ffd8 yfftorrent: fix TEST for #2051 2017-11-01 08:38:13 +13:00
flightlevel
a319838029 Bump Custom.js version (#2046)
Prevents cache using old version
2017-10-31 20:54:00 +11:00
Andy Simons
570ea5bb51 UI proxy settings (#2043) 2017-10-31 20:45:30 +11:00
Guizzoni
7638d9bc39 Update manicomioshare.yml (#2045)
This update (hopefully) fixes relogin detection.
2017-10-31 06:56:47 +13:00
Alexander Chapliuk
46c993d608 Update LostFilm.tv indexer (#2030)
* LostFilm.tv: Fix language and quality in release titles

* LostFilm.tv: Snatch Season Packs if they are available

* LostFilm.tv: Fix searching for series with special characters in title

* LostFilm.tv: Parse episode details on episode page, not on Discovery page

* LostFilm.tv: Don't snatch separate episodes if season pack was requested but not found

* LostFilm.tv: Repace logger.Info with logger.Debug to keep logs free of spam
2017-10-30 21:56:01 +11:00
Nathan Holland
0838174622 Update requirements for Jackett (#2037) 2017-10-30 21:41:10 +11:00
Garfield69
75849ecceb docs: add gfxnews 2017-10-30 16:30:25 +13:00
Garfield69
9139e64762 gfxnews: add Private tracker GRAPHICS SOFTWARE/TUTORIALS #1445 2017-10-30 16:28:23 +13:00
Garfield69
4d9ca394f4 kinozal: multi cat is not supported. 2017-10-30 16:26:14 +13:00
Garfield69
1c88cf96df skytorrents: handle the two different date schemes 2017-10-30 09:57:56 +13:00
Nathan Holland
8a6b9d4de7 Feature/netcore preparation (#2035)
* Move to use package reference for restoring nuget packages.

* Return a task result for this async method.

* Update to a supported version of the .NET Framework. This also has the side effect of allowing us to automatically generate our binding redirects on build.

* Set the solution to target VS2017

* Update test solution csproj file to support being built through MSBuild 15

* Move to use package reference for restoring nuget packages.

* Return a task result for this async method.

* Update to a supported version of the .NET Framework. This also has the side effect of allowing us to automatically generate our binding redirects on build.

* Set the solution to target VS2017

* Update test solution csproj file to support being built through MSBuild 15

* DateTimeRoutines does not have Nuget packages that support .NET Standard (and therefore .NET Core). We will have to include them for now until we can get rid of this dependency.

* Move the interfaces into their own files. This will be useful when we share them between the .NET Core and .NET Framework WebAPI

* Stage services that need to point to the new interface namespace.

* Update CurlSharp to fix memory leak issue and support better runtime compatibility with OSX and Linux

* Start spliting some interfaces into their own files - this will help by allowing us to split them out in the future into a seperate project so the actual implementations can stay within their respective architectures when required
2017-10-29 21:19:09 +11:00
Nathan Holland
7829643104 Feature/package reference restore (#2025)
* Move to use package reference for restoring nuget packages.

* Return a task result for this async method.

* Update to a supported version of the .NET Framework. This also has the side effect of allowing us to automatically generate our binding redirects on build.

* Set the solution to target VS2017

* Update test solution csproj file to support being built through MSBuild 15

* Move to use package reference for restoring nuget packages.

* Return a task result for this async method.

* Update to a supported version of the .NET Framework. This also has the side effect of allowing us to automatically generate our binding redirects on build.

* Set the solution to target VS2017

* Update test solution csproj file to support being built through MSBuild 15
2017-10-29 19:42:25 +11:00
flightlevel
84ccd323e0 Code Tidy: Indexers P to Z (#2033) 2017-10-29 17:50:47 +11:00
flightlevel
e93d8f0f7c Code Tidy: Indexers A to N (#2032)
* Code Tidy: Indexers A-B

* Code Tidy: Indexers C to H

* Code Tidy: Indexers I-N
2017-10-29 17:21:18 +11:00
flightlevel
132a04d9b9 Use MSBuild and appveyor.yml (#2031) 2017-10-29 12:13:04 +11:00
Garfield69
332a434499 t411v2: fix search row header. Fix #2028 2017-10-29 12:58:44 +13:00
Garfield69
4dc8055830 cpabien: domain change yet again. fix #2029 2017-10-29 11:45:28 +13:00
Garfield69
ea7421ea93 rutor: add this Russian Public site for TV/MOVIES/GENERAL #1445 2017-10-29 10:49:49 +13:00
Garfield69
959f66ad78 megabliz: add Semi-Private site for MOVIES/TV/GENERAL. #1445 2017-10-28 18:08:18 +13:00
Garfield69
f9d128994d kinozal: add Russian semi-private MOVIE/TV/MUSIC tracker. resolves #351 2017-10-27 09:14:50 +13:00
Andrew
9bf7d5b92a Added BitMe tracker (#2014)
fix #1977
2017-10-26 10:17:42 +02:00
Garfield69
445f19dcd2 mvgroup: site does not provide size, but Sonarr requires it.
so we default to 500 MB to satisfy it.
2017-10-26 17:21:25 +13:00
kaso17
ccffdaa5ee PirateTheNet: fix category handling 2017-10-25 18:19:13 +02:00
kaso17
804c771cbe AlphaRatio: use gazelle base and update categories 2017-10-25 17:46:23 +02:00
kaso17
0ab6734dec BaseIndexer: Update cookies in RequestBytesWithCookies() 2017-10-25 17:20:39 +02:00
kaso17
23ae126026 Rarbg: retry on invalid token 2017-10-25 16:14:06 +02:00
kaso17
963b7aa78f Merge branch 'master' of https://github.com/Jackett/Jackett.git 2017-10-25 16:03:16 +02:00
kaso17
3eb7534ddd disable recaptcha support 2017-10-25 16:03:09 +02:00
Guizzoni
8dad840f3f Update speed-share.yml (#2013)
Added missing categories, release date, release type. 
Fixed some errors, and removed some useless strings.

Unfortunately the indexer shows non scene resolutions like "848x480; 1920 x 960" and i wan't able to translate that to "480p; 720p" because there are so many different resolutions. If someone could help me with that, i'd be glad.
2017-10-25 15:40:56 +02:00
Garfield69
be128ed1d5 mvgroup: tweak cateory and subtitles default 2017-10-25 08:14:31 +13:00
Garfield69
fb904840b8 mvgroup: new trackers for the Main and Forum versions of the site. Completes #315 2017-10-25 08:01:28 +13:00
kaso17
b4e81301a3 Fuzer: use browse.php 2017-10-24 18:30:09 +02:00
kaso17
0ada1871ba Blutopia: add global freeleech support 2017-10-24 12:24:36 +02:00
kaso17
6200eba45d Cardigann: move preprocessingfilters after re-login check 2017-10-24 11:51:54 +02:00
kaso17
7f7c6eb1c4 Merge branch 'master' of https://github.com/Jackett/Jackett.git 2017-10-24 11:15:52 +02:00
kaso17
92fb27e188 Cardigann: fix re_replace regex 2017-10-24 11:15:46 +02:00
Garfield69
82eebf82d3 btdb: fetch up to 100 results instead of just 10. Fix #1999 2017-10-24 20:32:54 +13:00
Garfield69
5607458f60 t411v2: fetch up to 100 results instead of just 20. Fix #1944 2017-10-24 20:16:53 +13:00
Guizzoni
16654d46df Add Speed-Share indexer (#2005)
fix #1699
2017-10-24 08:47:21 +02:00
Garfield69
c8bfd73c8d yaml definitons: use of single search path is deprecated
this goes double for associated method!
and brings everything into line with current wiki docs
2017-10-24 06:55:22 +13:00
kaso17
e6a2646a98 BitMeTV: use and filter 2017-10-23 18:10:19 +02:00
kaso17
6dc12f0d3c Torznab: add audio-search cap 2017-10-23 18:02:53 +02:00
kaso17
0846ca40cd PTFiles: adjust rows selector
fix #1844
2017-10-23 17:47:58 +02:00
kaso17
dae55ad500 The Empire: fix download link
fix #1997
2017-10-23 17:08:35 +02:00
Andrew
5e361c2087 uhdbits: fix date (#2000) 2017-10-23 16:51:02 +02:00
Brian Hardisty
3d7ecd197b BeyondHD: Add new FraMeSToR 4K REMUX category (#2001) 2017-10-23 16:49:47 +02:00
Frederik Nielsen
c0524db98d Hounddawgs: Fix grabs/seeders/peers (#1993) 2017-10-23 08:03:37 +02:00
Garfield69
fa8021c048 metaltracker: source cosmetic alignment 2017-10-23 07:15:44 +13:00
Garfield69
246a761eb7 cpabien: add date 2017-10-23 07:15:04 +13:00
Garfield69
28260afdd9 nexttorrent: new domain fix #1996 2017-10-23 07:14:35 +13:00
Garfield69
4c42995ebc anirena: fix #1990
Add a few missing categories
handle TEST correctly
prevent row selector false hits
add date as now instead of 2017y ago
add category selector for results
2017-10-22 15:47:04 +13:00
Garfield69
bdc2843b40 metaltracker: add semi-private heavy metal music tracker #282
this definition is for the english version of the site
2017-10-22 08:44:22 +13:00
Ellmout
6e61f38644 Convert ArcheTorrent from C# to Definition file (#1987)
* Merge ArcheTorrent from C# to Definition files

* Merge ArcheTorrent from C# to Definition files (forgot csproj file)
2017-10-21 11:05:08 +02:00
Andrew
8ff186d716 torviet: fix including dead (#1989) 2017-10-21 11:03:51 +02:00
kaso17
c58b9d58a9 Xthor: enable tracker specific categories 2017-10-19 16:54:15 +02:00
kaso17
1603516666 CardigannIndexer: add support for music-search 2017-10-19 16:46:34 +02:00
kaso17
46e841fc13 SceneTime: update categories 2017-10-19 16:45:07 +02:00
kaso17
d4ff5d3022 cpasbien: update site links 2017-10-19 16:26:29 +02:00
kaso17
935416cf0d fix music-search supportedParams 2017-10-18 18:42:00 +02:00
kaso17
7ca75f51e3 enable album music search 2017-10-18 18:34:46 +02:00
kaso17
9b592259aa notwhat.cd: enable music-search 2017-10-18 18:31:27 +02:00
kaso17
281678892d Redacted: enable music-search 2017-10-18 18:31:14 +02:00
kaso17
9aace8ae16 Synthesiz3r: enable music-search 2017-10-18 18:31:02 +02:00
kaso17
adcfade7f2 Torznab: add support for music-search 2017-10-18 18:30:41 +02:00
Tobias Nordahl Kristensen
d0d51a907e Hounddawgs: Fix category 89 & 91 (#1981)
Both is DK Movies (HD&SD) and _not_ TV-content.
2017-10-18 12:25:06 +02:00
Max Maton
0a4e003bde Secret Cinama: Fix search (#1979)
* Fix Secret Cinama searching

* Update secretcinema.yml
2017-10-18 11:14:36 +02:00
kaso17
7230507f5a AnimeBytes: improve Audio category matching 2017-10-18 11:00:47 +02:00
kaso17
07744ab88f AnimeBytes: add Forbidden error handling 2017-10-18 10:46:38 +02:00
kaso17
a8f80ca60e Revert "HttpWebClient: Add certificate whitelist warnning"
This reverts commit b9d3592f3a.
2017-10-17 19:11:32 +02:00
kaso17
3011f22101 MoreThanTV: add season filtering 2017-10-17 19:10:53 +02:00
kaso17
f3098bd6d9 Blutopia: fix timezone parsing 2017-10-17 18:41:01 +02:00
kaso17
b9d3592f3a HttpWebClient: Add certificate whitelist warnning 2017-10-17 18:38:35 +02:00
kaso17
f299cf3ac3 Il Corsaro Nero: update certificate 2017-10-17 18:26:32 +02:00
kaso17
48118d5691 Blutopia: fix definition 2017-10-17 18:23:32 +02:00
kaso17
5d6b71b7a7 Cardigann: add Preprocessing Filters 2017-10-17 18:23:13 +02:00
kaso17
e5982b49a2 GkTorrent: update links 2017-10-17 13:09:02 +02:00
kaso17
bb80da9b19 AnimeBytes: fix parse error on empts tag list 2017-10-17 12:49:54 +02:00
kaso17
d027901257 ShowRSS: default to HTTPS 2017-10-17 12:30:04 +02:00
alimnette
8b8629ef19 T411v2: Fix Greys Anatomy search (#1962)
Fixes #1963
2017-10-17 12:22:10 +02:00
Alexander Chapliuk
3cdab54f5c Add LostFilm.tv indexer (#1975)
Fixes #1922
2017-10-17 12:19:03 +02:00
kaso17
d0342019bc FileList: update categories 2017-10-17 12:08:52 +02:00
kaso17
3c61cb6f06 Xtreme Zone: update paths 2017-10-17 11:56:22 +02:00
kaso17
3863008846 M-Team - TP: add support for adult torrents 2017-10-17 11:49:57 +02:00
kaso17
22ca2d9552 Merge branch 'master' of https://github.com/Jackett/Jackett.git 2017-10-17 11:15:32 +02:00
kaso17
e6029c41a7 Manual search: strip leading zeroes from episode 2017-10-17 11:15:28 +02:00
kaso17
63cf687f02 Animebytes: add AddSynonyms and FilterSeasonEpisode options 2017-10-17 11:15:09 +02:00
Jelle
d30bde715c Added the aggregate indexer to be retrievable from IndexerManagerService.GetWebIndexer() (#1969) 2017-10-16 18:22:16 +02:00
Garfield69
12b9d6ca7d btbit: add the English version of this public. resolves #1934 2017-10-16 17:59:56 +13:00
alimnette
0933d913dc Update t411v2.yml (#1949)
Fix Grey's Anatomy results
2017-10-11 07:48:08 +02:00
Garfield69
8aa82a22f4 nexttorrent: moved domain to www.nextorrent.cc #1950 2017-10-11 13:00:33 +13:00
Garfield69
91817a10ff torrent9: moved domain ... again! #1950 2017-10-11 12:51:40 +13:00
Garfield69
8f10d27d0f docs: add DuckieTV to the list of apps that support connecting to Jackett 2017-10-10 15:23:41 +13:00
Garfield69
49a7c8df7a gktorrent: fix #1941
the dashboard test requires just the base path.
categories matching requires french keywords
the site does not supply a release date, so lets default to now,
otherwise we get ugly "2017y old" in dashboard results.
2017-10-09 13:36:09 +13:00
garfield69
34780f91be cpabien: switch to .org domain fix #1933 (#1937)
this avoids redirection by .cc domain
add .cc as legacylink
also add original .co as legacylink
2017-10-09 10:36:07 +13:00
garfield69
851a4d30e1 DanishBits: add Passkey info to hopefully prevent #1892 #1873 #1850 (#1925)
* DanishBits: add Passkey info to hopefully prevent #1892 #1873 #1850

**WARNING** this is a completely untested code change, as I don't have VS or a c# compiler.      
I simply made my best guess based on similar code I found in TorrentBytes.cs
Please review carefully, and hopefully I haven't left anything out ;-)
If you don't want me to make future changes like this without the required tools, then please let me know. Thanks.

* Update DanishBits.cs

* Update DanishBits.cs

* Update DanishBits.cs

* Update DanishBits.cs

* Update DanishBits.cs

* Update DanishBits.cs

* Update ConfigurationDataUserPasskey.cs

add display item instructions

* Update DanishBits.cs

switch to ConfigurationDataUserPasskey
and drop unused using statements

* Update CouchPotatoTracker.cs

add ConfigurationDataUserPasskey ConfigData1

* Update CouchPotatoTracker.cs

fix optional configData parm override

* revert

oops no, that wipes preloaded data :(

* Update CouchPotatoTracker.cs

add configurationDataUserPasskey as parameter
2017-10-06 10:36:04 +02:00
garfield69
2ab6d13493 Descriptions3 (#1923)
* AnimeTosho: add description

* worldwidetorrents: add description

* 2fast4you: add description

* 7tor: add description

* arabafenice: add description

* ast4u: add description

* b2s-share: add description

* bithumen: add description

* bitspyder: add description

* BrokenStones: add description

* cpasbien: add description

* CzTorrent: add description

* Deildu: add description

* diablotorrent: add description

* gigatorrents: add description

* gktorrent: add description

* gktorrent: amend description

* gods: add description

* greekteam: add description

* hdtorrentsit: add description

* ilcorsaronero: add description

* kickasstorrent-kathow: add description

* linkomanija: add description

* losslessclub: add description

* manicomioshare: add description

* nexttorrent: add description

* Norbits: amend description

* nyaa-pantsu: add description

* nyoo: add description

* PassThePopcorn: amend description

* PolishTracker: add description

* ptfiles: add description

* t411v2: add description

* tntvillage: add description

* TorrentNetwork: add description

* torrent9: add description

* TorrentDay: amend description

* torrentsmd: add description

* trancetraffic: add descrption

* trezzor: add description
2017-10-04 07:05:10 +02:00
kaso17
fd79b317ea Rarbg: adjust delay 2017-10-03 15:32:44 +02:00
kaso17
0e0d53fa00 IWebClient: fix DelayRequest 2017-10-03 15:32:34 +02:00
kaso17
034edbd32a DanishBits: fix download 2017-10-03 14:23:31 +02:00
kaso17
ecc438b21e Isohunt: remove (dead) 2017-10-03 14:04:29 +02:00
kaso17
d2d3dfbe77 MoreThanTV: improve search results 2017-10-03 13:03:25 +02:00
garfield69
addd6ae226 btdb: fix #1900 add support for Sonarr and Radarr (#1921)
the btdb site does not use categories and supplies magnets for all sorts of content.
So the btdb definition now always returns category `100001 Other` for all search results.
Added info in settings to provide instructions on setting up btdb on Sonarr and Radarr.
Tested on Jackett Dashboard, Sonarr and Radarr.
2017-10-03 12:53:48 +02:00
garfield69
5818548dbf kickasstorrent: fix #1852 (#1920)
fix so it passes the Sonarr test.
add description.
Tested on Jackett Dashboard and Sonarr
2017-10-03 12:50:46 +02:00
Wyall
38e039ac34 Update TransmitheNet.cs (#1919)
TTN -> NBL as it's called nebulance
2017-10-03 12:48:50 +02:00
EffeF
4c3f45fd8c hdtorrentsit: fix #1294 (#1918)
* Update hdtorrentsit.yml

* Update hdtorrentsit.yml
2017-10-03 12:48:31 +02:00
garfield69
1b7e8a9edf Descriptions2 (#1916)
* asiandvdclub: add description

* bb: amend description

* fanoin: add description

* freedomhd: add description

* fullmixmusic: add description

* gormogon: add description

* icetorrent: add description

* majomparade: add description

* mononokebt: add description

* PiXELHD: add description

* rodvd: add description

* tasmanit: add description

* thetorrents: add description

* torrenthr: add description

* utorrents: add description

* zamundanet: add description

* zelkaorg: add description

* ztracker: add description

* 1337x: add description

* BroadcastTheNet: add description

* torrenting: add description

* gfxpeers: add description

* torlock: add description

* aniRena: add description

* 1337x: amend description

* anidex: amend description

* aniRena: amend description

* btdb: add description

* Demonoid: add description

* eztv: add description

* idope: add description

* limetorrents: add description

* thepiratebay: add description

* nyaasi: add description

* magnetdl: add description

* RARBG: add description

* RuTracker: add description

* skytorrents: add description

* torrentdownloads: add description

* torrentz2: add description

* YTS: add description

* zooqle: add description
2017-10-03 12:47:02 +02:00
kaso17
af4df90832 fix typo 2017-10-01 15:01:24 +02:00
kaso17
c99fdfe641 Merge branch 'master' of https://github.com/Jackett/Jackett.git 2017-10-01 14:27:37 +02:00
kaso17
211e80cb17 TV Chaos: update categories 2017-10-01 14:27:30 +02:00
garfield69
d687dfc3e1 hyperay: update link and add description (#1912)
hyperay switched domains in feb '17
source: opentrackers.org
2017-10-01 11:28:52 +02:00
garfield69
1ea5b21956 Display a description on Indexer Setup panel (#1911)
* custom.js: add description alert to Indexer Setup panel

* index.html: add description to Indexer Setup panel

* Update index.html
2017-10-01 11:28:10 +02:00
Matthew Banning
aff3af0214 RARBG: Adding 4k categories (#1910)
* Add 4k Movie and TV categories for RARBG

Currently it does not look like torrentapi.org indexes the 4k movie categories but I've added them anyway in case they get added in the future.
Also, torrentapi.org returns "Movies/TV-UHD-episodes" for RARBG's 4k TV category. This may be due to RARBG's top100 page.

* Update Rarbg.cs
2017-10-01 11:26:52 +02:00
garfield69
f9b2875470 add Descriptions (#1909)
* HDForever: add description

* superbits: add description

* czteam: add description

* xspeeds: amend description

* Synthesiz3r: add description

* TorrentVault: add description

* insanetracker: add description

* yggtorrent: add description

* ImmortalSeed: amend description

* polishsource: add description

* btnext: add description

* hon3yhd: add description

* hdhome: add description

* ultrahdclub: add description

* speedtorrentreloaded: add description

* hdme: add description

* magico: add description

* ourbits: add description

* audiobooktorrents: add description

* ultimategamerclub: add description

* dragonworldreloaded: add description

* dreamteam: add description

* Psytorrents: add description

* funkytorrents: add description

* rockhardlossless: add description

* bluebirdhd: add description

* Hardbay: add description

* shellife: add description

* aox: add description

* acidlounge: add description

* infinityt: add description

* jpopsuki: add description

* bithq: add description

* HD-Only: add description

* torrentccf: add description

* xtremezone: add description

* sktorrent: add description

* Torrentech: add description

* passionetorrent: add description

* kapaki: add description

* carpathians: add description

* estone: add description

* datascene: add description

* myspleen: add description

* torviet: add description

* backups: add description

* CGPeers: add description

* inperil: add description
2017-10-01 11:26:07 +02:00
garfield69
606c82921b add EliteHD (#1908)
* Create elitehd.yml

* docs: add EliteHD

* elitehd: add description
2017-10-01 11:25:22 +02:00
nenladar
4463fc0550 TorrentLeech: Add the new 4K category (#1899)
* Add the new 4K category for TorrentLeech

TorrentLeech renamed the existing 4k category and added a new "Real 4K UltraHD HDR" category. This PR adds the new category (but leaves the old one too).

* Update TorrentLeech.cs
2017-09-29 17:21:32 +02:00
garfield69
2bdb1ee0ff btdb: add default categories (#1886) 2017-09-23 14:02:49 +02:00
garfield69
2af27c0a87 zooqle: seeders and leechers can be missing. (#1885) 2017-09-23 14:02:35 +02:00
garfield69
db9fb73b4d anidex: fix #1817 settings' category id causing no results (#1880) 2017-09-22 08:06:22 +02:00
garfield69
aee64183fc rapidetracker: cleanup after removal. closes #1870 (#1874) 2017-09-22 08:04:52 +02:00
garfield69
9cabf72829 add BTDB public tracker. Closes #1564 (#1868)
* docs: add BTDB public tracker. Closes #1564

* Create btdb.yml
2017-09-22 08:04:41 +02:00
garfield69
ec7a2d049c zooqle: fix seeders and leechers (#1867) 2017-09-22 08:04:10 +02:00
garfield69
11ebe34f55 add MagnetDL public tracker. closes #1069 (#1865)
* docs: add MagnetDL public tracker. closes #1069

* Create magnetdl.yml

* magnetdl: ensure keywords are in lower case

* docs: oops, m before n
2017-09-22 08:03:55 +02:00
garfield69
db476951fe add World Wide Torrents public tracker. closes #1439 (#1863)
* Create worldwidetorrents.yml

* docs: add World Wide Torrents public tracker. Closes #1439

* worldwidetorrents: prevent errors.

the scripts were causing false hits for the row selector.

* docs: oops put wwt in correct section
2017-09-22 08:03:09 +02:00
garfield69
a49e0d5667 idope: add info to itorrents settings and default to enabled. (#1862) 2017-09-22 08:02:37 +02:00
halali
605c6bcada Trezzor: Convert to cardigan (#1860)
* Convert Trezzor to cardigan

* Change encoding
2017-09-22 08:02:03 +02:00
kaso17
9c2e5b4219 Hon3y HD: improve search query
fixes #1859
2017-09-20 13:17:09 +02:00
kaso17
2e1ce6f202 M-Team - TP: add support for IMDB tooltip handling 2017-09-20 11:39:15 +02:00
kaso17
650435aaef Cardigann: add support for info setting 2017-09-20 11:38:50 +02:00
kaso17
f2248200af Merge branch 'master' of https://github.com/Jackett/Jackett.git 2017-09-19 17:34:06 +02:00
kaso17
6a9777895c TenYardTracker: update default link
fixes #1846
2017-09-19 17:33:58 +02:00
kaso17
47a8c977d9 torznab: include proper torznab category attributes 2017-09-19 17:32:30 +02:00
garfield69
b138e243ee add Idope public tracker. closes #1386 (#1857)
* docs: add Idope public tracker

* Create idope.yml
2017-09-19 12:27:54 +02:00
kaso17
fbab796e76 Ethor.net: add login error detection 2017-09-19 11:38:06 +02:00
kaso17
8126fc3c85 DanishBits: use wildcard search 2017-09-19 11:32:12 +02:00
kaso17
27a7b2d711 TorrentVault: fix category selector
fixes #1853
2017-09-19 11:09:24 +02:00
kaso17
86ecacffcb log request exceptions 2017-09-19 11:02:00 +02:00
kaso17
8b5d3d0170 Bitspyder: fix grabs parsing for alternative style 2017-09-18 11:26:24 +02:00
kaso17
4c3cb9f295 Merge branch 'master' of https://github.com/Jackett/Jackett.git 2017-09-17 16:38:32 +02:00
kaso17
c9f945a08e Torrent9: update site link 2017-09-17 16:38:25 +02:00
garfield69
46c6bd74a2 zooqle: add categories and fix a few bugs (#1834)
dummy commit, already applied via #1837
2017-09-17 16:35:03 +02:00
kaso17
61e2add89a 1337x: optional category and conditional date parsing 2017-09-17 16:32:05 +02:00
garfield69
24fe395cf0 add 1337x public tracker. Closes #1384 (#1837)
* zooqle: add categories and fix a few bugs

* docs: add 1337x public tracker

* create 1337x public tracker. closes #1384
2017-09-17 15:17:07 +02:00
Nottt
aab8968a14 Update README.md (#1841) 2017-09-17 15:05:42 +02:00
kaso17
de98438102 update readme 2017-09-17 15:02:03 +02:00
kaso17
108213f098 DanishBits: use couchpotato API 2017-09-15 18:57:43 +02:00
kaso17
861271ac04 TorznabQuery: allow % in search term 2017-09-15 18:54:33 +02:00
kaso17
b378f74202 zetorrents: remove 2017-09-15 17:08:33 +02:00
kaso17
866e1df174 Add GkTorrent tracker 2017-09-15 17:05:55 +02:00
kaso17
0bb231eeca Back-ups: minor changes 2017-09-15 08:20:57 +02:00
halali
fb5c82ff85 Add Back-ups and SkTorrent trackers (#1830)
* Fix Date and inprove seasson searching for CzTorrent

* Update title filter

* Add Back-ups and SkTorrent

* Update reabme

* Update backups.yml
2017-09-15 08:15:40 +02:00
garfield69
d9f57b4e13 Definitions: replace deprecated optional (#1827)
* bithumen: replace deprecated use of optional

* bitspyder: replace deprecated use of optional

* chdbits: replace deprecated use of optional

* diablotorrent: replace deprecated use of optional

* eztv: replace deprecated use of optional

* funkytorrents: replace deprecated use of optional

* hon3yhd: replace deprecated use of optional

* insanetracker: replace deprecated use of optional

* kapaki: replace deprecated use of optional

* limetorrents: replace deprecated use of optional

* linkomanija: replace deprecated use of optional

* losslessclub: replace deprecated use of optional

* magico: replace deprecated use of optional

* majomparade: replace deprecated use of optional

* ourbits: replace deprecated use of optional

* polishsource: replace deprecated use of optional

* rodvd: replace deprecated use of optional

* torrentccf: replace deprecated use of optional

* torrenthr: replace deprecated use of optional

* torrentproject: replace deprecated use of optional

* torrentz2: replace deprecated use of optional

* oops

* Update bitspyder.yml

* Update insanetracker.yml

* Update kapaki.yml

* Update magico.yml

* Update polishsource.yml

* Update torrenthr.yml

* Update polishsource.yml
2017-09-15 08:14:46 +02:00
garfield69
4676972493 add Zooqle tracker (#1826)
fix #1185
2017-09-15 08:01:10 +02:00
kaso17
1d3ac34011 add innerstacktrace on request exception 2017-09-14 15:01:01 +02:00
kaso17
634a860f5c DigitalHive: Captcha is optional now 2017-09-14 15:00:33 +02:00
kaso17
eb00665df1 Hounddawgs: fix bannerUri usage 2017-09-13 12:53:38 +02:00
kaso17
5e77d27021 ArcheTorrent: improve parsing 2017-09-13 12:50:21 +02:00
Malte Baden Hansen
8fec3ede4e Hounddawgs: fix wrong image path causing torrent parsing to fail. (#1808)
* Wrapped item parsing in try catch / one erranious torrent should not fuck up the entire parsing.
Changed Uri creation to use TryCreate, to harden against invalid image paths.

* Woops, can't use new C# features...
2017-09-13 12:06:44 +02:00
kaso17
ae6d5ccfc6 ResultsController: fix request exception handling 2017-09-13 12:01:07 +02:00
kaso17
e309d96c51 Hounddawgs: handle invalid BannerUrls 2017-09-13 11:56:05 +02:00
kaso17
2a3b42f83a BaseIndexer: include original stack trace in OnParseError exceptions 2017-09-13 11:49:24 +02:00
kaso17
4819a3c8ed Continue loading cardigann definition in case of an error 2017-09-13 11:33:17 +02:00
halali
34d091942a CzTorrent : Fix Date and improve season searching (#1812)
* Fix Date and inprove seasson searching for CzTorrent

* Update title filter
2017-09-13 11:19:01 +02:00
kaso17
ee2abe6751 TorrentVault: fix date format 2017-09-13 11:15:24 +02:00
kaso17
27f0448caf TorrentVault: add certificate 2017-09-13 11:14:26 +02:00
kaso17
6493037251 UpdateService: always print current/latest version 2017-09-13 10:35:51 +02:00
kaso17
0cd11e1882 Improve error handling if the tracker is down 2017-09-13 09:57:39 +02:00
kaso17
cfdafa01c9 Torlock: fix date parsing 2017-09-13 09:29:30 +02:00
kaso17
e3852bcb1b Merge branch 'master' of https://github.com/Jackett/Jackett.git 2017-09-13 09:13:58 +02:00
kaso17
e33e95c1b2 The Empire: update site link 2017-09-13 09:13:49 +02:00
garfield69
3d0e777d22 SceneAccess: remove (shutdown) (#1818)
* docs: delete sceneAccess

* Delete SceneAccess.cs

* cleanup for Indexers/SceneAccess.cs

* remove SceneAccess.cs

* revert, as SceneAccess is not a yml definition but a cs indexer
2017-09-13 09:00:54 +02:00
kaso17
aeb3d49c06 fix Definitions include 2017-09-11 15:16:16 +02:00
kaso17
c2cf5adeb2 PolishTracker: update for new reaper engine 2017-09-11 15:10:54 +02:00
kaso17
40ab7280ca add TorrentVault tracker 2017-09-11 12:39:22 +02:00
kaso17
0c37a191fd added Synthesiz3r tracker 2017-09-11 12:02:45 +02:00
kaso17
19547bc58f AnimeBytes: remove useless request 2017-09-11 11:39:47 +02:00
adamwinn
bcbe18214b Karagarga: Fix parsing (#1798) 2017-09-11 11:03:57 +02:00
Alan Gregory
eb60a6854c manicomioshare: Fixed "Unknown series" on sonarr (#1802)
* Fixed "Unknown series on sonarr"

* Changed whitespace to E
2017-09-11 11:03:22 +02:00
adamwinn
11406697be Secret Cinema: change definition to match new site (#1803) 2017-09-11 11:02:39 +02:00
kaso17
b2b576a72d SpeedCD: fix row selector 2017-09-11 10:50:23 +02:00
kaso17
e537e4976e Dream Team: fix definition 2017-09-11 10:33:18 +02:00
kaso17
490254d16b Revert "Dream Team: remove (dead)"
This reverts commit a5cc7d973f.
2017-09-11 10:26:11 +02:00
kaso17
a5cc7d973f Dream Team: remove (dead) 2017-09-09 14:36:47 +02:00
kaso17
3e000453a5 add error message 2017-09-08 19:05:10 +02:00
kaso17
8f090fabef UI: revert target blank change 2017-09-08 19:02:53 +02:00
kaso17
91eb4c37cb TNTVillage: remove diacritics 2017-09-08 19:01:36 +02:00
kaso17
da43f17558 Cardigann: add diacritics filter 2017-09-08 19:00:25 +02:00
kaso17
3b3c3b0947 EliteTracker: update categories 2017-09-08 18:04:28 +02:00
kaso17
06e386c253 readme: update CA certificates error 2017-09-08 17:47:50 +02:00
thebluepotato
a2ae2d3384 Enhance the service installation on MacOS (#1793)
* Make the script self-executing

* Update script with colors

Since it’s self-executing, at least the output is more visible

* Changes to README

* Update Jackett.Console.csproj

* Clarify README
2017-09-08 17:12:47 +02:00
thebluepotato
3532a73d59 UI: Change the type locks to labels (#1773)
* Changing the locks

* Changing the locks to labels

* Update index.html

update chagned param

* whitespaces
2017-09-08 09:06:06 +02:00
thebluepotato
b7daffea87 Enhance the macOS install script (#1786)
Fixes #1784
2017-09-08 09:04:41 +02:00
kaso17
e7b9f8c5ec HDTorrents: fix parsing 2017-09-05 18:37:25 +02:00
garfield69
9ada58a6e3 HDClub: remove (#1772)
* drop HDClub

* delete hdclub

* Delete hdclub.yml
2017-09-03 12:16:37 +02:00
kaso17
c8d974cf52 Add AST4u tracker 2017-09-03 10:03:38 +02:00
kaso17
c544de8fed Demonoid: add recaptcha support 2017-09-02 14:40:29 +02:00
kaso17
93ec102a86 7Tor: add automatic relogin 2017-09-01 18:17:14 +02:00
kaso17
92bda2b09b Anidex: fix definition 2017-09-01 18:08:47 +02:00
kaso17
1cd0358531 SceneTime: make category optional 2017-09-01 17:46:24 +02:00
kaso17
222fec2fd0 whitespace fixes 2017-09-01 17:32:20 +02:00
kaso17
3790cbb894 Add support for X-Forwarded-Proto/Front-End-Https headers 2017-09-01 17:28:56 +02:00
kaso17
05d5798046 Add root privileges notice 2017-08-31 17:48:49 +02:00
kaso17
9e9deb17c7 attempt to fix caching related issues 2017-08-31 12:21:59 +02:00
kaso17
2aedc4f335 IPTorrents: fix AlternativeSiteLinks 2017-08-31 12:14:31 +02:00
kaso17
dfa708e355 IPTorrents: update Alternative Site Links 2017-08-31 11:13:09 +02:00
kaso17
6d1997ef96 UI: Improve Alternative Site Link selection 2017-08-31 11:12:50 +02:00
kaso17
db479d8de8 fix AlternativeSiteLinks 2017-08-31 10:50:47 +02:00
kaso17
741e6407ce FullMixMusic: update URL 2017-08-31 10:50:12 +02:00
kaso17
141f3e57e5 Introduce LegacySiteLinks to automatically update to new SiteLinks 2017-08-30 18:46:36 +02:00
kaso17
00027a41c1 manual search: add multiselect support for tracker/category dropdowns 2017-08-30 17:40:32 +02:00
kaso17
e754d3da9f Merge branch 'master' of https://github.com/Jackett/Jackett.git 2017-08-30 13:52:37 +02:00
kaso17
bf54a2f171 manual search: fix selected indexer log output 2017-08-30 13:52:31 +02:00
garfield69
7b7d0082b6 Docs: refresh public, semi-private, private lists (#1754) 2017-08-30 11:54:56 +02:00
kaso17
3614b1b3da Merge branch 'master' of https://github.com/Jackett/Jackett.git 2017-08-30 11:54:06 +02:00
kaso17
39b0670a29 UI: adjust base path override placeholder 2017-08-30 11:52:27 +02:00
kaso17
1689c46c91 ServerConfiguration: add basePathOverride validation/normalization 2017-08-30 11:51:25 +02:00
kaso17
0143bdfe14 UI: fix updateServerConfig error handling 2017-08-30 11:50:11 +02:00
garfield69
93a9568a77 docs: T411v2 is now public as per #1740 (#1752) 2017-08-29 21:23:53 +02:00
Jonas Stendahl
40079b0365 SceneAccess: site is now permanently free-leech (#1749) 2017-08-29 18:50:25 +02:00
kaso17
168f04e786 SanitizedSearchTerm: allow + 2017-08-29 17:34:38 +02:00
kaso17
861a33f4af DataScene: fix free detection 2017-08-29 15:36:57 +02:00
kaso17
57c52d9eb2 2 Fast 4 You: fix whitespaces 2017-08-29 15:33:51 +02:00
kaso17
f574dedbe8 GigaTorrents: add search error detection 2017-08-29 15:33:19 +02:00
kaso17
a6d2ecffbb DataScene: fix definition 2017-08-29 15:33:00 +02:00
kaso17
300354ef13 update DataFolder description 2017-08-29 14:12:05 +02:00
kaso17
4a519226f5 2 Fast 4 You: remove Nouveau flag from titles 2017-08-29 11:56:41 +02:00
kaso17
6a4f6e3638 ReleaseInfo: ignore Origin during JSON serialization 2017-08-29 11:56:10 +02:00
kaso17
157b042c0a Merge branch 'master' of https://github.com/Jackett/Jackett.git 2017-08-29 10:53:39 +02:00
kaso17
9385218c9d Demonoid: ignore more ads 2017-08-29 10:53:32 +02:00
thebluepotato
7482e8d9c4 Make T411v2 public (#1740)
I'm 99% sure that since they've resurrected they're fully public (no login needed, no ratio, etc.) and since even Jackett isn't asking for login info, it should be reflected here.
2017-08-28 19:03:25 +02:00
kaso17
5501d282de Merge branch 'master' of https://github.com/Jackett/Jackett.git 2017-08-28 18:55:03 +02:00
kaso17
123bb4af5f add tracker and category to location.hash 2017-08-28 18:54:57 +02:00
halali
4d36dae634 Add CzTorrent tracker (#1739) 2017-08-28 17:32:16 +02:00
kaso17
eac11ab807 add SpeedTorrent Reloaded tracker 2017-08-28 15:49:44 +02:00
kaso17
b6892f1dc6 Dragon World (DTW): remove (dead) 2017-08-28 14:51:33 +02:00
thebluepotato
0695b8f84e Fix instructions for certificates on macOS (#1737)
* Fix instructions for certificates on macOS

* Remove an awful double space

* README cleanup

* Updated command
2017-08-28 14:37:47 +02:00
thebluepotato
04995f1a10 Fixes for 3 French trackers (#1736)
Non-critical fixes:
 - NextTorrent and Zetorrents: error in logs when no results were
returned from search
 - T411v2: improved selector to disregard VPN add in search results
2017-08-28 13:01:51 +02:00
kaso17
44d9b3ecc8 Norbits: fix download links 2017-08-28 12:51:04 +02:00
kaso17
a311509b7c Norbits: fix temp directory path generation 2017-08-28 12:50:42 +02:00
kaso17
0db4229bd4 Merge branch 'master' of https://github.com/Jackett/Jackett.git 2017-08-28 11:42:37 +02:00
kaso17
441aad5a18 Demonoid: ignore ad lines 2017-08-28 11:42:28 +02:00
thebluepotato
d8d911abf8 Add a script to install Jackett as service on macOS (#1705)
* Add instructions tu run Jackett as service on macOS

* Changed restart logic

* Replace plist with install script

* Update README and add some more checks

* Fix README

* Move and rename script

* Include script inside project

* README corrections and cleanup

* Slight improvement of the script

Put `launchctl remove` earlier so it has the time to quit the service before testing if it's still running.
2017-08-28 11:05:41 +02:00
kaso17
7423e3f5bc add workaround for mono relative redirect bug 2017-08-28 11:01:45 +02:00
kaso17
48fea35645 Merge branch 'master' of https://github.com/Jackett/Jackett 2017-08-24 12:29:57 +02:00
kaso17
cef72f11d0 manual search: improve error handling (#1717)
* manual search: improve error handling

* add index changes
2017-08-24 12:28:41 +02:00
kaso17
ad3039b70f Best Friends: remove (dead) 2017-08-24 12:05:18 +02:00
kaso17
73d590cebd include stacktrace in error 2017-08-24 12:02:38 +02:00
kaso17
1d0790471f Karagarga: fix download attempt 2017-08-24 10:48:11 +02:00
kaso17
3b3048aa01 Merge branch 'master' of https://github.com/Jackett/Jackett.git 2017-08-24 10:21:29 +02:00
kaso17
183fb56b0a Gazelle: improve isPersonalFreeleech handling 2017-08-24 10:21:20 +02:00
kaso17
466be31e6f Best Friends: remove (dead) 2017-08-24 10:13:41 +02:00
Khogniak
db42bc944b Fixed typo in regex 2017-08-23 11:39:34 +02:00
Khogniak
102e7338f9 Make regex case incesitive 2017-08-23 11:39:34 +02:00
Khogniak
01b30b0743 Added option to normalize release name 2017-08-23 11:39:34 +02:00
kaso17
947dbac485 SceneAccess: fix long titles 2017-08-23 11:37:54 +02:00
kaso17
0d29e85c80 Kapaki: fix error on no results 2017-08-22 19:26:56 +02:00
kaso17
89a28e2e95 myAmity: fix login detection 2017-08-22 19:17:47 +02:00
kaso17
66b2c20b42 ImmortalSeed: fix error on no results 2017-08-22 19:17:47 +02:00
kaso17
e6035bcaa5 Hardbay: fix error on no results 2017-08-22 19:17:47 +02:00
kaso17
68aac78360 EoT-Forum: update URL 2017-08-22 19:17:47 +02:00
kaso17
4b02141250 BTNext: fix error on no results 2017-08-22 19:17:47 +02:00
kaso17
8e1d321817 BroadcastTheNet: fix error on no results 2017-08-22 19:17:47 +02:00
kaso17
3354d37aa3 TorrentNetwork: fix typo 2017-08-22 17:46:58 +02:00
kaso17
7675214092 TorrentNetwork: fix indexer 2017-08-22 17:43:39 +02:00
kaso17
7af8e1916e Tasmanit: use wildcards for search 2017-08-22 13:34:21 +02:00
kaso17
6d4720e58f Hounddawgs: add support for alternative time format 2017-08-22 11:00:10 +02:00
kaso17
9928815777 fix cookie fallback login 2017-08-21 15:02:36 +02:00
kaso17
a7d65fedfb PotatoFeed: fix potatoenabled flag 2017-08-21 15:02:06 +02:00
kaso17
464b142130 Waffles: fix download 2017-08-21 14:07:44 +02:00
kaso17
e1bcdce019 Merge branch 'master' of https://github.com/Jackett/Jackett.git 2017-08-21 13:06:57 +02:00
kaso17
ced9bad4f8 BroadcastTheNet: various improvements 2017-08-21 13:06:44 +02:00
thebluepotato
c6140d7eef fix(indexers): updated browse page endpoint (#1696)
They changed the url for the latest torrents once again…
2017-08-21 11:17:17 +02:00
thebluepotato
97f4a9de5d fix(indexers): updated t411v2 definition (#1694) 2017-08-20 17:00:21 +02:00
thebluepotato
be1f6a43a7 fix(indexers): kat clone (#1693)
kat.how -> thekat.se
fixes #1607
2017-08-20 16:56:55 +02:00
thebluepotato
c8d96990d5 feat(indexers): added gaytorrent.ru (#1689)
* Add GayTorrent.ru tracker

🏳️‍🌈

* Small name fix

* Update category

* Category cleanup

* Add it to the list
2017-08-20 15:28:29 +02:00
thebluepotato
e9db6edce8 feat(indexers): added gay-torrents.net (#1690)
* Adding tracker Gay-Torrents.net

* Various fixes incl. testing and free leech detection
2017-08-20 15:26:39 +02:00
JigSawFr
eee7f2999f feat(gui): more explicit errors with link to open issue (automatic generated title) 2017-08-20 14:54:34 +02:00
JigSawFr
01e5ad792e fix(indexers): better error messages for Xthor 2017-08-20 14:06:37 +02:00
JigSawFr
aa02644e05 fix(gui): null pointer exception verification 2017-08-20 14:05:57 +02:00
JigSawFr
26dd740a53 fix(gui): return error message instead of generic while problems occured when updating an indexer 2017-08-20 13:11:46 +02:00
garfield69
952b6d7f95 readme correction: Torlock is public (#1688) 2017-08-20 13:09:24 +02:00
kaso17
e8742554c2 The Pirate Bay: remove \u000f from title 2017-08-18 19:01:18 +02:00
kaso17
7229da2fbb QcTorrent: removed (dead) 2017-08-18 18:28:39 +02:00
kaso17
39db77eb7c The-Torrents: include dead is working again 2017-08-18 18:25:57 +02:00
kaso17
d866758a0d The-Torrents: fix definition 2017-08-18 18:23:52 +02:00
kaso17
4d72d08e26 TranceTraffic: update certificate 2017-08-18 18:06:25 +02:00
kaso17
2e169a8c3a GhostCity: add auto re login 2017-08-18 18:00:50 +02:00
kaso17
978ce0827f Le Paradis Du Net: removed (dead) 2017-08-18 17:59:40 +02:00
kaso17
fe94e4833d PolishTracker: add expired certificate/search error detector 2017-08-18 11:42:27 +02:00
kaso17
592f04389f Secret Cinema: update default URL 2017-08-18 11:28:03 +02:00
kaso17
5992e6d701 SceneFZ: fix null pointer exception 2017-08-18 11:11:55 +02:00
kaso17
d44ebb7d43 Diablo Torrent: fix definition 2017-08-18 10:56:11 +02:00
Guizzoni
852142e9ae feat(indexers): added torlock tracker (#1681)
* Create torlock.yml

* Update README.md

* Update torlock.yml

added date
2017-08-18 02:38:57 +02:00
JigSaw
3ba52f15dd fix(indexers): rewritted scenefz from scratch (#1684) 2017-08-18 02:29:45 +02:00
kaso17
502a4dc763 New Real World: update URL and add relogin 2017-08-17 18:53:38 +02:00
kaso17
d336a761a7 myAmity: fix relogin detection 2017-08-17 18:32:16 +02:00
kaso17
9240f9d72b Merge branch 'master' of https://github.com/Jackett/Jackett.git 2017-08-17 18:01:11 +02:00
kaso17
cab91ff346 Demonoid: fix download links 2017-08-17 18:01:04 +02:00
JigSaw
2a327549f5 docs(readme): added bountysource shield 2017-08-17 14:25:54 +02:00
kaso17
5748881a29 torznab caps: exclude indexer specific categories for meta indexers 2017-08-17 09:57:58 +02:00
kaso17
69aa38c1ff AggregateIndexer: set result limits to 1000 2017-08-17 09:50:10 +02:00
kaso17
aa157cfcb9 torznab caps: add support for limits 2017-08-17 09:48:54 +02:00
kaso17
f963f8d173 caps: add server element 2017-08-17 09:22:04 +02:00
thebluepotato
1d75164aaf KickAssTorrent: Remove login (#1674)
* Add KAT definition without login

* Remove old definition with login

Bye bye lovely work
2017-08-16 12:41:55 +02:00
Guizzoni
f503f0543e Manicomio Share: improve search results (#1670)
* Fixes episode search in Manicomio Share

The tracker uses the pattern "name - s??e??" instead of "name s??e??" so we have to manually add a "-" in the query

* Better fix

Updated to a better fix!

* Fixed the input name

* Added a workaround to solve the year issue

* Fixed the re_replace order
2017-08-16 12:38:04 +02:00
Guizzoni
333f7297fa fix(indexers): B2S-Share search (#1671)
This fixes the search for episodes and movies in general
2017-08-16 12:31:57 +02:00
Guizzoni
3fdfc4a142 fix(indexers): Manicomio Share login method (#1669)
Removed cookie and added POST method.
2017-08-14 16:43:30 +02:00
JigSawFr
0ac58224f9 style(indexers): cleanup BTN tracker indexer 2017-08-14 16:23:40 +02:00
JigSaw
3d08fcb4b9 docs(readme): added discord chat server (#1668) 2017-08-14 12:02:22 +02:00
chibidev
c2f11306b1 Fixing SupportsCategories (or at least making it better)
I cannot wrap my head around why it has started to fail now as it was
faulty from the beginning... Anyway, SupportsCategories didn't really
take sub categories into account, which is bad.

- Potentially fixes #1654 and #1656
2017-08-14 10:38:51 +02:00
JigSaw
07a0c2c828 fix(indexers): fixed wihd, added ssl support and misc things (#1666)
* docs(config): add warning on wihd config to use classic view only

* refactor(wihd): refactor indexer, optimized dev mode, added freeleech and SSL

* fix(indexers): removed T411 orginal tracker

closed tracker by gov

* refactor(clean): removed old orphan config files

* docs(readme): updated for wihd
2017-08-14 02:10:50 +02:00
JigSaw
28eaa637df fix(indexers): Abn Indexer, Added 4K to Xthor (#1665)
* feat(xthor): added 4K category

* fix(abn): optimized abnormal indexer, fixed scraping for pending and dev mode
2017-08-14 00:15:11 +02:00
JigSaw
8707e6b2e9 fix(indexers): fixed and optimized xthor indexer
* feat(utils): added sha1 hash function and refactored md5 hash function

* fix(indexers): now use cross plateform path building for dev mode

* fix(indexers): fix output log of xthor for dev mode

* feat(release): added ToString method

* refactor(dev): optimized dev mode

* style(clean): cleanup code

* feat(indexer): added tmdb info to releases

* fix(cat): enabled categories on xthor
2017-08-13 20:49:03 +02:00
chibidev
7a8d83b693 Allow anonymous access to results - probably fixes #1654 2017-08-13 02:23:39 +02:00
chibidev
403c0ef7e4 Correct API path in JS client 2017-08-12 20:12:30 +02:00
chibidev
3374c14311 Fix download handling in AggregateIndexer 2017-08-12 11:12:02 +02:00
chibidev
9eade51d89 Increase Sonarr compatbility 2017-08-12 10:46:12 +02:00
David Torosyan
bc9e4a30cb Fix thepiratebay.xml for General Hospital (#1647)
* Fix thepiratebay.xml for General Hospital

* Add comment
2017-08-12 16:19:41 +10:00
flightlevel
0103c48c97 Fix settings update from UI (#1655)
https://github.com/Jackett/Jackett/issues/1654
2017-08-12 11:12:56 +10:00
chibidev
29ecf8a584 "Fix" ShowRSS category handling 2017-08-12 01:59:50 +02:00
chibidev
eec07bc5b8 Fix manual search - append apikey 2017-08-12 01:04:30 +02:00
chibidev
bf23878477 Manual search URL fix - hash will reset now 2017-08-12 01:04:07 +02:00
chibidev
043085e8f3 Fix torznab capability API 2017-08-12 00:30:43 +02:00
chibidev
39e612d60c Move debug data to appropriate log level 2017-08-11 23:55:55 +02:00
chibidev
6f8b1b749d Fix default torznab query 2017-08-11 23:55:40 +02:00
kaso17
439e9296f9 dummy commit 2017-08-11 19:10:48 +02:00
kaso17
1332b49370 UI: fix searchCategory dropdown 2017-08-11 18:55:47 +02:00
kaso17
33a7db5ec4 NextTorrent: update default URLs 2017-08-11 18:46:32 +02:00
kaso17
2075e914eb fix /api route names 2017-08-11 18:34:54 +02:00
kaso17
758ad91a55 add /api legacy routes 2017-08-11 18:27:45 +02:00
kaso17
e9b604d3c4 fix potato API 2017-08-11 18:13:22 +02:00
kaso17
51aa4f35bd AnimeBytes: stop emulating browser 2017-08-11 16:53:49 +02:00
kaso17
fc55882f16 IndexerManagerService: create own IWebClient instance for each indexer 2017-08-11 16:53:27 +02:00
kaso17
d03cbefa57 IWebClient: add EmulateBrowser flag 2017-08-11 16:52:58 +02:00
kaso17
e079c90535 Torrent Downloads: don't ask for user/password and fix empty search 2017-08-11 16:05:19 +02:00
kaso17
8591add0bf FileList: use full title if available 2017-08-11 15:57:55 +02:00
kaso17
fbbe4f9c45 FileList: don't use FL token DL link 2017-08-11 15:48:34 +02:00
kaso17
289c5cd24f encrypt original path in download links and move apikey to parameters 2017-08-11 15:14:40 +02:00
flightlevel
84a45737d3 Revert "Fixes #1606 " (#1649)
* Revert "Pretome: Attempted parsing fix (#1648)"

This reverts commit d083cf774a.

* Revert "t411 v2 (#1620)"

This reverts commit f2ce167bbf.

* Revert "Fixes #1606  (#1625)"

This reverts commit 4e04bbbcf4.
2017-08-11 22:29:15 +10:00
flightlevel
d083cf774a Pretome: Attempted parsing fix (#1648)
* Pretome: Attempted parsing fix
2017-08-11 21:54:44 +10:00
Francis Noel
f2ce167bbf t411 v2 (#1620)
* New nextorrent URL

Change url to : http://www.nextorrent.cx
Fix search url

* new cpasbien url

Change to : http://cpabien.cc

* Add zetorrents tracker

* t411 v2 + remove maniatorrent

* Update Jackett.Updater (remove maniatorrent)

* fix the formatting

Change TAB with SPACE
2017-08-11 21:45:49 +10:00
Benoît Sauvère
4e04bbbcf4 Fixes #1606 (#1625)
* Fixed the TorrentPotato requests with the indexers that does not support imdbid requests

* Fixed the "CanHandleQuery" which was not working if we make the request only with an imdbid (and a valid OMDB key)

* Fixed the "CanHandleQuery" which was not working if we make the request only with an imdbid (and a valid OMDB key)

* Removed PotatoController.cs
2017-08-11 21:41:50 +10:00
garfield69
7f5d00e89f torrents-search.php -> search-torrents.php (#1642)
KAT seem to have changed the name of the search php
2017-08-10 22:03:41 +10:00
flightlevel
f777114644 Pretome: Attempted parsing fix (#1644) 2017-08-10 22:01:41 +10:00
flightlevel
7c63a6b8f2 ArcheTorrent: Update categories (#1643)
Fixes https://github.com/Jackett/Jackett/issues/1614
2017-08-10 21:51:59 +10:00
aurelien
f0140999bf 2 Fixes (#1637)
* lower case for search term

* fix thanksyou call before download torrent file
2017-08-10 08:23:19 +02:00
Khogniak
6f0a249503 YGG config update (#1635)
* YGG config update

* Followed gprime44 on seeder/leecher selector #1634
2017-08-10 08:21:12 +02:00
mueslo
2e79500f50 Improve season query logic for bB (#1632)
* Tweak BB indexer

Remove explicit tracker URL
Add tracker-specific season query

* Query for "S##" and "Season #" simultaneously on bB

* Fix tabs/spaces

* Rewrite title from "Season #" to "S##"

* Fix bug

Fix bug where searching for whole shows would rewrite Season # to S00, since no season was specified.

* Add new categories mappings

So that e.g. headphones can correctly query bB for music
2017-08-10 08:19:27 +02:00
chibidev
720b5971d3 Feature/new api (#1584)
* Introducing API v2

There were multiple inconsistencies in the old API and I have been
toying with the idea to replace it. This will suck for everyone who was
building on top of the Jackett API, however as it was probably too
painful to do so I'd say no one really tried.

Now API v2.0 should be much more constistent as it uses DTObjects, and
instead of manually constructing a json response it is handled by the
ASP.NET web api. It is much more RESTful than it was, proper GET
endpoints are introduced, and updating resources are now done via POST -
it might be improved by introducing other type of REST methods.

I know this sucks as completely breaks backward compatibility, however
it'll probably make it easier to maintain and build on top of in the
long run.

* Use DELETE method to unconfigure an indexer

* Remove debugging format from NLog

* Fixing an null exception

* Properly implementing IExceptionFilter interface

* Enable adding public indexers without configuration

* Fix missing manual search results

* Basic modularization of the JS API

* Introduce API versioning

* Fix redirects to the dashboard

* Cleaning up a little bit

* Revamping Torznab and Potato as well

* Move preconditions to FilterAttributes and simplify logic

* Remove legacy filtering... will move to IResultFilter

* Minor adjustment on results interface

* Use Interpolated strings in ResultsController

* DTO-ify

* Remove fallback logic from potato results

* DTO everywhere!!!

* DTO-ify everything!

* I hope this is my last piece of modification to this PR

* Remove test variables...

* Left out a couple conflicts... It's late
2017-08-08 17:02:16 +02:00
chibidev
dba63857e4 Improve results and fix download link on AnimeTosho 2017-08-08 09:27:21 +02:00
danmed
b05ee653d3 Update skytorrents.yml (#1626) 2017-08-08 01:19:04 +02:00
chibidev
84df60368c Improve response time of metaindexers 2017-08-07 22:33:23 +02:00
chibidev
76102ac171 Fix exception in BaseNewznabIndexer in some cases... Might not catch all of them. 2017-08-06 20:44:22 +02:00
Francis Noel
3c6e77a2ca Fix issue : #1615 (#1619)
* New nextorrent URL

Change url to : http://www.nextorrent.cx
Fix search url

* new cpasbien url

Change to : http://cpabien.cc

* Add zetorrents tracker
2017-08-06 10:41:53 +10:00
flightlevel
f6272032a6 MoreThanTv: Improve Number parsing (#1618)
Fixes #1616
2017-08-05 11:20:50 +10:00
Florentin Le Moal
41fb5e89b4 Fixed little typo (#1609) 2017-08-05 10:46:03 +10:00
Indrek Ardel
42c9967844 Use local time for dates in TorrentBytes (#1586)
TorrentBytes allows changing timezone in settings, which makes listed dates to be more likely local time than UTC.
2017-08-05 10:45:38 +10:00
chibidev
e740e2434d Fix selector on World of P2P 2017-07-29 14:02:04 +02:00
chibidev
057df28d1b Fixing a null exception when searching AnimeTosho
AnimeTosho failed to populate the Origin field of the results when
searching thereby creating an issue upon creating the proxy link. This
was mainly because an IEnumerable can contain a deferred LINQ query as
well (e.g. in the case of AnimeTosho a Select) that will re-execute
every single time. So when iterating over IEnumerables we cannot really
pose any assumption on what we are dealing with, so either explicitly
force an execution (e.g. via ToList), or use LINQ queries as well. Since
the second is probably more performant, let's stick with that.
2017-07-29 13:20:10 +02:00
Indrek Ardel
6fbc4b6904 Use only one request on Torrentbytes to search (#1587)
To get a larger number of results, users should increase the number on the website, similar to how it's implemented for TorrentLeech. Since TorrentBytes can be slow at times, making one large request will not be that much slower from one small request, but will nearly half the time taken compared to two smaller requests.
2017-07-27 23:49:20 +02:00
chibidev
cab608f0ec Adding the ability to launch a search from with a URL
You can now pass a parameter to the dashboard which will immediately pop
the search box and start searching for the results.
This should be what #1345 and #1577 wants, or at least a basic version
of it.
2017-07-23 02:08:19 +02:00
Ben Houshmand
f5592d04e2 Added yts.ag as an indexer. (#1579) 2017-07-23 01:12:12 +02:00
chibidev
5138496436 Display the master branch build status rather than any branch 2017-07-21 17:57:41 +02:00
chibidev
bcc1e5ff6c Fix OMDB key handling (#1581) 2017-07-21 17:56:29 +02:00
chibidev
7eb57d8e9a Minor fixes for Anime Tosho 2017-07-21 00:32:57 +02:00
chibidev
929c12ccc6 Implementing Anime Tosho - introducing feed based indexers 2017-07-20 23:55:42 +02:00
chibidev
1ba1b91b8e Very basic range check for port number 2017-07-19 22:25:01 +02:00
chibidev
d90a2613fc #1573 - Handle Potato IMDB queries without fallback 2017-07-19 19:31:07 +02:00
chibidev
0d25ed2921 #1575 - Fix invalid URL handling 2017-07-19 19:24:32 +02:00
thebluepotato
a07bffa773 Update KAT definition for real login test, error handling and indexer testing logic (#1569)
* Update KAT definition for real login test

* Add error handling to KAT definition's login

* Even better error handling...

Sorry for the inelegant successive commits

* Add better test behaviour for KAT

Added some logic so tests return results. Previously did a search with an empty string which would return no results. NB : it does test with "torrents.php?search=%22%22" but that's not an issue, the parameter is ignored on that page.
2017-07-19 19:11:29 +02:00
chibidev
f0da6ce247 #1535 - Using a real User-Agent with AnimeBytes 2017-07-16 13:24:14 +02:00
Guizzoni
32d0a8d703 Add "Torrent Downloads" tracker (#1563)
* Add "Torrent Downloads" tracker

Add "Torrent Downloads" tracker as requested on "Issue #1559"

* Update README.md

Added "Torrent Downloads" to the list.

* Update torrentdownloads.yml
2017-07-16 13:16:09 +02:00
kaso17
6e2087d5dc attempt to fix blackhole dirs with reverse proxies 2017-07-14 08:18:36 +02:00
Guizzoni
82f330f4af Add B2S-Share tracker (#1562)
* New definition for indexer "B2S-Share"

I made a new definition for this indexer.
B2S-Share is a general Brazilian tracker.

This tracker does not support multiple category search, so i left it searching in all categories.

* Update README.md

Added B2S-Share to the private tracker list.
2017-07-14 07:43:47 +02:00
Khogniak
14f86107e1 YGG Fix: Removed stage settings. Added https. Added login headers (just in case). (#1561) 2017-07-14 07:42:40 +02:00
Guizzoni
845faf9066 Add Manicomio Share tracker (#1558)
* New definition for indexer "Manicomio Share"

I made a new definition for this indexer.
Manicomio Share is a general Brazilian tracker.

A few known issues:
1 - The tracker does not show the "release date" unless i click on another button with a "onclick="expand(584941,event)"". So i left it without date.
2 - I wasn't able to configure the "login: post" method, since there's no dedicated login page. I used Cookies instead.

* Add Manicomio Share to Private Tracker list

Add Manicomio Share to Private Tracker list

* Updated manicomioshare.yml

Updated line 229 in manicomioshare.yml so it's more flexible in case the URL changes. (Thanks kaso17)

* Tracker doesn't support multiple categories search

Tracker doesn't support multiple categories search, removed the "range .Categories" line
2017-07-14 07:42:04 +02:00
chibidev
7c2b801ee9 Feature/remove autofac from indexer manager (#1549)
* Line endings...

* Remove Autofac and all its shenanigans from IndexerManager

I'm starting my warpath against Autofac. For the next couple PRs I want
to focus on refactoring things rather than creating new things. This
includes introducing LINQ extensions wherever possible as well as
removing Autofac/Automapper dependencies in classes (or any other
dependency, there's a great chance that most of the classes that use
Jackett.Services wouldn't need so many of them). All this is order to
boost performance and eventually reach testability. Can't stop, won't
stop.

* Remove unnecessary extension

* Modify test project

* As per @kaso17, iterating through iterator types rather than allocating them manually

* Cleaning up a little

* Adjusting interface in tests
2017-07-14 07:39:52 +02:00
kaso17
f96dca5653 Merge branch 'master' of https://github.com/Jackett/Jackett 2017-07-13 07:20:09 +02:00
kaso17
0e4e9f4253 AnimeTorrents: use IWebClient 2017-07-13 07:19:04 +02:00
chibidev
dc38f8c041 Bugfix/fix nyoo indexer (#1547)
* Line endings...

* Adjusting selectors
2017-07-12 06:34:14 +02:00
chibidev
17f544be36 Bugfix/1532 1539 fix manual search circular reference (#1543)
* Line endings...

* Encoding Encoding in a reasonable way

Sadly Encoding contains a self-reference somewhere, which makes it
really hard for the json serializer to automatically encode it...
Probably there's no value in sending it over especially since no one is
using it, however just for the sake of the argument, let's just
serialize it in a reasonable way. Maybe someday there will be someone
expecting this. Or we clearly separate DTOs and models...

- Fixes Jackett/Jackett#1532
- Fixes Jackett/Jackett#1539

* Seriously... Please port this to dotnet Core so that I can use something other than @drunkvs on my MacBook

* Fix autofac registration after merge

* "Implement" new function of interface in test project
2017-07-11 22:32:56 +02:00
kaso17
fb59e84def Fix autofac exception 2017-07-11 22:17:56 +02:00
Francis Noel
de8e33e647 Add mania-Torrent tracker (#1534)
* Add mania-Torrent tracker* Update README
2017-07-11 22:00:29 +02:00
kaso17
cf1bbc603e Update BJShare.cs 2017-07-11 21:58:15 +02:00
Guizzoni
ecc60e59d8 Update BJShare.cs 2017-07-11 21:58:15 +02:00
Guizzoni
e7be6faf2f Update BJShare.cs
Updated so it properly replaces "HD" to "720p" since this is the tracker's default naming pattern for every 720p release.
2017-07-11 21:58:15 +02:00
chibidev
9e3076dde6 I have a feeling I'm breaking the world and bringing the apocalypse
It's quite hard to encapsulate something this large. This refactor
contains multiple attacks on the current architecture and is changing
things that were probably created quite a while back then. Luckily this
was done in increments so it mustn't be that impossible to recall what
has been done. I just need to relax my memory a little bit.

So the basic idea was quite simple. Let's distingush metas and normal
indexers a little bit more. Both of them were originating from
BaseIndexer, however very little of the functionality was actually
shared between them. Actually quite a few things made it even harder to
implement a different kind of indexer, especially for a newcomer for
both Jackett and C#.

Then in order to further reduce whatever was encapsulated in
any kind of, a couple things had to be changed. Like CardigannIndexer,
which probably had quite a mindshift change. IndexerManager and the
configuration management were also encapsulated and refactored, and now
I have a feeling that although the code could be improved, at least the
responsibilities of services and what they actually do is now clearer.

Anyhow, it would be safe to assume that I will not be able to go
step-by-step and define everything that has been changed. I'm sorry.
2017-07-11 21:53:46 +02:00
Khogniak
35103206cf Replace T411 (closed) with YggTorrent (new replacement) (#1536)
* Replaced old T411 with new YggTorrent

* Updated Readme

* Fix testing. Added dynamic path
2017-07-09 18:24:00 +02:00
kaso17
29cf00560f Merge branch 'master' of https://github.com/Jackett/Jackett.git 2017-07-08 15:23:40 +02:00
kaso17
9ef9302808 MoreThanTV: fix complete season searching 2017-07-08 15:23:36 +02:00
gprime44
616b436648 Add NextTorrent tracket (#1523)
* Create nexttorrent.yml

init

* Finish definition for next torrent

* Add nexttorrent tracker

* Update README.md
2017-07-08 14:01:21 +02:00
Francis Noel
702e975d57 Add cpasbien tracker (#1527)
* Add cpasbien tracker

* revert project inclusion

* Update README.md
2017-07-08 13:59:34 +02:00
kaso17
6c90016c0c RevolutionTT: ignore donation item 2017-07-08 13:54:37 +02:00
kaso17
90152a7eed The New Retro: fix login 2017-07-06 21:17:50 +02:00
kaso17
dabd95655b Torrent-Syndikat: add auto relogin 2017-07-06 21:16:53 +02:00
kaso17
4f938e3ea8 Add Zamunda.net/Zelka.org 2017-07-06 20:37:29 +02:00
kaso17
f21a721ddb FileList: add auto relogin 2017-07-06 20:31:07 +02:00
kaso17
7d65e60750 Add Zelka.org tracker
Thank you @eybox
2017-07-06 20:21:06 +02:00
kaso17
c87f1b3949 Add Zamunda.net tracker
Thank you @eybox
2017-07-06 20:20:39 +02:00
Luis Almanzar
08b471fd1e Fix title for elements with comments. (#1520)
* Fix title for elements with comments.

* Update nyaasi.yml
2017-07-06 19:38:38 +02:00
chibidev
4a0d2dcc57 Feature/metaindexer torrent download improvement (#1517)
* Line endings...

* Improve download handling of torrents in metas

Until now, downloads were handled by metas, however they had to "guess"
which indexer the result was originating from and resolve to that
indexer. While this has been working without an issue, it really
shouldn't be considered stable.

Therefore indexers now link themselves to the results they provide. In
order to keep my sanity and automate this as much as possible, I had to
slightly modify the interface (sorry, everyone).
2017-07-03 07:15:47 +02:00
chibidev
91eae526f9 Bugfix/1404 fix potato search (#1516)
* Line endings...

* Integrating OMDB into Potato results

Now PotatoController will actually produce results

* VS complains it could be simplified, yet AppVeyor cannot do anything with it...

* How come only Appveyor unveils this error? @drunkvs
2017-07-01 18:23:57 +02:00
chibidev
11fd2db5a5 Bugfix/cannot add cardigann indexers (#1511)
* Line endings...

* Fix invalid ID for cardigann indexers (refactoring regression - my bad)
2017-06-29 20:46:36 +02:00
chibidev
75e7ce81c2 Feature/omdb api integration (#1509)
* Line endings...

* Refactoring how MetaIndexers handle fallbacks

Originally this modification was part of a much larger refactoring,
however for the sake of reviewability I split it into smaller chunks.
Sadly it is still quite large.
I wanted to split it even more, however after a certain point there was
really no value in creating smaller chunks. The biggest part of this
modification would be still huge.

So all in all, there're 3 aspects of this modification
- It modifies BaseIndexer so that it now implements IIndexer (will be
very useful later on)
- Resolving most of the warnings currently in Jackett (the only ones
remaining are related to Autofac, however if I could I would just burn
Autofac altogether rather than fix the warnings. Will open discussion on
this.)
- Biggest part: refactoring how MetaIndexers handle fallbacks and how
they provide the final result set

MetaIndexers now accept any kind of fallback and filtering mechanism
that implements the necessary interface, so that in the future IMDB
fallback and filtering won't be the only one. I know there are not a lot
of unit tests around Jackett at the moment, however this renders the
class much more unittestable as well.

* Integrate OMDB API for the fallback option

* Safeguarding when no API key is specified

* Autofac started complaining... I don't understand...

* How did that not make the previous commit?
2017-06-29 07:53:25 +02:00
chibidev
345602926e Feature/cleaning up aggregate indexer fallback (#1507)
* Line endings...

* Refactoring how MetaIndexers handle fallbacks

Originally this modification was part of a much larger refactoring,
however for the sake of reviewability I split it into smaller chunks.
Sadly it is still quite large.
I wanted to split it even more, however after a certain point there was
really no value in creating smaller chunks. The biggest part of this
modification would be still huge.

So all in all, there're 3 aspects of this modification
- It modifies BaseIndexer so that it now implements IIndexer (will be
very useful later on)
- Resolving most of the warnings currently in Jackett (the only ones
remaining are related to Autofac, however if I could I would just burn
Autofac altogether rather than fix the warnings. Will open discussion on
this.)
- Biggest part: refactoring how MetaIndexers handle fallbacks and how
they provide the final result set

MetaIndexers now accept any kind of fallback and filtering mechanism
that implements the necessary interface, so that in the future IMDB
fallback and filtering won't be the only one. I know there are not a lot
of unit tests around Jackett at the moment, however this renders the
class much more unittestable as well.

* Autofac started complaining... I don't understand...
2017-06-28 07:31:38 +02:00
Rob Nadin
780ea4c631 KickAssTorrent: Fix date parsing (#1502) 2017-06-26 20:08:11 +02:00
chibidev
cf9d87a7d8 Bugfix/1471 aggregate exception when fallback (#1504)
* Line endings...

* Fixes an issue when the aggregate doesn't require fallback

Apparently operating on null with LINQ is not safe :)
- This fixes Jackett/Jackett#1471
2017-06-26 19:46:14 +02:00
kaso17
3f2d6f0cee Add support for non numeric episodes 2017-06-25 18:25:16 +02:00
kaso17
22cf450d07 TorrentDay: fix login 2017-06-25 18:15:12 +02:00
kaso17
8bd7233756 Rarbg: add support for unknown IMDB IDs 2017-06-25 17:37:33 +02:00
kaso17
2807a71e0e DataScene: update to new layout 2017-06-25 17:07:53 +02:00
kaso17
b60bcda109 Rockhard Lossless: update to new layout 2017-06-25 16:56:31 +02:00
kaso17
4d36165cdf Xtreme Zone: update to new layout 2017-06-25 16:42:17 +02:00
hed0nist
44de6e5459 fix incorrect naming rules (#1500)
put the date in the right place
2017-06-25 16:28:31 +02:00
D4rk56
d31c593d4b Domain change .top -> .cc (#1495) 2017-06-23 19:56:21 +02:00
David Dobmeier
0473029277 Resolved null pointer causing searches to fail on RevolutionTT (#1494) 2017-06-23 19:56:03 +02:00
adamwinn
3bef19cbfe Add Blutopia (#1489) 2017-06-23 19:54:09 +02:00
CW2aNmYM0ryJ
79fc4850ed NCore: Add 2factor support (#1465) 2017-06-13 14:00:41 +02:00
D4rk56
7cf24e906a Torrent9: Domain change .biz -> .top (#1462) 2017-06-08 20:49:02 +02:00
kaso17
9870d38cbb Il Corsaro Nero: workaround incomplete CA chain 2017-06-08 11:07:09 +02:00
kaso17
994604271b Merge branch 'master' of https://github.com/Jackett/Jackett.git 2017-06-08 10:34:59 +02:00
kaso17
81f2c7e91c Bit HDTV: adjust code to updated HTML 2017-06-08 10:34:53 +02:00
Mohammed Sohail
b0788e491e [Fix] Redirection errors (#1461)
- The Geeks uses SSL.
2017-06-08 10:32:21 +02:00
kaso17
0faed4e6b0 purge nachtwerk 2017-06-06 19:06:30 +02:00
kaso17
73a3a9aca9 TorrentProject: fix magnet filename encoding issues 2017-06-06 18:53:44 +02:00
kaso17
1dfe9db7da Cardigann: add validfilename and urlencode filters 2017-06-06 18:52:47 +02:00
kaso17
fa56b1d15f Anidex: rever category change 2017-06-06 18:37:47 +02:00
kaso17
b31c5d41ca Greek Team: update definition to handle new column 2017-06-06 18:30:16 +02:00
CodeMonkey
df22e39b4e Anirena: Provide both torrent and magnet download links (#1451)
* Anirena: Add setting for torrent vs magnet

* Switch to just showing both download options

- And remove the explicit setting.
2017-06-06 18:11:11 +02:00
kaso17
08d1e2cc07 remove nachtwerk 2017-06-05 14:22:35 +02:00
kaso17
569558aea5 Kapaki: add search error detection 2017-06-05 14:21:30 +02:00
kaso17
2ceb41324d fix mono 5 detection 2017-06-03 22:09:44 +02:00
kaso17
d95e55137a anidex: add support for custom categories 2017-06-03 21:55:45 +02:00
kaso17
57b7173237 BitHdtv: add recaptcha support 2017-06-03 16:46:27 +02:00
kaso17
ce8570c656 Xtreme Zone: update to new layout 2017-06-03 16:35:37 +02:00
kaso17
d8e6f0ec57 Rarbg: increase requestDelay 2017-06-03 16:14:19 +02:00
kaso17
b4948c924d rarbg: strip ' from search 2017-06-03 16:13:05 +02:00
kaso17
7c36d3a892 Rarbg: strip ' from search 2017-06-03 16:12:38 +02:00
kaso17
9aedd68f1c TorrentProject: fix magnet link 2017-06-03 15:31:09 +02:00
Mike
0afd9c638a Fixed nyaa-pantsu again.. Smaal nyaasi naming changes. (#1427) 2017-06-03 15:08:01 +02:00
chibidev
3b4eceed87 Feature/improved aggregate results (#1432)
* Line endings...

* Add fallback query for meta indexers

In cases where multiple indexers are configured under one
metaindexer if any of them supports IMDB search the meta
will support IMDB search as well. However the actual query will
then only be performed by those supporting IMDB search, because
others refuse it (see CanHandleQuery implementation).
- This adds support of a fallback mechanism for other indexers
- Adds first implementation of result improvement (necessary for
  fallback queries as they might produce irrelevant results)
- Some minor fixes encountered while debugging/coding

Known issue:
- Configuring nCore and IsoHunt together will render results
  from nCore unusuable. Don't know why.
2017-06-03 15:04:51 +02:00
garfield69
7c7c27847f add magnet to nyaa.si definition (#1440) 2017-06-03 14:54:57 +02:00
Mike
95398b4f06 Add advanced search to Anidex indexer (#1418)
* Added language id support to Anidex.

* Added category id support to Anidex.
2017-05-28 18:13:38 +02:00
Mike
6857d0ad24 Add advanced search to TokyoTosho indexer. (#1420)
* Add advanced search to TokyoTosho indexer.

* Fix issue where it wouldn't filter on index.php.
2017-05-28 18:13:26 +02:00
Mike
2cfef12289 Fixed nyaa-pantsu indexer and added category filter. (#1421) 2017-05-28 18:13:14 +02:00
Mike
a3c443e69b Added a "select" input type and "default" value for settings. (#1423)
* Added a selectbox and updated nyaasi to include two.

* Added a "default" field for settings.
2017-05-28 18:12:41 +02:00
NinjaBanjo
31ce2ca545 Fix #1383 nyaa-pantsu date selector incorrect (#1412)
Looking at the html of nyaa-pantsu search page, the date field is using a class of .date-short not .date.

this corrects the above.
2017-05-25 11:28:25 +02:00
CodeMonkey
12d8340114 First pass at an AniRena definition. (#1406)
* Doesn't parse categories or dates.
* There may be a better approach as their RSS feed supports searching.
    *Ex: https://www.anirena.com/rss.php?s=naruto
2017-05-22 08:48:26 +02:00
Ellmout
a4d5c98e12 Better search for Arche Torrent (#1405)
* Add ArcheTorrent

* ArcheTorrent: Enhanced Search
2017-05-22 11:47:04 +10:00
CodeMonkey
12b60b5a9e HorribleSubs: Fix date parsing for RSS feed. (#1403) 2017-05-22 11:44:13 +10:00
kaso17
213f8114ba add HD-Forever indexer 2017-05-20 17:08:10 +02:00
kaso17
c8a2482fc1 Remove Freshon (closed for good) 2017-05-20 16:52:03 +02:00
TheDogg
8478fb7580 GimmePeeers: fix parsing
fixes #1019
2017-05-20 16:17:55 +02:00
kaso17
cc10d9f233 Add BrokenStones indexer 2017-05-19 17:56:16 +02:00
kaso17
805f0f4e0d update formating 2017-05-19 17:33:04 +02:00
kaso17
c5eb78602a update SSL troubleshooting 2017-05-19 17:32:17 +02:00
CodeMonkey
d7b5ab8595 Parse date, seeder, leecher, & grab values. (#1388)
* Fix size field to handle "Unknown" as a value.
2017-05-17 09:25:52 +02:00
CodeMonkey
562cfd57a6 Fix date field so it correctly parses as UTC time (#1389) 2017-05-17 09:24:39 +02:00
CodeMonkey
3d84d12c96 Fix date field so it correctly parses as UTC time. (#1390) 2017-05-17 09:24:21 +02:00
kaso17
2a71dafb0e KickAssTorrent: change to semi private 2017-05-16 07:57:27 +02:00
kaso17
02e2bcdbc2 Merge branch 'master' of https://github.com/Jackett/Jackett.git 2017-05-16 07:34:59 +02:00
kaso17
19b496b5c8 Superbits: fix category handling 2017-05-16 07:34:34 +02:00
gustinn
5c03cab5a2 add tracker Deildu (#1378) 2017-05-16 07:20:38 +02:00
thebluepotato
183f9f5649 Add KAT passkey login (#1380) 2017-05-16 07:19:58 +02:00
kaso17
a46b75bef7 remove redacted-scrape 2017-05-15 07:23:01 +02:00
CodeMonkey
f6e0d7d239 Use file glob for yml file inclusion (#1372)
* Should help avoid new items being added but accidentally not included
in the release.
2017-05-15 07:16:25 +02:00
CodeMonkey
6d893a1ac3 Add type and encoding values for HorribleSubs (#1373) 2017-05-15 07:15:58 +02:00
Nodja
175509abc8 [Horriblesubs] prepend horriblesubs tag to title for better filtering in sonarr (#1362)
* [horriblesubs] prepend horriblesubs tag to title for better filtering in sonarr

* make [horriblesubs] prepend an option
2017-05-14 19:48:07 +02:00
kaso17
8900ece8ab Merge branch 'master' of https://github.com/Jackett/Jackett.git 2017-05-14 19:43:16 +02:00
kaso17
37dc039de4 AnimeTorrents: Change to HTTPS and fix login 2017-05-14 19:43:10 +02:00
CodeMonkey
15b6afb11e HorribleSubs Fixes (#1364)
* Fix date parsing

* Use http link instead of https

* Site doesn't load properly over https because not all page resources
are serviced via https links.
2017-05-14 19:25:08 +02:00
kaso17
753913ccc7 Nyaa.si cleanup 2017-05-14 19:00:15 +02:00
chibidev
27d4f2108e Feature/aggregate performance improvement (#1349)
* Checking capabilities before executing a query

* Introduce base class for meta indexers

* Build fix - I seriously do not know how I missed that

* Moving things to the appropriate place

* Simplifying things as much as possible and moving once again

* Build fix?
2017-05-14 18:55:36 +02:00
gregorij89
2fb045e94a Add Trezzor (#1354)
* Add Trezzor

* Add Trezzor

* Fixing AooVeyor.yml - removing the file from commit, there is no
valuable changes.
2017-05-14 18:53:49 +02:00
Splosion
7756e8da41 mark nyoo.yml as content and copy to output directory on build (#1361) 2017-05-14 18:53:15 +02:00
chibidev
823e06b84e Adds additional parsing so that it sets the key parameter as well (#1363)
- Fixes Jackett/Jackett#1357
- Fixes Jackett/Jackett#1360
2017-05-14 18:48:55 +02:00
CodeMonkey
f12571d767 Add Nyaa.si (#1365)
* HorribleSubs is using Nyaa.si as their official tracker now
* http://horriblesubs.info/#comment-3267534087
2017-05-14 18:47:25 +02:00
Chaomander
bf1e3a1a53 Fix tokyotosho failing test and add type (#1350)
* Fix tokyotosho failing test and add type

* Revert unnecessary change to language

* Add encoding

* Use UTC for date parse
2017-05-11 21:30:48 +02:00
adamwinn
6276789738 Add AHD (#1352) 2017-05-11 21:29:12 +02:00
adamwinn
4b66273c19 Update bB url (#1355) 2017-05-11 21:22:33 +02:00
eV (㋎)
0fad901ecb Switch anidex to use to torrent link vs magnet link (#1356)
@kaso17 FYI I found out today that anidex does not always have a magnet link corresponding to returned search results. As a result it is more reliable to use the torrent link instead of the magnet link that my definition currently uses. To do this one just needs to change the download selector from `td:nth-child(6) > a` to `td:nth-child(5) > a`.
2017-05-11 21:22:01 +02:00
kaso17
3426e66b3b Horrible Subs: add dummy size 2017-05-11 21:19:02 +02:00
kaso17
b85721e584 add Horrible Subs 2017-05-09 20:25:27 +02:00
kaso17
16c2e5521a horriblesubs: fix porject file 2017-05-09 20:24:09 +02:00
kaso17
42d8c30147 Xthor: disable category support 2017-05-09 20:19:05 +02:00
James Lee
338a4cbf6e Update README with more detailed OS X instructions (#1344)
* Update README with more details OS X instructions

- Adds detailed instructions on syncing ca certs and avoiding SIP issues
outlned in https://github.com/Jackett/Jackett/issues/1179

* Move ubuntu instructions to linux section
2017-05-08 22:34:03 +10:00
Quatroking
813c449065 Adding Nyoo (#1343)
* Removed Nyaa.se due to its closure, added Nyaa mirro Nyaa-Pantsu to replace it

* VS15 project file so that the filelist is correct

* Adding Nyoo support

* Adding Nyoo support
2017-05-08 22:33:29 +10:00
adamwinn
03549b97aa Add SportHD (#1342)
* add

* Add 3D Torrents

* Accidently commited an old version of the 3dtorrents yaml file

* Allow searching by categories for TPB

* add

* add

* Fix error when pressing the Test button for TPB.  This will remove searching by category for the time being.

* Change HDPter to Ourbits

* iloveclassics - the date is not within td:nth-child(2) div, but rather just td:nth-child(2), so remove the div
bigtorrent - grabs and files data are not displayed in the grid.  Seeders and leechers data was off by a column

* Add ThePlace / TheVault / TheShow / TheOccult / TheGeeks (#1302)

* Change SceneFZ domain (#1306)

* Add tracker SportHD
2017-05-08 22:33:03 +10:00
flightlevel
7ee03a9e03 Update README.md 2017-05-08 22:31:20 +10:00
flightlevel
8c6ae89204 Add build status 2017-05-08 22:30:21 +10:00
flightlevel
d5c902eb82 Backup AppVeyor.yml
Backup AppVeyor.yml but still use the settings from the AppVeyor UI
2017-05-08 22:26:56 +10:00
kaso17
8a037295d0 PassThePopcorn: fix peers calculation 2017-05-07 17:43:23 +02:00
kaso17
c4caa62f8b Add Horrible Subs
Thank you @evq
2017-05-07 14:06:14 +02:00
kaso17
d3ea4135b9 Cardigann: extend DateHeaders search to parents 2017-05-07 14:05:39 +02:00
kaso17
d0d62eeae9 Add Anidex tracker
Thank you @evq
2017-05-07 13:27:30 +02:00
kaso17
aa6e7b148b Cardigann: Add support for search/headers 2017-05-07 13:18:22 +02:00
chibidev
251a631523 Bugfix/aggregate indexer radarr compatibility (#1333)
* Improving Torznab compatibility in AggregateIndexer

The indexer was not correctly reporting the Torznab capabilities
it provided. Basically it only reported a default number of
caps instead of combining all the caps of all the configured
indexers. This lead to an issue with external components
(e.g. Radarr) which rendered the Aggregate feed unusable in
certain situations.
- Correctly reports capabilities based on configured indexers

* Fixes incorrect internal state of configured indexers

When adding/deleting configured indexers the aggregate
was never updated leaving out possible search results.
- Introduce reconfiguring of the Aggregate upon addition/deletion
 of an indexer
- Fixing an internal state issue of the indexers reporting
 themselves as unconfigured after addition

* Removing obsolete call (thanks @kaso17)
2017-05-07 09:10:57 +02:00
kaso17
4dd49985c3 KickAssTorrent: category update 2017-05-06 19:56:12 +02:00
kaso17
c24368f8f9 Merge branch 'master' of https://github.com/Jackett/Jackett.git 2017-05-06 19:39:07 +02:00
kaso17
6b35da8ad0 SaveConfig() after IsConfigured 2017-05-06 19:39:02 +02:00
Nodja
026fa22a37 Fixed sonarr not finding episode numbers with animebytes (#1329)
* fixed sonarr not finding episode numbers

* animebytes: fixed sonarr compatibility setting description was incorrect
2017-05-06 15:45:24 +02:00
kaso17
9d6d5265e2 Arche Torrent details 2017-05-06 15:33:50 +02:00
kaso17
a86c30fdd4 nyaa cleanup 2017-05-06 15:30:00 +02:00
Quatroking
378b63a658 Nyaa replacement (#1338)
* Removed Nyaa.se due to its closure, added Nyaa mirro Nyaa-Pantsu to replace it

* VS15 project file so that the filelist is correct
2017-05-06 15:27:32 +02:00
Ellmout
e09092bbaf Add ArcheTorrent (#1334) 2017-05-06 15:26:10 +02:00
kaso17
ffdce26639 add Tokyo Toshokan meta data 2017-05-04 21:55:41 +02:00
kaso17
797eff5200 Nebulance: fix URL 2017-05-04 21:50:23 +02:00
chibidev
b942689dad Fixing a bunch of issues with the newly added AggregateIndexer (#1324)
This patch improves the general stability of the aggregate.
- Result is generated even if some trackers failed to answer
  or some other issue were encountered
- Fixes Jackett/Jackett#1316
2017-05-04 21:46:39 +02:00
Victor Bouvier-Deleau
9479eb20b7 Updated T411 domain references to the new domain used. (#1326) 2017-05-04 21:44:54 +02:00
adamwinn
79d87f4809 Add SportsCult (#1330)
* add

* Add 3D Torrents

* Accidently commited an old version of the 3dtorrents yaml file

* Allow searching by categories for TPB

* add

* add

* Fix error when pressing the Test button for TPB.  This will remove searching by category for the time being.

* Change HDPter to Ourbits

* iloveclassics - the date is not within td:nth-child(2) div, but rather just td:nth-child(2), so remove the div
bigtorrent - grabs and files data are not displayed in the grid.  Seeders and leechers data was off by a column

* Add ThePlace / TheVault / TheShow / TheOccult / TheGeeks (#1302)

* Change SceneFZ domain (#1306)

* Add tracker SportsCult
2017-05-04 22:01:28 +10:00
flightlevel
3a0d99acbe TransmitheNet to Nebulance name change 2017-05-04 22:00:54 +10:00
savahu
6b3f42a667 BTN was mentioned twice in supported trackers (#1331) 2017-05-04 21:58:36 +10:00
chibidev
a2d9954a1d Fixing ShowRSS all feed path and node selection (#1328) 2017-05-04 21:57:09 +10:00
eV (㋎)
f5fa7b5217 Add tracker definition for Tokyo Toshokan (#1323) 2017-05-04 21:54:48 +10:00
adamwinn
bab4620c04 Change TTN to Nebulance (#1320)
* add

* Add 3D Torrents

* Accidently commited an old version of the 3dtorrents yaml file

* Allow searching by categories for TPB

* add

* add

* Fix error when pressing the Test button for TPB.  This will remove searching by category for the time being.

* Change HDPter to Ourbits

* iloveclassics - the date is not within td:nth-child(2) div, but rather just td:nth-child(2), so remove the div
bigtorrent - grabs and files data are not displayed in the grid.  Seeders and leechers data was off by a column

* Add ThePlace / TheVault / TheShow / TheOccult / TheGeeks (#1302)

* Change SceneFZ domain (#1306)

* Change TransmitheNet to Nebulance
2017-05-04 21:54:12 +10:00
chibidev
c0b665062e Adding an aggregate torznab feed for all configured trackers (#1312)
* Adding an aggregate torznab feed for all configured trackers

This adds just a basic first implementation of a special
torznab feed that will make all configured trackers available
with all the supported query params.
- This should close #1247 
- This also contributes to #921 

* Adding missing file

* Add missing implementation from Test project
2017-04-30 10:06:29 +02:00
kaso17
117022151b Merge branch 'master' of https://github.com/Jackett/Jackett 2017-04-30 09:46:47 +02:00
kaso17
a96b7cfca9 MoreThanTV: improve search of multiple episodes of a season 2017-04-30 09:38:10 +02:00
adamwinn
d8b83c6b07 Change SceneFZ domain (#1306) 2017-04-26 19:37:46 +02:00
adamwinn
0594e1c52d Add ThePlace / TheVault / TheShow / TheOccult / TheGeeks (#1302) 2017-04-24 06:28:00 +02:00
kaso17
a9c5477003 Norbits: fix login error handling 2017-04-21 20:34:03 +02:00
kaso17
a85e00f236 cardigann: fix relative url handling 2017-04-21 20:22:47 +02:00
kaso17
fb3ef03f77 Add files via upload 2017-04-20 20:57:30 +02:00
kaso17
77bc342ce9 XThor: update TV/Anime categories 2017-04-20 18:01:25 +02:00
kaso17
4785955941 Hon3y HD: fix search 2017-04-20 17:55:25 +02:00
kaso17
60b9a34cea Torrent9: remove username/password fields 2017-04-20 17:51:21 +02:00
kaso17
2e7f2056c4 DigitalHive: fix date parsing for completed torrents 2017-04-20 17:40:54 +02:00
kaso17
e1afea35b7 Xthor: fix and simplify category handling 2017-04-20 17:06:28 +02:00
kaso17
566817c7cd Nyaa: fix DL link and cleanup 2017-04-20 13:29:17 +02:00
kaso17
e8eb4319df Merge branch 'master' of https://github.com/Jackett/Jackett.git 2017-04-20 13:00:31 +02:00
kaso17
b002220cc3 ImmortalSeed: update login 2017-04-20 13:00:24 +02:00
Hugofm
458395d393 Update BJShare.cs (#1297)
Improvements
2017-04-20 18:22:45 +10:00
d2dyno
44aa396564 Fix IPT raw category (#1296)
Was marked as SD not HD
2017-04-20 18:21:14 +10:00
Brian Hartvigsen
049d035c96 BitHDTV - Stop trying to keep up with changing width (#1291) 2017-04-17 14:25:54 +10:00
flightlevel
14f530a32c MoreThanTv: Add Other category (#1292) 2017-04-17 14:22:00 +10:00
flightlevel
f2def1f615 Normalise Line endings (#1284)
* Add .gitattributes

* Normalise line endings
2017-04-15 18:45:10 +10:00
adamwinn
ed601a0f7d Parsing fixes for iloveclassics and bigtorrent (#1275)
* add

* Add 3D Torrents

* Accidently commited an old version of the 3dtorrents yaml file

* Allow searching by categories for TPB

* add

* add

* Fix error when pressing the Test button for TPB.  This will remove searching by category for the time being.

* Change HDPter to Ourbits

* iloveclassics - the date is not within td:nth-child(2) div, but rather just td:nth-child(2), so remove the div
bigtorrent - grabs and files data are not displayed in the grid.  Seeders and leechers data was off by a column
2017-04-14 11:14:29 +10:00
adamwinn
271a386722 Add tracker tasmanit (#1269)
* add

* Add 3D Torrents

* Accidently commited an old version of the 3dtorrents yaml file

* Allow searching by categories for TPB

* add

* add

* Fix error when pressing the Test button for TPB.  This will remove searching by category for the time being.

* Change HDPter to Ourbits

* Add tracker Tasmanit
2017-04-11 20:55:24 +10:00
flightlevel
21d7c0e94f Freshon: Fix parsing (#1273) 2017-04-11 20:54:23 +10:00
flightlevel
f9a2da83b2 Digitalhive (#1272)
* Attempt to fix DigitalHive Date Parsing

* Add reference
2017-04-11 20:51:14 +10:00
adamwinn
daf2ea202c Cinematik date parse fix (#1263)
* add

* Add 3D Torrents

* Accidently commited an old version of the 3dtorrents yaml file

* Allow searching by categories for TPB

* add

* add

* Fix error when pressing the Test button for TPB.  This will remove searching by category for the time being.

* Change HDPter to Ourbits

* Replace chinese date characters with English characters

* cinematik already has “ago” at the end of the dates.  Add in div.addedtor to select the actual element the date is in.
2017-04-10 22:58:26 +10:00
adamwinn
1a57028ca6 HDChina date parsing fix (#1261)
* add

* Add 3D Torrents

* Accidently commited an old version of the 3dtorrents yaml file

* Allow searching by categories for TPB

* add

* add

* Fix error when pressing the Test button for TPB.  This will remove searching by category for the time being.

* Change HDPter to Ourbits

* Replace chinese date characters with English characters
2017-04-10 22:51:46 +10:00
flightlevel
0a2176fff4 Open links in new tab (#1256) 2017-04-09 18:16:34 +10:00
adamwinn
4d09dfb80f Add in BIGTorrent categories (#1253) 2017-04-09 12:09:07 +10:00
adamwinn
2c5a8914a4 Fix TPB category searching (#1252)
* add

* Add 3D Torrents

* Accidently commited an old version of the 3dtorrents yaml file

* Allow searching by categories for TPB

* add

* add

* Fix error when pressing the Test button for TPB.  This will remove searching by category for the time being.

* Change HDPter to Ourbits

* KG improvements.
Fixed 1) and 2) for #1241

* Add Torrent9

* Add tracker HDChina

* Fix searching by category for TPB.  This also fixes having Jackett fail when pressing the Test button for TPB.
2017-04-09 12:05:22 +10:00
adamwinn
335aed712a Add tracker HDChina (#1251)
* add

* Add 3D Torrents

* Accidently commited an old version of the 3dtorrents yaml file

* Allow searching by categories for TPB

* add

* add

* Fix error when pressing the Test button for TPB.  This will remove searching by category for the time being.

* Change HDPter to Ourbits

* KG improvements.
Fixed 1) and 2) for #1241

* Add Torrent9

* Add tracker HDChina
2017-04-09 11:56:31 +10:00
adamwinn
2293d583e9 Add torrent9 (#1250)
* add

* Add 3D Torrents

* Accidently commited an old version of the 3dtorrents yaml file

* Allow searching by categories for TPB

* add

* add

* Fix error when pressing the Test button for TPB.  This will remove searching by category for the time being.

* Change HDPter to Ourbits

* KG improvements.
Fixed 1) and 2) for #1241

* Add Torrent9
2017-04-09 11:54:46 +10:00
adamwinn
bae9e93c36 Karagarga improvements (#1249)
* add

* Add 3D Torrents

* Accidently commited an old version of the 3dtorrents yaml file

* Allow searching by categories for TPB

* add

* add

* Fix error when pressing the Test button for TPB.  This will remove searching by category for the time being.

* Change HDPter to Ourbits

* KG improvements.
Fixed 1) and 2) for #1241
2017-04-09 11:54:03 +10:00
adamwinn
5c0057269e Fix error when pressing the Test button for TPB (#1248)
* Fix error when pressing the Test button for TPB.  This will remove searching by category for the time being.

* Change HDPter to Ourbits
2017-04-09 11:53:07 +10:00
adamwinn
1bdaccbe95 Add tracker HDBits (#1235) 2017-04-05 07:31:07 +02:00
adamwinn
a0dcab394a support TPB categories search (#1233) 2017-04-04 21:37:11 +02:00
adamwinn
27886b769a Misc parsing fixes (#1234) 2017-04-04 21:36:06 +02:00
adamwinn
4baac26e76 TPB categories (#1229) 2017-04-01 14:34:38 +02:00
Brian Hartvigsen
cc43bbacd6 Fix Bit-HDTV (#1232)
Table size changed and now there can be more then 1 table (used for
pinned results.)  This will now search all tables, skipping header row.
2017-04-01 14:34:23 +02:00
adamwinn
3823019741 Add tracker 3dtorrents (#1228) 2017-04-01 14:32:53 +02:00
Hippolyte Barraud
a825eca9e5 T411 proper handling of media categories (#1217)
* T411 proper handling of media categories

Before only TV Series were supported, the T411 indexer should now behave much better for specific content (TV Animation Series, TV Series, Movies, eBook...)

* Corrected possible nullref

* Fixed List constructor size parameter
2017-03-30 20:16:49 +02:00
adamwinn
6f2135ecb5 Add I Love Classics (#1220)
* Add I Love Classics

* add andmatch
2017-03-30 20:06:47 +02:00
kaso17
8a7dd46d53 AlphaRatio: add categories 2017-03-28 20:33:30 +02:00
kaso17
0cc9cb019b Elite Tracker: fix empty result parsing 2017-03-28 20:18:54 +02:00
d2dyno
bd1b47f049 Update link from old repo (#1215) 2017-03-28 20:02:59 +02:00
adamwinn
717d5e5796 Add tracker BIGTorrent (#1213) 2017-03-28 20:02:23 +02:00
Hippolyte Barraud
0dd0cb65fd T411: fix TV Series episode category offset (#1210)
T411 weirdly changed their internal ID mapping to episode number.
Eg. Jackett would return S03E05 instead of S03E04.
I also cleaned the code.
2017-03-28 20:01:56 +02:00
rafuz
adcc430f4f TNTVillage: Change reported size based on category (#1207)
The size reported from the plugin will be defined by category matching.
This is needed for applications like Sonarr/Couchpotato/Headphone to work.
2017-03-28 20:01:32 +02:00
adamwinn
9ecc7e8a38 Add tracker waffles (#1205) 2017-03-28 20:01:03 +02:00
adamwinn
39e3af42ca Add The Empire (#1204) 2017-03-28 20:00:04 +02:00
adamwinn
77615227dc Correct the HTML parsing so rows are returned (#1211) 2017-03-28 19:59:37 +02:00
Hippolyte Barraud
7df1223043 Updated T411 to new domain name (#1196)
https://api.t411.li -> https://api.t411.ai
2017-03-25 14:36:33 +01:00
kaso17
2de539a240 Hounddawgs: fix banner parsing 2017-03-24 09:42:00 +01:00
kaso17
d905887870 Torrenting: fix parsing 2017-03-24 09:41:45 +01:00
kaso17
04432b3a2d ShareSpaceDB: update default URL 2017-03-24 09:41:31 +01:00
kaso17
1294ea765a HD-Bits.com: some improvements 2017-03-24 09:15:33 +01:00
kaso17
70a46e58d1 hdbc: rename to hdbitscom 2017-03-24 08:39:42 +01:00
adamwinn
17403d394a Misc fixes (#1186)
* Add tracker Cinematik

* Add support for Cinemageddon

* Add support for karagarga

* Add support for Classix

* Fix KG to not show the subtitles output in the name column
Fix HD-Bits.com to change the name from “HDBC” to “HDBitscom”.  The current parser must not allow for punctuation so instead of “HD-Bits.com”, I had to do “HDBitscom”.  Also, remove “Freeleech!” from the description of the torrent name

* Update karagarga.yml

attempt to fix date parsing

* Update hdbc.yml
2017-03-24 08:31:31 +01:00
kaso17
7e44145355 Demonoid: update default URL 2017-03-23 19:51:33 +01:00
kaso17
16e8517adb HDTorrents.it cleanup 2017-03-23 05:43:27 +01:00
bonny1992
4bffae42f1 Added HDTorrents.it italian tracker (#1180) 2017-03-23 05:39:56 +01:00
kaso17
b2d66f06fc HDBC: update name 2017-03-22 20:19:54 +01:00
adamwinn
c0f5f7ede4 Add tracker HD-Bits.com(#1178) 2017-03-22 20:06:00 +01:00
adamwinn
3354be659b Add tracker ClassiX (#1176) 2017-03-22 20:03:10 +01:00
adamwinn
789930498e Add tracker KaraGarga (#1174) 2017-03-22 20:02:22 +01:00
adamwinn
0964d1b878 Add tracker Cinemageddon (#1172) 2017-03-22 20:00:43 +01:00
adamwinn
251786fa82 Add tracker Cinematik (#1170) 2017-03-22 19:58:27 +01:00
kaso17
6cb294fe43 Add SceneFZ 2017-03-20 20:13:08 +01:00
kaso17
b0ef5824ad Revert "remove SceneFZ"
This reverts commit 4226a48041.
2017-03-20 20:12:11 +01:00
kaso17
95a6c5bba4 set DefaultConnectionLimit 2017-03-20 20:11:26 +01:00
kaso17
370564d9d4 set MaxDegreeOfParallelism 2017-03-20 20:11:16 +01:00
kaso17
02de1239aa remove unused recaptcha onloadCallback 2017-03-19 16:20:12 +01:00
kaso17
deeba22c39 PassThePopcorn: various improvements 2017-03-19 16:00:54 +01:00
kaso17
2d4d27175b HDHome: revert to old layout 2017-03-19 15:24:57 +01:00
kaso17
0fe06c4cd2 M-Team - TP: show dead torrents 2017-03-19 10:51:25 +01:00
kaso17
180f8943ac optimize lock 2017-03-18 22:34:01 +01:00
kaso17
d86214f9c5 remove dupe code 2017-03-18 22:20:05 +01:00
kaso17
14cd771f8d avoid overflows on long scene release titles 2017-03-18 22:17:57 +01:00
kaso17
e092acf309 SpeedCD: fix login 2017-03-18 09:03:40 +01:00
kaso17
260339bb7f Merge branch 'master' of https://github.com/Jackett/Jackett.git 2017-03-18 08:51:54 +01:00
kaso17
1865ba1393 Magico: change to https and add unread messages error detection 2017-03-18 08:51:46 +01:00
desimaniac
88a79b5e2e Limetorrents: remove season tag without episode from keywords
Fixes #1164
2017-03-18 08:39:02 +01:00
kaso17
8ef705dc2f Add Nyaa tracker 2017-03-18 08:37:15 +01:00
kaso17
0132c8207a Pass the Popcorn: make ImdbId optional 2017-03-16 11:27:18 +01:00
kaso17
f3fa589ad2 Pass the Popcorn: update categories 2017-03-16 08:10:19 +01:00
kaso17
71e0ec9ced EZTV: remove season tag without episode from keywords 2017-03-16 06:51:11 +01:00
bonny1992
a2a0b9b2d2 il Corsaro Nero: switch to normal search (#1155) 2017-03-15 19:52:06 +01:00
bonny1992
ca77f07fef IPTorrents: Add x265 Movie category mapping (#1162) 2017-03-15 19:36:54 +01:00
bonny1992
ac83848ad7 Add Nyaa.se tracker 2017-03-15 19:01:58 +01:00
kaso17
f2a03324f3 TNTVillage: Add dummy size 2017-03-14 16:33:29 +01:00
kaso17
cbbcf5dc0d Add PolishTracker 2017-03-14 13:30:23 +01:00
kaso17
b226304214 BaseIndexer: use referer for Downloads 2017-03-14 13:30:03 +01:00
kaso17
75dccd186b TranceTraffic: add expired certificate & fix parse error 2017-03-14 11:47:32 +01:00
kaso17
6f3127d36c Hounddawgs: fix details link & improve description 2017-03-14 11:32:54 +01:00
kaso17
80aae56028 GazelleTracker: start with empty caps 2017-03-13 19:08:46 +01:00
kaso17
7211dfe07d add Psytorrents tracker 2017-03-13 19:08:25 +01:00
kaso17
e37c4115b8 GazelleTracker: fix artist parsing 2017-03-13 19:06:09 +01:00
kaso17
b3dca67d0a HDHome: fix parsing 2017-03-13 18:52:33 +01:00
kaso17
18ed635576 HD-Torrents: fix time parsing 2017-03-13 13:36:05 +01:00
kaso17
937d0597ec open static files read only 2017-03-13 11:41:14 +01:00
kaso17
c028bdc076 Ultimate Gamer Club: and filter results 2017-03-10 21:10:55 +01:00
kaso17
7429c6d545 update 2017-03-10 20:59:33 +01:00
kaso17
38f78e116c Add TNTVillage tracker 2017-03-10 20:53:31 +01:00
kaso17
c0fa02d9a4 ICE Torrent: various fixes and improvements 2017-03-10 12:10:42 +01:00
kaso17
3c46daf7ee Cardigann: Add support for POST search requests 2017-03-10 11:05:08 +01:00
kaso17
d37c652c61 Cardigann: Add support for POST search request 2017-03-10 11:04:42 +01:00
kaso17
98f32bfadd Passione Torrent: improvments 2017-03-10 09:49:51 +01:00
kaso17
f2bcc654f1 Add Passione Torrent tracker
Thank you @bonny1992
2017-03-10 09:44:05 +01:00
kaso17
b1453157bd allow TrackerCategory == null 2017-03-10 09:34:43 +01:00
kaso17
f9c4b876bd PassThePopcorn: use rate limiter 2017-03-09 15:05:58 +01:00
kaso17
49a97e2e25 Rarbg: use IWebClient rate limiter 2017-03-09 15:04:59 +01:00
kaso17
d352a699b6 IWebClient: add rate limiter 2017-03-09 15:04:05 +01:00
kaso17
a34a3fb4b6 Norbits: duplicate search without diacritics 2017-03-09 11:17:10 +01:00
kaso17
34cdedae12 Norbits: add missing categories 2017-03-09 10:44:57 +01:00
kaso17
23d49cdb53 Ztracker: improve search 2017-03-09 07:56:21 +01:00
kaso17
83fb09dcf4 Add Dragonworld Reloaded tracker 2017-03-08 20:47:21 +01:00
kaso17
a15537a7d5 Cardigann: add support for static cookies 2017-03-08 19:39:58 +01:00
kaso17
3e71a682ab Add Dragon World (DTW) tracker 2017-03-08 19:00:28 +01:00
kaso17
b6c10cb4b4 Add Ultimate Gamer Club tracker 2017-03-08 15:28:08 +01:00
kaso17
8163c28c1c add Il Corsaro Nero tracker 2017-03-08 14:10:49 +01:00
kaso17
4d77f113fe Cardigann: add urldecode filter 2017-03-08 13:45:55 +01:00
kaso17
342cfedcd8 BeyondHD: remove i/p from resolution tags 2017-03-08 11:18:39 +01:00
kaso17
f6bbb0cf9e Manual search: swap tracker and category and remove search button text 2017-03-08 09:56:44 +01:00
kaso17
58e9869284 update readme 2017-03-07 19:05:30 +01:00
kaso17
71b8b78589 Add Ztracker tracker 2017-03-07 19:04:41 +01:00
kaso17
ce67cc9d1a update readme 2017-03-07 17:59:39 +01:00
kaso17
f4e788f77a Add TorrentCCF tracker 2017-03-07 17:59:09 +01:00
kaso17
826367f061 Add GigaTorrents tracker 2017-03-07 17:28:02 +01:00
kaso17
0f639d2344 Add Greek Team tracker 2017-03-07 16:31:32 +01:00
kaso17
69bd13c7ac cleanup 2017-03-07 15:41:31 +01:00
kaso17
17a77cb287 Audiobook Torrents: fix search 2017-03-07 15:34:55 +01:00
kaso17
901693d6de Add Audiobook Torrents tracker 2017-03-07 15:33:08 +01:00
kaso17
8f869995e9 remove RapideTracker 2017-03-07 14:07:11 +01:00
kaso17
4226a48041 remove SceneFZ 2017-03-07 14:04:03 +01:00
kaso17
c6a1f9286a EoT-Forum: fix parsing 2017-03-07 14:03:01 +01:00
kaso17
c802008015 remove AlphaReign 2017-03-07 13:49:33 +01:00
kaso17
1555388735 remove TorrentShack 2017-03-07 13:48:56 +01:00
kaso17
53a1161dda remove nostream 2017-03-07 13:48:13 +01:00
kaso17
3bfbe30965 Remove nostream 2017-03-07 13:48:01 +01:00
kaso17
c6e580ac7f Avistaz family: add auto re-login 2017-03-07 13:46:43 +01:00
kaso17
13dc47f0ee update categorymappings 2017-03-07 13:46:22 +01:00
kaso17
94faa7d21f BTNext: cleanup 2017-03-07 13:10:59 +01:00
kaso17
7f648d19a5 BTNext: various improvements 2017-03-07 13:09:51 +01:00
kaso17
6c5433e7ba Cardigann: support errors on search 2017-03-07 12:27:34 +01:00
kaso17
8e9f463bb5 Throw exception 2017-03-07 12:27:05 +01:00
kaso17
4823e61015 Check for BTLS support before using it 2017-03-07 11:50:50 +01:00
kaso17
670a3a78af remove debug output 2017-03-07 11:35:40 +01:00
kaso17
dba66976ff Shazbat: Relogin if necessary 2017-03-07 11:28:48 +01:00
kaso17
1aad9a5527 include request in response 2017-03-07 11:28:18 +01:00
kaso17
91de9a23bd update readme 2017-03-06 19:31:35 +01:00
kaso17
9ef0163993 Shazbat: add/fix support for search 2017-03-06 19:31:18 +01:00
kaso17
fb3fdc7e8c Manual search: extract season/episode 2017-03-06 19:30:24 +01:00
kaso17
9801e02c33 Shazbat: various improvements 2017-03-06 16:35:43 +01:00
kaso17
ff70548bf5 manual search: clear filter on search 2017-03-06 15:49:37 +01:00
kaso17
39833dcb02 manuel search: don't show tracker specific categories if no tracker is selected 2017-03-06 15:38:30 +01:00
kaso17
cdf11067a2 attempt to fix BasePath redirects 2017-03-06 15:29:50 +01:00
kaso17
3b0cfa4aba M-Team - TP: add support for Time Type == Time Added 2017-03-06 14:05:46 +01:00
kaso17
4bdb7a9fd4 Cardigann: add support for multiple search files with the same key 2017-03-06 14:05:11 +01:00
kaso17
d18cc7575c improve error logging 2017-03-06 13:59:39 +01:00
kaso17
9d96821c20 Fix empty PostData handling 2017-03-06 12:17:38 +01:00
Ferdinand Holzer
1bc0a982fa fix build on linux (#1133)
file systems on linux are case sensitive
2017-03-03 19:12:53 +01:00
kaso17
2561415847 MoreThanTV: add auto re-login 2017-03-03 18:52:19 +01:00
kaso17
6d02e6ab1a set encoding 2017-03-02 13:05:17 +01:00
Jerred Shepherd
5df4590540 Show correct libcurl package (#1129) 2017-03-02 08:25:47 +01:00
kaso17
5b268fb454 PTFiles: fix cat+desc 2017-03-01 17:43:57 +01:00
kaso17
eee7c7d843 Add PTFiles tracker 2017-03-01 17:30:58 +01:00
kaso17
f997d27867 Cardigann: support relative submit urls 2017-03-01 17:29:20 +01:00
kaso17
225feff73f Add custom_mobile.css 2017-03-01 13:40:54 +01:00
kaso17
f8686d0c02 Add CZTeam tracker 2017-03-01 13:39:53 +01:00
griddoz92
454adfc2ab Improve mobile UI (#1076) 2017-03-01 12:57:40 +01:00
kaso17
cdd9411d5d Add support for self signed certificates 2017-02-28 20:05:57 +01:00
kaso17
7b31f81957 KickAssTorrent: improve search results 2017-02-28 17:11:37 +01:00
kaso17
c561a55b68 Make indexer list sortable/searchable by error message 2017-02-28 16:58:53 +01:00
kaso17
c3e632d215 Improve error messages 2017-02-28 16:57:29 +01:00
kaso17
c08498d75c Carpathians: fix time parsing 2017-02-28 15:27:47 +01:00
kaso17
59d8b5cb02 Cardigann: simplyfy resolvePath() 2017-02-28 14:48:11 +01:00
kaso17
32b3321790 Cardigann: Fix baseUrl handling 2017-02-28 14:18:13 +01:00
kaso17
758b00b567 UHDBits: handle optional columns 2017-02-28 14:00:11 +01:00
kaso17
6ec5e11218 GFT: search in normal + gems view 2017-02-27 19:55:02 +01:00
kaso17
178aceef52 Add Carpathians tracker 2017-02-27 19:37:32 +01:00
kaso17
f56a03f28f HouseOfTorrents: update URL 2017-02-27 18:20:16 +01:00
kaso17
1203412616 add Acid-Lounge tracker 2017-02-27 12:54:23 +01:00
kaso17
34184d7210 Improve resolvePath handling 2017-02-27 12:38:06 +01:00
kaso17
12d3f1730e TransmitheNet: improve login error handling 2017-02-27 12:23:29 +01:00
kaso17
c61d7671a2 cleanup 2017-02-27 12:22:45 +01:00
kaso17
1f97d543df Add support for server notices 2017-02-27 12:19:36 +01:00
kaso17
799d435f2a Update ReCaptcha note + check 2017-02-27 11:35:30 +01:00
kaso17
96f503cda0 Cardigann: add support for custom category mappings 2017-02-26 18:53:48 +01:00
kaso17
2cd465aac0 Merge branch 'master' of https://github.com/Jackett/Jackett.git 2017-02-26 09:17:27 +01:00
kaso17
53cfc361fa Don't show custom cats 2017-02-26 09:17:05 +01:00
kaso17
d87ae95939 Update README.md 2017-02-26 09:09:32 +01:00
kaso17
4fbfc4e795 Fix cookie handling in mono 4.8 environments 2017-02-26 08:53:27 +01:00
kaso17
cfd780b544 SpeedCD: add freeleech support 2017-02-24 19:16:57 +01:00
kaso17
fbe4d5f1a7 SpeedCD: add support for IMDB search 2017-02-24 19:13:55 +01:00
kaso17
cf1a6ff39d AnimeTorrents: fix title/description parsing 2017-02-24 18:31:23 +01:00
kaso17
d6fd4be73d Add ShowRSS 2017-02-24 18:02:51 +01:00
Joel Gillman
9d8c0d01b8 BTN: Update the API url (#1097) 2017-02-24 17:56:43 +01:00
kaso17
0408b72126 XSpeeds: fix category parsing 2017-02-24 17:38:39 +01:00
kaso17
ba01770b2a FileList: add support for banner URL 2017-02-24 17:35:56 +01:00
kaso17
3b3420086f fix cookie handling 2017-02-24 17:35:21 +01:00
kaso17
ff025825ec Remove invite notices 2017-02-23 19:07:31 +01:00
kaso17
c2953f7221 update CloudFlareUtilities 2017-02-21 19:07:46 +01:00
kaso17
0f33218ea8 Norbits: various improvments 2017-02-21 19:07:23 +01:00
kaso17
536c3d6dbb Merge branch 'master' of https://github.com/Jackett/Jackett.git 2017-02-21 15:30:27 +01:00
kaso17
cf71f719fc improve cookie handling 2017-02-21 15:30:03 +01:00
kaso17
5c24dd552c Update README.md 2017-02-21 14:59:23 +01:00
kaso17
db0612919c Add files via upload 2017-02-21 14:42:18 +01:00
kaso17
3cd622370b XSpeeds: add support for banner 2017-02-21 14:09:56 +01:00
kaso17
198966b91d XSpeeds: support captcha on login 2017-02-21 14:06:58 +01:00
kaso17
1e6526b60c update CloudFlareUtilities 2017-02-21 14:06:36 +01:00
kaso17
87d3fd9443 Add initial support for multiple categories and 1:1 category mapping 2017-02-21 13:07:54 +01:00
Mihai Blaga
e75590876a Update Filelist category mappings (#1086) 2017-02-21 09:24:13 +01:00
Mihai Blaga
cb9dc4cbe2 Modify FileList parse selectors (#1088)
merged, thank you
2017-02-21 09:23:14 +01:00
kmicki
b8146f623f Ensure proper filename of generated torrent (#1085)
Ensure that the filename of a torrent file sent to browser client
doesn't contain invalid character and thus preventing HTTP Error 500.
2017-02-21 09:21:37 +01:00
kaso17
04844d6cb2 SpeedCD: attempt to fix login 2017-02-21 09:12:08 +01:00
kaso17
2439ff707e Add HttpWebClient2 2017-02-20 19:47:11 +01:00
kaso17
e805e791b4 Hyperay: fix login 2017-02-20 19:39:28 +01:00
kaso17
7a9fa6684e HttpWebClient: Attempt to fix "Too many open files" in unix environments 2017-02-20 19:39:16 +01:00
Codehhh
b294645e6f Update PirateTheNet url (#1082) 2017-02-20 15:44:51 +01:00
kaso17
6ff50e942c rename PassTheHeadphones ro Redacted 2017-02-20 15:42:44 +01:00
kaso17
0a37ad630b IPTorrents: add support for Torrents - Category column == Text 2017-02-20 14:35:44 +01:00
kaso17
7b239dcc62 Fix legacy search path handling 2017-02-17 20:15:38 +01:00
kaso17
bf9027f6ed Majomparádé: search all pages 2017-02-17 19:48:46 +01:00
kaso17
4cee32f75c Cardigann: add support for multiple paths 2017-02-17 19:48:13 +01:00
kaso17
95dad9d67e Xthor: improvements 2017-02-17 17:05:48 +01:00
kaso17
80589093f8 Update readme for mono 4.8 2017-02-17 15:56:11 +01:00
kaso17
4f73de67aa make HttpWebClient the default for mono >= 4.8 2017-02-17 15:48:44 +01:00
kaso17
163d21629d TorrentBytes: fix login error parsing 2017-02-16 17:36:40 +01:00
kaso17
ff2e31782b ABN: add DL/UL volume factor 2017-02-16 16:09:14 +01:00
kaso17
c3c8ec9801 Potato Feed: allow magnet URIs 2017-02-16 15:42:00 +01:00
kaso17
e6829438aa IPTorrents: add support for the optional file count column 2017-02-16 11:38:41 +01:00
griddoz92
24a3d5d405 improve mobile web app comparability (#1064) 2017-02-16 11:12:00 +01:00
kaso17
0490ef5bb4 Xthor: fix encoding usage 2017-02-16 10:12:13 +01:00
kaso17
22b66e913d Add The-Torrents tracker 2017-02-15 20:56:28 +01:00
kaso17
ece8d524de T411: Replace definition with native implementation 2017-02-15 20:55:16 +01:00
kaso17
c8c308e5ec HttpWebClient: use TryAddWithoutValidation for headers 2017-02-15 20:47:58 +01:00
kaso17
d6bcfa7e2e RequestBytesWithCookies: add support for headers 2017-02-15 20:47:06 +01:00
kaso17
f85a2cc5c7 MatchQueryStringAND: add support for queryStringOverride 2017-02-15 20:46:51 +01:00
kaso17
86b12837f5 Cardigann: add optional attribute to selectorBlock 2017-02-15 18:13:33 +01:00
kaso17
a915d5cdec RoDVD: fix dateheaders parsing 2017-02-15 17:38:44 +01:00
kaso17
4ab0e4aa0d KickAssTorrent: rename DVD Disc category to DVD ISO 2017-02-15 17:30:22 +01:00
kaso17
e885a88189 Print ThreadPool config during startup 2017-02-15 17:22:01 +01:00
kaso17
0d8c446b74 Cardigann: properly encode variables in search path and $raw 2017-02-15 11:41:07 +01:00
kaso17
65a4ca60cf EZTV: improve title parsing 2017-02-15 11:37:16 +01:00
kaso17
8e7f6dcddc Add PolishSource tracker 2017-02-14 13:23:05 +01:00
kaso17
3f8c87ad7f Potato Feed: use InvariantCulture title comparison 2017-02-14 12:03:29 +01:00
kaso17
fa91848126 PotatoFeed: disable title filtering for torrents with imdbid 2017-02-14 11:36:46 +01:00
kaso17
c923055bbf Torrentz2: Add support for itorrents download links 2017-02-14 09:57:19 +01:00
kaso17
d499f6cde6 Cardigann: add support for settings type checkbox 2017-02-14 09:55:26 +01:00
kaso17
7a63b0472d Cardigann: add support for magnet field 2017-02-14 09:23:00 +01:00
kaso17
808dfefaeb Cadigann: Add tolower/toupper filters 2017-02-14 09:20:38 +01:00
kaso17
3992cbdc41 ArabaFenice: fix parsing for users without wait time 2017-02-14 09:04:26 +01:00
kaso17
1c10e904a6 Isohunt: improve search handling 2017-02-14 08:42:15 +01:00
kaso17
254f35c14b Add * TorrentProject to readme 2017-02-13 20:34:45 +01:00
kaso17
6479af4c4d ArabaFenice: fix download 2017-02-13 20:31:28 +01:00
kaso17
08efe3c6b5 Add ArabaFenice tracker 2017-02-13 20:15:15 +01:00
kaso17
9cbc908828 HDHome, HDSky, HyperRay, M-Team, NetHD, TorViet: enable imdb search 2017-02-13 16:45:25 +01:00
kaso17
bb989c22c6 Add HDPter tracker 2017-02-13 16:44:37 +01:00
kaso17
95d50a608c Diablo torrents: fix downloadvolumefactor 2017-02-13 15:33:47 +01:00
kaso17
054a7f8c9c AsianDVDClub: use andmatch filter 2017-02-13 15:05:35 +01:00
kaso17
c550acf655 AnimeBytes: fix CSRF handling 2017-02-13 14:40:22 +01:00
kaso17
20f23325ab TorrentDay: use and filter 2017-02-13 14:22:04 +01:00
kaso17
c75ff83bb8 DigitalHive: use and filter 2017-02-13 14:21:49 +01:00
zductiv
fa4edf48f1 Add torrentproject tracker (#1045) 2017-02-09 19:49:57 +01:00
zductiv
ec08e663cf Torrentz2: update categories (#1047) 2017-02-09 19:46:23 +01:00
kaso17
621ae19c7d Add Majomparádé tracker 2017-02-09 17:17:36 +01:00
kaso17
74daeda543 move Torrentz2 to public 2017-02-08 19:47:10 +01:00
kaso17
69e5f7a59f Add FullMixMusic tracker 2017-02-08 19:46:22 +01:00
kaso17
998a7fc716 Cardigann: don't set magnet uri as DL link 2017-02-08 18:48:53 +01:00
kaso17
2b7f9c610e Add Torrentz2 tracker
Based on the work from @zductiv (#1042) and @scambra
2017-02-08 18:14:13 +01:00
kaso17
f63a0f93e0 Cardigann: add support for .Result.* variables 2017-02-08 18:08:23 +01:00
kaso17
4453edd441 Add Diablo Torrent tracker 2017-02-08 15:21:40 +01:00
kaso17
714fab74f9 Cardigann: add support for getselectorinputs 2017-02-08 14:49:09 +01:00
kaso17
042fa5d7d9 Add ToHtmlPretty for AngleSharp 2017-02-08 11:28:44 +01:00
kaso17
5f0eb9a170 GFTracker: avoid unnecessary re-logins 2017-02-07 18:45:17 +01:00
kaso17
7226626b71 Add Accept HTTP header 2017-02-07 17:06:17 +01:00
kaso17
ef75684c0e allow cookies with empty value 2017-02-07 17:05:29 +01:00
kaso17
6472ef152e bB: fix search 2017-02-07 16:07:18 +01:00
kaso17
c6f4e2a0e0 Cardigann: don't use andfilter in case of an IMDB search 2017-02-07 16:02:24 +01:00
kaso17
82148df3b1 RoDVD: use andmatch filter 2017-02-07 16:01:41 +01:00
kaso17
510385f709 unconfigured indexers: don't save the search filter 2017-02-07 14:35:11 +01:00
kaso17
d8d437bf1a Manual search: don't save the search filter content 2017-02-07 14:23:43 +01:00
kaso17
62bb3e0c20 The New Retro: update url 2017-02-07 13:59:56 +01:00
kaso17
b1cb801dec Cardigann: support empty form action 2017-02-06 20:04:09 +01:00
kaso17
831e26846e cardigann: strdump escape non breaking space 2017-02-06 19:27:43 +01:00
kaso17
34e14a2a99 Add AsianDVDClub tracker 2017-02-06 19:27:20 +01:00
kaso17
b331395cdd Add BTNext tracker 2017-02-06 18:26:18 +01:00
kaso17
0c0b4475aa Cardigann: print cookies after login 2017-02-06 17:28:40 +01:00
kaso17
a6c24a6c40 CurlHelper: Fix cookie handling for cookies which don't expire 2017-02-06 17:27:31 +01:00
kaso17
1766781429 BitHUmen: enable direct IMDB search 2017-02-06 17:26:51 +01:00
kaso17
0d3fdf2730 Cardigann: change default encoding to UTF-8 2017-02-06 16:33:59 +01:00
kaso17
b18759f760 fix button 2017-02-06 12:37:25 +01:00
kaso17
75d8ba0bf2 Change copy buttons to links 2017-02-06 12:34:49 +01:00
kaso17
d9008e5e8c clear search results on search 2017-02-06 12:31:16 +01:00
kaso17
36ea355250 Ethor.net: fix encoding 2017-02-05 16:43:13 +01:00
some-guy-23
2401e74118 RevolutionTT: Fix bug with search (#1030) 2017-02-05 13:58:04 +01:00
kaso17
1a79bf3219 don't show empty results on search open 2017-02-03 19:23:03 +01:00
kaso17
c17294052d Add dead torrents filter 2017-02-03 19:11:46 +01:00
kaso17
64d2e8cdf3 Always show config/log directory during startup 2017-02-03 14:34:34 +01:00
kaso17
6b084769f8 fix configure links for hidden unconfigured indexers 2017-02-03 14:03:14 +01:00
kaso17
dcfd0ee807 fix datatable width 2017-02-03 13:57:16 +01:00
kaso17
732878a64f myAmity: auto re-login 2017-02-03 13:05:24 +01:00
kaso17
4bf97c8380 Insane Tracker: fix size 2017-02-03 13:01:31 +01:00
kaso17
04e95f17fe Xtreme Zone: change to semi-private 2017-02-03 12:54:33 +01:00
kaso17
7f88f13ff5 Merge branch 'master' of https://github.com/Jackett/Jackett.git 2017-02-03 12:44:58 +01:00
kaso17
d92c697794 Add support for MagnetUri 2017-02-03 12:26:24 +01:00
Nodja
deaf2289dd BakaBT: simplified code by using multiple selectors (#1025) 2017-02-03 11:45:09 +01:00
Nodja
055a62abdf BakaBT: support alternative versions of releases (#1023) 2017-02-03 09:13:00 +01:00
kaso17
132fa71e35 always show search results table and clear results filter on search 2017-02-02 19:23:18 +01:00
kaso17
ba14fab0a1 Shareisland: rewrite season/episode information 2017-02-02 18:56:36 +01:00
kaso17
f081ddcd7e Insane Tracker: enable movie search 2017-02-02 18:24:19 +01:00
kaso17
a3a2ae4108 kapaki: update cats 2017-02-02 18:24:04 +01:00
kaso17
5392b38f58 RoDVD: enable movie search 2017-02-02 18:23:50 +01:00
kaso17
41126c2ed7 Cardigann: fix {{ if }} regex 2017-02-02 18:23:22 +01:00
kaso17
d4453a440e Add CGPeers tracker 2017-02-02 18:04:25 +01:00
kaso17
c60b35058d Add Insane Tracker 2017-02-02 17:47:16 +01:00
kaso17
fb5b5dc99c Add LosslessClub tracker 2017-02-02 16:51:19 +01:00
kaso17
599ec3647b cardigann: add strdump filter 2017-02-02 16:47:16 +01:00
kaso17
80a2cc1e0d Add passtheheadphones-scrape.yml
Not included in the build as it's against their rules (have to use API)
2017-02-02 15:24:27 +01:00
kaso17
57d117e4d0 Add Kapaki tracker 2017-02-02 15:12:53 +01:00
kaso17
18908be38f Add HD-Only 2017-02-02 14:53:28 +01:00
kaso17
e2937762d4 Add RoDVD tracker 2017-02-02 13:01:47 +01:00
kaso17
d5b4a9dddc NCore: various improvements 2017-02-02 12:59:34 +01:00
kaso17
e088f1e960 Add GetAllTrackerCategories() 2017-02-02 12:58:23 +01:00
kaso17
80d29343a5 use GetArgumentFromQueryString() 2017-02-02 12:58:09 +01:00
kaso17
64ae9cb0d5 Add GetArgumentFromQueryString() 2017-02-02 12:58:00 +01:00
kaso17
2ea2bf53b3 Add GetLongFromString() 2017-02-02 12:12:57 +01:00
kaso17
c43ff9ff49 Fix charset setting for JsonContent 2017-02-02 11:07:47 +01:00
kaso17
0f7ff3fb06 Simplify and fix JsonContent encoding 2017-02-02 11:04:47 +01:00
kaso17
0695ee90d6 CHDBits: improve compatibility 2017-02-01 18:56:40 +01:00
kaso17
3910cdd9fe bB: Add support for Default Search Type=Advanced 2017-02-01 13:10:09 +01:00
kaso17
28cd48fe0b Update README.md
Remove --SSLFix (shouldn't be needed anymore)
2017-02-01 13:04:30 +01:00
kaso17
3beb4d663b Update README.md 2017-02-01 13:00:19 +01:00
kaso17
f1f4c0edad update mono instructions 2017-02-01 12:43:33 +01:00
kaso17
21206e6249 add --debug to mono arguments 2017-02-01 12:25:24 +01:00
kaso17
9caccc5f93 Print issue file during startup 2017-02-01 12:25:02 +01:00
kaso17
9c13462da0 ServerService: check mono version during startup 2017-02-01 12:00:54 +01:00
kaso17
e24f70fc7b RARBG: make episode_info optional 2017-01-31 19:48:37 +01:00
kaso17
d703488ccc RARBG: change to torrentapi.org 2017-01-31 19:37:28 +01:00
kaso17
d6c1e21fac TorznapQuery: make RageID nullable 2017-01-31 19:32:32 +01:00
kaso17
a3d4bb516f GetImdbID() support null input 2017-01-31 18:44:39 +01:00
kaso17
45970abbca Releaeinfo: Add TMDb field 2017-01-31 18:44:23 +01:00
kaso17
21d45c2991 Xtreme Zone: change site link 2017-01-31 17:32:37 +01:00
kaso17
2086811596 Fix DataTable state storage 2017-01-31 17:24:42 +01:00
kaso17
8e7aa1b29c Shareisland: migrate to keywordsfilters 2017-01-31 12:06:05 +01:00
kaso17
3bef41aeb6 Magico: Fix Grey's Anatomy results 2017-01-31 11:34:43 +01:00
kaso17
ddfd46c94c Magico: migrate to keywordsfilters 2017-01-31 11:32:08 +01:00
kaso17
f13e9e063d Le Paradis Du Net: Remove dupe type 2017-01-31 11:03:02 +01:00
kaso17
87c0792be0 Add TorrentHR tracker 2017-01-31 11:01:08 +01:00
kaso17
39a52f2417 Le Paradis Du Net: change to semi-private 2017-01-31 07:25:46 +01:00
kaso17
c94679a995 Add Le Paradis Du Net tracker 2017-01-30 19:33:25 +01:00
kaso17
cca2785e84 Add HDHome tracker 2017-01-30 18:22:42 +01:00
kaso17
dfb2052c5c Add GFXPeers tracker 2017-01-30 18:04:18 +01:00
kaso17
ec583ac8d9 HD4Free: use andmatch filter 2017-01-30 17:42:15 +01:00
kaso17
7d110a28c8 KickAssTorrent: use andmatch filter 2017-01-30 17:41:25 +01:00
kaso17
138aaaddfc Sky torrents: use andmatch filter 2017-01-30 17:41:11 +01:00
kaso17
60a322e153 Xtreme Zone: update URL 2017-01-30 17:40:53 +01:00
kaso17
8b6f7095ae Cardigann: fix alterantive link usage 2017-01-30 17:40:35 +01:00
kaso17
e3e1b66773 Merge branch 'master' of https://github.com/Jackett/Jackett.git 2017-01-30 15:03:56 +01:00
kaso17
6bfbb4ba2f The Pirate Bay: Fix date handling 2017-01-30 15:03:46 +01:00
kaso17
3c33236585 Cardigann: fix missingYearRegexp handling 2017-01-30 15:03:23 +01:00
zductiv
4ffff29c47 Updated tracker list - public / private (#1002) 2017-01-30 10:09:11 +01:00
kaso17
ece5fa48e5 Update README.md 2017-01-29 15:06:31 +01:00
kaso17
4ea8e90d35 Fix KickAssTorrent 2017-01-29 08:13:05 +01:00
kaso17
46f508f1f6 libcurl: enable Proxy for HTTPS 2017-01-29 06:26:21 +01:00
kaso17
e5bb25abf5 GFTracker: add support for relative time and improve description 2017-01-29 06:09:32 +01:00
kaso17
809ab8a3d3 workaround scrolling on focus issues 2017-01-28 08:48:30 +01:00
kaso17
ed28daca06 Cardigann: add support for AlternativeSiteLinks 2017-01-28 08:04:23 +01:00
kaso17
3566206a68 fix buttons for hidden indexers 2017-01-28 08:01:47 +01:00
kaso17
d01710c285 Add RARBG tracker 2017-01-28 07:47:17 +01:00
kaso17
ec9cc284d5 remove username/password settings from public trackers 2017-01-28 07:40:51 +01:00
kaso17
5d99a04438 Allow empty settings 2017-01-28 07:37:09 +01:00
kaso17
b1c52013f0 Merge branch 'master' of https://github.com/Jackett/Jackett.git 2017-01-28 07:08:45 +01:00
kaso17
85bb2dba34 Delete old files during update 2017-01-28 07:08:28 +01:00
kaso17
8a149ebe47 update type 2017-01-28 07:07:44 +01:00
jamesb2147
7579ac8e05 GimmePeers: Fixed category mappings (#994) 2017-01-28 06:53:16 +01:00
kaso17
e565ec5a8f update readme 2017-01-28 06:50:51 +01:00
kaso17
8c0c23d6b0 Add original KAT tracker 2017-01-28 06:50:41 +01:00
jamesb2147
2c1f3a7235 Update GimmePeers.cs (#993) 2017-01-27 20:23:57 +01:00
kaso17
5863bf1808 update jquery + fix and improve datatables 2017-01-27 20:22:01 +01:00
kaso17
50c3a5fb3a Add support for tracker type (private/public/semi-private) 2017-01-27 16:57:32 +01:00
kaso17
098caee075 Add inPeril tracker 2017-01-27 15:44:40 +01:00
kaso17
6adcbd0a38 Add Sky torrent tracker 2017-01-27 13:43:17 +01:00
kaso17
811f019d2a fix missingYearRegexp 2017-01-27 13:34:42 +01:00
kaso17
a89631aec4 Cardigann: don't try to re-login in case of a captcha 2017-01-27 13:04:12 +01:00
kaso17
666e311476 Dream Team: fix download and search with <= 3 character words 2017-01-27 12:17:52 +01:00
kaso17
f1fa8c131a Cardigann: add Keywordsfilters and before download feature 2017-01-27 12:14:49 +01:00
kaso17
4a04e5694f Merge branch 'master' of https://github.com/Jackett/Jackett.git 2017-01-27 11:45:36 +01:00
kaso17
8e62911d41 rename regexpreplace to re_replace 2017-01-27 09:48:15 +01:00
kaso17
b63ee5a1c0 Cardigann: Add regexpreplace filter 2017-01-27 09:46:40 +01:00
jamesb2147
79bed349d9 Removal of ILT (dead) and addition of GimmePeers (#988)
* Create gimmepeers.cs

Copied settings over from old ILoveTorrents config. As ILT is now defunct, GP is the official replacement, as announced back in fall 2016.

* Remove ILT and add GimmePeers

Removing defunct ILT and adding its replacement GP

* Rename gimmepeers.cs to GimmePeers.cs

* Update Jackett.csproj

Remove ILT and add GP

* Delete ILoveTorrents.cs

Removing ILT support as site is dead
2017-01-27 08:33:38 +01:00
kaso17
c3b3dd5499 Xtreme Zone: fix parsing 2017-01-26 16:15:55 +01:00
kaso17
e45b3eaaf1 Add JPopsuki tracker 2017-01-26 16:03:36 +01:00
kaso17
238908ee32 improve HttpListenerException handling 2017-01-26 15:25:44 +01:00
kaso17
4d952fc754 check for mono-devel 2017-01-26 15:12:15 +01:00
kaso17
dce295dcbd only check for mono-locale-extras in case of mono 2017-01-26 14:54:59 +01:00
kaso17
72e5baee58 Check for mono-locale-extras during startup 2017-01-26 14:13:58 +01:00
kaso17
40f930591a improve Address already in use error handling 2017-01-26 13:54:52 +01:00
kaso17
0a6d2b30b5 Add ULTRAHDCLUB tracker 2017-01-26 12:38:14 +01:00
kaso17
3487a19503 Reduce debug output on ParseDateTimeGoLang() FormatExceptions 2017-01-26 11:15:30 +01:00
kaso17
e5142d9b3f The Pirate Bay: fix date parsing for old torrents 2017-01-26 10:35:17 +01:00
kaso17
5052613c96 Cardigann: add hexdump filter 2017-01-26 10:34:28 +01:00
kaso17
d071f19654 Owin: set HttpListener.IgnoreWriteExceptions = true 2017-01-25 18:40:40 +01:00
kaso17
88c865e8c9 dependency updates 2017-01-25 17:58:12 +01:00
kaso17
df340f8f84 x264: enable direct IMDB search 2017-01-25 17:48:40 +01:00
kaso17
0db80e9cc1 UHDBits: enable direct IMDB search 2017-01-25 17:00:03 +01:00
kaso17
3ea9bc7493 TorznabQuery: add ImdbIDShort 2017-01-25 16:59:36 +01:00
kaso17
290a51ff56 Add Isohunt tracker
Based on 53666ebe73
2017-01-25 15:43:38 +01:00
kaso17
3dddb02cb4 HD-torrents: fix typo 2017-01-25 14:17:38 +01:00
kaso17
c9b5710111 HD-Torrents: enable direct IMDB search and update cats 2017-01-25 14:10:28 +01:00
kaso17
0a292cf929 HD4Free: fix bannerurl and enable IMDB search 2017-01-25 13:44:55 +01:00
kaso17
22a8ee83bf Torrent411: add andmatch 2017-01-25 13:19:03 +01:00
kaso17
92c6ceb565 Superbits: Enable direct IMDB search 2017-01-25 12:17:58 +01:00
kaso17
de421f081f FileList: enable direct imdb search & fix description 2017-01-25 12:10:35 +01:00
kaso17
3553626bbf Ethor.net (Thor's Land): enable direct IMDB search 2017-01-25 10:59:15 +01:00
kaso17
2b200384df manual search: Add support for direct IMDB search 2017-01-25 10:58:49 +01:00
kaso17
a0dae306c1 Torznab: use GetFullImdbID() 2017-01-25 10:56:56 +01:00
kaso17
91a619e0f6 ParseUtil: add GetFullImdbID() 2017-01-25 10:56:33 +01:00
kaso17
27df6fbe02 Cardigann: add support for imdb movie-search 2017-01-25 10:56:06 +01:00
kaso17
4ca87d3871 EZTV: make size optional 2017-01-25 09:31:16 +01:00
kaso17
ef09d9828a Add 2 Fast 4 You tracker 2017-01-24 18:45:34 +01:00
kaso17
36e90f2fa0 WoP2P: remove ratio 2017-01-24 17:20:44 +01:00
kaso17
a1a685000b set encoding 2017-01-24 17:20:30 +01:00
kaso17
3e5f46f7d0 Add openSUSE to mono-locale-extras note 2017-01-24 17:07:59 +01:00
kaso17
7830b42641 Add EZTV/KickAssTorrent/The Pirate Bay/Torrent411 from cardigann 2017-01-24 16:57:38 +01:00
kaso17
3bbf8f4c35 Fix WorldOfP2P 2017-01-24 16:32:19 +01:00
kaso17
342b80e714 Add LimeTorrents tracker 2017-01-24 15:57:03 +01:00
kaso17
55b5064e28 DateTimeUtils: add support for today/yesterday/tomorrow without time 2017-01-24 15:49:36 +01:00
kaso17
9a3f113bf4 Cardigann: make trim args optional 2017-01-24 15:49:10 +01:00
kaso17
3b7a6ad038 Fix updater for update locations with spaces in the path 2017-01-24 14:04:03 +01:00
kaso17
dd6b284ed8 Cardigann: use correct encoding for query strings 2017-01-23 18:14:20 +01:00
kaso17
571a5a073e Update Sonarr/Radarr/CouchPotato instructions 2017-01-23 17:15:42 +01:00
kaso17
19a3078203 torznab movie-search: normalize imdbid 2017-01-23 16:16:13 +01:00
kaso17
6a3cb442e3 remove "only private trackers" note 2017-01-23 15:55:09 +01:00
flightlevel
9bc7e58f16 Update ISSUE_TEMPLATE.md 2017-01-21 17:08:47 +11:00
flightlevel
7e0c2fedae Create ISSUE_TEMPLATE.md (#974) 2017-01-21 16:56:30 +11:00
majorearnest
750f857fb7 Fix TV search for MoreThanTV (#970) 2017-01-21 16:39:12 +11:00
flightlevel
e7527ae786 Add Docker to readme (#973)
Fixes #537
2017-01-21 16:36:04 +11:00
flightlevel
7fa90289ef IMDB validation fix (#972)
Fixes #971
2017-01-21 14:17:54 +11:00
kaso17
120ac9f82c Add BlueBird tracker 2017-01-20 18:34:24 +01:00
kaso17
c0e3066f32 Hon3y HD: cleanup 2017-01-20 18:29:56 +01:00
kaso17
0e15673161 Add Hon3y HD 2017-01-20 18:07:50 +01:00
kaso17
9c971b0dab Add Dream Team tracker 2017-01-20 17:35:44 +01:00
kaso17
cc4337b588 EliteTracker: relogin if necessary 2017-01-20 14:25:17 +01:00
kaso17
073c23c177 Disable mono specific code 2017-01-20 14:03:03 +01:00
kaso17
daa96313ef Update apps list 2017-01-20 13:50:50 +01:00
kaso17
16ef8061a3 Add --NoRestart command line flag and pass pids to the updater (--KillPids) 2017-01-20 13:50:23 +01:00
kaso17
bbff25fd54 Delete JackettUpdate temp files 2017-01-19 15:03:44 +01:00
kaso17
f96a493c08 Cardigann: fix form login 2017-01-19 14:22:26 +01:00
kaso17
3d17b736c5 log environment details during startup 2017-01-19 14:19:18 +01:00
kaso17
3439654059 FunkTorrents: add MP3+Lossless mapping 2017-01-19 12:59:08 +01:00
kaso17
12c421b6db Add Magico tracker 2017-01-18 21:43:22 +01:00
kaso17
32725357a1 LinkoManija: fix cat 58 2017-01-18 21:42:16 +01:00
kaso17
c80b3f8590 Cardigann: add support for submitpath 2017-01-18 21:41:57 +01:00
kaso17
43381a9851 Cardigann: Add support for selector inputs 2017-01-18 21:17:45 +01:00
kaso17
08ef126c01 Add LinkoManija tracker 2017-01-18 19:59:35 +01:00
kaso17
173e8e83b8 Mononoké-BT: cleanup 2017-01-18 19:40:42 +01:00
kaso17
94bf9a146b Add Mononoké-BT tracker 2017-01-18 19:17:52 +01:00
kaso17
fb3065a919 Add PiXELHD tracker 2017-01-17 19:47:47 +01:00
kaso17
93e1022269 Superbits: remove dupe argument 2017-01-17 17:50:11 +01:00
kaso17
61a7bb4d10 Add Hardbay tracker 2017-01-17 17:49:43 +01:00
kaso17
cf4b3eb2c1 Add AOX tracker 2017-01-17 17:12:01 +01:00
kaso17
8e1b2feaec Cardigann: add prepend filter 2017-01-17 17:10:50 +01:00
kaso17
bba11aae9b Add GODS tracker 2017-01-17 16:05:57 +01:00
kaso17
d46fe3f3c7 Add eStone tracker 2017-01-17 15:01:39 +01:00
kaso17
ccf5112211 Cardigann: add support for filters on error messages 2017-01-17 15:00:59 +01:00
kaso17
208761f28c Bitspyder: add support for alternative style 2017-01-17 13:28:18 +01:00
kaso17
6972103891 Ethor.net (Thor's Land): use username/password/captcha login 2017-01-17 12:33:36 +01:00
kaso17
7c0d619f2f Cardigann: set referer on captcha request 2017-01-17 12:32:11 +01:00
kaso17
7bdbc4a025 IPTorrents: Don't set the Description 2017-01-17 08:32:44 +01:00
kaso17
b4e5009b2f IPTorrents: update categories 2017-01-17 08:28:36 +01:00
kaso17
77841cd4c4 IPTorrents: fix link selector 2017-01-17 08:19:25 +01:00
kaso17
df85d334a3 don't set publish_date if it's not available 2017-01-16 18:52:56 +01:00
kaso17
0846ea6a98 use ISO 8601 strict for publish_date and make it UTC 2017-01-16 18:45:18 +01:00
Devin Buhl
945f3f9c7f Add PublishDate to Potato feed for Radarr (#934) 2017-01-16 18:25:22 +01:00
kaso17
8b1381aba6 improve imdbid validation 2017-01-16 18:17:13 +01:00
kaso17
be74b3af7c AnimeBytes: fix warning 2017-01-16 18:14:41 +01:00
kaso17
ef7902b378 IPTorrents: add support for imdb search 2017-01-16 18:14:28 +01:00
kaso17
c2e3d0e225 Add imdbid validation 2017-01-16 18:08:02 +01:00
kaso17
0c02767d8f TorrentDay: enable IMDB search 2017-01-16 17:31:41 +01:00
kaso17
33c5ce86f7 TehConnection: enable IMDB search & fix BannerUrl 2017-01-16 17:30:31 +01:00
kaso17
1c9213e7f1 PassThePopcorn: enable IMDB search 2017-01-16 17:23:51 +01:00
kaso17
af1aa408c9 Add support for movie-search 2017-01-16 17:23:19 +01:00
kaso17
716fe0e6b6 Torznab: change content type for t=caps to xml only 2017-01-16 16:10:21 +01:00
kaso17
3a40e73d43 Abnormal: set encoding 2017-01-16 15:16:05 +01:00
kaso17
b6accb02dc DigitalHive: automatically re-login 2017-01-16 12:29:51 +01:00
kaso17
5599b05fb3 Cardigann: improve search URL handling 2017-01-16 12:25:16 +01:00
kaso17
54b14090dd Cardgainn: add support for login input field selectors 2017-01-16 12:24:45 +01:00
kaso17
ad921afe94 AnimeBytes: automatically re-login 2017-01-16 12:23:40 +01:00
kaso17
9b0a03d002 AnimeBytes: Fix DL links 2017-01-16 12:23:15 +01:00
kaso17
29d3930baa AnimeBytes: fix missing encodings 2017-01-16 12:15:18 +01:00
kaso17
29c1ee3cac update mono v3 note 2017-01-13 17:09:36 +01:00
kaso17
33aac7e602 Add WebAPIExceptionHandler 2017-01-13 17:00:02 +01:00
kaso17
331de4247b Bitspyder: use and filter 2017-01-13 13:30:48 +01:00
kaso17
9cecc38189 Rockhard Lossless: use and filter 2017-01-13 13:30:36 +01:00
kaso17
0965274184 Shellift: use and filter 2017-01-13 13:30:14 +01:00
kaso17
ef49f304de The Shinning: remove [TsH] prefix 2017-01-13 13:29:53 +01:00
kaso17
547a607dff Add Bitspyder tracker 2017-01-12 19:13:36 +01:00
kaso17
486760a211 Rockhard Lossless: improve login error handling 2017-01-12 18:36:19 +01:00
kaso17
97a4cd6a1f Add Rockhard Lossless tracker 2017-01-12 18:32:33 +01:00
kaso17
7cb48969be Nachtwerk: fix cats 2017-01-12 18:11:17 +01:00
kaso17
c3d2659b7f Add Nachtwerk tracker 2017-01-12 17:22:34 +01:00
kaso17
9689ea7881 Cardigann: add support for redirects on download selector 2017-01-12 17:18:50 +01:00
kaso17
cba4fe074f Fix New Real World order 2017-01-12 15:31:53 +01:00
kaso17
821e796678 Add Hyperay tracker 2017-01-12 15:31:07 +01:00
kaso17
582784c547 Superbits: cleanup 2017-01-12 13:37:14 +01:00
kaso17
538c455c6a IPTorrents: Add category 65 2017-01-12 13:36:31 +01:00
kaso17
82eaa15537 Add Infinity-T tracker 2017-01-12 12:18:22 +01:00
kaso17
0e7ce1d38d Add Freedom-HD tracker 2017-01-11 18:59:11 +01:00
kaso17
106ce8aa58 Shellife: fix login error selector 2017-01-11 18:24:49 +01:00
kaso17
2baf645351 Add Shellife tracker 2017-01-11 18:17:40 +01:00
kaso17
d9d935c267 Cardigann: add support for append modifier and trim early 2017-01-11 18:16:25 +01:00
kaso17
ef3dfad4aa BeyondHD: add leading/tailing wildcard to search 2017-01-11 17:07:06 +01:00
kaso17
6d275244ef Revert "BeyondHD: strip and filter for specific keywords later"
This reverts commit 40978fbce1.
2017-01-11 17:04:47 +01:00
kaso17
7a25d94b95 Set encoding for omdbapi calls 2017-01-11 14:48:50 +01:00
kaso17
81c9828e4c Add ShareSpaceDB tracker 2017-01-10 19:06:47 +01:00
kaso17
23b0378d2a Revert "Remove Tspate"
This reverts commit ecf295873f.
2017-01-10 18:55:10 +01:00
kaso17
dd029db392 Add FunkyTorrents tracker 2017-01-10 18:52:13 +01:00
kaso17
40978fbce1 BeyondHD: strip and filter for specific keywords later 2017-01-10 17:54:45 +01:00
kaso17
2cc451ebef Shareisland: fix categories and use url encoded wildcard 2017-01-10 16:58:45 +01:00
kaso17
2f6e1e29b1 nCore: set DL/UL factors 2017-01-10 16:18:10 +01:00
kaso17
99c0de285e Revert "Remove nostream"
This reverts commit 1215548b31.
2017-01-09 13:47:53 +01:00
Ashleigh Hopkins
d9afee215d Add support for gzip'd content (affects an IPTorrents alt URL) (#1) (#920) 2017-01-09 13:12:31 +01:00
kaso17
dc8f85d33d Add Superbits tracker 2017-01-06 19:04:46 +01:00
kaso17
1134ef71da Cardigann: add support for GET login 2017-01-06 19:04:26 +01:00
kaso17
c9e5f14687 Add Torrenting tracker 2017-01-06 17:07:52 +01:00
kaso17
dbe7561642 BeyondHD: replace special characters with wildcards 2017-01-06 16:09:22 +01:00
kaso17
9fcb16e535 Remove Freaks Tracking System 2017-01-06 15:17:47 +01:00
kaso17
1215548b31 Remove nostream 2017-01-06 15:16:30 +01:00
kaso17
ecf295873f Remove Tspate 2017-01-06 15:15:07 +01:00
kaso17
8dcc2aedc9 Cardigann: improve resolvePath usage 2017-01-06 15:05:51 +01:00
kaso17
08b3ba0f02 Elite Tracker: Add support for releases without tooltip and guess time for releases with PRE time 2017-01-06 13:30:21 +01:00
kaso17
f587ae3084 Cardigann: add optional field modifier 2017-01-05 19:15:39 +01:00
kaso17
58206b0d33 Add BitHUmen tracker 2017-01-05 19:14:41 +01:00
kaso17
8e5538a11e Avoid concurrent config file writes 2017-01-05 18:08:10 +01:00
kaso17
175bea9269 Automatically load the backup config if the primary one is corrupted 2017-01-05 18:05:14 +01:00
kaso17
33cbc71817 Add RuTracker 2017-01-05 17:36:49 +01:00
kaso17
f7014f4ca2 Add RuTracker 2017-01-05 17:36:36 +01:00
kaso17
874e14018e Add RuTracker 2017-01-05 17:36:05 +01:00
kaso17
922c08da19 Add support for empty captcha images 2017-01-05 17:31:52 +01:00
adamwinn
5fe89a85e9 tenyardtracker: minor changes (#827)
* minor changes for tenyardtracker
2017-01-04 16:20:52 +01:00
kaso17
0bcf922f37 Elite Tracker: improve search 2017-01-04 15:09:58 +01:00
Tentacule
eb485bfa60 Implement Elite-Tracker (#911)
Fixes #782
2017-01-04 12:35:49 +01:00
kaso17
74d0e022ae 7tor: add category mapping 2017-01-04 12:21:43 +01:00
kaso17
0a8675ea7c Add 7tor tracker 2017-01-03 19:01:05 +01:00
kaso17
eed8cb70a3 GFTracker: fix and improve search 2017-01-03 16:09:07 +01:00
kaso17
e476233f07 HttpWebClient: add support for Referrer 2017-01-03 15:04:49 +01:00
kaso17
b8d40b5259 Add M-Team - TP tracker 2017-01-03 14:54:36 +01:00
kaso17
a399e8d0a5 Demonoid: add more detailed audio category mapping 2017-01-03 14:01:11 +01:00
kaso17
db049b2478 Add HDSky tracker 2017-01-03 13:21:07 +01:00
kaso17
03ab411d68 Cardigann: make download method configurable 2017-01-03 13:19:23 +01:00
kaso17
20b9b692f0 x264: upgrade to recaptcha V2 2017-01-02 21:45:15 +01:00
kaso17
f99e104755 Make site link configurable for all indexers 2017-01-02 21:39:28 +01:00
kaso17
8a9648d347 Demonoid: improve search results 2017-01-02 16:27:56 +01:00
kaso17
3ca760145c Torrentech: Add support for AAC category mapping 2017-01-02 15:46:09 +01:00
kaso17
3cf09f5b0f TVChaos UK: Fix and improve search 2017-01-02 15:45:01 +01:00
kaso17
657bb15282 CleanTitle: remove brackets 2016-12-30 17:12:32 +01:00
kaso17
069c64f504 TorrentBD: fix comments field 2016-12-30 16:39:48 +01:00
kaso17
65c1aed251 Add CHBits tracker 2016-12-30 15:20:11 +01:00
kaso17
e8e4289b20 Hounddawgs: fix category handling 2016-12-30 14:10:33 +01:00
Frederik Nielsen
0838a0b258 Add movie categories to HoundDawgs (#902) 2016-12-30 13:50:04 +01:00
kaso17
8e8f143b02 Torrentech: Add compatibility for all themes 2016-12-30 13:39:56 +01:00
kaso17
2e56f662cd Shareisland: fix date parsing 2016-12-29 19:56:52 +01:00
kaso17
440d59a30e Add Torrentech indexer 2016-12-29 19:56:35 +01:00
kaso17
286ef8396a Make FuzzyTime date format selectable 2016-12-29 19:56:18 +01:00
kaso17
772df7a4c1 x264: no longer have to set PublishDate 2016-12-29 15:54:27 +01:00
kaso17
134fd3f4cf Torznap feed: always set pubDate 2016-12-29 15:51:08 +01:00
kaso17
ae8f8f7ccd BitHQ: fix definition 2016-12-29 15:47:39 +01:00
kaso17
f8637051fa PotatoController: set freeleech correctly 2016-12-29 15:47:16 +01:00
kaso17
eb0e82494c Add BitHQ tracker 2016-12-29 15:31:12 +01:00
kaso17
265b949de9 SceneFZ: Fix category parsing for parent categories 2016-12-29 14:39:48 +01:00
kaso17
34acbed7f0 Bit-City Reloaded: cleanup 2016-12-29 12:47:58 +01:00
kaso17
42eb68ba76 Bit-City Reloaded: fix category mapping 2016-12-29 12:39:42 +01:00
kaso17
37591c6da6 MySpleen: add global freeleech check 2016-12-29 12:35:05 +01:00
kaso17
f5a8ad61b9 FANO/New Retro/Secret Cinema/Shareisland/Horror Charnel/Shinning/TSpate/WorldOfP2P: use andmatch filter 2016-12-29 12:21:46 +01:00
kaso17
e064fd8ccd Add support for andmatch Rows filter 2016-12-29 12:19:49 +01:00
kaso17
8a9949ac93 MatchQueryStringAND: add support for character limit 2016-12-29 12:19:25 +01:00
kaso17
40dde036d6 Torrent Syndikat: remove articles from search 2016-12-29 12:15:17 +01:00
kaso17
171205bdee TorrentLeech: Update categories 2016-12-29 12:14:35 +01:00
kaso17
03e0c6d67e TorrentLeech: use AND filter 2016-12-29 12:01:42 +01:00
kaso17
91500c95e6 Secret Cinema: Exclude Secret Pills from search results 2016-12-29 11:36:57 +01:00
kaso17
8a082b0668 Remove FunFile definition (use C# implementation) 2016-12-29 11:07:45 +01:00
kaso17
650b6986f9 TranceTraffic: fix selector for single page search results 2016-12-28 06:56:23 +01:00
kaso17
82fd53226c Add TranceTraffic tracker 2016-12-27 19:13:01 +01:00
kaso17
77fd3e206b Cardigann: improve exception readability 2016-12-27 19:07:32 +01:00
kaso17
3989f35827 Cardigann: Don't use any default cats 2016-12-27 19:06:37 +01:00
kaso17
82376a508a RapideTracker: add details link 2016-12-27 17:09:05 +01:00
kaso17
4f9ce14e2f TorrentSyndikat: use long title 2016-12-26 15:52:26 +01:00
kaso17
60a2ffbe41 TorrentSyndikat: Add global freeleech check 2016-12-26 15:50:08 +01:00
kaso17
15598e3d66 Andraste: Add global freeleech check 2016-12-24 13:12:36 +01:00
kaso17
357be7dda9 HDClub: fix links+login 2016-12-24 08:17:27 +01:00
kaso17
a0aa77519b Add HDClub tracker 2016-12-23 17:35:30 +01:00
kaso17
f3ef590d3f Cardigann: Add support for image captchas 2016-12-23 17:18:37 +01:00
kaso17
d347ea71b8 Abnormal: attempt to fix parsing 2016-12-23 14:57:00 +01:00
kaso17
62f0bdc19c Add RapideTracker tracker 2016-12-23 14:56:31 +01:00
kaso17
e92b925eab Add FANO.IN tracker 2016-12-21 18:18:25 +01:00
kaso17
e8239f4899 IPTorrents: use encoding during login 2016-12-21 17:32:24 +01:00
kaso17
5c855d3b50 HD-Torrents: Allow alternative URLs 2016-12-20 19:45:57 +01:00
kaso17
6dfaff6aad Torrent.Md: remove description 2016-12-20 19:44:24 +01:00
kaso17
849b9e9765 Add Torrents.Md tracker 2016-12-20 19:43:08 +01:00
kaso17
eacfd53466 Add u-Torrent tracker 2016-12-20 13:20:12 +01:00
kaso17
4459697fe5 Cardigann: Don't use empty banner URLs 2016-12-20 13:18:48 +01:00
kaso17
94872affa9 Add DataScene tracker 2016-12-20 12:39:57 +01:00
kaso17
a29064e7fb Add imdb/banner/description to cached results view 2016-12-20 12:07:43 +01:00
kaso17
679cba4297 Avoid line wraps in the size column 2016-12-20 12:05:53 +01:00
kaso17
f155a21ee8 Add banner/description tooltip 2016-12-20 11:50:04 +01:00
kaso17
0913ee4934 Xtreme Zone: add banner 2016-12-20 11:48:53 +01:00
kaso17
1fa0384eb8 Add IMDB label 2016-12-20 10:01:53 +01:00
kaso17
59727fe8fc Xtreme Zone: Fix description 2016-12-20 09:40:08 +01:00
kaso17
28707fa146 ICE Torrent: fix seedersm, leechers, description imdb and add banner 2016-12-20 09:39:53 +01:00
kaso17
f408abe7a4 Cardigann: Add support for minimumratio/minimumseedtime/rageid/tvdbid/banner fields 2016-12-20 09:38:01 +01:00
kaso17
42434c35a1 Add Xtreme Zone tracker 2016-12-19 20:57:38 +01:00
kaso17
df941c54ce IPTorrents: change default URL 2016-12-19 20:25:18 +01:00
kaso17
f2eb4dacd0 ICE Torrent: Fix timezone and add details link 2016-12-19 20:24:58 +01:00
kaso17
9795587e4d Add ICE Torrent tracker 2016-12-19 19:51:54 +01:00
kaso17
15064810f8 Add TorViet tracker 2016-12-18 15:32:46 +01:00
kaso17
fbfee66c7b Shareisland: replace special characters with wildcards 2016-12-18 12:21:53 +01:00
kaso17
53e2d9e9cd Cardigann: Add support for re_replace template function
Example: {{ re_replace .Query.Keywords "[^a-zA-Z0-9]+" "%" }}
2016-12-18 12:20:33 +01:00
kaso17
49fd078a4c Add nostream tracker 2016-12-18 11:46:29 +01:00
kaso17
3dfba7c204 Add notwhat.cd tracker 2016-12-18 11:36:11 +01:00
kaso17
0e59621650 Add QcTorrent tracker 2016-12-17 17:33:34 +01:00
kaso17
c2f4cc97ab Add PassTheHeadphones tracker 2016-12-17 16:49:52 +01:00
kaso17
5fc7fca5c6 CategoryMapping: Add support for the tracker category description 2016-12-17 16:42:50 +01:00
kaso17
7b2dd93f2f TVChaosUK: relogin if necessary 2016-12-17 13:57:40 +01:00
kaso17
a8ddf21081 TVChaosUK: test RSS and scrape search 2016-12-17 13:39:52 +01:00
kaso17
7db50dba49 AlphaReign: Fix category selectors 2016-12-17 13:32:54 +01:00
kaso17
9d30f833da TorrentLeech: Fix date selector 2016-12-17 13:24:57 +01:00
kaso17
bf959f1c29 Apollo: Add uppercase global freeleech selector 2016-12-15 09:52:03 +01:00
kaso17
1cde5c5142 Add Gormogon tracker 2016-12-15 09:32:11 +01:00
kaso17
58a7de145a Cardigann: Add support for non-direct download links 2016-12-15 09:12:28 +01:00
kaso17
9a66289a26 Add more debug output on Download error 2016-12-15 06:56:41 +01:00
kaso17
6201712ce9 HD Torrents: add support for NO RATIO label 2016-12-14 08:55:05 +01:00
kaso17
f921df948c House of Torrents: reset cookies on login 2016-12-14 08:45:40 +01:00
kaso17
059701fbf6 Cardigann: fix re-login caching issue for login method=form indexers 2016-12-14 08:44:56 +01:00
kaso17
addf98e9a3 TorrentDay: change default url back to torrentday.it 2016-12-12 08:34:06 +01:00
kaso17
f124b7e30b TorrentLeech: avoid unnecessary login checks 2016-12-12 08:24:18 +01:00
kaso17
0fc2a3083c TorrentLeech: Fix login parameters/error parsing 2016-12-12 08:16:46 +01:00
kaso17
01141b8cc1 NetHD: fix rows selector 2016-12-12 07:34:03 +01:00
kaso17
be542272d1 BitMeTV: include dead torrents 2016-12-12 07:21:30 +01:00
kaso17
2c4f18128a TorrentLeech: fix relogin detection 2016-12-12 06:48:55 +01:00
kaso17
adbd6c9d0d TorrentLeech: fix DL link 2016-12-11 16:41:02 +01:00
kaso17
a854771950 TorrentLeech: adjust to new design 2016-12-11 16:36:48 +01:00
kaso17
b4fafe2845 bB: normalize spaces in title 2016-12-11 16:12:47 +01:00
kaso17
1050157546 Curl: Fix Bad Request errors 2016-12-11 15:43:39 +01:00
kaso17
6f54958ec0 The Horror Charnel: fix rows selector 2016-12-11 06:18:32 +01:00
kaso17
a53fc1e8cb IWebClient: minor cleanup 2016-12-11 05:57:39 +01:00
kaso17
e0e81ff52b TorrentDay: update to latest URLs/redirect scheme 2016-12-11 05:50:08 +01:00
kaso17
4f86272074 IWebClient: log redirect target 2016-12-11 05:48:43 +01:00
kaso17
d909d0cb60 Norbits: fix language 2016-12-11 05:21:32 +01:00
kaso17
6a18ec23b2 ToTheGloy: fix categories and add IMDB 2016-12-11 05:17:34 +01:00
kaso17
c40c176b72 PreToMe: automatic re-login is necessary 2016-12-10 22:32:41 +01:00
kaso17
55f2951694 House Of Torrents: automatic re-login is necessary 2016-12-10 22:32:31 +01:00
kaso17
5b641a5efc AlphaRatio: automatic re-login is necessary 2016-12-10 22:32:17 +01:00
kaso17
d259f3df0d bB: Add quality to title 2016-12-10 21:32:06 +01:00
kaso17
2ad44cd79b TorrentDay: Add error message on invalid cookies 2016-12-10 18:39:20 +01:00
kaso17
2ffdc1678b Make Cardigann indexers deletable 2016-12-10 18:20:04 +01:00
kaso17
db4717b714 XSpeeds: Login again only if it's necessary 2016-12-10 18:01:45 +01:00
kaso17
6d26fb8f43 LoadValuesFromJson: allow null as input 2016-12-10 17:53:41 +01:00
kaso17
ca2b4110bb Curl: Fix cloudflare challenges 2016-12-10 15:01:35 +01:00
kaso17
606e629cc6 Add ToTheGlory tracker 2016-12-10 13:49:39 +01:00
kaso17
0fd925e945 CurlHelper: FailOnError 2016-12-10 12:54:14 +01:00
kaso17
c3033db8fb Cardigann: cleanup 2016-12-10 11:56:58 +01:00
kaso17
e312a4da09 Curl: add support for request headers 2016-12-10 11:56:23 +01:00
kaso17
467eb453db IWebClient: disable warning 2016-12-10 11:17:56 +01:00
kaso17
7c0e22258a Cardigann: Add support for form login with enctype=multipart/form-data 2016-12-10 11:17:21 +01:00
kaso17
bfdc5043eb JackettUpdater: create missing directories and remove legacy files 2016-12-10 10:48:24 +01:00
kaso17
c2520c86d7 Fix CloudFlare challenges for mono/libcurl 2016-12-10 10:36:42 +01:00
kaso17
fb41b2a543 Fix indexer main categories 2016-12-09 18:31:41 +01:00
kaso17
384c76e27d Add missing languages/encodings 2016-12-09 18:20:58 +01:00
kaso17
eaf84e201f Attempt to fix #820 2016-12-09 17:45:37 +01:00
kaso17
9862ca408a Update PassThePopcorn URLs and encoding 2016-12-09 17:17:19 +01:00
kaso17
fbc48848d6 Add total configured/unconfigured indexers counters (#830) 2016-12-09 17:12:09 +01:00
kaso17
894688337e Add MySpleen tracker (#829) 2016-12-09 17:01:01 +01:00
kaso17
bae4752cad Update README.md 2016-12-09 16:26:21 +01:00
kaso17
58987e3e38 Add NetHD tracker (#828) 2016-12-09 16:21:56 +01:00
kaso17
e63d98acfc SceneFZ: fix and improve search (#825) 2016-12-08 09:47:47 +01:00
kaso17
c44385e9b7 Merge branch 'master' of https://github.com/Jackett/Jackett.git 2016-12-08 07:31:40 +01:00
kaso17
0dd2dcf497 MTV: Fix size 2016-12-08 07:31:31 +01:00
adamwinn
8f8a1af9d9 Add tenyardtracker (#824) 2016-12-08 06:38:18 +01:00
kaso17
369640b464 Add Norbits tracker (#819) 2016-12-06 18:39:21 +01:00
kaso17
a908cec280 Merge branch 'master' of https://github.com/Jackett/Jackett.git 2016-12-06 18:25:32 +01:00
kaso17
aab478e378 XSpeeds: test RSS and search 2016-12-06 18:25:21 +01:00
kaso17
67bf46ccb6 TorznabQuery: add IsTest flag 2016-12-06 18:24:40 +01:00
kaso17
36ccdd287c BIT-HDTV: Fix and improve search (#817) 2016-12-06 15:19:23 +01:00
kaso17
d499c291b9 WebRequest: make encoding configurable (#816) 2016-12-06 14:56:47 +01:00
kaso17
7835da2ea8 Indexer Download: UrlEncode some special chars 2016-12-06 11:13:18 +01:00
kaso17
2b77ca4322 Allow ', [ and ] in search queries 2016-12-06 11:09:10 +01:00
kaso17
d801808270 HD-Torrents: fix and improve search (#815) 2016-12-06 09:52:40 +01:00
kaso17
3f629ba7d2 automatically decode CloudFlare protected emails 2016-12-06 09:40:38 +01:00
kaso17
e34ffcbaa6 WebResult: Add support for headers 2016-12-06 09:39:32 +01:00
kaso17
047bdda088 Allow @ in search 2016-12-06 09:04:40 +01:00
kaso17
777f357cec update screenshot 2016-12-05 18:43:04 +01:00
kaso17
599d1c9c91 Fix Test 2016-12-05 18:25:56 +01:00
kaso17
37dae02a1b Add search buttons for indexers (#812) 2016-12-05 18:20:56 +01:00
kaso17
441023a336 Add Secret Cinema tracker (#811) 2016-12-05 18:01:11 +01:00
kaso17
56d7d42836 TorrentLeech: include 0day and music (#809) 2016-12-05 15:31:17 +01:00
kaso17
59b90d3896 Add SDBits tracker (#807) 2016-12-05 15:14:16 +01:00
kaso17
4283ea5e67 Merge branch 'master' of https://github.com/Jackett/Jackett.git 2016-12-05 15:09:46 +01:00
kaso17
32fa8cf5fd Cardigann: Add support for IMDB 2016-12-05 15:09:43 +01:00
kaso17
412df7c6f6 Sort indexers once all are loaded 2016-12-05 13:03:30 +01:00
kaso17
e275ebba87 UHDBits: genre tags have been removed (#805) 2016-12-05 12:44:49 +01:00
kaso17
c38a2533e1 replace card view with list view (#803) 2016-12-05 12:32:26 +01:00
kaso17
bb6f56bfa6 Add LastError to indexer API (#802) 2016-12-05 11:43:07 +01:00
kaso17
82ae611c81 Cardigann: Fix relogin for method=form (#800) 2016-12-04 20:58:50 +01:00
kaso17
64e537e77d Cardigann: no login needed if there's no login definition (#799) 2016-12-04 20:49:07 +01:00
kaso17
245855c2ab DanishBits: Fix DL link (#798) 2016-12-04 20:37:36 +01:00
kaso17
186136cc86 MyAnonamouse: fix and improve search (#797) 2016-12-04 20:15:01 +01:00
kaso17
0295bc68ab TehConnection: Add new attributes 2016-12-03 19:14:45 +01:00
kaso17
9da7866321 TehConnection: Use release link for details 2016-12-03 19:14:45 +01:00
kaso17
9930430026 TehConnection: Generate title for releases without scene title 2016-12-03 19:14:45 +01:00
kaso17
e56ff204f8 Add language field to indexers (#788) 2016-12-02 18:58:10 +01:00
savahu
6a3374ea86 Corrected ordering of supported trackers (#787) 2016-12-02 18:32:25 +01:00
kaso17
c134e72979 DanishBits: Add new attributes 2016-12-02 14:43:29 +01:00
kaso17
d84bd074c0 Apollo: Add support for global freeleech (#785) 2016-12-02 13:29:45 +01:00
kaso17
51b4326920 Cardigann: Add support for :root pseudo selector 2016-12-02 13:05:00 +01:00
kaso17
253bda68e9 Apollo: Update URL 2016-12-01 08:14:29 +01:00
kaso17
7fa558c743 SceneAccess: Fix login (#776) 2016-12-01 08:02:33 +01:00
kaso17
b01bf3e669 x264: Use now as PublishDate (#775) 2016-12-01 07:49:12 +01:00
kaso17
dd4eaed4fa BeyondHD: Use Login Link (#772) 2016-11-30 18:33:09 +01:00
kaso17
ac4787e292 Fix typo 2016-11-30 06:50:23 +01:00
kaso17
88002d4b53 Add TorrentBD tracker 2016-11-29 19:35:49 +01:00
kaso17
f30ba7fd59 Cardigann: Add basic support for ReCaptcha V2 (#769) 2016-11-29 19:32:50 +01:00
kaso17
470b212f32 Add The Shinning tracker (#767) 2016-11-29 14:20:23 +01:00
kaso17
3ab45960da Add Freaks Tracking System tracker (#762) 2016-11-28 19:41:57 +01:00
kaso17
870c0592fe Cardigann: Make encoding configurable 2016-11-28 19:31:12 +01:00
kaso17
da2a252848 FileList: fix download link and some more improvements (#760) 2016-11-28 16:03:22 +01:00
kaso17
88f73f185c UHDBits: Add details URL (#759) 2016-11-28 08:51:01 +01:00
kaso17
d3cef38f15 Cardigann: Prefere details over comments URL (#758) 2016-11-28 08:50:08 +01:00
kaso17
5292e8f342 IPTorrents: Add TV/x265 category (#757) 2016-11-28 08:28:37 +01:00
kaso17
ef637792c8 Add Blu-bits tracker (#749) 2016-11-27 19:07:33 +01:00
kaso17
09a2e8c084 Add support for parsing "now" time strings (#748) 2016-11-27 15:39:40 +01:00
kaso17
d3161823ad Add Apollo/XANAX tracker (#747)
* AlphaReign: add login test selector

* Add Apollo/XANAX tacker

* Add Apollo/XANAX tracker

* fix readme
2016-11-27 15:22:05 +01:00
kaso17
289844099c AlphaReign: add login test selector 2016-11-26 18:12:15 +01:00
kaso17
98a916b4c1 Cardigann: login again if necessary (#744) 2016-11-26 18:00:53 +01:00
kaso17
69ff142596 ImmortalSeed & FunFile: login again if necessary (#743) 2016-11-26 17:21:50 +01:00
kaso17
80fd717970 XSpeeds: dump feed in case of error (#742) 2016-11-26 16:57:49 +01:00
kaso17
ab083cdec8 CurlHelper: Add NotImplemented/InternalServerError debugging (#730) 2016-11-24 09:17:24 +01:00
kaso17
e16454f30c Add AlphaReign tracker (#729) 2016-11-24 08:40:49 +01:00
kaso17
23c13969ae Cardigann enhancements (#728)
* Cardigann: Use GET for landing site request

* Cardigann: Add support for magnet links
2016-11-24 08:31:39 +01:00
kaso17
dcc3f2df63 Add Ethor tracker (#726) 2016-11-23 10:19:38 +01:00
kaso17
10f7f83ecf Add EoT-Forum tracker (#723) 2016-11-21 19:07:09 +01:00
kaso17
b5e6eac3e3 Cardigann: Add support for DateHeaders (#722) 2016-11-21 18:48:36 +01:00
kaso17
9df337c3c2 Add Tspate tracker (#720) 2016-11-21 17:10:53 +01:00
flightlevel
d2f0e5ada7 MoreThanTv: Fix Times (#719)
Times are UTC, convert to local time
2016-11-21 19:46:53 +11:00
kaso17
d3aa897b1a Torrent Sector Crew: Fix rows selector for people with "Empfohlene Torrents in der Liste anzeigen" disabled. (#718) 2016-11-21 09:24:15 +01:00
kaso17
0abcf401bb Add UHDBits to README (#715) 2016-11-20 13:58:29 +01:00
kaso17
560d257f5b Remove BlueTigers tracker (#714)
https://twitter.com/hashtag/bluetigers
2016-11-20 13:50:57 +01:00
kaso17
1a619e698a Update readme (#713) 2016-11-20 13:22:59 +01:00
kaso17
52aea3de5a Add The Horror Charnel tracker (#712) 2016-11-20 13:09:25 +01:00
kaso17
8fa1268de2 Cardigann: Add support for After rows selector (#711) 2016-11-20 12:49:56 +01:00
kaso17
5a4c1282ef Cardigann: automatically solve simpleCaptchas (#710) 2016-11-20 11:24:29 +01:00
kaso17
3aecc53b5f Hebits: set comments Url (#709) 2016-11-20 10:22:17 +01:00
kaso17
328f652e1b Cardigann: make sure GUID get's set (#708) 2016-11-20 10:15:48 +01:00
kaso17
52a56f5088 TSC: fix ratio (#704) 2016-11-19 13:22:38 +01:00
kaso17
5e4c64bf68 TSC: Add ratio support (#703) 2016-11-19 13:18:22 +01:00
kaso17
930e9db67a Add Torrent Sector Crew tracker (#702) 2016-11-19 12:57:13 +01:00
kaso17
27627aa79e Cardigann: Implement form based login (#701) 2016-11-19 12:46:31 +01:00
kaso17
ddb94e3f92 ParseDateTimeGoLang: normalize spaces first (#700) 2016-11-19 12:39:22 +01:00
kaso17
f1f5b7028d Add TV-Vault tracker (#698) 2016-11-19 11:33:00 +01:00
kaso17
90959c1fc3 Best Friends: Fix parsing for users with waiting time (#696) 2016-11-17 18:57:34 +01:00
kaso17
3f79aa62d9 TorrentHeaven: Make captcha optional and fix login detection (#693) 2016-11-17 07:06:47 +01:00
kaso17
cd1d30fc4f TorrentHeaven: Use long title (#688) 2016-11-16 09:05:23 +01:00
kaso17
3093651f89 The New Retro: fix date parsing (#687) 2016-11-16 08:51:27 +01:00
kaso17
d969305cbe Cardigann: Add support for timeparse/dateparse filters (#686) 2016-11-16 08:45:32 +01:00
kaso17
22119dab16 Add The New Retro tracker (#685) 2016-11-15 19:37:13 +01:00
kaso17
23958ffba7 bB: add new attributes and login again if necessary (#684) 2016-11-15 17:50:22 +01:00
kaso17
d9673501fc Add HD4Free tracker (#683) 2016-11-15 09:17:55 +01:00
kaso17
f9341818da Merge branch 'master' of https://github.com/Jackett/Jackett.git 2016-11-15 08:32:56 +01:00
kaso17
22ab8aca3d DateTimeUtil: Improve FromUnknown parsing 2016-11-15 08:32:40 +01:00
kaso17
dd79de1321 IPTorrents: Add ipt-update.com as alternative and make it the default (#682)
* IPTorrents: Add iptorrents.eu alternative

* Add ipt-update.com as alternative and make it the default

* Add ipt-update.com as alternative and make it the default
2016-11-14 08:34:06 +01:00
kaso17
d8035d4245 UHDBits: add tab filter for URLs 2016-11-14 08:29:30 +01:00
kaso17
4642fa4da0 IPTorrents: Add iptorrents.eu alternative (#678) 2016-11-13 10:23:42 +01:00
kaso17
58ee30aa99 Fix Cardigann definition loading if HOME is not set (#673) 2016-11-10 18:24:35 +01:00
kaso17
5922795587 Fix NULL check for #668 (#672) 2016-11-10 09:16:00 +01:00
kaso17
5eccf08690 IIndexerManagerService: fix typo (#671) 2016-11-10 09:10:16 +01:00
kaso17
037d907028 Make the config saving process more robust (#670) 2016-11-10 09:06:35 +01:00
kaso17
7cfdaf4b41 Make cookie merging more robust (#669) 2016-11-10 08:37:52 +01:00
kaso17
e7918bddbc Add Windows support for the IgnoreSslErrors option (#594) 2016-11-09 18:26:32 +01:00
kaso17
6b253178b6 Transmitthe.Net: add support for new attributes (files/grabs/down-/up-loadvolumefactor) (#665) 2016-11-09 08:58:17 +01:00
kaso17
87448eea31 GetBytes(): add support for TB and default to bytes (#666)
* Default to Bytes if there's no unit

* GetBytes(): add support for TB
2016-11-09 08:57:59 +01:00
kaso17
5e2fa1408e AnimeTorrents: Fix DL link for newbie users (#657) 2016-11-08 06:59:47 +01:00
kaso17
809362e08c Dump DL response if there's an error (#653) 2016-11-06 18:14:15 +01:00
kaso17
c8831b157e TorrentBytes: Login again if the cookies became invalid (#651) 2016-11-06 17:41:22 +01:00
kaso17
2198aebf73 Demonoid: Fix login (#648) 2016-11-05 20:05:45 +01:00
kaso17
f3f8c2aea5 AnimeTorrents: Skip releases which newbie user's can't download yet (#647) 2016-11-05 19:33:44 +01:00
kaso17
83c231749d IPTorrents: Add support for optional captcha (#645) 2016-11-05 19:25:38 +01:00
kaso17
79f3b96c1d XSpeeds: Fix empty search results (#646) 2016-11-05 19:22:32 +01:00
darknessgp
fb1c016704 Comicbooks id is now 7 at Bb. (#640)
Changes the comic book id to use category id 7 to match Bb site.
2016-11-05 18:51:21 +01:00
d2dyno
a3febf8b85 Detailed Windows install help (#642)
Add more detailed instructions for installing on Windows
2016-11-05 18:50:51 +01:00
kaso17
254cec98ad Update XSpeeds categories (#639) 2016-11-04 18:59:58 +01:00
kaso17
9a2ae6aa24 Add missing animetorrents logo (#638) 2016-11-04 18:36:33 +01:00
kaso17
840037aa7f Don't try to unistall service if it isn't installed (#637) 2016-11-04 18:31:19 +01:00
kaso17
dd24f12eac Fix TorrentDay categories (#636) 2016-11-04 18:26:58 +01:00
Jay Otterbein
d1e767bd41 Added method in ParseUtil that strips out every invalid XML character from a string.
Added test for ParseUtil.RemoveInvalidXmlChars() using a snippet of rss from XSeeds that was originally causing problems.
2016-11-04 18:26:39 +01:00
Jay Otterbein
72d3f2ea49 normalized line endings and removed unused usings 2016-11-04 18:26:39 +01:00
Jay Otterbein
5e8e620df9 Code cleanup without changing logic 2016-11-04 18:26:39 +01:00
Jay Otterbein
0a61887474 Removed unused usings 2016-11-04 18:26:39 +01:00
kaso17
2002b9db9d Fix Shareisland encoding and categories (#630) 2016-11-02 20:15:19 +01:00
kaso17
e54e99d8d6 Add Shareisland tracker (#629) 2016-11-02 19:18:33 +01:00
kaso17
c3a5c7afa3 DateTimeUtils: Add support for parsing unix timestamps (#628) 2016-11-02 19:04:56 +01:00
kaso17
6f38081cf1 Cardigann fixes (#627)
* Cardigann: Fix url parsing for absolut urls

* Cardigann: normalize selector result value

* Add support for parsing unix Timestamps

* Revert "Add support for parsing unix Timestamps"

This reverts commit dba033b5a5.
2016-11-02 19:02:39 +01:00
kaso17
58b35b290b Update README.md
Add mono package details
2016-11-02 08:23:35 +01:00
kaso17
8c1086719d Improve error handling on corrupt indexer config files (#624) 2016-11-01 23:13:59 +01:00
kaso17
4074ae197b Add WorldOfP2P tracker 2016-11-01 22:50:38 +01:00
kaso17
3381d67565 Fix Cardigann querystring filter 2016-11-01 22:50:38 +01:00
kaso17
e3c7f3de28 Add support for parsing AM/PM TimeSpans 2016-11-01 22:50:38 +01:00
kaso17
70dfe3a021 Use long title from tooltip if available 2016-11-01 19:52:33 +01:00
kaso17
377dc3f586 Fix Xspeeds torrents with >= 1000 seeders/leechers 2016-11-01 19:52:33 +01:00
kaso17
b1a4a98563 ImmortalSeed: Add support for torrents without tooltip (#620) 2016-11-01 19:51:27 +01:00
kaso17
366b1ff80b Support XSpeeds releases without tooltip (#619) 2016-11-01 19:01:23 +01:00
kaso17
05abb0151e Update CloudFlareUtilities to version 0.3.3 (#618) 2016-11-01 19:01:13 +01:00
kaso17
1bf52b8c1e Add support for SXXEXX search (#615) 2016-11-01 09:22:52 +01:00
kaso17
f0a302f7f4 Fix group_torrent files parsding (#614) 2016-11-01 08:55:49 +01:00
kaso17
a027bfae54 Change TorrentShack to HTTPS (#607) 2016-10-30 20:36:03 +01:00
kaso17
6576770fa0 Add Grabs/DownloadVolumeFactor/UploadVolumeFactor attributes to AnimeTorrents 2016-10-30 20:27:14 +01:00
kaso17
45f6b9f768 Allow empty DL links to support newbie users 2016-10-30 20:27:14 +01:00
kaso17
3dc7aabb6e Add UHDBits tracker (#605) 2016-10-30 20:13:50 +01:00
kaso17
0f5e18492c Load definitions from multiple directories 2016-10-30 19:46:50 +01:00
kaso17
2f140fd2c0 use full exception 2016-10-30 19:46:50 +01:00
kaso17
661c5f2120 Fix UploadVolumeFactor 2016-10-30 19:46:50 +01:00
kaso17
28043e0070 Add support for Case selectors 2016-10-30 19:46:50 +01:00
kaso17
e6bf8918a3 add support for new attributes 2016-10-30 19:46:50 +01:00
kaso17
4737abcf58 remove debugging 2016-10-30 19:46:50 +01:00
kaso17
f7d96c108a default to POST login 2016-10-30 19:46:50 +01:00
kaso17
96017dd3bc Update AngleSharp (#603)
* Update AngleSharp
2016-10-30 17:54:40 +01:00
kaso17
94fd201507 Update AngleSharp (#602) 2016-10-30 17:51:04 +01:00
Jason Light
3dbe5774d7 Re-added AnimeTorrents (#600)
* Fixed cookies not ending in ";" being ignored.
* Re-add AnimeTorrents tracker

* Forgot Project File ~_~

* Updated README.md
2016-10-30 16:24:49 +01:00
kaso17
0a577e64d1 Fix TorrentLeech (#599) 2016-10-30 13:21:32 +01:00
kaso17
64bed2a8b3 Add BJ-Share tracker (#596) 2016-10-29 22:14:38 +02:00
kaso17
2b9b4282f4 Gracefully fail on Cardigann definitions Exceptions (#595) 2016-10-29 18:01:43 +02:00
kaso17
595f006f22 Change definition to Content (#593)
* Change definition to Content

This might fix the System.IO.DirectoryNotFoundException: Directory '.../Definitions' not found issues.
2016-10-29 17:29:13 +02:00
saffroncanoe
0abec9c1b6 Fix IPTorrents POST url (#587) 2016-10-28 07:51:50 +02:00
kaso17
6867c4a234 Add HDME logo 2016-10-27 20:22:54 +02:00
kaso17
4d2759bcd2 Add support for categories to TorrentShack (#585)
* Add support for categories to TorrentShack
2016-10-27 19:25:37 +02:00
kaso17
982c3df1ac Add support for categories to HD-Space (#584)
* Add support for categories to HD-Space
2016-10-27 18:50:58 +02:00
kaso17
3dfe2faa6b Add new attributes to various trackers (#583)
* Use AvistazTracker base

* Revert "Use AvistazTracker base"

This reverts commit 9eba02c758.

* Add new attributes to various trackers

* more DL factors for HDSpace

* new attributes for Fuzer

* add new attributes for ImmortalSeed

* set UploadVolumeFactor for myAmity

* add new attributes to bitmetv
2016-10-27 18:35:31 +11:00
kaso17
21cffe2d35 Add basic support for Cardigann definitions (#571)
* Add basic support for Cardigann definitions

* Add HDME definition

* Fix tests

* support split with negative indexes

* allow FromTimeAgo formats without spaces betwen value and unit

Example: 2h 3m

* Add basic support for Cardigann definitions

* Add HDME definition

* Fix tests

* support split with negative indexes

* allow FromTimeAgo formats without spaces betwen value and unit

Example: 2h 3m
2016-10-27 18:30:03 +11:00
kaso17
fa9bbaa18c Fix ConfigurationDataRecaptchaLogin usage (#579)
Use the existing/loaded configData instead of using blank instances.
2016-10-27 18:26:11 +11:00
kaso17
769ceb016f Use AvistazTracker base (#582) 2016-10-26 17:00:22 +02:00
kaso17
51cb8762b1 Allow AlternateLink configuration for TorrentDay (#577)
* Allow AlternateLink configuration for TorrentDay

* Allow AlternateLink configuration for TorrentDay
2016-10-26 04:25:51 +02:00
RageInvader
f04a97f237 Update TorrentDay.cs (#576) 2016-10-25 19:04:55 +02:00
kaso17
2a020f691c Add missing torznab attributes files, grabs, downloadvolumefactor, uploadvolumefactor (#565)
* Add missing torznap attributes files, grabs, downloadvolumefactor, uploadvolumefactor

* Fix typo
2016-10-25 18:40:46 +02:00
kaso17
5abdd35e1f Allow _, (, ) characters in the search query (#566) 2016-10-25 10:56:13 +02:00
larsjohnsen
5a04e66abe Manual search: Focus text field when opened (#568) 2016-10-25 10:07:31 +02:00
kaso17
0c02c22654 Make TorrentBytes row selector more rebust (#573) 2016-10-25 09:41:30 +02:00
kaso17
cd68d06dc3 Strip special chars from XSpeeds RSS feed (#564) 2016-10-25 09:30:58 +02:00
kaso17
465e607415 Fix ImmortalSeed login (#563) 2016-10-25 08:49:35 +02:00
kaso17
cbf6e45f64 Several small fixes (#562)
* Fix PreToMe search results if no category is specified

* AND filter Andraste results

* AND filter Best Friends results

* AND filter Bit City Reloaded results

* AND filter Freshon results

* AND filter myAmity results

* AND filter SceneTime results

* AND filter NewRealWorld results

* Remove dashes from TorrentLeech queries as they exclude search strings
2016-10-25 08:46:06 +02:00
TouchMyBox
c95d5fd9e2 add digitalhive to Jackett.csproj (#556) 2016-10-17 09:10:46 +02:00
kaso17
5991fd62c1 Update CloudFlareUtilities to version 0.3.2-alpha and remove the UnixLibCurlWebClient reflections and add DigitalHive tracker (#553)
* Update CloudFlareUtilities to 0.3.2-alpha

* Remove CloudFlareUtilities reflections

With CloudFlareUtilities version 0.3.2-alpha reflections are no longer needed

* Add DigitalHive tracker
2016-10-16 16:09:49 +02:00
kaso17
5384f85b5a Allow CloudFlareUtilities loading to fail (#547) 2016-10-12 21:32:41 +02:00
Don Fanning
c33315f59c update demonoid url (#541)
just updating the demonoid url to the current.
2016-10-08 19:00:06 +02:00
kaso17
7eaff55955 Support CloudFlare challenges with mono/libcurl (#538)
* Add CloudFlare support for the libcurl WebClient

* Save config if cookies are updated

If the cookieheader/config isn't updated with e.g. the cf_clearance cookie jackett has to recompute the challenge on every request.
2016-10-07 08:50:15 +02:00
Scott McKenzie
71414b805b Fix typo in SaveConfig (#532) 2016-10-01 19:53:43 +02:00
kaso17
50a06f640f Add SceneTime captcha support (#529)
* Add optional instruction message to RecaptchaLogin

* Add recaptcha support for Scene Time

* Fix Scene Time captcha handling from a remote host
2016-09-29 21:09:20 +02:00
d2dyno
6cab5fbba8 Update Demonoid URL (#527)
Update Demonoid URL. Fix for #522
2016-09-29 21:07:32 +02:00
kaso17
66e3f8eea5 Add TorrentHeaven, Andraste, Torrent Network, myAmity trackers and remove PtN AND filtering (#520)
* Add TorrentHeaven tracker

* Add Andraste tracker

* Remove PtN AND filtering

Not needed anymore.
The torrent search is now using AND by default

* Add Torrent Network tracker

* Add myAmity tracker
2016-09-22 12:27:35 +02:00
kaso17
a26e07210f Add House-of-Torrents, Best Friends New Real World trackers and fix HeBits encoding (#519)
* Add House-of-Torrents tracker

* Add Best Friends tracker

* Fix Hebits encoding

* Add New Real World tracker
2016-09-20 18:41:39 +02:00
flightlevel
e612a826d0 Merge pull request #516 from kaso17/master
Add support for AND filtering search results, use it for the PtN indexer, fix an AvistaZ exception, improve TVChaos UK search, add FunFile tracker
2016-09-19 21:09:20 +10:00
kaso17
4d2240ec6e Fix newznab_api_specification.txt link 2016-09-18 16:31:30 +02:00
kaso17
50fb9ccb5f EuTorrents is now CinemaZ 2016-09-18 16:27:21 +02:00
kaso17
28d3f22fef Add FunFile Tracker 2016-09-18 16:22:59 +02:00
kaso17
8612387e39 Add support for "wk" and "hr" ago format 2016-09-18 16:22:43 +02:00
kaso17
7d93361839 Use wildcards in TVChaos UK search queries
The TVChaos UK search requires an exact match of the search string.
But it seems like they just send the unfiltered search to the SQL server in a like query (LIKE '%$searchstring%').
So we replace any whitespace/special character with % to make the search more usable.
2016-09-18 14:23:04 +02:00
kaso17
9c7ce468ee Fix AvistaZ exception 2016-09-16 19:25:53 +02:00
kaso17
1ad0e93d01 AND filter the title to avoid getting unwanted results 2016-09-16 19:05:10 +02:00
kaso17
b53cbce24a Add MatchQueryStringAND() to AND filter search result titles 2016-09-16 19:03:54 +02:00
kaso17
087635f22a Add reCAPTCHA API version 1 support and add x264 tracker (#507)
* Add reCAPTCHA API version 1 support

* Add x264 tracker
2016-09-13 14:15:51 +02:00
kaso17
0263a5f869 euTorrents is now CinemaZ and PtN/HeBits title bug fix (#498)
* Always return the full release name.

* euTorrents is now CinemaZ

* fix HeBits title parsing

Should fix #500
2016-09-11 19:52:51 +02:00
flightlevel
b910e42668 Merge pull request #495 from flightlevel/germantime
German Time
2016-09-09 15:36:30 +10:00
flightlevel
33b3740fca German Time
German Time on Mono
2016-09-09 15:34:28 +10:00
flightlevel
6d1d78cb92 Merge pull request #494 from flightlevel/german_time
German Timezone
2016-09-09 15:14:04 +10:00
flightlevel
d4c9c6d82b German Timezone
Mono doesn't seem to like Windows Timezone names
2016-09-09 15:11:44 +10:00
flightlevel
485d2705b5 Merge pull request #493 from kaso17/master
Add Torrent-Syndikat, Bit-City Reloaded and PirateTheNet trackers and fix AvistaZ based trackers
2016-09-09 14:50:57 +10:00
kaso17
ecd2b33dfc Add PirateTheNet tracker 2016-09-08 16:52:08 +02:00
kaso17
c12736716d fix AvistaZ tracker 2016-09-07 19:46:03 +02:00
kaso17
c0bdedbae1 Add Bit-City Reloaded tracker 2016-09-07 17:34:36 +02:00
kaso17
2abf4f0ee6 Add Torrent-Syndikat tracker 2016-09-07 14:00:25 +02:00
flightlevel
1fdd165d2e CloudFlare support for Windows (#489)
CloudFlare support for Windows
2016-09-06 21:55:18 +10:00
kaso17
55818f9cb6 Add Ghost City tracker (#488) 2016-09-06 21:50:16 +10:00
betamax2021
a4c670df78 Added Indexer BakaBT (#482) 2016-09-04 18:25:33 +10:00
flightlevel
c8d558c1eb Add BakaBT (#484)
Add BakaBT
2016-09-04 18:24:21 +10:00
flightlevel
f56b51e9e3 TorrentDay: Add HEVC category (#483)
TorrentDay: Add HEVC category
2016-09-04 18:24:02 +10:00
flightlevel
2e966b674c PTP: Add logo (#480)
PTP: Add logo
2016-09-03 12:12:22 +10:00
Mike
aa1e31a110 Rewrote MoreThanTV indexer (#477)
* MTV: Rewrote searching for torrents. Modified title output so sonarr can actually download seasons.

* MTV: Add individual torrent parsing and cleanup.

* MTV: Remove TODO as it's already done.
2016-09-03 12:04:08 +10:00
d2dyno
79418d3b1f Update screenshot (#472)
Use screenshot from more recent version.
2016-08-26 20:12:25 +02:00
d2dyno
76f01273d3 HDSpace category mappings (#469)
* HDSpace category mappings

Add category mappings for HDSpace.

* Fix derp

Remove plus signs (from sloppy copy) and extra comas.

* Fix typo and comma
2016-08-26 18:22:02 +10:00
flightlevel
ef99687187 AlphaRatio: Fix Time (#471)
AlphaRatio: Fix Time
2016-08-26 17:21:04 +10:00
flightlevel
5d03e6ec99 PrivateHD: Date Parsing (#470)
PrivateHD: Date Parsing
2016-08-26 16:27:46 +10:00
flightlevel
3e9165ce4a TorrentDay: Add IMDB search (#466)
TorrentDay: Add IMDB search
2016-08-24 23:02:25 +10:00
flightlevel
2a7a950d63 PrivateHd: Fix parsing (#465)
PrivateHd: Fix parsing
2016-08-24 22:39:26 +10:00
flightlevel
d3d78e48cb TorrentLeech: Add setup info (#460)
TorrentLeech: Add setup info
2016-08-22 20:47:36 +10:00
flightlevel
791471a716 Update Packages (#459)
* Revert "Update packages (#453)"

This reverts commit 593c2f083e.

* Package Update

Package Update
2016-08-22 20:37:49 +10:00
flightlevel
7f7f6680b2 Animebytes: Fix warning (#455)
Animebytes: Fix warning
2016-08-20 19:52:39 +10:00
flightlevel
128591d355 TTN: Fix Parsing (#454)
TTN: Fix Parsing
2016-08-20 19:44:02 +10:00
flightlevel
593c2f083e Update packages (#453)
Update packages
2016-08-20 19:29:26 +10:00
flightlevel
7743267501 Remove FrenchAdn (#452)
Remove FrenchAdn
2016-08-20 18:30:14 +10:00
flightlevel
268f5a8ae5 Demonoid: Fix Parsing (#451)
Demonoid: Fix Parsing
2016-08-20 18:16:59 +10:00
flightlevel
121736358b Revert "Pretome: Remove" (#446) 2016-08-18 20:55:58 +10:00
flightlevel
1b0ea00c88 TTN: Update Login (#445)
TTN: Update Login
2016-08-18 17:29:56 +10:00
flightlevel
4be1c19c50 Enter to search (#444)
Enter to search
2016-08-18 17:23:43 +10:00
flightlevel
aa55849e62 Pretome: Remove (#443)
Pretome: Remove
2016-08-18 17:09:16 +10:00
flightlevel
1d2093fc32 Bluetigers: Add category (#442)
Bluetigers: Add category
2016-08-18 16:15:50 +10:00
flightlevel
5a5d83e5c1 Remove Phxbit (#441)
Remove Phxbit
2016-08-18 16:05:58 +10:00
flightlevel
155632e85d IPT: Update Parsing (#440)
IPT: Update Parsing
2016-08-18 16:05:32 +10:00
Joel Gillman
cac185f747 Update README.md for Linux/OSX installation (#424) 2016-08-05 21:58:56 +10:00
Thomas Gillen
6d0d502bd3 Add music categories to AnimeBytes indexer (#418) 2016-08-05 21:58:29 +10:00
Superpiffer
ccde6fb53b TorrentLeech: Fix login (#412) (#414)
* Fix login #412

* Update TorrentLeech.cs
2016-08-05 21:57:43 +10:00
flightlevel
2afce9f2d9 BeyondHD; Fix Recaptcha (#409)
BeyondHD; Fix Recaptcha
2016-07-27 14:50:53 +10:00
flightlevel
2647457706 SpeedCd: Update URL (#408)
SpeedCd: Update URL
2016-07-27 14:14:57 +10:00
kobik
ac5e69a3b2 New indexer - Hebits.net (#406)
* Added Hebits.net as an indexer - a private Israel tracker

* Added new indexer Hebits to the readme file

* Deleted debug messages leftovers
2016-07-27 14:08:06 +10:00
d2dyno
45fb2a27c3 Updated BeyondHD URL (#390)
Updated BeyondHD to new URL.
2016-07-04 21:58:33 +10:00
Umur Kontacı
fb3d7ae81b Fix builds on case-sensitive filesystems (#377) 2016-06-26 20:32:48 +10:00
Codehhh
9b62e8af71 Add PTP as a new Indexer (#373)
* Added PassThePopcorn Indexer

* Fixed PTP Indexer
2016-06-23 20:34:19 +10:00
flightlevel
3f292b5e47 Freshon: Fix Urls (#374)
Freshon: Fix Urls
2016-06-23 20:28:08 +10:00
Chris Mattera
bd2abddb09 Modified to use new download URL format (#369) 2016-06-21 19:28:55 +10:00
Joel Gillman
5135748d1d Update "issues page" link in README (#358)
The "issues page" link in the Contributing section was pointing to the old repo! I just updated.
2016-06-08 08:53:38 +02:00
flightlevel
0fc3d224ab Allow Custom Data Folder (#355)
Allow Custom Data Folder
2016-05-28 19:40:55 +10:00
flightlevel
ac07cc34cd SpeedCD: Fix Login (#354)
SpeedCD: Fix Login
2016-05-28 19:40:39 +10:00
flightlevel
3730e05f20 TorrentDay: Add Audio (#353)
TorrentDay: Add Audio
2016-05-28 19:40:16 +10:00
flightlevel
2644fd813e Bluetigers fix SSL issue (#346) 2016-05-18 20:33:37 +10:00
flightlevel
ece16d1075 TransmitheNet: Fix Titles with extension (#343) 2016-05-17 23:25:26 +10:00
Fredrik Löwenhamn
3b13fa84a4 Fixed saving alphaRatio json (#342) 2016-05-17 23:04:15 +10:00
flightlevel
cda5ea3207 Update README.md 2016-05-14 22:44:49 +10:00
flightlevel
0746616b43 Revert "SSL Fix by default, Now use TLS (1.2, 1.1, 1) by default" (#339) 2016-05-14 22:42:16 +10:00
JigSaw
28199ab4be SSL Fix by default, Added support of TLS 1.1 & 1.2 (#337)
* SSL Fix by default, Now use TLS (1.2, 1.1, 1) by default
* Workaround to use TLS 1.2 & 1.1 on Mono < 4.3
2016-05-14 00:46:56 +02:00
JigSaw
b29c578adb Fixed FADN Provider (#336)
New Search Engine Template
2016-05-13 23:41:10 +02:00
smarshallsay
b42f2a0972 Deal with carriage return in date string (#325) 2016-04-30 21:48:52 +10:00
hex
040deb2bfb Added SceneFZ tracker (#319)
* Added SceneFZ tracker
* SceneFZ tracker new logo size and updated README
2016-04-26 12:40:54 +02:00
flightlevel
ef8b4e685e Update README.md 2016-04-20 20:14:55 +10:00
flightlevel
364860199c Merge pull request #316 from flightlevel/ttn_url2
TTN: Update search string
2016-04-20 20:11:55 +10:00
flightlevel
3f2a6fd3f7 Merge pull request #313 from coolius/myanonamouse
Added MyAnonamouse tracker
2016-04-19 21:37:15 +10:00
flightlevel
2671cf00e0 Merge pull request #312 from coolius/ipt_alternatelink
Added AlternateLink to IPTorrents
2016-04-19 20:38:20 +10:00
coolius
6a6941d01c Copy myanonamouse logo to output directory 2016-04-18 15:22:50 +01:00
coolius
5b3862bc3d Added MyAnonamouse tracker 2016-04-18 15:02:15 +01:00
coolius
0452f5ad06 Added AlternateLink to IPTorrents 2016-04-18 14:42:53 +01:00
flightlevel
264fc995b2 Merge pull request #307 from flightlevel/ttn_url
TTN: Update search url
2016-04-13 21:51:34 +10:00
flightlevel
acc75acb9c TTN: Update search url
TTN: Update search url
2016-04-13 21:33:14 +10:00
JigSaw
a5b1332f95 Optimized & Fixed FADN Provider
LoginCheck, New Logo, Optimized
2016-04-05 14:52:35 +02:00
JigSaw
8871a631b1 Fix Manga Anime Category for PhxBit Provider
Wrong category fixed
2016-04-03 20:55:37 +02:00
JigSaw
bfb58f53f5 Xthor Provider
French Private Tracker
2016-04-03 20:31:44 +02:00
JigSaw
d14717c88e Merge pull request #294 from JigSawFr/providers/phxbit-fix
Download FIX for PhxBit
2016-04-03 18:57:23 +02:00
JigSawFr
d8ff110d8b DownloadBase & DownloadUrl FIX for PHX 2016-04-03 18:46:46 +02:00
flightlevel
23737d3b19 Add Fuzer to readme 2016-04-01 22:39:37 +11:00
flightlevel
b11516760b Merge pull request #288 from OneBigGuy/master
Add Fuzer.me tracker
2016-04-01 22:38:47 +11:00
JigSaw
3a7f8ce268 Merge pull request #291 from JigSawFr/readme-fix
Cleanup README
2016-03-30 09:37:57 +02:00
JigSawFr
7a5b2e5c6a Cleanup README 2016-03-30 09:36:59 +02:00
OneBigGuy
ead129eda9 Add Fuzer.me tracker 2016-03-30 10:10:46 +03:00
JigSaw
b7cd0aeca8 Merge pull request #290 from Jackett/providers/phxbit
PhxBit Provider
2016-03-30 00:14:56 +02:00
JigSawFr
708b45b02f PHXBIT Provider 2016-03-29 23:54:19 +02:00
OneBigGuy
75f4342499 Merge https://github.com/Jackett/Jackett 2016-03-27 16:51:15 +03:00
OneBigGuy
24ad51ad15 Add Fuzer.me tracker 2016-03-27 16:50:02 +03:00
flightlevel
ecc3dd26db Merge pull request #284 from Jackett/revert-273-freshon--refactor
Revert "Freshon: Use AngleSharp for parsing"
2016-03-25 10:29:05 +11:00
flightlevel
aecee29219 Revert "Freshon: Use AngleSharp for parsing" 2016-03-25 10:16:35 +11:00
685 changed files with 63155 additions and 18254 deletions

15
.gitattributes vendored Normal file
View File

@@ -0,0 +1,15 @@
# 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
# Declare files that will always have CRLF line endings on checkout.
*.cs text eol=crlf
# Denote all files that are truly binary and should not be modified.
*.png binary
*.jpg binary

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

@@ -0,0 +1,9 @@
**Please use the search bar** at the top of the page and make sure you are not creating an already submitted issue. Duplicating issues makes it more difficult for everyone to follow. Your issue may have already been solved in the past as well.
Provide a description of the feature request or bug, the more details the better.
If you are experiencing an issue with a tracker, a **full log must be included**. Instructions for obtaining logs are here: https://github.com/Jackett/Jackett#troubleshooting
**Jackett version**:
**Mono version** (if not using Windows):
-------------------------------

BIN
.github/firefox-socks-proxy-settings.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

BIN
.github/label-inviteneeded.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

BIN
.github/putty-tunnels-settings.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

8
.gitignore vendored
View File

@@ -194,6 +194,8 @@ FakesAssemblies/
# Visual Studio 6 workspace options file
*.opt
/Build.mono
/Build.windows
/Output
/tools
/BuildOutput
/Artifacts
/TestResults
*.DS_Store

View File

@@ -1,37 +0,0 @@
rmdir /s /q build.windows
rmdir /s /q build.mono
rmdir /s /q Output
cd src
Msbuild Jackett.sln /t:Clean,Build /p:Configuration=Release /verbosity:minimal
cd ..
xcopy src\Jackett.Console\bin\Release build.windows\ /e /y
copy /Y src\Jackett.Service\bin\Release\JackettService.exe build.windows\JackettService.exe
copy /Y src\Jackett.Service\bin\Release\JackettService.exe.config build.windows\JackettService.exe.config
copy /Y src\Jackett.Tray\bin\Release\JackettTray.exe build.windows\JackettTray.exe
copy /Y src\Jackett.Tray\bin\Release\JackettTray.exe.config build.windows\JackettTray.exe.config
copy /Y src\Jackett.Updater\bin\Release\JackettUpdater.exe build.windows\JackettUpdater.exe
copy /Y src\Jackett.Updater\bin\Release\JackettUpdater.exe.config build.windows\JackettUpdater.exe.config
copy /Y LICENSE build.windows\LICENSE
copy /Y README.md build.windows\README.md
cd src
Msbuild Jackett.sln /t:Clean
call "C:\Program Files (x86)\Mono\bin\xbuild.bat" Jackett.sln /t:Build /p:Configuration=Release /verbosity:minimal
cd ..
xcopy src\Jackett.Console\bin\Release build.mono\ /e /y
copy /Y src\Jackett.Service\bin\Release\JackettService.exe build.mono\JackettService.exe
copy /Y src\Jackett.Service\bin\Release\JackettService.exe.config build.mono\JackettService.exe.config
copy /Y src\Jackett.Tray\bin\Release\JackettTray.exe build.mono\JackettTray.exe
copy /Y src\Jackett.Tray\bin\Release\JackettTray.exe.config build.mono\JackettTray.exe.config
copy /Y src\Jackett.Updater\bin\Release\JackettUpdater.exe build.mono\JackettUpdater.exe
copy /Y src\Jackett.Updater\bin\Release\JackettUpdater.exe.config build.mono\JackettUpdater.exe.config
copy /Y LICENSE build.mono\LICENSE
copy /Y README.md build.mono\README.md
copy /Y Upstart.config build.mono\Upstart.config
iscc Installer.iss

View File

@@ -2,7 +2,7 @@
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!
#define MyAppName "Jackett"
#define MyAppVersion GetFileVersion("build.windows/Jackett.dll")
#define MyAppVersion GetFileVersion("BuildOutput\FullFramework\Windows\Jackett\Jackett.Common.dll")
#define MyAppPublisher "Jackett Inc."
#define MyAppURL "https://github.com/Jackett/Jackett"
#define MyAppExeName "JackettTray.exe"
@@ -22,7 +22,7 @@ AppUpdatesURL={#MyAppURL}
DefaultDirName={pf}\{#MyAppName}
DefaultGroupName={#MyAppName}
DisableProgramGroupPage=yes
OutputBaseFilename=setup
OutputBaseFilename=Jackett.Installer.Windows
SetupIconFile=src\Jackett.Console\jackett.ico
UninstallDisplayIcon={commonappdata}\Jackett\JackettConsole.exe
Compression=lzma
@@ -37,9 +37,9 @@ Name: "windowsService"; Description: "Install as a Windows Service"
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked
[Files]
Source: "build.windows\JackettTray.exe"; DestDir: "{commonappdata}\Jackett"; Flags: ignoreversion
Source: "build.windows\JackettUpdater.exe"; DestDir: "{commonappdata}\Jackett"; Flags: ignoreversion
Source: "build.windows\*"; DestDir: "{commonappdata}\Jackett"; Flags: ignoreversion recursesubdirs createallsubdirs
Source: "BuildOutput\FullFramework\Windows\Jackett\JackettTray.exe"; DestDir: "{commonappdata}\Jackett"; Flags: ignoreversion
Source: "BuildOutput\FullFramework\Windows\Jackett\JackettUpdater.exe"; DestDir: "{commonappdata}\Jackett"; Flags: ignoreversion
Source: "BuildOutput\FullFramework\Windows\Jackett\*"; DestDir: "{commonappdata}\Jackett"; Flags: ignoreversion recursesubdirs createallsubdirs
; NOTE: Don't use "Flags: ignoreversion" on any shared system files
[Icons]

492
README.md
View File

@@ -1,102 +1,390 @@
## Jackett
This project is a new fork and is recruiting development help. If you are able to help out please contact us.
Jackett works as a proxy server: it translates queries from apps (Sonarr, SickRage, CouchPotato, Mylar, etc) into tracker-site-specific http queries, parses the html response, then sends results back to the requesting software. This allows for getting recent uploads (like RSS) and performing searches. Jackett is a single repository of maintained indexer scraping & translation logic - removing the burden from other apps.
Developer note: The software implements the [Torznab](https://github.com/Sonarr/Sonarr/wiki/Implementing-a-Torznab-indexer) (with [nZEDb](https://github.com/nZEDb/nZEDb/blob/master/docs/newznab_api_specification.txt) category numbering) and [TorrentPotato](https://github.com/RuudBurger/CouchPotatoServer/wiki/Couchpotato-torrent-provider) APIs.
#### Supported Systems
* Windows using .NET 4.5
* Linux and OSX using Mono 4 (v3 should work but you may experience crashes).
#### Supported Private Trackers
* Abnormal
* AlphaRatio
* AnimeBytes
* Avistaz
* bB
* BeyondHD
* BIT-HDTV
* BitMeTV
* BitSoup
* BlueTigers
* BTN
* DanishBits
* Demonoid
* EuTorrents
* FileList
* Fnt
* French-ADN
* Freshon
* HD-Space
* HD-Torrents
* Hounddawgs
* ILoveTorrents
* Immortalseed
* IPTorrents
* MoreThanTV
* NCore
* NextGen
* Pretome
* PrivateHD
* RevolutionTT
* SceneAccess
* SceneTime
* Shazbat
* SpeedCD
* TehConnection
* TorrentBytes
* TorrentDay
* TorrentLeech
* TorrentShack
* TV Chaos UK
* World-In-HD
* XSpeeds
#### Installation on Windows
We recommend you install Jackett as a Windows service using the supplied installer. When installed as a service the tray icon acts as a way to open/start/stop Jackett. If you opted to not install it as a service then Jackett will run its web server from the tray tool.
Jackett can also be run from the command line using JackettConsole.exe if you would like to see log messages (Ensure the server isn't already running from the tray/service).
#### Installation on Linux/OSX
1. Install [Mono 4](http://www.mono-project.com/download/) or better
2. Install libcurl:
* Debian/Ubunutu: apt-get install libcurl-dev
* Redhat/Fedora: yum install libcurl-devel
* For other distros see the [Curl docs](http://curl.haxx.se/dlwiz/?type=devel).
3. Download and extract the latest ```.tar.gz``` release from the [releases page](https://github.com/Jackett/Jackett/releases) and run Jackett using mono with the command "mono JackettConsole.exe".
Detailed instructions for [Ubuntu 14.x](http://www.htpcguides.com/install-jackett-on-ubuntu-14-x-for-custom-torrents-in-sonarr/) and [Ubuntu 15.x](http://www.htpcguides.com/install-jackett-ubuntu-15-x-for-custom-torrents-in-sonarr/)
#### Installation on Synology
Jackett is available as beta package from [SynoCommuniy](https://synocommunity.com/)
#### Troubleshooting
* Command line switches
You can pass various options when running via the command line, see --help for details.
* Unable to connect to certain trackers on Linux
Try running with the "--SSLFix true" if you are on Redhat/Fedora/NNS based libcurl. If the tracker is currently configured try removing it and adding it again. Alternatively try running with a different client via --UseClient (Warning: safecurl just executes curl and your details may be seen from the process list). You can also try running with the "--IgnoreSslErrors true" option which is useful if the site has an invalid SSL certificate.
* Enable logging
You can get additional logging with the switches "-t -l". Please post logs if you are unable to resolve your issue with these switches ensuring to remove your username/password/cookies.
#### Creating an issue
Please supply as much information about the problem you are experiencing as possible. Your issue has a much greater chance of being resolved if logs are supplied so that we can see what is going on. Creating an issue with '### isn't working' doesn't help anyone to fix the problem.
### Contributing
All contributions are welcome just send a pull request. Jackett's framework allows our team (and any other volunteering dev) to implement new trackers in an hour or two. If you'd like support for a new tracker but are not a developer then feel free to leave a request on the [issues page](https://github.com/zone117x/Jackett/issues). It is recommended to use Visual studio 2015 when making code changes in this project. We currently only support private trackers.
### Screenshots
![screenshot](http://i.imgur.com/t1sVva6.png "screenshot")
# Jackett
[![GitHub issues](https://img.shields.io/github/issues/Jackett/Jackett.svg?maxAge=60&style=flat-square)](https://github.com/Jackett/Jackett/issues)
[![GitHub pull requests](https://img.shields.io/github/issues-pr/Jackett/Jackett.svg?maxAge=60&style=flat-square)](https://github.com/Jackett/Jackett/pulls)
[![Bountysource](https://img.shields.io/bountysource/team/jackett/activity.svg?style=flat-square)](https://www.bountysource.com/teams/jackett)
[![Build status](https://ci.appveyor.com/api/projects/status/gaybh5mvyx418nsp/branch/master?svg=true)](https://ci.appveyor.com/project/Jackett/jackett)
[![Github Releases](https://img.shields.io/github/downloads/Jackett/Jackett/total.svg?maxAge=60&style=flat-square)](https://github.com/Jackett/Jackett/releases/latest)
[![Docker Pulls](https://img.shields.io/docker/pulls/linuxserver/jackett.svg?maxAge=60&style=flat-square)](https://hub.docker.com/r/linuxserver/jackett/)
[![Discord](https://img.shields.io/badge/discord-chat-7289DA.svg?maxAge=60&style=flat-square)](https://discord.gg/J865QuA)
This project is a new fork and is recruiting development help. If you are able to help out please contact us.
Jackett works as a proxy server: it translates queries from apps ([Sonarr](https://github.com/Sonarr/Sonarr), [Radarr](https://github.com/Radarr/Radarr), [SickRage](https://sickrage.github.io/), [CouchPotato](https://couchpota.to/), [Mylar](https://github.com/evilhero/mylar), [DuckieTV](https://github.com/SchizoDuckie/DuckieTV), etc) into tracker-site-specific http queries, parses the html response, then sends results back to the requesting software. This allows for getting recent uploads (like RSS) and performing searches. Jackett is a single repository of maintained indexer scraping & translation logic - removing the burden from other apps.
Developer note: The software implements the [Torznab](https://github.com/Sonarr/Sonarr/wiki/Implementing-a-Torznab-indexer) (with [nZEDb](https://github.com/nZEDb/nZEDb/blob/dev/docs/newznab_api_specification.txt) category numbering) and [TorrentPotato](https://github.com/RuudBurger/CouchPotatoServer/wiki/Couchpotato-torrent-provider) APIs.
#### Supported Systems
* Windows using .NET 4.5.2 [Download here](https://www.microsoft.com/net/framework/versions/net452).
* Linux and macOS using Mono 4.6.0 and above. [Download here](http://www.mono-project.com/download/). Earlier versions of mono may work but some trackers may fail to negotiate SSL correctly, and others may cause Jackett to crash when used.
### Supported Public Trackers
* 1337x
* Anidex
* Anime Tosho
* AniRena
* btbit
* BTDB
* BT-Scene
* cpasbien
* ETTV
* ExtraTorrent.ag
* EZTV
* Frozen Layer
* GkTorrent
* Horrible Subs
* Idope
* Il Corsaro Nero <!-- maintained by bonny1992 -->
* Isohunt2
* KickAssTorrent
* KickAssTorrent (thekat.se clone)
* LimeTorrents
* MagnetDL
* NextTorrent
* Nyaa.si
* Nyaa-Pantsu
* Nyoo
* OxTorrent
* RARBG
* RuTor
* ShowRSS
* The Pirate Bay
* TNTVillage <!-- maintained by bonny1992 -->
* Tokyo Toshokan
* Torlock
* Torrent Downloads
* Torrent9
* TorrentKim
* Torrentz2
* World Wide Torrents
* YIFY (YTS)
* YTS.ag
* Zooqle
### Supported Semi-Private Trackers
* 7tor
* CzTorrent
* Deildu
* Gay-Torrents.net
* Kinozal
* LostFilm.tv
* Mega-Bliz
* Metal Tracker
* MVGroup Forum
* MVGroup Main
* Newstudio
* NetHD
* NoName Club
* RuTracker
* SkTorrent
* Union Fansub
* Xtreme Zone
* YggTorrent
* Ztracker
### Supported Private Trackers
* 2 Fast 4 You
* 3D Torrents
* Abnormal
* Acid-Lounge
* AlphaRatio
* Andraste
* AnimeBytes
* AnimeTorrents
* AOX
* Apollo (XANAX)
* ArabaFenice
* Arche Torrent
* AsianDVDClub
* AST4u
* Audiobook Torrents
* Awesome-HD
* Avistaz
* B2S-Share
* Back-ups
* BakaBT [![(invite needed)][inviteneeded]](#)
* bB
* BeyondHD
* BIGTorrent
* Bit-City Reloaded
* BIT-HDTV
* Bithorlo
* BitHUmen
* BitMe
* BitMeTV
* BitSoup [![(invite needed)][inviteneeded]](#)
* Bitspyder
* BitTorrentFiles [![(invite needed)][inviteneeded]](#)
* BJ-Share
* BlueBird
* Blutopia
* BroadcastTheNet
* BrokenStones
* BTNext
* Carpathians
* CCFBits
* CGPeers
* CHDBits
* Cinematik
* Cinemageddon
* CinemaZ
* Classix
* DanishBits
* DataScene
* Demonoid
* Diablo Torrent
* DigitalHive
* Downloadville
* Dragonworld Reloaded
* Dream Team
* EliteHD [![(invite needed)][inviteneeded]](#)
* Elit Tracker
* Elite-Tracker
* Empornium
* EoT-Forum
* eStone
* Ethor.net (Thor's Land)
* FANO.IN
* FileList
* Femdomcult
* Freedom-HD
* FullMixMusic
* FunFile
* FunkyTorrents
* Fuzer
* GayTorrent.ru
* GazelleGames
* GFTracker
* Gfxnews
* GFXPeers
* GigaTorrents
* GimmePeers <!-- maintained by jamesb2147 -->
* GODS [![(invite needed)][inviteneeded]](#)
* Greek Team
* HacheDe
* Hardbay
* HD-Forever
* HD-Only
* HD-Space
* HD-Torrents
* HD-Bits.com
* HDBits
* HDChina
* HDCity
* HDHome
* HDME
* HDSky
* HDTorrents.it
* Hebits
* Hon3y HD
* Hyperay
* ICE Torrent
* I Love Classics
* Immortalseed
* inPeril
* Insane Tracker
* IPTorrents
* JPopsuki
* Kapaki
* Karagarga
* LinkoManija
* LosslessClub
* M-Team - TP
* Magico
* Majomparádé
* Manicomio Share
* Mononoké-BT
* MoreThanTV
* MyAnonamouse
* myAmity
* MySpleen
* NCore
* Nebulance
* New Real World
* Norbits <!-- added by DiseaseNO but no longer maintained? -->
* notwhat.cd
* Ourbits
* Passione Torrent <!-- maintained by bonny1992 -->
* PassThePopcorn [![(invite needed)][inviteneeded]](#)
* PirateTheNet
* PiXELHD
* PolishSource
* PolishTracker
* Pretome
* PrivateHD
* Psytorrents
* PTFiles
* PuntoTorrent
* Redacted (PassTheHeadphones)
* RevolutionTT
* RoDVD
* SceneFZ
* SceneReactor
* SceneTime
* SDBits
* Secret Cinema
* Shareisland
* ShareSpaceDB
* Shazbat
* Shellife
* Speed-Share
* SpeedCD
* SpeedTorrent Reloaded
* SportsCult
* SportHD
* Superbits
* Synthesiz3r
* Tasmanit
* TBPlus
* The Empire
* The Geeks
* The Horror Charnel
* The Occult
* The New Retro
* The Place
* The Shinning
* The Show
* The Vault
* The-Torrents
* TenYardTracker
* Torrent Network
* Torrent Sector Crew
* Torrent.LT
* TorrentBD
* TorrentBytes
* TorrentCCF [![(invite needed)][inviteneeded]](#)
* TorrentDay
* Torrentech
* TorrentHeaven
* TorrentHR
* Torrenting
* Torrentland
* TorrentLeech
* Torrents.Md
* TorrentSeeds
* Torrent-Syndikat
* TorrentWTF
* TorViet
* ToTheGlory
* TranceTraffic
* Trezzor
* TV Chaos UK
* TV-Vault
* u-torrents (SceneFZ)
* UHDBits
* Ultimate Gamer Club
* Waffles
* World-In-HD
* WorldOfP2P
* x264
* XSpeeds
* Xthor
* Your Exotic Torrents
* Zamunda.net
* Zelka.org
Trackers marked with [![(invite needed)][inviteneeded]](#) have no active maintainer and are missing features or are broken. If you have an invite for them please send it to kaso1717 -at- gmail.com to get them fixed/improved.
## Installation on Windows
We recommend you install Jackett as a Windows service using the supplied installer. You may also download the zipped version if you would like to configure everything manually.
To get started with using the installer for Jackett, follow the steps below:
1. Download the latest version of the Windows installer, "Jackett.Installer.Windows.exe" from the [releases](https://github.com/Jackett/Jackett/releases/latest) page.
2. When prompted if you would like this app to make changes to your computer, select "yes".
3. If you would like to install Jackett as a Windows Service, make sure the "Install as Windows Service" checkbox is filled.
4. Once the installation has finished, check the "Launch Jackett" box to get started.
5. Navigate your web browser to: http://127.0.0.1:9117
6. You're now ready to begin adding your trackers and using Jackett.
When installed as a service the tray icon acts as a way to open/start/stop Jackett. If you opted to not install it as a service then Jackett will run its web server from the tray tool.
Jackett can also be run from the command line if you would like to see log messages (Ensure the server isn't already running from the tray/service). This can be done by using "JackettConsole.exe" (for Command Prompt), found in the Jackett data folder: "%ProgramData%\Jackett".
## Installation on Linux
1. Install [Mono 4.6](http://www.mono-project.com/download/#download-lin) or better (using the latest stable release for your distribution is recommended)
* Follow the instructions on the mono website and install the `mono-devel` and the `ca-certificates-mono` packages.
* On Red Hat/CentOS/openSUSE/Fedora the `mono-locale-extras` package is also required.
2. Install libcurl:
* Debian/Ubunutu: `apt-get install libcurl4-openssl-dev`
* Redhat/Fedora: `yum install libcurl-devel`
* For other distros see the [Curl docs](http://curl.haxx.se/dlwiz/?type=devel).
3. Download and extract the latest `Jackett.Binaries.Mono.tar.gz` release from the [releases page](https://github.com/Jackett/Jackett/releases) and run Jackett using mono with the command `mono --debug JackettConsole.exe`.
Detailed instructions for [Ubuntu 14.x](http://www.htpcguides.com/install-jackett-on-ubuntu-14-x-for-custom-torrents-in-sonarr/) and [Ubuntu 15.x](http://www.htpcguides.com/install-jackett-ubuntu-15-x-for-custom-torrents-in-sonarr/)
If you want to run it with a user without a /home directory you need to add `Environment=XDG_CONFIG_HOME=/path/to/folder` to your systemd file, this folder will be used to store your config files.
## Installation on macOS
### Prerequisites
Install [Mono 4.6](http://www.mono-project.com/download/#download-mac) or better (using the latest pkg installer is recommended).
* Setup ssl support by running `curl -sS https://curl.haxx.se/ca/cacert.pem | cert-sync --user /dev/stdin`
### Install as service
1. Download and extract the latest `Jackett.Binaries.Mono.tar.gz` release from the [releases page](https://github.com/Jackett/Jackett/releases).
2. Open the extracted folder and double-click on `install_service_macos`.
3. If the installation was a success, you can close the Terminal window.
The service will start on each logon. You can always stop it by running `launchctl unload ~/Library/LaunchAgents/org.user.Jackett.plist` from Terminal. You can start it again it using `launchctl load ~/Library/LaunchAgents/org.user.Jackett.plist`.
Logs are stored as usual under `~/.config/Jackett/log.txt`.
### Run without installing as a service
Download and extract the latest `Jackett.Binaries.Mono.tar.gz` release from the [releases page](https://github.com/Jackett/Jackett/releases) and run Jackett using mono with the command `mono --debug JackettConsole.exe`.
## Installation using Docker
Detailed instructions are available at [LinuxServer.io Jackett Docker](https://hub.docker.com/r/linuxserver/jackett/). The Jackett Docker is highly recommended, especially if you are having Mono stability issues or having issues running Mono on your system eg. QNAP, Synology. Thanks to [LinuxServer.io](https://linuxserver.io)
## Installation on Synology
Jackett is available as beta package from [SynoCommunity](https://synocommunity.com/)
## Running Jackett behind a reverse proxy
When running jackett behind a reverse proxy make sure that the original hostname of the request is passed to Jackett. If HTTPS is used also set the X-Forwarded-Proto header to "https". Don't forget to adjust the "Base Path Override" Jackett option accordingly.
Example config for apache:
```
<Location /jackett>
ProxyPreserveHost On
RequestHeader set X-Forwarded-Proto expr=%{REQUEST_SCHEME}
ProxyPass http://127.0.0.1:9117
ProxyPassReverse http://127.0.0.1:9117
</Location>
```
## Troubleshooting
* __Command line switches__
You can pass various options when running via the command line, see --help for details.
* __Error "The underlying connection was closed: Could not establish trust relationship for the SSL/TLS secure channel."__
This is often caused by missing CA certificates.
Try reimporting the certificates in this case:
- On Linux (as user root): `wget -O - https://curl.haxx.se/ca/cacert.pem | cert-sync /dev/stdin`
- On macOS: `curl -sS https://curl.haxx.se/ca/cacert.pem | cert-sync --user /dev/stdin`
* __Enable logging__
You can get additional logging with the command line switches `-t -l` or by enabling `Enhanced logging` via the web interface (followed by clicking on the `Apply Server Settings` button).
Please post logs if you are unable to resolve your issue with these switches ensuring to remove your username/password/cookies.
The logfiles (log.txt/updater.txt) are stored in `%ProgramData%\Jackett` on Windows and `~/.config/Jackett/` on Linux/macOS.
## Configuring OMDb
This feature is used as a fallback to get the movie/series title if only the IMDB ID is provided in the request.
To use it, please just request a free API key on [OMDb](http://www.omdbapi.com/apikey.aspx) (1,000 daily requests limit) and paste the key in Jackett
## Creating an issue
Please supply as much information about the problem you are experiencing as possible. Your issue has a much greater chance of being resolved if logs are supplied so that we can see what is going on. Creating an issue with '### isn't working' doesn't help anyone to fix the problem.
## Contributing
All contributions are welcome just send a pull request. Jackett's framework allows our team (and any other volunteering dev) to implement new trackers in an hour or two. If you'd like support for a new tracker but are not a developer then feel free to leave a request on the [issues page](https://github.com/Jackett/Jackett/issues). It is recommended to use Visual Studio 2017 when making code changes in this project. You can download the community version for free [here](https://www.visualstudio.com/downloads/).
## Screenshots
![screenshot](https://i.imgur.com/0d1nl7g.png "screenshot")
[inviteneeded]: https://raw.githubusercontent.com/Jackett/Jackett/master/.github/label-inviteneeded.png

39
appveyor.yml Normal file
View File

@@ -0,0 +1,39 @@
version: 0.8.{build}
skip_tags: true
image: Visual Studio 2017
configuration: Release
assembly_info:
patch: true
file: '**\AssemblyInfo.*'
assembly_version: '{version}'
assembly_file_version: '{version}'
assembly_informational_version: '{version}'
dotnet_csproj:
patch: true
file: '**\*.csproj'
version: '{version}'
package_version: '{version}'
assembly_version: '{version}'
file_version: '{version}'
informational_version: '{version}'
build_script:
- ps: .\build.ps1
test: off
before_deploy:
- ps: ${env:release_description} = ( Get-Content -LiteralPath BuildOutput/ReleaseNotes.txt -Encoding UTF8 ) -join "`n";
deploy:
- provider: GitHub
tag: v$(appveyor_build_version)
description: $(release_description)
auth_token:
secure: hOg+16YTIbq4kO9u4D1YVOTbWDqgCX6mAQYMbnmBBSw2CiUsZh7OKbupoUb3FtWa
draft: true
on:
branch: master
notifications:
- provider: Webhook
url: https://skyhook.glitch.me/api/webhooks/346588605843767297/_VWi5abKliaWsBmQO7AX69tD28FhqSLjKyLBwkSwwT13uyWJQHx5TSWK_iAs-0RzmyvZ/appveyor
method: POST
on_build_success: true
on_build_failure: true
on_build_status_changed: true

285
build.cake Normal file
View File

@@ -0,0 +1,285 @@
#tool nuget:?package=NUnit.ConsoleRunner
#addin nuget:?package=Cake.Git
//////////////////////////////////////////////////////////////////////
// ARGUMENTS
//////////////////////////////////////////////////////////////////////
var target = Argument("target", "Default");
var configuration = Argument("configuration", "Release");
//////////////////////////////////////////////////////////////////////
// PREPARATION
//////////////////////////////////////////////////////////////////////
// Define directories.
var workingDir = MakeAbsolute(Directory("./"));
var artifactsDirName = "Artifacts";
var testResultsDirName = "TestResults";
var windowsBuildFullFramework = "./BuildOutput/FullFramework/Windows";
var monoBuildFullFramework = "./BuildOutput/FullFramework/Mono";
//////////////////////////////////////////////////////////////////////
// TASKS
//////////////////////////////////////////////////////////////////////
Task("Info")
.Does(() =>
{
Information(@"Jackett Cake build script starting...");
Information(@"Requires InnoSetup and C:\cygwin to be present for packaging (Pre-installed on AppVeyor)");
Information(@"Working directory is: " + workingDir);
});
Task("Clean")
.IsDependentOn("Info")
.Does(() =>
{
CleanDirectories("./src/**/obj" + configuration);
CleanDirectories("./src/**/bin" + configuration);
CleanDirectories("./BuildOutput");
CleanDirectories("./" + artifactsDirName);
CleanDirectories("./" + testResultsDirName);
Information("Clean completed");
});
Task("Restore-NuGet-Packages")
.IsDependentOn("Clean")
.Does(() =>
{
NuGetRestore("./src/Jackett.sln");
});
Task("Build")
.IsDependentOn("Restore-NuGet-Packages")
.Does(() =>
{
MSBuild("./src/Jackett.sln", settings => settings.SetConfiguration(configuration));
});
Task("Run-Unit-Tests")
.IsDependentOn("Build")
.Does(() =>
{
CreateDirectory("./" + testResultsDirName);
var resultsFile = $"./{testResultsDirName}/JackettTestResult.xml";
NUnit3("./src/**/bin/" + configuration + "/**/*.Test.dll", new NUnit3Settings
{
Results = new[] { new NUnit3Result { FileName = resultsFile } }
});
if(AppVeyor.IsRunningOnAppVeyor)
{
AppVeyor.UploadTestResults(resultsFile, AppVeyorTestResultsType.NUnit3);
}
});
Task("Copy-Files-Full-Framework")
.IsDependentOn("Run-Unit-Tests")
.Does(() =>
{
var windowsOutput = windowsBuildFullFramework + "/Jackett";
CopyDirectory("./src/Jackett.Console/bin/" + configuration, windowsOutput);
CopyFiles("./src/Jackett.Service/bin/" + configuration + "/JackettService.*", windowsOutput);
CopyFiles("./src/Jackett.Tray/bin/" + configuration + "/JackettTray.*", windowsOutput);
CopyFiles("./src/Jackett.Updater/bin/" + configuration + "/JackettUpdater.*", windowsOutput);
CopyFiles("./Upstart.config", windowsOutput);
CopyFiles("./LICENSE", windowsOutput);
CopyFiles("./README.md", windowsOutput);
var monoOutput = monoBuildFullFramework + "/Jackett";
CopyDirectory(windowsBuildFullFramework, monoBuildFullFramework);
DeleteFiles(monoOutput + "/JackettService.*");
DeleteFiles(monoOutput + "/JackettTray.*");
Information("Full framework file copy completed");
});
Task("Check-Packaging-Platform")
.IsDependentOn("Copy-Files-Full-Framework")
.Does(() =>
{
if (IsRunningOnWindows())
{
CreateDirectory("./" + artifactsDirName);
Information("Platform is Windows");
}
else
{
throw new Exception("Packaging is currently only implemented for a Windows environment");
}
});
Task("Package-Windows-Installer-Full-Framework")
.IsDependentOn("Check-Packaging-Platform")
.Does(() =>
{
InnoSetup("./Installer.iss", new InnoSetupSettings {
OutputDirectory = workingDir + "/" + artifactsDirName
});
});
Task("Package-Files-Full-Framework-Windows")
.IsDependentOn("Check-Packaging-Platform")
.Does(() =>
{
Zip(windowsBuildFullFramework, $"./{artifactsDirName}/Jackett.Binaries.Windows.zip");
Information(@"Full Framework Windows Binaries Zipping Completed");
});
Task("Package-Files-Full-Framework-Mono")
.IsDependentOn("Check-Packaging-Platform")
.Does(() =>
{
var cygMonoBuildPath = RelativeWinPathToCygPath(monoBuildFullFramework);
var tarFileName = "Jackett.Binaries.Mono.tar";
var tarArguments = @"-cvf " + cygMonoBuildPath + "/" + tarFileName + " -C " + cygMonoBuildPath + " Jackett --mode ='755'";
var gzipArguments = @"-k " + cygMonoBuildPath + "/" + tarFileName;
RunCygwinCommand("Tar", tarArguments);
RunCygwinCommand("Gzip", gzipArguments);
MoveFile($"{monoBuildFullFramework}/{tarFileName}.gz", $"./{artifactsDirName}/{tarFileName}.gz");
});
Task("Package-Full-Framework")
.IsDependentOn("Package-Windows-Installer-Full-Framework")
.IsDependentOn("Package-Files-Full-Framework-Windows")
.IsDependentOn("Package-Files-Full-Framework-Mono")
.Does(() =>
{
Information("Full Framwork Packaging Completed");
});
Task("Appveyor-Push-Artifacts")
.IsDependentOn("Package-Full-Framework")
.Does(() =>
{
if (AppVeyor.IsRunningOnAppVeyor)
{
foreach (var file in GetFiles(workingDir + $"/{artifactsDirName}/*"))
{
AppVeyor.UploadArtifact(file.FullPath);
}
}
else
{
Information(@"Skipping as not running in AppVeyor Environment");
}
});
Task("Release-Notes")
.IsDependentOn("Appveyor-Push-Artifacts")
.Does(() =>
{
string latestTag = GitDescribe(".", false, GitDescribeStrategy.Tags, 0);
Information($"Latest tag is: {latestTag}" + Environment.NewLine);
List<GitCommit> relevantCommits = new List<GitCommit>();
var commitCollection = GitLog("./", 50);
foreach(GitCommit commit in commitCollection)
{
var commitTag = GitDescribe(".", commit.Sha, false, GitDescribeStrategy.Tags, 0);
if (commitTag == latestTag)
{
relevantCommits.Add(commit);
}
else
{
break;
}
}
relevantCommits = relevantCommits.AsEnumerable().Reverse().Skip(1).ToList();
if (relevantCommits.Count() > 0)
{
List<string> notesList = new List<string>();
foreach(GitCommit commit in relevantCommits)
{
notesList.Add($"{commit.MessageShort} (Thank you @{commit.Author.Name})");
}
string buildNote = String.Join(Environment.NewLine, notesList);
Information(buildNote);
System.IO.File.WriteAllLines(workingDir + "\\BuildOutput\\ReleaseNotes.txt", notesList.ToArray());
}
else
{
Information($"No commit messages found to create release notes");
}
});
private void RunCygwinCommand(string utility, string utilityArguments)
{
var cygwinDir = @"C:\cygwin\bin\";
var utilityProcess = cygwinDir + utility + ".exe";
Information("CygWin Utility: " + utility);
Information("CygWin Directory: " + cygwinDir);
Information("Utility Location: " + utilityProcess);
Information("Utility Arguments: " + utilityArguments);
IEnumerable<string> redirectedStandardOutput;
IEnumerable<string> redirectedErrorOutput;
var exitCodeWithArgument =
StartProcess(
utilityProcess,
new ProcessSettings {
Arguments = utilityArguments,
WorkingDirectory = cygwinDir,
RedirectStandardOutput = true
},
out redirectedStandardOutput,
out redirectedErrorOutput
);
Information(utility + " output:" + Environment.NewLine + string.Join(Environment.NewLine, redirectedStandardOutput.ToArray()));
// Throw exception if anything was written to the standard error.
if (redirectedErrorOutput != null && redirectedErrorOutput.Any())
{
throw new Exception(
string.Format(
utility + " Errors ocurred: {0}",
string.Join(", ", redirectedErrorOutput)));
}
Information(utility + " Exit code: {0}", exitCodeWithArgument);
}
private string RelativeWinPathToCygPath(string relativePath)
{
var cygdriveBase = "/cygdrive/" + workingDir.ToString().Replace(":", "").Replace("\\", "/");
var cygPath = cygdriveBase + relativePath.Replace(".", "");
return cygPath;
}
//////////////////////////////////////////////////////////////////////
// TASK TARGETS
//////////////////////////////////////////////////////////////////////
Task("Default")
.IsDependentOn("Release-Notes")
.Does(() =>
{
Information("Default Task Completed");
});
//////////////////////////////////////////////////////////////////////
// EXECUTION
//////////////////////////////////////////////////////////////////////
RunTarget(target);

235
build.ps1 Normal file
View File

@@ -0,0 +1,235 @@
##########################################################################
# This is the Cake bootstrapper script for PowerShell.
# This file was downloaded from https://github.com/cake-build/resources
# Feel free to change this file to fit your needs.
##########################################################################
<#
.SYNOPSIS
This is a Powershell script to bootstrap a Cake build.
.DESCRIPTION
This Powershell script will download NuGet if missing, restore NuGet tools (including Cake)
and execute your Cake build script with the parameters you provide.
.PARAMETER Script
The build script to execute.
.PARAMETER Target
The build script target to run.
.PARAMETER Configuration
The build configuration to use.
.PARAMETER Verbosity
Specifies the amount of information to be displayed.
.PARAMETER ShowDescription
Shows description about tasks.
.PARAMETER DryRun
Performs a dry run.
.PARAMETER Experimental
Uses the nightly builds of the Roslyn script engine.
.PARAMETER Mono
Uses the Mono Compiler rather than the Roslyn script engine.
.PARAMETER SkipToolPackageRestore
Skips restoring of packages.
.PARAMETER ScriptArgs
Remaining arguments are added here.
.LINK
https://cakebuild.net
#>
[CmdletBinding()]
Param(
[string]$Script = "build.cake",
[string]$Target,
[string]$Configuration,
[ValidateSet("Quiet", "Minimal", "Normal", "Verbose", "Diagnostic")]
[string]$Verbosity,
[switch]$ShowDescription,
[Alias("WhatIf", "Noop")]
[switch]$DryRun,
[switch]$Experimental,
[switch]$Mono,
[switch]$SkipToolPackageRestore,
[Parameter(Position=0,Mandatory=$false,ValueFromRemainingArguments=$true)]
[string[]]$ScriptArgs
)
[Reflection.Assembly]::LoadWithPartialName("System.Security") | Out-Null
function MD5HashFile([string] $filePath)
{
if ([string]::IsNullOrEmpty($filePath) -or !(Test-Path $filePath -PathType Leaf))
{
return $null
}
[System.IO.Stream] $file = $null;
[System.Security.Cryptography.MD5] $md5 = $null;
try
{
$md5 = [System.Security.Cryptography.MD5]::Create()
$file = [System.IO.File]::OpenRead($filePath)
return [System.BitConverter]::ToString($md5.ComputeHash($file))
}
finally
{
if ($file -ne $null)
{
$file.Dispose()
}
}
}
function GetProxyEnabledWebClient
{
$wc = New-Object System.Net.WebClient
$proxy = [System.Net.WebRequest]::GetSystemWebProxy()
$proxy.Credentials = [System.Net.CredentialCache]::DefaultCredentials
$wc.Proxy = $proxy
return $wc
}
Write-Host "Preparing to run build script..."
if(!$PSScriptRoot){
$PSScriptRoot = Split-Path $MyInvocation.MyCommand.Path -Parent
}
$TOOLS_DIR = Join-Path $PSScriptRoot "tools"
$ADDINS_DIR = Join-Path $TOOLS_DIR "Addins"
$MODULES_DIR = Join-Path $TOOLS_DIR "Modules"
$NUGET_EXE = Join-Path $TOOLS_DIR "nuget.exe"
$CAKE_EXE = Join-Path $TOOLS_DIR "Cake/Cake.exe"
$NUGET_URL = "https://dist.nuget.org/win-x86-commandline/latest/nuget.exe"
$PACKAGES_CONFIG = Join-Path $TOOLS_DIR "packages.config"
$PACKAGES_CONFIG_MD5 = Join-Path $TOOLS_DIR "packages.config.md5sum"
$ADDINS_PACKAGES_CONFIG = Join-Path $ADDINS_DIR "packages.config"
$MODULES_PACKAGES_CONFIG = Join-Path $MODULES_DIR "packages.config"
# Make sure tools folder exists
if ((Test-Path $PSScriptRoot) -and !(Test-Path $TOOLS_DIR)) {
Write-Verbose -Message "Creating tools directory..."
New-Item -Path $TOOLS_DIR -Type directory | out-null
}
# Make sure that packages.config exist.
if (!(Test-Path $PACKAGES_CONFIG)) {
Write-Verbose -Message "Downloading packages.config..."
try {
$wc = GetProxyEnabledWebClient
$wc.DownloadFile("https://cakebuild.net/download/bootstrapper/packages", $PACKAGES_CONFIG) } catch {
Throw "Could not download packages.config."
}
}
# Try find NuGet.exe in path if not exists
if (!(Test-Path $NUGET_EXE)) {
Write-Verbose -Message "Trying to find nuget.exe in PATH..."
$existingPaths = $Env:Path -Split ';' | Where-Object { (![string]::IsNullOrEmpty($_)) -and (Test-Path $_ -PathType Container) }
$NUGET_EXE_IN_PATH = Get-ChildItem -Path $existingPaths -Filter "nuget.exe" | Select -First 1
if ($NUGET_EXE_IN_PATH -ne $null -and (Test-Path $NUGET_EXE_IN_PATH.FullName)) {
Write-Verbose -Message "Found in PATH at $($NUGET_EXE_IN_PATH.FullName)."
$NUGET_EXE = $NUGET_EXE_IN_PATH.FullName
}
}
# Try download NuGet.exe if not exists
if (!(Test-Path $NUGET_EXE)) {
Write-Verbose -Message "Downloading NuGet.exe..."
try {
$wc = GetProxyEnabledWebClient
$wc.DownloadFile($NUGET_URL, $NUGET_EXE)
} catch {
Throw "Could not download NuGet.exe."
}
}
# Save nuget.exe path to environment to be available to child processed
$ENV:NUGET_EXE = $NUGET_EXE
# Restore tools from NuGet?
if(-Not $SkipToolPackageRestore.IsPresent) {
Push-Location
Set-Location $TOOLS_DIR
# Check for changes in packages.config and remove installed tools if true.
[string] $md5Hash = MD5HashFile($PACKAGES_CONFIG)
if((!(Test-Path $PACKAGES_CONFIG_MD5)) -Or
($md5Hash -ne (Get-Content $PACKAGES_CONFIG_MD5 ))) {
Write-Verbose -Message "Missing or changed package.config hash..."
Get-ChildItem -Exclude packages.config,nuget.exe,Cake.Bakery |
Remove-Item -Recurse
}
Write-Verbose -Message "Restoring tools from NuGet..."
$NuGetOutput = Invoke-Expression "&`"$NUGET_EXE`" install -ExcludeVersion -OutputDirectory `"$TOOLS_DIR`""
if ($LASTEXITCODE -ne 0) {
Throw "An error occurred while restoring NuGet tools."
}
else
{
$md5Hash | Out-File $PACKAGES_CONFIG_MD5 -Encoding "ASCII"
}
Write-Verbose -Message ($NuGetOutput | out-string)
Pop-Location
}
# Restore addins from NuGet
if (Test-Path $ADDINS_PACKAGES_CONFIG) {
Push-Location
Set-Location $ADDINS_DIR
Write-Verbose -Message "Restoring addins from NuGet..."
$NuGetOutput = Invoke-Expression "&`"$NUGET_EXE`" install -ExcludeVersion -OutputDirectory `"$ADDINS_DIR`""
if ($LASTEXITCODE -ne 0) {
Throw "An error occurred while restoring NuGet addins."
}
Write-Verbose -Message ($NuGetOutput | out-string)
Pop-Location
}
# Restore modules from NuGet
if (Test-Path $MODULES_PACKAGES_CONFIG) {
Push-Location
Set-Location $MODULES_DIR
Write-Verbose -Message "Restoring modules from NuGet..."
$NuGetOutput = Invoke-Expression "&`"$NUGET_EXE`" install -ExcludeVersion -OutputDirectory `"$MODULES_DIR`""
if ($LASTEXITCODE -ne 0) {
Throw "An error occurred while restoring NuGet modules."
}
Write-Verbose -Message ($NuGetOutput | out-string)
Pop-Location
}
# Make sure that Cake has been installed.
if (!(Test-Path $CAKE_EXE)) {
Throw "Could not find Cake.exe at $CAKE_EXE"
}
# Build Cake arguments
$cakeArguments = @("$Script");
if ($Target) { $cakeArguments += "-target=$Target" }
if ($Configuration) { $cakeArguments += "-configuration=$Configuration" }
if ($Verbosity) { $cakeArguments += "-verbosity=$Verbosity" }
if ($ShowDescription) { $cakeArguments += "-showdescription" }
if ($DryRun) { $cakeArguments += "-dryrun" }
if ($Experimental) { $cakeArguments += "-experimental" }
if ($Mono) { $cakeArguments += "-mono" }
$cakeArguments += $ScriptArgs
# Start Cake
Write-Host "Running build script..."
&$CAKE_EXE $cakeArguments
exit $LASTEXITCODE

View File

@@ -1,7 +1,8 @@
using System;
using System.Runtime.InteropServices;
using CurlSharp.Enums;
namespace CurlSharp
namespace CurlSharp.Callbacks
{
/// <summary>
/// Called when cURL has debug information for the client.
@@ -26,12 +27,16 @@ namespace CurlSharp
/// <description>Debug information as a string.</description>
/// </item>
/// <item>
/// <term>size</term>
/// <description>The size in bytes.</description>
/// </item>
/// <item>
/// <term>extraData</term>
/// <description>Client-provided extra data.</description>
/// </item>
/// </list>
/// </remarks>
public delegate void CurlDebugCallback(CurlInfoType infoType, String message, Object extraData);
public delegate void CurlDebugCallback(CurlInfoType infoType, String message, int size, Object extraData);
/// <summary>
/// Called when cURL has header data for the client.

View File

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

View File

@@ -2,7 +2,7 @@
*
* CurlS#arp
*
* Copyright (c) 2013 Dr. Masroor Ehsan (masroore@gmail.com)
* Copyright (c) 2013-2017 Dr. Masroor Ehsan (masroore@gmail.com)
* Portions copyright (c) 2004, 2005 Jeff Phillips (jeff@jeffp.net)
*
* This software is licensed as described in the file LICENSE, which you
@@ -19,6 +19,7 @@
using System;
using System.Runtime.InteropServices;
using CurlSharp.Enums;
namespace CurlSharp
{
@@ -72,7 +73,7 @@ namespace CurlSharp
/// </returns>
public static CurlCode GlobalInit(CurlInitFlag flags)
{
_initCode = NativeMethods.curl_global_init((int)flags);
_initCode = NativeMethods.curl_global_init((int) flags);
#if USE_LIBCURLSHIM
if (_initCode == CurlCode.Ok)
NativeMethods.curl_shim_initialize();
@@ -99,48 +100,6 @@ namespace CurlSharp
}
}
/// <summary>
/// URL encode a String.
/// </summary>
/// <param name="url">The string to URL encode.</param>
/// <param name="length">
/// Input string length;
/// use 0 for cURL to determine.
/// </param>
/// <returns>A new URL encoded string.</returns>
/// <exception cref="System.InvalidOperationException">
/// Thrown if cURL isn't properly initialized.
/// </exception>
public static string Escape(string url, int length)
{
EnsureCurl();
var p = NativeMethods.curl_escape(url, length);
var s = Marshal.PtrToStringAnsi(p);
NativeMethods.curl_free(p);
return s;
}
/// <summary>
/// URL decode a String.
/// </summary>
/// <param name="url">The string to URL decode.</param>
/// <param name="length">
/// Input string length;
/// use 0 for cURL to determine.
/// </param>
/// <returns>A new URL decoded string.</returns>
/// <exception cref="System.InvalidOperationException">
/// Thrown if cURL isn't properly initialized.
/// </exception>
public static string Unescape(string url, int length)
{
EnsureCurl();
var p = NativeMethods.curl_unescape(url, length);
var s = Marshal.PtrToStringAnsi(p);
NativeMethods.curl_free(p);
return s;
}
/// <summary>
/// Get a <see cref="CurlVersionInfoData" /> object.
/// </summary>

View File

@@ -2,7 +2,7 @@
*
* CurlS#arp
*
* Copyright (c) 2014 Dr. Masroor Ehsan (masroore@gmail.com)
* Copyright (c) 2013-2017 Dr. Masroor Ehsan (masroore@gmail.com)
* Portions copyright (c) 2004, 2005 Jeff Phillips (jeff@jeffp.net)
*
* This software is licensed as described in the file LICENSE, which you
@@ -19,6 +19,8 @@
using System;
using System.Runtime.InteropServices;
using CurlSharp.Callbacks;
using CurlSharp.Enums;
namespace CurlSharp
{
@@ -56,7 +58,7 @@ namespace CurlSharp
private bool _cookieSession;
private CurlShare _curlShare;
private string _customRequest;
private Object _debugData;
private object _debugData;
private int _dnsCacheTimeout;
private bool _dnsUseGlobalCache;
private string _egdSocket;
@@ -79,7 +81,7 @@ namespace CurlSharp
private bool _ftpUseEprt;
private bool _ftpUseEpsv;
private GCHandle _hThis;
private Object _headerData;
private object _headerData;
private CurlHttpAuth _httpAuth;
private bool _httpGet;
private CurlHttpMultiPartForm _httpMultiPartForm;
@@ -88,10 +90,8 @@ namespace CurlSharp
private bool _ignoreContentLength;
private long _infileSize;
private string _interface;
private Object _ioctlData;
private object _ioctlData;
private string _krb4Level;
private CurlCode _lastErrorCode;
private string _lastErrorDescription;
private int _lowSpeedLimit;
private int _lowSpeedTime;
private int _maxConnects;
@@ -118,6 +118,7 @@ namespace CurlSharp
private NativeMethods._CurlDebugCallback _pcbDebug;
private NativeMethods._CurlIoctlCallback _pcbIoctl;
private NativeMethods._CurlProgressCallback _pcbProgress;
private NativeMethods._CurlSslCtxCallback _pcbSslCtx;
#endif
private CurlDebugCallback _pfCurlDebug;
private CurlHeaderCallback _pfCurlHeader;
@@ -130,27 +131,27 @@ namespace CurlSharp
private bool _post;
private int _postFieldSize;
private string _postFields;
private Object _privateData;
private Object _progressData;
private object _progressData;
private string _proxy;
private int _proxyPort;
private string _proxyUserPwd;
private bool _put;
private string _randomFile;
private string _range;
private Object _readData;
private object _readData;
private string _referer;
private int _resumeFrom;
private string _sourceUrl;
private string _sslCert;
private string _sslCertPasswd;
private string _sslCipherList;
private Object _sslContextData;
private object _sslContextData;
private string _sslEngine;
private bool _sslEngineDefault;
private string _sslKey;
private string _sslKeyPasswd;
private bool _sslVerifyPeer;
private bool _sslVerifyHost;
private bool _tcpNoDelay;
private int _timeValue;
private int _timeout;
@@ -161,7 +162,7 @@ namespace CurlSharp
private string _userAgent;
private string _userPwd;
private bool _verbose;
private Object _writeData;
private object _writeData;
private string _writeInfo;
/// <summary>
@@ -180,6 +181,7 @@ namespace CurlSharp
Curl.EnsureCurl();
_pCurl = NativeMethods.curl_easy_init();
ensureHandle();
NativeMethods.curl_easy_setopt(_pCurl, CurlOption.NoSignal, 1L);
NativeMethods.curl_easy_setopt(_pCurl, CurlOption.NoProgress, IntPtr.Zero);
#if USE_LIBCURLSHIM
_pMyStrings = NativeMethods.curl_shim_alloc_strings();
@@ -199,11 +201,7 @@ namespace CurlSharp
installDelegates();
}
public object Private
{
get { return _privateData; }
set { _privateData = value; }
}
public object Private { get; set; }
public object WriteData
{
@@ -227,6 +225,8 @@ namespace CurlSharp
/// <returns></returns>
private CurlCode setWriteData(object data)
{
freeHandle(ref _curlWriteData);
_curlWriteData = getHandle(data);
return setCurlOpt(_curlWriteData, CurlOption.WriteData);
}
@@ -292,6 +292,18 @@ namespace CurlSharp
return setCurlOpt(_curlDebugData, CurlOption.DebugData);
}
private IntPtr _curlSslCtxData = IntPtr.Zero;
/// <summary>
/// Object to pass to OnSslCtxCallback.
/// </summary>
/// <param name="data"></param>
/// <returns></returns>
private CurlCode setSslCtxData(object data)
{
_curlSslCtxData = getHandle(data);
return setCurlOpt(_curlSslCtxData, CurlOption.SslCtxData);
}
private IntPtr _curlIoctlData = IntPtr.Zero;
@@ -355,6 +367,17 @@ namespace CurlSharp
}
}
public object SslCtxData
{
get { return _sslContextData; }
set
{
_sslContextData = value;
#if !USE_LIBCURLSHIM
setSslCtxData(value);
#endif
}
}
public object IoctlData
{
@@ -426,7 +449,7 @@ namespace CurlSharp
_ftpAuth = value;
var l = Convert.ToInt32(value);
setLastError(NativeMethods.curl_easy_setopt(_pCurl, CurlOption.FtpSslAuth, (IntPtr) l),
CurlOption.FtpSslAuth);
CurlOption.FtpSslAuth);
}
}
@@ -438,7 +461,7 @@ namespace CurlSharp
_httpVersion = value;
var l = Convert.ToInt32(value);
setLastError(NativeMethods.curl_easy_setopt(_pCurl, CurlOption.HttpVersion, (IntPtr) l),
CurlOption.HttpVersion);
CurlOption.HttpVersion);
}
}
@@ -450,7 +473,7 @@ namespace CurlSharp
_httpAuth = value;
var l = Convert.ToInt32(value);
setLastError(NativeMethods.curl_easy_setopt(_pCurl, CurlOption.HttpAuth, (IntPtr) l),
CurlOption.HttpAuth);
CurlOption.HttpAuth);
}
}
@@ -462,7 +485,7 @@ namespace CurlSharp
_ftpSsl = value;
var l = Convert.ToInt32(value);
setLastError(NativeMethods.curl_easy_setopt(_pCurl, CurlOption.FtpSsl, (IntPtr) l),
CurlOption.FtpSsl);
CurlOption.FtpSsl);
}
}
@@ -474,7 +497,7 @@ namespace CurlSharp
_closePolicy = value;
var l = Convert.ToInt32(value);
setLastError(NativeMethods.curl_easy_setopt(_pCurl, CurlOption.ClosePolicy, (IntPtr) l),
CurlOption.ClosePolicy);
CurlOption.ClosePolicy);
}
}
@@ -514,12 +537,14 @@ namespace CurlSharp
set { setFunctionOptions(CurlOption.IoctlFunction, value); }
}
public string LastErrorDescription
public CurlSslContextCallback SslContextFunction
{
get { return _lastErrorDescription; }
get { return _pfCurlSslContext; }
set { setFunctionOptions(CurlOption.SslCtxFunction, value); }
}
public string LastErrorDescription { get; private set; }
public bool NoProgress
{
get { return _noProgress; }
@@ -592,6 +617,12 @@ namespace CurlSharp
set { setBoolOption(CurlOption.SslVerifyPeer, ref _sslVerifyPeer, value); }
}
public bool SslVerifyhost
{
get { return _sslVerifyHost; }
set { setBoolOption(CurlOption.SslVerifyhost, ref _sslVerifyHost, value); }
}
public bool FreshConnect
{
get { return _freshConnect; }
@@ -1106,10 +1137,7 @@ namespace CurlSharp
get { return getSlistInfo(CurlInfo.SslEngines); }
}
public CurlCode LastErrorCode
{
get { return _lastErrorCode; }
}
public CurlCode LastErrorCode { get; private set; }
/// <summary>
/// Cleanup unmanaged resources.
@@ -1122,7 +1150,7 @@ namespace CurlSharp
private void resetPrivateVariables()
{
_privateData = null;
Private = null;
_pfCurlWrite = null;
_writeData = null;
@@ -1179,10 +1207,10 @@ namespace CurlSharp
/// </summary>
private void setLastError(CurlCode code, CurlOption opt)
{
if (LastErrorCode == CurlCode.Ok && code != CurlCode.Ok)
if ((LastErrorCode == CurlCode.Ok) && (code != CurlCode.Ok))
{
_lastErrorCode = code;
_lastErrorDescription = string.Format("Error: {0} setting option {1}", StrError(code), opt);
LastErrorCode = code;
LastErrorDescription = string.Format("Error: {0} setting option {1}", StrError(code), opt);
}
}
@@ -1191,10 +1219,10 @@ namespace CurlSharp
/// </summary>
private void setLastError(CurlCode code, CurlInfo info)
{
if (LastErrorCode == CurlCode.Ok && code != CurlCode.Ok)
if ((LastErrorCode == CurlCode.Ok) && (code != CurlCode.Ok))
{
_lastErrorCode = code;
_lastErrorDescription = string.Format("Error: {0} getting info {1}", StrError(code), info);
LastErrorCode = code;
LastErrorDescription = string.Format("Error: {0} getting info {1}", StrError(code), info);
}
}
@@ -1233,6 +1261,7 @@ namespace CurlSharp
freeHandle(ref _curlProgressData);
freeHandle(ref _curlHeaderData);
freeHandle(ref _curlIoctlData);
freeHandle(ref _curlSslCtxData);
#endif
NativeMethods.curl_easy_cleanup(_pCurl);
@@ -1293,6 +1322,12 @@ namespace CurlSharp
private void setStringOption(CurlOption option, out string field, string value)
{
// all string options are copied by the library, the only exception to this rule is PostFields option
if (option == CurlOption.PostFields)
option = CurlOption.CopyPostFields;
if ((option == CurlOption.CopyPostFields) && (PostFieldSize == 0))
PostFieldSize = System.Text.Encoding.UTF8.GetByteCount(value);
setStringOption(option, value);
field = value;
}
@@ -1313,7 +1348,13 @@ namespace CurlSharp
#else
// convert the string to a null-terminated one
var buffer = System.Text.Encoding.UTF8.GetBytes(value + "\0");
setLastError(NativeMethods.curl_easy_setopt(_pCurl, option, buffer), option);
unsafe
{
fixed (byte* bufPtr = &buffer[0])
{
setLastError(NativeMethods.curl_easy_setopt(_pCurl, option, buffer), option);
}
}
#endif
}
}
@@ -1337,7 +1378,7 @@ namespace CurlSharp
/// <see cref="CurlCode.BadFunctionArgument" />
/// will be returned if the type of value of <c>parameter</c> is invalid.
/// </returns>
public CurlCode SetOpt(CurlOption option, Object parameter)
public CurlCode SetOpt(CurlOption option, object parameter)
{
ensureHandle();
var retCode = CurlCode.Ok;
@@ -1346,10 +1387,8 @@ namespace CurlSharp
if ((int) option < CURLOPTTYPE_OBJECTPOINT)
{
var i = 0;
if (option == CurlOption.DnsUseGlobalCache || option == CurlOption.SourcePort)
{
if ((option == CurlOption.DnsUseGlobalCache) || (option == CurlOption.SourcePort))
return CurlCode.BadFunctionArgument;
}
if (option == CurlOption.TimeValue)
{
@@ -1365,17 +1404,17 @@ namespace CurlSharp
retCode = NativeMethods.curl_easy_setopt(_pCurl, option, (IntPtr) i);
}
// object cases: the majority
// object cases: the majority
else if ((int) option < CURLOPTTYPE_FUNCTIONPOINT)
{
return setObjectOptions(option, parameter);
}
// FUNCTIONPOINT args, for delegates
// FUNCTIONPOINT args, for delegates
else if ((int) option < CURLOPTTYPE_OFF_T)
{
return setFunctionOptions(option, parameter);
}
// otherwise, it's one of those 64-bit off_t guys!
// otherwise, it's one of those 64-bit off_t guys!
else
{
var i = Convert.ToInt64(parameter);
@@ -1390,9 +1429,9 @@ namespace CurlSharp
var retCode = CurlCode.Ok;
switch (option)
{
// various data items
// various data items
case CurlOption.Private:
_privateData = parameter;
Private = parameter;
break;
case CurlOption.WriteData:
_writeData = parameter;
@@ -1409,12 +1448,15 @@ namespace CurlSharp
case CurlOption.HeaderData:
_headerData = parameter;
break;
case CurlOption.SslCtxData:
_sslContextData = parameter;
break;
case CurlOption.IoctlData:
_ioctlData = parameter;
break;
// items that can't be set externally or
// obsolete items
// items that can't be set externally or
// obsolete items
case CurlOption.ErrorBuffer:
case CurlOption.Stderr:
case CurlOption.SourceHost:
@@ -1422,7 +1464,7 @@ namespace CurlSharp
case CurlOption.PasvHost:
return CurlCode.BadFunctionArgument;
// singular case for share
// singular case for share
case CurlOption.Share:
{
_curlShare = parameter as CurlShare;
@@ -1430,7 +1472,7 @@ namespace CurlSharp
break;
}
// multipart HTTP post
// multipart HTTP post
case CurlOption.HttpPost:
{
_httpMultiPartForm = parameter as CurlHttpMultiPartForm;
@@ -1438,7 +1480,7 @@ namespace CurlSharp
break;
}
// items curl wants as a curl_slist
// items curl wants as a curl_slist
case CurlOption.HttpHeader:
case CurlOption.Prequote:
case CurlOption.Quote:
@@ -1452,12 +1494,12 @@ namespace CurlSharp
break;
}
// string items
// string items
default:
{
var s = parameter as string;
setStringOption(option, s);
retCode = _lastErrorCode;
retCode = LastErrorCode;
break;
}
}
@@ -1560,6 +1602,14 @@ namespace CurlSharp
break;
}
case CurlOption.SslCtxFunction:
{
var sf = pfn as CurlSslContextCallback;
if (sf == null)
return CurlCode.BadFunctionArgument;
_pfCurlSslContext = sf;
break;
}
case CurlOption.IoctlFunction:
{
@@ -1590,7 +1640,13 @@ namespace CurlSharp
public CurlCode Perform()
{
ensureHandle();
return NativeMethods.curl_easy_perform(_pCurl);
var nativeRet = NativeMethods.curl_easy_perform(_pCurl);
#if !USE_LIBCURLSHIM
freeHandle(ref _curlWriteData);
#endif
return nativeRet;
}
/// <summary>
@@ -1606,12 +1662,60 @@ namespace CurlSharp
return new CurlEasy(this);
}
/// <summary>
/// URL encode a String.
/// </summary>
/// <param name="url">The string to URL encode.</param>
/// <param name="length">
/// Input string length;
/// use 0 for cURL to determine.
/// </param>
/// <returns>A new URL encoded string.</returns>
/// <exception cref="NullReferenceException">
/// This is thrown if
/// the native <c>CURL*</c> handle wasn't created successfully.
/// </exception>
public string Escape(string url)
{
ensureHandle();
var length = System.Text.Encoding.ASCII.GetBytes(url).Length;
var p = NativeMethods.curl_easy_escape(_pCurl, url, length);
var s = Marshal.PtrToStringAnsi(p);
NativeMethods.curl_free(p);
return s;
}
/// <summary>
/// URL decode a String.
/// </summary>
/// <param name="url">The string to URL decode.</param>
/// <param name="length">
/// Input string length;
/// use 0 for cURL to determine.
/// </param>
/// <returns>A new URL decoded string.</returns>
/// <exception cref="NullReferenceException">
/// This is thrown if
/// the native <c>CURL*</c> handle wasn't created successfully.
/// </exception>
public string Unescape(string url)
{
ensureHandle();
var length = System.Text.Encoding.ASCII.GetBytes(url).Length;
var p = NativeMethods.curl_easy_unescape(_pCurl, url, length, out int outLength);
var s = Marshal.PtrToStringAnsi(p, outLength);
NativeMethods.curl_free(p);
return s;
}
/// <summary>
/// Get a string description of an error code.
/// </summary>
/// <param name="code">Error code.</param>
/// <returns>String description of the error code.</returns>
public String StrError(CurlCode code)
public string StrError(CurlCode code)
{
return Marshal.PtrToStringAnsi(NativeMethods.curl_easy_strerror(code));
}
@@ -1635,7 +1739,7 @@ namespace CurlSharp
/// This is thrown if
/// the native <c>CURL*</c> handle wasn't created successfully.
/// </exception>
public CurlCode GetInfo(CurlInfo info, ref Object objInfo)
public CurlCode GetInfo(CurlInfo info, ref object objInfo)
{
ensureHandle();
var retCode = CurlCode.Ok;
@@ -1651,7 +1755,7 @@ namespace CurlSharp
// private data
if (info == CurlInfo.Private)
{
objInfo = _privateData;
objInfo = Private;
return retCode;
}
@@ -1681,7 +1785,7 @@ namespace CurlSharp
{
ensureHandle();
// ensure it's an integral type
if ((int) info < CURLINFO_LONG || (int) info >= CURLINFO_DOUBLE)
if (((int) info < CURLINFO_LONG) || ((int) info >= CURLINFO_DOUBLE))
{
setLastError(CurlCode.BadFunctionArgument, info);
return -1;
@@ -1779,7 +1883,7 @@ namespace CurlSharp
var retCode = CurlCode.Ok;
var ptr = IntPtr.Zero;
if ((int) info < CURLINFO_STRING || (int) info >= CURLINFO_LONG)
if (((int) info < CURLINFO_STRING) || ((int) info >= CURLINFO_LONG))
return CurlCode.BadFunctionArgument;
retCode = NativeMethods.curl_easy_getinfo(_pCurl, info, ref ptr);
if (retCode == CurlCode.Ok)
@@ -1839,7 +1943,7 @@ namespace CurlSharp
var ptr = IntPtr.Zero;
// ensure it's an integral type
if ((int) info < CURLINFO_LONG || (int) info >= CURLINFO_DOUBLE)
if (((int) info < CURLINFO_LONG) || ((int) info >= CURLINFO_DOUBLE))
return CurlCode.BadFunctionArgument;
retCode = NativeMethods.curl_easy_getinfo(_pCurl, info, ref ptr);
@@ -1876,10 +1980,8 @@ namespace CurlSharp
retCode = NativeMethods.curl_easy_getinfo(_pCurl, info, ref ptr);
if (retCode == CurlCode.Ok)
{
if ((int) ptr < 0)
dt = new DateTime(0);
}
return retCode;
}
@@ -1908,34 +2010,38 @@ namespace CurlSharp
_pcbProgress = _curlProgressCallback;
_pcbDebug = _curlDebugCallback;
_pcbHeader = _curlHeaderCallback;
_pcbSslCtx = _curlSslCtxCallback;
_pcbIoctl = _curlIoctlCallback;
setLastError(NativeMethods.curl_easy_setopt_cb(_pCurl, CurlOption.WriteFunction, _pcbWrite),
CurlOption.WriteFunction);
setLastError(NativeMethods.curl_easy_setopt_cb(_pCurl, CurlOption.ReadFunction, _pcbRead),
CurlOption.ReadFunction);
setLastError(NativeMethods.curl_easy_setopt_cb(_pCurl, CurlOption.ProgressFunction, _pcbProgress),
CurlOption.ProgressFunction);
setLastError(NativeMethods.curl_easy_setopt_cb(_pCurl, CurlOption.HeaderFunction, _pcbHeader),
CurlOption.HeaderFunction);
setLastError(NativeMethods.curl_easy_setopt_cb(_pCurl, CurlOption.DebugFunction, _pcbDebug),
CurlOption.DebugFunction);
setLastError(NativeMethods.curl_easy_setopt_cb(_pCurl, CurlOption.IoctlFunction, _pcbIoctl),
CurlOption.IoctlFunction);
setLastError(NativeMethods.curl_easy_setopt(_pCurl, CurlOption.WriteFunction, _pcbWrite),
CurlOption.WriteFunction);
setLastError(NativeMethods.curl_easy_setopt(_pCurl, CurlOption.ReadFunction, _pcbRead),
CurlOption.ReadFunction);
setLastError(NativeMethods.curl_easy_setopt(_pCurl, CurlOption.ProgressFunction, _pcbProgress),
CurlOption.ProgressFunction);
setLastError(NativeMethods.curl_easy_setopt(_pCurl, CurlOption.HeaderFunction, _pcbHeader),
CurlOption.HeaderFunction);
setLastError(NativeMethods.curl_easy_setopt(_pCurl, CurlOption.DebugFunction, _pcbDebug),
CurlOption.DebugFunction);
setLastError(NativeMethods.curl_easy_setopt(_pCurl, CurlOption.SslCtxFunction, _pcbSslCtx),
CurlOption.SslCtxFunction);
setLastError(NativeMethods.curl_easy_setopt(_pCurl, CurlOption.IoctlFunction, _pcbIoctl),
CurlOption.IoctlFunction);
setLastError(NativeMethods.curl_easy_setopt(_pCurl, CurlOption.NoProgress, (IntPtr) 0),
CurlOption.NoProgress);
CurlOption.NoProgress);
setWriteData(null);
setReadData(null);
setHeaderData(null);
setProgressData(null);
setDebugData(null);
setSslCtxData(null);
setIoctlData(null);
#endif
}
#if USE_LIBCURLSHIM
// called by libcurlshim
// called by libcurlshim
private static int _shimWriteCallback(IntPtr buf, int sz, int nmemb, IntPtr parm)
{
var bytes = sz*nmemb;
@@ -1958,9 +2064,7 @@ namespace CurlSharp
var b = new byte[bytes];
var gch = (GCHandle) parm;
var curlEasy = (CurlEasy) gch.Target;
if (curlEasy == null)
return 0;
if (curlEasy._pfCurlRead == null)
if (curlEasy?._pfCurlRead == null)
return 0;
var nRead = curlEasy._pfCurlRead(b, sz, nmemb, curlEasy._readData);
if (nRead > 0)
@@ -1976,9 +2080,7 @@ namespace CurlSharp
{
var gch = (GCHandle) parm;
var curlEasy = (CurlEasy) gch.Target;
if (curlEasy == null)
return 0;
if (curlEasy._pfCurlProgress == null)
if (curlEasy?._pfCurlProgress == null)
return 0;
var nprog = curlEasy._pfCurlProgress(curlEasy._progressData, dlTotal, dlNow, ulTotal, ulNow);
return nprog;
@@ -1989,12 +2091,10 @@ namespace CurlSharp
{
var gch = (GCHandle) parm;
var curlEasy = (CurlEasy) gch.Target;
if (curlEasy == null)
return 0;
if (curlEasy._pfCurlDebug == null)
if (curlEasy?._pfCurlDebug == null)
return 0;
var message = Marshal.PtrToStringAnsi(msgBuf, msgBufSize);
curlEasy._pfCurlDebug(infoType, message, curlEasy._debugData);
curlEasy._pfCurlDebug(infoType, message, msgBufSize, curlEasy._debugData);
return 0;
}
@@ -2079,7 +2179,7 @@ namespace CurlSharp
if (_pfCurlDebug != null)
{
var userdata = getObject(pUserData);
_pfCurlDebug(infoType, message, userdata);
_pfCurlDebug(infoType, message, size, userdata);
}
return 0;
}
@@ -2107,7 +2207,7 @@ namespace CurlSharp
private CurlIoError _curlIoctlCallback(CurlIoCommand cmd, IntPtr parm)
{
if (_pfCurlIoctl == null || _ioctlData == null)
if ((_pfCurlIoctl == null) || (_ioctlData == null))
return CurlIoError.UnknownCommand;
return _pfCurlIoctl(cmd, _ioctlData);
}

View File

@@ -2,7 +2,7 @@
*
* CurlS#arp
*
* Copyright (c) 2014 Dr. Masroor Ehsan (masroore@gmail.com)
* Copyright (c) 2013-2017 Dr. Masroor Ehsan (masroore@gmail.com)
* Portions copyright (c) 2004, 2005 Jeff Phillips (jeff@jeffp.net)
*
* This software is licensed as described in the file LICENSE, which you
@@ -19,6 +19,7 @@
using System;
using System.Runtime.InteropServices;
using CurlSharp.Enums;
namespace CurlSharp
{
@@ -31,7 +32,7 @@ namespace CurlSharp
public CurlFormOption Option;
/// <summary>Value for the option.</summary>
public Object Value;
public object Value;
}
/// <summary>
@@ -77,10 +78,7 @@ namespace CurlSharp
}
// for CurlEasy.SetOpt()
internal IntPtr GetHandle()
{
return _pItems[0];
}
internal IntPtr GetHandle() => _pItems[0];
/// <summary>
/// Add a multi-part form section.
@@ -186,7 +184,7 @@ namespace CurlSharp
var formArrayPos = 0;
var argArrayPos = 0;
var ptrArrayPos = 0;
Object obj = null;
object obj = null;
while ((retCode == CurlFormCode.Ok) &&
(ptrArrayPos < nRealCount))
@@ -207,14 +205,14 @@ namespace CurlSharp
{
iCode = (CurlFormOption) Convert.ToInt32(
args.GetValue(argArrayPos++));
obj = (iCode == CurlFormOption.End)
obj = iCode == CurlFormOption.End
? null
: args.GetValue(argArrayPos++);
}
switch (iCode)
{
// handle byte-array pointer-related items
// handle byte-array pointer-related items
case CurlFormOption.PtrName:
case CurlFormOption.PtrContents:
case CurlFormOption.BufferPtr:
@@ -240,7 +238,7 @@ namespace CurlSharp
break;
}
// length values
// length values
case CurlFormOption.NameLength:
case CurlFormOption.ContentsLength:
case CurlFormOption.BufferLength:
@@ -249,7 +247,7 @@ namespace CurlSharp
Convert.ToInt32(obj);
break;
// strings
// strings
case CurlFormOption.CopyName:
case CurlFormOption.CopyContents:
case CurlFormOption.FileContent:
@@ -259,7 +257,7 @@ namespace CurlSharp
case CurlFormOption.Buffer:
{
aPointers[ptrArrayPos++] = (IntPtr) iCode;
var s = obj as String;
var s = obj as string;
if (s == null)
retCode = CurlFormCode.UnknownOption;
else
@@ -273,7 +271,7 @@ namespace CurlSharp
break;
}
// array case: already handled
// array case: already handled
case CurlFormOption.Array:
if (aForms != null)
retCode = CurlFormCode.IllegalArray;
@@ -285,7 +283,7 @@ namespace CurlSharp
}
break;
// slist
// slist
case CurlFormOption.ContentHeader:
{
aPointers[ptrArrayPos++] = (IntPtr) iCode;
@@ -297,12 +295,12 @@ namespace CurlSharp
break;
}
// erroneous stuff
// erroneous stuff
case CurlFormOption.Nothing:
retCode = CurlFormCode.Incomplete;
break;
// end
// end
case CurlFormOption.End:
if (aForms != null) // end of form
{
@@ -313,7 +311,7 @@ namespace CurlSharp
aPointers[ptrArrayPos++] = (IntPtr) iCode;
break;
// default is unknown
// default is unknown
default:
retCode = CurlFormCode.UnknownOption;
break;
@@ -331,9 +329,9 @@ namespace CurlSharp
retCode = (CurlFormCode) NativeMethods.curl_shim_formadd(_pItems, aPointers, nRealCount);
#else
retCode = (CurlFormCode) NativeMethods.curl_formadd(ref _pItems[0], ref _pItems[1],
(int) aPointers[0], aPointers[1],
(int) aPointers[2], aPointers[3],
(int) aPointers[4]);
(int) aPointers[0], aPointers[1],
(int) aPointers[2], aPointers[3],
(int) aPointers[4]);
#endif
}
@@ -350,7 +348,7 @@ namespace CurlSharp
case CurlFormOption.ContentType:
case CurlFormOption.Filename:
case CurlFormOption.Buffer:
// byte buffer cases
// byte buffer cases
case CurlFormOption.PtrName:
case CurlFormOption.PtrContents:
case CurlFormOption.BufferPtr:

View File

@@ -2,7 +2,7 @@
*
* CurlS#arp
*
* Copyright (c) 2014 Dr. Masroor Ehsan (masroore@gmail.com)
* Copyright (c) 2013-2017 Dr. Masroor Ehsan (masroore@gmail.com)
* Portions copyright (c) 2004, 2005 Jeff Phillips (jeff@jeffp.net)
*
* This software is licensed as described in the file LICENSE, which you
@@ -20,6 +20,7 @@
using System;
using System.Collections;
using System.Runtime.InteropServices;
using CurlSharp.Enums;
namespace CurlSharp
{
@@ -39,6 +40,7 @@ namespace CurlSharp
private NativeMethods.fd_set _fd_read, _fd_write, _fd_except;
#endif
private IntPtr _pMulti;
private CurlPipelining _pipelining;
/// <summary>
/// Constructor
@@ -74,10 +76,7 @@ namespace CurlSharp
/// <summary>
/// Max file descriptor
/// </summary>
public int MaxFd
{
get { return _maxFd; }
}
public int MaxFd => _maxFd;
/// <summary>
/// Cleanup unmanaged resources.
@@ -149,6 +148,17 @@ namespace CurlSharp
return NativeMethods.curl_multi_add_handle(_pMulti, p);
}
public CurlPipelining Pipelining
{
get { return _pipelining; }
set
{
ensureHandle();
_pipelining = value;
NativeMethods.curl_multi_setopt(_pMulti, CurlMultiOption.Pipelining, (long) value);
}
}
/// <summary>
/// Remove an CurlEasy object.
/// </summary>
@@ -178,10 +188,7 @@ namespace CurlSharp
/// string description.
/// </param>
/// <returns>The string description.</returns>
public String StrError(CurlMultiCode errorNum)
{
return Marshal.PtrToStringAnsi(NativeMethods.curl_multi_strerror(errorNum));
}
public string StrError(CurlMultiCode errorNum) => Marshal.PtrToStringAnsi(NativeMethods.curl_multi_strerror(errorNum));
/// <summary>
/// Read/write data to/from each CurlEasy object.
@@ -269,8 +276,6 @@ namespace CurlSharp
if (_bGotMultiInfo)
return _multiInfo;
_bGotMultiInfo = true;
#if USE_LIBCURLSHIM
var nMsgs = 0;
var pInfo = NativeMethods.curl_shim_multi_info_read(_pMulti, ref nMsgs);
@@ -286,17 +291,14 @@ namespace CurlSharp
}
NativeMethods.curl_shim_multi_info_free(pInfo);
}
return _multiInfo;
_bGotMultiInfo = true;
#else
throw new NotImplementedException(
"Sorry, CurlMulti.InfoRead is not implemented on this system."
);
_multiInfo = null;
throw new NotImplementedException("CurlMulti.InfoRead()");
#endif
#pragma warning disable CS0162 // Unreachable code detected when not compiling with the shim
return _multiInfo;
#pragma warning restore CS0162 // Unreachable code detected when not compiling with the shim
}
}
}
}

View File

@@ -2,7 +2,7 @@
*
* CurlS#arp
*
* Copyright (c) 2013 Dr. Masroor Ehsan (masroore@gmail.com)
* Copyright (c) 2013-2017 Dr. Masroor Ehsan (masroore@gmail.com)
* Portions copyright (c) 2004, 2005 Jeff Phillips (jeff@jeffp.net)
*
* This software is licensed as described in the file LICENSE, which you
@@ -17,6 +17,8 @@
*
**************************************************************************/
using CurlSharp.Enums;
namespace CurlSharp
{
/// <summary>
@@ -26,40 +28,28 @@ namespace CurlSharp
public sealed class CurlMultiInfo
{
// private members
private readonly CurlEasy _mCurlEasy;
private readonly CurlMessage _msg;
private readonly CurlCode _result;
internal CurlMultiInfo(CurlMessage msg, CurlEasy curlEasy, CurlCode result)
{
_msg = msg;
_mCurlEasy = curlEasy;
_result = result;
Msg = msg;
CurlEasyHandle = curlEasy;
Result = result;
}
/// <summary>
/// Get the status code from the <see cref="CurlMessage" /> enumeration.
/// </summary>
public CurlMessage Msg
{
get { return _msg; }
}
public CurlMessage Msg { get; }
/// <summary>
/// Get the <see cref="CurlEasy" /> object for this child.
/// </summary>
public CurlEasy CurlEasyHandle
{
get { return _mCurlEasy; }
}
public CurlEasy CurlEasyHandle { get; }
/// <summary>
/// Get the return code for the transfer, as a
/// <see cref="CurlCode" />.
/// </summary>
public CurlCode Result
{
get { return _result; }
}
public CurlCode Result { get; }
}
}

View File

@@ -19,6 +19,8 @@
using System;
using System.Runtime.InteropServices;
using CurlSharp.Callbacks;
using CurlSharp.Enums;
namespace CurlSharp
{
@@ -31,17 +33,12 @@ namespace CurlSharp
{
// private members
private GCHandle _hThis; // for handle extraction
private CurlShareCode _lastErrorCode;
private string _lastErrorDescription;
#if USE_LIBCURLSHIM
private NativeMethods._ShimLockCallback _pDelLock; // lock delegate
private NativeMethods._ShimUnlockCallback _pDelUnlock; // unlock delegate
#endif
private IntPtr _pShare; // share handle
private CurlShareLockCallback _pfLock; // client lock delegate
private CurlShareUnlockCallback _pfUnlock; // client unlock delegate
private IntPtr _ptrThis; // numeric handle
private Object _userData; // user data for delegates
/// <summary>
/// Constructor
@@ -65,23 +62,11 @@ namespace CurlSharp
installDelegates();
}
public object UserData
{
get { return _userData; }
set { _userData = value; }
}
public object UserData { get; set; }
public CurlShareUnlockCallback UnlockFunction
{
get { return _pfUnlock; }
set { _pfUnlock = value; }
}
public CurlShareUnlockCallback UnlockFunction { get; set; }
public CurlShareLockCallback LockFunction
{
get { return _pfLock; }
set { _pfLock = value; }
}
public CurlShareLockCallback LockFunction { get; set; }
public CurlLockData Share
{
@@ -93,15 +78,9 @@ namespace CurlSharp
set { setShareOption(CurlShareOption.Unshare, value); }
}
public CurlShareCode LastErrorCode
{
get { return _lastErrorCode; }
}
public CurlShareCode LastErrorCode { get; private set; }
public string LastErrorDescription
{
get { return _lastErrorDescription; }
}
public string LastErrorDescription { get; private set; }
/// <summary>
/// Cleanup unmanaged resources.
@@ -140,7 +119,7 @@ namespace CurlSharp
/// This is thrown if
/// the native <c>share</c> handle wasn't created successfully.
/// </exception>
public CurlShareCode SetOpt(CurlShareOption option, Object parameter)
public CurlShareCode SetOpt(CurlShareOption option, object parameter)
{
EnsureHandle();
var retCode = CurlShareCode.Ok;
@@ -151,14 +130,14 @@ namespace CurlSharp
var lf = parameter as CurlShareLockCallback;
if (lf == null)
return CurlShareCode.BadOption;
_pfLock = lf;
LockFunction = lf;
break;
case CurlShareOption.UnlockFunction:
var ulf = parameter as CurlShareUnlockCallback;
if (ulf == null)
return CurlShareCode.BadOption;
_pfUnlock = ulf;
UnlockFunction = ulf;
break;
case CurlShareOption.Share:
@@ -170,7 +149,7 @@ namespace CurlSharp
}
case CurlShareOption.UserData:
_userData = parameter;
UserData = parameter;
break;
default:
@@ -182,10 +161,10 @@ namespace CurlSharp
private void setLastError(CurlShareCode code, CurlShareOption opt)
{
if (_lastErrorCode == CurlShareCode.Ok && code != CurlShareCode.Ok)
if ((LastErrorCode == CurlShareCode.Ok) && (code != CurlShareCode.Ok))
{
_lastErrorCode = code;
_lastErrorDescription = string.Format("Error: {0} setting option {1}", StrError(code), opt);
LastErrorCode = code;
LastErrorDescription = $"Error: {StrError(code)} setting option {opt}";
}
}
@@ -206,10 +185,8 @@ namespace CurlSharp
/// string description.
/// </param>
/// <returns>The string description.</returns>
public String StrError(CurlShareCode errorNum)
{
return Marshal.PtrToStringAnsi(NativeMethods.curl_share_strerror(errorNum));
}
public string StrError(CurlShareCode errorNum)
=> Marshal.PtrToStringAnsi(NativeMethods.curl_share_strerror(errorNum));
private void Dispose(bool disposing)
{
@@ -229,10 +206,7 @@ namespace CurlSharp
}
}
internal IntPtr GetHandle()
{
return _pShare;
}
internal IntPtr GetHandle() => _pShare;
private void EnsureHandle()
{
@@ -243,7 +217,7 @@ namespace CurlSharp
private void installDelegates()
{
_hThis = GCHandle.Alloc(this);
_ptrThis = (IntPtr)_hThis;
_ptrThis = (IntPtr) _hThis;
#if USE_LIBCURLSHIM
_pDelLock = LockDelegate;
_pDelUnlock = UnlockDelegate;
@@ -255,22 +229,14 @@ namespace CurlSharp
{
var gch = (GCHandle) userPtr;
var share = (CurlShare) gch.Target;
if (share == null)
return;
if (share.LockFunction == null)
return;
share.LockFunction((CurlLockData) data, (CurlLockAccess) access, share.UserData);
share?.LockFunction?.Invoke((CurlLockData) data, (CurlLockAccess) access, share.UserData);
}
internal static void UnlockDelegate(int data, IntPtr userPtr)
{
var gch = (GCHandle) userPtr;
var share = (CurlShare) gch.Target;
if (share == null)
return;
if (share.UnlockFunction == null)
return;
share.UnlockFunction((CurlLockData) data, share.UserData);
share?.UnlockFunction?.Invoke((CurlLockData) data, share.UserData);
}
}
}

View File

@@ -1,103 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{74420A79-CC16-442C-8B1E-7C1B913844F0}</ProjectGuid>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>CurlSharp</RootNamespace>
<AssemblyName>CurlSharp</AssemblyName>
<FileAlignment>512</FileAlignment>
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
<TargetFrameworkProfile />
<TargetFrameworks>net452;netstandard2.0</TargetFrameworks>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug</OutputPath>
<DefineConstants>DEBUG</DefineConstants>
<WarningLevel>4</WarningLevel>
<ConsolePause>false</ConsolePause>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
<Prefer32Bit>false</Prefer32Bit>
<PropertyGroup>
<AllowUnsafeBlocks>True</AllowUnsafeBlocks>
<PackageId>CurlSharp</PackageId>
<GeneratePackageOnBuild>false</GeneratePackageOnBuild>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>full</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release</OutputPath>
<WarningLevel>4</WarningLevel>
<ConsolePause>false</ConsolePause>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
<DefineConstants>
</DefineConstants>
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
</ItemGroup>
<ItemGroup>
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="Curl.cs" />
<Compile Include="CurlEasy.cs" />
<Compile Include="CurlHttpMultiPartForm.cs" />
<Compile Include="CurlMulti.cs" />
<Compile Include="CurlMultiInfo.cs" />
<Compile Include="CurlShare.cs" />
<Compile Include="CurlSlist.cs" />
<Compile Include="CurlSslContext.cs" />
<Compile Include="CurlVersionInfoData.cs" />
<Compile Include="NativeMethods.cs" />
<Compile Include="Enums\CurlClosePolicy.cs" />
<Compile Include="Enums\CurlCode.cs" />
<Compile Include="Enums\CurlFormCode.cs" />
<Compile Include="Enums\CurlFormOption.cs" />
<Compile Include="Enums\CurlFtpAuth.cs" />
<Compile Include="Enums\CurlFtpSsl.cs" />
<Compile Include="Enums\CurlHttpAuth.cs" />
<Compile Include="Enums\CurlHttpVersion.cs" />
<Compile Include="Enums\CurlInfo.cs" />
<Compile Include="Enums\CurlInfoType.cs" />
<Compile Include="Enums\CurlInitFlag.cs" />
<Compile Include="Enums\CurlIoCommand.cs" />
<Compile Include="Enums\CurlIoError.cs" />
<Compile Include="Enums\CurlIpResolve.cs" />
<Compile Include="Enums\CurlLockAccess.cs" />
<Compile Include="Enums\CurlLockData.cs" />
<Compile Include="Enums\CurlMessage.cs" />
<Compile Include="Enums\CurlMultiCode.cs" />
<Compile Include="Enums\CurlNetrcOption.cs" />
<Compile Include="Enums\CurlOption.cs" />
<Compile Include="Enums\CurlProxyType.cs" />
<Compile Include="Enums\CurlShareCode.cs" />
<Compile Include="Enums\CurlShareOption.cs" />
<Compile Include="Enums\CurlSslVersion.cs" />
<Compile Include="Enums\CurlTimeCond.cs" />
<Compile Include="Enums\CurlVersion.cs" />
<Compile Include="Enums\CurlVersionFeatureBitmask.cs" />
<Compile Include="Callbacks\CurlEasyCallbacks.cs" />
<Compile Include="Callbacks\CurlShareCallbacks.cs" />
<Compile Include="SSLFix.cs" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
<ItemGroup />
<ProjectExtensions>
<MonoDevelop>
<Properties>
<Policies>
<TextStylePolicy inheritsSet="VisualStudio" inheritsScope="text/plain" scope="text/x-csharp" />
<CSharpFormattingPolicy IndentSwitchBody="True" IndentBlocksInsideExpressions="True" AnonymousMethodBraceStyle="NextLine" PropertyBraceStyle="NextLine" PropertyGetBraceStyle="NextLine" PropertySetBraceStyle="NextLine" EventBraceStyle="NextLine" EventAddBraceStyle="NextLine" EventRemoveBraceStyle="NextLine" StatementBraceStyle="NextLine" ElseNewLinePlacement="NewLine" CatchNewLinePlacement="NewLine" FinallyNewLinePlacement="NewLine" WhileNewLinePlacement="DoNotCare" ArrayInitializerWrapping="DoNotChange" ArrayInitializerBraceStyle="NextLine" BeforeMethodDeclarationParentheses="False" BeforeMethodCallParentheses="False" BeforeConstructorDeclarationParentheses="False" NewLineBeforeConstructorInitializerColon="NewLine" NewLineAfterConstructorInitializerColon="SameLine" BeforeDelegateDeclarationParentheses="False" NewParentheses="False" SpacesBeforeBrackets="False" inheritsSet="Mono" inheritsScope="text/x-csharp" scope="text/x-csharp" />
</Policies>
</Properties>
</MonoDevelop>
</ProjectExtensions>
</Project>

View File

@@ -2,7 +2,7 @@
*
* CurlS#arp
*
* Copyright (c) 2013 Dr. Masroor Ehsan (masroore@gmail.com)
* Copyright (c) 2013-2017 Dr. Masroor Ehsan (masroore@gmail.com)
* Portions copyright (c) 2004, 2005 Jeff Phillips (jeff@jeffp.net)
*
* This software is licensed as described in the file LICENSE, which you
@@ -20,6 +20,7 @@
using System;
using System.Collections.Generic;
using System.Runtime.InteropServices;
using CurlSharp.Enums;
namespace CurlSharp
{
@@ -31,19 +32,6 @@ namespace CurlSharp
/// </summary>
public class CurlSlist : IDisposable
{
#if !USE_LIBCURLSHIM
[StructLayout(LayoutKind.Sequential)]
private class curl_slist
{
/// char*
[MarshalAs(UnmanagedType.LPStr)] public string data;
/// curl_slist*
public IntPtr next;
}
#endif
private IntPtr _handle;
/// <summary>
/// Constructor
/// </summary>
@@ -54,12 +42,12 @@ namespace CurlSharp
public CurlSlist()
{
Curl.EnsureCurl();
_handle = IntPtr.Zero;
Handle = IntPtr.Zero;
}
public CurlSlist(IntPtr handle)
{
_handle = handle;
Handle = handle;
}
/// <summary>
@@ -69,13 +57,13 @@ namespace CurlSharp
{
get
{
if (_handle == IntPtr.Zero)
if (Handle == IntPtr.Zero)
return null;
var strings = new List<string>();
#if !USE_LIBCURLSHIM
var slist = new curl_slist();
Marshal.PtrToStructure(_handle, slist);
Marshal.PtrToStructure(Handle, slist);
while (true)
{
@@ -90,6 +78,17 @@ namespace CurlSharp
}
}
internal IntPtr Handle { get; private set; }
/// <summary>
/// Free all internal strings.
/// </summary>
public void Dispose()
{
GC.SuppressFinalize(this);
Dispose(true);
}
/// <summary>
/// Destructor
/// </summary>
@@ -105,40 +104,38 @@ namespace CurlSharp
public void Append(string str)
{
#if USE_LIBCURLSHIM
_handle = NativeMethods.curl_shim_add_string_to_slist(_handle, str);
Handle = NativeMethods.curl_shim_add_string_to_slist(Handle, str);
#else
_handle = NativeMethods.curl_slist_append(_handle, str);
Handle = NativeMethods.curl_slist_append(Handle, str);
#endif
}
/// <summary>
/// Free all internal strings.
/// </summary>
public void Dispose()
{
GC.SuppressFinalize(this);
Dispose(true);
}
internal IntPtr Handle
{
get { return _handle; }
}
private void Dispose(bool disposing)
{
lock (this)
{
if (_handle != IntPtr.Zero)
if (Handle != IntPtr.Zero)
{
#if USE_LIBCURLSHIM
NativeMethods.curl_shim_free_slist(_handle);
NativeMethods.curl_shim_free_slist(Handle);
#else
NativeMethods.curl_slist_free_all(_handle);
NativeMethods.curl_slist_free_all(Handle);
#endif
_handle = IntPtr.Zero;
Handle = IntPtr.Zero;
}
}
}
#if !USE_LIBCURLSHIM
[StructLayout(LayoutKind.Sequential)]
private class curl_slist
{
/// char*
[MarshalAs(UnmanagedType.LPStr)] public string data;
/// curl_slist*
public IntPtr next;
}
#endif
}
}

View File

@@ -2,7 +2,7 @@
*
* CurlS#arp
*
* Copyright (c) 2013 Dr. Masroor Ehsan (masroore@gmail.com)
* Copyright (c) 2013-2017 Dr. Masroor Ehsan (masroore@gmail.com)
* Portions copyright (c) 2004, 2005 Jeff Phillips (jeff@jeffp.net)
*
* This software is licensed as described in the file LICENSE, which you
@@ -18,6 +18,7 @@
**************************************************************************/
using System;
using CurlSharp.Callbacks;
namespace CurlSharp
{
@@ -31,19 +32,14 @@ namespace CurlSharp
/// </summary>
public sealed class CurlSslContext
{
private readonly IntPtr _pvContext;
internal CurlSslContext(IntPtr pvContext)
{
_pvContext = pvContext;
Context = pvContext;
}
/// <summary>
/// Get the underlying OpenSSL context.
/// </summary>
public IntPtr Context
{
get { return _pvContext; }
}
public IntPtr Context { get; }
}
}

View File

@@ -2,7 +2,7 @@
*
* CurlS#arp
*
* Copyright (c) 2013 Dr. Masroor Ehsan (masroore@gmail.com)
* Copyright (c) 2013-2017 Dr. Masroor Ehsan (masroore@gmail.com)
* Portions copyright (c) 2004, 2005 Jeff Phillips (jeff@jeffp.net)
*
* This software is licensed as described in the file LICENSE, which you
@@ -18,7 +18,7 @@
**************************************************************************/
using System;
using System.Runtime.InteropServices;
using CurlSharp.Enums;
namespace CurlSharp
{

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -1,4 +1,4 @@
namespace CurlSharp
namespace CurlSharp.Enums
{
/// <summary>
/// Contains values used to specify the HTTP version level when using
@@ -23,9 +23,24 @@ namespace CurlSharp
/// </summary>
Http1_1 = 2,
/// <summary>
/// Enforce HTTP 2 requests.
/// </summary>
Http2_0 = 3,
/// <summary>
/// Enforce version 2 for HTTPS, version 1.1 for HTTP.
/// </summary>
Http2_Tls = 4,
/// <summary>
/// Enforce HTTP 2 without HTTP/1.1 upgrade.
/// </summary>
Http2_PriorKnowledge = 5,
/// <summary>
/// Last entry in enumeration; do not use in application code.
/// </summary>
Last = 3
};
Last = 6
}
}

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -0,0 +1,46 @@
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
//
// Copyright (c) 2017, Dr. Masroor Ehsan. All rights reserved.
//
// $Id:$
//
// Last modified: 25.01.2017 1:29 AM
//
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
namespace CurlSharp.Enums
{
public enum CurlMultiOption
{
/* This is the socket callback function pointer */
SocketFunction = CurlOptType.FunctionPoint + 1,
/* This is the argument passed to the socket callback */
SocketData = CurlOptType.ObjectPoint + 2,
/* set to 1 to enable pipelining for this multi handle */
Pipelining = CurlOptType.Long + 3,
/* This is the timer callback function pointer */
TimerFunction = CurlOptType.FunctionPoint + 4,
/* This is the argument passed to the timer callback */
TimerDate = CurlOptType.ObjectPoint + 5,
/* maximum number of entries in the connection cache */
MaxConnects = CurlOptType.Long + 6,
/* maximum number of (pipelining) connections to one host */
MaxHostConnections = CurlOptType.Long + 7,
/* maximum number of requests in a pipeline */
MaxPipelineLength = CurlOptType.Long + 8,
/* a connection with a content-length longer than this will not be considered for pipelining */
ContentLengthPenaltySize = CurlOptType.Offset + 9,
/* a connection with a chunk length longer than this will not be considered for pipelining */
ChunkLengthPenaltySize = CurlOptType.Offset + 10,
/* a list of site names(+port) that are blacklisted from pipelining */
PipeliningSiteBlackList = CurlOptType.ObjectPoint + 11,
/* a list of server types that are blacklisted from pipelining */
PipeliningServerBlackList = CurlOptType.ObjectPoint + 12,
/* maximum number of open connections in total */
MaxTotalConnections = CurlOptType.Long + 13,
/* This is the server push callback function pointer */
PushFunction = CurlOptType.FunctionPoint + 14,
/* This is the argument passed to the server push callback */
PushData = CurlOptType.ObjectPoint + 15
}
}

View File

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

View File

@@ -0,0 +1,21 @@
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
//
// Copyright (c) 2017, Dr. Masroor Ehsan. All rights reserved.
//
// $Id:$
//
// Last modified: 25.01.2017 1:31 AM
//
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
namespace CurlSharp.Enums
{
public enum CurlOptType
{
Long = 0,
ObjectPoint = 10000,
StringPoint = 10000,
FunctionPoint = 20000,
Offset = 30000
}
}

View File

@@ -17,7 +17,9 @@
*
**************************************************************************/
namespace CurlSharp
using CurlSharp.Callbacks;
namespace CurlSharp.Enums
{
/// <summary>
/// One of these is passed as the first parameter to
@@ -1075,6 +1077,32 @@ namespace CurlSharp
/// </summary>
SslCipherList = 10083,
/// <summary>
/// Object reference to pass to the ssl context delegate set by the option
/// <c>SslCtxFunction</c>, this is the pointer you'll get as the
/// second parameter, otherwise <c>null</c>. (Added in 7.11.0)
/// </summary>
SslCtxData = 10109,
/// <summary>
/// Reference to an <see cref="CurlEasy.CurlSslContextCallback" /> delegate.
/// This delegate gets called by libcurl just before the initialization of
/// an Ssl connection after having processed all other Ssl related options
/// to give a last chance to an application to modify the behaviour of
/// openssl's ssl initialization. The <see cref="CurlSslContext" /> parameter
/// wraps a pointer to an openssl SSL_CTX. If an error is returned no attempt
/// to establish a connection is made and the perform operation will return
/// the error code from this callback function. Set the parm argument with
/// the <c>SslCtxData</c> option. This option was introduced
/// in 7.11.0.
/// <note>
/// To use this properly, a non-trivial amount of knowledge of the openssl
/// libraries is necessary. Using this function allows for example to use
/// openssl callbacks to add additional validation code for certificates,
/// and even to change the actual URI of an HTTPS request.
/// </note>
/// </summary>
SslCtxFunction = 20108,
/// <summary>
/// Pass an <c>int</c>. Set if we should verify the common name from the

View File

@@ -0,0 +1,21 @@
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
//
// Copyright (c) 2017, Dr. Masroor Ehsan. All rights reserved.
//
// $Id:$
//
// Last modified: 25.01.2017 1:23 AM
//
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
namespace CurlSharp.Enums
{
/* bitmask bits for CURLMOPT_PIPELINING */
public enum CurlPipelining : long
{
Nothing = 0,
Http1 = 1,
Multiplex = 2
}
}

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

29
src/CurlSharp/LICENSE Normal file
View File

@@ -0,0 +1,29 @@
Copyright (c) 2013, Masroor Ehsan Choudhury
All rights reserved.
Redistribution and use in source and binary forms, with or without modification,
are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright notice, this
list of conditions and the following disclaimer in the documentation and/or
other materials provided with the distribution.
* Neither the name of the {organization} nor the names of its
contributors may be used to endorse or promote products derived from
this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
https://github.com/masroore/CurlSharp

View File

@@ -2,8 +2,9 @@
*
* CurlS#arp
*
* Copyright (c) 2014 Dr. Masroor Ehsan (masroore@gmail.com)
* Copyright (c) 2013-2017 Dr. Masroor Ehsan (masroore@gmail.com)
* Portions copyright (c) 2004, 2005 Jeff Phillips (jeff@jeffp.net)
* Portions copyright (c) 2017 Katelyn Gigante (https://github.com/silasary)
*
* This software is licensed as described in the file LICENSE, which you
* should have received as part of this distribution.
@@ -20,383 +21,599 @@
//#define USE_LIBCURLSHIM
using System;
using System.IO;
using System.Reflection;
using System.Runtime.InteropServices;
using CurlSharp.Enums;
namespace CurlSharp
{
/// <summary>
/// P/Invoke signatures.
/// </summary>
internal static unsafe class NativeMethods
{
#if WIN64
private const string CURL_LIB = "libcurl64.dll";
/// <summary>
/// P/Invoke signatures.
/// </summary>
internal static unsafe class NativeMethods
{
private const string LIBCURL = "libcurl";
private const string LIBCURLSHIM = "libcurlshim";
private const string LIBC_LINUX = "libc";
#if USE_LIBCURLSHIM
private const string CURLSHIM_LIB = "libcurlshim64.dll";
#endif
#else
#if LINUX
private const string CURL_LIB = "libcurl";
#else
private const string CURL_LIB = "libcurl.dll";
#if USE_LIBCURLSHIM
private const string CURLSHIM_LIB = "libcurlshim.dll";
#endif
#endif
#endif
#if !USE_LIBCURLSHIM
#if LINUX
private const string WINSOCK_LIB = "libc";
#else
private const string WINSOCK_LIB = "ws2_32.dll";
private const string LIB_DIR_WIN64 = "amd64";
private const string LIB_DIR_WIN32 = "i386";
static NativeMethods()
{
if (Environment.OSVersion.Platform == PlatformID.Win32NT)
{
if (Environment.Is64BitOperatingSystem)
{
SetDllDirectory(Path.Combine(AssemblyDirectory, LIB_DIR_WIN64));
}
else
{
SetDllDirectory(Path.Combine(AssemblyDirectory, LIB_DIR_WIN32));
}
}
#if USE_LIBCURLSHIM
if (!RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
throw new InvalidOperationException("Can not run on other platform than Win NET");
#endif
#endif
}
// internal delegates from cURL
[DllImport("kernel32.dll", CharSet = CharSet.Unicode, SetLastError = true)]
[return: MarshalAs(UnmanagedType.Bool)]
private static extern bool SetDllDirectory(string lpPathName);
// libcurl imports
[DllImport (CURL_LIB, CallingConvention = CallingConvention.Cdecl)]
internal static extern CurlCode curl_global_init (int flags);
private static string AssemblyDirectory
{
get
{
var codeBase = typeof(NativeMethods).GetTypeInfo().Assembly.CodeBase;
var uri = new UriBuilder(codeBase);
var path = Uri.UnescapeDataString(uri.Path);
return Path.GetDirectoryName(path);
}
}
[DllImport (CURL_LIB, CallingConvention = CallingConvention.Cdecl)]
internal static extern void curl_global_cleanup ();
#region curl_global_init
[DllImport (CURL_LIB, CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Ansi)]
internal static extern IntPtr curl_escape (String url, int length);
[DllImport(LIBCURL, CallingConvention = CallingConvention.Cdecl)]
public static extern CurlCode curl_global_init(int flags);
[DllImport (CURL_LIB, CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Ansi)]
internal static extern IntPtr curl_unescape (String url, int length);
#endregion
[DllImport (CURL_LIB, CallingConvention = CallingConvention.Cdecl)]
internal static extern void curl_free (IntPtr p);
#region curl_global_cleanup
[DllImport (CURL_LIB, CallingConvention = CallingConvention.Cdecl)]
internal static extern IntPtr curl_version ();
[DllImport(LIBCURL, CallingConvention = CallingConvention.Cdecl)]
public static extern void curl_global_cleanup();
[DllImport (CURL_LIB, CallingConvention = CallingConvention.Cdecl)]
internal static extern IntPtr curl_easy_init ();
#endregion
[DllImport (CURL_LIB, CallingConvention = CallingConvention.Cdecl)]
internal static extern void curl_easy_cleanup (IntPtr pCurl);
#region curl_easy_escape
[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
internal delegate int _CurlGenericCallback (IntPtr ptr, int sz, int nmemb, IntPtr userdata);
[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
internal delegate int _CurlProgressCallback (
IntPtr extraData, double dlTotal, double dlNow, double ulTotal, double ulNow);
[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
internal delegate int _CurlDebugCallback (
IntPtr ptrCurl, CurlInfoType infoType, string message, int size, IntPtr ptrUserData);
[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
internal delegate int _CurlSslCtxCallback (IntPtr ctx, IntPtr parm);
[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
internal delegate CurlIoError _CurlIoctlCallback (CurlIoCommand cmd, IntPtr parm);
// curl_easy_setopt() overloads
[DllImport (CURL_LIB, CallingConvention = CallingConvention.Cdecl)]
internal static extern CurlCode curl_easy_setopt (IntPtr pCurl, CurlOption opt, IntPtr parm);
[DllImport (CURL_LIB, CallingConvention = CallingConvention.Cdecl)]
internal static extern CurlCode curl_easy_setopt (IntPtr pCurl, CurlOption opt, string parm);
[DllImport (CURL_LIB, CallingConvention = CallingConvention.Cdecl)]
internal static extern CurlCode curl_easy_setopt (IntPtr pCurl, CurlOption opt, byte[] parm);
[DllImport (CURL_LIB, CallingConvention = CallingConvention.Cdecl)]
internal static extern CurlCode curl_easy_setopt (IntPtr pCurl, CurlOption opt, long parm);
[DllImport (CURL_LIB, CallingConvention = CallingConvention.Cdecl)]
internal static extern CurlCode curl_easy_setopt (IntPtr pCurl, CurlOption opt, bool parm);
[DllImport (CURL_LIB, CallingConvention = CallingConvention.Cdecl, EntryPoint = "curl_easy_setopt")]
internal static extern CurlCode curl_easy_setopt_cb (IntPtr pCurl, CurlOption opt, _CurlGenericCallback parm);
[DllImport (CURL_LIB, CallingConvention = CallingConvention.Cdecl, EntryPoint = "curl_easy_setopt")]
internal static extern CurlCode curl_easy_setopt_cb (IntPtr pCurl, CurlOption opt, _CurlProgressCallback parm);
[DllImport (CURL_LIB, CallingConvention = CallingConvention.Cdecl, EntryPoint = "curl_easy_setopt")]
internal static extern CurlCode curl_easy_setopt_cb (IntPtr pCurl, CurlOption opt, _CurlDebugCallback parm);
[DllImport (CURL_LIB, CallingConvention = CallingConvention.Cdecl, EntryPoint = "curl_easy_setopt")]
internal static extern CurlCode curl_easy_setopt_cb (IntPtr pCurl, CurlOption opt, _CurlSslCtxCallback parm);
[DllImport (CURL_LIB, CallingConvention = CallingConvention.Cdecl, EntryPoint = "curl_easy_setopt")]
internal static extern CurlCode curl_easy_setopt_cb (IntPtr pCurl, CurlOption opt, _CurlIoctlCallback parm);
#if !USE_LIBCURLSHIM
[DllImport (CURL_LIB, CallingConvention = CallingConvention.Cdecl)]
internal static extern CurlMultiCode curl_multi_fdset (IntPtr pmulti,
[In, Out] ref fd_set read_fd_set,
[In, Out] ref fd_set write_fd_set,
[In, Out] ref fd_set exc_fd_set,
[In, Out] ref int max_fd);
[StructLayout (LayoutKind.Sequential)]
internal struct fd_set
{
internal uint fd_count;
//[MarshalAs(UnmanagedType.ByValArray, SizeConst = FD_SETSIZE)] internal IntPtr[] fd_array;
internal fixed uint fd_array[FD_SETSIZE];
[DllImport(LIBCURL, CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Ansi)]
public static extern IntPtr curl_easy_escape(IntPtr pEasy, string url, int length);
internal const int FD_SETSIZE = 64;
#endregion
internal void Cleanup ()
{
//fd_array = null;
}
#region curl_easy_unescape
internal static fd_set Create ()
{
return new fd_set {
//fd_array = new IntPtr[FD_SETSIZE],
fd_count = 0
};
}
internal static fd_set Create (IntPtr socket)
{
var handle = Create ();
handle.fd_count = 1;
handle.fd_array [0] = (uint)socket;
return handle;
}
}
internal static void FD_ZERO (fd_set fds)
{
for (var i = 0; i < fd_set.FD_SETSIZE; i++) {
//fds.fd_array[i] = (IntPtr) 0;
fds.fd_array [i] = 0;
}
fds.fd_count = 0;
}
[StructLayout (LayoutKind.Sequential)]
internal struct timeval
{
/// <summary>
/// Time interval, in seconds.
/// </summary>
internal int tv_sec;
/// <summary>
/// Time interval, in microseconds.
/// </summary>
internal int tv_usec;
internal static timeval Create (int milliseconds)
{
return new timeval {
tv_sec = milliseconds / 1000,
tv_usec = (milliseconds % 1000) * 1000
};
}
};
[DllImport (WINSOCK_LIB, EntryPoint = "select")]
internal static extern int select (
int nfds, // number of sockets, (ignored in winsock)
[In, Out] ref fd_set readfds, // read sockets to watch
[In, Out] ref fd_set writefds, // write sockets to watch
[In, Out] ref fd_set exceptfds, // error sockets to watch
ref timeval timeout);
//[DllImport(WINSOCK_LIB, EntryPoint = "select")]
//internal static extern int select(int ndfs, fd_set* readfds, fd_set* writefds, fd_set* exceptfds, timeval* timeout);
#endif
[DllImport (CURL_LIB, CallingConvention = CallingConvention.Cdecl)]
internal static extern CurlCode curl_easy_perform (IntPtr pCurl);
[DllImport (CURL_LIB, CallingConvention = CallingConvention.Cdecl)]
internal static extern IntPtr curl_easy_duphandle (IntPtr pCurl);
[DllImport (CURL_LIB, CallingConvention = CallingConvention.Cdecl)]
internal static extern IntPtr curl_easy_strerror (CurlCode err);
[DllImport (CURL_LIB, CallingConvention = CallingConvention.Cdecl)]
internal static extern CurlCode curl_easy_getinfo (IntPtr pCurl, CurlInfo info, ref IntPtr pInfo);
[DllImport (CURL_LIB, CallingConvention = CallingConvention.Cdecl)]
internal static extern CurlCode curl_easy_getinfo (IntPtr pCurl, CurlInfo info, ref double dblVal);
[DllImport (CURL_LIB, CallingConvention = CallingConvention.Cdecl)]
internal static extern void curl_easy_reset (IntPtr pCurl);
[DllImport (CURL_LIB, CallingConvention = CallingConvention.Cdecl)]
internal static extern IntPtr curl_multi_init ();
[DllImport (CURL_LIB, CallingConvention = CallingConvention.Cdecl)]
internal static extern CurlMultiCode curl_multi_cleanup (IntPtr pmulti);
[DllImport (CURL_LIB, CallingConvention = CallingConvention.Cdecl)]
internal static extern CurlMultiCode curl_multi_add_handle (IntPtr pmulti, IntPtr peasy);
[DllImport (CURL_LIB, CallingConvention = CallingConvention.Cdecl)]
internal static extern CurlMultiCode curl_multi_remove_handle (IntPtr pmulti, IntPtr peasy);
[DllImport (CURL_LIB, CallingConvention = CallingConvention.Cdecl)]
internal static extern IntPtr curl_multi_strerror (CurlMultiCode errorNum);
[DllImport (CURL_LIB, CallingConvention = CallingConvention.Cdecl)]
internal static extern CurlMultiCode curl_multi_perform (IntPtr pmulti, ref int runningHandles);
[DllImport (CURL_LIB, CallingConvention = CallingConvention.Cdecl)]
internal static extern void curl_formfree (IntPtr pForm);
#if !USE_LIBCURLSHIM
[DllImport (CURL_LIB, CallingConvention = CallingConvention.Cdecl)]
internal static extern int curl_formadd (ref IntPtr pHttppost, ref IntPtr pLastPost,
int codeFirst, IntPtr bufFirst,
int codeNext, IntPtr bufNext,
int codeLast);
#endif
[DllImport (CURL_LIB, CallingConvention = CallingConvention.Cdecl)]
internal static extern IntPtr curl_share_init ();
[DllImport (CURL_LIB, CallingConvention = CallingConvention.Cdecl)]
internal static extern CurlShareCode curl_share_cleanup (IntPtr pShare);
[DllImport (CURL_LIB, CallingConvention = CallingConvention.Cdecl)]
internal static extern IntPtr curl_share_strerror (CurlShareCode errorCode);
[DllImport (CURL_LIB, CallingConvention = CallingConvention.Cdecl)]
internal static extern CurlShareCode curl_share_setopt (IntPtr pShare, CurlShareOption optCode, IntPtr option);
[DllImport (CURL_LIB, CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Ansi)]
internal static extern IntPtr curl_slist_append (IntPtr slist, string data);
[DllImport (CURL_LIB, CallingConvention = CallingConvention.Cdecl)]
internal static extern CurlShareCode curl_slist_free_all (IntPtr pList);
[DllImport(LIBCURL, CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Ansi)]
public static extern IntPtr curl_easy_unescape(IntPtr pEasy, string url, int inLength, out int outLength);
[DllImport (CURL_LIB, CallingConvention = CallingConvention.Cdecl)]
internal static extern IntPtr curl_version_info (CurlVersion ver);
#endregion
#if USE_LIBCURLSHIM
// libcurlshim imports
[DllImport(CURLSHIM_LIB, CallingConvention = CallingConvention.Cdecl)]
internal static extern void curl_shim_initialize();
#region curl_free
[DllImport(CURLSHIM_LIB, CallingConvention = CallingConvention.Cdecl)]
internal static extern void curl_shim_cleanup();
[DllImport(LIBCURL, CallingConvention = CallingConvention.Cdecl)]
public static extern void curl_free(IntPtr p);
[DllImport(CURLSHIM_LIB, CallingConvention = CallingConvention.Cdecl)]
internal static extern IntPtr curl_shim_alloc_strings();
#endregion
[DllImport(CURLSHIM_LIB, CallingConvention = CallingConvention.Cdecl,
CharSet = CharSet.Ansi)]
internal static extern IntPtr curl_shim_add_string_to_slist(
IntPtr pStrings, String str);
#region curl_version
[DllImport(CURLSHIM_LIB, CallingConvention = CallingConvention.Cdecl,
CharSet = CharSet.Ansi)]
internal static extern IntPtr curl_shim_get_string_from_slist(
IntPtr pSlist, ref IntPtr pStr);
[DllImport(LIBCURL, CallingConvention = CallingConvention.Cdecl)]
public static extern IntPtr curl_version();
[DllImport(CURLSHIM_LIB, CallingConvention = CallingConvention.Cdecl,
CharSet = CharSet.Ansi)]
internal static extern IntPtr curl_shim_add_string(IntPtr pStrings, String str);
#endregion
[DllImport(CURLSHIM_LIB, CallingConvention = CallingConvention.Cdecl)]
internal static extern void curl_shim_free_strings(IntPtr pStrings);
#region curl_version_info
[DllImport(CURLSHIM_LIB, CallingConvention = CallingConvention.Cdecl)]
internal static extern int curl_shim_install_delegates(IntPtr pCurl, IntPtr pThis,
_ShimWriteCallback pWrite, _ShimReadCallback pRead,
_ShimProgressCallback pProgress, _ShimDebugCallback pDebug,
_ShimHeaderCallback pHeader, _ShimSslCtxCallback pCtx,
[DllImport(LIBCURL, CallingConvention = CallingConvention.Cdecl)]
public static extern IntPtr curl_version_info(CurlVersion ver);
#endregion
#region curl_easy_init
[DllImport(LIBCURL, CallingConvention = CallingConvention.Cdecl)]
public static extern IntPtr curl_easy_init();
#endregion
#region curl_easy_cleanup
[DllImport(LIBCURL, CallingConvention = CallingConvention.Cdecl)]
public static extern void curl_easy_cleanup(IntPtr pCurl);
#endregion
#region curl_easy_setopt
#region Delegates
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
public delegate int _CurlGenericCallback(IntPtr ptr, int sz, int nmemb, IntPtr userdata);
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
public delegate int _CurlProgressCallback(
IntPtr extraData,
double dlTotal,
double dlNow,
double ulTotal,
double ulNow);
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
public delegate int _CurlDebugCallback(
IntPtr ptrCurl,
CurlInfoType infoType,
string message,
int size,
IntPtr ptrUserData);
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
public delegate int _CurlSslCtxCallback(IntPtr ctx, IntPtr parm);
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
public delegate CurlIoError _CurlIoctlCallback(CurlIoCommand cmd, IntPtr parm);
#endregion
[DllImport(LIBCURL, CallingConvention = CallingConvention.Cdecl)]
public static extern CurlCode curl_easy_setopt(IntPtr pCurl, CurlOption opt, IntPtr parm);
[DllImport(LIBCURL, CallingConvention = CallingConvention.Cdecl)]
public static extern CurlCode curl_easy_setopt(IntPtr pCurl, CurlOption opt, string parm);
[DllImport(LIBCURL, CallingConvention = CallingConvention.Cdecl)]
public static extern CurlCode curl_easy_setopt(IntPtr pCurl, CurlOption opt, byte[] parm);
[DllImport(LIBCURL, CallingConvention = CallingConvention.Cdecl)]
public static extern CurlCode curl_easy_setopt(IntPtr pCurl, CurlOption opt, long parm);
[DllImport(LIBCURL, CallingConvention = CallingConvention.Cdecl)]
public static extern CurlCode curl_easy_setopt(IntPtr pCurl, CurlOption opt, bool parm);
[DllImport(LIBCURL, CallingConvention = CallingConvention.Cdecl)]
public static extern CurlCode curl_easy_setopt(IntPtr pCurl, CurlOption opt, _CurlGenericCallback parm);
[DllImport(LIBCURL, CallingConvention = CallingConvention.Cdecl)]
public static extern CurlCode curl_easy_setopt(IntPtr pCurl, CurlOption opt, _CurlProgressCallback parm);
[DllImport(LIBCURL, CallingConvention = CallingConvention.Cdecl)]
public static extern CurlCode curl_easy_setopt(IntPtr pCurl, CurlOption opt, _CurlDebugCallback parm);
[DllImport(LIBCURL, CallingConvention = CallingConvention.Cdecl)]
public static extern CurlCode curl_easy_setopt(IntPtr pCurl, CurlOption opt, _CurlSslCtxCallback parm);
[DllImport(LIBCURL, CallingConvention = CallingConvention.Cdecl)]
public static extern CurlCode curl_easy_setopt(IntPtr pCurl, CurlOption opt, _CurlIoctlCallback parm);
#endregion
#region curl_easy_perform
[DllImport(LIBCURL, CallingConvention = CallingConvention.Cdecl)]
public static extern CurlCode curl_easy_perform(IntPtr pCurl);
#endregion
#region curl_easy_duphandle
[DllImport(LIBCURL, CallingConvention = CallingConvention.Cdecl)]
public static extern IntPtr curl_easy_duphandle(IntPtr pCurl);
#endregion
#region curl_easy_strerror
[DllImport(LIBCURL, CallingConvention = CallingConvention.Cdecl)]
public static extern IntPtr curl_easy_strerror(CurlCode err);
#endregion
#region curl_easy_getinfo
[DllImport(LIBCURL, CallingConvention = CallingConvention.Cdecl)]
public static extern CurlCode curl_easy_getinfo(IntPtr pCurl, CurlInfo info, ref IntPtr pInfo);
[DllImport(LIBCURL, CallingConvention = CallingConvention.Cdecl)]
public static extern CurlCode curl_easy_getinfo(IntPtr pCurl, CurlInfo info, ref double dblVal);
#endregion
#region curl_easy_reset
[DllImport(LIBCURL, CallingConvention = CallingConvention.Cdecl)]
public static extern void curl_easy_reset(IntPtr pCurl);
#endregion
#region curl_multi_init
[DllImport(LIBCURL, CallingConvention = CallingConvention.Cdecl)]
public static extern IntPtr curl_multi_init();
#endregion
#region curl_multi_cleanup
[DllImport(LIBCURL, CallingConvention = CallingConvention.Cdecl)]
public static extern CurlMultiCode curl_multi_cleanup(IntPtr pmulti);
#endregion
#region curl_multi_add_handle
[DllImport(LIBCURL, CallingConvention = CallingConvention.Cdecl)]
public static extern CurlMultiCode curl_multi_add_handle(IntPtr pmulti, IntPtr peasy);
#endregion
#region curl_multi_remove_handle
[DllImport(LIBCURL, CallingConvention = CallingConvention.Cdecl)]
public static extern CurlMultiCode curl_multi_remove_handle(IntPtr pmulti, IntPtr peasy);
#endregion
#region curl_multi_setopt
[DllImport(LIBCURL, CallingConvention = CallingConvention.Cdecl)]
public static extern CurlMultiCode curl_multi_setopt(IntPtr pmulti, CurlMultiOption opt, bool parm);
[DllImport(LIBCURL, CallingConvention = CallingConvention.Cdecl)]
public static extern CurlMultiCode curl_multi_setopt(IntPtr pmulti, CurlMultiOption opt, long parm);
#endregion
#region curl_multi_strerror
[DllImport(LIBCURL, CallingConvention = CallingConvention.Cdecl)]
public static extern IntPtr curl_multi_strerror(CurlMultiCode errorNum);
#endregion
#region curl_multi_perform
[DllImport(LIBCURL, CallingConvention = CallingConvention.Cdecl)]
public static extern CurlMultiCode curl_multi_perform(IntPtr pmulti, ref int runningHandles);
#endregion
#if !USE_LIBCURLSHIM
#region curl_multi_fdset
[DllImport(LIBCURL, CallingConvention = CallingConvention.Cdecl)]
public static extern CurlMultiCode curl_multi_fdset(IntPtr pmulti,
[In] [Out] ref fd_set read_fd_set,
[In] [Out] ref fd_set write_fd_set,
[In] [Out] ref fd_set exc_fd_set,
[In] [Out] ref int max_fd);
[StructLayout(LayoutKind.Sequential)]
public struct fd_set
{
public uint fd_count;
// [MarshalAs(UnmanagedType.ByValArray, SizeConst = FD_SETSIZE)] public IntPtr[] fd_array;
public fixed uint fd_array[FD_SETSIZE];
public const int FD_SETSIZE = 64;
public void Cleanup()
{
// fd_array = null;
}
public static fd_set Create()
{
return new fd_set
{
// fd_array = new IntPtr[FD_SETSIZE],
fd_count = 0
};
}
public static fd_set Create(IntPtr socket)
{
var handle = Create();
handle.fd_count = 1;
handle.fd_array[0] = (uint)socket;
return handle;
}
}
public static void FD_ZERO(fd_set fds)
{
for (var i = 0; i < fd_set.FD_SETSIZE; i++)
{
fds.fd_array[i] = 0;
}
fds.fd_count = 0;
}
#endregion
#region select
[StructLayout(LayoutKind.Sequential)]
public struct timeval
{
/// <summary>
/// Time interval, in seconds.
/// </summary>
public int tv_sec;
/// <summary>
/// Time interval, in microseconds.
/// </summary>
public int tv_usec;
public static timeval Create(int milliseconds)
{
return new timeval
{
tv_sec = milliseconds / 1000,
tv_usec = milliseconds % 1000 * 1000
};
}
}
[DllImport(LIBC_LINUX, EntryPoint = "select")]
private static extern int select_unix(
int nfds, // number of sockets, (ignored in winsock)
[In] [Out] ref fd_set readfds, // read sockets to watch
[In] [Out] ref fd_set writefds, // write sockets to watch
[In] [Out] ref fd_set exceptfds, // error sockets to watch
ref timeval timeout);
[DllImport(WINSOCK_LIB, EntryPoint = "select")]
private static extern int select_win(
int nfds, // number of sockets, (ignored in winsock)
[In] [Out] ref fd_set readfds, // read sockets to watch
[In] [Out] ref fd_set writefds, // write sockets to watch
[In] [Out] ref fd_set exceptfds, // error sockets to watch
ref timeval timeout);
public static int select(
int nfds, // number of sockets, (ignored in winsock)
[In] [Out] ref fd_set readfds, // read sockets to watch
[In] [Out] ref fd_set writefds, // write sockets to watch
[In] [Out] ref fd_set exceptfds, // error sockets to watch
ref timeval timeout)
{
int result;
if (Environment.OSVersion.Platform == PlatformID.Win32NT)
{
result = select_win(
nfds, // number of sockets, (ignored in winsock)
ref readfds, // read sockets to watch
ref writefds, // write sockets to watch
ref exceptfds, // error sockets to watch
ref timeout);
}
else
{
result = select_unix(
nfds, // number of sockets, (ignored in winsock)
ref readfds, // read sockets to watch
ref writefds, // write sockets to watch
ref exceptfds, // error sockets to watch
ref timeout);
}
return result;
}
#endregion
#endif
#region curl_share_init
[DllImport(LIBCURL, CallingConvention = CallingConvention.Cdecl)]
public static extern IntPtr curl_share_init();
#endregion
#region curl_share_cleanup
[DllImport(LIBCURL, CallingConvention = CallingConvention.Cdecl)]
public static extern CurlShareCode curl_share_cleanup(IntPtr pShare);
#endregion
#region curl_share_strerror
[DllImport(LIBCURL, CallingConvention = CallingConvention.Cdecl)]
public static extern IntPtr curl_share_strerror(CurlShareCode errorCode);
#endregion
#region curl_share_setopt
[DllImport(LIBCURL, CallingConvention = CallingConvention.Cdecl)]
public static extern CurlShareCode curl_share_setopt(
IntPtr pShare,
CurlShareOption optCode,
IntPtr option);
#endregion
#region curl_formadd
#if !USE_LIBCURLSHIM
[DllImport(LIBCURL, CallingConvention = CallingConvention.Cdecl)]
public static extern int curl_formadd(ref IntPtr pHttppost, ref IntPtr pLastPost,
int codeFirst, IntPtr bufFirst,
int codeNext, IntPtr bufNext,
int codeLast);
#endif
#endregion
#region curl_formfree
[DllImport(LIBCURL, CallingConvention = CallingConvention.Cdecl)]
public static extern void curl_formfree(IntPtr pForm);
#endregion
#region curl_slist_append
[DllImport(LIBCURL, CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Ansi)]
public static extern IntPtr curl_slist_append(IntPtr slist, string data);
#endregion
#region curl_slist_free_all
[DllImport(LIBCURL, CallingConvention = CallingConvention.Cdecl)]
public static extern void curl_slist_free_all(IntPtr pList);
#endregion
#if USE_LIBCURLSHIM
#region libcurlshim imports
[DllImport(LIBCURLSHIM, CallingConvention = CallingConvention.Cdecl)]
public static extern void curl_shim_initialize();
[DllImport(LIBCURLSHIM, CallingConvention = CallingConvention.Cdecl)]
public static extern void curl_shim_cleanup();
[DllImport(LIBCURLSHIM, CallingConvention = CallingConvention.Cdecl)]
public static extern IntPtr curl_shim_alloc_strings();
[DllImport(LIBCURLSHIM, CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Ansi)]
public static extern IntPtr curl_shim_add_string_to_slist(IntPtr pStrings, string str);
[DllImport(LIBCURLSHIM, CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Ansi)]
public static extern IntPtr curl_shim_get_string_from_slist(IntPtr pSlist, ref IntPtr pStr);
[DllImport(LIBCURLSHIM, CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Ansi)]
public static extern IntPtr curl_shim_add_string(IntPtr pStrings, string str);
[DllImport(LIBCURLSHIM, CallingConvention = CallingConvention.Cdecl)]
public static extern void curl_shim_free_strings(IntPtr pStrings);
[DllImport(LIBCURLSHIM, CallingConvention = CallingConvention.Cdecl)]
public static extern int curl_shim_install_delegates(
IntPtr pCurl,
IntPtr pThis,
_ShimWriteCallback pWrite,
_ShimReadCallback pRead,
_ShimProgressCallback pProgress,
_ShimDebugCallback pDebug,
_ShimHeaderCallback pHeader,
_ShimSslCtxCallback pCtx,
_ShimIoctlCallback pIoctl);
[DllImport(CURLSHIM_LIB, CallingConvention = CallingConvention.Cdecl)]
internal static extern void curl_shim_cleanup_delegates(IntPtr pThis);
[DllImport(LIBCURLSHIM, CallingConvention = CallingConvention.Cdecl)]
public static extern void curl_shim_cleanup_delegates(IntPtr pThis);
[DllImport(CURLSHIM_LIB, CallingConvention = CallingConvention.Cdecl)]
internal static extern void curl_shim_get_file_time(int unixTime,
ref int yy, ref int mm, ref int dd, ref int hh, ref int mn, ref int ss);
[DllImport(LIBCURLSHIM, CallingConvention = CallingConvention.Cdecl)]
public static extern void curl_shim_get_file_time(
int unixTime,
ref int yy,
ref int mm,
ref int dd,
ref int hh,
ref int mn,
ref int ss);
[DllImport(CURLSHIM_LIB, CallingConvention = CallingConvention.Cdecl)]
internal static extern void curl_shim_free_slist(IntPtr p);
[DllImport(LIBCURLSHIM, CallingConvention = CallingConvention.Cdecl)]
public static extern void curl_shim_free_slist(IntPtr p);
[DllImport(CURLSHIM_LIB, CallingConvention = CallingConvention.Cdecl)]
internal static extern IntPtr curl_shim_alloc_fd_sets();
[DllImport(LIBCURLSHIM, CallingConvention = CallingConvention.Cdecl)]
public static extern IntPtr curl_shim_alloc_fd_sets();
[DllImport(CURLSHIM_LIB, CallingConvention = CallingConvention.Cdecl)]
internal static extern void curl_shim_free_fd_sets(IntPtr fdsets);
[DllImport(LIBCURLSHIM, CallingConvention = CallingConvention.Cdecl)]
public static extern void curl_shim_free_fd_sets(IntPtr fdsets);
[DllImport(CURLSHIM_LIB, CallingConvention = CallingConvention.Cdecl)]
internal static extern CurlMultiCode curl_shim_multi_fdset(IntPtr multi,
IntPtr fdsets, ref int maxFD);
[DllImport(LIBCURLSHIM, CallingConvention = CallingConvention.Cdecl)]
public static extern CurlMultiCode curl_shim_multi_fdset(IntPtr multi, IntPtr fdsets, ref int maxFD);
[DllImport(CURLSHIM_LIB, CallingConvention = CallingConvention.Cdecl)]
internal static extern int curl_shim_select(int maxFD, IntPtr fdsets,
int milliseconds);
[DllImport(LIBCURLSHIM, CallingConvention = CallingConvention.Cdecl)]
public static extern int curl_shim_select(int maxFD, IntPtr fdsets, int milliseconds);
[DllImport(CURLSHIM_LIB, CallingConvention = CallingConvention.Cdecl)]
internal static extern IntPtr curl_shim_multi_info_read(IntPtr multi,
ref int nMsgs);
[DllImport(LIBCURLSHIM, CallingConvention = CallingConvention.Cdecl)]
public static extern IntPtr curl_shim_multi_info_read(IntPtr multi, ref int nMsgs);
[DllImport(CURLSHIM_LIB, CallingConvention = CallingConvention.Cdecl)]
internal static extern void curl_shim_multi_info_free(IntPtr multiInfo);
[DllImport(LIBCURLSHIM, CallingConvention = CallingConvention.Cdecl)]
public static extern void curl_shim_multi_info_free(IntPtr multiInfo);
[DllImport(CURLSHIM_LIB, CallingConvention = CallingConvention.Cdecl)]
internal static extern int curl_shim_formadd(IntPtr[] ppForms, IntPtr[] pParams, int nParams);
[DllImport(LIBCURLSHIM, CallingConvention = CallingConvention.Cdecl)]
public static extern int curl_shim_formadd(IntPtr[] ppForms, IntPtr[] pParams, int nParams);
[DllImport(CURLSHIM_LIB, CallingConvention = CallingConvention.Cdecl)]
internal static extern int curl_shim_install_share_delegates(IntPtr pShare,
IntPtr pThis, _ShimLockCallback pLock, _ShimUnlockCallback pUnlock);
[DllImport(LIBCURLSHIM, CallingConvention = CallingConvention.Cdecl)]
public static extern int curl_shim_install_share_delegates(
IntPtr pShare,
IntPtr pThis,
_ShimLockCallback pLock,
_ShimUnlockCallback pUnlock);
[DllImport(CURLSHIM_LIB, CallingConvention = CallingConvention.Cdecl)]
internal static extern void curl_shim_cleanup_share_delegates(IntPtr pShare);
[DllImport(LIBCURLSHIM, CallingConvention = CallingConvention.Cdecl)]
public static extern void curl_shim_cleanup_share_delegates(IntPtr pShare);
[DllImport(CURLSHIM_LIB, CallingConvention = CallingConvention.Cdecl)]
internal static extern int curl_shim_get_version_int_value(IntPtr p, int offset);
[DllImport(LIBCURLSHIM, CallingConvention = CallingConvention.Cdecl)]
public static extern int curl_shim_get_version_int_value(IntPtr p, int offset);
[DllImport(CURLSHIM_LIB, CallingConvention = CallingConvention.Cdecl)]
internal static extern IntPtr curl_shim_get_version_char_ptr(IntPtr p, int offset);
[DllImport(LIBCURLSHIM, CallingConvention = CallingConvention.Cdecl)]
public static extern IntPtr curl_shim_get_version_char_ptr(IntPtr p, int offset);
[DllImport(CURLSHIM_LIB, CallingConvention = CallingConvention.Cdecl)]
internal static extern int curl_shim_get_number_of_protocols(IntPtr p, int offset);
[DllImport(LIBCURLSHIM, CallingConvention = CallingConvention.Cdecl)]
public static extern int curl_shim_get_number_of_protocols(IntPtr p, int offset);
[DllImport(CURLSHIM_LIB, CallingConvention = CallingConvention.Cdecl)]
internal static extern IntPtr curl_shim_get_protocol_string(IntPtr p, int offset, int index);
[DllImport(LIBCURLSHIM, CallingConvention = CallingConvention.Cdecl)]
public static extern IntPtr curl_shim_get_protocol_string(IntPtr p, int offset, int index);
internal delegate void _ShimLockCallback(int data, int access, IntPtr userPtr);
public delegate void _ShimLockCallback(int data, int access, IntPtr userPtr);
internal delegate void _ShimUnlockCallback(int data, IntPtr userPtr);
public delegate void _ShimUnlockCallback(int data, IntPtr userPtr);
internal delegate int _ShimDebugCallback(CurlInfoType infoType, IntPtr msgBuf, int msgBufSize, IntPtr parm);
public delegate int _ShimDebugCallback(CurlInfoType infoType, IntPtr msgBuf, int msgBufSize, IntPtr parm);
internal delegate int _ShimHeaderCallback(IntPtr buf, int sz, int nmemb, IntPtr stream);
public delegate int _ShimHeaderCallback(IntPtr buf, int sz, int nmemb, IntPtr stream);
internal delegate CurlIoError _ShimIoctlCallback(CurlIoCommand cmd, IntPtr parm);
public delegate CurlIoError _ShimIoctlCallback(CurlIoCommand cmd, IntPtr parm);
internal delegate int _ShimProgressCallback(IntPtr parm, double dlTotal, double dlNow, double ulTotal, double ulNow);
public delegate int _ShimProgressCallback(
IntPtr parm,
double dlTotal,
double dlNow,
double ulTotal,
double ulNow);
internal delegate int _ShimReadCallback(IntPtr buf, int sz, int nmemb, IntPtr parm);
public delegate int _ShimReadCallback(IntPtr buf, int sz, int nmemb, IntPtr parm);
internal delegate int _ShimSslCtxCallback(IntPtr ctx, IntPtr parm);
public delegate int _ShimSslCtxCallback(IntPtr ctx, IntPtr parm);
public delegate int _ShimWriteCallback(IntPtr buf, int sz, int nmemb, IntPtr parm);
#endregion
internal delegate int _ShimWriteCallback(IntPtr buf, int sz, int nmemb, IntPtr parm);
#endif
}
}
}

View File

@@ -1,22 +0,0 @@
using System.Reflection;
using System.Runtime.CompilerServices;
// Information about this assembly is defined by the following attributes.
// Change them to the values specific to your project.
[assembly: AssemblyTitle ("CurlSharp")]
[assembly: AssemblyDescription ("")]
[assembly: AssemblyConfiguration ("")]
[assembly: AssemblyCompany ("")]
[assembly: AssemblyProduct ("")]
[assembly: AssemblyCopyright ("max")]
[assembly: AssemblyTrademark ("")]
[assembly: AssemblyCulture ("")]
// The assembly version has the format "{Major}.{Minor}.{Build}.{Revision}".
// The form "{Major}.{Minor}.*" will automatically update the build and revision,
// and "{Major}.{Minor}.{Build}.*" will update just the revision.
[assembly: AssemblyVersion ("1.0.*")]
// The following attributes are used to specify the signing key for the assembly,
// if desired. See the Mono documentation for more information about signing.
//[assembly: AssemblyDelaySign(false)]
//[assembly: AssemblyKeyFile("")]

114
src/CurlSharp/README.md Normal file
View File

@@ -0,0 +1,114 @@
CurlSharp
=========
CurlSharp is a .Net binding and object-oriented wrapper for [libcurl](http://curl.haxx.se/libcurl/).
libcurl is a web-client library that can provide cross-platform .Net applications with an easy way to implement such things as:
- HTTP ( GET / HEAD / PUT / POST / multi-part / form-data )
- FTP ( upload / download / list / 3rd-party )
- HTTPS, FTPS, SSL, TLS ( via OpenSSL or GnuTLS )
- Proxies, proxy tunneling, cookies, user+password authentication.
- File transfer resume, byte ranges, multiple asynchronous transfers.
- and much more...
CurlSharp provides simple get/set properties for libcurl's options and information functions, event-based hooks to libcurl's I/O, status, and progress callbacks, and wraps the c-style file I/O behind simple filename properties. The `CurlEasy` class contains has more than 100 different properties and methods to handle a wide variety of URL transfer requirements. While this may seem overwhelming at first glance, the good news is you will probably need only a tiny subset of these for most situations.
The CurlSharp library consists of these parts:
- Pure C# P/Invoke bindings to the libcurl API.
- Optional libcurlshim helper DLL [WIN32].
- The `CurlEasy` class which provides a wrapper around a `curl_easy` session.
- The `CurlMulti` class, which serves as a container for multiple CurlEasy objects, and provides a wrapper around a `curl_multi` session.
- The `CurlShare` class which provides an infrastructure for serializing access to data shared by multiple `CurlEasy` objects, including cookie data and DNS hosts. It implements the `curl_share_xxx` API.
- The `CurlHttpMultiPartForm` to easily construct multi-part forms.
- The `CurlSlist` class which wraps a linked list of strings used in cURL.
CurlSharp is available for these platforms:
- [Stable] Windows 32-bit
- [Experimental] Win64 port
- [Experimental] Mono Linux & OS X support
#### Examples ####
A simple HTTP download program...
```c#
using System;
using CurlSharp;
internal class EasyGet
{
public static void Main(String[] args)
{
Curl.GlobalInit(CurlInitFlag.All);
try
{
using (var easy = new CurlEasy())
{
easy.Url = "http://www.google.com/";
easy.WriteFunction = OnWriteData;
easy.Perform();
}
}
finally
{
Curl.GlobalCleanup();
}
}
public static Int32 OnWriteData(byte[] buf, Int32 size, Int32 nmemb, object data)
{
Console.Write(Encoding.UTF8.GetString(buf));
return size*nmemb;
}
}
```
Simple HTTP Post example:
```c#
using (var easy = new CurlEasy())
{
easy.Url = "http://hostname/testpost.php";
easy.Post = true;
var postData = "parm1=12345&parm2=Hello+world%21";
easy.PostFields = postData;
easy.PostFieldSize = postData.Length;
easy.Perform();
}
```
HTTP/2.0 download:
```c#
using (var easy = new CurlEasy())
{
easy.Url = "https://google.com/";
easy.WriteFunction = OnWriteData;
// HTTP/2 please
easy.HttpVersion = CurlHttpVersion.Http2_0;
// skip SSL verification during debugging
easy.SslVerifyPeer = false;
easy.SslVerifyhost = false;
easy.Perform();
}
```
More samples are included in the Samples folder.
#### Credits ####
CurlSharp Written by Dr. Masroor Ehsan.
CurlSharp is based on original code by Jeff Phillips [libcurl.NET](http://sourceforge.net/projects/libcurl-net/). Original code has been modified and greatly enhanced.
----------
CurlSharp Copyright © 2013-17 Dr. Masroor Ehsan

View File

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

View File

@@ -0,0 +1,618 @@
//********************************************************************************************
//Author: Sergey Stoyan, CliverSoft.com
// http://cliversoft.com
// stoyan@cliversoft.com
// sergey.stoyan@gmail.com
// 27 February 2007
//********************************************************************************************
using System;
using System.Text.RegularExpressions;
namespace DateTimeRoutines
{
/// <summary>
/// Miscellaneous and parsing methods for DateTime
/// </summary>
public static class DateTimeRoutines
{
#region miscellaneous methods
/// <summary>
/// Amount of seconds elapsed between 1970-01-01 00:00:00 and the date-time.
/// </summary>
/// <param name="date_time">date-time</param>
/// <returns>seconds</returns>
public static uint GetSecondsSinceUnixEpoch(this DateTime date_time)
{
TimeSpan t = date_time - new DateTime(1970, 1, 1);
int ss = (int)t.TotalSeconds;
if (ss < 0)
return 0;
return (uint)ss;
}
#endregion
#region parsing definitions
/// <summary>
/// Defines a substring where date-time was found and result of conversion
/// </summary>
public class ParsedDateTime
{
/// <summary>
/// Index of first char of a date substring found in the string
/// </summary>
readonly public int IndexOfDate = -1;
/// <summary>
/// Length a date substring found in the string
/// </summary>
readonly public int LengthOfDate = -1;
/// <summary>
/// Index of first char of a time substring found in the string
/// </summary>
readonly public int IndexOfTime = -1;
/// <summary>
/// Length of a time substring found in the string
/// </summary>
readonly public int LengthOfTime = -1;
/// <summary>
/// DateTime found in the string
/// </summary>
readonly public DateTime DateTime;
/// <summary>
/// True if a date was found within the string
/// </summary>
readonly public bool IsDateFound;
/// <summary>
/// True if a time was found within the string
/// </summary>
readonly public bool IsTimeFound;
/// <summary>
/// UTC offset if it was found within the string
/// </summary>
readonly public TimeSpan UtcOffset;
/// <summary>
/// True if UTC offset was found in the string
/// </summary>
readonly public bool IsUtcOffsetFound;
/// <summary>
/// Utc gotten from DateTime if IsUtcOffsetFound is True
/// </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)
{
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 = 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)
{
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;
if (!IsUtcOffsetFound)
UtcDateTime = new DateTime(1, 1, 1);
else
{
if (index_of_date < 0)//to avoid negative date exception when date is undefined
{
TimeSpan ts = date_time.TimeOfDay + utc_offset;
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;
}
}
}
/// <summary>
/// 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
/// </summary>
public static DateTime DefaultDate
{
set
{
_DefaultDate = value;
DefaultDateIsNow = false;
}
get
{
if (DefaultDateIsNow)
return DateTime.Now;
else
return _DefaultDate;
}
}
static DateTime _DefaultDate = DateTime.Now;
/// <summary>
/// If true then DefaultDate property is ignored and DefaultDate is always DateTime.Now
/// </summary>
public static bool DefaultDateIsNow = true;
/// <summary>
/// Defines default date-time format.
/// </summary>
public enum DateTimeFormat
{
/// <summary>
/// month number goes before day number
/// </summary>
USA_DATE,
/// <summary>
/// day number goes before month number
/// </summary>
UK_DATE,
///// <summary>
///// time is specifed through AM or PM
///// </summary>
//USA_TIME,
}
#endregion
#region parsing derived methods for DateTime output
/// <summary>
/// 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>
/// <returns>true if both date and time were found, else false</returns>
static public bool TryParseDateTime(this string str, DateTimeFormat default_format, out DateTime date_time)
{
ParsedDateTime parsed_date_time;
if (!TryParseDateTime(str, default_format, out parsed_date_time))
{
date_time = new DateTime(1, 1, 1);
return false;
}
date_time = parsed_date_time.DateTime;
return true;
}
/// <summary>
/// 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>
/// <returns>true if date and/or time was found, else false</returns>
static public bool TryParseDateOrTime(this string str, DateTimeFormat default_format, out DateTime date_time)
{
ParsedDateTime parsed_date_time;
if (!TryParseDateOrTime(str, default_format, out parsed_date_time))
{
date_time = new DateTime(1, 1, 1);
return false;
}
date_time = parsed_date_time.DateTime;
return true;
}
/// <summary>
/// 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="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)
{
ParsedDateTime parsed_time;
if (!TryParseTime(str, default_format, out parsed_time, null))
{
time = new DateTime(1, 1, 1);
return false;
}
time = parsed_time.DateTime;
return true;
}
/// <summary>
/// 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.
/// </summary>
/// <param name="str">string that contains date</param>
/// <param name="default_format">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>
static public bool TryParseDate(this string str, DateTimeFormat default_format, out DateTime date)
{
ParsedDateTime parsed_date;
if (!TryParseDate(str, default_format, out parsed_date))
{
date = new DateTime(1, 1, 1);
return false;
}
date = parsed_date.DateTime;
return true;
}
#endregion
#region parsing derived methods for ParsedDateTime output
/// <summary>
/// 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>
/// <returns>true if both date and time were found, else false</returns>
static public bool TryParseDateTime(this string str, DateTimeFormat default_format, out ParsedDateTime parsed_date_time)
{
if (DateTimeRoutines.TryParseDateOrTime(str, default_format, out parsed_date_time)
&& parsed_date_time.IsDateFound
&& parsed_date_time.IsTimeFound
)
return true;
parsed_date_time = null;
return false;
}
/// <summary>
/// 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>
/// <returns>true if time was found, else false</returns>
static public bool TryParseTime(this string str, DateTimeFormat default_format, out ParsedDateTime parsed_time)
{
return TryParseTime(str, default_format, out parsed_time, null);
}
/// <summary>
/// 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>
/// <returns>true if date or time was found, else false</returns>
static public bool TryParseDateOrTime(this string str, DateTimeFormat default_format, out ParsedDateTime parsed_date_time)
{
parsed_date_time = null;
ParsedDateTime parsed_date;
ParsedDateTime parsed_time;
if (!TryParseDate(str, default_format, out parsed_date))
{
if (!TryParseTime(str, default_format, out parsed_time, null))
return false;
DateTime 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);
}
else
{
if (!TryParseTime(str, default_format, out parsed_time, parsed_date))
{
DateTime 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);
}
else
{
DateTime 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);
}
}
return true;
}
#endregion
#region parsing base methods
/// <summary>
/// Tries to find time within the passed string (relatively to the passed parsed_date if any) 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</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>
/// <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)
{
parsed_time = 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))?";
Match m;
if (parsed_date != null && parsed_date.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);
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);
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);
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);
}
else//look anywhere within string
{
//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);
}
if (!m.Success)
return false;
//try
//{
int hour = int.Parse(m.Groups["hour"].Value);
if (hour < 0 || hour > 23)
return false;
int minute = int.Parse(m.Groups["minute"].Value);
if (minute < 0 || minute > 59)
return false;
int second = 0;
if (!string.IsNullOrEmpty(m.Groups["second"].Value))
{
second = int.Parse(m.Groups["second"].Value);
if (second < 0 || second > 59)
return false;
}
if (string.Compare(m.Groups["ampm"].Value, "PM", true) == 0 && hour < 12)
hour += 12;
else if (string.Compare(m.Groups["ampm"].Value, "AM", true) == 0 && hour == 12)
hour -= 12;
DateTime date_time = new DateTime(1, 1, 1, hour, minute, second);
if (m.Groups["offset_hh"].Success)
{
int offset_hh = int.Parse(m.Groups["offset_hh"].Value);
int offset_mm = 0;
if (m.Groups["offset_mm"].Success)
offset_mm = int.Parse(m.Groups["offset_mm"].Value);
TimeSpan utc_offset = new TimeSpan(offset_hh, offset_mm, 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);
return true;
}
if (m.Groups["time_zone"].Success)
{
TimeSpan utc_offset;
switch (m.Groups["time_zone"].Value)
{
case "UTC":
case "GMT":
utc_offset = new TimeSpan(0, 0, 0);
break;
case "CST":
utc_offset = new TimeSpan(-6, 0, 0);
break;
case "EST":
utc_offset = 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);
return true;
}
parsed_time = new ParsedDateTime(-1, -1, m.Index, m.Length, date_time);
//}
//catch(Exception e)
//{
// return false;
//}
return true;
}
/// <summary>
/// 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.
/// </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>
/// <returns>true if date was found, else false</returns>
static public bool TryParseDate(this string str, DateTimeFormat default_format, out ParsedDateTime parsed_date)
{
parsed_date = null;
if (string.IsNullOrEmpty(str))
return false;
//look for dd/mm/yy
Match m = Regex.Match(str, @"(?<=^|[^\d])(?'day'\d{1,2})\s*(?'separator'[\\/\.])+\s*(?'month'\d{1,2})\s*\'separator'+\s*(?'year'\d{2}|\d{4})(?=$|[^\d])", RegexOptions.Compiled | RegexOptions.IgnoreCase);
if (m.Success)
{
DateTime date;
if ((default_format ^ DateTimeFormat.USA_DATE) == DateTimeFormat.USA_DATE)
{
if (!convert_to_date(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))
return false;
}
parsed_date = new ParsedDateTime(m.Index, m.Length, -1, -1, date);
return true;
}
//look for [yy]yy-mm-dd
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)
{
DateTime date;
if (!convert_to_date(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);
return true;
}
//look for month dd yyyy
m = Regex.Match(str, @"(?:^|[^\d\w])(?'month'Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)[uarychilestmbro]*\s+(?'day'\d{1,2})(?:-?st|-?th|-?rd|-?nd)?\s*,?\s*(?'year'\d{4})(?=$|[^\d\w])", RegexOptions.Compiled | RegexOptions.IgnoreCase);
if (!m.Success)
//look for dd month [yy]yy
m = Regex.Match(str, @"(?:^|[^\d\w:])(?'day'\d{1,2})(?:-?st\s+|-?th\s+|-?rd\s+|-?nd\s+|-|\s+)(?'month'Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)[uarychilestmbro]*(?:\s*,?\s*|-)'?(?'year'\d{2}|\d{4})(?=$|[^\d\w])", RegexOptions.Compiled | RegexOptions.IgnoreCase);
if (!m.Success)
//look for yyyy month dd
m = Regex.Match(str, @"(?:^|[^\d\w])(?'year'\d{4})\s+(?'month'Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)[uarychilestmbro]*\s+(?'day'\d{1,2})(?:-?st|-?th|-?rd|-?nd)?(?=$|[^\d\w])", RegexOptions.Compiled | RegexOptions.IgnoreCase);
if (!m.Success)
//look for month dd hh:mm:ss MDT|UTC yyyy
m = Regex.Match(str, @"(?:^|[^\d\w])(?'month'Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)[uarychilestmbro]*\s+(?'day'\d{1,2})\s+\d{2}\:\d{2}\:\d{2}\s+(?:MDT|UTC)\s+(?'year'\d{4})(?=$|[^\d\w])", RegexOptions.Compiled | RegexOptions.IgnoreCase);
if (!m.Success)
//look for month dd [yyyy]
m = Regex.Match(str, @"(?:^|[^\d\w])(?'month'Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)[uarychilestmbro]*\s+(?'day'\d{1,2})(?:-?st|-?th|-?rd|-?nd)?(?:\s*,?\s*(?'year'\d{4}))?(?=$|[^\d\w])", RegexOptions.Compiled | RegexOptions.IgnoreCase);
if (m.Success)
{
int month = -1;
int index_of_date = m.Index;
int length_of_date = m.Length;
switch (m.Groups["month"].Value)
{
case "Jan":
case "JAN":
month = 1;
break;
case "Feb":
case "FEB":
month = 2;
break;
case "Mar":
case "MAR":
month = 3;
break;
case "Apr":
case "APR":
month = 4;
break;
case "May":
case "MAY":
month = 5;
break;
case "Jun":
case "JUN":
month = 6;
break;
case "Jul":
month = 7;
break;
case "Aug":
case "AUG":
month = 8;
break;
case "Sep":
case "SEP":
month = 9;
break;
case "Oct":
case "OCT":
month = 10;
break;
case "Nov":
case "NOV":
month = 11;
break;
case "Dec":
case "DEC":
month = 12;
break;
}
int year;
if (!string.IsNullOrEmpty(m.Groups["year"].Value))
year = int.Parse(m.Groups["year"].Value);
else
year = DefaultDate.Year;
DateTime date;
if (!convert_to_date(year, month, int.Parse(m.Groups["day"].Value), out date))
return false;
parsed_date = new ParsedDateTime(index_of_date, length_of_date, -1, -1, date);
return true;
}
return false;
}
static bool convert_to_date(int year, int month, int day, out DateTime date)
{
if (year >= 100)
{
if (year < 1000)
{
date = new DateTime(1, 1, 1);
return false;
}
}
else
if (year > 30)
year += 1900;
else
year += 2000;
try
{
date = new DateTime(year, month, day);
}
catch
{
date = new DateTime(1, 1, 1);
return false;
}
return true;
}
#endregion
}
}

View File

@@ -0,0 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFrameworks>netstandard2.0;net452</TargetFrameworks>
</PropertyGroup>
</Project>

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

View File

Before

Width:  |  Height:  |  Size: 19 KiB

After

Width:  |  Height:  |  Size: 19 KiB

View File

Before

Width:  |  Height:  |  Size: 8.2 KiB

After

Width:  |  Height:  |  Size: 8.2 KiB

View File

Before

Width:  |  Height:  |  Size: 60 KiB

After

Width:  |  Height:  |  Size: 60 KiB

View File

@@ -0,0 +1 @@
span.multiselect-native-select{position:relative}span.multiselect-native-select select{border:0!important;clip:rect(0 0 0 0)!important;height:1px!important;margin:-1px -1px -1px -3px!important;overflow:hidden!important;padding:0!important;position:absolute!important;width:1px!important;left:50%;top:30px}.multiselect-container{position:absolute;list-style-type:none;margin:0;padding:0}.multiselect-container .input-group{margin:5px}.multiselect-container>li{padding:0}.multiselect-container>li>a.multiselect-all label{font-weight:700}.multiselect-container>li.multiselect-group label{margin:0;padding:3px 20px 3px 20px;height:100%;font-weight:700}.multiselect-container>li.multiselect-group-clickable label{cursor:pointer}.multiselect-container>li>a{padding:0}.multiselect-container>li>a>label{margin:0;height:100%;cursor:pointer;font-weight:400;padding:3px 20px 3px 40px}.multiselect-container>li>a>label.radio,.multiselect-container>li>a>label.checkbox{margin:0}.multiselect-container>li>a>label>input[type=checkbox]{margin-bottom:5px}.btn-group>.btn-group:nth-child(2)>.multiselect.btn{border-top-left-radius:4px;border-bottom-left-radius:4px}.form-inline .multiselect-container label.checkbox,.form-inline .multiselect-container label.radio{padding:3px 20px 3px 40px}.form-inline .multiselect-container li a label.checkbox input[type=checkbox],.form-inline .multiselect-container li a label.radio input[type=radio]{margin-left:-20px;margin-right:0}

File diff suppressed because one or more lines are too long

View File

@@ -1,299 +1,275 @@
body {
background-image: url("binding_dark.png");
background-repeat: repeat;
}
#page {
border-radius: 6px;
background-color: white;
max-width: 900px;
margin: 0 auto;
margin-top: 30px;
padding: 20px;
margin-bottom: 100px;
}
.container-fluid {
}
#templates {
display: none;
}
.card {
background-color: #f9f9f9;
border-radius: 6px;
box-shadow: 1px 1px 5px 2px #cdcdcd;
width: 270px;
display: inline-block;
vertical-align: top;
margin: 5px;
overflow: hidden;
position: relative;
}
#indexers {
text-align: center;
margin-top: 30px;
}
#unconfigured-indexers{
text-align: center;
}
#unconfigured-indexers .card {
width: 200px;
position: relative;
}
.unconfigured-indexer {
height: 70px;
}
.indexer {
height: 252px;
}
.add-indexer {
border: 0;
}
.indexer-logo {
padding-bottom: 5px;
}
.indexer-logo > .hidden-name {
position: absolute;
color: rgba(255, 255, 255, 0);
left: 0;
}
.indexer-logo img {
width: 100%;
border-bottom: 1px solid #FFF;
}
#unconfigured-indexers .indexer-logo img {
cursor: pointer;
}
.indexer-name > h3 {
margin-top: 13px;
text-align: center;
}
.indexer-buttons {
text-align: center;
}
.indexer-buttons > .btn {
margin-bottom: 2px;
}
.indexer-button-test {
width: 60px;
}
.indexer-add-content {
color: gray;
text-align: center;
}
.indexer-add-content > .glyphicon {
font-size: 50px;
vertical-align: bottom;
}
.indexer-add-content > .light-text {
margin-top: 11px;
font-size: 18px;
margin-left: -5px;
}
.indexer-host {
padding-left: 5px;
padding-right: 5px;
}
.indexer-host > input {
font-size: 12px;
padding: 2px;
}
.setup-item-inputstring {
max-width: 255px;
}
.setup-item-inputbool input {
max-width: 100px;
height: 20px;
}
[data-type=hiddendata]{
display: none;
}
.spinner {
-webkit-animation: spin 2s infinite linear;
-moz-animation: spin 2s infinite linear;
-o-animation: spin 2s infinite linear;
animation: spin 2s infinite linear;
}
@-moz-keyframes spin {
from {
-moz-transform: rotate(0deg);
}
to {
-moz-transform: rotate(360deg);
}
}
@-webkit-keyframes spin {
from {
-webkit-transform: rotate(0deg);
}
to {
-webkit-transform: rotate(360deg);
}
}
@keyframes spin {
from {
transform: rotate(0deg);
}
to {
transform: rotate(360deg);
}
}
#setup-indexer-go {
width: 70px;
}
hr {
border-top-color: #cdcdcd;
}
.input-area {
margin: 4px 0px;
}
.input-area > * {
vertical-align: middle;
}
.input-area > p {
margin-top: 10px;
}
.input-header {
font-size: 18px;
width: 160px;
display: inline-block;
}
.input-right {
width: 300px;
display: inline-block;
font-family: monospace;
}
#sonarr-warning {
display: none;
}
#logo {
max-width: 50px;
}
#header-title {
font-size: 34px;
vertical-align: middle;
padding-left: 15px;
}
#footer {
color: #444444;
margin: 0 auto;
margin-top: 10px;
text-align: center;
}
#jackett-allowext, #jackett-allowupdate, #jackett-logging, #jackett-prerelease {
width: 25px;
}
.modal-fillwidth {
width: 1200px;
min-width:80%;
}
.indexer-caps {
padding: 0px 15px 15px 15px;
border-top: 1px solid #e5e5e5;
}
.indexer-caps table {
border-bottom: 1px solid #ddd;
}
.jackettlogWarn {
background-color: #FFFF8E !important;
}
.jackettlogError {
background-color: #FF6060 !important;
}
.jackettdownloaded {
color: blueviolet;
}
.jacketdownloadlocal {
padding-left: 10px;
}
.downloadcolumn {
text-align:center;
}
pre {
display: block;
padding: 3px;
margin: 0 0 0px;
font-size: 13px;
line-height: 1.42857143;
color: #333;
word-break: break-all;
word-wrap: break-word;
background-color: transparent;
border: 0px;
border-radius: 0px;
}
.modal-open .modal {
overflow-x: auto; /* Model can be bigger than the screen on mobiles */
}
#unconfigured-indexers-template {
display: none;
}
.jackett-apikey{
margin-top: 10px;
}
.jackett-apikey .input-header{
width: 80px;
}
.setup-item-displayinfo:empty {
display: none;
}
body {
background-image: url("binding_dark.png");
background-repeat: repeat;
}
#page {
border-radius: 6px;
background-color: white;
max-width: 900px;
margin: 0 auto;
margin-top: 30px;
padding: 20px;
margin-bottom: 100px;
}
.container-fluid {
}
#templates {
display: none;
}
#indexers {
text-align: center;
margin-top: 30px;
}
.indexer-table {
text-align: left;
}
.test-success {
color: #449d44;
}
.test-error {
color: #c9302c;
}
.test-inprogress {
color: #286090;
}
.indexer-buttons {
text-align: center;
}
.indexer-buttons > .btn {
margin-bottom: 2px;
}
.indexer-button-test {
width: 60px;
}
.setup-item-inputstring {
max-width: 255px;
}
.setup-item-inputbool input {
max-width: 100px;
height: 20px;
}
.setup-item-inputselect {
max-width: 255px;
}
[data-type=hiddendata]{
display: none;
}
.spinner {
-webkit-animation: spin 2s infinite linear;
-moz-animation: spin 2s infinite linear;
-o-animation: spin 2s infinite linear;
animation: spin 2s infinite linear;
}
@-moz-keyframes spin {
from {
-moz-transform: rotate(0deg);
}
to {
-moz-transform: rotate(360deg);
}
}
@-webkit-keyframes spin {
from {
-webkit-transform: rotate(0deg);
}
to {
-webkit-transform: rotate(360deg);
}
}
@keyframes spin {
from {
transform: rotate(0deg);
}
to {
transform: rotate(360deg);
}
}
#setup-indexer-go {
width: 70px;
}
hr {
border-top-color: #cdcdcd;
}
.input-area {
margin: 4px 0px;
}
.input-area > * {
vertical-align: middle;
}
.input-area > p {
margin-top: 10px;
}
.input-header {
font-size: 18px;
width: 160px;
display: inline-block;
}
.input-right {
width: 300px;
display: inline-block;
font-family: monospace;
}
#sonarr-warning {
display: none;
}
#logo {
max-width: 50px;
}
#header-title {
font-size: 34px;
vertical-align: middle;
padding-left: 15px;
}
#footer {
color: #444444;
margin: 0 auto;
margin-top: 10px;
text-align: center;
}
#jackett-allowext, #jackett-allowupdate, #jackett-logging, #jackett-prerelease {
width: 25px;
}
.modal-fillwidth {
width: 1200px;
min-width:80%;
}
.indexer-caps {
padding: 0px 15px 15px 15px;
border-top: 1px solid #e5e5e5;
}
.indexer-caps table {
border-bottom: 1px solid #ddd;
}
.jackettlogWarn {
background-color: #FFFF8E !important;
}
.jackettlogError {
background-color: #FF6060 !important;
}
.jackettdownloaded {
color: blueviolet;
}
.jacketdownloadlocal {
padding-left: 10px;
}
.downloadcolumn {
text-align:center;
}
pre {
display: block;
padding: 3px;
margin: 0 0 0px;
font-size: 13px;
line-height: 1.42857143;
color: #333;
word-break: break-all;
word-wrap: break-word;
background-color: transparent;
border: 0px;
border-radius: 0px;
}
.modal-open .modal {
overflow-x: auto; /* Model can be bigger than the screen on mobiles */
}
.dataTables_filter input {
width: 400px
}
#unconfigured-indexers-template {
display: none;
}
.jackett-apikey{
margin-top: 10px;
}
.jackett-apikey .input-header{
width: 80px;
}
.setup-item-displayinfo:empty {
display: none;
}
table td.fit{
white-space: nowrap;
width: 1%;
}
.label-imdb {
background-color: #d0ab44;
}
.tooltip-inner {
max-width: 500px !important;
}
.tooltip-inner img {
max-width: 250px;
height: auto;
}
.type-public {
color: #449d44
}
.type-private {
color: #c9302c
}
.type-semi-private {
color: #ec971f
}
.dataTables_deadfilter {
float: right;
text-align: right;
margin-right: 1em;
}
input#searchquery{
width:400px;
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,286 @@
body {
background-image: url("binding_dark.png");
background-repeat: repeat;
}
#page {
border-radius: 6px;
background-color: white;
max-width: 900px;
margin: 0 auto;
margin-top: 30px;
padding: 20px;
margin-bottom: 30px;
}
.container-fluid {
}
#templates {
display: none;
}
#indexers {
text-align: center;
margin-top: 30px;
}
.indexer-table {
text-align: left;
}
.test-success {
color: #449d44;
}
.test-error {
color: #c9302c;
}
.test-inprogress {
color: #286090;
}
.indexer-buttons {
text-align: center;
}
.indexer-buttons > .btn {
margin-bottom: 2px;
}
.indexer-button-test {
width: 60px;
}
.setup-item-inputstring {
max-width: 255px;
}
.setup-item-inputbool input {
max-width: 100px;
height: 20px;
}
.setup-item-inputselect {
max-width: 255px;
}
[data-type=hiddendata]{
display: none;
}
.spinner {
-webkit-animation: spin 2s infinite linear;
-moz-animation: spin 2s infinite linear;
-o-animation: spin 2s infinite linear;
animation: spin 2s infinite linear;
}
@-moz-keyframes spin {
from {
-moz-transform: rotate(0deg);
}
to {
-moz-transform: rotate(360deg);
}
}
@-webkit-keyframes spin {
from {
-webkit-transform: rotate(0deg);
}
to {
-webkit-transform: rotate(360deg);
}
}
@keyframes spin {
from {
transform: rotate(0deg);
}
to {
transform: rotate(360deg);
}
}
#setup-indexer-go {
width: 70px;
}
hr {
border-top-color: #cdcdcd;
}
.input-area {
margin: 4px 0px;
}
.input-area > * {
vertical-align: middle;
}
.input-area > p {
margin-top: 10px;
}
.input-header {
font-size: 18px;
width: 160px;
display: inline-block;
}
.input-right {
width: 300px;
display: inline-block;
font-family: monospace;
}
#sonarr-warning {
display: none;
}
#logo {
max-width: 50px;
}
#header-title {
font-size: 34px;
vertical-align: middle;
padding-left: 15px;
}
#footer {
color: #444444;
margin: 0 auto;
margin-top: 10px;
text-align: center;
}
#jackett-allowext, #jackett-allowupdate, #jackett-logging, #jackett-prerelease {
width: 25px;
}
.modal-fillwidth {
width: 100%;
min-width:80%;
}
.indexer-caps {
padding: 0px 15px 15px 15px;
border-top: 1px solid #e5e5e5;
}
.indexer-caps table {
border-bottom: 1px solid #ddd;
}
.jackettlogWarn {
background-color: #FFFF8E !important;
}
.jackettlogError {
background-color: #FF6060 !important;
}
.jackettdownloaded {
color: blueviolet;
}
.jacketdownloadlocal {
padding-left: 10px;
}
.downloadcolumn {
text-align:center;
}
pre {
display: block;
padding: 3px;
margin: 0 0 0px;
font-size: 13px;
line-height: 1.42857143;
color: #333;
word-break: break-all;
word-wrap: break-word;
background-color: transparent;
border: 0px;
border-radius: 0px;
}
.modal-open .modal {
overflow-x: auto; /* Model can be bigger than the screen on mobiles */
}
.dataTables_filter input {
width: 75%
}
#unconfigured-indexers-template {
display: none;
}
.jackett-apikey{
margin-top: 10px;
}
.jackett-apikey .input-header{
width: 80px;
}
.setup-item-displayinfo:empty {
display: none;
}
table td.fit{
width: 50%;
}
.label-imdb {
background-color: #d0ab44;
}
.tooltip-inner {
max-width: 500px !important;
}
.tooltip-inner img {
max-width: 250px;
height: auto;
}
.type-public {
color: #449d44
}
.type-private {
color: #c9302c
}
.type-semi-private {
color: #ec971f
}
.dataTables_deadfilter {
float: right;
text-align: right;
margin-right: 1em;
}
div#jackett-search-results-datatable_wrapper {
width: 100%;
overflow-x: scroll;
}
div#unconfigured-indexer-datatable_wrapper {
width: 100%;
overflow-x: scroll;
}
div#jackett-releases-datatable_wrapper {
width: 100%;
overflow-x: scroll;
}
input#searchquery{
width:50%;
}

View File

Before

Width:  |  Height:  |  Size: 361 KiB

After

Width:  |  Height:  |  Size: 361 KiB

View File

Before

Width:  |  Height:  |  Size: 306 KiB

After

Width:  |  Height:  |  Size: 306 KiB

View File

Before

Width:  |  Height:  |  Size: 106 KiB

After

Width:  |  Height:  |  Size: 106 KiB

View File

Before

Width:  |  Height:  |  Size: 160 B

After

Width:  |  Height:  |  Size: 160 B

View File

Before

Width:  |  Height:  |  Size: 148 B

After

Width:  |  Height:  |  Size: 148 B

View File

Before

Width:  |  Height:  |  Size: 201 B

After

Width:  |  Height:  |  Size: 201 B

View File

Before

Width:  |  Height:  |  Size: 158 B

After

Width:  |  Height:  |  Size: 158 B

View File

Before

Width:  |  Height:  |  Size: 146 B

After

Width:  |  Height:  |  Size: 146 B

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