Compare commits

...

366 Commits

Author SHA1 Message Date
Qstick
7f28f64cbe Fix server settings on API docs 2021-12-28 18:47:44 -06:00
Qstick
9bad31af84 Eliminate PR Extension from pipeline 2021-12-28 18:26:51 -06:00
Qstick
01c7a05841 Only push to api-docs when changes 2021-12-28 17:52:15 -06:00
Qstick
9859b4a3d9 force it 2021-12-28 17:37:30 -06:00
Gabriel Sjöberg
177084fe8b Fixed: (Indexer) Update RARBG API query options
* Added app_id to captcha check to avoid 403 forbidden error
* Migrated app_id from hard coded to BuildInfo.AppName
2021-12-28 17:04:55 -06:00
Qstick
c57a91bc64 Skip build of doc only change, ignore PR errors for docs 2021-12-28 17:01:31 -06:00
Servarr
ca67a40c72 Automated API Docs update 2021-12-28 15:39:14 -06:00
Qstick
de7505bbe6 correctly push upstream 2021-12-28 15:27:54 -06:00
Qstick
97956ce951 Branch and push prior to PR 2021-12-28 15:10:56 -06:00
Qstick
8a38e124fd Speed up Checkout for Docs job 2021-12-28 14:45:28 -06:00
Qstick
38fcffe871 Identify user for git 2021-12-28 14:31:12 -06:00
Qstick
4c7b5a47d3 Autogenerated API docs 2021-12-28 13:43:45 -06:00
Qstick
34597e6ecb Boolean default should be a boolean
Fixes #729
2021-12-24 14:23:09 -06:00
bakerboy448
735be4f467 New: (TvVault) Mark as Obsolete per Site Bot Ban
Closes #573
2021-12-24 14:08:00 -06:00
bakerboy448
1c737d77fb Bump to 0.1.9 2021-12-24 14:07:42 -06:00
bakerboy448
55788ac04d Fixed: (Usenet) (DrunkenSlug) Update URL
https://api.drunkenslug.com gives a 301
2021-12-24 14:07:17 -06:00
bakerboy448
d108ab0339 Fix misleading Tags helptext [skip ci] 2021-12-24 14:06:42 -06:00
bakerboy448
5928eea83e Fixed: (PornoLab) Add new 2022 Categories
Based on Jackett f61a2b47400e68422ba6620a5ef2f5b4d0a929a3
2021-12-24 12:58:51 -06:00
bakerboy448
27898aa3b5 Fixed: (DanishBytes) Update Domain to .club
Based on Jackett f890ddd119a35eb4ba40b407aa65461c713b5e5d
2021-12-24 12:58:51 -06:00
bakerboy448
5e3322c538 New: OnApplicationUpdate Notifications
(based on Radarr Commits
9e175e28efcfc6ac3e414649b955a10fb0e951e7
4f5f9ff77ee4de05ba04cc677eb7baf4df726af5
4ebcbc28aa3e3268ecc37c5fc2b5565da8f13305
)
Fixes #723

Co-authored-by: Qstick <qstick@gmail.com>
2021-12-22 19:07:07 -06:00
bakerboy448
80c31e8660 fixup add rationale for Obsolete of C# Indexer Implementations 2021-12-18 09:34:51 -06:00
bakerboy448
46401ee187 Fixed: (BB) Remove '.' from Search String
based on jackett fbb1f15d7014b2d8c23c6ee94c2bcf37612066db
2021-12-18 09:27:26 -06:00
Davo1624
3610becc64 Fixed: (Orpheus) Drop Caps Support for Movie & TV Search
Drop TV and Movie search as no Movie/TV categories (#713)

e-learning results are how to play guitar videos, etc
comedy are comedy/standup recordings
2021-12-15 16:30:26 -06:00
Davo1624
06d9c157d8 Fixed: (Orpheus) Map Categories Comedy & E-Learning Videos to 'Other'
indexer does not actually have movies and tv
2021-12-15 16:27:50 -06:00
bakerboy448
d0d1f40128 Fixed: (Anilibria) Duplicate entries
Mark C# Anilibria as obsolete
2021-12-12 17:28:07 -06:00
bakerboy448
383d5464b7 New: (FlareSolverr Proxy) Configurable Request Timeout
Closes #696
2021-12-11 22:10:06 -06:00
Qstick
62d15536df Fixed: NullRef in SchemaBuilder when sending payload without optional Provider.Settings fields 2021-12-11 13:38:25 -06:00
ta264
147cdf2cce Fixed: Forms login persists across restarts in docker
(cherry picked from commit a219b4a1b869863b2ef47d4bdf33d308cb261ba3)

Fixes #409
2021-12-10 03:14:55 -06:00
bakerboy448
dd27d69e97 fix erroneous logging for windows service on non-windows 2021-12-10 03:14:23 -06:00
Robin Dadswell
32fd0911a2 New: Application Placeholders instead of default values 2021-12-09 15:19:11 -06:00
Robin Dadswell
0e6ec58a83 New: Placeholders in notification fields 2021-12-09 15:19:11 -06:00
Robin Dadswell
69f5963f6f New: Frontend Placeholders from the Backend 2021-12-09 15:19:11 -06:00
PearsonFlyer
6ca708f523 Fixed: (HDTorrents) Remove . from searches 2021-12-08 14:26:46 -06:00
ta264
9e7af8369e Fixed: Support older glibc in libMonoPosixHelper 2021-12-08 19:14:25 +00:00
Qstick
b05d8c930d Date Routines Test Cases 2021-12-07 20:19:05 -06:00
Qstick
6b886b938c New: Better Fuzzy DateTime Parse 2021-12-07 18:48:46 -06:00
ta264
4a7bf39723 Fixed: Speed up parsing DateTime 2021-12-06 21:57:22 +00:00
bakerboy448
7fcd320e23 Fixed: (PrivateHD) Drop support for IMDB search
imdb search does not support S/E params
this matches the behavior for TorrentLeech
Fixes #119
2021-12-06 21:12:37 -06:00
Qstick
88677ce236 Bump to 0.1.8 2021-12-06 17:19:04 -06:00
Qstick
d2cf060473 Fixed: (LazyLibrarian) Use listNabProviders instead of listProviders 2021-12-06 16:37:16 -06:00
Qstick
3b7b72d4e1 Fixed: (Cardigann) Always use search headers for download if defined 2021-12-05 17:43:15 -06:00
Qstick
4e69b80a98 Bump to 0.1.7 2021-12-05 17:29:22 -06:00
Qstick
0f52258d53 Fixed: (Flaresolverr) YggCookie and YggTorrent Issues 2021-12-05 17:26:58 -06:00
Qstick
4eadd4cb2f New: LazyLibrarian Sync Support
Closes #469

Co-Authored-By: philborman <12158777+philborman@users.noreply.github.com>
2021-12-05 11:41:51 -06:00
Qstick
579b8a3d3b New: (Cardigann) More feed metadata for book and music 2021-12-05 11:23:47 -06:00
bakerboy448
849b3de7d3 readme updates [skip ci] 2021-12-05 13:21:50 +00:00
Robin Dadswell
8855b2846d Fixed: Updated wording of Application Server URLs 2021-12-05 07:21:15 -06:00
bakerboy448
c64addb976 Fixed: (UNIT3D Indexers) Cleanse RID in Logs
Fixes #652
2021-12-04 18:51:33 -06:00
Qstick
fab1304bcd Skip DB backup on Postgres DB 2021-12-04 18:50:33 -06:00
Qstick
bd834fb4d7 Fixed: Stats fails to load due to unparsable elapsedTime for history event
Fixes #663
2021-12-04 18:03:33 -06:00
Qstick
dcee9582bd Speedup Stats endpoint call X3 2021-12-04 17:24:20 -06:00
Qstick
89e500edfd Fixed: (Stats) All filter not returning all 2021-12-04 17:18:20 -06:00
Qstick
ea83020714 Build Magnet on Cardigann separate 2021-12-04 17:17:47 -06:00
Qstick
6d62744667 Fixed: (Cardigann) Magnet generation for public indexers with InfoHash
Fixes #668
2021-12-04 12:26:55 -06:00
Qstick
08c68e26c1 Fixed: Correctly return infohash in torznab response when available 2021-12-04 12:10:19 -06:00
Qstick
574568e71d Optimize HandleJsonSelector() to avoid needless throws 2021-12-04 12:09:23 -06:00
Qstick
c83c818380 Fixed: (Flaresolverr) Ignore http errors on initial request when using FS 2021-12-01 21:50:28 -06:00
Qstick
a2df38b1ca Fixed: Windows installer and adding/removing services
Co-Authored-By: ta264 <ta264@users.noreply.github.com>
2021-12-01 21:46:33 -06:00
Qstick
89510c4a65 Fixed: Workaround net6 object serialization issues
Co-Authored-By: ta264 <ta264@users.noreply.github.com>
2021-12-01 20:39:26 -06:00
Qstick
b5a2f68bde Fixed: (Newznab) Parse Imdb, Tmdb, RageId, Tvdbid from indexer
Fixes #656
2021-11-30 21:47:44 -06:00
Qstick
1ffab661da Don't fallback to different OS Yarn cache 2021-11-30 11:20:15 -06:00
Qstick
bf0a627a4e New: (Indexer) PornoLab 2021-11-30 07:56:47 -06:00
Qstick
df764ce8b4 New: Postgres Support 2021-11-29 23:14:48 -06:00
Qstick
a61d4ab88c New: Stats filters 2021-11-29 23:14:48 -06:00
Qstick
01e7e924c4 Fixed: (Flaresolverr) Proxy Test
Fixes #651
2021-11-29 21:00:38 -06:00
Qstick
5f5df99dab Improved logging on bad date parse 2021-11-29 21:00:11 -06:00
bakerboy448
77e40e8e53 Fixed: (TorrentSyndikat) Download URL missing API 2021-11-29 19:36:47 -06:00
Qstick
d3853c1a54 Bump version to 0.1.6 2021-11-28 22:15:09 -06:00
ta264
02ecc04526 Fixed: Restarting windows service from UI 2021-11-28 16:51:42 -06:00
Qstick
2e103d6dba ParseUtil Cleanup 2021-11-28 16:47:16 -06:00
Qstick
9b9d2f2798 Fixed: Tray app restart
Co-Authored-By: ta264 <ta264@users.noreply.github.com>
2021-11-28 16:46:15 -06:00
Qstick
b80bfaeff0 Bump System.Data.SQLite.Core.Servar 2021-11-28 15:03:23 -06:00
bakerboy448
80b6821e46 Fixed: (Xthor) Details Linking to API and not the site
Fixes #577
2021-11-28 14:33:46 -06:00
bakerboy448
dbf81a7c9e Fixed: Outdated Definition Healthcheck not using Definition Name 2021-11-28 11:12:08 -06:00
Qstick
cb2e5953d5 Bump version to 0.1.5 2021-11-28 01:57:32 -06:00
bakerboy448
f5d6fa9138 Fixed: (Cardigann) Blocklist depreciated definitions
reverts 1abd14ee86
adds additional v3 definitions
2021-11-27 23:34:29 -06:00
Qstick
7ce5df63d4 Fixed: (Cardigann) Number normalize to ignore non-digits 2021-11-27 22:38:52 -06:00
Qstick
10aa3e43a2 Fixed: (Cardigann) Use correct encoding for Auth and Download calls 2021-11-27 21:46:55 -06:00
Qstick
387f8df0ff Rework some Cardigann exception handling 2021-11-27 21:07:42 -06:00
Qstick
d61ce3f27c Fixed: (Cardigann) Fails when Int variables used in requests 2021-11-27 20:50:58 -06:00
bakerboy448
eff8fdebf5 cleanse postgres username/pass creds
Fixes #632
2021-11-26 18:31:57 -06:00
bakerboy448
01fe990417 Update Github Templates [skip ci]
(cherry picked from commit beb22844c960db8e0f42a32809ad74cffce06e09)
2021-11-26 12:15:01 -06:00
bakerboy448
60f37de6af Fixed: (Orpheus) Try to actually use the token 2021-11-25 16:51:17 -06:00
Weblate
cda373f195 Translated using Weblate (Finnish)
Currently translated at 99.5% (445 of 447 strings)

Translated using Weblate (Hungarian)

Currently translated at 100.0% (447 of 447 strings)

Translated using Weblate (Finnish)

Currently translated at 99.5% (445 of 447 strings)

Translated using Weblate (German)

Currently translated at 95.3% (426 of 447 strings)

Co-authored-by: Csaba <csab0825@gmail.com>
Co-authored-by: Don-Chris <Chr_Sch@t-online.de>
Co-authored-by: Oskari Lavinto <olavinto@protonmail.com>
Co-authored-by: Weblate <noreply@weblate.org>
Translate-URL: https://translate.servarr.com/projects/servarr/prowlarr/de/
Translate-URL: https://translate.servarr.com/projects/servarr/prowlarr/fi/
Translate-URL: https://translate.servarr.com/projects/servarr/prowlarr/hu/
Translation: Servarr/Prowlarr
2021-11-25 10:29:24 -06:00
Qstick
510ccf4bce New: Set GUID in IndexerBase if Indexer doesn't set it explicitly 2021-11-25 09:10:16 -06:00
Qstick
0fd411a37f Fixed: Default Cardigann to DownloadUrl GUID 2021-11-25 09:08:51 -06:00
Qstick
cd7c73bad3 Fixed: Indexer not removed in UI when deleted
Indexer doesn't get removed because createAjaxReqest expects JSON type return, however after net6 provider delete event returns text/html type.
2021-11-23 18:18:00 -06:00
bakerboy448
44f12d9569 Fixed: (RarBG) Do not cleanse get_token 2021-11-23 14:57:03 -06:00
Qstick
51f8b1b5c4 Fixed: (Nebulance) Handle null poster 2021-11-23 10:17:23 -06:00
bakerboy448
8bce43ac29 Fixed: (Cardigann) Poster & tmbid are Optional by default
missed jackett commit f5802306fa1fe4edb4c7f997100a6caebe71e989
Fixes #629
2021-11-23 10:11:38 -06:00
Qstick
884aecf846 New: Store call URL in History, Link in UI 2021-11-22 17:14:52 -06:00
Qstick
1183a0386d New: Grab Title column option in History
Fixes #628
2021-11-22 16:40:06 -06:00
Qstick
5979c5f8fe Cleanup Config Options
Fixes #610
2021-11-22 16:40:05 -06:00
Qstick
25bb5b6427 Bump React-dnd to 14.0.4 2021-11-22 16:40:05 -06:00
Qstick
4d021fe8dc Fixed: Default search type should be 'search' 2021-11-22 08:09:32 -06:00
Qstick
520d82ed20 lint fixup 2021-11-21 18:58:02 -06:00
Weblate
f19a81990b Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (447 of 447 strings)

Translated using Weblate (Finnish)

Currently translated at 100.0% (447 of 447 strings)

Translated using Weblate (Finnish)

Currently translated at 100.0% (441 of 441 strings)

Co-authored-by: Havok Dan <havokdan@yahoo.com.br>
Co-authored-by: Oskari Lavinto <olavinto@protonmail.com>
Co-authored-by: Weblate <noreply@weblate.org>
Translate-URL: https://translate.servarr.com/projects/servarr/prowlarr/fi/
Translate-URL: https://translate.servarr.com/projects/servarr/prowlarr/pt_BR/
Translation: Servarr/Prowlarr
2021-11-21 18:48:46 -06:00
Qstick
03cde56333 New: Additional logging for requests when query/grab limit are set 2021-11-21 18:46:12 -06:00
Qstick
19862cda6c Bump Webpack plugins and loaders 2021-11-21 18:32:39 -06:00
Qstick
230a0e5aa0 Bump Sentry to 6.15.0 2021-11-21 18:03:07 -06:00
Qstick
4273f2d6f3 Bump Webpack to 5.64.2 2021-11-21 18:00:02 -06:00
Qstick
a4c92fc629 Update lint packages 2021-11-21 17:57:24 -06:00
Qstick
ce901ae8a3 Update translate.js to use createAjaxRequest 2021-11-21 17:46:24 -06:00
Qstick
5d32bcf8b9 New: Bulk Grab Releases and Parameter Search 2021-11-20 18:00:55 -06:00
Chris Sandvik
f69f96695b New: Add a filter bar to the "Add Indexers" modal (#607)
* Add a filter bar to the "Add Indexers" modal

* Fix stylelint errors

* Hide AddIndexerModal alert on small screens
2021-11-20 11:31:45 -06:00
Qstick
77fa113d77 Bump version to 0.1.4 2021-11-20 03:27:00 -06:00
bakerboy448
b8a42a7998 Fixed: (FlareSolverr) Detection of Cloudflare 2021-11-19 17:15:19 -06:00
Qstick
a3fd37b27e Fixed: (Avistaz) Handle cases when Avistaz returns strings for ids
Fixes #556
2021-11-18 23:17:22 -06:00
Qstick
29dcbadfca Fixed: (DanishBytes) Set GUID for search results
Fixes #597
2021-11-18 22:44:53 -06:00
Qstick
d8c9225d09 Fixed: (Cardigann) Use correct encoding for search requests
Fixes #496
2021-11-18 22:23:54 -06:00
Qstick
17008ace5c Fixed: (FlareSolverr) Don't attempt solve if CF not detected.
Fixes #478
2021-11-18 21:46:42 -06:00
Qstick
470b751f44 Fixed: (Cardigann) Don't try re-auth if can't html parse json 2021-11-18 20:14:41 -06:00
bakerboy448
a31971472d Fixed: Cleanse APIKey from Signalr logging
(cherry picked from (Readarr PR) commit 571b4647702737858d890ec2d18b73703b4b5a88)
2021-11-18 18:42:50 -06:00
ta264
4c4614cfab Fixed: Actually use freeleech tokens for Orpheus when enabled 2021-11-17 21:45:11 +00:00
Qstick
f5cb81951a New: Use native .NET socks proxy 2021-11-18 00:11:37 -05:00
Qstick
c35e257a82 New: Add osx-arm64 and linux-musl-arm builds 2021-11-18 00:11:37 -05:00
Qstick
cb7cbb74e0 New: Build on Net6 2021-11-18 00:11:37 -05:00
Servarr
c263c6f365 Translations from Weblate 2021-11-17 21:36:45 -06:00
Qstick
701c7d349a New: (Cardigann) XML Parser Suppport 2021-11-17 22:32:25 -05:00
bakerboy448
4a8131e00f Fixed: Cleanse APIKey from Newznab Response 2021-11-17 22:25:31 -05:00
bakerboy448
39fd9bea89 Fixed: (Cardigann) add headers from search block for all downloads
based on jackett c567f47ad1
2021-11-17 09:54:30 -05:00
bakerboy448
89a1b0f534 Fixed: (Cardigann) Do not log config RSSKey or APIKey
Fixed: (Cardigann) (v3) Pass APIKey as headers
2021-11-17 09:54:30 -05:00
bakerboy448
1aa9149866 Fixed: Orpheus failing to grab if token is not used
Closes #592
2021-11-14 00:35:29 -06:00
Qstick
eccd72304c Fixed: (NorBits) Set final login as POST prior to adding parameters
Fixes #600
2021-11-14 00:32:19 -06:00
Qstick
0fb19160f4 Bump version to 0.1.3 2021-11-14 00:28:19 -06:00
Qstick
3e4ac89a4c Fixed: (DanishBytes) Nullable error on TV Search
Fixes #597
2021-11-14 00:26:37 -06:00
Qstick
9331d8e013 Fixed: Parsing of 8 digit IMDb Ids 2021-11-14 00:20:28 -06:00
Qstick
e94c8839f6 Fixed: (Cardigann) Raw search parameter failed to deserialize 2021-11-14 00:20:28 -06:00
Qstick
1abd14ee86 Allow Obsolete of C# Indexer Implementations 2021-11-14 00:20:28 -06:00
Qstick
6200c9e496 New: (Cardigann) ImdbId and Description are optional 2021-11-14 00:20:28 -06:00
Qstick
2c0c6aa158 New: Support JSON parsing in Cardigann
Co-Authored-By: mikeoscar2006 <89641725+mikeoscar2006@users.noreply.github.com>
2021-11-14 00:20:28 -06:00
bakerboy448
93deb56e8e Fixed: Cleanse RSSKey and PassKey from Indexer Response 2021-11-14 00:16:35 -06:00
bakerboy448
971c755738 Fixed: (RarBG) Remove Book Category & Support
based on Jackett f018470d6951a496b3d274fdda825c26ae8f6425
2021-11-14 00:15:58 -06:00
bakerboy448
51df1be144 Fixed: Remove Defunct Usenet Indexer NZBXS
closes #594
2021-11-10 17:27:48 -06:00
Qstick
11fad915d5 Drop prefix from issue templates 2021-11-09 22:35:45 -06:00
Qstick
49793a3af0 Rename NzbSearchService to ReleaseSearchService 2021-11-09 22:27:53 -06:00
Qstick
87d6cbd813 Clarified Aria2 RPC Path field
Co-Authored-By: Taloth <Taloth@users.noreply.github.com>
2021-11-09 22:26:30 -06:00
Qstick
5ca8148d3b Bump macOS build agent to 10.15 2021-11-09 22:14:31 -06:00
Qstick
8ebec7c7e1 Fixed: (Applications) Test fails when selecting sub-categories only for sync
Fixes #588
2021-11-09 22:12:56 -06:00
Robin Dadswell
61cff12206 Fixed: Time column is first column on events page
(cherry picked from commit c14ef7bee7477ad5d29498f1cba94267eb11daf0)
2021-11-09 18:55:05 -06:00
Qstick
22412981bb Fixed: (SpeedCD) Incorrect Http Login Method
Fixes #582
2021-11-08 23:29:31 -06:00
Qstick
8e43ea4bbc New: (Indexer) Norbits 2021-11-08 23:17:01 -06:00
bakerboy448
f38d6c5b42 Fixed: (Avistaz) Cleanse PID & Hash from response
Fixes #557
2021-11-08 20:27:32 -06:00
bakerboy448
2054dcc127 Fixed: (TorrentLeech) Drop support for IMDb ID TV Searches
Fixed: (TorrentLeech) Returning unrelated results for Season/Episode Searches

Fixes #474
2021-11-08 20:26:57 -06:00
Robin Dadswell
8d856b2edb New: Added UDP syslog support 2021-11-08 20:25:28 -06:00
Weblate
e07ad14e83 Translated using Weblate (Swedish)
Currently translated at 100.0% (441 of 441 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (441 of 441 strings)

Translated using Weblate (Swedish)

Currently translated at 100.0% (441 of 441 strings)

Co-authored-by: Havok Dan <havokdan@yahoo.com.br>
Co-authored-by: LukkiHyde <lucas.bergstrom90@gmail.com>
Co-authored-by: Weblate <noreply@weblate.org>
Translate-URL: https://translate.servarr.com/projects/servarr/prowlarr/pt_BR/
Translate-URL: https://translate.servarr.com/projects/servarr/prowlarr/sv/
Translation: Servarr/Prowlarr
2021-11-08 20:24:51 -06:00
bakerboy448
d585ab5677 Fixed: (RuTracker.Org) Fails to add
Closes #560
2021-11-08 20:24:37 -06:00
zpengcom
6a6697c2c2 Translated using Weblate (Chinese (Simplified) (zh_CN))
Currently translated at 100.0% (441 of 441 strings)

Translation: Servarr/Prowlarr
Translate-URL: https://translate.servarr.com/projects/servarr/prowlarr/zh_CN/
2021-11-05 19:32:30 -05:00
Stéphane Dupont
e859bedef1 Translated using Weblate (French)
Currently translated at 100.0% (441 of 441 strings)

Translation: Servarr/Prowlarr
Translate-URL: https://translate.servarr.com/projects/servarr/prowlarr/fr/
2021-11-05 19:32:30 -05:00
dobbleg1000
e688dac040 Fixed: (Bakabt) Typo in Search link 2021-11-03 19:15:39 -05:00
Qstick
b309582d91 Fixed: (DanishBytes) Double slash in search urls 2021-10-30 12:01:14 -05:00
bakerboy448
998e214171 New: (DesiTorrents) Add Alt URL .rocks
Closes #562
2021-10-30 11:48:54 -05:00
Qstick
8b0760296a Fixed: Set ContentType for Flaresolverr requests to ensure proper content encoding 2021-10-30 11:40:02 -05:00
Robin Dadswell
44aad1b943 Fixed: Prowl notification priority 2021-10-28 12:48:04 +01:00
Qstick
9ec8990a21 Bump to 0.1.2 2021-10-26 18:05:33 -04:00
Weblate
8ac721a30b Translated using Weblate (Chinese (Simplified) (zh_CN))
Currently translated at 96.8% (427 of 441 strings)

Translated using Weblate (Chinese (Simplified) (zh_CN))

Currently translated at 96.3% (425 of 441 strings)

Translated using Weblate (Chinese (Simplified) (zh_CN))

Currently translated at 96.3% (425 of 441 strings)

Translated using Weblate (French)

Currently translated at 100.0% (441 of 441 strings)

Co-authored-by: Nackophilz <clement.wigy@gmail.com>
Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: muihiuwev <muihiuwev@outlook.com>
Co-authored-by: yulelong <yulelong@foxmail.com>
Translate-URL: https://translate.servarr.com/projects/servarr/prowlarr/fr/
Translate-URL: https://translate.servarr.com/projects/servarr/prowlarr/zh_CN/
Translation: Servarr/Prowlarr
2021-10-23 10:31:57 -05:00
bakerboy448
3bbadb516d New: (DesiTorrents) Convert from Gazelle to UNIT3D
Fixes #532
2021-10-17 14:00:57 -05:00
Qstick
f5f0dd6fae New: Support server notifications 2021-10-17 13:10:06 -05:00
Qstick
0cfb7da411 New: (Indexer) BitHDTV 2021-10-17 12:27:23 -05:00
Qstick
b65f4205fc Fixed: Don't delete down indexers if they still exist in DB
Fixes #494
2021-10-17 11:58:48 -05:00
Qstick
3e243eafdd Bump FluentMigrator to 3.3.1 2021-10-16 12:49:55 -05:00
Qstick
327fd08059 New: (RuTracker) Search by Categories 2021-10-15 20:04:59 -05:00
Qstick
827741db17 Fixed: (TVVault) add delay between requests and fix search & download 2021-10-15 20:01:39 -05:00
bakerboy448
c21e323992 New: Improved Logging of Search for ID based searches 2021-10-11 11:00:40 -05:00
Shane M
e49d03ab7b Fixed: (RevolutionTT) Remove [REQ] prefix from torrent title (#545)
[REQ] is an automatically generated prefix added to fulfilled requests, and very often breaks parsing for title matching

Co-authored-by: Shane Moore <vales@users.noreply.github.com>
2021-10-10 19:14:03 -05:00
Nyuels
4347e1cf7a New: (Internet Archive) Add Torrent File Only option. (#459) 2021-10-10 17:21:39 -05:00
Qstick
d7e1043b79 Fixed: (Cardigann) Info field text pulling from DB instead of definition 2021-10-10 17:12:46 -05:00
Weblate
d4bdb73b7c Translated using Weblate (French)
Currently translated at 100.0% (441 of 441 strings)

Co-authored-by: Nackophilz <clement.wigy@gmail.com>
Translate-URL: https://translate.servarr.com/projects/servarr/prowlarr/fr/
Translation: Servarr/Prowlarr
2021-10-10 17:00:36 -05:00
Dmitry Chepurovskiy
eeebf3ecf0 Fixed: (Anilibria) Fix download torrent link (#529) 2021-10-10 16:58:59 -05:00
Qstick
76d73aa6a9 New: (Indexer) SpeedCD 2021-10-10 14:23:42 -05:00
Qstick
5dfe530cf3 Fixed: (BB) Detect when re-auth needed 2021-10-10 14:06:30 -05:00
Qstick
8b8b5ba1c8 Cleanup cardigann logging 2021-10-10 13:04:12 -05:00
bakerboy448
c5caf22375 New: Support for Prowlarr Definitions v2
New: Support for Updated yml Definitions
Fixes: #298
2021-10-10 13:04:12 -05:00
Qstick
293b32ea0e New: Improve size and number parsing 2021-10-10 13:04:12 -05:00
Qstick
25bb10d62b New: (Cardigann) AllowRawSearch Property 2021-10-10 13:04:12 -05:00
bakerboy448
9eba50d9db New: Log which DB is being migrated
(cherry picked from Sonarr commit 07c95f06d3b9b32aaeb923d4c678f10a2bf1141a)
2021-10-09 09:42:19 -05:00
Qstick
234995cbaf Rename indexer proxied HTTP methods for clarification 2021-10-06 19:33:47 -05:00
Qstick
918071903b New: Raw search engine support in caps 2021-10-06 19:32:22 -05:00
bakerboy448
dcfa3ad48e Update contributing [skip ci] (#528)
* update contributing [skip ci]

sonarr pulls / *arr pulls

* nuke contributing => wiki [skip ci]

* fix wiki link [skip ci]

* fixup! fix wiki link [skip ci] (lint)
2021-10-06 19:08:14 -05:00
dobbleg1000
5dd6cde61a Fixed: (Indexer) Changed BakaBT to default to SFW content
Update Bakabt for Adult Content Bool and change link
2021-10-06 19:07:48 -05:00
Weblate
d18ddcaa50 Update translation files
Updated by "Cleanup translation files" hook in Weblate.

Update translation files

Updated by "Cleanup translation files" hook in Weblate.

Co-authored-by: Weblate <noreply@weblate.org>
Translate-URL: https://translate.servarr.com/projects/servarr/prowlarr/
Translation: Servarr/Prowlarr
2021-10-06 17:58:02 -05:00
bakerboy448
0cca9525a1 Fixed: (Indexers) Download requests not using the configured proxy
Fixes #520
2021-10-06 17:30:37 -05:00
Servarr
3455f3c92a Translations from Weblate
Currently translated at 81.4% (359 of 441 strings)

Translated using Weblate (Arabic)

Currently translated at 81.6% (360 of 441 strings)

Translated using Weblate (Russian)

Currently translated at 81.4% (359 of 441 strings)

Translated using Weblate (Icelandic)

Currently translated at 81.4% (359 of 441 strings)

Translated using Weblate (Danish)

Currently translated at 81.4% (359 of 441 strings)

Translated using Weblate (Slovak)

Currently translated at 10.6% (47 of 441 strings)

Translated using Weblate (German)

Currently translated at 95.4% (421 of 441 strings)

Translated using Weblate (Korean)

Currently translated at 60.3% (266 of 441 strings)

Translated using Weblate (Japanese)

Currently translated at 81.4% (359 of 441 strings)

Translated using Weblate (Catalan)

Currently translated at 2.4% (11 of 441 strings)

Translated using Weblate (Bulgarian)

Currently translated at 75.7% (334 of 441 strings)

Translated using Weblate (Thai)

Currently translated at 81.4% (359 of 441 strings)

Translated using Weblate (Romanian)

Currently translated at 81.8% (361 of 441 strings)

Translated using Weblate (Italian)

Currently translated at 85.7% (378 of 441 strings)

Translated using Weblate (Hindi)

Currently translated at 81.4% (359 of 441 strings)

Translated using Weblate (Spanish)

Currently translated at 83.2% (367 of 441 strings)

Translated using Weblate (Hebrew)

Currently translated at 81.4% (359 of 441 strings)

Translated using Weblate (Portuguese)

Currently translated at 84.1% (371 of 441 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 1.1% (5 of 441 strings)

Translated using Weblate (Swedish)

Currently translated at 81.8% (361 of 441 strings)

Translated using Weblate (Czech)

Currently translated at 81.4% (359 of 441 strings)

Translated using Weblate (Greek)

Currently translated at 81.1% (358 of 441 strings)

Translated using Weblate (Norwegian Bokmål)

Currently translated at 12.4% (55 of 441 strings)

Translated using Weblate (Turkish)

Currently translated at 81.6% (360 of 441 strings)

Translated using Weblate (Vietnamese)

Currently translated at 81.4% (359 of 441 strings)

Translated using Weblate (Chinese (Simplified) (zh_CN))

Currently translated at 90.9% (401 of 441 strings)

Translated using Weblate (Polish)

Currently translated at 81.4% (359 of 441 strings)

Update translation files

Updated by "Cleanup translation files" hook in Weblate.

Co-authored-by: Anonymous <noreply@weblate.org>
Co-authored-by: Weblate <noreply@weblate.org>
Translate-URL: https://translate.servarr.com/projects/servarr/prowlarr/
Translate-URL: https://translate.servarr.com/projects/servarr/prowlarr/ar/
Translate-URL: https://translate.servarr.com/projects/servarr/prowlarr/bg/
Translate-URL: https://translate.servarr.com/projects/servarr/prowlarr/ca/
Translate-URL: https://translate.servarr.com/projects/servarr/prowlarr/cs/
Translate-URL: https://translate.servarr.com/projects/servarr/prowlarr/da/
Translate-URL: https://translate.servarr.com/projects/servarr/prowlarr/de/
Translate-URL: https://translate.servarr.com/projects/servarr/prowlarr/el/
Translate-URL: https://translate.servarr.com/projects/servarr/prowlarr/es/
Translate-URL: https://translate.servarr.com/projects/servarr/prowlarr/fi/
Translate-URL: https://translate.servarr.com/projects/servarr/prowlarr/he/
Translate-URL: https://translate.servarr.com/projects/servarr/prowlarr/hi/
Translate-URL: https://translate.servarr.com/projects/servarr/prowlarr/is/
Translate-URL: https://translate.servarr.com/projects/servarr/prowlarr/it/
Translate-URL: https://translate.servarr.com/projects/servarr/prowlarr/ja/
Translate-URL: https://translate.servarr.com/projects/servarr/prowlarr/ko/
Translate-URL: https://translate.servarr.com/projects/servarr/prowlarr/nb_NO/
Translate-URL: https://translate.servarr.com/projects/servarr/prowlarr/pl/
Translate-URL: https://translate.servarr.com/projects/servarr/prowlarr/pt/
Translate-URL: https://translate.servarr.com/projects/servarr/prowlarr/ro/
Translate-URL: https://translate.servarr.com/projects/servarr/prowlarr/ru/
Translate-URL: https://translate.servarr.com/projects/servarr/prowlarr/sk/
Translate-URL: https://translate.servarr.com/projects/servarr/prowlarr/sv/
Translate-URL: https://translate.servarr.com/projects/servarr/prowlarr/th/
Translate-URL: https://translate.servarr.com/projects/servarr/prowlarr/tr/
Translate-URL: https://translate.servarr.com/projects/servarr/prowlarr/vi/
Translate-URL: https://translate.servarr.com/projects/servarr/prowlarr/zh_CN/
Translate-URL: https://translate.servarr.com/projects/servarr/prowlarr/zh_Hans/
Translation: Servarr/Prowlarr

Co-authored-by: Weblate <noreply@weblate.org>
2021-10-05 08:34:23 -05:00
Weblate
af03c17892 Update translation files
Updated by "Cleanup translation files" hook in Weblate.

Co-authored-by: Weblate <noreply@weblate.org>
Translate-URL: https://translate.servarr.com/projects/servarr/prowlarr/
Translation: Servarr/Prowlarr
2021-10-02 11:18:49 -04:00
Weblate
6b39fa5ce6 Update translation files
Updated by "Cleanup translation files" hook in Weblate.

Co-authored-by: Weblate <noreply@weblate.org>
Translate-URL: https://translate.servarr.com/projects/servarr/prowlarr/
Translation: Servarr/Prowlarr
2021-10-02 10:36:09 -04:00
Servarr
1ee79f16fc Translated using Weblate (Turkish) (#516)
Currently translated at 16.5% (73 of 441 strings)

Translated using Weblate (French)

Currently translated at 99.7% (440 of 441 strings)

Co-authored-by: Francis Peixoto <peixoto.francis@gmail.com>
Co-authored-by: Micky <ad312@pm.me>
Translate-URL: https://translate.servarr.com/projects/servarr/prowlarr/fr/
Translate-URL: https://translate.servarr.com/projects/servarr/prowlarr/tr/
Translation: Servarr/Prowlarr

Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: Francis Peixoto <peixoto.francis@gmail.com>
Co-authored-by: Micky <ad312@pm.me>
2021-10-01 15:17:59 -05:00
bakerboy448
e73f2466cc Fixed (Headphones): Add missing description 2021-10-01 15:17:35 -05:00
Weblate
2e56b7681e Translated using Weblate (Dutch)
Currently translated at 100.0% (441 of 441 strings)

Translated using Weblate (Bulgarian)

Currently translated at 10.2% (45 of 441 strings)

Translated using Weblate (Korean)

Currently translated at 17.9% (79 of 441 strings)

Translated using Weblate (Spanish)

Currently translated at 76.1% (336 of 441 strings)

Co-authored-by: COTMO <moermantom1@gmail.com>
Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: eslifos <eaaf_01@hotmail.com>
Co-authored-by: keysuck <joshkkim@gmail.com>
Co-authored-by: siankatabg <siankata91@gmail.com>
Translate-URL: https://translate.servarr.com/projects/servarr/prowlarr/bg/
Translate-URL: https://translate.servarr.com/projects/servarr/prowlarr/es/
Translate-URL: https://translate.servarr.com/projects/servarr/prowlarr/ko/
Translate-URL: https://translate.servarr.com/projects/servarr/prowlarr/nl/
Translation: Servarr/Prowlarr
2021-09-25 22:08:27 -05:00
Jayson Reis
87650c83c6 New: (Indexer) lat-team.com (#505)
* New: (Indexer) Torrent lat-team.com

* Add lat-team to ignore definitions list

* Fix lat-team name
2021-09-25 22:03:42 -05:00
Qstick
34a09af01e New: Advanced settings for Application category control 2021-09-25 09:46:31 -04:00
Qstick
5a3d429d52 Remove unused MovieMonitor input 2021-09-25 09:46:31 -04:00
Qstick
40c49bce9b Fixed: Spinning of Test All Indexer icon
#507
2021-09-23 20:42:17 -05:00
Qstick
063083a1f1 Fixed: Search from header on Search Page
Fixes #511
2021-09-23 20:28:22 -05:00
bakerboy448
dbbc913809 New: (InternetArchive) Add Support for TV Categories
ref API docs `movies: any item where the main media content is video files, like mpeg, mov, avi, etc`
2021-09-19 08:47:59 -05:00
Qstick
f0f2c88c4a Fixed: (qBittorrent) Don't fail if remove torrents is enabled
We don't care about this in Prowlarr

Fixes #499
2021-09-15 22:04:09 -05:00
Weblate
1bfcb99f31 Translated using Weblate (Slovak)
Currently translated at 7.4% (33 of 441 strings)

Added translation using Weblate (Slovak)

Translated using Weblate (Norwegian Bokmål)

Currently translated at 9.2% (41 of 441 strings)

Added translation using Weblate (Norwegian Bokmål)

Translated using Weblate (Portuguese)

Currently translated at 83.6% (369 of 441 strings)

Translated using Weblate (Dutch)

Currently translated at 78.9% (348 of 441 strings)

Co-authored-by: 7even <henning@wikene.no>
Co-authored-by: Samuel Bartík <github.fundal@aleeas.com>
Co-authored-by: Stevie Robinson <stevie.robinson@gmail.com>
Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: sergioquiterio <serquiterio@gmail.com>
Translate-URL: https://translate.servarr.com/projects/servarr/prowlarr/nb_NO/
Translate-URL: https://translate.servarr.com/projects/servarr/prowlarr/nl/
Translate-URL: https://translate.servarr.com/projects/servarr/prowlarr/pt/
Translate-URL: https://translate.servarr.com/projects/servarr/prowlarr/sk/
Translation: Servarr/Prowlarr
2021-09-15 21:57:50 -05:00
bakerboy448
4ea0e6c016 add various missing descriptions 2021-09-15 21:57:26 -05:00
bakerboy448
1de845c8f5 (indexers) various - standardized language format with {ISO 639-1}-{ISO 3166-1 alpha-2} 2021-09-15 21:57:26 -05:00
bakerboy448
f3a33cf817 Fixed: Missing Proxy Validation Translations 2021-09-15 21:43:51 -05:00
bakerboy448
593a0e9658 Fixed: (MAM) Don't Parse HTTP Error Responses 2021-09-07 16:03:34 -05:00
Servarr
a854ce6f4e Translated using Weblate (Portuguese (Brazil)) (#484)
Currently translated at 100.0% (441 of 441 strings)

Translated using Weblate (Chinese (Simplified) (zh_CN))

Currently translated at 62.5% (276 of 441 strings)

Translated using Weblate (Hungarian)

Currently translated at 100.0% (441 of 441 strings)

Co-authored-by: Csaba <csab0825@gmail.com>
Co-authored-by: Havok Dan <havokdan@yahoo.com.br>
Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: angelsky11 <angelsky11@gmail.com>
Translate-URL: https://translate.servarr.com/projects/servarr/prowlarr/hu/
Translate-URL: https://translate.servarr.com/projects/servarr/prowlarr/pt_BR/
Translate-URL: https://translate.servarr.com/projects/servarr/prowlarr/zh_CN/
Translation: Servarr/Prowlarr

Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: Csaba <csab0825@gmail.com>
Co-authored-by: Havok Dan <havokdan@yahoo.com.br>
Co-authored-by: angelsky11 <angelsky11@gmail.com>
2021-09-03 14:33:08 -05:00
bakerboy448
043b1a0e46 Fixed: Better Log Cleansing
Ref #280 YGG Comment
2021-08-31 19:51:37 -04:00
bakerboy448
4c7c7e8a62 Fixed: (BTN) Daily Episode Searches failing
Fixes #480
2021-08-31 19:50:46 -04:00
Qstick
89a4c03dd2 Fixed: Translations for Tags setting page
Fixes #471
2021-08-30 22:48:24 -04:00
Qstick
baed2960b6 Fixed: (TorrentSeeds) new Login
Fixes #460
2021-08-30 22:39:05 -04:00
Qstick
e4ef1c3af0 Fixed: Convert DesiTorrents to Gazelle
Fixes #220
2021-08-30 22:20:40 -04:00
bakerboy448
b4f8fb733f Fixed: Indexer Display Issue on Search Page
Fixes #177
2021-08-30 20:47:46 -04:00
bakerboy448
1a6ea21b9f Fixed: Increased Xthor Rate Limit Time
Fixes Logs of #472

> 2021-08-28 05:59:47.8|Error|Xthor|An error occurred while processing indexer feed. https://api.xthor.tk?passkey=(removed)&category=12%2B125%2B104%2B13%2B15%2B14%2B98%2B17%2B16%2B101%2B32%2B110%2B123%2B109%2B34%2B30&accent=1

[v0.1.1.875] System.Exception: Triggered AntiSpam Protection, please delay your requests!
   at NzbDrone.Core.Indexers.Definitions.Xthor.XthorParser.CheckApiState(XthorError state) in D:\a\1\s\src\NzbDrone.Core\Indexers\Definitions\Xthor\XthorParser.cs:line 112
   at NzbDrone.Core.Indexers.Definitions.Xthor.XthorParser.ParseResponse(IndexerResponse indexerResponse) in D:\a\1\s\src\NzbDrone.Core\Indexers\Definitions\Xthor\XthorParser.cs:line 32
   at NzbDrone.Core.Indexers.HttpIndexerBase`1.FetchPage(IndexerRequest request, IParseIndexerResponse parser) in D:\a\1\s\src\NzbDrone.Core\Indexers\HttpIndexerBase.cs:line 321
   at NzbDrone.Core.Indexers.HttpIndexerBase`1.FetchReleases(Func`2 pageableRequestChainSelector, Boolean isRecent) in D:\a\1\s\src\NzbDrone.Core\Indexers\HttpIndexerBase.cs:line 174
RequestUri: https://api.xthor.tk?passkey=(removed)&category=12%2B125%2B104%2B13%2B15%2B14%2B98%2B17%2B16%2B101%2B32%2B110%2B123%2B109%2B34%2B30&accent=1;StatusCode: OK;ContentType: application/json;ContentLength: 133;ContentSample: {
    "error": {
        "code": 8,
        "descr": "Protection Anti-Spam: A.P.I limitee a 1 requete toutes les 2 secondes."
    }
};FeedUrl: https://api.xthor.tk?passkey=(removed)&category=12%2B125%2B104%2B13%2B15%2B14%2B98%2B17%2B16%2B101%2B32%2B110%2B123%2B109%2B34%2B30&accent=1
2021-08-30 19:58:48 -04:00
bakerboy448
16834e0f24 Fixed: (TPB) No Results returned for Torznab searches
Fixed: (TPB) Missing Magnet Download Link
2021-08-30 19:43:20 -04:00
Qstick
658724b315 OpenAPI auto generation test 2021-08-29 23:12:59 -04:00
bakerboy448
a2c8cec27e bug template fix [skip ci] [common] 2021-08-27 20:46:58 -05:00
Nyuels
3c9fbeabaa Fixed: Use Gazelle freelech tokens. (#465) 2021-08-27 18:21:56 -04:00
Weblate
04e84f3a90 Translated using Weblate (Hungarian)
Currently translated at 100.0% (438 of 438 strings)

Translated using Weblate (French)

Currently translated at 97.7% (428 of 438 strings)

Translated using Weblate (Hungarian)

Currently translated at 100.0% (438 of 438 strings)

Co-authored-by: Anonymous <noreply@weblate.org>
Co-authored-by: Csaba <csab0825@gmail.com>
Co-authored-by: Weblate <noreply@weblate.org>
Translate-URL: https://translate.servarr.com/projects/servarr/prowlarr/fr/
Translate-URL: https://translate.servarr.com/projects/servarr/prowlarr/hu/
Translation: Servarr/Prowlarr
2021-08-25 23:23:36 -04:00
Steve Adams
77a76fe5a1 New: HDBits to parse IMDB using parser utils (#454) 2021-08-25 23:22:04 -04:00
ta264
1d20b9d429 Fixed: Don't delete tags used by indexer proxies 2021-08-23 22:12:40 +01:00
bakerboy448
46e1cce632 New: (TorrentLeech) Add VIP Expiration
Closes #419
bonus- sort en.json
2021-08-23 22:20:41 -05:00
Qstick
03f821f484 New: Make VIP Check Generic 2021-08-23 22:35:28 -04:00
Qstick
c72222a696 Mylar code cleanup 2021-08-22 22:24:46 -04:00
bakerboy448
f4cee1d5f4 Fixed: UserAgent Parsing
Fixes #448

New - add user agent parser tests
2021-08-22 15:00:59 -05:00
Qstick
ab7bc85368 fix mass delete 2021-08-22 15:53:30 -04:00
bakerboy448
d50e1d7cc0 update readme [skip ci] 2021-08-22 10:25:37 -05:00
Qstick
ab1545e834 Fixed: Mass Indexer delete fails with 415 2021-08-22 11:04:00 -04:00
Weblate
c8cc48229c Translated using Weblate (French)
Currently translated at 97.9% (429 of 438 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (438 of 438 strings)

Co-authored-by: Lizandra Candido da Silva <lizandra.c.s@gmail.com>
Co-authored-by: ProBatou <baptiste2105@hotmail.fr>
Co-authored-by: Weblate <noreply@weblate.org>
Translate-URL: https://translate.servarr.com/projects/servarr/prowlarr/fr/
Translate-URL: https://translate.servarr.com/projects/servarr/prowlarr/pt_BR/
Translation: Servarr/Prowlarr
2021-08-21 23:00:33 -04:00
Steve Adams
b513fac2f7 Fixed: (HDBits) Not parsing the search term for TV (#444)
* Fixing HDBits not parsing the search term

* remove debug vars

* Handle TVDB Properly
2021-08-21 22:59:53 -04:00
Qstick
368e0755a0 Update README.md
[skip ci]
2021-08-21 22:56:50 -04:00
PearsonFlyer
27064cd293 Fixed: Clarify IPT cookie help text (#421)
* Fixed: Clarify IPT cookie help text

* Update src/NzbDrone.Core/Indexers/Definitions/IPTorrents.cs

Co-authored-by: bakerboy448 <55419169+bakerboy448@users.noreply.github.com>

Co-authored-by: PearsonFlyer <PearsonFlyer@github.com>
Co-authored-by: Qstick <qstick@gmail.com>
Co-authored-by: bakerboy448 <55419169+bakerboy448@users.noreply.github.com>
2021-08-21 00:12:39 -04:00
Qstick
1fe8c63d41 Update README.md
[skip ci]
2021-08-20 23:45:24 -04:00
Qstick
b18e226718 Bump to 0.1.1 2021-08-20 23:29:08 -04:00
Qstick
682afc2c75 Fixed: (Rarbg) Blank baseUrl drop-down (#443)
* Fixed: (Rarbg) Blank baseUrl drop-down

* fixup! Using missing
2021-08-20 22:50:59 -04:00
Qstick
1ef43c40c0 Fixed: (BakaBT) Torrent downloads failing
Fixes #442
2021-08-19 23:37:14 -04:00
Robin Dadswell
b46e2c6ad1 New: Renamed Blacklist to Blocklist 2021-08-19 20:08:26 -04:00
Qstick
0a17b7e8ae Fixed: Send Link element in nab response 2021-08-18 22:23:22 -04:00
bakerboy448
b54c7e220e Fixed: Update AppIndexerRegex to support indexer ids over 100
Fixed Update AppIndexerRegex to support /api trailing (Mylar3)
2021-08-18 21:23:22 -04:00
bakerboy448
efb2a5751c Fixed: (Mylar3) Indexer Host needs to include trailing /api 2021-08-18 21:23:22 -04:00
Yukine
2cd0dde4e2 Fixed: (Indexer) AnimeBytes Synonymns & Links are optional 2021-08-17 18:50:32 -04:00
Weblate
de86274b08 Translated using Weblate (Portuguese (Brazil))
Currently translated at 99.0% (434 of 438 strings)

Co-authored-by: Havok Dan <havokdan@yahoo.com.br>
Translate-URL: https://translate.servarr.com/projects/servarr/prowlarr/pt_BR/
Translation: Servarr/Prowlarr
2021-08-17 18:50:02 -04:00
Qstick
4a957b618e Fixed: Proxy HealthCheck should use Proxy.Test method
Fixes #431
2021-08-17 07:45:20 -04:00
Qstick
891ca0f56b Fixed: (Sonarr) Workaround Sonarr issue with caps and basic search
Fixes #430
2021-08-16 21:09:55 -04:00
Qstick
635fa78da9 Fixed: Cursor Jumps to end in when editing search term
Fixes #290
2021-08-15 22:41:33 -04:00
Qstick
b7731faedc Fixed: (Indexer Proxy) Socks4 and Socks5 not using Credentials 2021-08-15 19:48:14 -04:00
bakerboy448
7c1f5f769d Fixed: Settings Page Translates
New: Indexer Proxies Settings Page Links
- renamed Connect to Notifications
2021-08-15 09:15:07 -05:00
bakerboy448
e8c6103cc7 Fixed: Missing Indexer Proxy Modal translate 2021-08-15 09:15:07 -05:00
Qstick
742c0d02bc New: FlareSolverr Proxy Option 2021-08-15 01:57:00 -04:00
Qstick
7480ebea85 New: Per Indexer Proxies
Fixes #281
2021-08-15 01:57:00 -04:00
Qstick
31886e8d35 New: (Newznab) Parse PosterUrl when available 2021-08-15 00:42:51 -04:00
Qstick
252b9a1b6b Fixed: (Sonarr) Correctly set anime categories 2021-08-14 23:56:37 -04:00
Qstick
77892a3885 New: Sync Indexers with Mylar3 2021-08-14 23:50:47 -04:00
bakerboy448
09d839ffb1 Fixed: Incorrectly Cleansing TorrentLeech Search URL 2021-08-14 21:36:05 -04:00
Weblate
1c15932b90 Translated using Weblate (German)
Currently translated at 98.8% (421 of 426 strings)

Translated using Weblate (German)

Currently translated at 98.3% (419 of 426 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (426 of 426 strings)

Translated using Weblate (Portuguese)

Currently translated at 85.4% (364 of 426 strings)

Co-authored-by: Nyuels <nils.faerber@rwth-aachen.de>
Co-authored-by: Nyuels <nyuels@nyuels.de>
Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: Will Segatto <segatto.w@gmail.com>
Translate-URL: https://translate.servarr.com/projects/servarr/prowlarr/de/
Translate-URL: https://translate.servarr.com/projects/servarr/prowlarr/pt/
Translate-URL: https://translate.servarr.com/projects/servarr/prowlarr/pt_BR/
Translation: Servarr/Prowlarr
2021-08-14 20:25:33 -04:00
Qstick
27c643d2f5 New: (DownloadClient) Aria2 2021-08-14 20:07:54 -04:00
Qstick
9a6391873f Fixed: (HDBits) Unknown Categories on every release
Fixes #365
2021-08-14 17:15:54 -04:00
Qstick
12ae8edc50 New: (Indexer) Binsearch 2021-08-14 15:39:46 -04:00
Qstick
868f779c5d Fixed: (Newznab) Don't die if TV or Music only
Fixes #283
2021-08-13 22:16:19 -04:00
Qstick
204052de9c Bump Dapper to 2.0.90 2021-08-13 21:46:57 -04:00
Qstick
878e269e70 Bump MailKit to 2.14.0 2021-08-13 21:42:26 -04:00
Qstick
1e317dac6b Bump Net5 to 5.0.9 2021-08-13 21:40:34 -04:00
Qstick
305df2fb7b Bump Microsoft.NET.Test.Sdk to 16.11.0 2021-08-13 21:38:31 -04:00
Qstick
3e07a9397c Bump DryIOC to 4.8.1 2021-08-13 21:34:39 -04:00
Qstick
3e2d3c510a Bump AngleSharp to 0.16.0 2021-08-13 21:31:13 -04:00
Qstick
bdcead007c Cleanup: (Rutracker) Purge unused using statements 2021-08-13 21:28:01 -04:00
Qstick
6c5d48621f Fixed: (Indexer) Use Indexer Encoding for Query and Auth
Fixes #370
2021-08-13 21:25:52 -04:00
Qstick
a95465195d New: (Indexer) BB 2021-08-13 18:20:40 -04:00
Qstick
5d5e2042d0 Fixed: Handle response when magnet is empty
Fixes #404
2021-08-13 16:46:48 -04:00
Qstick
5d980a175c Fixed: (DanishBytes) Handle response with null bumped_at
Fixes #384
2021-08-13 16:42:49 -04:00
Qstick
2114db02d8 Fixed: (Rarbg) Advertise IMDB, TMDB, TVDB Search
Fixes #392
2021-08-13 16:00:09 -04:00
Qstick
4bd23a60bd Fixed: Pad seasons parameter for newznab tvsearch 2021-08-13 15:37:25 -04:00
chryzsh
fe324dcc0c Fixed: (Indexer) PTP IMDB search 2021-08-13 07:42:21 -04:00
johnpyp
d5b34e8c03 Fixed: (Indexer) BroadcastheNet - Report TvdbId and RId 2021-08-09 22:40:14 -05:00
Qstick
e47c7e6a47 New: Add coverurl to Newznab response 2021-08-07 12:07:38 -04:00
Nyuels
d937e0324f Fixed: (Internet Archive) Follow redirects on grabs (#403) 2021-08-06 20:50:06 -04:00
Yukine
ff623d4c39 Fixed: (Indexer) AnimeBytes improve sonarr compatibility and make optional (#376)
* Fixed: (Indexer) AnimeBytes improve sonarr compatibility and make optional

* fix(AnimeBytes): correct numbering
2021-08-06 20:47:52 -04:00
Weblate
0b05f5ef24 Translated using Weblate (Arabic)
Currently translated at 1.1% (5 of 426 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (426 of 426 strings)

Translated using Weblate (Italian)

Currently translated at 84.2% (359 of 426 strings)

Translated using Weblate (Danish)

Currently translated at 13.6% (58 of 426 strings)

Co-authored-by: Havok Dan <havokdan@yahoo.com.br>
Co-authored-by: Laubau <migdahs@gmail.com>
Co-authored-by: Simone <simoneungaro@hotmail.it>
Co-authored-by: bison529 <abshalsh@gmail.com>
Translate-URL: https://translate.servarr.com/projects/servarr/prowlarr/ar/
Translate-URL: https://translate.servarr.com/projects/servarr/prowlarr/da/
Translate-URL: https://translate.servarr.com/projects/servarr/prowlarr/it/
Translate-URL: https://translate.servarr.com/projects/servarr/prowlarr/pt_BR/
Translation: Servarr/Prowlarr
2021-08-06 17:51:10 -04:00
Nyuels
e6c3292485 Fixed: (Tracker) Internet Archive: Add handling of missing result fields. (#402) 2021-08-06 13:53:58 -05:00
Nyuels
ba1c1baeb5 New: (Indexer) Internet Archive 2021-08-05 21:07:09 -04:00
Qstick
5e7f4f3fc1 Fixed: Add Test All for IndexerLongTermStatusCheck
Fixes #397
2021-08-05 13:47:30 -04:00
chryzsh
3dd11213fa Fixed: Gazelle search using full IMDb ID 2021-08-04 22:04:53 -04:00
bakerboy448
50cae0719f New: (Indexer) Alternative Links for TorrentDay
Fixes #386
2021-08-02 19:04:48 -05:00
crusher
2c6680e4fa New: (Indexer) Rutracker.org (#371)
* first attempt at sc definition

* add dologin. seems to return html instead of json

* barebones working setup

* added category but errors on override

* fixed and tested

* guid fix

* fixed bdmv and dvd releases to report in radarr accepted format

* New: (Indexer) RuTracker

* minor fixes

* somewhat working rutracker org defintion with some filtering

* filter russian letters option implemented

* deal with subtitle languages

* russian filtering pretty good now

* removed sc from branch

* rutracker handles series ok now

* final touches to rutracker

* tore out the captcha

Co-authored-by: Qstick <qstick@gmail.com>
2021-08-01 09:59:45 -04:00
Qstick
96afb7f327 Fixed: (BakaBT) Map AnimeMovie to Movie
Fixes #147
2021-08-01 09:59:44 -04:00
Qstick
0d1025d60a Fixed: (Cardigann) Input pairs in HandleRequest should be form data
Should fix some download links not working for Cardigann indexers
2021-08-01 09:59:44 -04:00
Qstick
0508dd2b66 Fixed: (Cardigann) Sites that use POST search not sending form params
Fixes #367
2021-08-01 09:59:44 -04:00
Weblate
026a503d5f Translated using Weblate (Portuguese (Brazil))
Currently translated at 99.7% (425 of 426 strings)

Co-authored-by: Will Segatto <segatto.w@gmail.com>
Translate-URL: https://translate.servarr.com/projects/servarr/prowlarr/pt_BR/
Translation: Servarr/Prowlarr
2021-08-01 09:59:44 -04:00
Qstick
b3f8e648cd New: (Clients) Torrent and Usenet Blackhole
Fixes #238
2021-08-01 09:59:44 -04:00
Qstick
13b458090d New: RARBG tvdbId support and retry on failure
Fixes #333
2021-08-01 09:59:44 -04:00
Qstick
f97c3ff9bd Fixed: Application mapping regex fails 2021-08-01 09:59:43 -04:00
Qstick
841ff7b6ee Fixed: Don't fail sync on single app failure 2021-08-01 09:59:43 -04:00
bakerboy448
377db47daf git updates [skip ci] 2021-08-01 09:59:43 -04:00
crusher
2addcab765 New: (Indexer) - Secret Cinema (#372)
* first attempt at sc definition

* add dologin. seems to return html instead of json

* barebones working setup

* added category but errors on override

* fixed and tested

* guid fix

* fixed bdmv and dvd releases to report in radarr accepted format

* minor fixes

* fixed sc

* first attempt at SC categories

* category fixes for movies and music

* toggled back IsProduction
2021-08-01 09:59:31 -04:00
crusher
ddc676c608 Iptorrents tv episode search fix (#374)
* adjust search term for individual season in ipt
2021-08-01 09:59:01 -04:00
Qstick
924db7a394 New: (Indexer) TorrentParadiseMl 2021-07-29 21:23:23 -04:00
Qstick
580113d6ce New: (Indexer) TorrentSyndikat 2021-07-28 19:37:51 -04:00
Qstick
d532a69edc New: (Indexer) TorrentsCSV 2021-07-28 19:02:20 -04:00
Qstick
01f7e11d5a New: (Indexer) SceneTime 2021-07-27 22:28:07 -04:00
Qstick
de97ec95db Update YamlDotNet to 11.2.1 2021-07-26 21:55:46 -04:00
Qstick
6e66467ab3 Update Mailkit to 2.13.0 2021-07-26 21:52:59 -04:00
Qstick
4c5131708d Update RestSharp Packages 2021-07-26 21:48:47 -04:00
Qstick
bb2e1a6037 Update Sentry Packages 2021-07-26 21:46:04 -04:00
Qstick
5949bd97fd Update Lint Packages 2021-07-26 21:41:45 -04:00
Qstick
eaff071b16 Bump .Net5 to 5.0.8 2021-07-26 21:35:25 -04:00
Dmitry Chepurovskiy
a922586aba New: (Indexer) Anidub 2021-07-26 21:22:01 -04:00
Qstick
80beea9bdb Fixed: Don't return results with categories that were not searched 2021-07-25 22:58:31 -04:00
Qstick
8c326fc5c2 Fixed: (ExoticaZ) Update Categories 2021-07-25 21:38:21 -04:00
Dmitry Chepurovskiy
e26081acff New: (Indexer) Animedia (#360) 2021-07-24 11:37:28 -04:00
Ashino
b3b0467d22 New: (Indexer) Torrent Xthor (#342)
* New: (Indexer) Torrent Xthor

* New: (Indexer) Torrent Xthor

Fix multiple lines fieldDefinition and texts

* New: (Indexer) Torrent Xthor
Remove unwanted blankline

* New: (Indexer) Torrent Xthor
Fix BaseSettings after rebase

* New: (Indexer) Torrent Xthor

* New: (Indexer) Torrent Xthor

Fix multiple lines fieldDefinition and texts

* New: (Indexer) Torrent Xthor
Remove unwanted blankline

* New: (Indexer) Torrent Xthor
Fix BaseSettings after rebase

* New: (Indexer) Torrent Xthor
- Add "EnhancedFrenchAccent" field that will allow to find VF2 releases when searching VFF or VFQ
- Fix BaseSettings
- Decrease the RateLimit to 2.1 seconds
- Remove page argument when searching page 0

* Fix punctuation

* New: (Indexer) Torrent Xthor

* New: (Indexer) Torrent Xthor

Fix multiple lines fieldDefinition and texts

* New: (Indexer) Torrent Xthor
Remove unwanted blankline

* New: (Indexer) Torrent Xthor
Fix BaseSettings after rebase

* New: (Indexer) Torrent Xthor
- Add "EnhancedFrenchAccent" field that will allow to find VF2 releases when searching VFF or VFQ
- Fix BaseSettings
- Decrease the RateLimit to 2.1 seconds
- Remove page argument when searching page 0

* Fix punctuation

* New: (Indexer) Torrent Xthor
- Fix "unknown" categories when searching with Prowlarr (category conversion was missing)
- Now every class has its own file (like all others indexers)

* New: (Indexer) Torrent Xthor

- Fix fielddefinition to be on single line

Co-authored-by: TCLE <t.clemenceau@shinken-solutions.com>
2021-07-23 21:09:57 -04:00
Servarr
e1c98d2b38 Translated using Weblate (Portuguese (Brazil)) (#354)
Currently translated at 99.7% (425 of 426 strings)

Added translation using Weblate (Chinese (Min Nan))

Translated using Weblate (Chinese (Simplified) (zh_CN))

Currently translated at 65.7% (280 of 426 strings)

Translated using Weblate (Hungarian)

Currently translated at 100.0% (426 of 426 strings)

Translated using Weblate (French)

Currently translated at 100.0% (426 of 426 strings)

Translated using Weblate (Hungarian)

Currently translated at 100.0% (425 of 425 strings)

Translated using Weblate (French)

Currently translated at 100.0% (425 of 425 strings)

Translated using Weblate (German)

Currently translated at 98.1% (417 of 425 strings)

Co-authored-by: Csaba <csab0825@gmail.com>
Co-authored-by: Havok Dan <havokdan@yahoo.com.br>
Co-authored-by: Sean <zhangshuyan@fuji.waseda.jp>
Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: doob187 <amderkum@gmail.com>
Co-authored-by: foXaCe <foxace66@gmail.com>
Translate-URL: https://translate.servarr.com/projects/servarr/prowlarr/de/
Translate-URL: https://translate.servarr.com/projects/servarr/prowlarr/fr/
Translate-URL: https://translate.servarr.com/projects/servarr/prowlarr/hu/
Translate-URL: https://translate.servarr.com/projects/servarr/prowlarr/pt_BR/
Translate-URL: https://translate.servarr.com/projects/servarr/prowlarr/zh_CN/
Translation: Servarr/Prowlarr

Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: Csaba <csab0825@gmail.com>
Co-authored-by: Havok Dan <havokdan@yahoo.com.br>
Co-authored-by: Sean <zhangshuyan@fuji.waseda.jp>
Co-authored-by: doob187 <amderkum@gmail.com>
Co-authored-by: foXaCe <foxace66@gmail.com>
2021-07-21 10:49:00 -05:00
Qstick
e304461dfb New: Add PosterUrl to ReleaseInfo for parsing 2021-07-18 21:33:17 -04:00
Qstick
a127e5a30f Update and rename feature_request.md to feature_request.yml
[skip ci]
2021-07-17 11:51:03 -04:00
Qstick
e252cd4d3e Update bug_report.yml 2021-07-17 11:42:54 -04:00
Dmitry Chepurovskiy
9a1bd3db4c New: (Indexer) Shizaproject 2021-07-17 08:29:00 -04:00
Qstick
acce098e02 Update and rename bug_report.md to bug_report.yml 2021-07-17 08:14:36 -04:00
Yukine
afa87b7113 Fixed: (Anime Tosho) Only include Releases which have a NZB (#351) 2021-07-15 21:33:42 -04:00
bakerboy448
4cbd2cd8bc Fixed: Add Missing Search Translates 2021-07-15 21:23:39 -04:00
Yukine
e81d0f3e97 Fixed: (AnimeBytes) apply LinksUnionConverter to model (#353) 2021-07-15 21:22:54 -04:00
Hawks
34a6a0e0c9 Update indexer list text 2021-07-15 06:36:46 -05:00
Yukine
4254a05ea3 Fixed: (AnimeBytes) cleanup code, fix episode searching & improve Season matching (#329)
* refactor/fix(AnimeBytes): use data classes & fix season searching

* fix: only append epsisode when season was found

* feat: add Episode padding back for Sonarr compatibility

* fix: strip Epsiode number from request
2021-07-14 21:03:49 -04:00
Yukine
d32a94c14d Fixed: (SubsPlease) fix offset release time issues 2021-07-14 19:01:54 -04:00
ntldr0
6a9155bcf5 New: (Indexers) (Redacted) Add API support 2021-07-14 19:01:03 -04:00
Dmitry Chepurovskiy
de442cc659 New: (Indexer) Anilibria 2021-07-14 18:55:04 -04:00
bakerboy448
7f514c8f1e Fixed: Improved IPT's Cookie Help Text
ref https://www.reddit.com/r/prowlarr/comments/ojlamb/help_needed_with_ipt/h52nxnl/
2021-07-14 02:27:29 -05:00
bakerboy448
4c51f09acb Update bug report template [skip ci]
(cherry picked from commit 4659a8366d8a1565890d3b72442bd35c6eb8176e)
2021-07-13 20:55:43 +01:00
Qstick
a60388fcf9 Fixed: Indexer Info modal doesn't show correct Url 2021-07-12 23:26:17 -04:00
Qstick
11b656dabf Fixed: (TVVault) Advertise Indexer flags 2021-07-12 23:11:28 -04:00
Qstick
535f29bef4 Fixed: (DigitalCore) Release InfoUrls not being set 2021-07-12 23:11:28 -04:00
bakerboy448
0ddc530dd4 Fixed: Enhanced and Added Various C# Indexer Descriptions
Fixed: Consistency in C# Indexer Credential Fields
2021-07-12 21:57:27 -05:00
Servarr
b5321d33c9 Translated using Weblate (Catalan) (#336)
Currently translated at 1.1% (5 of 425 strings)

Added translation using Weblate (Catalan)

Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: dtalens <databio@gmail.com>
Translate-URL: https://translate.servarr.com/projects/servarr/prowlarr/ca/
Translation: Servarr/Prowlarr

Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: dtalens <databio@gmail.com>
2021-07-12 21:57:14 -05:00
Qstick
4116c10caa New: (Indexers) Per indexer api and download limits 2021-07-12 22:53:33 -04:00
Qstick
0fe2cf5c2d New: (Indexer) TV Vault 2021-07-12 22:03:51 -04:00
PearsonFlyer
c94573e868 Fixed: Respect categories for ImmortalSeed in search 2021-07-12 21:34:02 -04:00
bakerboy448
1945af060d Fixed: Provider Wiki Links (supported-X => supported#X) 2021-07-12 21:33:27 -04:00
Qstick
cf399ffdcc Fixed: (DanishBytes) Convert to use API
Fixes #158
2021-07-11 21:28:57 -04:00
Qstick
5846188202 Fixed: (IPTorrents) Correctly map WebDL 2021-07-11 20:51:59 -04:00
Yukine
fc65a89fbc refactor: improve readability, use UTC in request instead New York 2021-07-11 18:21:16 -04:00
bakerboy448
b62ae41de8 update pr temp [skip ci] 2021-07-10 15:12:00 -05:00
bakerboy448
8107f309b4 Update PULL_REQUEST_TEMPLATE.md 2021-07-10 11:34:11 -04:00
Qstick
c2c12297bd Fixed: Persist columns for search page 2021-07-08 20:49:15 -04:00
bakerboy448
81cbdab5eb New: (Indexer) SubsPlease Alt Links 2021-07-07 23:04:14 -04:00
Servarr
9ee5a3e94b Translated using Weblate (Hungarian) (#300)
Currently translated at 100.0% (425 of 425 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (425 of 425 strings)

Translated using Weblate (Portuguese)

Currently translated at 85.4% (363 of 425 strings)

Translated using Weblate (French)

Currently translated at 100.0% (425 of 425 strings)

Translated using Weblate (German)

Currently translated at 92.4% (393 of 425 strings)

Translated using Weblate (Portuguese)

Currently translated at 84.4% (359 of 425 strings)

Translated using Weblate (Portuguese)

Currently translated at 84.4% (359 of 425 strings)

Co-authored-by: Csaba <csab0825@gmail.com>
Co-authored-by: Lizandra Candido da Silva <lizandra.c.s@gmail.com>
Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: foXaCe <foxace66@gmail.com>
Co-authored-by: reloxx <reloxx@interia.pl>
Translate-URL: https://translate.servarr.com/projects/servarr/prowlarr/de/
Translate-URL: https://translate.servarr.com/projects/servarr/prowlarr/fr/
Translate-URL: https://translate.servarr.com/projects/servarr/prowlarr/hu/
Translate-URL: https://translate.servarr.com/projects/servarr/prowlarr/pt/
Translate-URL: https://translate.servarr.com/projects/servarr/prowlarr/pt_BR/
Translation: Servarr/Prowlarr

Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: Csaba <csab0825@gmail.com>
Co-authored-by: Lizandra Candido da Silva <lizandra.c.s@gmail.com>
Co-authored-by: foXaCe <foxace66@gmail.com>
Co-authored-by: reloxx <reloxx@interia.pl>
2021-07-07 00:55:40 -05:00
Qstick
a570fd2a8f New: Advanced settings toggle in indexer edit/add modal 2021-07-05 13:12:06 -04:00
Lagicrus
5cffb10e08 Fixed: If no categories are passed in, flag up a unknown error (#311)
* If no categories are passed in, flag up a unknown error

* Pass back in default props to deal with undefined issues
2021-07-05 08:42:51 -04:00
Qstick
b11bf284dc New: (IPTorrents) Add freeleech only option
Fixes #314
2021-07-05 08:41:29 -04:00
Robin Dadswell
5c4c042b2e Updated movieService reference for App Sync Profile Service dependency on Indexer Factory 2021-07-04 22:26:35 -04:00
Qstick
d1cb744efd Update azuresync.yml
[skip ci]
2021-07-01 21:59:49 -04:00
bakerboy448
79b910a80c Fixed: Cleanse BHD APIKey from logs 2021-07-01 16:22:57 -05:00
bakerboy448
01e08e0c31 fix radarr reference in contributing [skip ci] 2021-07-01 16:21:38 -05:00
Junkbite
dd3c9c268e allow empty catergories on indexer search 2021-06-30 21:57:53 -04:00
bakerboy448
725f738ee1 Fixed: Clarify redirect wording 2021-06-30 10:43:33 -05:00
Qstick
22c738f43e Prevent sync jobs from running in parallel
[skip ci]
2021-06-29 21:53:16 -04:00
Qstick
e45f88473c Fixed: (Anthelion) Null BaseUrl and better error message on auth fail
Fixes #295
2021-06-28 23:04:10 -04:00
Qstick
889591d0b1 Fixed: (HDSpace) Use query params 2021-06-28 22:43:30 -04:00
Qstick
fe8247df8a Fixed: (HDSpace) Auth failure and Name 2021-06-28 21:36:05 -04:00
bakerboy448
7a5721bcee typo fix 2021-06-28 20:26:34 -05:00
bakerboy448
eea5c3e9a4 Fixed: Cleanse Pwd from logs 2021-06-28 12:22:47 -05:00
Qstick
f55493c9a9 New: (Indexer) HD-Space 2021-06-27 21:40:43 -04:00
bakerboy448
79618adaf9 New: (Indexer) Add IPTorrents Alt Links
as of Jackett 4524c18d39251c677bec1d4d8f75f71c6c6ac010
2021-06-27 19:32:31 -04:00
Qstick
af13d6ed80 Fixed: Not using correct BaseUrl if changed between tests 2021-06-27 18:15:18 -04:00
Qstick
38c09277d9 New: Alternative Site Links 2021-06-27 01:58:37 -04:00
Qstick
1fb693d066 Update azuresync.yml
[skip ci]
2021-06-26 18:04:48 -04:00
Qstick
7414a2f690 Update azuresync.yml
[skip ci]
2021-06-26 17:59:12 -04:00
Qstick
000590bcf7 Update azuresync.yml
[skip ci]
2021-06-26 17:57:00 -04:00
Qstick
d5d6625a63 Update azuresync.yml
[skip ci]
2021-06-26 17:16:12 -04:00
Qstick
00f33cb48f Set area and sub-area on azure sync
[skip ci]
2021-06-26 17:09:23 -04:00
Qstick
fd265c5734 Update azure-pipelines.yml 2021-06-26 14:58:58 -04:00
Qstick
316543b9aa Change Azure to Agile Config
[skip ci]
2021-06-26 11:07:51 -04:00
Qstick
117ebcff2d Fix default azure board buckets
[skip ci]
2021-06-26 10:55:13 -04:00
Qstick
aab394b2c8 Update azuresync.yml
[skip ci]
2021-06-26 10:51:14 -04:00
Qstick
6ae520c061 Test Azure Boards sync 2021-06-26 10:47:23 -04:00
667 changed files with 41806 additions and 12677 deletions

View File

@@ -260,7 +260,7 @@ dotnet_diagnostic.CA5392.severity = suggestion
dotnet_diagnostic.CA5394.severity = suggestion
dotnet_diagnostic.CA5397.severity = suggestion
dotnet_diagnostic.SYSLIB0014.severity = none
[*.{js,html,js,hbs,less,css}]
charset = utf-8

View File

@@ -1,38 +0,0 @@
---
name: Bug Report
about: Support Requests will be closed immediately, if you are not 100% certain this is a bug please go to our Reddit or Discord first. Exceptions do not mean you found a bug!
title: ''
labels: 'Type: Bug'
assignees: ''
---
<!-- Support Requests will be closed immediately, if you are unsure go to our Reddit or Discord first. Exceptions do not mean you found a bug! -->
<!-- Note: Text between <!- and -> will be hidden -->
**Describe the bug**
<!-- A clear and concise description of what the bug is. -->
**To Reproduce**
<!-- Steps to reproduce the behavior:
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error -->
**Expected behavior**
<!-- A clear and concise description of what you expected to happen.-->
**Screenshots**
<!-- If applicable, add screenshots to help explain your problem.-->
**Platform Information (please complete the following information):**
- OS: <!-- [e.g. Windows 10 2004 / Ubuntu 20.04] -->
- Docker: <!-- [Yes/No] -->
- .NET Version (System -> Status): <!--[e.g. .NET 5.0.1] -->
- Browser and Version (Only needed for UI issues): <!--[e.g. chrome 86.0.4240.198] -->
- Prowlarr Version: <!--[e.g. 0.1.2.1854-->
- Prowlarr Branch: <!--[e.g. develop, nightly]-->
Turn on Trace logs under Settings -> General and wait for the bug to occur again.
**Upload the full log file here (or another site (e.g. pastebin) and link it). Issues will be closed, if they do not include this!**
<!-- Trace logs are named Prowlarr.trace.txt or Prowlarr.trace.#.txt and will contain "trace" in them-->
<!-- Please see the Wiki for how to provide proper and useful trace log files https://wiki.servarr.com/prowlarr/troubleshooting#logging-and-log-files -->

73
.github/ISSUE_TEMPLATE/bug_report.yml vendored Normal file
View File

@@ -0,0 +1,73 @@
name: Bug Report
description: 'Report a new bug, if you are not 100% certain this is a bug please go to our Reddit or Discord first'
labels: ['Type: Bug', 'Status: Needs Triage']
body:
- type: checkboxes
attributes:
label: Is there an existing issue for this?
description: Please search to see if an issue already exists for the bug you encountered.
options:
- label: I have searched the existing issues
required: true
- type: textarea
attributes:
label: Current Behavior
description: A concise description of what you're experiencing.
validations:
required: true
- type: textarea
attributes:
label: Expected Behavior
description: A concise description of what you expected to happen.
validations:
required: true
- type: textarea
attributes:
label: Steps To Reproduce
description: Steps to reproduce the behavior.
placeholder: |
1. In this environment...
2. With this config...
3. Run '...'
4. See error...
validations:
required: false
- type: textarea
attributes:
label: Environment
description: |
examples:
- **OS**: Ubuntu 20.04
- **Prowlarr**: Prowlarr 0.1.0.650
- **Docker Install**: Yes
- **Using Reverse Proxy**: No
- **Browser**: Firefox 90 (If UI related)
value: |
- OS:
- Prowlarr:
- Docker Install:
- Using Reverse Proxy:
- Browser:
render: markdown
validations:
required: true
- type: dropdown
attributes:
label: What branch are you running?
options:
- Master
- Develop
- Nightly
- Other (This issue will be closed)
validations:
required: true
- type: textarea
attributes:
label: Trace Logs?
description: |
Trace Logs (https://wiki.servarr.com/prowlarr/troubleshooting#logging-and-log-files)
***Generally speaking, all bug reports must have trace logs provided.***
Tip: You can attach images or log files by clicking this area to highlight it and then dragging files in.
Additionally, any additional info? Screenshots? References? Anything that will give us more context about the issue you are encountering!
validations:
required: true

View File

@@ -1,20 +0,0 @@
---
name: Feature Request
about: Suggest an idea for Prowlarr
title: ''
labels: 'Type: Feature Request'
assignees: ''
---
**Is your feature request related to a problem? Please describe.**
<!-- A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] -->
**Describe the solution you'd like**
<!-- A clear and concise description of what you want to happen. -->
**Describe alternatives you've considered**
<!-- A clear and concise description of any alternative solutions or features you've considered. -->
**Additional context**
<!-- Add any other context or screenshots about the feature request here. -->

View File

@@ -0,0 +1,38 @@
name: Feature Request
description: 'Suggest an idea for Prowlarr'
labels: ['Type: Feature Request', 'Status: Needs Triage']
body:
- type: checkboxes
attributes:
label: Is there an existing issue for this?
description: Please search to see if an issue already exists for the feature you are requesting.
options:
- label: I have searched the existing issues
required: true
- type: textarea
attributes:
label: Is your feature request related to a problem? Please describe
description: A clear and concise description of what the problem is.
validations:
required: true
- type: textarea
attributes:
label: Describe the solution you'd like
description: A clear and concise description of what you want to happen.
validations:
required: true
- type: textarea
attributes:
label: Describe alternatives you've considered
description: A clear and concise description of any alternative solutions or features you've considered.
validations:
required: true
- type: textarea
attributes:
label: Anything else?
description: |
Links? References? Mockups? Anything that will give us more context about the feature you are encountering!
Tip: You can attach images or log files by clicking this area to highlight it and then dragging files in.
validations:
required: true

View File

@@ -1,5 +1,5 @@
#### Database Migration
YES | NO
YES - XXXX | NO
#### Description
A few sentences describing the overall goals of the pull request's commits.
@@ -8,8 +8,8 @@ A few sentences describing the overall goals of the pull request's commits.
#### Todos
- [ ] Tests
- [ ] Translation Keys
- [ ] Wiki Updates
- [ ] Translation Keys (./src/NzbDrone.Core/Localization/Core/en.json)
- [ ] [Wiki Updates](https://wiki.servarr.com)
#### Issues Fixed or Closed by this PR

41
.github/workflows/azuresync.yml vendored Normal file
View File

@@ -0,0 +1,41 @@
name: Sync issue to Azure DevOps work item
on:
issues:
types:
[opened, edited, deleted, closed, reopened, labeled, unlabeled, assigned]
concurrency: azuresync-${{ github.event.issue.number }}
jobs:
alert:
runs-on: ubuntu-latest
steps:
- uses: danhellem/github-actions-issue-to-work-item@master
if: "${{ contains(github.event.issue.labels.*.name, 'Type: Bug') == true }}"
env:
ado_token: "${{ secrets.ADO_PERSONAL_ACCESS_TOKEN }}"
github_token: "${{ github.token }}"
ado_organization: "Servarr"
ado_project: "Servarr"
ado_area_path: "Servarr\\Prowlarr"
ado_wit: "Bug"
ado_new_state: "New"
ado_active_state: "Active"
ado_close_state: "Closed"
ado_bypassrules: true
log_level: 100
- uses: danhellem/github-actions-issue-to-work-item@master
if: "${{ contains(github.event.issue.labels.*.name, 'Type: Bug') == false }}"
env:
ado_token: "${{ secrets.ADO_PERSONAL_ACCESS_TOKEN }}"
github_token: "${{ github.token }}"
ado_organization: "Servarr"
ado_project: "Servarr"
ado_area_path: "Servarr\\Prowlarr"
ado_wit: "User Story"
ado_new_state: "New"
ado_active_state: "Active"
ado_close_state: "Closed"
ado_bypassrules: true
log_level: 100

4
.gitignore vendored
View File

@@ -188,6 +188,10 @@ packages.config.md5sum
**/.idea/**/*.iml
**/.idea/**/contentModel.xml
**/.idea/**/modules.xml
# ignore node_modules symlink
node_modules
node_modules.nosync
# API doc generation
.config/

View File

@@ -1,53 +1,13 @@
# How to Contribute #
# How to Contribute
We're always looking for people to help make Prowlarr even better, there are a number of ways to contribute.
## Documentation ##
Setup guides, FAQ, the more information we have on the [wiki](https://wiki.servarr.com/prowlarr) the better.
This file has been moved to the wiki for the latest details please see the [contributing wiki page](https://wiki.servarr.com/prowlarr/contributing).
## Development ##
## Documentation
### Tools required ###
- Visual Studio 2019 or higher (https://www.visualstudio.com/vs/). The community version is free and works (https://www.visualstudio.com/downloads/).
- HTML/Javascript editor of choice (VS Code/Sublime Text/Webstorm/Atom/etc)
- [Git](https://git-scm.com/downloads)
- [NodeJS](https://nodejs.org/en/download/) (Node 12.X.X or higher)
- [Yarn](https://yarnpkg.com/)
- .NET Core 5.0.
Setup guides, [FAQ](https://wiki.servarr.com/prowlarr/faq), the more information we have on the [wiki](https://wiki.servarr.com/prowlarr) the better.
### Getting started ###
## Development
1. Fork Prowlarr
2. Clone the repository into your development machine. [*info*](https://docs.github.com/en/github/creating-cloning-and-archiving-repositories/cloning-a-repository-from-github)
3. Install the required Node Packages `yarn install`
4. Start gulp to monitor your dev environment for any changes that need post processing using `yarn start` command.
5. Build the project in Visual Studio, Setting startup project to `Prowlarr.Console` and framework to `net5.0`
6. Debug the project in Visual Studio
7. Open http://localhost:9696
### Contributing Code ###
- If you're adding a new, already requested feature, please comment on [Github Issues](https://github.com/Prowlarr/Prowlarr/issues "Github Issues") so work is not duplicated (If you want to add something not already on there, please talk to us first)
- Rebase from Radarr's develop branch, don't merge
- Make meaningful commits, or squash them
- Feel free to make a pull request before work is complete, this will let us see where its at and make comments/suggest improvements
- Reach out to us on the discord if you have any questions
- Add tests (unit/integration)
- Commit with *nix line endings for consistency (We checkout Windows and commit *nix)
- One feature/bug fix per pull request to keep things clean and easy to understand
- Use 4 spaces instead of tabs, this is the default for VS 2019 and WebStorm (to my knowledge)
### Contributing Indexers ###
- If you're contributing an indexer please phrase your commit as something like: `New: (Indexer) {Indexer Name}`, `New: (Indexer) {Usenet|Torrent} {Indexer Name}`, `New: (Indexer) {Torznab|Newznab} {Indexer Name}`
- If you're updating an indexer please phrase your commit as something like: `Fixed: (Indexer) {Indexer Name} {changes}` e.g. `Fixed: (Indexer) Changed BHD to use API`
### Pull Requesting ###
- Only make pull requests to develop, never master, if you make a PR to master we'll comment on it and close it
- You're probably going to get some comments or questions from us, they will be to ensure consistency and maintainability
- We'll try to respond to pull requests as soon as possible, if its been a day or two, please reach out to us, we may have missed it
- Each PR should come from its own [feature branch](http://martinfowler.com/bliki/FeatureBranch.html) not develop in your fork, it should have a meaningful branch name (what is being added/fixed)
- new-feature (Good)
- fix-bug (Good)
- patch (Bad)
- develop (Bad)
If you have any questions about any of this, please let us know.
See the [Wiki Page](https://wiki.servarr.com/prowlarr/contributing)

View File

@@ -4,73 +4,84 @@
[![Translated](https://translate.servarr.com/widgets/servarr/-/prowlarr/svg-badge.svg)](https://translate.servarr.com/engage/prowlarr/?utm_source=widget)
[![Docker Pulls](https://img.shields.io/docker/pulls/hotio/prowlarr.svg)](https://wiki.servarr.com/prowlarr/installation#docker)
![Github Downloads](https://img.shields.io/github/downloads/Prowlarr/Prowlarr/total.svg)
[![Backers on Open Collective](https://opencollective.com/Prowlarr/backers/badge.svg)](#backers)
[![Backers on Open Collective](https://opencollective.com/Prowlarr/backers/badge.svg)](#backers)
[![Sponsors on Open Collective](https://opencollective.com/Prowlarr/sponsors/badge.svg)](#sponsors)
[![Mega Sponsors on Open Collective](https://opencollective.com/Prowlarr/megasponsors/badge.svg)](#mega-sponsors)
Prowlarr is a indexer manager/proxy built on the popular arr .net/reactjs base stack to integrate with your various PVR apps. Prowlarr supports both Torrent Trackers and Usenet Indexers. It integrates seamlessly with Sonarr, Radarr, Lidarr, and Readarr offering complete management of your indexers with no per app Indexer setup required (we do it all).
Prowlarr is an indexer manager/proxy built on the popular \*arr .net/reactjs base stack to integrate with your various PVR apps. Prowlarr supports management of both Torrent Trackers and Usenet Indexers. It integrates seamlessly with Lidarr, Mylar3, Radarr, Readarr, and Sonarr offering complete management of your indexers with no per app Indexer setup required (we do it all).
## Major Features Include:
- Usenet support for 24 indexers natively, including Headphones VIP, and support for any Newznab compatible indexer via "Generic Newznab"
- Torrent support for almost 500 trackers & more coming soon
## Major Features Include
- Usenet support for 24 indexers natively, including Headphones VIP
- Usenet support for any Newznab compatible indexer via "Generic Newznab"
- Torrent support for over 500 trackers with more added all the time
- Torrent support for any Torznab compatible tracker via "Generic Torznab"
- Indexer Sync to Sonarr/Radarr/Readarr/Lidarr, so no manual configuration of the other applications are required
- Indexer History and Statistics
- Manual Searching of Trackers & Indexers at a category level
- Support for pushing releases directly to your download clients from Prowlarr
- Support for custom YML definitions via Cardigann that includes JSON and XML parsing
- Indexer Sync to Lidarr/Mylar3/Radarr/Readarr/Sonarr, so no manual configuration of the other applications are required
- Indexer history and statistics
- Manual searching of Trackers & Indexers at a category level
- Parameter based manual searching
- Support for pushing multiple releases at once directly to your download clients from Prowlarr
- Indexer health and status notifications
- Per Indexer proxy support (SOCKS4, SOCKS5, HTTP, Flaresolverr)
## Support
Note: Prowlarr is currently early in life, thus bugs should be expected
[![Wiki](https://img.shields.io/badge/servarr-wiki-181717.svg?maxAge=60)](https://wiki.servarr.com/prowlarr)
[![Discord](https://img.shields.io/badge/discord-chat-7289DA.svg?maxAge=60)](https://prowlarr.com/discord)
[![Reddit](https://img.shields.io/badge/reddit-discussion-FF4500.svg?maxAge=60)](https://www.reddit.com/r/Prowlarr)
Note: GitHub Issues are for Bugs and Feature Requests Only
[![GitHub - Bugs and Feature Requests Only](https://img.shields.io/badge/github-issues-red.svg?maxAge=60)](https://github.com/Prowlarr/Prowlarr/issues)
[![Wiki](https://img.shields.io/badge/servarr-wiki-181717.svg?maxAge=60)](https://wiki.servarr.com/prowlarr)
## Indexers/Trackers
## Indexers & Trackers
[Supported Indexers](https://wiki.servarr.com/en/prowlarr/supported-indexers)
[![Supported Indexers](https://img.shields.io/badge/Supported%20Indexers-View%20all%20currently%20supported%20indexers%20%26%20trackers-important)](https://wiki.servarr.com/en/prowlarr/supported-indexers)
[Indexer Requests](https://requests.prowlarr.com)
- Request or vote on an existing request for a new tracker/indexer
## Feature Requests
[Feature Requests](https://github.com/Prowlarr/Prowlarr/issues/new?assignees=&template=feature_request.md&Type%3A%20Feature%20Request&title=)
[![Indexer Requests](https://img.shields.io/badge/Indexer%20Requests-Create%20and%20view%20existing%20requests%20for%20trackers%20and%20indexers-informational)](https://requests.prowlarr.com)
## Contributors & Developers
This project exists thanks to all the people who contribute. [Contribute](CONTRIBUTING.md).
<a href="https://github.com/Prowlarr/Prowlarr/graphs/contributors"><img src="https://opencollective.com/Prowlarr/contributors.svg?width=890&button=false" /></a>
[API Documentation](https://prowlarr.com/docs/api/)
This project exists thanks to all the people who contribute.
- [Contribute (GitHub)](CONTRIBUTING.md)
- [Contribution (Wiki Article)](https://wiki.servarr.com/prowlarr/contributing)
- [YML Indexer Definition (Wiki Article)](https://wiki.servarr.com/prowlarr/cardigann-yml-definition)
[![Contributors List](https://opencollective.com/Prowlarr/contributors.svg?width=890&button=false)](https://github.com/Prowlarr/Prowlarr/graphs/contributors)
## Backers
Thank you to all our backers! 🙏 [Become a backer](https://opencollective.com/Prowlarr#backer)
<img src="https://opencollective.com/Prowlarr/backers.svg?width=890"></a>
![Backers List](https://opencollective.com/Prowlarr/backers.svg?width=890)
## Sponsors
Support this project by becoming a sponsor. Your logo will show up here with a link to your website. [Become a sponsor](https://opencollective.com/Prowlarr#sponsor)
<img src="https://opencollective.com/Prowlarr/sponsors.svg?width=890"></a>
![Sponsors List](https://opencollective.com/Prowlarr/sponsors.svg?width=890)
## Mega Sponsors
<img src="https://opencollective.com/Prowlarr/tiers/mega-sponsor.svg?width=890"></a>
![Mega Sponsors List](https://opencollective.com/Prowlarr/tiers/mega-sponsor.svg?width=890)
## JetBrains
Thank you to [<img src="/Logo/jetbrains.svg" alt="JetBrains" width="32"> JetBrains](http://www.jetbrains.com/) for providing us with free licenses to their great tools.
* [<img src="/Logo/resharper.svg" alt="ReSharper" width="32"> ReSharper](http://www.jetbrains.com/resharper/)
* [<img src="/Logo/webstorm.svg" alt="WebStorm" width="32"> WebStorm](http://www.jetbrains.com/webstorm/)
* [<img src="/Logo/rider.svg" alt="Rider" width="32"> Rider](http://www.jetbrains.com/rider/)
* [<img src="/Logo/dottrace.svg" alt="dotTrace" width="32"> dotTrace](http://www.jetbrains.com/dottrace/)
- [<img src="/Logo/resharper.svg" alt="ReSharper" width="32"> ReSharper](http://www.jetbrains.com/resharper/)
- [<img src="/Logo/webstorm.svg" alt="WebStorm" width="32"> WebStorm](http://www.jetbrains.com/webstorm/)
- [<img src="/Logo/rider.svg" alt="Rider" width="32"> Rider](http://www.jetbrains.com/rider/)
- [<img src="/Logo/dottrace.svg" alt="dotTrace" width="32"> dotTrace](http://www.jetbrains.com/dottrace/)
### License
* [GNU GPL v3](http://www.gnu.org/licenses/gpl.html)
* Copyright 2010-2021
- [GNU GPL v3](http://www.gnu.org/licenses/gpl.html)
- Copyright 2010-2022
Icon Credit:
<a href="https://www.freepik.com/vectors/box">Box vector created by freepik - www.freepik.com</a>
Icon Credit - [Box vector created by freepik - www.freepik.com](https://www.freepik.com/vectors/box)

View File

@@ -7,13 +7,13 @@ variables:
outputFolder: './_output'
artifactsFolder: './_artifacts'
testsFolder: './_tests'
majorVersion: '0.1.0'
majorVersion: '0.1.9'
minorVersion: $[counter('minorVersion', 1)]
prowlarrVersion: '$(majorVersion).$(minorVersion)'
buildName: '$(Build.SourceBranchName).$(prowlarrVersion)'
sentryOrg: 'servarr'
sentryUrl: 'https://sentry.servarr.com'
dotnetVersion: '5.0.203'
dotnetVersion: '6.0.100'
yarnCacheFolder: $(Pipeline.Workspace)/.yarn
trigger:
@@ -29,6 +29,7 @@ pr:
paths:
exclude:
- src/NzbDrone.Core/Localization/Core
- src/Prowlarr.API.*/openapi.json
stages:
- stage: Setup
@@ -67,7 +68,7 @@ stages:
enableAnalysis: 'true'
Mac:
osName: 'Mac'
imageName: 'macos-10.14'
imageName: 'macos-10.15'
enableAnalysis: 'false'
Windows:
osName: 'Windows'
@@ -111,23 +112,23 @@ stages:
artifact: '$(osName)Backend'
displayName: Publish Backend
condition: and(succeeded(), eq(variables['osName'], 'Windows'))
- publish: '$(testsFolder)/net5.0/win-x64/publish'
- publish: '$(testsFolder)/net6.0/win-x64/publish'
artifact: WindowsCoreTests
displayName: Publish Windows Test Package
condition: and(succeeded(), eq(variables['osName'], 'Windows'))
- publish: '$(testsFolder)/net5.0/linux-x64/publish'
- publish: '$(testsFolder)/net6.0/linux-x64/publish'
artifact: LinuxCoreTests
displayName: Publish Linux Test Package
condition: and(succeeded(), eq(variables['osName'], 'Windows'))
- publish: '$(testsFolder)/net5.0/linux-musl-x64/publish'
- publish: '$(testsFolder)/net6.0/linux-musl-x64/publish'
artifact: LinuxMuslCoreTests
displayName: Publish Linux Musl Test Package
condition: and(succeeded(), eq(variables['osName'], 'Windows'))
- publish: '$(testsFolder)/net5.0/freebsd-x64/publish'
- publish: '$(testsFolder)/net6.0/freebsd-x64/publish'
artifact: FreebsdCoreTests
displayName: Publish FreeBSD Test Package
condition: and(succeeded(), eq(variables['osName'], 'Windows'))
- publish: '$(testsFolder)/net5.0/osx-x64/publish'
- publish: '$(testsFolder)/net6.0/osx-x64/publish'
artifact: MacCoreTests
displayName: Publish MacOS Test Package
condition: and(succeeded(), eq(variables['osName'], 'Windows'))
@@ -144,7 +145,7 @@ stages:
imageName: 'ubuntu-18.04'
Mac:
osName: 'Mac'
imageName: 'macos-10.14'
imageName: 'macos-10.15'
Windows:
osName: 'Windows'
imageName: 'windows-2019'
@@ -163,7 +164,6 @@ stages:
key: 'yarn | "$(osName)" | yarn.lock'
restoreKeys: |
yarn | "$(osName)"
yarn
path: $(yarnCacheFolder)
displayName: Cache Yarn packages
- bash: ./build.sh --frontend
@@ -203,12 +203,12 @@ stages:
- bash: ./build.sh --packages
displayName: Create Packages
- bash: |
distribution/windows/setup/inno/ISCC.exe distribution/windows/setup/prowlarr.iss //DFramework=net5.0 //DRuntime=win-x86
cp distribution/windows/setup/output/Prowlarr.*windows.net5.0.exe ${BUILD_ARTIFACTSTAGINGDIRECTORY}/Prowlarr.${BUILDNAME}.windows-core-x86-installer.exe
distribution/windows/setup/inno/ISCC.exe distribution/windows/setup/prowlarr.iss //DFramework=net6.0 //DRuntime=win-x86
cp distribution/windows/setup/output/Prowlarr.*windows.net6.0.exe ${BUILD_ARTIFACTSTAGINGDIRECTORY}/Prowlarr.${BUILDNAME}.windows-core-x86-installer.exe
displayName: Create x86 .NET Core Windows installer
- bash: |
distribution/windows/setup/inno/ISCC.exe distribution/windows/setup/prowlarr.iss //DFramework=net5.0 //DRuntime=win-x64
cp distribution/windows/setup/output/Prowlarr.*windows.net5.0.exe ${BUILD_ARTIFACTSTAGINGDIRECTORY}/Prowlarr.${BUILDNAME}.windows-core-x64-installer.exe
distribution/windows/setup/inno/ISCC.exe distribution/windows/setup/prowlarr.iss //DFramework=net6.0 //DRuntime=win-x64
cp distribution/windows/setup/output/Prowlarr.*windows.net6.0.exe ${BUILD_ARTIFACTSTAGINGDIRECTORY}/Prowlarr.${BUILDNAME}.windows-core-x64-installer.exe
displayName: Create x64 .NET Core Windows installer
- publish: $(Build.ArtifactStagingDirectory)
artifact: 'WindowsInstaller'
@@ -250,29 +250,44 @@ stages:
archiveFile: '$(Build.ArtifactStagingDirectory)/Prowlarr.$(buildName).windows-core-x64.zip'
archiveType: 'zip'
includeRootFolder: false
rootFolderOrFile: $(artifactsFolder)/win-x64/net5.0
rootFolderOrFile: $(artifactsFolder)/win-x64/net6.0
- task: ArchiveFiles@2
displayName: Create Windows x86 Core zip
inputs:
archiveFile: '$(Build.ArtifactStagingDirectory)/Prowlarr.$(buildName).windows-core-x86.zip'
archiveType: 'zip'
includeRootFolder: false
rootFolderOrFile: $(artifactsFolder)/win-x86/net5.0
rootFolderOrFile: $(artifactsFolder)/win-x86/net6.0
- task: ArchiveFiles@2
displayName: Create MacOS Core app
displayName: Create MacOS x64 Core app
inputs:
archiveFile: '$(Build.ArtifactStagingDirectory)/Prowlarr.$(buildName).osx-app-core-x64.zip'
archiveType: 'zip'
includeRootFolder: false
rootFolderOrFile: $(artifactsFolder)/macos-app/net5.0
rootFolderOrFile: $(artifactsFolder)/osx-x64-app/net6.0
- task: ArchiveFiles@2
displayName: Create MacOS Core tar
displayName: Create MacOS x64 Core tar
inputs:
archiveFile: '$(Build.ArtifactStagingDirectory)/Prowlarr.$(buildName).osx-core-x64.tar.gz'
archiveType: 'tar'
tarCompression: 'gz'
includeRootFolder: false
rootFolderOrFile: $(artifactsFolder)/macos/net5.0
rootFolderOrFile: $(artifactsFolder)/osx-x64/net6.0
- task: ArchiveFiles@2
displayName: Create MacOS arm64 Core app
inputs:
archiveFile: '$(Build.ArtifactStagingDirectory)/Prowlarr.$(buildName).osx-app-core-arm64.zip'
archiveType: 'zip'
includeRootFolder: false
rootFolderOrFile: $(artifactsFolder)/osx-arm64-app/net6.0
- task: ArchiveFiles@2
displayName: Create MacOS arm64 Core tar
inputs:
archiveFile: '$(Build.ArtifactStagingDirectory)/Prowlarr.$(buildName).osx-core-arm64.tar.gz'
archiveType: 'tar'
tarCompression: 'gz'
includeRootFolder: false
rootFolderOrFile: $(artifactsFolder)/osx-arm64/net6.0
- task: ArchiveFiles@2
displayName: Create Linux Core tar
inputs:
@@ -280,7 +295,7 @@ stages:
archiveType: 'tar'
tarCompression: 'gz'
includeRootFolder: false
rootFolderOrFile: $(artifactsFolder)/linux-x64/net5.0
rootFolderOrFile: $(artifactsFolder)/linux-x64/net6.0
- task: ArchiveFiles@2
displayName: Create Linux Musl Core tar
inputs:
@@ -288,7 +303,7 @@ stages:
archiveType: 'tar'
tarCompression: 'gz'
includeRootFolder: false
rootFolderOrFile: $(artifactsFolder)/linux-musl-x64/net5.0
rootFolderOrFile: $(artifactsFolder)/linux-musl-x64/net6.0
- task: ArchiveFiles@2
displayName: Create ARM32 Linux Core tar
inputs:
@@ -296,7 +311,15 @@ stages:
archiveType: 'tar'
tarCompression: 'gz'
includeRootFolder: false
rootFolderOrFile: $(artifactsFolder)/linux-arm/net5.0
rootFolderOrFile: $(artifactsFolder)/linux-arm/net6.0
- task: ArchiveFiles@2
displayName: Create ARM32 Linux Musl Core tar
inputs:
archiveFile: '$(Build.ArtifactStagingDirectory)/Prowlarr.$(buildName).linux-musl-core-arm.tar.gz'
archiveType: 'tar'
tarCompression: 'gz'
includeRootFolder: false
rootFolderOrFile: $(artifactsFolder)/linux-musl-arm/net6.0
- task: ArchiveFiles@2
displayName: Create ARM64 Linux Core tar
inputs:
@@ -304,7 +327,7 @@ stages:
archiveType: 'tar'
tarCompression: 'gz'
includeRootFolder: false
rootFolderOrFile: $(artifactsFolder)/linux-arm64/net5.0
rootFolderOrFile: $(artifactsFolder)/linux-arm64/net6.0
- task: ArchiveFiles@2
displayName: Create ARM64 Linux Musl Core tar
inputs:
@@ -312,7 +335,7 @@ stages:
archiveType: 'tar'
tarCompression: 'gz'
includeRootFolder: false
rootFolderOrFile: $(artifactsFolder)/linux-musl-arm64/net5.0
rootFolderOrFile: $(artifactsFolder)/linux-musl-arm64/net6.0
- task: ArchiveFiles@2
displayName: Create FreeBSD Core Core tar
inputs:
@@ -320,7 +343,7 @@ stages:
archiveType: 'tar'
tarCompression: 'gz'
includeRootFolder: false
rootFolderOrFile: $(artifactsFolder)/freebsd-x64/net5.0
rootFolderOrFile: $(artifactsFolder)/freebsd-x64/net6.0
- publish: $(Build.ArtifactStagingDirectory)
artifact: 'Packages'
displayName: Publish Packages
@@ -383,7 +406,7 @@ stages:
osName: 'Mac'
testName: 'MacCore'
poolName: 'Azure Pipelines'
imageName: 'macos-10.14'
imageName: 'macos-10.15'
WindowsCore:
osName: 'Windows'
testName: 'WindowsCore'
@@ -510,7 +533,7 @@ stages:
MacCore:
osName: 'Mac'
testName: 'MacCore'
imageName: 'macos-10.14'
imageName: 'macos-10.15'
pattern: 'Prowlarr.*.osx-core-x64.tar.gz'
WindowsCore:
osName: 'Windows'
@@ -686,7 +709,7 @@ stages:
failBuild: false
Mac:
osName: 'Mac'
imageName: 'macos-10.14'
imageName: 'macos-10.15'
pattern: 'Prowlarr.*.osx-core-x64.tar.gz'
failBuild: false
Windows:
@@ -793,7 +816,6 @@ stages:
key: 'yarn | "$(osName)" | yarn.lock'
restoreKeys: |
yarn | "$(osName)"
yarn
path: $(yarnCacheFolder)
displayName: Cache Yarn packages
- bash: ./build.sh --lint
@@ -802,6 +824,59 @@ stages:
FORCE_COLOR: 0
YARN_CACHE_FOLDER: $(yarnCacheFolder)
- job: Api_Docs
displayName: API Docs
dependsOn: Prepare
condition: |
and
(
and(succeeded(), eq(variables['Build.SourceBranch'], 'refs/heads/develop')),
and(succeeded(), eq(dependencies.Prepare.outputs['setVar.backendNotUpdated'], '0'))
)
pool:
vmImage: windows-2019
steps:
- task: UseDotNet@2
displayName: 'Install .net core'
inputs:
version: $(dotnetVersion)
- checkout: self
submodules: true
persistCredentials: true
fetchDepth: 1
- bash: ./docs.sh Windows
displayName: Create openapi.json
- bash: |
git config --global user.email "development@lidarr.audio"
git config --global user.name "Servarr"
git checkout -b api-docs
git add .
if git status | grep -q modified
then
git commit -am 'Automated API Docs update'
git push -f --set-upstream origin api-docs
curl -X POST -H 'Authorization: token $GITHUB_TOKEN' -H "Accept: application/vnd.github.v3+json" https://api.github.com/repos/prowlarr/prowlarr/pulls -d '{"head":"api-docs","base":"develop","title":"Update API docs"}'
else
echo "No changes since last run"
fi
displayName: Commit API Doc Change
continueOnError: true
env:
GITHUB_TOKEN: $(githubToken)
- task: CopyFiles@2
displayName: 'Copy openapi.json to: $(Build.ArtifactStagingDirectory)'
inputs:
SourceFolder: '$(Build.SourcesDirectory)'
Contents: |
**/*openapi.json
TargetFolder: '$(Build.ArtifactStagingDirectory)/api_docs'
- publish: $(Build.ArtifactStagingDirectory)/api_docs
artifact: 'APIDocs'
displayName: Publish API Docs Bundle
condition: and(succeeded(), eq(variables['System.JobAttempt'], '1'))
- job: Analyze_Backend
displayName: Backend
dependsOn: Prepare
@@ -838,8 +913,8 @@ stages:
sonar.cs.opencover.reportsPaths=$(Build.SourcesDirectory)/CoverageResults/**/coverage.opencover.xml
sonar.cs.nunit.reportsPaths=$(Build.SourcesDirectory)/TestResult.xml
- bash: |
./build.sh --backend -f net5.0 -r win-x64
TEST_DIR=_tests/net5.0/win-x64/publish/ ./test.sh Windows Unit Coverage
./build.sh --backend -f net6.0 -r win-x64
TEST_DIR=_tests/net6.0/win-x64/publish/ ./test.sh Windows Unit Coverage
displayName: Coverage Unit Tests
- task: SonarCloudAnalyze@1
condition: eq(variables['System.PullRequest.IsFork'], 'False')
@@ -879,7 +954,7 @@ stages:
artifactName: 'WindowsAutomationScreenshots'
targetPath: $(Build.SourcesDirectory)
- checkout: none
- powershell: |
- pwsh: |
iex ((New-Object System.Net.WebClient).DownloadString('https://raw.githubusercontent.com/Servarr/AzureDiscordNotify/master/DiscordNotify.ps1'))
env:
SYSTEM_ACCESSTOKEN: $(System.AccessToken)

View File

@@ -130,7 +130,7 @@ PackageLinux()
echo "Adding Prowlarr.Mono to UpdatePackage"
cp $folder/Prowlarr.Mono.* $folder/Prowlarr.Update
if [ "$framework" = "net5.0" ]; then
if [ "$framework" = "net6.0" ]; then
cp $folder/Mono.Posix.NETStandard.* $folder/Prowlarr.Update
cp $folder/libMonoPosixHelper.* $folder/Prowlarr.Update
fi
@@ -141,12 +141,13 @@ PackageLinux()
PackageMacOS()
{
local framework="$1"
local runtime="$2"
ProgressStart "Creating MacOS Package for $framework"
ProgressStart "Creating MacOS Package for $framework $runtime"
local folder=$artifactsFolder/macos/$framework/Prowlarr
local folder=$artifactsFolder/$runtime/$framework/Prowlarr
PackageFiles "$folder" "$framework" "osx-x64"
PackageFiles "$folder" "$framework" "$runtime"
echo "Removing Service helpers"
rm -f $folder/ServiceUninstall.*
@@ -157,7 +158,7 @@ PackageMacOS()
echo "Adding Prowlarr.Mono to UpdatePackage"
cp $folder/Prowlarr.Mono.* $folder/Prowlarr.Update
if [ "$framework" = "net5.0" ]; then
if [ "$framework" = "net6.0" ]; then
cp $folder/Mono.Posix.NETStandard.* $folder/Prowlarr.Update
cp $folder/libMonoPosixHelper.* $folder/Prowlarr.Update
fi
@@ -168,10 +169,11 @@ PackageMacOS()
PackageMacOSApp()
{
local framework="$1"
local runtime="$2"
ProgressStart "Creating macOS App Package for $framework"
ProgressStart "Creating macOS App Package for $framework $runtime"
local folder=$artifactsFolder/macos-app/$framework
local folder="$artifactsFolder/$runtime-app/$framework"
rm -rf $folder
mkdir -p $folder
@@ -179,7 +181,7 @@ PackageMacOSApp()
mkdir -p $folder/Prowlarr.app/Contents/MacOS
echo "Copying Binaries"
cp -r $artifactsFolder/macos/$framework/Prowlarr/* $folder/Prowlarr.app/Contents/MacOS
cp -r $artifactsFolder/$runtime/$framework/Prowlarr/* $folder/Prowlarr.app/Contents/MacOS
echo "Removing Update Folder"
rm -r $folder/Prowlarr.app/Contents/MacOS/Prowlarr.Update
@@ -226,8 +228,8 @@ Package()
PackageWindows "$framework" "$runtime"
;;
osx)
PackageMacOS "$framework"
PackageMacOSApp "$framework"
PackageMacOS "$framework" "$runtime"
PackageMacOSApp "$framework" "$runtime"
;;
esac
}
@@ -327,14 +329,14 @@ then
Build
if [[ -z "$RID" || -z "$FRAMEWORK" ]];
then
PackageTests "net5.0" "win-x64"
PackageTests "net5.0" "win-x86"
PackageTests "net5.0" "linux-x64"
PackageTests "net5.0" "linux-musl-x64"
PackageTests "net5.0" "osx-x64"
PackageTests "net6.0" "win-x64"
PackageTests "net6.0" "win-x86"
PackageTests "net6.0" "linux-x64"
PackageTests "net6.0" "linux-musl-x64"
PackageTests "net6.0" "osx-x64"
if [ "$ENABLE_BSD" = "YES" ];
then
PackageTests "net5.0" "freebsd-x64"
PackageTests "net6.0" "freebsd-x64"
fi
else
PackageTests "$FRAMEWORK" "$RID"
@@ -363,17 +365,19 @@ then
if [[ -z "$RID" || -z "$FRAMEWORK" ]];
then
Package "net5.0" "win-x64"
Package "net5.0" "win-x86"
Package "net5.0" "linux-x64"
Package "net5.0" "linux-musl-x64"
Package "net5.0" "linux-arm64"
Package "net5.0" "linux-musl-arm64"
Package "net5.0" "linux-arm"
Package "net5.0" "osx-x64"
Package "net6.0" "win-x64"
Package "net6.0" "win-x86"
Package "net6.0" "linux-x64"
Package "net6.0" "linux-musl-x64"
Package "net6.0" "linux-arm64"
Package "net6.0" "linux-musl-arm64"
Package "net6.0" "linux-arm"
Package "net6.0" "linux-musl-arm"
Package "net6.0" "osx-x64"
Package "net6.0" "osx-arm64"
if [ "$ENABLE_BSD" = "YES" ];
then
Package "net5.0" "freebsd-x64"
Package "net6.0" "freebsd-x64"
fi
else
Package "$FRAMEWORK" "$RID"

38
docs.sh Normal file
View File

@@ -0,0 +1,38 @@
PLATFORM=$1
if [ "$PLATFORM" = "Windows" ]; then
RUNTIME="win-x64"
elif [ "$PLATFORM" = "Linux" ]; then
WHERE="linux-x64"
elif [ "$PLATFORM" = "Mac" ]; then
WHERE="osx-x64"
else
echo "Platform must be provided as first arguement: Windows, Linux or Mac"
exit 1
fi
outputFolder='_output'
testPackageFolder='_tests'
rm -rf $outputFolder
rm -rf $testPackageFolder
slnFile=src/Prowlarr.sln
platform=Posix
dotnet clean $slnFile -c Debug
dotnet clean $slnFile -c Release
dotnet msbuild -restore $slnFile -p:Configuration=Debug -p:Platform=$platform -p:RuntimeIdentifiers=$RUNTIME -t:PublishAllRids
dotnet new tool-manifest
dotnet tool install --version 6.2.3 Swashbuckle.AspNetCore.Cli
dotnet tool run swagger tofile --output ./src/Prowlarr.Api.V1/openapi.json "$outputFolder/net6.0/$RUNTIME/prowlarr.console.dll" v1 &
sleep 10
kill %1
exit 0

View File

@@ -11,6 +11,7 @@ import ApplicationSettingsConnector from 'Settings/Applications/ApplicationSetti
import DevelopmentSettingsConnector from 'Settings/Development/DevelopmentSettingsConnector';
import DownloadClientSettingsConnector from 'Settings/DownloadClients/DownloadClientSettingsConnector';
import GeneralSettingsConnector from 'Settings/General/GeneralSettingsConnector';
import IndexerSettings from 'Settings/Indexers/IndexerSettings';
import NotificationSettings from 'Settings/Notifications/NotificationSettings';
import Settings from 'Settings/Settings';
import TagSettings from 'Settings/Tags/TagSettings';
@@ -90,6 +91,11 @@ function AppRoutes(props) {
component={Settings}
/>
<Route
path="/settings/indexers"
component={IndexerSettings}
/>
<Route
path="/settings/applications"
component={ApplicationSettingsConnector}

View File

@@ -4,7 +4,5 @@ export const CLEAR_HISTORY = 'ClearHistory';
export const CLEAR_LOGS = 'ClearLog';
export const DELETE_LOG_FILES = 'DeleteLogFiles';
export const DELETE_UPDATE_LOG_FILES = 'DeleteUpdateLogFiles';
export const INTERACTIVE_IMPORT = 'ManualImport';
export const RESET_API_KEY = 'ResetApiKey';
export const RSS_SYNC = 'RssSync';
export const APP_INDEXER_SYNC = 'ApplicationIndexerSync';

View File

@@ -70,18 +70,18 @@ class FileBrowserModalContent extends Component {
} else {
this._scrollerNode = null;
}
}
};
//
// Listeners
onPathInputChange = ({ value }) => {
this.setState({ currentPath: value });
}
};
onRowPress = (path) => {
this.props.onFetchPaths(path);
}
};
onOkPress = () => {
this.props.onChange({
@@ -91,7 +91,7 @@ class FileBrowserModalContent extends Component {
this.props.onClearPaths();
this.props.onModalClose();
}
};
//
// Render

View File

@@ -78,16 +78,16 @@ class FileBrowserModalContentConnector extends Component {
allowFoldersWithoutTrailingSlashes: true,
includeFiles
});
}
};
onClearPaths = () => {
// this.props.dispatchClearPaths();
}
};
onModalClose = () => {
this.props.dispatchClearPaths();
this.props.onModalClose();
}
};
//
// Render

View File

@@ -28,7 +28,7 @@ class FileBrowserRow extends Component {
onPress = () => {
this.props.onPress(this.props.path);
}
};
//
// Render

View File

@@ -102,7 +102,7 @@ class DateFilterBuilderRowValue extends Component {
name: NAME,
value: newValue
});
}
};
onTimeChange = ({ value }) => {
const {
@@ -117,7 +117,7 @@ class DateFilterBuilderRowValue extends Component {
value: filterValue.value
}
});
}
};
//
// Render

View File

@@ -63,7 +63,7 @@ class FilterBuilderModalContent extends Component {
onLabelChange = ({ value }) => {
this.setState({ label: value });
}
};
onFilterChange = (index, filter) => {
const filters = [...this.state.filters];
@@ -72,7 +72,7 @@ class FilterBuilderModalContent extends Component {
this.setState({
filters
});
}
};
onAddFilterPress = () => {
const filters = [...this.state.filters];
@@ -81,7 +81,7 @@ class FilterBuilderModalContent extends Component {
this.setState({
filters
});
}
};
onRemoveFilterPress = (index) => {
const filters = [...this.state.filters];
@@ -90,7 +90,7 @@ class FilterBuilderModalContent extends Component {
this.setState({
filters
});
}
};
onSaveFilterPress = () => {
const {
@@ -122,7 +122,7 @@ class FilterBuilderModalContent extends Component {
label,
filters
});
}
};
//
// Render

View File

@@ -138,7 +138,7 @@ class FilterBuilderRow extends Component {
this.selectedFilterBuilderProp = selectedFilterBuilderProp;
onFilterChange(index, filter);
}
};
onFilterChange = ({ name, value }) => {
const {
@@ -158,7 +158,7 @@ class FilterBuilderRow extends Component {
filter[name] = value;
onFilterChange(index, filter);
}
};
onAddPress = () => {
const {
@@ -167,7 +167,7 @@ class FilterBuilderRow extends Component {
} = this.props;
onAddPress(index);
}
};
onRemovePress = () => {
const {
@@ -176,7 +176,7 @@ class FilterBuilderRow extends Component {
} = this.props;
onRemovePress(index);
}
};
//
// Render

View File

@@ -84,7 +84,7 @@ class FilterBuilderRowValue extends Component {
name: NAME,
value: [...filterValue, value]
});
}
};
onTagDelete = ({ index }) => {
const {
@@ -98,7 +98,7 @@ class FilterBuilderRowValue extends Component {
name: NAME,
value
});
}
};
//
// Render

View File

@@ -47,7 +47,7 @@ class IndexerFilterBuilderRowValueConnector extends Component {
if (!this.props.isPopulated) {
this.props.dispatchFetchIndexers();
}
}
};
//
// Render

View File

@@ -55,7 +55,7 @@ class CustomFilter extends Component {
} = this.props;
onEditPress(id);
}
};
onRemovePress = () => {
const {
@@ -67,7 +67,7 @@ class CustomFilter extends Component {
dispatchDeleteCustomFilter({ id });
});
}
};
//
// Render

View File

@@ -25,14 +25,14 @@ class FilterModal extends Component {
this.setState({
filterBuilder: true
});
}
};
onEditCustomFilter = (id) => {
this.setState({
filterBuilder: true,
id
});
}
};
onCancelPress = () => {
if (this.state.filterBuilder) {
@@ -43,7 +43,7 @@ class FilterModal extends Component {
} else {
this.onModalClose();
}
}
};
onModalClose = () => {
this.setState({
@@ -52,7 +52,7 @@ class FilterModal extends Component {
}, () => {
this.props.onModalClose();
});
}
};
//
// Render

View File

@@ -69,7 +69,7 @@ class AppProfileSelectInputConnector extends Component {
onChange = ({ name, value }) => {
this.props.onChange({ name, value: parseInt(value) });
}
};
//
// Render

View File

@@ -35,11 +35,11 @@ class AutoCompleteInput extends Component {
name: this.props.name,
value: newValue
});
}
};
onInputBlur = () => {
this.setState({ suggestions: [] });
}
};
onSuggestionsFetchRequested = ({ value }) => {
const { values } = this.props;
@@ -50,11 +50,11 @@ class AutoCompleteInput extends Component {
});
this.setState({ suggestions: filteredValues });
}
};
onSuggestionsClearRequested = () => {
this.setState({ suggestions: [] });
}
};
//
// Render

View File

@@ -49,7 +49,7 @@ class AutoSuggestInput extends Component {
}}
</Reference>
);
}
};
renderSuggestionsContainer = ({ containerProps, children }) => {
return (
@@ -90,7 +90,7 @@ class AutoSuggestInput extends Component {
</Popper>
</Portal>
);
}
};
//
// Listeners
@@ -113,14 +113,14 @@ class AutoSuggestInput extends Component {
data.styles.width = width;
return data;
}
};
onInputChange = (event, { newValue }) => {
this.props.onChange({
name: this.props.name,
value: newValue
});
}
};
onInputKeyDown = (event) => {
const {
@@ -144,7 +144,7 @@ class AutoSuggestInput extends Component {
});
}
}
}
};
//
// Render

View File

@@ -39,7 +39,7 @@ class CaptchaInputConnector extends Component {
componentWillUnmount = () => {
this.props.resetCaptcha();
}
};
//
// Listeners
@@ -51,7 +51,7 @@ class CaptchaInputConnector extends Component {
} = this.props;
this.props.refreshCaptcha({ provider, providerData });
}
};
onCaptchaChange = (captchaResponse) => {
// If the captcha has expired `captchaResponse` will be null.
@@ -68,7 +68,7 @@ class CaptchaInputConnector extends Component {
} = this.props;
this.props.getCaptchaCookie({ provider, providerData, captchaResponse });
}
};
//
// Render

View File

@@ -31,7 +31,7 @@ class CardigannCaptchaInputConnector extends Component {
componentWillUnmount = () => {
this.props.resetCaptcha();
}
};
//
// Listeners
@@ -48,7 +48,7 @@ class CardigannCaptchaInputConnector extends Component {
this.props.resetCaptcha();
this.props.refreshCaptcha({ provider, providerData });
}
};
//
// Render

View File

@@ -59,14 +59,14 @@ class CheckInput extends Component {
shiftKey
});
}
}
};
//
// Listeners
setRef = (ref) => {
this._checkbox = ref;
}
};
onClick = (event) => {
if (this.props.isDisabled) {
@@ -78,14 +78,14 @@ class CheckInput extends Component {
event.preventDefault();
this.toggleChecked(checked, shiftKey);
}
};
onChange = (event) => {
const checked = event.target.checked;
const shiftKey = event.nativeEvent.shiftKey;
this.toggleChecked(checked, shiftKey);
}
};
//
// Render

View File

@@ -23,7 +23,7 @@ class DeviceInput extends Component {
name,
value: [...value, deviceId]
});
}
};
onTagDelete = ({ index }) => {
const {
@@ -39,7 +39,7 @@ class DeviceInput extends Component {
name,
value: newValue
});
}
};
//
// Render

View File

@@ -48,11 +48,11 @@ class DeviceInputConnector extends Component {
componentDidMount = () => {
this._populate();
}
};
componentWillUnmount = () => {
this.props.dispatchClearOptions({ section: 'devices' });
}
};
//
// Control
@@ -77,7 +77,7 @@ class DeviceInputConnector extends Component {
onRefreshPress = () => {
this._populate();
}
};
//
// Render

View File

@@ -149,7 +149,7 @@ class EnhancedSelectInput extends Component {
}
return data;
}
};
onWindowClick = (event) => {
const button = document.getElementById(this._buttonId);
@@ -168,14 +168,14 @@ class EnhancedSelectInput extends Component {
this.setState({ isOpen: false });
this._removeListener();
}
}
};
onFocus = () => {
if (this.state.isOpen) {
this._removeListener();
this.setState({ isOpen: false });
}
}
};
onBlur = () => {
if (!this.props.isEditable) {
@@ -186,7 +186,7 @@ class EnhancedSelectInput extends Component {
this.setState({ selectedIndex: origIndex });
}
}
}
};
onKeyDown = (event) => {
const {
@@ -253,7 +253,7 @@ class EnhancedSelectInput extends Component {
if (!_.isEmpty(newState)) {
this.setState(newState);
}
}
};
onPress = () => {
if (this.state.isOpen) {
@@ -267,7 +267,7 @@ class EnhancedSelectInput extends Component {
}
this.setState({ isOpen: !this.state.isOpen });
}
};
onSelect = (value) => {
if (Array.isArray(this.props.value)) {
@@ -291,15 +291,15 @@ class EnhancedSelectInput extends Component {
value
});
}
}
};
onMeasure = ({ width }) => {
this.setState({ width });
}
};
onOptionsModalClose = () => {
this.setState({ isOpen: false });
}
};
//
// Render

View File

@@ -73,7 +73,7 @@ class EnhancedSelectInputConnector extends Component {
componentDidMount = () => {
this._populate();
}
};
componentDidUpdate = (prevProps) => {
const prevKey = getProviderDataKey(prevProps.providerData);
@@ -82,11 +82,11 @@ class EnhancedSelectInputConnector extends Component {
if (!_.isEqual(prevKey, nextKey)) {
this.setState({ refetchRequired: true });
}
}
};
componentWillUnmount = () => {
this._cleanup();
}
};
//
// Listeners
@@ -95,7 +95,7 @@ class EnhancedSelectInputConnector extends Component {
if (this.state.refetchRequired) {
this._populate();
}
}
};
//
// Control

View File

@@ -21,11 +21,11 @@ class EnhancedSelectInputOption extends Component {
} = this.props;
onSelect(id);
}
};
onCheckPress = () => {
// CheckInput requires a handler. Swallow the change event because onPress will already handle it via event propagation.
}
};
//
// Render

View File

@@ -16,7 +16,6 @@ import FormInputHelpText from './FormInputHelpText';
import IndexerFlagsSelectInputConnector from './IndexerFlagsSelectInputConnector';
import InfoInput from './InfoInput';
import KeyValueListInput from './KeyValueListInput';
import MovieMonitoredSelectInput from './MovieMonitoredSelectInput';
import NumberInput from './NumberInput';
import OAuthInputConnector from './OAuthInputConnector';
import PasswordInput from './PasswordInput';
@@ -69,9 +68,6 @@ function getComponent(type) {
case inputTypes.PATH:
return PathInputConnector;
case inputTypes.MOVIE_MONITORED_SELECT:
return MovieMonitoredSelectInput;
case inputTypes.INDEXER_FLAGS_SELECT:
return IndexerFlagsSelectInputConnector;

View File

@@ -43,7 +43,7 @@ class IndexerFlagsSelectInputConnector extends Component {
});
this.props.onChange({ name, value: indexerFlags });
}
};
//
// Render

View File

@@ -43,7 +43,7 @@ class IndexersSelectInputConnector extends Component {
onChange = ({ name, value }) => {
this.props.onChange({ name, value });
}
};
//
// Render

View File

@@ -11,8 +11,6 @@ class InfoInput extends Component {
value
} = this.props;
console.log(this.props);
return (
<span dangerouslySetInnerHTML={{ __html: value }} />
);

View File

@@ -39,7 +39,7 @@ class KeyValueListInput extends Component {
name,
value: newValue
});
}
};
onRemoveItem = (index) => {
const {
@@ -55,13 +55,13 @@ class KeyValueListInput extends Component {
name,
value: newValue
});
}
};
onFocus = () => {
this.setState({
isFocused: true
});
}
};
onBlur = () => {
this.setState({
@@ -88,7 +88,7 @@ class KeyValueListInput extends Component {
value: newValue
});
}
}
};
//
// Render

View File

@@ -18,7 +18,7 @@ class KeyValueListInputItem extends Component {
} = this.props;
onChange(index, { key: keyValue, value });
}
};
onValueChange = ({ value }) => {
// TODO: Validate here or validate at a lower level component
@@ -30,7 +30,7 @@ class KeyValueListInputItem extends Component {
} = this.props;
onChange(index, { key: keyValue, value });
}
};
onRemovePress = () => {
const {
@@ -39,15 +39,15 @@ class KeyValueListInputItem extends Component {
} = this.props;
onRemove(index);
}
};
onFocus = () => {
this.props.onFocus();
}
};
onBlur = () => {
this.props.onBlur();
}
};
//
// Render

View File

@@ -1,52 +0,0 @@
import PropTypes from 'prop-types';
import React from 'react';
import SelectInput from './SelectInput';
const monitorTypesOptions = [
{ key: 'true', value: 'True' },
{ key: 'false', value: 'False' }
];
function MovieMonitoredSelectInput(props) {
const values = [...monitorTypesOptions];
const {
includeNoChange,
includeMixed
} = props;
if (includeNoChange) {
values.unshift({
key: 'noChange',
value: 'No Change',
disabled: true
});
}
if (includeMixed) {
values.unshift({
key: 'mixed',
value: '(Mixed)',
disabled: true
});
}
return (
<SelectInput
{...props}
values={values}
/>
);
}
MovieMonitoredSelectInput.propTypes = {
includeNoChange: PropTypes.bool.isRequired,
includeMixed: PropTypes.bool.isRequired
};
MovieMonitoredSelectInput.defaultProps = {
includeNoChange: false,
includeMixed: false
};
export default MovieMonitoredSelectInput;

View File

@@ -42,7 +42,7 @@ class IndexersSelectInputConnector extends Component {
onChange = ({ name, value }) => {
this.props.onChange({ name, value });
}
};
//
// Render

View File

@@ -59,11 +59,11 @@ class NumberInput extends Component {
value: parseValue(this.props, value)
});
}
};
onFocus = () => {
this.setState({ isFocused: true });
}
};
onBlur = () => {
const {
@@ -88,7 +88,7 @@ class NumberInput extends Component {
name,
value: parsedValue
});
}
};
//
// Render

View File

@@ -41,7 +41,7 @@ class OAuthInputConnector extends Component {
componentWillUnmount = () => {
this.props.resetOAuth();
}
};
//
// Listeners
@@ -60,7 +60,7 @@ class OAuthInputConnector extends Component {
providerData,
section
});
}
};
//
// Render

View File

@@ -62,7 +62,7 @@ class PathInput extends Component {
onInputChange = ({ value }) => {
this.setState({ value });
}
};
onInputKeyDown = (event) => {
if (event.key === 'Tab') {
@@ -80,7 +80,7 @@ class PathInput extends Component {
}
}
}
}
};
onInputBlur = () => {
this.props.onChange({
@@ -89,28 +89,28 @@ class PathInput extends Component {
});
this.props.onClearPaths();
}
};
onSuggestionsFetchRequested = ({ value }) => {
this.props.onFetchPaths(value);
}
};
onSuggestionsClearRequested = () => {
// Required because props aren't always rendered, but no-op
// because we don't want to reset the paths after a path is selected.
}
};
onSuggestionSelected = (event, { suggestionValue }) => {
this.props.onFetchPaths(suggestionValue);
}
};
onFileBrowserOpenPress = () => {
this.setState({ isFileBrowserModalOpen: true });
}
};
onFileBrowserModalClose = () => {
this.setState({ isFileBrowserModalOpen: false });
}
};
//
// Render

View File

@@ -47,11 +47,11 @@ class PathInputConnector extends Component {
path,
includeFiles
});
}
};
onClearPaths = () => {
this.props.dispatchClearPaths();
}
};
//
// Render

View File

@@ -53,7 +53,8 @@ function getSelectValues(selectOptions) {
result.push({
key: option.value,
value: option.name,
hint: option.hint
hint: option.hint,
parentKey: option.parentValue
});
return result;
@@ -67,6 +68,7 @@ function ProviderFieldFormGroup(props) {
label,
helpText,
helpLink,
placeholder,
value,
type,
advanced,
@@ -99,6 +101,7 @@ function ProviderFieldFormGroup(props) {
label={label}
helpText={helpText}
helpLink={helpLink}
placeholder={placeholder}
value={value}
values={getSelectValues(selectOptions)}
errors={errors}
@@ -124,6 +127,7 @@ ProviderFieldFormGroup.propTypes = {
label: PropTypes.string,
helpText: PropTypes.string,
helpLink: PropTypes.string,
placeholder: PropTypes.string,
value: PropTypes.any,
type: PropTypes.string.isRequired,
advanced: PropTypes.bool.isRequired,

View File

@@ -13,7 +13,7 @@ class SelectInput extends Component {
name: this.props.name,
value: event.target.value
});
}
};
//
// Render

View File

@@ -49,7 +49,7 @@ class TagInput extends Component {
_setAutosuggestRef = (ref) => {
this._autosuggestRef = ref;
}
};
getSuggestionValue({ name }) {
return name;
@@ -57,7 +57,7 @@ class TagInput extends Component {
shouldRenderSuggestions = (value) => {
return value.length >= this.props.minQueryLength;
}
};
renderSuggestion({ name }) {
return name;
@@ -70,14 +70,14 @@ class TagInput extends Component {
value: '',
suggestions: []
});
}, 250, { leading: true, trailing: false })
}, 250, { leading: true, trailing: false });
//
// Listeners
onInputContainerPress = () => {
this._autosuggestRef.input.focus();
}
};
onInputChange = (event, { newValue, method }) => {
const value = _.isObject(newValue) ? newValue.name : newValue;
@@ -85,7 +85,7 @@ class TagInput extends Component {
if (method === 'type') {
this.setState({ value });
}
}
};
onInputKeyDown = (event) => {
const {
@@ -125,11 +125,11 @@ class TagInput extends Component {
event.preventDefault();
}
}
}
};
onInputFocus = () => {
this.setState({ isFocused: true });
}
};
onInputBlur = () => {
this.setState({ isFocused: false });
@@ -153,7 +153,7 @@ class TagInput extends Component {
if (tag) {
this.addTag(tag);
}
}
};
onSuggestionsFetchRequested = ({ value }) => {
const lowerCaseValue = value.toLowerCase();
@@ -170,16 +170,16 @@ class TagInput extends Component {
});
this.setState({ suggestions });
}
};
onSuggestionsClearRequested = () => {
// Required because props aren't always rendered, but no-op
// because we don't want to reset the paths after a path is selected.
}
};
onSuggestionSelected = (event, { suggestion }) => {
this.addTag(suggestion);
}
};
//
// Render
@@ -204,7 +204,7 @@ class TagInput extends Component {
onInputContainerPress={this.onInputContainerPress}
/>
);
}
};
render() {
const {

View File

@@ -101,7 +101,7 @@ class TagInputConnector extends Component {
newValue.push(tag.id);
this.props.onChange({ name, value: newValue });
}
};
onTagDelete = ({ index }) => {
const {
@@ -116,7 +116,7 @@ class TagInputConnector extends Component {
name,
value: newValue
});
}
};
onTagCreated = (tag) => {
const {
@@ -128,7 +128,7 @@ class TagInputConnector extends Component {
newValue.push(tag.id);
this.props.onChange({ name, value: newValue });
}
};
//
// Render

View File

@@ -19,7 +19,7 @@ class TagInputInput extends Component {
}
onInputContainerPress();
}
};
render() {
const {

View File

@@ -22,7 +22,7 @@ class TagInputTag extends Component {
index,
id: tag.id
});
}
};
//
// Render

View File

@@ -60,7 +60,7 @@ class TagSelectInputConnector extends Component {
}
this.props.onChange({ name, value: newValue });
}
};
onTagDelete = ({ index }) => {
const {
@@ -75,7 +75,7 @@ class TagSelectInputConnector extends Component {
name,
value: newValue
});
}
};
//
// Render

View File

@@ -35,7 +35,7 @@ class TextArea extends Component {
setInputRef = (ref) => {
this._input = ref;
}
};
selectionChange() {
if (this._selectionTimeout) {
@@ -75,7 +75,7 @@ class TextArea extends Component {
};
onChange(payload);
}
};
onFocus = (event) => {
if (this.props.onFocus) {
@@ -83,19 +83,19 @@ class TextArea extends Component {
}
this.selectionChange();
}
};
onKeyUp = () => {
this.selectionChange();
}
};
onMouseDown = () => {
this._isMouseTarget = true;
}
};
onMouseUp = () => {
this.selectionChange();
}
};
onDocumentMouseUp = () => {
if (this._isMouseTarget) {
@@ -103,7 +103,7 @@ class TextArea extends Component {
}
this._isMouseTarget = false;
}
};
//
// Render

View File

@@ -35,7 +35,7 @@ class TextInput extends Component {
setInputRef = (ref) => {
this._input = ref;
}
};
selectionChange() {
if (this._selectionTimeout) {
@@ -82,7 +82,7 @@ class TextInput extends Component {
}
onChange(payload);
}
};
onFocus = (event) => {
if (this.props.onFocus) {
@@ -90,19 +90,19 @@ class TextInput extends Component {
}
this.selectionChange();
}
};
onKeyUp = () => {
this.selectionChange();
}
};
onMouseDown = () => {
this._isMouseTarget = true;
}
};
onMouseUp = () => {
this.selectionChange();
}
};
onDocumentMouseUp = () => {
if (this._isMouseTarget) {
@@ -110,7 +110,7 @@ class TextInput extends Component {
}
this._isMouseTarget = false;
}
};
//
// Render

View File

@@ -53,7 +53,7 @@ class TextTagInputConnector extends Component {
});
onChange({ name, value: newValue.join(',') });
}
};
onTagDelete = ({ index }) => {
const {
@@ -69,7 +69,7 @@ class TextTagInputConnector extends Component {
name,
value: newValue.join(',')
});
}
};
//
// Render

View File

@@ -63,7 +63,7 @@ class ClipboardButton extends Component {
showSuccess: false,
showError: false
});
}
};
//
// Listeners
@@ -72,13 +72,13 @@ class ClipboardButton extends Component {
this.setState({
showSuccess: true
});
}
};
onError = () => {
this.setState({
showError: true
});
}
};
//
// Render

View File

@@ -18,7 +18,7 @@ class Link extends Component {
if (!isDisabled && onPress) {
onPress(event);
}
}
};
//
// Render

View File

@@ -90,7 +90,7 @@ class SpinnerErrorButton extends Component {
hasWarning: false,
hasError: false
});
}
};
//
// Render

View File

@@ -17,7 +17,7 @@ class Measure extends Component {
onMeasure = _.debounce((payload) => {
this.props.onMeasure(payload);
}, 250, { leading: true, trailing: false })
}, 250, { leading: true, trailing: false });
//
// Render

View File

@@ -25,11 +25,11 @@ class FilterMenu extends Component {
onCustomFiltersPress = () => {
this.setState({ isFilterModalOpen: true });
}
};
onFiltersModalClose = () => {
this.setState({ isFilterModalOpen: false });
}
};
//
// Render

View File

@@ -14,7 +14,7 @@ class FilterMenuItem extends Component {
} = this.props;
onPress(filterKey);
}
};
//
// Render

View File

@@ -124,7 +124,7 @@ class Menu extends Component {
this.setState({ isMenuOpen: false });
this._removeListener();
}
}
};
onTouchStart = (event) => {
const menuButton = document.getElementById(this._menuButtonId);
@@ -148,17 +148,17 @@ class Menu extends Component {
this.setState({ isMenuOpen: false });
this._removeListener();
}
}
};
onWindowResize = () => {
this.setMaxHeight();
}
};
onWindowScroll = (event) => {
if (this.state.isMenuOpen) {
this.setMaxHeight();
}
}
};
onMenuButtonPress = () => {
const state = {
@@ -173,7 +173,7 @@ class Menu extends Component {
}
this.setState(state);
}
};
//
// Render

View File

@@ -14,7 +14,7 @@ class SearchMenuItem extends Component {
} = this.props;
onPress(name);
}
};
//
// Render

View File

@@ -17,7 +17,7 @@ class SelectedMenuItem extends Component {
} = this.props;
onPress(name);
}
};
//
// Render

View File

@@ -66,7 +66,7 @@ class Modal extends Component {
_setBackgroundRef = (ref) => {
this._backgroundRef = ref;
}
};
_openModal() {
openModals.push(this._modalId);
@@ -131,7 +131,7 @@ class Modal extends Component {
onBackdropBeginPress = (event) => {
this._isBackdropPressed = this._isBackdropTarget(event);
}
};
onBackdropEndPress = (event) => {
const {
@@ -148,7 +148,7 @@ class Modal extends Component {
}
this._isBackdropPressed = false;
}
};
onKeyDown = (event) => {
const keyCode = event.keyCode;
@@ -161,7 +161,7 @@ class Modal extends Component {
this.props.onModalClose();
}
}
}
};
//
// Render

View File

@@ -36,12 +36,12 @@ class IndexerSearchInput extends Component {
setAutosuggestRef = (ref) => {
this._autosuggest = ref;
}
};
focusInput = (event) => {
event.preventDefault();
this._autosuggest.input.focus();
}
};
getSectionSuggestions(section) {
return section.suggestions;
@@ -102,7 +102,7 @@ class IndexerSearchInput extends Component {
}
this.setState({ value: newValue });
}
};
onKeyDown = (event) => {
if (event.shiftKey || event.altKey || event.ctrlKey) {
@@ -137,31 +137,31 @@ class IndexerSearchInput extends Component {
this._autosuggest.input.blur();
this.reset();
}
};
onBlur = () => {
this.reset();
}
};
onSuggestionsClearRequested = () => {
this.setState({
suggestions: [],
loading: false
});
}
};
onSuggestionsFetchRequested = () => {
this.setState({
suggestions: [],
loading: false
});
}
};
onSuggestionSelected = (event, { suggestion }) => {
if (suggestion.type === ADD_NEW_TYPE) {
this.props.onGoToAddNewMovie(this.state.value);
}
}
};
//
// Render

View File

@@ -60,7 +60,7 @@ function createMapStateToProps() {
function createMapDispatchToProps(dispatch, props) {
return {
onGoToAddNewMovie(query) {
dispatch(setSearchDefault({ searchQuery: query, searchIndexerIds: [-1, -2] }));
dispatch(setSearchDefault({ searchQuery: query }));
dispatch(push(`${window.Prowlarr.urlBase}/search`));
}
};

View File

@@ -32,14 +32,14 @@ class PageHeader extends Component {
onOpenKeyboardShortcutsModal = () => {
this.setState({ isKeyboardShortcutsModalOpen: true });
}
};
//
// Listeners
onKeyboardShortcutsModalClose = () => {
this.setState({ isKeyboardShortcutsModalOpen: false });
}
};
//
// Render

View File

@@ -28,11 +28,11 @@ class PageHeaderActionsMenuConnector extends Component {
onRestartPress = () => {
this.props.restart();
}
};
onShutdownPress = () => {
this.props.shutdown();
}
};
//
// Render

View File

@@ -54,15 +54,15 @@ class Page extends Component {
width: window.innerWidth,
height: window.innerHeight
});
}
};
onUpdatedModalClose = () => {
this.setState({ isUpdatedModalOpen: false });
}
};
onConnectionLostModalClose = () => {
this.setState({ isConnectionLostModalOpen: false });
}
};
//
// Render

View File

@@ -232,7 +232,7 @@ class PageConnector extends Component {
onSidebarToggle = () => {
this.props.onSidebarVisibleChange(!this.props.isSidebarVisible);
}
};
//
// Render

View File

@@ -27,7 +27,7 @@ class PageContentBody extends Component {
if (this.props.onScroll && !isLocked()) {
onScroll(props);
}
}
};
//
// Render

View File

@@ -101,7 +101,7 @@ class PageJumpBar extends Component {
onMeasure = ({ height }) => {
this.setState({ height });
}
};
//
// Render

View File

@@ -15,7 +15,7 @@ class PageJumpBarItem extends Component {
} = this.props;
onItemPress(label);
}
};
//
// Render

View File

@@ -13,20 +13,8 @@ function getIconName(name) {
return icons.BACKUP;
case 'CheckHealth':
return icons.HEALTH;
case 'EpisodeSearch':
return icons.SEARCH;
case 'Housekeeping':
return icons.HOUSEKEEPING;
case 'RefreshMovie':
return icons.REFRESH;
case 'RssSync':
return icons.RSS;
case 'SeasonSearch':
return icons.SEARCH;
case 'MovieSearch':
return icons.SEARCH;
case 'UpdateSceneMapping':
return icons.REFRESH;
default:
return icons.SPINNER;
}

View File

@@ -35,11 +35,11 @@ class MessageConnector extends Component {
if (hideAfter) {
this._hideTimeoutId = setTimeout(this.hideMessage, hideAfter * 1000);
}
}
};
hideMessage = () => {
this.props.hideMessage({ id: this.props.id });
}
};
//
// Render

View File

@@ -48,6 +48,10 @@ const links = [
title: translate('Settings'),
to: '/settings',
children: [
{
title: translate('Indexers'),
to: '/settings/indexers'
},
{
title: translate('Apps'),
to: '/settings/applications'
@@ -230,7 +234,7 @@ class PageSidebar extends Component {
_setSidebarRef = (ref) => {
this._sidebarRef = ref;
}
};
_setSidebarTransform(isSidebarVisible, transition, callback) {
this.setState({
@@ -259,11 +263,11 @@ class PageSidebar extends Component {
event.stopPropagation();
this.props.onSidebarVisibleChange(false);
}
}
};
onWindowScroll = () => {
this.setState(getPositioning());
}
};
onTouchStart = (event) => {
const touches = event.touches;
@@ -283,7 +287,7 @@ class PageSidebar extends Component {
this._touchStartX = touchStartX;
this._touchStartY = touchStartY;
}
};
onTouchMove = (event) => {
const touches = event.touches;
@@ -320,7 +324,7 @@ class PageSidebar extends Component {
transition: 'none',
transform
});
}
};
onTouchEnd = (event) => {
const touches = event.changedTouches;
@@ -340,16 +344,16 @@ class PageSidebar extends Component {
this._touchStartX = null;
this._touchStartY = null;
}
};
onTouchCancel = (event) => {
this._touchStartX = null;
this._touchStartY = null;
}
};
onItemPress = () => {
this.props.onSidebarVisibleChange(false);
}
};
//
// Render

View File

@@ -21,7 +21,7 @@ class PageSidebarItem extends Component {
if (isChildItem || !isParentItem) {
onPress();
}
}
};
//
// Render

View File

@@ -108,7 +108,7 @@ class PageToolbarSection extends Component {
isMeasured: true,
width
});
}
};
//
// Render

View File

@@ -41,7 +41,7 @@ class OverlayScroller extends Component {
if (ref) {
this.props.registerScroller(ref.view);
}
}
};
_renderThumb = (props) => {
return (
@@ -50,7 +50,7 @@ class OverlayScroller extends Component {
{...props}
/>
);
}
};
_renderTrackHorizontal = ({ style, props }) => {
const finalStyle = {
@@ -69,7 +69,7 @@ class OverlayScroller extends Component {
{...props}
/>
);
}
};
_renderTrackVertical = ({ style, props }) => {
const finalStyle = {
@@ -88,7 +88,7 @@ class OverlayScroller extends Component {
{...props}
/>
);
}
};
_renderView = (props) => {
return (
@@ -97,18 +97,18 @@ class OverlayScroller extends Component {
{...props}
/>
);
}
};
//
// Listers
onScrollStart = () => {
this._isScrolling = true;
}
};
onScrollStop = () => {
this._isScrolling = false;
}
};
onScroll = (event) => {
const {
@@ -122,7 +122,7 @@ class OverlayScroller extends Component {
if (onScroll) {
onScroll({ scrollTop, scrollLeft });
}
}
};
//
// Render

View File

@@ -38,7 +38,7 @@ class Scroller extends Component {
this._scroller = ref;
this.props.registerScroller(ref);
}
};
//
// Render

View File

@@ -139,7 +139,7 @@ class SignalRConnector extends Component {
}
console.error(`signalR: Unable to find handler for ${name}`);
}
};
handleCommand = (body) => {
if (body.action === 'sync') {
@@ -158,36 +158,36 @@ class SignalRConnector extends Component {
} else {
this.props.dispatchUpdateCommand(resource);
}
}
};
handleHealth = () => {
this.props.dispatchFetchHealth();
}
};
handleIndexerstatus = () => {
this.props.dispatchFetchIndexerStatus();
}
};
handleMovie = (body) => {
handleIndexer = (body) => {
const action = body.action;
const section = 'movies';
const section = 'indexers';
if (action === 'updated') {
this.props.dispatchUpdateItem({ section, ...body.resource });
} else if (action === 'deleted') {
this.props.dispatchRemoveItem({ section, id: body.resource.id });
}
}
};
handleVersion = (body) => {
const version = body.version;
this.props.dispatchSetVersion({ version });
}
};
handleSystemTask = () => {
this.props.dispatchFetchCommands();
}
};
handleTag = (body) => {
if (body.action === 'sync') {
@@ -195,7 +195,7 @@ class SignalRConnector extends Component {
this.props.dispatchFetchTagDetails();
return;
}
}
};
//
// Listeners
@@ -210,7 +210,7 @@ class SignalRConnector extends Component {
isDisconnected: false,
isRestarting: false
});
}
};
onStart = () => {
console.debug('[signalR] connected');
@@ -221,11 +221,11 @@ class SignalRConnector extends Component {
isDisconnected: false,
isRestarting: false
});
}
};
onReconnecting = () => {
this.props.dispatchSetAppValue({ isReconnecting: true });
}
};
onReconnected = () => {
@@ -247,17 +247,17 @@ class SignalRConnector extends Component {
dispatchFetchIndexers();
dispatchFetchCommands();
repopulatePage();
}
};
onClose = () => {
console.debug('[signalR] connection closed');
}
};
onReceiveMessage = (message) => {
console.debug('[signalR] received', message.name, message.body);
this.handleMessage(message);
}
};
//
// Render

View File

@@ -38,7 +38,7 @@ class TableSelectCell extends Component {
} = this.props;
onSelectedChange({ id, value, shiftKey });
}
};
//
// Render

View File

@@ -35,7 +35,7 @@ class VirtualTableSelectCell extends Component {
} = this.props;
onSelectedChange({ id, value, shiftKey });
}
};
//
// Render

View File

@@ -21,7 +21,7 @@ class TableHeaderCell extends Component {
} else {
this.props.onSortPress(name);
}
}
};
//
// Render

View File

@@ -62,7 +62,7 @@ class TableOptionsModal extends Component {
pageSize: value,
pageSizeError
});
}
};
onVisibleChange = ({ name, value }) => {
const columns = _.cloneDeep(this.props.columns);
@@ -71,7 +71,7 @@ class TableOptionsModal extends Component {
column.isVisible = value;
this.props.onTableOptionChange({ columns });
}
};
onColumnDragMove = (dragIndex, dropIndex) => {
if (this.state.dragIndex !== dragIndex || this.state.dropIndex !== dropIndex) {
@@ -80,7 +80,7 @@ class TableOptionsModal extends Component {
dropIndex
});
}
}
};
onColumnDragEnd = ({ id }, didDrop) => {
const {
@@ -100,7 +100,7 @@ class TableOptionsModal extends Component {
dragIndex: null,
dropIndex: null
});
}
};
//
// Render

View File

@@ -20,11 +20,11 @@ class TableOptionsModalWrapper extends Component {
onTableOptionsPress = () => {
this.setState({ isTableOptionsModalOpen: true });
}
};
onTableOptionsModalClose = () => {
this.setState({ isTableOptionsModalOpen: false });
}
};
//
// Render

View File

@@ -26,16 +26,16 @@ class TablePager extends Component {
onOpenPageSelectClick = () => {
this.setState({ isShowingPageSelect: true });
}
};
onPageSelect = ({ value: page }) => {
this.setState({ isShowingPageSelect: false });
this.props.onPageSelect(parseInt(page));
}
};
onPageSelectBlur = () => {
this.setState({ isShowingPageSelect: false });
}
};
//
// Render

View File

@@ -75,7 +75,7 @@ class VirtualTable extends Component {
setGridRef = (ref) => {
this._grid = ref;
}
};
//
// Listeners
@@ -84,7 +84,7 @@ class VirtualTable extends Component {
this.setState({
width
});
}
};
//
// Render

View File

@@ -38,7 +38,7 @@ class VirtualTableHeaderCell extends Component {
} else {
this.props.onSortPress(name);
}
}
};
//
// Render

View File

@@ -80,20 +80,20 @@ class Tooltip extends Component {
}
return data;
}
};
//
// Listeners
onMeasure = ({ width }) => {
this.setState({ width });
}
};
onClick = () => {
if (isMobileUtil()) {
this.setState({ isOpen: !this.state.isOpen });
}
}
};
onMouseEnter = () => {
if (this._closeTimeout) {
@@ -101,13 +101,13 @@ class Tooltip extends Component {
}
this.setState({ isOpen: true });
}
};
onMouseLeave = () => {
this._closeTimeout = setTimeout(() => {
this.setState({ isOpen: false });
}, 100);
}
};
//
// Render

View File

@@ -64,12 +64,12 @@ function keyboardShortcuts(WrappedComponent) {
bindShortcut = (key, callback, options = {}) => {
this._mousetrap.bind(key, callback);
this._mousetrapBindings[key] = options;
}
};
unbindShortcut = (key) => {
delete this._mousetrapBindings[key];
this._mousetrap.unbind(key);
}
};
unbindAllShortcuts = () => {
const keys = Object.keys(this._mousetrapBindings);
@@ -83,7 +83,7 @@ function keyboardShortcuts(WrappedComponent) {
});
this._mousetrapBindings = {};
}
};
stopCallback = (event, element, combo) => {
const binding = this._mousetrapBindings[combo];
@@ -98,7 +98,7 @@ function keyboardShortcuts(WrappedComponent) {
element.tagName === 'TEXTAREA' ||
(element.contentEditable && element.contentEditable === 'true')
);
}
};
//
// Render

View File

@@ -22,10 +22,12 @@ import {
import {
faArrowCircleLeft as fasArrowCircleLeft,
faArrowCircleRight as fasArrowCircleRight,
faAsterisk as fasAsterisk,
faBackward as fasBackward,
faBan as fasBan,
faBars as fasBars,
faBolt as fasBolt,
faBook as fasBook,
faBookmark as fasBookmark,
faBookReader as fasBookReader,
faBroadcastTower as fasBroadcastTower,
@@ -74,6 +76,7 @@ import {
faLock as fasLock,
faMedkit as fasMedkit,
faMinus as fasMinus,
faMusic as fasMusic,
faPause as fasPause,
faPlay as fasPlay,
faPlus as fasPlus,
@@ -104,6 +107,7 @@ import {
faTimes as fasTimes,
faTimesCircle as fasTimesCircle,
faTrashAlt as fasTrashAlt,
faTv as fasTv,
faUser as fasUser,
faUserPlus as fasUserPlus,
faVial as fasVial,
@@ -121,7 +125,9 @@ export const ADVANCED_SETTINGS = fasCog;
export const ANNOUNCED = fasBullhorn;
export const ARROW_LEFT = fasArrowCircleLeft;
export const ARROW_RIGHT = fasArrowCircleRight;
export const AUDIO = fasMusic;
export const BACKUP = farFileArchive;
export const BOOK = fasBook;
export const BUG = fasBug;
export const CALENDAR = fasCalendarAlt;
export const CALENDAR_O = farCalendar;
@@ -158,6 +164,7 @@ export const FILTER = fasFilter;
export const FLAG = fasFlag;
export const FOLDER = farFolder;
export const FOLDER_OPEN = fasFolderOpen;
export const FOOTNOTE = fasAsterisk;
export const GENRE = fasTheaterMasks;
export const GROUP = farObjectGroup;
export const HEALTH = fasMedkit;
@@ -220,6 +227,7 @@ export const TAGS = fasTags;
export const TBA = fasQuestionCircle;
export const TEST = fasVial;
export const TRANSLATE = fasLanguage;
export const TV = fasTv;
export const UNGROUP = farObjectUngroup;
export const UNKNOWN = fasQuestion;
export const UNMONITORED = farBookmark;
@@ -228,4 +236,4 @@ export const UNSAVED_SETTING = farDotCircle;
export const VIEW = fasEye;
export const WARNING = fasExclamationTriangle;
export const WIKI = fasBookReader;
export const BLACKLIST = fasBan;
export const BLOCKLIST = fasBan;

View File

@@ -2,6 +2,7 @@ import PropTypes from 'prop-types';
import React from 'react';
import DescriptionList from 'Components/DescriptionList/DescriptionList';
import DescriptionListItem from 'Components/DescriptionList/DescriptionListItem';
import Link from 'Components/Link/Link';
import translate from 'Utilities/String/translate';
import styles from './HistoryDetails.css';
@@ -17,7 +18,8 @@ function HistoryDetails(props) {
query,
queryResults,
categories,
source
source,
url
} = data;
return (
@@ -59,6 +61,14 @@ function HistoryDetails(props) {
data={source}
/>
}
{
!!data &&
<DescriptionListItem
title={'Url'}
data={url ? <Link to={url}>{translate('Link')}</Link> : '-'}
/>
}
</DescriptionList>
);
}
@@ -66,7 +76,8 @@ function HistoryDetails(props) {
if (eventType === 'releaseGrabbed') {
const {
source,
title
title,
url
} = data;
return (
@@ -94,6 +105,14 @@ function HistoryDetails(props) {
data={title ? title : '-'}
/>
}
{
!!data &&
<DescriptionListItem
title={'Url'}
data={url ? <Link to={url}>{translate('Link')}</Link> : '-'}
/>
}
</DescriptionList>
);
}

View File

@@ -35,16 +35,16 @@ class History extends Component {
onClearHistoryPress = () => {
this.setState({ isClearHistoryModalOpen: true });
}
};
onClearHistoryModalClose = () => {
this.setState({ isClearHistoryModalOpen: false });
}
};
onConfirmClearHistory = () => {
this.setState({ isClearHistoryModalOpen: false });
this.props.onClearHistoryPress();
}
};
//
// Render

View File

@@ -69,42 +69,42 @@ class HistoryConnector extends Component {
repopulate = () => {
this.props.fetchHistory();
}
};
//
// Listeners
onFirstPagePress = () => {
this.props.gotoHistoryFirstPage();
}
};
onPreviousPagePress = () => {
this.props.gotoHistoryPreviousPage();
}
};
onNextPagePress = () => {
this.props.gotoHistoryNextPage();
}
};
onLastPagePress = () => {
this.props.gotoHistoryLastPage();
}
};
onPageSelect = (page) => {
this.props.gotoHistoryPage({ page });
}
};
onSortPress = (sortKey) => {
this.props.setHistorySort({ sortKey });
}
};
onFilterSelect = (selectedFilterKey) => {
this.props.setHistoryFilter({ selectedFilterKey });
}
};
onClearHistoryPress = () => {
this.props.executeCommand({ name: commandNames.CLEAR_HISTORY });
}
};
onTableOptionChange = (payload) => {
this.props.setHistoryTableOption(payload);
@@ -112,7 +112,7 @@ class HistoryConnector extends Component {
if (payload.pageSize) {
this.props.gotoHistoryFirstPage();
}
}
};
//
// Render

View File

@@ -43,7 +43,7 @@ class HistoryOptions extends Component {
this.setState(setting, () => {
dispatchSaveGeneralSettings(setting);
});
}
};
//
// Render

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