Compare commits

...

1255 Commits

Author SHA1 Message Date
Bogdan dea797c375 Fixed: (UI) Ensure root folders are populated in Author Editor 2023-07-30 05:10:21 +03:00
PearsonFlyer 58ba24762b Fixed: Correctly calculate books count on Author page
Closes #1931
2023-07-30 05:10:07 +03:00
Servarr fbd7b4fe33 Automated API Docs update [skip ci] 2023-07-30 05:09:25 +03:00
Mark McDowall fee7fbbff6 New: Add result to commands to report commands that did not complete successfully
(cherry picked from commit 103ce3def4636ef891e72bd687ef8f46b5125233)
2023-07-30 03:44:14 +03:00
Taloth Saldono 18253a298e Log Goodreads connection failures with more info.
(cherry picked from commit 6672650b6b5e152e82fb3ad38a0a158d66c0b83d)
2023-07-30 03:44:14 +03:00
Bogdan 22f92150c3 Ensure original data is shown when no matches are made 2023-07-29 18:32:54 +03:00
Bogdan 4d7a762ee8 Fix book tests 2023-07-29 14:59:47 +03:00
Stevie Robinson b11517e2ac Extend InlineMarkdown to handle code blocks in backticks
(cherry picked from commit e1c5533efa397632becc606c17232f97055e371b)
2023-07-29 09:59:50 +03:00
Bogdan d5af254f47 Fix AuthorLookupFixture 2023-07-29 09:04:22 +03:00
Bogdan f09da06f80 More test fixes 2023-07-29 07:48:47 +03:00
Bogdan d3443510b4 Rename formatPreferredWordScore to formatCustomFormatScore
Closes #2731
2023-07-29 06:35:19 +03:00
Bogdan d73eb1b5f9 Validation for Custom Format specifications
Co-authored-by: Qstick <qstick@gmail.com>
(cherry picked from commit 3d6cf24d7c91f8ff697c34264c249f7450894106)

Closes #2726
2023-07-29 06:32:29 +03:00
Bogdan 39778a95bf Dedupe releases based on indexer priority
(cherry picked from commit 38c717bcef6fa5fcd2ff1c7901639eb888a94a8a)

Closes #2727
2023-07-29 06:28:23 +03:00
Taloth Saldono 9fccca1154 Fixed up some errors and do the guid cache fix on the module instead of backend coz that would cause other issues.
(cherry picked from commit 8eaab46488f00a74197c517c6ef773626aec5173)
2023-07-29 06:27:34 +03:00
Mark McDowall e165663616 Fixed: Sorting in Interactive search duplicates results
(cherry picked from commit a6637b2911f7818e596c1518e94bd111cff0120b)

Closes #739
Closes #743
2023-07-29 06:27:31 +03:00
Bogdan b49d2312ab Fixed: Check only enabled Jackett indexers for '/all' endpoint
(cherry picked from commit ae3dd5730e05c5229e7f7092f15c33859524863b)

Closes #2730
2023-07-29 05:38:15 +03:00
Bogdan 52221c7cf4 Fixed: Ensure failing indexers are marked as failed when testing all
(cherry picked from commit b407eba61284d5fb855df6a2868805853aa6f448)

Closes #2735
2023-07-29 05:36:23 +03:00
bakerboy448 ad7b110a0b New: Use better page size for Newznab/Torznab (up to 100) when supported by the indexer
(cherry picked from commit ddb25b109575cc378462a1c3a64705f2003f01f0)

Closes #2181
2023-07-29 05:33:52 +03:00
Weblate b04b483f86 Multiple Translations updated by Weblate
ignore-downstream

Co-authored-by: Fixer <ygj59783@zslsz.com>
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/ro/
Translation: Servarr/Readarr
2023-07-28 12:55:31 +03:00
Bogdan b79941e0a1 Fix tests 2023-07-26 14:00:10 +03:00
Weblate 84d47b1f23 Multiple Translations updated by Weblate
ignore-downstream

Co-authored-by: Fixer <ygj59783@zslsz.com>
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/ro/
Translation: Servarr/Readarr
2023-07-26 07:53:53 +03:00
Weblate 17df4d47fb Multiple Translations updated by Weblate
ignore-downstream

Co-authored-by: Havok Dan <havokdan@yahoo.com.br>
Co-authored-by: SHUAI.W <x@ousui.org>
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/pt_BR/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/zh_CN/
Translation: Servarr/Readarr
2023-07-25 01:04:44 +03:00
Bogdan b9f89dddc9 Bump version to 0.3.0 2023-07-23 09:38:17 +03:00
Weblate e3fc469cd3 Multiple Translations updated by Weblate
ignore-downstream

Co-authored-by: Weblate <noreply@weblate.org>
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/
Translation: Servarr/Readarr
2023-07-23 05:05:02 +03:00
Bogdan 4304685a65 Add support for deprecated values in field select options
(cherry picked from commit d9786887f3fe30ef60ad9c50b3272bf60dfef309)

Closes #2718
2023-07-23 05:03:40 +03:00
Bogdan 7d77b1fbe5 Trim spaces from a split list in GetValueConverter 2023-07-23 05:02:18 +03:00
Bogdan 1989174801 Fix typo in SkipRedownload
Closes #2711
2023-07-23 05:01:08 +03:00
Bogdan ac4ae9bb4d Fixed: Ensure Monitoring Options resets to No Change
(cherry picked from commit 180153cd8440df88c9aa5694c67c6cae537dc595)
2023-07-23 04:52:30 +03:00
Bogdan f399d27470 Cache busting for CSS files
(cherry picked from commit 38f263931ff8faba050762abe5fb692a5bc0d515)
2023-07-23 03:03:51 +03:00
Weblate c5fd2e3aa0 Multiple Translations updated by Weblate
ignore-downstream

Co-authored-by: Havok Dan <havokdan@yahoo.com.br>
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/pt_BR/
Translation: Servarr/Readarr
2023-07-21 13:37:45 +03:00
bakerboy448 e971d68d67 New: Log when testing for matching Remote Path Mapping
(cherry picked from commit 360d989cb047d0f752dd71b806aa0a746e3b5f3d)
2023-07-21 07:51:17 +03:00
Mark McDowall af858ac4aa Fix chunk IDs and source map file names
(cherry picked from commit bb8fed94eb2c44040031643e8c20ff72de759535)
2023-07-20 00:56:17 +03:00
Weblate 63ea253a6b Multiple Translations updated by Weblate
ignore-downstream

Co-authored-by: Anonymous <noreply@weblate.org>
Co-authored-by: Havok Dan <havokdan@yahoo.com.br>
Co-authored-by: Qstick <qstick@gmail.com>
Co-authored-by: Weblate <noreply@weblate.org>
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/ar/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/bg/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/cs/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/da/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/de/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/el/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/es/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/fi/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/fr/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/he/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/hr/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/hu/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/id/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/it/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/ja/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/ko/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/pl/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/pt_BR/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/ro/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/ru/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/th/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/tr/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/uk/
Translation: Servarr/Readarr
2023-07-19 15:11:56 +03:00
Bogdan 484f2eb3ec Fixed: Error when selecting different Quality Profile
(cherry picked from commit 5e19478266b33905e88b2e769269e44e5dd98e4b)

Closes #2694
2023-07-18 07:31:27 +03:00
Bogdan 15190aa61a Use 2 spaces indentation for ts/tsx files
(cherry picked from commit bc374f07cebc8463c6416630d0fb06f011f21c31)
2023-07-18 07:29:00 +03:00
Bogdan a3aac90bf7 Fixed: (ImportLists) Removed minimum refresh interval for FetchSingleList 2023-07-18 02:17:48 +03:00
Servarr dd9cbc4f54 Automated API Docs update [skip ci] 2023-07-17 06:37:31 +03:00
Bogdan 4bca0d77b7 New: Show tooltips with Custom Formats in History and Queue
Closes #2676
2023-07-17 05:18:03 +03:00
Weblate 1316b388ad Multiple Translations updated by Weblate
ignore-downstream

Co-authored-by: Anonymous <noreply@weblate.org>
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/ar/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/bg/
Translation: Servarr/Readarr
2023-07-17 04:39:11 +03:00
Servarr 243c88ce56 Automated API Docs update [skip ci] 2023-07-17 04:37:01 +03:00
Bogdan 921f170234 Use named keys for apply tags help text
Closes #2673
2023-07-17 04:36:24 +03:00
Weblate 3e102627f5 Multiple Translations updated by Weblate
ignore-downstream

Co-authored-by: Weblate <noreply@weblate.org>
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/
Translation: Servarr/Readarr
2023-07-17 04:36:19 +03:00
Weblate f3b5f0c5cb Multiple Translations updated by Weblate
ignore-downstream

Co-authored-by: Weblate <noreply@weblate.org>
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/
Translation: Servarr/Readarr
2023-07-17 04:35:09 +03:00
Weblate a53516e821 Multiple Translations updated by Weblate
ignore-downstream

Co-authored-by: Anonymous <noreply@weblate.org>
Co-authored-by: Godwhitelight <godwhitelight1@gmail.com>
Co-authored-by: Guy Porat <guyporatmail@gmail.com>
Co-authored-by: Havok Dan <havokdan@yahoo.com.br>
Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: liimee <git.taaa@fedora.email>
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/cs/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/he/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/id/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/pt_BR/
Translation: Servarr/Readarr
2023-07-17 04:34:08 +03:00
Qstick f0f95be57f New: Download Client Tags
(cherry picked from commit f6ae9fd6c5173cbf1540341fa99d2f120be1d28e)
2023-07-17 04:30:26 +03:00
Bogdan f436d730fe New: Bulk Manage Applications, Download Clients
Co-authored-by: Qstick <qstick@gmail.com>
2023-07-17 04:30:26 +03:00
Mark McDowall f7c135faaf Fixed: Ensure translations are fetched before loading app
(cherry picked from commit ad2721dc55f3233e4c299babe5744418bc530418)

Closes #2670
Closes #2674
Closes #2679
2023-07-17 03:41:06 +03:00
Taloth Saldono 8bb52105fd New: Per download client setting to Remove Completed/Failed downloads instead of global setting
(cherry picked from commit 2dba5ef4b431bee0a061be67354c9a7a612a03c8)
2023-07-16 23:45:15 +03:00
Bogdan e5a1b7a72e Add missing seed criteria validation 2023-07-16 21:25:14 +03:00
Bogdan 2f2a521391 Fixed: (Nyaa) Update default filtered category 2023-07-16 21:03:40 +03:00
Qstick 304d1e3462 TagSelect field type
(cherry picked from commit 09347f79c5c486ccb88d732c1bac1cacc668536c)

Closes #558
2023-07-16 19:58:00 +03:00
Bogdan 1d1cc6526d Bump version to 0.2.4 2023-07-16 08:19:33 +03:00
Weblate 690e0b5d96 Multiple Translations updated by Weblate
ignore-downstream

Co-authored-by: Havok Dan <havokdan@yahoo.com.br>
Co-authored-by: Leliene <lhena.gardien@gmail.com>
Co-authored-by: 君禹渊 <taoxu2870@outlook.com>
Co-authored-by: 無情天 <kofzhanganguo@126.com>
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/fr/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/pt_BR/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/zh_CN/
Translation: Servarr/Readarr
2023-07-15 18:58:53 +03:00
Servarr 212eedd345 Automated API Docs update [skip ci] 2023-07-14 06:29:56 +03:00
Bogdan 0b38743292 Update webpack, eslint and core-js 2023-07-14 06:25:01 +03:00
jack-mil 1def54f246 New: Custom Format Score column in queue
(cherry picked from commit a6f2db9139c4a6b01d162ccf8884fc02c874b4cf)

Closes #2647
Closes #2658
2023-07-14 05:11:28 +03:00
bakerboy448 0eeaa1e443 Import list logging improvements
(cherry picked from commit d2be869d9cee2ee6452a53dcabe20c1598fd115a)

Closes #2654
2023-07-14 05:03:13 +03:00
Zak Saunders 7beee07a2c New: Make Release Group Outline Not Show as Required
(cherry picked from commit 89e363fd145ae6c531e6b3fa4fde258af05afca0)

Closes #2277
2023-07-14 04:56:05 +03:00
dependabot[bot] 924f739d1f Bump semver from 5.7.1 to 5.7.2
Bumps [semver](https://github.com/npm/node-semver) from 5.7.1 to 5.7.2.
- [Release notes](https://github.com/npm/node-semver/releases)
- [Changelog](https://github.com/npm/node-semver/blob/v5.7.2/CHANGELOG.md)
- [Commits](https://github.com/npm/node-semver/compare/v5.7.1...v5.7.2)

---
updated-dependencies:
- dependency-name: semver
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-07-14 04:53:23 +03:00
Weblate b187fb23e3 Multiple Translations updated by Weblate
ignore-downstream

Co-authored-by: Oskari Lavinto <olavinto@protonmail.com>
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/fi/
Translation: Servarr/Readarr
2023-07-12 00:58:12 +03:00
Bogdan ca043b3820 Bump version to 0.2.3 2023-07-09 15:02:39 +03:00
Bogdan c3c9b9afbb Add db migration for Metadata Profile's Ignored to List 2023-07-09 03:17:21 +03:00
Bogdan f225a742cc New: (UI) Minor improvements to metadata profiles listing 2023-07-08 22:39:39 +03:00
Servarr f4fd36061c Automated API Docs update [skip ci] 2023-07-08 22:15:39 +03:00
Bogdan 38e39449aa Fixed: (MetadataProfile) Allow usage of Must Not Contain 2023-07-08 22:10:57 +03:00
Bogdan 484c255fd4 Add validation for MinPopularity and MinPages in metadata profiles 2023-07-08 21:19:40 +03:00
dependabot[bot] f341b5f449 Bump tough-cookie from 4.1.2 to 4.1.3
Bumps [tough-cookie](https://github.com/salesforce/tough-cookie) from 4.1.2 to 4.1.3.
- [Release notes](https://github.com/salesforce/tough-cookie/releases)
- [Changelog](https://github.com/salesforce/tough-cookie/blob/master/CHANGELOG.md)
- [Commits](https://github.com/salesforce/tough-cookie/compare/v4.1.2...v4.1.3)

---
updated-dependencies:
- dependency-name: tough-cookie
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-07-08 20:10:05 +03:00
Weblate eb5654c634 Multiple Translations updated by Weblate
ignore-downstream

Co-authored-by: Kevin Orel Edry <techg9@gmail.com>
Co-authored-by: Tacit <1750630216@qq.com>
Co-authored-by: reloxx <reloxx@interia.pl>
Co-authored-by: 阿卡林刘 <ScottLiu_NonWin@outlook.com>
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/de/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/he/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/zh_CN/
Translation: Servarr/Readarr
2023-07-08 20:09:49 +03:00
dependabot[bot] e843046d76 Bump stylelint from 15.6.1 to 15.10.1
Bumps [stylelint](https://github.com/stylelint/stylelint) from 15.6.1 to 15.10.1.
- [Release notes](https://github.com/stylelint/stylelint/releases)
- [Changelog](https://github.com/stylelint/stylelint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/stylelint/stylelint/compare/15.6.1...15.10.1)

---
updated-dependencies:
- dependency-name: stylelint
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-07-08 01:50:20 +03:00
Qstick ef57545221 Add package to Sentry release to ensure apps don't mix 2023-07-04 12:16:37 -05:00
Bogdan 09d44726a4 New: Speed up API add by reworking AuthorExistsValidator
Co-authored-by: Qstick <qstick@gmail.com>
2023-07-03 17:19:19 +03:00
Bogdan 0e2d39f580 Create overload for ToJson() with Formatting param
(cherry picked from commit aa2b0031671b6846eaa75e0914cd03ae7bbb0da7)
2023-07-03 11:19:05 +03:00
Qstick dbcb0e77a8 Fixed: Allow restore to process backups up to ~500MB
(cherry picked from commit 551edb9e655d2a541a2232f85e79a5e3f7b433aa)
2023-07-03 11:18:52 +03:00
Bogdan 0186900a54 Bump version to 0.2.2 2023-07-02 12:03:41 +03:00
Weblate 941b30edac Multiple Translations updated by Weblate
ignore-downstream

Co-authored-by: BeardedWatermelon <periklis.karantonis@gmail.com>
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/el/
Translation: Servarr/Readarr
2023-06-30 13:56:01 +03:00
Weblate 5c61b6ceb3 Translated using Weblate (Portuguese (Brazil)) [skip ci]
Currently translated at 100.0% (945 of 945 strings)

Translated using Weblate (Thai) [skip ci]

Currently translated at 61.2% (579 of 945 strings)

Translated using Weblate (Icelandic) [skip ci]

Currently translated at 61.4% (581 of 945 strings)

Translated using Weblate (Hindi) [skip ci]

Currently translated at 61.3% (580 of 945 strings)

Translated using Weblate (Hebrew) [skip ci]

Currently translated at 63.9% (604 of 945 strings)

Translated using Weblate (Finnish) [skip ci]

Currently translated at 87.9% (831 of 945 strings)

Translated using Weblate (Danish) [skip ci]

Currently translated at 61.9% (585 of 945 strings)

Translated using Weblate (Czech) [skip ci]

Currently translated at 61.5% (582 of 945 strings)

Translated using Weblate (Bulgarian) [skip ci]

Currently translated at 61.4% (581 of 945 strings)

Translated using Weblate (Arabic) [skip ci]

Currently translated at 61.5% (582 of 945 strings)

Translated using Weblate (Spanish) [skip ci]

Currently translated at 68.1% (644 of 945 strings)

Co-authored-by: Anonymous <noreply@weblate.org>
Co-authored-by: Havok Dan <havokdan@yahoo.com.br>
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/ar/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/bg/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/cs/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/da/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/es/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/fi/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/he/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/hi/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/is/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/pt_BR/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/th/
Translation: Servarr/Readarr
2023-06-28 13:56:13 +03:00
Bogdan 55959e1112 New: Improve empty list messaging
(cherry picked from commit ee843259bca2d9764a3919b123524a51a3a16cce)

Closes #2621
2023-06-27 06:43:45 +03:00
Bogdan 07451cbcde Fixed: Invalid image URL if Author/Book is missing background image
(cherry picked from commit dd096e0fda71b3afa9b09c2900abbf226d8a5204)

Closes #2625
2023-06-27 06:36:21 +03:00
Bogdan 1ebdffcd26 Allow array of string as value in EnhancedSelectInput
(cherry picked from commit 6816767fad9e4e839e77c5fe40aece97033cd052)
2023-06-27 04:00:24 +03:00
Weblate 75119ce9df Translated using Weblate (Hungarian) [skip ci]
Currently translated at 97.2% (916 of 942 strings)

Co-authored-by: sutoramon <sutoramon@gmail.com>
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/hu/
Translation: Servarr/Readarr
2023-06-26 02:26:01 +03:00
Bogdan 668dc6dfde Fix translation in RemoveQueueItemModal 2023-06-26 02:08:41 +03:00
Bogdan ee989c9c67 Bump version to 0.2.1 2023-06-25 09:04:44 +03:00
servarr[bot] acac3bd680 Add more trace logs related info to bug_report.yml [skip ci] 2023-06-22 16:40:17 +03:00
Servarr 3b18f3206d Automated API Docs update [skip ci] 2023-06-21 08:16:49 +03:00
Bogdan fcf057a019 Remove not implemented endpoints from API docs 2023-06-21 08:00:04 +03:00
Servarr c7399cdd2b Automated API Docs update [skip ci] 2023-06-21 07:45:48 +03:00
Bogdan 08a3682b89 Limit search input to first character matching when only one character is typed 2023-06-21 07:25:09 +03:00
Bogdan 3da00f75dc Remove not implemented endpoints from API docs
Closes #2613
2023-06-21 07:09:01 +03:00
Bogdan 60abb298b2 Convert to 'using' declaration in Housekeeping Tasks
Closes #2612
2023-06-21 07:03:13 +03:00
Bogdan c710b117ab Prevent NullRef when deleting missing backups
(cherry picked from commit 0ff0fe2e68f3abf7b8e4d6bf0c1e9dee4eb68227)

Closes #2610
2023-06-21 06:37:09 +03:00
Weblate 816f53b36b Translated using Weblate (Chinese (Traditional) (zh_TW)) [skip ci]
Currently translated at 3.5% (33 of 942 strings)

Translated using Weblate (Portuguese (Brazil)) [skip ci]

Currently translated at 100.0% (942 of 942 strings)

Translated using Weblate (Vietnamese) [skip ci]

Currently translated at 60.6% (571 of 942 strings)

Translated using Weblate (German) [skip ci]

Currently translated at 97.5% (919 of 942 strings)

Co-authored-by: Havok Dan <havokdan@yahoo.com.br>
Co-authored-by: KHng0284 <giakhang021109@gmail.com>
Co-authored-by: reloxx <reloxx@interia.pl>
Co-authored-by: ted09080037 <ted09080037@gmail.com>
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/de/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/pt_BR/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/vi/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/zh_TW/
Translation: Servarr/Readarr
2023-06-21 02:28:40 +03:00
bakerboy448 749684e24a New: Indexer Messaging and Error Improvements
(cherry picked from commit 3b505d8734dcbe3fa53acba7f94f1361151e6a44)
2023-06-19 16:12:15 +03:00
Bogdan 3a0ca45aa9 Fix sorting queue items by size 2023-06-18 15:00:49 +03:00
Bogdan 595efd498e Close database connections in housekeeping tasks
Co-authored-by: ferencmarkizay <ferencmarkizay@gmail.com>
2023-06-18 15:00:11 +03:00
Bogdan dea1060d61 Bump version to 0.2.0 2023-06-18 07:18:42 +03:00
Weblate f6049b8bf2 Translated using Weblate (Portuguese (Brazil)) [skip ci]
Currently translated at 100.0% (942 of 942 strings)

Co-authored-by: Havok Dan <havokdan@yahoo.com.br>
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/pt_BR/
Translation: Servarr/Readarr
2023-06-18 04:53:21 +03:00
Bogdan 53ced38221 New: Improved page loading errors
Closes #2605
2023-06-17 00:51:10 +03:00
Tristan Kennedy 3a3cf8511e Added padding to search tab to maintain visual consistancy
(cherry picked from commit 55ef505d740a9aadc7f161274006e150b0d9cf8f)
2023-06-17 00:50:55 +03:00
Servarr 9ec913337d Automated API Docs update [skip ci] 2023-06-15 13:26:07 +03:00
Weblate 9a2120ae92 Update translation files [skip ci]
Updated by "Cleanup translation files" hook in Weblate.

Translated using Weblate (Norwegian Bokmål) [skip ci]

Currently translated at 16.0% (151 of 942 strings)

Translated using Weblate (Portuguese (Brazil)) [skip ci]

Currently translated at 100.0% (942 of 942 strings)

Translated using Weblate (Turkish) [skip ci]

Currently translated at 61.6% (581 of 942 strings)

Translated using Weblate (Romanian) [skip ci]

Currently translated at 59.9% (565 of 942 strings)

Translated using Weblate (Polish) [skip ci]

Currently translated at 65.9% (621 of 942 strings)

Translated using Weblate (Korean) [skip ci]

Currently translated at 60.9% (574 of 942 strings)

Translated using Weblate (Japanese) [skip ci]

Currently translated at 61.4% (579 of 942 strings)

Translated using Weblate (Icelandic) [skip ci]

Currently translated at 61.5% (580 of 942 strings)

Translated using Weblate (Hindi) [skip ci]

Currently translated at 61.4% (579 of 942 strings)

Translated using Weblate (Hebrew) [skip ci]

Currently translated at 64.0% (603 of 942 strings)

Translated using Weblate (French) [skip ci]

Currently translated at 78.5% (740 of 942 strings)

Translated using Weblate (Finnish) [skip ci]

Currently translated at 88.1% (830 of 942 strings)

Translated using Weblate (Danish) [skip ci]

Currently translated at 61.9% (584 of 942 strings)

Translated using Weblate (Czech) [skip ci]

Currently translated at 61.6% (581 of 942 strings)

Translated using Weblate (Bulgarian) [skip ci]

Currently translated at 61.5% (580 of 942 strings)

Translated using Weblate (Arabic) [skip ci]

Currently translated at 61.6% (581 of 942 strings)

Translated using Weblate (Spanish) [skip ci]

Currently translated at 68.2% (643 of 942 strings)

Co-authored-by: Anonymous <noreply@weblate.org>
Co-authored-by: Havok Dan <havokdan@yahoo.com.br>
Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: fatalicus <fatalicus@gmail.com>
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/ar/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/bg/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/cs/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/da/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/es/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/fi/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/fr/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/he/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/hi/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/is/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/ja/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/ko/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/nb_NO/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/pl/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/pt_BR/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/ro/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/tr/
Translation: Servarr/Readarr
2023-06-15 13:16:52 +03:00
Bogdan 818d3a94d5 Add skip ci to API docs update commit 2023-06-15 13:15:37 +03:00
Bogdan 4e493b74e6 Update cleansing rules for RSS TL feed and homedir for Mac
(cherry picked from commit e5ff4aafa3f0b855fec332788e9fc490a03dfce3)

Closes #2593
2023-06-15 13:06:26 +03:00
Bogdan c7eaf1e85c Update translations
(cherry picked from commit 26031389757f6b5270bbe5591101b08e58debb73)

Closes #2599
2023-06-15 13:02:50 +03:00
Bogdan 31fe15c911 Add HelpTextWarning support in FieldDefinition
(cherry picked from commit 0e07d54ee77d5f83716e17b6757e23f38ff73694)

Closes #2595
2023-06-15 13:00:42 +03:00
Bogdan 2c36a6c25f Require ApiKey for all actions in SonarrImport
(cherry picked from commit 19b8fbe13bf584b915a05fe9fc87622adbaee0b7)

Closes #2600
2023-06-15 12:58:43 +03:00
Bogdan 6af56f7a15 Fixed: Treat redirects as errors in Readarr Import List
(cherry picked from commit 059a156f4a34c6b9cbe139fa1973b814e8a534ae)

Closes #2601
2023-06-15 12:57:09 +03:00
Qstick 6e13191c25 Fixed: Correctly handle 302 and 303 redirects in HttpClient
(cherry picked from commit ed7c5a937f4b50fcdf819e8fe347c8c0bc6bd2e7)

(cherry picked from commit 11bd764a75d3b97117098738d3489c4b3329738f)
2023-06-14 08:13:20 +03:00
bakerboy448 921ddfc962 Fixed: Handle checkingResumeData state form qBittorrent
(cherry picked from commit 8d8a16225ff7772ccb57784f272ca31e28bb8455)
2023-06-14 08:12:58 +03:00
Weblate 22f977401a Update translation files [skip ci]
Updated by "Cleanup translation files" hook in Weblate.

Co-authored-by: Weblate <noreply@weblate.org>
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/
Translation: Servarr/Readarr
2023-06-13 01:38:53 +03:00
Bogdan 113d9a07ef Update translations 2023-06-13 01:35:03 +03:00
Qstick 0560d65ea1 Update Remote Path Mapping delete modal title
(cherry picked from commit 18716a00516a971f7f2eb369b920266bea24fe08)

Closes #2588
Fixes #2587
2023-06-12 22:31:04 +03:00
Weblate 94ff105104 Translated using Weblate (Indonesian) [skip ci]
Currently translated at 3.7% (35 of 928 strings)

Co-authored-by: liimee <git.taaa@fedora.email>
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/id/
Translation: Servarr/Readarr
2023-06-12 21:58:09 +03:00
Bogdan 9bcf258aa9 Bump version to 0.1.9 2023-06-11 09:38:16 +03:00
Bogdan 54985bd4ca Use more specific styling for kinds in ProgressBar
(cherry picked from commit dd31c913d2a974d95f3be251714ce749cfd99a72)
2023-06-10 02:07:40 +03:00
Weblate 9e4d551f08 Translated using Weblate (Russian) [skip ci]
Currently translated at 67.7% (629 of 928 strings)

Co-authored-by: Андрей <andryfly7@gmail.com>
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/ru/
Translation: Servarr/Readarr
2023-06-10 02:02:58 +03:00
Weblate 8390da1c2a Translated using Weblate (Greek) [skip ci]
Currently translated at 99.8% (927 of 928 strings)

Translated using Weblate (French) [skip ci]

Currently translated at 78.4% (728 of 928 strings)

Translated using Weblate (Portuguese) [skip ci]

Currently translated at 77.0% (715 of 928 strings)

Translated using Weblate (German) [skip ci]

Currently translated at 98.3% (913 of 928 strings)

Translated using Weblate (German) [skip ci]

Currently translated at 98.3% (913 of 928 strings)

Translated using Weblate (Indonesian) [skip ci]

Currently translated at 3.5% (33 of 928 strings)

Translated using Weblate (Croatian) [skip ci]

Currently translated at 15.7% (146 of 928 strings)

Translated using Weblate (Ukrainian) [skip ci]

Currently translated at 66.7% (619 of 928 strings)

Translated using Weblate (Norwegian Bokmål) [skip ci]

Currently translated at 15.7% (146 of 928 strings)

Translated using Weblate (Catalan) [skip ci]

Currently translated at 67.7% (629 of 928 strings)

Translated using Weblate (Portuguese (Brazil)) [skip ci]

Currently translated at 100.0% (928 of 928 strings)

Translated using Weblate (Portuguese (Brazil)) [skip ci]

Currently translated at 100.0% (928 of 928 strings)

Translated using Weblate (Portuguese) [skip ci]

Currently translated at 76.9% (714 of 928 strings)

Translated using Weblate (Vietnamese) [skip ci]

Currently translated at 61.5% (571 of 928 strings)

Translated using Weblate (Turkish) [skip ci]

Currently translated at 61.6% (572 of 928 strings)

Translated using Weblate (Swedish) [skip ci]

Currently translated at 86.7% (805 of 928 strings)

Translated using Weblate (Russian) [skip ci]

Currently translated at 67.6% (628 of 928 strings)

Translated using Weblate (Polish) [skip ci]

Currently translated at 65.7% (610 of 928 strings)

Translated using Weblate (Japanese) [skip ci]

Currently translated at 61.5% (571 of 928 strings)

Translated using Weblate (Italian) [skip ci]

Currently translated at 73.0% (678 of 928 strings)

Translated using Weblate (Hungarian) [skip ci]

Currently translated at 98.0% (910 of 928 strings)

Translated using Weblate (French) [skip ci]

Currently translated at 78.3% (727 of 928 strings)

Translated using Weblate (Greek) [skip ci]

Currently translated at 98.5% (915 of 928 strings)

Translated using Weblate (German) [skip ci]

Currently translated at 98.1% (911 of 928 strings)

Translated using Weblate (German) [skip ci]

Currently translated at 98.1% (911 of 928 strings)

Translated using Weblate (Dutch) [skip ci]

Currently translated at 68.2% (633 of 928 strings)

Translated using Weblate (Dutch) [skip ci]

Currently translated at 68.2% (633 of 928 strings)

Translated using Weblate (French) [skip ci]

Currently translated at 78.3% (727 of 928 strings)

Translated using Weblate (Thai) [skip ci]

Currently translated at 61.5% (571 of 928 strings)

Translated using Weblate (Romanian) [skip ci]

Currently translated at 60.0% (557 of 928 strings)

Translated using Weblate (Icelandic) [skip ci]

Currently translated at 61.5% (571 of 928 strings)

Translated using Weblate (Hindi) [skip ci]

Currently translated at 61.5% (571 of 928 strings)

Translated using Weblate (Hebrew) [skip ci]

Currently translated at 64.0% (594 of 928 strings)

Translated using Weblate (Finnish) [skip ci]

Currently translated at 88.2% (819 of 928 strings)

Translated using Weblate (Danish) [skip ci]

Currently translated at 61.9% (575 of 928 strings)

Translated using Weblate (Bulgarian) [skip ci]

Currently translated at 61.5% (571 of 928 strings)

Translated using Weblate (Spanish) [skip ci]

Currently translated at 67.9% (631 of 928 strings)

Translated using Weblate (Arabic) [skip ci]

Currently translated at 61.6% (572 of 928 strings)

Translated using Weblate (Czech) [skip ci]

Currently translated at 61.6% (572 of 928 strings)

Update translation files [skip ci]

Updated by "Cleanup translation files" hook in Weblate.

Co-authored-by: Anonymous <noreply@weblate.org>
Co-authored-by: Havok Dan <havokdan@yahoo.com.br>
Co-authored-by: Jens <jensmahnke@me.com>
Co-authored-by: MoowGlax <matthieu.derouet.pro@gmail.com>
Co-authored-by: Thijs Waalen <contact@thijswaalen.com>
Co-authored-by: Thodoris Kalatzis <teo.kal@hotmail.com>
Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: emacsdias <emacs.dias@gmail.com>
Co-authored-by: foXaCe <foxace66@gmail.com>
Co-authored-by: reloxx <reloxx@interia.pl>
Co-authored-by: splifter <a.strahlke@gmail.com>
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/ar/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/bg/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/ca/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/cs/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/da/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/de/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/el/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/es/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/fi/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/fr/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/he/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/hi/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/hr/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/hu/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/id/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/is/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/it/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/ja/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/nb_NO/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/nl/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/pl/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/pt/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/pt_BR/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/ro/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/ru/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/sv/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/th/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/tr/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/uk/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/vi/
Translation: Servarr/Readarr
2023-06-07 19:21:06 +03:00
Qstick 44ae043c58 Bump version to 0.1.8 2023-06-04 14:48:35 -05:00
Bogdan bb7e2fc70c Fixed: Don't log handled exceptions in API 2023-05-31 06:51:57 +03:00
Bogdan b05938a9a8 Revert "Fixed: Don't log handled exceptions in API"
This reverts commit fecb3895ed.
2023-05-31 06:51:56 +03:00
Weblate 1e42ac572e Update translation files [skip ci]
Updated by "Cleanup translation files" hook in Weblate.

Co-authored-by: Weblate <noreply@weblate.org>
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/
Translation: Servarr/Readarr
2023-05-28 22:28:24 +03:00
Servarr 649dd0bda0 Automated API Docs update 2023-05-28 22:27:52 +03:00
Bogdan de24aef059 Deserialize asynchronously in LocalizationService
(cherry picked from commit 86a7f7bd54aa733b0e3abd3ec9463a85dd348118)

Closes #2561
2023-05-28 22:15:01 +03:00
Qstick 10766dd227 Faster tag view in UI for large libraries
(cherry picked from commit b050e1d2eb3bff9e28e7a1545d121be091789308)

Closes #2571
2023-05-28 22:08:34 +03:00
Bogdan 257d279e43 Fixed: Enforce validation warnings
(cherry picked from commit 48ee1158ad4213fd0690842e2672f52d08f7ad26)

Closes #2570
2023-05-28 22:02:41 +03:00
Bogdan 1db333088a Add minimum length as const in ApiKeyValidationCheck
(cherry picked from commit b06269544cfa11015f3fb938fd8c2ef07d9cac4a)

Closes #2565
2023-05-28 22:00:31 +03:00
Bogdan d1aff31593 Use 'var' instead of explicit type
(cherry picked from commit 12374f7f0038e5b25548f5ab3f71122410832393)

Closes #2559
2023-05-28 21:59:25 +03:00
Bogdan 89dd4d3271 Inline 'out' variable declarations
(cherry picked from commit 281add47de1d3940990156c841362125dea9cc7d)

Closes #2558
2023-05-28 21:55:43 +03:00
Bogdan fc6c78a54e Standardize variable declaration
(cherry picked from commit 909f2ded6b75998fa8e1addd0dcf849279e7b120)

Closes #2556
Closes #2557
2023-05-28 21:47:48 +03:00
Bogdan c98f4512df Enforce rule IDE0005 on build
(cherry picked from commit 6b1e4ef81938d264a2ddc8b626b0502f799aa640)

Closes #2555
2023-05-28 21:46:59 +03:00
Matthew Strapp 0a43481aed Fixed: Use relative paths instead of absolute paths for webmanifest
(cherry picked from commit 8e771f95ade919a8f1ed7b48675f032a6c508cb2)
2023-05-28 21:42:27 +03:00
Bogdan df6c142250 Simplify ShouldHaveApiKey and HasErrors
(cherry picked from commit 7343616a47cd538bba4c9128d2c1094561f9b3a5)
2023-05-28 21:41:07 +03:00
Weblate 58cf93e360 Update translation files [skip ci]
Updated by "Cleanup translation files" hook in Weblate.

Translated using Weblate (Icelandic) [skip ci]

Currently translated at 61.4% (567 of 922 strings)

Translated using Weblate (Hindi) [skip ci]

Currently translated at 61.4% (567 of 922 strings)

Translated using Weblate (Hebrew) [skip ci]

Currently translated at 63.9% (590 of 922 strings)

Translated using Weblate (Finnish) [skip ci]

Currently translated at 88.3% (815 of 922 strings)

Translated using Weblate (Danish) [skip ci]

Currently translated at 61.9% (571 of 922 strings)

Translated using Weblate (Czech) [skip ci]

Currently translated at 61.6% (568 of 922 strings)

Translated using Weblate (Bulgarian) [skip ci]

Currently translated at 61.4% (567 of 922 strings)

Translated using Weblate (Arabic) [skip ci]

Currently translated at 61.6% (568 of 922 strings)

Translated using Weblate (Spanish) [skip ci]

Currently translated at 68.0% (627 of 922 strings)

Update translation files [skip ci]

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/readarr/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/ar/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/bg/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/cs/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/da/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/es/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/fi/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/he/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/hi/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/is/
Translation: Servarr/Readarr
2023-05-28 10:25:24 -05:00
Qstick 7be282ad12 Bump version to 0.1.7 2023-05-28 09:27:02 -05:00
Bogdan 7920378789 Add CSS typings
Closes #2195
2023-05-27 13:43:36 +03:00
Mark McDowall bdcf336d94 Add Prettier to format TypeScript files
(cherry picked from commit de56862bb97b092c5fc44359caf3b2abdbcfdf96)

Closes #2186
2023-05-27 13:40:16 +03:00
Mark McDowall 3828492226 Add typescript
(cherry picked from commit 910511dba03196f14bb238c8e15f060c12183c08)

Closes #2185
2023-05-27 13:37:38 +03:00
bakerboy448 3cab98e2c0 Fixed: A really important spelling mistake
(cherry picked from commit b510201b43f6bc5e6774119ebbd7b8a0d89ee487)

Closes #2550
2023-05-27 13:28:57 +03:00
Mark McDowall c977311227 Fixed: Strip additional domains from release names
(cherry picked from commit e273f16c3905e0c2451f43cf98b9b7ad1cbdc777)

Closes #2549
2023-05-27 13:28:08 +03:00
Mark McDowall ca775df3d1 New: Filter SABnzbd queue by category
(cherry picked from commit 49fd9c4462741e756e0cd43c287939f929de11b2)

Closes #2548
2023-05-27 13:26:54 +03:00
Mark McDowall fecb3895ed Fixed: Don't log handled exceptions in API
(cherry picked from commit 59f2e5b65dd7352aad92b33adefa6cf5ca79a0de)

Closes #2547
2023-05-27 13:25:16 +03:00
Bogdan 91fadd5430 Fixed Postgres Timezone Issues (part 2) 2023-05-25 11:38:08 +03:00
Robin Dadswell 79d4e1a89a Add test for postgres to check datetime without timezone
Fixed: Postgres timezone issues

Co-authored-by: ta264 <ta264@users.noreply.github.com>
(cherry picked from commit d55864f86914199aa0c4ee37df1e42e6ad71ef4f)
(cherry picked from commit c006b66aa470616ec30994d0b95e3bd307aa82bd)
2023-05-25 11:38:08 +03:00
Servarr 149c18dd4f Automated API Docs update 2023-05-23 18:07:00 +03:00
Mark McDowall 3171c6f195 Rename Clearart to Clearlogo, use png for Clearlogo
(cherry picked from commit 349f7cf4c934fbf53516f7e92026282750180a16)

Fixes #2536
2023-05-23 12:27:06 +03:00
Mark McDowall baf19897ff Fixed: Don't download unknown artwork
(cherry picked from commit aecc8295c8c3ce39040d03a1f79f775e1c910362)

Fixes #2534
2023-05-23 12:22:59 +03:00
Mark McDowall accd16da71 Fixed: Don't rollback file move if destination already exists
Towards #5610

(cherry picked from commit f05405fe1ce4c78a8c75e27920c863c5b83686bd)
2023-05-23 12:19:07 +03:00
Bogdan 9aa5bee493 Use project name as relative path in builds
(cherry picked from commit fb908e8e1969e633a50ca000c767a998427363b2)

(cherry picked from commit 365a6e77a6530831eeeec7580406ff736da0e17a)
2023-05-23 12:18:45 +03:00
Bogdan c22ed7172d New: Improve validation messages
(cherry picked from commit a117001de673e80abd90d54a34a7c86292b3a649)

Fixes #2531
2023-05-21 20:34:03 +03:00
Bogdan 8ddff3868d Fix spelling "Use languages from Torznab/Newznab attributes if given"
(cherry picked from commit de3bfb7c5ab03e527dca1be3ef4a664dce266db6)

Fixes #2526
2023-05-21 20:32:22 +03:00
Qstick 1307f8f5b1 New: Use languages from Torznab/Newznab attributes if given
(cherry picked from commit 9c5a07f62a6e32832c10c80813cd3b98c5859989)

Fixes #2517
2023-05-21 20:31:41 +03:00
Mark McDowall 985f0fa4a6 Add FindByName to IsoLanguage
(cherry picked from commit 723810014573c4bae2b8c611144bbee1a6b56237)

Fixes #2515
2023-05-21 20:28:54 +03:00
S0me6uy e199e40621 New: Signal Notifications
(cherry picked from commit 59dd3b11271a63ea16f0e32a596dba8e9b9d1096)
2023-05-21 20:26:43 +03:00
Bogdan 4734cad9b1 Fix tests in IndexerServiceFixture
(cherry picked from commit 90a9ecbaac1b406ffeb6b6876d619191a317a35f)
2023-05-21 20:24:22 +03:00
Bogdan c744b00b55 Minor CS improvements in NzbDroneValidation
(cherry picked from commit 6118afa339621509aad55caf27b05e89bd0b8c74)
2023-05-21 20:24:01 +03:00
Servarr c88f4570b3 Automated API Docs update 2023-05-21 15:08:06 +03:00
Mark McDowall c0e8a3e55a Fix tests in CleanFilenameFixture 2023-05-21 14:47:58 +03:00
Mark McDowall 1ab34a1692 Don't clean slashes from folder names
(cherry picked from commit 0bc16efe26d403ab89b8fdb092fe729cd4ec2d7b)
2023-05-21 14:47:47 +03:00
Mark McDowall 2dc5246180 New: Colon replacement naming option
(cherry picked from commit b3260ba8661f3b2c6996eee7e04974e8f41365d5)
2023-05-21 14:47:47 +03:00
Bogdan 234ad835af Fix tests in TorrentDownloadStationFixture 2023-05-21 10:39:23 +03:00
Bogdan b5a30af422 Bump version to 0.1.6 2023-05-21 10:17:08 +03:00
Mark McDowall 0463193127 Fixed tests in DownloadServiceFixture
(cherry picked from commit d743a8f7e9eac348b4679919f60af5b27457acfd)

Closes #2522
2023-05-21 10:04:17 +03:00
Mark McDowall 8bec6c91c9 Fixed: Don't move seeding torrents in Synology Download Station
(cherry picked from commit 3cd33d3f44097b4cb4fb291bca70a0aa53c4b844)

Closes #2521
2023-05-21 10:03:56 +03:00
Mark McDowall cb511dc19d Fixed: Don't retry grabbing the same release if download client is unavailable
(cherry picked from commit b38c1255dc19d72ee10db4af67e76a4ce95f288f)

Closes #2520
2023-05-21 10:03:05 +03:00
Mark McDowall 34f0c1820a Fixed: Exception when request to SABnzbd times out
(cherry picked from commit f946d78153b85ad726a06a1140143c8beac8766d)

Closes #2518
Closes #2519
2023-05-21 10:01:09 +03:00
Bogdan e33b192881 New: Show current tags for Connections
(cherry picked from commit 2016f11b1c322fcd5f9e2f09328ca19d2114629d)

Fixes #2512
2023-05-20 02:18:34 +03:00
Weblate 00a532c656 Update translation files [skip ci]
Updated by "Cleanup translation files" hook in Weblate.

Co-authored-by: Weblate <noreply@weblate.org>
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/
Translation: Servarr/Readarr
2023-05-19 04:49:15 +03:00
Servarr 501cefa2f4 Automated API Docs update 2023-05-19 04:46:42 +03:00
Qstick 1a3e5fd738 New: Advanced settings toggle in indexer edit/add modal
(cherry picked from commit 94a8ef63044f47b615facbb6e04200bdd3797189)

Fixes #2506
2023-05-19 04:33:28 +03:00
Bogdan 751ade0338 Add forceSave to the OpenAPI docs
(cherry picked from commit ef0b91b45bc7f1295efb03dc44630f1442e18be1)

Fixes #2504
2023-05-19 04:26:16 +03:00
Bogdan e6da9d26fd Fixed: Use indexer errors from response if Content-Type is XML before processing response
(cherry picked from commit 9bdc6183663a3510e53433a30ad701065e7ee9d9)
2023-05-19 04:23:47 +03:00
Bogdan ccd8d93e82 Fixed: Log name of mount point failure
(cherry picked from commit b5050d02d6adbaaaa0f8ae9f8426551e5606fff1)

Fixes #2503
2023-05-18 04:17:16 +03:00
Mark McDowall a0ea9d4750 Fixed: Prevent getting disk space from returning no information when it partially fails
(cherry picked from commit 2c65e4fa41418157d0d27b34c3bab80158cff219)

Closes #2198
Closes #2199
2023-05-18 04:15:44 +03:00
Bogdan a07b9a19ec Sort tags by label
Co-authored-by: Mark McDowall <markus.mcd5@gmail.com>
(cherry picked from commit f32a3cd41c17bb9cb829ac24732cfeec6a18d569)

Fixes #2500
2023-05-18 04:11:50 +03:00
Bogdan 9ba1caaf94 Fix checking for SameTorrent when the indexer is null
(cherry picked from commit 3ece1533d86c559ec1bf7689c908802f31e38e91)
2023-05-18 04:08:27 +03:00
Weblate d90a6ebbb1 Translated using Weblate (Indonesian) [skip ci]
Currently translated at 2.7% (25 of 920 strings)

Translated using Weblate (Ukrainian) [skip ci]

Currently translated at 66.6% (613 of 920 strings)

Translated using Weblate (Slovak) [skip ci]

Currently translated at 15.3% (141 of 920 strings)

Translated using Weblate (Norwegian Bokmål) [skip ci]

Currently translated at 15.7% (145 of 920 strings)

Translated using Weblate (Catalan) [skip ci]

Currently translated at 67.7% (623 of 920 strings)

Translated using Weblate (Chinese (Traditional) (zh_TW)) [skip ci]

Currently translated at 0.7% (7 of 920 strings)

Translated using Weblate (Chinese (Simplified) (zh_CN)) [skip ci]

Currently translated at 98.9% (910 of 920 strings)

Translated using Weblate (Portuguese (Brazil)) [skip ci]

Currently translated at 100.0% (920 of 920 strings)

Translated using Weblate (Portuguese) [skip ci]

Currently translated at 76.9% (708 of 920 strings)

Translated using Weblate (Vietnamese) [skip ci]

Currently translated at 61.4% (565 of 920 strings)

Translated using Weblate (Russian) [skip ci]

Currently translated at 67.6% (622 of 920 strings)

Translated using Weblate (Polish) [skip ci]

Currently translated at 65.6% (604 of 920 strings)

Translated using Weblate (Italian) [skip ci]

Currently translated at 73.0% (672 of 920 strings)

Translated using Weblate (Hungarian) [skip ci]

Currently translated at 98.2% (904 of 920 strings)

Translated using Weblate (Hebrew) [skip ci]

Currently translated at 63.9% (588 of 920 strings)

Translated using Weblate (French) [skip ci]

Currently translated at 78.4% (722 of 920 strings)

Translated using Weblate (Finnish) [skip ci]

Currently translated at 88.3% (813 of 920 strings)

Translated using Weblate (Greek) [skip ci]

Currently translated at 98.8% (909 of 920 strings)

Translated using Weblate (German) [skip ci]

Currently translated at 98.2% (904 of 920 strings)

Translated using Weblate (Spanish) [skip ci]

Currently translated at 67.9% (625 of 920 strings)

Translated using Weblate (Dutch) [skip ci]

Currently translated at 67.2% (619 of 920 strings)

Co-authored-by: Anonymous <noreply@weblate.org>
Co-authored-by: Havok Dan <havokdan@yahoo.com.br>
Co-authored-by: RudyBzh <rudybzh@gmail.com>
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/ca/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/de/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/el/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/es/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/fi/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/fr/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/he/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/hu/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/id/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/it/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/nb_NO/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/nl/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/pl/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/pt/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/pt_BR/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/ru/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/sk/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/uk/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/vi/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/zh_CN/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/zh_TW/
Translation: Servarr/Readarr
2023-05-17 17:42:07 +03:00
Weblate d7575f38a5 Translated using Weblate (French) [skip ci]
Currently translated at 77.2% (711 of 920 strings)

Translated using Weblate (French) [skip ci]

Currently translated at 77.2% (711 of 920 strings)

Translated using Weblate (French) [skip ci]

Currently translated at 77.2% (711 of 920 strings)

Co-authored-by: Anonymous <noreply@weblate.org>
Co-authored-by: RudyBzh <rudybzh@gmail.com>
Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: foXaCe <foxace66@gmail.com>
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/fr/
Translation: Servarr/Readarr
2023-05-16 12:21:08 +03:00
Servarr 833fb9347f Automated API Docs update 2023-05-15 18:10:57 +03:00
Bogdan b44f4237d2 Use string interpolation in formatBytes
(cherry picked from commit 3508cb63dc0b2fbe0eddb00c8396a22705030f6f)

Closes #2495
2023-05-15 18:05:39 +03:00
Bogdan 19eec0cb88 Fix validation for boolean query parameters
(cherry picked from commit 2fecd280016630d5afe2d60e52cbb52338c155b5)

Closes #2493
2023-05-15 18:05:39 +03:00
Anonymous 43367504a4 Translated using Weblate (Turkish) [skip ci]
Currently translated at 62.1% (567 of 912 strings)

Translation: Servarr/Readarr
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/tr/
2023-05-14 21:58:24 -05:00
Anonymous a11b6088dd Translated using Weblate (Romanian) [skip ci]
Currently translated at 60.5% (552 of 912 strings)

Translation: Servarr/Readarr
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/ro/
2023-05-14 21:58:18 -05:00
Anonymous ba6a3ef564 Translated using Weblate (Icelandic) [skip ci]
Currently translated at 62.0% (566 of 912 strings)

Translation: Servarr/Readarr
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/is/
2023-05-14 21:58:10 -05:00
Anonymous d536e2c582 Translated using Weblate (Hungarian) [skip ci]
Currently translated at 98.7% (901 of 912 strings)

Translation: Servarr/Readarr
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/hu/
2023-05-14 21:58:10 -05:00
Anonymous 72f1d1cf4d Translated using Weblate (Hebrew) [skip ci]
Currently translated at 64.1% (585 of 912 strings)

Translation: Servarr/Readarr
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/he/
2023-05-14 21:58:08 -05:00
Anonymous 07a3ee76aa Translated using Weblate (German) [skip ci]
Currently translated at 98.6% (900 of 912 strings)

Translation: Servarr/Readarr
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/de/
2023-05-14 21:58:02 -05:00
Anonymous b34cc0790b Translated using Weblate (Bulgarian) [skip ci]
Currently translated at 62.0% (566 of 912 strings)

Translation: Servarr/Readarr
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/bg/
2023-05-14 21:58:02 -05:00
Anonymous 1c59aa1ac4 Translated using Weblate (Arabic) [skip ci]
Currently translated at 62.1% (567 of 912 strings)

Translation: Servarr/Readarr
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/ar/
2023-05-14 21:58:02 -05:00
Weblate 16753a9fc7 Translated using Weblate (Danish) [skip ci]
Currently translated at 62.5% (570 of 912 strings)

Update translation files [skip ci]

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/readarr/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/da/
Translation: Servarr/Readarr
2023-05-14 21:57:39 -05:00
Weblate 32a62aec2d Translated using Weblate (Danish) [skip ci]
Currently translated at 62.5% (570 of 912 strings)

Update translation files [skip ci]

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/readarr/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/da/
Translation: Servarr/Readarr
2023-05-14 21:52:24 -05:00
Bogdan 045f1a85df Fixed: Prevent unknown settings implementation from failing to deserialize
(cherry picked from commit 0e2cc7851f556e928e52bb2886c7d60c13b0741e)

Log removal of invalid definitions as warnings

(cherry picked from commit 3d61719a2cc9c87ac3c92b5358bb5034aed4c2ff)

(cherry picked from commit 498722b240c17d310863ed604c441a9c507ddcd6)

Closes #2491
2023-05-14 21:09:16 +03:00
Servarr 9f3c0cf914 Automated API Docs update 2023-05-13 22:02:05 +03:00
Mark McDowall b7fb42345c New: Health check for import lists with missing root folders
New: Show missing root folder path in edit for Import List

(cherry picked from commit ae196af2ad368d49fde2358f0987ed7650c7f29c)

Closes #821
2023-05-13 21:37:55 +03:00
Mark McDowall 44673eb4ee Fixed: Quality cutoff updating in UI when adding/removing qualities
(cherry picked from commit fea66cb7bccc7e94523614db38b157fa38f55ea5)

Closes #2051
2023-05-13 21:24:09 +03:00
Qiming Chen ff4594aa08 New: Link indexer to specific download client
Co-authored-by: Qstick <qstick@gmail.com>

(cherry picked from commit 13aaa20f1bf1448fa804738804205cb16f0d91f9)

Closes #1485
2023-05-13 21:06:54 +03:00
bakerboy448 1495fa183f New: Various HealthCheck Improvements
(cherry picked from commit 0f6f6814388b25b8fb3fccb6f33bfa16e962549f)

Closes #2310
2023-05-13 20:42:02 +03:00
Qstick 2f7d7fb220 Fixed: Provider health checks persist after add until next scheduled check
(cherry picked from commit 202449c40c82c6dfd2d15844c578436bbe3c8872)

Closes #2485
2023-05-13 18:56:41 +03:00
Mark McDowall 3f58693780 Fix function name and use out var for try get in DownloadClientProvider
(cherry picked from commit a953d1a6c50bc1ee05a2fc4183d2b4d9aba5b586)
2023-05-13 18:55:05 +03:00
Bogdan d7b1a36a50 Fix NewznabRequestGenerator tests 2023-05-13 04:38:59 +03:00
Bogdan b55c09ba3d Add tier for search by book title only 2023-05-13 04:18:04 +03:00
Bogdan 5358b7f7ec Update UI dependencies 2023-05-13 01:53:27 +03:00
Benjamin Staneck 8e95a87ec3 Add inset to stylelintrc
(cherry picked from commit 6a49f3989a17898c957df8777f0cbb19af647804)

Closes #2456
2023-05-13 01:46:32 +03:00
Benjamin Staneck d6112d1d8e Remove unused babel plugins and fix build with profiling
(cherry picked from commit d79f42351fd3d61d180a224d4b8fb51184eb347e)

Close #2455
2023-05-13 01:45:48 +03:00
Benjamin Staneck 72ef8b91d4 Update all relevant dev tool deps
Delete esformatter

Address lint failures

Delete unknown component property

remove deprecated stylelint rules

Address stylelint violation

Update rimraf

(cherry picked from commit 4aba540b894729c730640f03b2f96c451af2dba0)

Close #2454
Close #2460
2023-05-13 01:43:33 +03:00
Bogdan 9423ddeb34 Fixed: Add search by book title only
Close #2481
2023-05-13 00:27:02 +03:00
Bogdan f7b2bba2e7 Fix SupportedBookSearchParameters in Newznab 2023-05-13 00:21:51 +03:00
Bogdan 5609dfa590 Add Pull Request Labeler 2023-05-12 21:46:59 +03:00
Mark McDowall c43e9eb208 New: Log additional information when processing completed torrents from rTorrent
(cherry picked from commit c7d39579b45adbe1b9da3baff587b2d7b7c9724b)

Closes #2482
2023-05-12 18:39:36 +03:00
Bogdan 0411102f57 Remove unused imports
Closes #2475
2023-05-11 21:28:22 +03:00
Qstick f26fd39709 Use Environment.ProcessPath instead of GetCurrentProcess().MainModule.FileName
GetCurrentProcess().MainModule.FileName is expensive, Environment.ProcessPath added in net6

(cherry picked from commit f928ee7cad304115a002da00e218fb987e02b279)

Close #2260
2023-05-11 21:24:30 +03:00
Qstick 55308bef8b Prefer AsSpan to Substring to avoid unnecessary allocation
(cherry picked from commit 4db10e6283fa5c5c167604a6cdade7299d567f4d)

Close #2263
2023-05-11 21:05:40 +03:00
Qstick 6827ac5670 Use span-based string.Concat to avoid unnecessary allocation
Calling Substring produces a copy of the extracted substring. By using AsSpan instead of Substring and calling the overload of string.Concat that accepts spans, you can eliminate the unnecessary string allocation.

(cherry picked from commit e8aff90582fb50b2d48dea3a4c2139c2745f1554)

Fixes #2262
2023-05-11 21:04:42 +03:00
Mark McDowall 0572bde41e Why rename many files when few file do trick
(cherry picked from commit eaa4a358e8eb93e15203001d16e868e22aded5c3)

Closes #2465
2023-05-11 19:32:24 +03:00
Mark McDowall 0eb88cb516 GracePeriod not Graceperiod
(cherry picked from commit 993c69530ed34460800f40ecf8a0b7bc9a2f7d48)

Closes #2462
2023-05-11 19:31:22 +03:00
Bogdan a39be51d3e Remove empty constructors
Closes #2474
2023-05-11 19:29:57 +03:00
Bogdan b37fd60b85 API key improvements
Fixed: Special characters in API key
New: Add heathcheck for API Key

(cherry picked from commit 9325140b90f8ac625ae5b26075748c22f6f06158)

Closes #2466
2023-05-09 14:17:14 +03:00
ta264 c827859ba0 Fixed: Don't buffer update package to memory when downloading
(cherry picked from commit 63654b99f22b87b42acd699ac5b453f2de20211f)

Closes #2467
2023-05-09 14:09:44 +03:00
Servarr 35b466e4ca Automated API Docs update 2023-05-08 00:45:47 +03:00
Qstick 486ec14ca8 Check for nullable last activity list sync
(cherry picked from commit 4a740acb801a04bc2ead45d272d493f4ec46f7e8)
2023-05-07 23:15:24 +03:00
Qstick 86d1250831 New: Rework List sync interval logic
(cherry picked from commit c522cd120d08757e7e43c2348be4d7f05a254fac)
2023-05-07 23:15:24 +03:00
Qstick 145422e00a Fixed: Don't enforce minimum on single list fetch
(cherry picked from commit 62354dfac83e36f2d6a8cf24fc96fa25392bc438)
2023-05-07 23:15:24 +03:00
Bogdan 3a274bdc4a Fixed: Ensure indexer errors are handled before processing response
(cherry picked from commit 76f93c8415419f0c3dab90582d47a1c9a653263c)

Closes #2458
2023-05-07 23:12:17 +03:00
Bogdan e9ada0b43d Fixed: custom script error when importing some downloads
Co-authored-by: Qstick <376117+Qstick@users.noreply.github.com>

(cherry picked from commit 8f482c534f15c14a9b3097313a4f5e9273549d88)

Closes #2457
2023-05-07 23:11:30 +03:00
Benjamin Staneck a2832cf329 Delete various old config files
Delete `jsconfig.json`

This file actually did nothing since we have a `tsconfig.json`. Behavior does not change since `checkJs` is `false` in both.

Delete `.jsbeautifyrc`

Was not used from what I could tell and we have a ESFormatter config file as well and that is basically the successor.

Delete `.csscomb.json`

Was not used from what I could tell, also the project seems dead, last publish 4 years ago. Also we have stylelint in place that covers CSS.

(cherry picked from commit 0da89478cc7a5eec7a35bff47e34b824487661a1)

Closes #2449
2023-05-07 23:10:14 +03:00
Bogdan bbdecb343b Log invalid config file exceptions
(cherry picked from commit a95317446c452926819ad24f892a00770b1b23fc)

Closes #2448
2023-05-07 23:09:46 +03:00
Benjamin Staneck a857e7c6f4 Add VSCode extension recommendations
To make it easier for new contributors, suggest extensions for the tools we use

(cherry picked from commit 9ebd2f96adb19db7c7357336a37f7b989d21797d)
2023-05-07 23:00:26 +03:00
Benjamin Staneck 906fb30179 Move vscode settings to the frontend folder
Since it applies to all of frontend, I think it makes more sense to have it here instead of src

(cherry picked from commit e12c679cd8961ec9d2ef744761303831b81e64fb)
2023-05-07 22:59:57 +03:00
Stepan Goremykin 28f64d9a46 Migrate to FluentValidation 9
(cherry picked from commit 40e54685b9e83ed24a3979bfe965c453339ad02e)
2023-05-07 17:57:58 +03:00
Mark McDowall 816969d0f5 Add support for custom RetryAfter in RequestLimitReachedException
(cherry picked from commit 47cf8e6430b7f7704ce2f1524fa9e3c8e6f9b47a)
2023-05-07 16:00:40 +03:00
Mark McDowall 63506e5a72 New: Only add version header for API requests
(cherry picked from commit 453891e620459ff38f7bc43b207004b240fc5fb8)
2023-05-07 13:47:10 +03:00
Bogdan 817ea75288 New: Add token authentication for ntfy.sh notifications
Co-authored-by: KucharczykL <lukas@kucharczyk.xyz>

(cherry picked from commit 5bb03a9ddf4d2d33976dfdc39fc70bcf56bf1b49)
2023-05-07 12:13:25 +03:00
Bogdan 7e0eca5657 Fix parameters generation in FileListRequestGenerator 2023-05-07 03:10:00 +03:00
Stevie Robinson 5587af7806 Fixed: Mass Editor Footer on Smaller Screens
(cherry picked from commit 9afcec8b1ffc11da93ae50b73f77f5ebe6e12391)
2023-05-06 17:06:34 -05:00
Servarr a90f5f7b4e Automated API Docs update 2023-05-06 17:00:37 -05:00
6cUbi57z b97d63cb5b New: Add tag support to indexers
(cherry picked from commit c3d54b312ef18b837d54605ea78f1a263fd6900b)
2023-05-07 00:55:46 +03:00
Bogdan 10e230cc06 New: Log content for invalid torrent files
(cherry picked from commit e3f71ca79c3c92015e6c3fc292ae3124dab63410)
2023-05-06 23:26:31 +03:00
Bogdan 5c5c362d96 Update UI Dependencies 2023-05-06 21:08:11 +03:00
Mark McDowall 0aec2382fe Switch to eslint for linting
(cherry picked from commit a18c3774661f466727ab46315211aecb43ef1def)
2023-05-06 21:08:11 +03:00
Bogdan 677d5d3374 Revert "Fixed: Indexer tags"
This reverts commit 761a6a9136.
2023-05-06 20:11:17 +03:00
Bogdan ca0f2be194 Fix NewznabRequestGenerator tests 2023-05-06 19:46:34 +03:00
Mark McDowall 780df3250f Use string interpolation for Newznab request generation
(cherry picked from commit ba9651b241510ff585aaac689dc0d0be4f7fbcf3)

Closes #1945
2023-05-06 19:38:33 +03:00
Bogdan 508b2d7c8d Revert "Fixed: Don't enforce minimum on single list fetch"
This reverts commit c34418b984.
2023-05-06 18:29:43 +03:00
bakerboy448 96aeb022ab Fixed: Escape Characters as needed for *znab queries
(cherry picked from commit f678775e5c3deb0c520f88a137198331fee2831f)
2023-05-06 17:10:52 +03:00
Marty Zalega b27f852154 Don't lowercase UrlBase in ConfigFileProvider
UrlBase should honour the case it is given.

(cherry picked from commit e1de523c89f7649e64f520b090bbdb2f56cc4b85)
2023-05-06 17:04:50 +03:00
Mark McDowall 3c03413d5a New: Return static response to requests while app is starting
(cherry picked from commit 303fc5d786ccf2ad14c8523fc239696c5d37ea53)
2023-05-06 16:59:53 +03:00
Qstick c34418b984 Fixed: Don't enforce minimum on single list fetch
(cherry picked from commit 62354dfac83e36f2d6a8cf24fc96fa25392bc438)
2023-05-06 16:52:19 +03:00
Mark McDowall 761a6a9136 Fixed: Indexer tags
(cherry picked from commit 6f5467e39e059bdfec0d7dd49485028195c38586)
2023-05-06 16:49:49 +03:00
Qstick 92c59e158d Convert method to static that doesn't use instance data
(cherry picked from commit a42f97229acb713719c616851db572100f319ad7)
2023-05-06 16:47:00 +03:00
Lars 5bc917c9dc New: Option to use Telegram topics for notifications
(cherry picked from commit c8933d812490ba375c6f7e07cd4355921dc513ac)
2023-05-06 16:42:14 +03:00
Mark McDowall 7c03ca5cdf Fixed IsValidPath usages
(cherry picked from commit 033936dce7e13c8ab2e38407782dc9cdd949460e)

Closes #2313
2023-05-06 15:28:28 +03:00
Mark McDowall b3cf903a3b New: Improve path validation when handling paths from different OSes
(cherry picked from commit 0321368cc392d7a0a488409bf6bd586ba45497af)

Closes #2309
2023-05-06 15:26:15 +03:00
Stepan Goremykin a4930474a5 Use MinBy and MaxBy instead of OrderBy + First
(cherry picked from commit 6ea3d8c127eafbcf9d1b6e9338b737e91e256875)

Closes #2323
2023-05-06 15:00:25 +03:00
Mark McDowall 06baae060d New: More information on on why hardlinks should be used over copying
(cherry picked from commit 83a9d15ff8721c8effdc2c8055e37bfb757022d4)

Closes #2352
2023-05-06 14:51:04 +03:00
Bogdan 4e5c7bc0a3 New: Add version and timestamp to backup archive
(cherry picked from commit ed3d880974ae6a1430866eebaf72533f35258f6f)

Closes #2357
2023-05-06 14:21:09 +03:00
Bogdan a939adb2b1 Create cache db in integration tests 2023-05-05 22:59:54 +03:00
Bogdan 6858db686c Fix tests 2023-05-05 15:00:22 +03:00
Mark McDowall 7a5e2c248c Fixed: File browser
(cherry picked from commit f7ce5c7b115ea0d12ab63f19960c473e09e30f3d)
2023-05-05 14:54:17 +03:00
Bogdan f2d57c6c5e Update caniuse-lite 2023-05-05 14:53:00 +03:00
Qstick 32c9734d70 Auto-reply for Log Label
(cherry picked from commit d851ecdf2f826f25b9d2d67d3b7e9e3642bc5299)
2023-05-04 20:17:38 +03:00
Bogdan 2d732f0454 Bump dotnet to 6.0.16 2023-05-04 14:55:29 +03:00
Mark McDowall 20835291e6 New: Report health error if Recycling Bin folder is not writable
(cherry picked from commit 8c50cd061e691914d9fcce119b9f838f1276950c)
2023-05-04 06:51:08 +03:00
Bogdan f5d6b2de11 Increase retry count in CachedFixture 2023-05-03 20:00:40 +03:00
Lars d51f7cc02b New: Filter Sonarr synchronization based on Root Folders
(cherry picked from commit ff3327483a233ebe54d8f178c355abaeb6f9d11e)

Closes #2399
2023-05-03 12:04:23 +03:00
bakerboy448 8d41d0106a add trace log checkbox to bug report
(cherry picked from commit 6dc558cbf6ad4155ed35d4111e8368dcf57a8826)

Closes #2428
Closes #2429
2023-05-03 11:09:00 +03:00
santschi fd08e9d2c4 Fixed: Check for unexpected parent tags to fix GoodReads Series 2023-05-02 22:26:31 +03:00
Mark McDowall a1ee6aa8ac Fixed: Manual Import without selecting Import Mode
Closes #5036

(cherry picked from commit b542dd0ddd6463321a0d75c1ce4b1ecec679f213)
2023-05-02 16:28:34 +03:00
Bogdan ddbb8b211f bump github actions to latest [skip ci]
Fix for nodejs 12 deprecation
2023-05-02 15:17:14 +03:00
Bogdan bea61edb4e Fix downloading releases without an indexer
(cherry picked from commit ca8b26138e3ebd793cc1a5fd51522ce3eda8a2e1)

Closes #2426
2023-05-02 09:18:13 +03:00
Bogdan db7bb14491 Remove BasicAuthString 2023-04-30 21:33:48 +03:00
Bogdan 7a7039b1f7 Build download requests from indexer implementation
(cherry picked from commit a0b08f6c6f106d92cdb12fbb959dd2605c22fe6a)
2023-04-30 21:33:48 +03:00
Benjamin Staneck 1978a726bb Fixed some aria violations
(cherry picked from commit 7aa846343815105e3576e6aa20eac64fcb0edf8d)

Closes #2422
2023-04-30 11:36:46 +03:00
Bogdan 2412b38333 Fix loading eslintrc
(cherry picked from commit b0773ae7e3f860ff381d8d98d23d612609048e38)

Closes #2424
2023-04-30 11:34:07 +03:00
Benjamin Staneck dbed46dd5b New: Updated button and calendar outline colors for dark theme
(cherry picked from commit 5d873fafec07c9d67ad8d2c16eecea195a78eecf)
2023-04-30 11:31:53 +03:00
Weblate 63670f55b0 Update translation files [skip ci]
Updated by "Cleanup translation files" hook in Weblate.

Co-authored-by: Weblate <noreply@weblate.org>
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/
Translation: Servarr/Readarr
2023-04-29 23:38:54 +03:00
Mark McDowall 60cc22b543 Fixed: Permissions after installing on Windows and opening Firewall port
(cherry picked from commit ff2e8ffc372a34d08028db3c49f603cdfb87d832)
2023-04-29 23:36:36 +03:00
Weblate 3229d3ef59 Update translation files [skip ci]
Updated by "Cleanup translation files" hook in Weblate.

Co-authored-by: Weblate <noreply@weblate.org>
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/
Translation: Servarr/Readarr
2023-04-29 23:35:07 +03:00
Bakerboy448 349a19855a Fixed: Missing Translates 2023-04-29 23:32:25 +03:00
Bogdan b8b364b48e Bump node version to 16.x 2023-04-29 23:23:39 +03:00
Stevie Robinson 571805d05f Fixed: Border hover colors in dark theme
(cherry picked from commit bead56893f080a1ac1df230908314f3ba8e0c6ce)

Closes #2385
2023-04-29 23:16:12 +03:00
Bogdan 8de7f48b80 Fixed: Config file settings do not need to be case-sensitive
(cherry picked from commit 2107635b7e7e5392624f2957af7d7b88ba6be283)

Closes #2351
2023-04-29 23:07:06 +03:00
Bogdan 37a3799c66 Fixed: Ensure default config file on starting app
(cherry picked from commit e747af9f448368e2add0d2869a3749efa9e93ae0)

(cherry picked from commit 5326a102e23eacfc1132eb544a92af737a531df5)
2023-04-29 23:05:18 +03:00
Mark McDowall b1d22b6339 Fixed: Number input changing while scrolling
(cherry picked from commit cc46ed56b4b70fe1f1443c0a927383f19c989c47)
2023-04-29 23:04:04 +03:00
Bogdan a28fd4415e Rename to FolderChmodValidator to match class name
(cherry picked from commit 6f614b7d476216466d0cb021c9fdc425d0fa35f3)
2023-04-29 23:03:35 +03:00
Benjamin Staneck c95ffdc4d6 Update core-js and use defaults for browserlist
(cherry picked from commit de4cfefde4d00aba829356541b02e8f9a7729977)

Closes #2411
2023-04-29 23:02:40 +03:00
Benjamin Staneck e5d8d01105 Update webpack and webpack-cli
(cherry picked from commit 8bcaa17e25161aeedd9ca8488a4bb6f4c423de2b)

Closes #2408
2023-04-29 23:02:40 +03:00
Servarr bb9bf743d8 Automated API Docs update 2023-04-29 22:56:15 +03:00
Fabricio Silva 99d3e80d0c Fixed: Edit Quality Profile not opening
Closes #2412

(cherry picked from commit 83cee4b00e8c64d749d2ff1d8575d31570beecba)
2023-04-29 22:53:37 +03:00
Bogdan 640c0f5d52 Remove CustomSchemaIds for swagger 2023-04-29 22:47:58 +03:00
Bogdan 861e569422 Bump Swashbuckle to 6.5.0 2023-04-29 21:31:58 +03:00
Qstick d7eedb6079 Update .gitignore 2023-04-29 13:27:15 -05:00
Benjamin Staneck 0a1066eee7 Remove unused gulpFile
(cherry picked from commit 0d48ebe8dedb637a133c5234bd7d9fd8963111af)
2023-04-29 21:26:29 +03:00
Bogdan 0f9d8d61a2 Bump Swashbuckle to 6.5.0 2023-04-29 21:23:15 +03:00
Qstick a2c9ed0b59 Fix pipeline errors 2023-04-29 02:10:59 -05:00
Bogdan ea91b3df17 New: (Notifications) Add Apprise 2023-04-29 01:05:18 -05:00
Robin Dadswell f9d5fa37a3 Frontend Placeholders from the Backend
(cherry picked from commit 69f5963f6f1e80e3f598bdb13792b7413fcc13b1)
2023-04-29 01:05:18 -05:00
Weblate fc6a02c2e2 Translated using Weblate (Portuguese (Brazil)) [skip ci]
Currently translated at 100.0% (901 of 901 strings)

Translated using Weblate (Chinese (Simplified) (zh_CN)) [skip ci]

Currently translated at 99.0% (892 of 901 strings)

Translated using Weblate (German) [skip ci]

Currently translated at 99.2% (894 of 901 strings)

Translated using Weblate (German) [skip ci]

Currently translated at 99.3% (895 of 901 strings)

Translated using Weblate (Czech) [skip ci]

Currently translated at 61.8% (557 of 901 strings)

Translated using Weblate (French) [skip ci]

Currently translated at 76.4% (689 of 901 strings)

Translated using Weblate (Portuguese) [skip ci]

Currently translated at 76.6% (691 of 901 strings)

Translated using Weblate (Hebrew) [skip ci]

Currently translated at 63.8% (575 of 901 strings)

Translated using Weblate (Norwegian Bokmål) [skip ci]

Currently translated at 15.0% (136 of 901 strings)

Translated using Weblate (Italian) [skip ci]

Currently translated at 73.1% (659 of 901 strings)

Translated using Weblate (Portuguese (Brazil)) [skip ci]

Currently translated at 100.0% (901 of 901 strings)

Translated using Weblate (Portuguese (Brazil)) [skip ci]

Currently translated at 100.0% (901 of 901 strings)

Translated using Weblate (Croatian) [skip ci]

Currently translated at 11.8% (107 of 901 strings)

Translated using Weblate (Croatian) [skip ci]

Currently translated at 10.9% (99 of 901 strings)

Translated using Weblate (Croatian) [skip ci]

Currently translated at 10.5% (95 of 901 strings)

Translated using Weblate (Chinese (Simplified) (zh_CN)) [skip ci]

Currently translated at 99.0% (892 of 901 strings)

Translated using Weblate (Portuguese (Brazil)) [skip ci]

Currently translated at 100.0% (901 of 901 strings)

Translated using Weblate (Portuguese) [skip ci]

Currently translated at 76.5% (690 of 901 strings)

Translated using Weblate (Spanish) [skip ci]

Currently translated at 67.3% (607 of 901 strings)

Translated using Weblate (Spanish) [skip ci]

Currently translated at 67.3% (607 of 901 strings)

Translated using Weblate (Spanish) [skip ci]

Currently translated at 67.3% (607 of 901 strings)

Translated using Weblate (Croatian) [skip ci]

Currently translated at 9.6% (87 of 901 strings)

Translated using Weblate (Croatian) [skip ci]

Currently translated at 9.6% (87 of 901 strings)

Translated using Weblate (Catalan) [skip ci]

Currently translated at 67.0% (604 of 901 strings)

Translated using Weblate (Portuguese (Brazil)) [skip ci]

Currently translated at 100.0% (901 of 901 strings)

Translated using Weblate (Ukrainian) [skip ci]

Currently translated at 66.1% (596 of 901 strings)

Translated using Weblate (Catalan) [skip ci]

Currently translated at 66.9% (603 of 901 strings)

Translated using Weblate (Portuguese) [skip ci]

Currently translated at 76.5% (690 of 901 strings)

Translated using Weblate (Vietnamese) [skip ci]

Currently translated at 61.7% (556 of 901 strings)

Translated using Weblate (Turkish) [skip ci]

Currently translated at 61.8% (557 of 901 strings)

Translated using Weblate (Thai) [skip ci]

Currently translated at 61.7% (556 of 901 strings)

Translated using Weblate (Swedish) [skip ci]

Currently translated at 88.4% (797 of 901 strings)

Translated using Weblate (Russian) [skip ci]

Currently translated at 67.2% (606 of 901 strings)

Translated using Weblate (Romanian) [skip ci]

Currently translated at 60.1% (542 of 901 strings)

Translated using Weblate (Polish) [skip ci]

Currently translated at 65.5% (591 of 901 strings)

Translated using Weblate (Korean) [skip ci]

Currently translated at 61.9% (558 of 901 strings)

Translated using Weblate (Japanese) [skip ci]

Currently translated at 61.7% (556 of 901 strings)

Translated using Weblate (Italian) [skip ci]

Currently translated at 73.1% (659 of 901 strings)

Translated using Weblate (Icelandic) [skip ci]

Currently translated at 61.7% (556 of 901 strings)

Translated using Weblate (Hungarian) [skip ci]

Currently translated at 99.3% (895 of 901 strings)

Translated using Weblate (Hindi) [skip ci]

Currently translated at 61.7% (556 of 901 strings)

Translated using Weblate (Hebrew) [skip ci]

Currently translated at 63.7% (574 of 901 strings)

Translated using Weblate (French) [skip ci]

Currently translated at 76.3% (688 of 901 strings)

Translated using Weblate (Finnish) [skip ci]

Currently translated at 88.9% (801 of 901 strings)

Translated using Weblate (German) [skip ci]

Currently translated at 99.3% (895 of 901 strings)

Translated using Weblate (Danish) [skip ci]

Currently translated at 62.1% (560 of 901 strings)

Translated using Weblate (Czech) [skip ci]

Currently translated at 61.8% (557 of 901 strings)

Translated using Weblate (Bulgarian) [skip ci]

Currently translated at 61.7% (556 of 901 strings)

Translated using Weblate (Arabic) [skip ci]

Currently translated at 61.8% (557 of 901 strings)

Translated using Weblate (Spanish) [skip ci]

Currently translated at 67.0% (604 of 901 strings)

Translated using Weblate (Dutch) [skip ci]

Currently translated at 67.2% (606 of 901 strings)

Added translation using Weblate (Tamil) [skip ci]

Added translation using Weblate (Indonesian) [skip ci]

Added translation using Weblate (Estonian) [skip ci]

Added translation using Weblate (Serbian) [skip ci]

Added translation using Weblate (Croatian) [skip ci]

Added translation using Weblate (Bosnian) [skip ci]

Added translation using Weblate (Spanish (Mexico)) [skip ci]

Co-authored-by: Anonymous <noreply@weblate.org>
Co-authored-by: Bendik Remoy <Bendikremoy@hotmail.com>
Co-authored-by: Cassio Rizzi <clrizzi@gmail.com>
Co-authored-by: Deflector8249 <lh2jwko5@gomail.me>
Co-authored-by: Florian <sephrat.flo@gmail.com>
Co-authored-by: Havok Dan <havokdan@yahoo.com.br>
Co-authored-by: Lizandra Candido da Silva <lizandra.c.s@gmail.com>
Co-authored-by: Nir Israel Hen <nirisraelh@gmail.com>
Co-authored-by: Qstick <qstick@gmail.com>
Co-authored-by: RicardoVelaC <ricardovelac@gmail.com>
Co-authored-by: SHUAI.W <x@ousui.org>
Co-authored-by: Sascha Brockel <gsydaydreamer@gmail.com>
Co-authored-by: TheHrle <Hpranjkovic@gmail.com>
Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: dtalens <databio@gmail.com>
Co-authored-by: federicofortini <federico.fortini@yahoo.it>
Co-authored-by: fiego14 <alvaross_96@hotmail.com>
Co-authored-by: libsu <libsu@qq.com>
Co-authored-by: pedrom20 <pedrom20@gmail.com>
Co-authored-by: tomas15420 <tomas15420@gmail.com>
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/ar/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/bg/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/ca/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/cs/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/da/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/de/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/es/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/fi/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/fr/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/he/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/hi/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/hr/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/hu/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/is/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/it/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/ja/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/ko/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/nb_NO/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/nl/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/pl/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/pt/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/pt_BR/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/ro/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/ru/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/sv/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/th/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/tr/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/uk/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/vi/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/zh_CN/
Translation: Servarr/Readarr
2023-04-29 01:01:55 -05:00
Benjamin Staneck 362401a847 Fix typo in calendarBackgroundColor CSS variable
(cherry picked from commit e34d2504400faaa12c7fc8572264477ccd58619d)
2023-04-29 01:00:33 -05:00
Benjamin Staneck e495f8bcc9 Use minified jquery
(cherry picked from commit bb77bb640c0529ca3e6386ec657e64ebafad02f4)
2023-04-29 01:00:04 -05:00
Bogdan 934563656c Serve plain text files (eg. logs) as UTF-8 2023-04-29 00:58:39 -05:00
bakerboy448 6323cae373 Fixed: Default update branch as develop 2023-04-23 11:11:43 -07:00
Bogdan 55999a8bad Rename CC to Cc 2023-04-16 19:53:01 -05:00
Qstick 0b3d49db32 Remove mono process detection
(cherry picked from commit 5a046026725084bc880a7b63d7105dcf4d882128)
2023-04-16 19:52:11 -05:00
Bakerboy448 b3cc5740ee Fixed: DrunkenSlug Default URL
(cherry picked from commit 128f62488d8ec8c4efd096f6cb03ed1d2ce1f89a)
2023-04-13 20:58:53 -05:00
Qstick e5ad7407a7 Update API Docs 2023-04-03 07:30:35 -05:00
santschi d77aa82961 Fix: Stop ImageUrl from being overwritten 2023-03-12 16:45:44 -05:00
cicomalieran c7a4060c4c Fixed: Processing very long ETA from Transmission
(cherry picked from commit 9800bd6b439257e73e3545e125cd03900a3036bb)
2023-03-12 16:13:18 -05:00
Qstick 64e6f98683 Bump version to 0.1.5 2023-02-25 20:58:09 -06:00
Qstick dcc2a14c60 Only send monitored edition in webhook payload. 2023-02-25 13:08:13 -06:00
Qstick 22781b62e6 New: Add Editions to Webhook Payloads 2023-02-25 12:51:23 -06:00
Qstick d93329a3fd Fixed: Installer hangs during service removal
Fixes #2223
2023-02-25 10:30:22 -06:00
Qstick ef20abba7a New: Additional custom filter predicates for strings
(cherry picked from commit 6082253166b67d59d7907d83c362116d47bcdaeb)
2023-02-25 10:15:54 -06:00
Qstick d647b47e88 New: Add GoodreadsId to book object in webhook events 2023-02-22 22:19:36 -06:00
Qstick e22f284a14 New: Differentiate webhook delete event types 2023-02-22 22:19:16 -06:00
Qstick 7ac8b5600e Bump version to 0.1.4 2023-02-12 21:28:25 -06:00
Qstick 5039ba823c Make migration 027 Postgres friendly 2023-02-11 14:39:59 -06:00
Weblate 427176d7d2 Translated using Weblate (Greek) [skip ci]
Currently translated at 100.0% (901 of 901 strings)

Translated using Weblate (Greek) [skip ci]

Currently translated at 100.0% (901 of 901 strings)

Translated using Weblate (French) [skip ci]

Currently translated at 75.4% (680 of 901 strings)

Co-authored-by: KevoM <lilmarsu@gmail.com>
Co-authored-by: Qstick <qstick@gmail.com>
Co-authored-by: Vasilis Ieropoulos <kirav96@gmail.com>
Co-authored-by: Weblate <noreply@weblate.org>
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/el/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/fr/
Translation: Servarr/Readarr
2023-02-11 11:35:54 -06:00
Mark McDowall 6a2fd3a4e6 Fixed: Creating new Delay Profile
(cherry picked from commit 81435dabc7a46e82c34101b4a8fe9120c875d913)
2023-02-11 11:31:18 -06:00
Qstick e03390c8d4 Delete azuresync.yml 2023-02-11 10:37:00 -06:00
Qstick 4081f3efc2 Fixed: Settings fail to save for some auth setups
(cherry picked from commit a379d0c403449b2623f84aa6851c850971528ff8)
2023-02-07 20:28:34 -06:00
Qstick 9cec9ac428 Fixed: Remove old OMG implementation and Rarbg
Fixes #1809
Fixes #1102
Closes #2169
2023-02-05 11:05:05 -06:00
Weblate 8bd7194121 Translated using Weblate (Portuguese (Brazil)) [skip ci]
Currently translated at 100.0% (901 of 901 strings)

Translated using Weblate (Ukrainian) [skip ci]

Currently translated at 66.2% (590 of 890 strings)

Translated using Weblate (Slovak) [skip ci]

Currently translated at 14.8% (132 of 890 strings)

Translated using Weblate (Norwegian Bokmål) [skip ci]

Currently translated at 15.0% (134 of 890 strings)

Translated using Weblate (Catalan) [skip ci]

Currently translated at 67.0% (597 of 890 strings)

Translated using Weblate (Chinese (Simplified) (zh_CN)) [skip ci]

Currently translated at 99.8% (889 of 890 strings)

Translated using Weblate (Portuguese (Brazil)) [skip ci]

Currently translated at 100.0% (890 of 890 strings)

Translated using Weblate (Portuguese) [skip ci]

Currently translated at 76.8% (684 of 890 strings)

Translated using Weblate (Vietnamese) [skip ci]

Currently translated at 61.9% (551 of 890 strings)

Translated using Weblate (Turkish) [skip ci]

Currently translated at 62.0% (552 of 890 strings)

Translated using Weblate (Thai) [skip ci]

Currently translated at 61.9% (551 of 890 strings)

Translated using Weblate (Swedish) [skip ci]

Currently translated at 88.9% (792 of 890 strings)

Translated using Weblate (Russian) [skip ci]

Currently translated at 67.4% (600 of 890 strings)

Translated using Weblate (Romanian) [skip ci]

Currently translated at 60.3% (537 of 890 strings)

Translated using Weblate (Polish) [skip ci]

Currently translated at 65.7% (585 of 890 strings)

Translated using Weblate (Korean) [skip ci]

Currently translated at 62.1% (553 of 890 strings)

Translated using Weblate (Japanese) [skip ci]

Currently translated at 61.9% (551 of 890 strings)

Translated using Weblate (Italian) [skip ci]

Currently translated at 73.3% (653 of 890 strings)

Translated using Weblate (Icelandic) [skip ci]

Currently translated at 61.9% (551 of 890 strings)

Translated using Weblate (Hungarian) [skip ci]

Currently translated at 99.8% (889 of 890 strings)

Translated using Weblate (Hindi) [skip ci]

Currently translated at 61.9% (551 of 890 strings)

Translated using Weblate (Hebrew) [skip ci]

Currently translated at 63.7% (567 of 890 strings)

Translated using Weblate (French) [skip ci]

Currently translated at 75.9% (676 of 890 strings)

Translated using Weblate (Finnish) [skip ci]

Currently translated at 89.3% (795 of 890 strings)

Translated using Weblate (German) [skip ci]

Currently translated at 99.8% (889 of 890 strings)

Translated using Weblate (Danish) [skip ci]

Currently translated at 62.3% (555 of 890 strings)

Translated using Weblate (Czech) [skip ci]

Currently translated at 62.0% (552 of 890 strings)

Translated using Weblate (Bulgarian) [skip ci]

Currently translated at 61.9% (551 of 890 strings)

Translated using Weblate (Arabic) [skip ci]

Currently translated at 62.0% (552 of 890 strings)

Translated using Weblate (Spanish) [skip ci]

Currently translated at 67.1% (598 of 890 strings)

Translated using Weblate (Dutch) [skip ci]

Currently translated at 67.4% (600 of 890 strings)

Translated using Weblate (Greek) [skip ci]

Currently translated at 100.0% (890 of 890 strings)

Translated using Weblate (Greek) [skip ci]

Currently translated at 100.0% (890 of 890 strings)

Translated using Weblate (Greek) [skip ci]

Currently translated at 66.0% (588 of 890 strings)

Translated using Weblate (Greek) [skip ci]

Currently translated at 66.0% (588 of 890 strings)

Translated using Weblate (Portuguese (Brazil)) [skip ci]

Currently translated at 100.0% (884 of 884 strings)

Translated using Weblate (Danish) [skip ci]

Currently translated at 62.2% (550 of 884 strings)

Translated using Weblate (Greek) [skip ci]

Currently translated at 64.0% (564 of 881 strings)

Translated using Weblate (Finnish) [skip ci]

Currently translated at 89.2% (786 of 881 strings)

Translated using Weblate (Ukrainian) [skip ci]

Currently translated at 65.9% (581 of 881 strings)

Translated using Weblate (Slovak) [skip ci]

Currently translated at 14.7% (130 of 881 strings)

Translated using Weblate (Norwegian Bokmål) [skip ci]

Currently translated at 15.0% (133 of 881 strings)

Translated using Weblate (Catalan) [skip ci]

Currently translated at 67.0% (591 of 881 strings)

Translated using Weblate (Chinese (Simplified) (zh_CN)) [skip ci]

Currently translated at 100.0% (881 of 881 strings)

Translated using Weblate (Portuguese (Brazil)) [skip ci]

Currently translated at 100.0% (881 of 881 strings)

Translated using Weblate (Portuguese) [skip ci]

Currently translated at 76.9% (678 of 881 strings)

Translated using Weblate (Vietnamese) [skip ci]

Currently translated at 62.3% (549 of 881 strings)

Translated using Weblate (Turkish) [skip ci]

Currently translated at 62.4% (550 of 881 strings)

Translated using Weblate (Thai) [skip ci]

Currently translated at 62.3% (549 of 881 strings)

Translated using Weblate (Swedish) [skip ci]

Currently translated at 89.6% (790 of 881 strings)

Translated using Weblate (Russian) [skip ci]

Currently translated at 67.1% (592 of 881 strings)

Translated using Weblate (Romanian) [skip ci]

Currently translated at 60.7% (535 of 881 strings)

Translated using Weblate (Polish) [skip ci]

Currently translated at 65.8% (580 of 881 strings)

Translated using Weblate (Korean) [skip ci]

Currently translated at 62.5% (551 of 881 strings)

Translated using Weblate (Japanese) [skip ci]

Currently translated at 62.3% (549 of 881 strings)

Translated using Weblate (Italian) [skip ci]

Currently translated at 73.4% (647 of 881 strings)

Translated using Weblate (Icelandic) [skip ci]

Currently translated at 62.3% (549 of 881 strings)

Translated using Weblate (Hindi) [skip ci]

Currently translated at 62.3% (549 of 881 strings)

Translated using Weblate (Hebrew) [skip ci]

Currently translated at 63.7% (562 of 881 strings)

Translated using Weblate (French) [skip ci]

Currently translated at 76.1% (671 of 881 strings)

Translated using Weblate (Finnish) [skip ci]

Currently translated at 88.6% (781 of 881 strings)

Translated using Weblate (Greek) [skip ci]

Currently translated at 63.1% (556 of 881 strings)

Translated using Weblate (Danish) [skip ci]

Currently translated at 62.3% (549 of 881 strings)

Translated using Weblate (Czech) [skip ci]

Currently translated at 62.4% (550 of 881 strings)

Translated using Weblate (Bulgarian) [skip ci]

Currently translated at 62.3% (549 of 881 strings)

Translated using Weblate (Arabic) [skip ci]

Currently translated at 62.4% (550 of 881 strings)

Translated using Weblate (Spanish) [skip ci]

Currently translated at 67.1% (592 of 881 strings)

Translated using Weblate (Dutch) [skip ci]

Currently translated at 67.5% (595 of 881 strings)

Translated using Weblate (Chinese (Simplified) (zh_CN)) [skip ci]

Currently translated at 99.8% (880 of 881 strings)

Co-authored-by: Anonymous <noreply@weblate.org>
Co-authored-by: Havok Dan <havokdan@yahoo.com.br>
Co-authored-by: Oskari Lavinto <olavinto@protonmail.com>
Co-authored-by: Vasilis Ieropoulos <kirav96@gmail.com>
Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: hhjuhl <hans@kopula.dk>
Co-authored-by: zhuzhe1983 <zhuzhe1983@gmail.com>
Co-authored-by: 無情天 <kofzhanganguo@126.com>
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/ar/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/bg/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/ca/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/cs/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/da/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/de/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/el/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/es/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/fi/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/fr/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/he/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/hi/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/hu/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/is/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/it/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/ja/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/ko/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/nb_NO/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/nl/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/pl/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/pt/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/pt_BR/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/ro/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/ru/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/sk/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/sv/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/th/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/tr/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/uk/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/vi/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/zh_CN/
Translation: Servarr/Readarr
2023-02-05 10:52:58 -06:00
Qstick 8c97df1be6 Fixed: Book status always green on Book Index page 2023-02-04 23:23:24 -06:00
Qstick d556b77f9d Fixed: Readarr to Readarr import list adds random results 2023-02-04 22:25:44 -06:00
Mark McDowall 8b9cada59e Don't return early after re-running checks after startup grace period
Closes #1600

(cherry picked from commit 06464d720c0d31c22865629062d6da0911d2a01f)
2023-02-04 21:28:45 -06:00
Mark McDowall a18bbeee5a Fixed: Delay health check notifications on startup
Closes #1598

(cherry picked from commit 07f0db477a91b39c1f4b884775c08a55ada487cf)
2023-02-04 21:28:45 -06:00
Qstick 6f17057f31 Fixed: Queue conflicts with the same download in multiple clients
Closes #1220
2023-02-04 21:28:45 -06:00
Qstick 4d3e83ec15 Fixed: Download client name in history details
Closes #1413
2023-02-04 21:28:45 -06:00
Zack Eckersley Pallett 4034250a33 New: Add backup size information
Closes #1533
2023-02-04 21:28:45 -06:00
Qstick d83c02fe9f New: Notifiarr and Webhook Updates 2023-02-04 19:30:54 -06:00
Qstick b4112dc4bb Fixed: Correctly handle Content-Encoding headers 2023-02-04 19:30:54 -06:00
Mark McDowall a463166bb6 Fixed: Clearing logs not updating UI once complete
Closes #1566

(cherry picked from commit 56b3acddc9f50f59c78c03ca072fe802752b88a7)
2023-02-04 19:30:54 -06:00
Qstick d7d57f0162 Updated some JS dependencies
Closes #2083
2023-02-04 19:30:54 -06:00
Qstick 8258323307 Add Volta node config
Closes #1848
Closes #1849
Closes #1935
2023-02-04 19:30:54 -06:00
Qstick d15c42957a New: Add import date to upgrads in CustomScript and Webhook connections
Closes #1827
2023-02-04 19:30:54 -06:00
Qstick df0a5f004d Fixed: Improve moving file to location where another one exists
Closes #1762
2023-02-04 19:30:54 -06:00
Qstick d8f11bc3cb Replace unicode brackets 2023-02-04 19:30:54 -06:00
Qstick 71c2b1aeec Fixed: Migrating case-sensitive Preferred Word REGEX to Custom Formats
Closes #2162
2023-02-04 19:30:54 -06:00
Mark McDowall 6f7c6721db Fixed: Ping endpoint no longer requires authentication
(cherry picked from commit ad42d4a14c814d5911dafb5e78e97ec09b4b13a5)
2023-02-04 18:15:15 -06:00
Mark McDowall 388fb52644 Fixed cutoff unmet integration tests
Closes #1692

(cherry picked from commit c1e5b7f642d03414f7c5587d4db377ef979f2067)
2023-02-03 21:11:54 -06:00
Qstick de46816cdb Fixed: Cutoff Unmet showing items above lowest accepted quality when upgrades are disabled
Closes #1688
2023-02-03 21:11:54 -06:00
Qstick dbb6ef7664 New: Custom Formats
Co-Authored-By: ta264 <ta264@users.noreply.github.com>
2023-02-03 21:11:54 -06:00
Qstick 4a3062deae Bump version to 0.1.3 2023-02-03 20:50:27 -06:00
Qstick bc7bf6b269 Fixed: Ignore deleted books won't save
Fixes #1505
2023-02-02 22:11:58 -06:00
Qstick 01b4ee1a02 Fixed: Search selected searches all
Fixes #2155
2023-02-02 21:35:01 -06:00
Qstick 3825ecd393 Fixed: Manual Import Reprocessing 2023-01-24 11:51:34 -06:00
Qstick bc63587428 New: Add support for Simplepush notifications
Closes #1989
Closes #1990

Co-Authored-By: Timm Schäuble <Timm.Schaeuble@gmail.com>
(cherry picked from commit 4c7df31070fbd370b26dbcc07131f21eb88d35fc)
2023-01-24 11:51:34 -06:00
Qstick 1caa49c895 Update UI Packages
Align with Lidarr
2023-01-24 11:51:34 -06:00
Qstick fbdc9f3a13 New: OnApplicationUpdate Notifications
Fixes #1422

(cherry picked from commit 9e175e28efcfc6ac3e414649b955a10fb0e951e7)
2023-01-24 11:51:34 -06:00
Qstick f5847e9e5b New: Show previously installed version in Updates UI
Closes #308
Closes #309
Closes #313
Closes #319
Closes #460
Closes #608

Co-Authored-By: Taloth <Taloth@users.noreply.github.com>
2023-01-24 11:51:34 -06:00
Qstick 874b4fc401 New: Ignore #recycle folders (Synology Recycle bin folder)
Co-Authored-By: Mark McDowall <markus101@users.noreply.github.com>
2023-01-24 11:51:34 -06:00
Qstick ec75aa6378 Bump Npgsql to 6.0.8 2023-01-23 21:37:27 -06:00
Qstick 31aaec4b10 Don't block task queue for queued update task when long running tasks queued
Fixes #1818

Co-Authored-By: Mark McDowall <markus101@users.noreply.github.com>
2023-01-23 21:28:05 -06:00
Qstick 6199cb2999 Fixed: Schedule refresh and process monitored download tasks at high priority
Fixes #1542
Fixes #1553
Fixes #1537
2023-01-23 21:27:36 -06:00
Qstick adb22868b6 New: Description for indexer RSS setting
Fixes #2098
2023-01-23 21:21:22 -06:00
Qstick 20cf7c1ffc Fix RootFolder logs in DiskScanService 2023-01-23 21:17:35 -06:00
Mark McDowall 13fd31b67d New: Improved messaging when qBittorrent fails due to host header rejection
Closes #2099
Closes #2100

(cherry picked from commit 48b4cc5f3ffa0cb8eea6748db9091267216cef4f)
2023-01-23 21:14:35 -06:00
Zak Saunders 95dbfb6e4a Fixed: Progress bar text colour in Dark theme
Closes #2091

(cherry picked from commit ca61efa57fc04a7f6753aedb4b8044d17e345429)
2023-01-23 21:13:18 -06:00
Qstick 31c8092960 New: Author name first character renaming token
Co-Authored-By: Mark McDowall <markus101@users.noreply.github.com>
2023-01-23 21:11:04 -06:00
Qstick 06fbd5f93d New: Reset Quality Definitions to default
Closes #1719

(cherry picked from commit d5fff15f32fdb49768dcadd94c760678e650c884)
2023-01-23 21:04:51 -06:00
Qstick 44c37b3f47 Update DeploymentInfoProvider.cs 2023-01-23 21:02:07 -06:00
Qstick 5726df841c Fixed: Logging when series folder is moved successfully
Closes #1764

Co-Authored-By: David Newhall <2402929+davidnewhall@users.noreply.github.com>
2023-01-23 20:42:11 -06:00
Alan Collins 590b203bb6 Adjusted the Windows LongPath support check for valid segment lengths
Closes #1512

(cherry picked from commit 52c6bc5549ab998ccc018d138c55f8f924eed6d3)
2023-01-23 20:40:03 -06:00
Qstick 9982df9d2b Bump Sentry to 3.25.0
Closes #1978
2023-01-23 20:37:47 -06:00
Qstick d1741c8b75 API Updates
Fixes #2011
Fixes #1376
Fixes #1379

Co-Authored-By: Mark McDowall <markus101@users.noreply.github.com>
2023-01-23 20:33:02 -06:00
Mark McDowall 20a477f95d Fixed: Only log /proc/mounts exception once per process
Closes #2080

(cherry picked from commit ce0388ca99b7f89bd9e8971777a7995c4361d268)
2023-01-23 20:28:27 -06:00
Qstick e346eb6c64 Update coverlet.runsettings 2023-01-23 20:27:01 -06:00
Lewis England 49710b8863 fix: add end date to calendar events 2023-01-23 20:24:56 -06:00
Qstick 2699f7c0d7 Fixed: Use route Id for PUT requests if not passed in body
Closes #1994
2023-01-23 20:16:38 -06:00
Zak Saunders ed1b29f8e4 New: Auto theme option to match OS theme
Closes #2022

Co-authored-by: Qstick <qstick@gmail.com>
(cherry picked from commit 4ca5a213fa0fc29ed93e7e31b080728d6fa7f1f3)
2023-01-23 20:15:38 -06:00
Mark McDowall 8a4d309d57 New: IPv6 support for connections/indexers/download clients
Closes #2026

(cherry picked from commit 1b90fbcf7df2c1086da4791c6491771924b1b7aa)
2023-01-23 20:12:49 -06:00
Mark McDowall 7dc061cc8a Fixed: Improve Bind Address validation and help text
Closes #2025

(cherry picked from commit 6bdeafcf8c78e145595f52e885356be1210abe91)
2023-01-23 20:12:49 -06:00
Qstick cef06d11a5 Bump Newtonsoft to 13.0.2 2023-01-23 20:12:49 -06:00
bakerboy448 9235ae85bc Fixed: Improve RarBG Error Handling
Closes #1883
Closes #1884

(cherry picked from commit 7cd38bba841659a595fe4a0e14c478fc4e4047b1)
2023-01-23 20:12:33 -06:00
Mark McDowall b123952010 Fixed: Grab/remove queue actions not showing spinner
Closes #2002

(cherry picked from commit 51b1ba13c1b9dc9e26469c728e3871d4b7da0788)
2023-01-23 20:11:29 -06:00
Qstick e62d00103d Simplify X-Forwarded-For handling
This happens in asp.net middleware now

Closes #2033
Closes #2034

(cherry picked from commit 16e2d130e6a2e7239bcfe92187a7f990f93eff00)
Co-Authored-By: ta264 <ta264@users.noreply.github.com>
2023-01-23 20:11:29 -06:00
Qstick 13dad33e31 New: Improve IPAddress.IsLocal method
Closes #2032

(cherry picked from commit fd98a179ab6fed8037c99344b34593aac24a0ac0)
Co-Authored-By: ta264 <ta264@users.noreply.github.com>
2023-01-23 20:11:12 -06:00
Qstick be8e50a41f Fixed: Avoid Sqlite Error when all profiles have lowest quality cutoff
Closes #2147
Fixes #1911

(cherry picked from commit f05e109b50cca496e7b42e2833eff161a43e12f4)
2023-01-22 23:14:27 -06:00
Zak Saunders 6e38df366f New: Darkmode
* New: Native Theme Engine

Co-Authored-By: Zak Saunders <thezak48@users.noreply.github.com>
(cherry picked from commit 2291f3e00eb2ff9268a0b2f49da8dde82ee13c04)

* Update CSS for themes

* Fixup CSS values

* Fixup remove duped Color-Impaired setting

* Fixup Link Colors

Co-Authored-By: Qstick <qstick@gmail.com>
2023-01-21 18:18:48 -06:00
PearsonFlyer 91b8565629 Fix notifiation in Ntfy on test from Radarr to Readarr (#2141) 2023-01-21 17:35:49 -06:00
Qstick 7d02c00ca8 Bump version to 0.1.2 2023-01-21 13:45:45 -06:00
Qstick b83ccc19b0 Bump MonoTorrent to 2.0.7 2023-01-21 13:41:04 -06:00
Mark McDowall 93086abf58 Fixed: Multiple pushed releases will be processed sequentially
(cherry picked from commit 1f8e1cf582f59fe1e8dcc0fad15afeed6d9cd9d1)
2023-01-21 13:39:06 -06:00
Qstick f68dc04273 Fixed: RemotePathMappingCheck Improvements 2023-01-21 13:25:12 -06:00
Qstick 5664054f95 Fixed: DownloadClientRootFolderCheck Improvements 2023-01-21 13:25:11 -06:00
Qstick f16bd435db Fixed: Catch InvalidDataException during initial config to prevent boot loop
[Common]
2023-01-21 13:25:11 -06:00
Qstick 2bde9d13dd Fixed: Restore old Sqlite version compatibility 2023-01-16 19:46:15 -06:00
ta264 f448481460 New: Respect 429 Retry-After responses from BookInfo 2023-01-13 13:07:21 +00:00
ta264 70856c217c Fixed: Adding book by edition id 2023-01-13 13:07:21 +00:00
Weblate 4db158e0c9 Translated using Weblate (Swedish) [skip ci]
Currently translated at 89.5% (789 of 881 strings)

Translated using Weblate (Dutch) [skip ci]

Currently translated at 66.9% (590 of 881 strings)

Translated using Weblate (Ukrainian) [skip ci]

Currently translated at 53.0% (467 of 881 strings)

Translated using Weblate (Russian) [skip ci]

Currently translated at 66.8% (589 of 881 strings)

Translated using Weblate (Chinese (Simplified) (zh_CN)) [skip ci]

Currently translated at 100.0% (881 of 881 strings)

Translated using Weblate (Portuguese (Brazil)) [skip ci]

Currently translated at 100.0% (881 of 881 strings)

Translated using Weblate (Italian) [skip ci]

Currently translated at 72.4% (638 of 881 strings)

Translated using Weblate (Greek) [skip ci]

Currently translated at 62.6% (552 of 881 strings)

Translated using Weblate (Chinese (Simplified) (zh_CN)) [skip ci]

Currently translated at 100.0% (881 of 881 strings)

Translated using Weblate (Ukrainian) [skip ci]

Currently translated at 50.3% (444 of 881 strings)

Translated using Weblate (Chinese (Simplified) (zh_CN)) [skip ci]

Currently translated at 100.0% (881 of 881 strings)

Translated using Weblate (Bengali) [skip ci]

Currently translated at 0.2% (2 of 881 strings)

Translated using Weblate (Finnish) [skip ci]

Currently translated at 85.9% (757 of 881 strings)

Translated using Weblate (Portuguese (Brazil)) [skip ci]

Currently translated at 100.0% (881 of 881 strings)

Translated using Weblate (German) [skip ci]

Currently translated at 100.0% (881 of 881 strings)

Translated using Weblate (Italian) [skip ci]

Currently translated at 72.4% (638 of 881 strings)

Translated using Weblate (Finnish) [skip ci]

Currently translated at 80.0% (705 of 881 strings)

Translated using Weblate (German) [skip ci]

Currently translated at 99.7% (879 of 881 strings)

Translated using Weblate (Italian) [skip ci]

Currently translated at 70.8% (624 of 881 strings)

Translated using Weblate (Italian) [skip ci]

Currently translated at 70.0% (617 of 881 strings)

Translated using Weblate (Russian) [skip ci]

Currently translated at 66.6% (587 of 881 strings)

Translated using Weblate (Hungarian) [skip ci]

Currently translated at 100.0% (881 of 881 strings)

Translated using Weblate (Dutch) [skip ci]

Currently translated at 66.0% (582 of 881 strings)

Translated using Weblate (Portuguese (Brazil)) [skip ci]

Currently translated at 100.0% (881 of 881 strings)

Co-authored-by: AlexR-sf <omg.portal.supp@gmail.com>
Co-authored-by: Anthony Veaudry <anthonyveaudry@gmail.com>
Co-authored-by: Casselluu <jack10193@163.com>
Co-authored-by: Csaba <csab0825@gmail.com>
Co-authored-by: Davide Palma <github@davidepalma.it>
Co-authored-by: Havok Dan <havokdan@yahoo.com.br>
Co-authored-by: Iagocds <cdsiago@gmail.com>
Co-authored-by: Luc Timmerman <timmerman.luc1999@gmail.com>
Co-authored-by: Mipiaceanutella <remix-polity-0l@icloud.com>
Co-authored-by: Oskari Lavinto <olavinto@protonmail.com>
Co-authored-by: Robin Flikkema <robin@robinflikkema.nl>
Co-authored-by: Tanreon <tanreon@outlook.com>
Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: andrey4korop <andrey999@i.ua>
Co-authored-by: benniblot <ben2004engler@gmail.com>
Co-authored-by: deepserket <deepserket@gmail.com>
Co-authored-by: hidaba <nag@hidaba.com>
Co-authored-by: lhquark <lhquark@gmail.com>
Co-authored-by: oskhel <oskar.hellgren@gmail.com>
Co-authored-by: qing zhang <fzeehom@126.com>
Co-authored-by: reloxx <reloxx@interia.pl>
Co-authored-by: saambd <me@salimrahman.com>
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/bn/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/de/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/el/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/fi/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/hu/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/it/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/nl/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/pt_BR/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/ru/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/sv/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/uk/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/zh_CN/
Translation: Servarr/Readarr
2023-01-10 22:22:38 -06:00
Qstick 55ab909fde Cleanup translate.js 2022-12-17 12:50:14 -06:00
Qstick 61c9779022 Fixed: Correct Attribute compare for Id validation
(cherry picked from commit 7e48ea0231272ae56c30f5f43339f0dca7a27fb3)
2022-12-17 12:13:56 -06:00
Qstick 8299c8e13e Update README for DigitalOcean attribution
(cherry picked from commit d3517532a4e28eb716bd949dc7fdbd85da316a0e)
2022-12-17 11:33:34 -06:00
Qstick da5e35fc25 Unbork UI Build 2022-11-28 22:11:13 -06:00
Mark McDowall a6a2219bc4 Fixed: Handle Flood reporting errors for completed and stopped downloads
(cherry picked from commit f2b2eb69a3e8b271535bd92dc2f5cbfd45664daf)
2022-11-28 21:25:03 -06:00
Qstick aa2855a62b Re-saving edited providers will forcibly save them
Fixes #533

Co-Authored-By: Mark McDowall <markus101@users.noreply.github.com>
2022-11-27 19:32:14 -06:00
Qstick 599f52e72f Fixed: Validation when testing indexers, import lists, connections and download clients
Fixes #1612

Co-Authored-By: Mark McDowall <markus101@users.noreply.github.com>
2022-11-27 19:10:12 -06:00
Qstick c5c2b94b9a Fixup Repack Tests 2022-11-25 22:16:34 -06:00
Qstick b016b36435 Fixed: Validate if equals or child for startup folder
Fixes #1712
Close #1713

(cherry picked from commit 0991cfe27efd6ddb533227b25754661e18d7e9ad)
2022-11-25 22:07:42 -06:00
Qstick d93a0c27e9 Sentry logging exceptions
Fixes #855

Co-Authored-By: Taloth <Taloth@users.noreply.github.com>
2022-11-25 21:58:58 -06:00
Qstick eecf08e063 Updated NLog Version
Co-Authored-By: Robin Dadswell <19610103+RobinDadswell@users.noreply.github.com>
2022-11-25 21:52:52 -06:00
Qstick fb1643f630 Lint Fixes 2022-11-25 21:39:44 -06:00
bakerboy448 a061179f6b Fixed: Repack Preference Ignored
Fixes #1867

(cherry picked from commit 04447d9d4db8cc3d54baf0a721f4430cf77908c4)
2022-11-25 21:39:44 -06:00
Stevie Robinson b441f6c05b Fixed: updated rTorrent download client note
Fixes #1882

(cherry picked from commit 743d28b93a55553ee25381570d0daa04ed2117af)
2022-11-25 21:33:35 -06:00
Chromo-residuum-opec 0904eac300 Update help text for rTorrent download client options
Fixes #1868

(cherry picked from commit d2a23f7bcdf71800f019644d7b6b5d712e311d7f)
2022-11-25 21:31:57 -06:00
Qstick 29e3d8f477 Fixed: Fall back to sorting by release title if artist is not matched
Fixes #1870
2022-11-25 21:29:38 -06:00
Qstick 71bd88e531 New: Add Release group to history for all events
Fixes #1499

Co-Authored-By: Mark McDowall <markus101@users.noreply.github.com>
2022-11-25 21:28:05 -06:00
Stevie Robinson 0689bec779 New: Add optional Source Title column to history
(cherry picked from commit 581fb2cb3d47d62fe16b840081647056ec77043d)
2022-11-25 21:16:37 -06:00
Devin Buhl 117a5c8010 New: Add application URL to host configuration settings
Fixes #1816
Closes #1817

(cherry picked from commit 762042ba97c2ae689cee32d8e66a458f6d7a8adc)
2022-11-25 21:16:37 -06:00
Qstick d10d91439f New: Add indexer name to the download report log
Fixes #1904
2022-11-25 21:16:37 -06:00
Mark McDowall ed0722bae4 New: Validate that naming formats don't contain illegal characters
Fixes #620

(cherry picked from commit 145c644c9d8f1636027da8a782a7e74f3182c678)
2022-11-25 21:16:37 -06:00
psylenced e69371deca Fix: Trace logging postgres cleanse for large json files.
(cherry picked from commit 2ce9d099e1001eb4fccd61edcb0597782da872d4)
2022-11-25 20:30:54 -06:00
Chris 5ae8deb9d6 Fixed: Postgres secret regex now less greedy
[common]

(cherry picked from commit 812e5ac5a3d76b69c172c5611b315ea809ab4b48)
2022-11-25 20:30:54 -06:00
Chris 291674fc18 Fixed: Regex in log cleanser taking 10+ minutes on messages longer than 100k.
(cherry picked from commit d01bae92bfd68b04c54ab19bafe8af16c68ce711)
2022-11-25 20:30:54 -06:00
Qstick 774cd04d32 Fixed SeedConfigProvider cache refresh after indexer settings change
Fixes #1036

Co-Authored-By: Taloth <Taloth@users.noreply.github.com>
2022-11-25 20:24:00 -06:00
Qstick 3eb0533b17 New: Disable autocomplete of port number
Fixes #1249

Co-Authored-By: Stevie Robinson <stevie.robinson@gmail.com>
2022-11-25 20:21:10 -06:00
Qstick 2fe11ca1a9 Rename NzbSearchService to ReleaseSearchService
Co-Authored-By: Mark McDowall <markus101@users.noreply.github.com>
2022-11-25 20:18:28 -06:00
Qstick c8ae6b0299 Fixed: Custom Script Health Issue Level
Co-Authored-By: Mark McDowall <markus101@users.noreply.github.com>
2022-11-25 20:14:47 -06:00
Qstick 2086ae1e2c Ensure .Mono and .Windows projects have all dependencies in build output
Co-Authored-By: ta264 <ta264@users.noreply.github.com>
2022-11-25 20:10:23 -06:00
Chris 2aeec97d5e Added: Ntfy provider for notifications
(cherry picked from commit f6e6bc98f7846328d158ab2f804ca65b49632912)
2022-11-25 20:02:23 -06:00
Qstick 45e9d14916 New: Base API info endpoint
(cherry picked from commit 5e57ffbcf9ac3a346d4bf2b692248393215bad89)
2022-11-25 20:01:21 -06:00
Qstick ded45a53f3 Improve page scrollbar
Fixed: Scrolling in Firefox in small window (requires refresh)
New: Style scrollbar in Firefox
Fixed: Scrolling with click and drag
Fixes #3088
Fixes #2706
2022-11-25 20:00:56 -06:00
Mark McDowall d5cbb8f84f Replace react-custom-scrollbars
(cherry picked from commit 1c6c9a7960865d4bf8f58d5d04bef1aa1409594a)
2022-11-25 20:00:56 -06:00
Mark McDowall cac0fca0d2 Added react-hooks lint rules
(cherry picked from commit 381d64259396582de8d63ada99333e42cf5e3189)
2022-11-25 19:55:55 -06:00
Mark McDowall 9b5a050c40 Publish ApplicationStartingEvent during startup
(cherry picked from commit 5400bce1295bdc4198d2cfe0b9258bbb7ccf0852)
2022-11-25 19:54:05 -06:00
Weblate 9fa67dbe5f Translated using Weblate (German) [skip ci]
Currently translated at 100.0% (879 of 879 strings)

Translated using Weblate (Czech) [skip ci]

Currently translated at 62.4% (549 of 879 strings)

Translated using Weblate (Finnish) [skip ci]

Currently translated at 79.8% (702 of 879 strings)

Co-authored-by: Oskari Lavinto <olavinto@protonmail.com>
Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: Zalhera <tobias.bechen@gmail.com>
Co-authored-by: marapavelka <mara.pavelka@gmail.com>
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/cs/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/de/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/fi/
Translation: Servarr/Readarr
2022-11-25 19:25:06 -06:00
Mark McDowall 505ef5ee63 Fixed: Testing SABnzbd when no categories are configured
(cherry picked from commit 0e31281828c737e3f6eecbb870960194888a970a)
2022-11-25 19:24:38 -06:00
Mark McDowall 87a2d7382e Added SECURITY.md
(cherry picked from commit 80af164385d9087a627142ca2281ae74ac0572af)

(cherry picked from commit aa8e886dab3ffedc835900db39787d47dc12465c)
2022-11-21 19:25:11 -06:00
Qstick 7c74a8df01 Fixed: UI Errors in Add Book page
Fixes #1906
2022-11-03 16:30:54 -05:00
Qstick f8324b3c92 Create CODE_OF_CONDUCT.md 2022-11-03 15:58:16 -05:00
Weblate cb03f3bf6b Translated using Weblate (Chinese (Simplified) (zh_CN)) [skip ci]
Currently translated at 100.0% (879 of 879 strings)

Update translation files [skip ci]

Updated by "Remove blank strings" hook in Weblate.

Translated using Weblate (Chinese (Simplified) (zh_CN)) [skip ci]

Currently translated at 69.0% (607 of 879 strings)

Translated using Weblate (Portuguese) [skip ci]

Currently translated at 76.7% (675 of 879 strings)

Co-authored-by: Sincejunly <qq943384135@gmail.com>
Co-authored-by: Tiago Ribeiro <tiago.err@outlook.com>
Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: libsu <libsu@qq.com>
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/pt/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/zh_CN/
Translation: Servarr/Readarr
2022-11-03 10:42:08 -05:00
ta264 d6f85ec4f9 Use wildcard for FreeBSD itemPattern 2022-11-02 21:22:34 +00:00
Qstick dd0dd921b0 Ignore brotli test on osx
(cherry picked from commit 2afe6af5a6dac26fe9d2c20e806a93b621e18bbf)
2022-10-30 19:03:10 -05:00
Mark McDowall 1f02423148 Fixed: Series list jump bar click issues
(cherry picked from commit 9c7378625112088d022239fdbdb90c0dc941d61d)
2022-10-20 20:42:53 -05:00
Qstick 7a4fba851f fixup! 2022-10-20 20:39:36 -05:00
Qstick 2d5efc268f New: Retry Postgres connection 3 times (with 5 second sleep) on Startup
(cherry picked from commit 3e700b63c26b247fcac83428ba79e53c88f797ff)

(cherry picked from commit dbca393772d7f558b45a780a6767187bf5900a23)
2022-10-20 20:39:36 -05:00
Mark McDowall cad5762f31 Sliding expiration for auth cookie and a little clean up
Fixes #1802

(cherry picked from commit 05ee4e644907b7f1e84589465ac9ab1848f5a766)
2022-10-20 20:23:15 -05:00
Qstick bcc8370d05 Cleanup dual target and mono code
Fixes #1893
Fixes #1808
2022-10-20 20:19:52 -05:00
Qstick 3481168df5 Fixed: qBittorrent Updates
Fixes #1658
Fixes #1536
2022-10-20 20:03:55 -05:00
Qstick 337a30ac0f Add thread to discord notifications 2022-10-19 22:00:13 -05:00
Weblate eaad4de4dc Translated using Weblate (Chinese (Simplified) (zh_CN)) [skip ci]
Currently translated at 69.0% (607 of 879 strings)

Translated using Weblate (Polish) [skip ci]

Currently translated at 65.4% (575 of 879 strings)

Translated using Weblate (Slovak) [skip ci]

Currently translated at 7.3% (65 of 879 strings)

Translated using Weblate (Portuguese) [skip ci]

Currently translated at 76.3% (671 of 879 strings)

Translated using Weblate (Portuguese) [skip ci]

Currently translated at 76.3% (671 of 879 strings)

Translated using Weblate (Chinese (Traditional) (zh_TW)) [skip ci]

Currently translated at 0.6% (6 of 879 strings)

Translated using Weblate (Finnish) [skip ci]

Currently translated at 79.8% (702 of 879 strings)

Translated using Weblate (Japanese) [skip ci]

Currently translated at 62.3% (548 of 879 strings)

Translated using Weblate (Italian) [skip ci]

Currently translated at 69.8% (614 of 879 strings)

Translated using Weblate (Icelandic) [skip ci]

Currently translated at 62.3% (548 of 879 strings)

Translated using Weblate (Hindi) [skip ci]

Currently translated at 62.3% (548 of 879 strings)

Translated using Weblate (Hebrew) [skip ci]

Currently translated at 63.8% (561 of 879 strings)

Translated using Weblate (French) [skip ci]

Currently translated at 75.9% (668 of 879 strings)

Translated using Weblate (Finnish) [skip ci]

Currently translated at 79.8% (702 of 879 strings)

Translated using Weblate (Greek) [skip ci]

Currently translated at 62.3% (548 of 879 strings)

Translated using Weblate (Danish) [skip ci]

Currently translated at 62.3% (548 of 879 strings)

Translated using Weblate (Czech) [skip ci]

Currently translated at 62.3% (548 of 879 strings)

Translated using Weblate (Bulgarian) [skip ci]

Currently translated at 62.3% (548 of 879 strings)

Translated using Weblate (Arabic) [skip ci]

Currently translated at 62.4% (549 of 879 strings)

Translated using Weblate (Spanish) [skip ci]

Currently translated at 67.2% (591 of 879 strings)

Translated using Weblate (Dutch) [skip ci]

Currently translated at 65.8% (579 of 879 strings)

Added translation using Weblate (Latvian) [skip ci]

Translated using Weblate (German) [skip ci]

Currently translated at 92.0% (809 of 879 strings)

Translated using Weblate (Portuguese (Brazil)) [skip ci]

Currently translated at 100.0% (879 of 879 strings)

Translated using Weblate (Portuguese (Brazil)) [skip ci]

Currently translated at 100.0% (879 of 879 strings)

Translated using Weblate (Chinese (Simplified) (zh_CN)) [skip ci]

Currently translated at 67.9% (597 of 879 strings)

Translated using Weblate (Portuguese (Brazil)) [skip ci]

Currently translated at 99.5% (875 of 879 strings)

Translated using Weblate (French) [skip ci]

Currently translated at 75.0% (660 of 879 strings)

Translated using Weblate (German) [skip ci]

Currently translated at 92.0% (809 of 879 strings)

Translated using Weblate (Spanish) [skip ci]

Currently translated at 67.1% (590 of 879 strings)

Co-authored-by: Anonymous <noreply@weblate.org>
Co-authored-by: Dainel Amendoeira <daniel@amendoeira.eu>
Co-authored-by: Gian Klug <gian.klug@ict-scouts.ch>
Co-authored-by: Gylesie <github-anon.dasheens@aleeas.com>
Co-authored-by: Havok Dan <havokdan@yahoo.com.br>
Co-authored-by: HiNesslio <chi.lio@shms-mail.ch>
Co-authored-by: Marcin <ml.cichy@gmail.com>
Co-authored-by: Mijail Todorovich <mijailtodorovich+git@gmail.com>
Co-authored-by: Oskari Lavinto <olavinto@protonmail.com>
Co-authored-by: Thomas Schwery <thomas@schwery.me>
Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: cikyw <cikyw@vomoto.com>
Co-authored-by: fyu0h <biiigback@gmail.com>
Co-authored-by: reloxx <reloxx@interia.pl>
Co-authored-by: 麋鹿先生 <y.qiuyu@outlook.com>
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/ar/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/bg/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/cs/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/da/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/de/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/el/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/es/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/fi/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/fr/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/he/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/hi/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/is/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/it/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/ja/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/nl/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/pl/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/pt/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/pt_BR/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/sk/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/zh_CN/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/zh_TW/
Translation: Servarr/Readarr
2022-10-16 10:06:07 -05:00
Mark McDowall b98ae37abf Handle redirects for 308 redirects
(cherry picked from commit 6eed7c8fed096fa1762448bc57876440f542be98)
2022-10-16 10:03:35 -05:00
Stevie Robinson 5dac84f9d8 New: Torrent Seed Ratio no longer advance settings
(cherry picked from commit c98fac65ed8e669c5e97ed3255c424b61fe0e8b3)
2022-10-16 10:03:06 -05:00
bakerboy448 ef21c73619 update feature request template
[skip ci]

(cherry picked from commit 362e664ce6d301e8283d489b3e0d945db46d22d3)
2022-10-16 10:02:34 -05:00
Joe Milazzo 14d74f2eca New: Kavita Connection (#1880)
* Added ability for Readarr to inform Kavita when a change occurs for rescan.

* Use the existing API with a POST rather than a new API.

* Updated some wording

* Fixed PR comments
2022-10-02 18:41:38 -05:00
servarr[bot] c3cbbb7627 Update Bug Report Template [skip ci] (#1842)
(cherry picked from commit 99e0d42b717b279be0f9005039025cd730f90f6c)

Co-authored-by: bakerboy448 <55419169+bakerboy448@users.noreply.github.com>
2022-09-26 21:05:36 -05:00
servarr[bot] ad3a58c422 New: Parse version with a space before 'v''
* New: Parse anime version with a space before 'v'

(cherry picked from commit e9123982f33ab35ca022f91f345da05fef23d6dc)

* Delete AnimeVersionFixture.cs

Co-authored-by: Mark McDowall <mark@mcdowall.ca>
Co-authored-by: Qstick <qstick@gmail.com>
2022-09-26 16:55:34 -05:00
Robin Dadswell 347b154882 Update Bug Report Template
[skip ci]

(cherry picked from commit b9185574f3761e125151907e3d31511689a4513e)
2022-09-26 16:42:52 -05:00
Weblate 63ccc155d6 Translated using Weblate (Russian) [skip ci]
Currently translated at 66.6% (586 of 879 strings)

Translated using Weblate (Romanian) [skip ci]

Currently translated at 60.5% (532 of 879 strings)

Translated using Weblate (Hungarian) [skip ci]

Currently translated at 100.0% (879 of 879 strings)

Translated using Weblate (Finnish) [skip ci]

Currently translated at 79.6% (700 of 879 strings)

Co-authored-by: AlexR-sf <omg.portal.supp@gmail.com>
Co-authored-by: Csaba <csab0825@gmail.com>
Co-authored-by: Oskari Lavinto <olavinto@protonmail.com>
Co-authored-by: emanuelsipos <emanuelsipos1@gmail.com>
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/fi/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/hu/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/ro/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/ru/
Translation: Servarr/Readarr
2022-08-18 07:12:51 -05:00
ta264 76613316fa Fixed: Book filters on author properties
Fixes #1755
2022-08-15 14:04:29 +01:00
ta264 f33e9f2bbc Fixed: Selecting edition for books in manual import 2022-08-15 14:04:29 +01:00
Robin Dadswell e4a3d7b273 Fixed: Postgres Timezone Issues
Co-authored-by: ta264 <ta264@users.noreply.github.com>
2022-08-13 19:55:48 +01:00
Robin Dadswell 46c2e0ba82 New: Postgres Support
Co-Authored-By: Qstick <376117+Qstick@users.noreply.github.com>
Co-authored-by: ta264 <ta264@users.noreply.github.com>

(cherry picked from commit 80b1aa9a2c81617bdda7ef551c19a2f114e49204)
2022-08-13 19:55:48 +01:00
Robin Dadswell 8616373f96 Bump FluentMigrator to 3.3.2 2022-08-13 19:55:48 +01:00
ta264 b3f99d8c20 Fixed: Add missing author when a book's author changes in metadata
Fixes READARR-VH
2022-08-05 11:30:13 +01:00
ta264 c0c0847963 Update packages 2022-08-05 11:30:13 +01:00
Qstick c92f9d03c0 Fixed: Releases Size filter has incorrect value type
(cherry picked from commit 46bc711558d9f3ab278125a4292eb7851e51d308)
2022-07-29 23:26:22 -04:00
bakerboy448 f7bf1e243d Fixed: List Import additions when book / author lookup required 2022-07-29 12:06:53 -05:00
Weblate 20b1f41ac1 Translated using Weblate (Catalan) [skip ci]
Currently translated at 49.4% (433 of 876 strings)

Translated using Weblate (Chinese (Traditional) (zh_TW)) [skip ci]

Currently translated at 0.5% (5 of 876 strings)

Co-authored-by: beefnoodle <acer.wang@protonmail.com>
Co-authored-by: dtalens <databio@gmail.com>
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/ca/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/zh_TW/
Translation: Servarr/Readarr
2022-07-26 09:22:12 +01:00
bakerboy448 f703db1e00 Fixed: Better Cleansing of Tracker Announce Keys
Fixed: Cleanse Notifiarr secret from URL in logs

Fixes: #4623
(cherry picked from commit e6210aede6f7ead197e82572976bc0267d910d46)

(cherry picked from commit ec866082d44d299096112a6c7c232384b1f74505)
2022-07-26 09:21:28 +01:00
bakerboy448 20f67c8035 Fixed: Importing Readarr Lists
Fixes #1747
2022-07-26 09:20:38 +01:00
Qstick 56ae497bfa Fixed: Don't call for server notifications on event driven check 2022-07-17 13:48:12 -05:00
Weblate e760dc56c6 Translated using Weblate (French) [skip ci]
Currently translated at 75.1% (658 of 876 strings)

Co-authored-by: Sytha <tharaud.sylvain@gmail.com>
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/fr/
Translation: Servarr/Readarr
2022-07-17 13:42:13 -05:00
Weblate 7ad26b386c Translated using Weblate (Hungarian) [skip ci]
Currently translated at 100.0% (876 of 876 strings)

Translated using Weblate (Portuguese (Brazil)) [skip ci]

Currently translated at 100.0% (876 of 876 strings)

Translated using Weblate (Italian) [skip ci]

Currently translated at 69.8% (612 of 876 strings)

Translated using Weblate (French) [skip ci]

Currently translated at 75.1% (658 of 876 strings)

Translated using Weblate (Ukrainian) [skip ci]

Currently translated at 10.9% (96 of 876 strings)

Translated using Weblate (Chinese (Traditional) (zh_TW)) [skip ci]

Currently translated at 0.1% (1 of 876 strings)

Translated using Weblate (Portuguese) [skip ci]

Currently translated at 76.3% (669 of 876 strings)

Translated using Weblate (Vietnamese) [skip ci]

Currently translated at 62.4% (547 of 876 strings)

Translated using Weblate (Turkish) [skip ci]

Currently translated at 62.5% (548 of 876 strings)

Translated using Weblate (Thai) [skip ci]

Currently translated at 62.4% (547 of 876 strings)

Translated using Weblate (Swedish) [skip ci]

Currently translated at 89.8% (787 of 876 strings)

Translated using Weblate (Russian) [skip ci]

Currently translated at 66.0% (579 of 876 strings)

Translated using Weblate (Romanian) [skip ci]

Currently translated at 62.4% (547 of 876 strings)

Translated using Weblate (Polish) [skip ci]

Currently translated at 65.6% (575 of 876 strings)

Translated using Weblate (Korean) [skip ci]

Currently translated at 62.6% (549 of 876 strings)

Translated using Weblate (Japanese) [skip ci]

Currently translated at 62.4% (547 of 876 strings)

Translated using Weblate (Italian) [skip ci]

Currently translated at 69.8% (612 of 876 strings)

Translated using Weblate (Icelandic) [skip ci]

Currently translated at 62.4% (547 of 876 strings)

Translated using Weblate (Hindi) [skip ci]

Currently translated at 62.4% (547 of 876 strings)

Translated using Weblate (Hebrew) [skip ci]

Currently translated at 63.8% (559 of 876 strings)

Translated using Weblate (French) [skip ci]

Currently translated at 67.1% (588 of 876 strings)

Translated using Weblate (Finnish) [skip ci]

Currently translated at 79.9% (700 of 876 strings)

Translated using Weblate (Greek) [skip ci]

Currently translated at 62.4% (547 of 876 strings)

Translated using Weblate (German) [skip ci]

Currently translated at 89.1% (781 of 876 strings)

Translated using Weblate (Danish) [skip ci]

Currently translated at 62.4% (547 of 876 strings)

Translated using Weblate (Czech) [skip ci]

Currently translated at 62.4% (547 of 876 strings)

Translated using Weblate (Bulgarian) [skip ci]

Currently translated at 62.4% (547 of 876 strings)

Translated using Weblate (Arabic) [skip ci]

Currently translated at 62.5% (548 of 876 strings)

Translated using Weblate (Spanish) [skip ci]

Currently translated at 67.0% (587 of 876 strings)

Translated using Weblate (Dutch) [skip ci]

Currently translated at 65.8% (577 of 876 strings)

Translated using Weblate (Finnish) [skip ci]

Currently translated at 79.9% (700 of 876 strings)

Added translation using Weblate (Lithuanian) [skip ci]

Co-authored-by: Anonymous <noreply@weblate.org>
Co-authored-by: Csaba <csab0825@gmail.com>
Co-authored-by: Giorgio <sannagiorgio1997@gmail.com>
Co-authored-by: Havok Dan <havokdan@yahoo.com.br>
Co-authored-by: Maxent <rouaultmaxent@gmail.com>
Co-authored-by: Oskari Lavinto <olavinto@protonmail.com>
Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: loksum213108 <lok3222003@gmail.com>
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/ar/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/bg/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/cs/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/da/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/de/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/el/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/es/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/fi/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/fr/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/he/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/hi/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/hu/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/is/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/it/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/ja/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/ko/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/nl/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/pl/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/pt/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/pt_BR/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/ro/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/ru/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/sv/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/th/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/tr/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/uk/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/vi/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/zh_TW/
Translation: Servarr/Readarr
2022-07-13 11:01:02 -05:00
Weblate 199085249f Translated using Weblate (Portuguese) [skip ci]
Currently translated at 75.9% (665 of 876 strings)

Translated using Weblate (Hungarian) [skip ci]

Currently translated at 100.0% (876 of 876 strings)

Translated using Weblate (German) [skip ci]

Currently translated at 88.0% (771 of 876 strings)

Translated using Weblate (Polish) [skip ci]

Currently translated at 64.2% (563 of 876 strings)

Translated using Weblate (Portuguese (Brazil)) [skip ci]

Currently translated at 100.0% (876 of 876 strings)

Translated using Weblate (German) [skip ci]

Currently translated at 87.7% (769 of 876 strings)

Co-authored-by: Csaba <csab0825@gmail.com>
Co-authored-by: Havok Dan <havokdan@yahoo.com.br>
Co-authored-by: Marcin <ml.cichy@gmail.com>
Co-authored-by: Vitor Brito <main@vitorbrito.com>
Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: reloxx <reloxx@interia.pl>
Co-authored-by: ηg <jonas.konrath@icloud.com>
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/de/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/hu/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/pl/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/pt/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/pt_BR/
Translation: Servarr/Readarr
2022-06-25 20:30:02 -05:00
ta264 b84041d95f Use DryIoc for Automoqer, drop Unity dependency
(cherry picked from commit e3468daba04b52fbf41ce3004934a26b0220ec4f)
(cherry picked from commit cf4103d73d74896daa12e7a0237e8923eaa6c095)
2022-06-22 10:13:37 +01:00
Robin Dadswell 615facb3c4 fixed test due to GoodReads BookId change 2022-06-15 23:28:43 +01:00
Weblate b4fd1340c2 Translated using Weblate (Chinese (Simplified) (zh_CN)) [skip ci]
Currently translated at 68.1% (597 of 876 strings)

Translated using Weblate (Finnish) [skip ci]

Currently translated at 78.9% (692 of 876 strings)

Translated using Weblate (Polish) [skip ci]

Currently translated at 64.2% (563 of 876 strings)

Translated using Weblate (Hungarian) [skip ci]

Currently translated at 99.8% (875 of 876 strings)

Translated using Weblate (Hungarian) [skip ci]

Currently translated at 97.6% (855 of 876 strings)

Translated using Weblate (Chinese (Simplified) (zh_CN)) [skip ci]

Currently translated at 68.0% (596 of 876 strings)

Translated using Weblate (Chinese (Simplified) (zh_CN)) [skip ci]

Currently translated at 68.0% (596 of 876 strings)

Translated using Weblate (Norwegian Bokmål) [skip ci]

Currently translated at 8.5% (75 of 876 strings)

Translated using Weblate (Chinese (Simplified) (zh_CN)) [skip ci]

Currently translated at 67.9% (595 of 876 strings)

Translated using Weblate (Portuguese (Brazil)) [skip ci]

Currently translated at 100.0% (876 of 876 strings)

Translated using Weblate (Portuguese (Brazil)) [skip ci]

Currently translated at 100.0% (851 of 851 strings)

Translated using Weblate (Italian) [skip ci]

Currently translated at 69.8% (594 of 851 strings)

Translated using Weblate (Finnish) [skip ci]

Currently translated at 81.3% (692 of 851 strings)

Translated using Weblate (Italian) [skip ci]

Currently translated at 69.8% (594 of 851 strings)

Translated using Weblate (Italian) [skip ci]

Currently translated at 69.6% (593 of 851 strings)

Translated using Weblate (Italian) [skip ci]

Currently translated at 69.6% (593 of 851 strings)

Co-authored-by: Csaba <csab0825@gmail.com>
Co-authored-by: Francesco <francy.ammirati@hotmail.com>
Co-authored-by: Giorgio <sannagiorgio1997@gmail.com>
Co-authored-by: Gjermund Wiggen <gjermundwiggen@gmail.com>
Co-authored-by: Havok Dan <havokdan@yahoo.com.br>
Co-authored-by: Matrixlee <matrix.alax@gmail.com>
Co-authored-by: Oskari Lavinto <olavinto@protonmail.com>
Co-authored-by: Pan Jarek <jsawiuk@gmail.com>
Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: carreyli <laddie1987@qq.com>
Co-authored-by: un110 <13735581@qq.com>
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/fi/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/hu/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/it/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/nb_NO/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/pl/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/pt_BR/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/zh_CN/
Translation: Servarr/Readarr
2022-06-11 15:13:19 -05:00
bakerboy448 1da27b0978 Fixed: Cleanse GoodReads oauth from logs 2022-05-30 09:26:47 +01:00
ta264 b0a3ddef9c Fixed: Speed up book api 2022-05-30 09:05:25 +01:00
ta264 a59706ceb4 Fixed: Removed unnecessary author data from book endpoint 2022-05-30 09:05:25 +01:00
nitsua ce58e6ecdb Fixed: Mark as Failed errors
Co-Authored-By: Mark McDowall <markus101@users.noreply.github.com>

(cherry picked from commit a9792973eef960e8310a611cf1da2d2cada57532)
2022-05-25 17:02:44 +01:00
bakerboy448 d01ce8b908 Fixed: Added new and missing translations 2022-05-25 14:08:08 +01:00
ta264 575f995916 Reinstate tests 2022-05-24 21:16:00 +01:00
ta264 c17c8815ef New: Add linux-x86 builds
(cherry picked from commit 8907b06899483d7cb3ecb9546d82af00d129f8e1)
2022-05-25 13:06:39 +01:00
ta264 8445941510 New: .NET 6.0.5 2022-05-25 13:06:39 +01:00
ta264 32ae18ae6f Fix bad translation 2022-05-25 13:06:39 +01:00
PearsonFlyer b91ec241a6 Fixed: Add translation for RestartRequiredHelpTextWarning 2022-05-15 20:18:29 +01:00
Qstick 17ce8187fd New: Instance name in System/Status API endpoint 2022-05-15 13:05:44 -05:00
Qstick 41615fe026 New: Instance name for Page Title 2022-05-15 13:05:44 -05:00
Robin Dadswell 9cff8f31e9 New: Instance Name used for Syslog 2022-05-15 13:05:44 -05:00
Robin Dadswell 21538b972d New: Set Instance Name 2022-05-15 13:05:44 -05:00
Robin Dadswell 5a7b4d41d8 New: Added UDP syslog support
(cherry picked from commit 8d856b2edb8bf46a2b516d5f7644ae3fa1151323)
2022-05-15 13:05:44 -05:00
Weblate 16f67265c9 Translated using Weblate (Finnish) [skip ci]
Currently translated at 79.7% (679 of 851 strings)

Translated using Weblate (Portuguese (Brazil)) [skip ci]

Currently translated at 100.0% (851 of 851 strings)

Translated using Weblate (Russian) [skip ci]

Currently translated at 67.3% (573 of 851 strings)

Translated using Weblate (Italian) [skip ci]

Currently translated at 66.3% (565 of 851 strings)

Translated using Weblate (Italian) [skip ci]

Currently translated at 66.3% (565 of 851 strings)

Translated using Weblate (Ukrainian) [skip ci]

Currently translated at 11.1% (95 of 851 strings)

Translated using Weblate (Slovak) [skip ci]

Currently translated at 5.5% (47 of 851 strings)

Translated using Weblate (Norwegian Bokmål) [skip ci]

Currently translated at 7.1% (61 of 851 strings)

Translated using Weblate (Catalan) [skip ci]

Currently translated at 1.4% (12 of 851 strings)

Translated using Weblate (Chinese (Simplified) (zh_CN)) [skip ci]

Currently translated at 69.8% (594 of 851 strings)

Translated using Weblate (Chinese (Simplified) (zh_CN)) [skip ci]

Currently translated at 69.8% (594 of 851 strings)

Translated using Weblate (Portuguese) [skip ci]

Currently translated at 78.0% (664 of 851 strings)

Translated using Weblate (Vietnamese) [skip ci]

Currently translated at 63.8% (543 of 851 strings)

Translated using Weblate (Turkish) [skip ci]

Currently translated at 63.9% (544 of 851 strings)

Translated using Weblate (Thai) [skip ci]

Currently translated at 63.8% (543 of 851 strings)

Translated using Weblate (Swedish) [skip ci]

Currently translated at 91.5% (779 of 851 strings)

Translated using Weblate (Russian) [skip ci]

Currently translated at 66.2% (564 of 851 strings)

Translated using Weblate (Romanian) [skip ci]

Currently translated at 63.8% (543 of 851 strings)

Translated using Weblate (Polish) [skip ci]

Currently translated at 63.8% (543 of 851 strings)

Translated using Weblate (Korean) [skip ci]

Currently translated at 64.0% (545 of 851 strings)

Translated using Weblate (Japanese) [skip ci]

Currently translated at 63.8% (543 of 851 strings)

Translated using Weblate (Italian) [skip ci]

Currently translated at 66.3% (565 of 851 strings)

Translated using Weblate (Icelandic) [skip ci]

Currently translated at 63.8% (543 of 851 strings)

Translated using Weblate (Hindi) [skip ci]

Currently translated at 63.8% (543 of 851 strings)

Translated using Weblate (Hebrew) [skip ci]

Currently translated at 63.8% (543 of 851 strings)

Translated using Weblate (French) [skip ci]

Currently translated at 68.6% (584 of 851 strings)

Translated using Weblate (Finnish) [skip ci]

Currently translated at 79.7% (679 of 851 strings)

Translated using Weblate (Greek) [skip ci]

Currently translated at 63.8% (543 of 851 strings)

Translated using Weblate (German) [skip ci]

Currently translated at 90.2% (768 of 851 strings)

Translated using Weblate (Danish) [skip ci]

Currently translated at 63.8% (543 of 851 strings)

Translated using Weblate (Czech) [skip ci]

Currently translated at 63.8% (543 of 851 strings)

Translated using Weblate (Bulgarian) [skip ci]

Currently translated at 63.8% (543 of 851 strings)

Translated using Weblate (Arabic) [skip ci]

Currently translated at 63.9% (544 of 851 strings)

Translated using Weblate (Spanish) [skip ci]

Currently translated at 68.5% (583 of 851 strings)

Translated using Weblate (Dutch) [skip ci]

Currently translated at 67.3% (573 of 851 strings)

Translated using Weblate (Chinese (Simplified) (zh_CN)) [skip ci]

Currently translated at 69.4% (591 of 851 strings)

Translated using Weblate (Chinese (Simplified) (zh_CN)) [skip ci]

Currently translated at 69.4% (591 of 851 strings)

Co-authored-by: Anonymous <noreply@weblate.org>
Co-authored-by: DarkFighterLuke <luca-consoli@live.it>
Co-authored-by: Giorgio <sannagiorgio1997@gmail.com>
Co-authored-by: Havok Dan <havokdan@yahoo.com.br>
Co-authored-by: Oskari Lavinto <olavinto@protonmail.com>
Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: ZakiZtraki <vovanjudo@gmail.com>
Co-authored-by: lhquark <lhquark@gmail.com>
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/ar/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/bg/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/ca/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/cs/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/da/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/de/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/el/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/es/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/fi/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/fr/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/he/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/hi/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/is/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/it/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/ja/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/ko/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/nb_NO/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/nl/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/pl/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/pt/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/pt_BR/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/ro/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/ru/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/sk/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/sv/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/th/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/tr/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/uk/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/vi/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/zh_CN/
Translation: Servarr/Readarr
2022-05-09 17:32:50 -05:00
Qstick 03d2a85821 Fixed: Correct User-Agent api logging
(cherry picked from commit 5824ba963b480c920cee9d8ae6594c820167cd07)
2022-05-06 20:15:01 -05:00
Qstick fa68a9559f Deleted translation using Weblate (zh_HANS (generated) (zh_HANS)) [skip ci] 2022-05-01 22:35:19 -05:00
Qstick c4a2a432d2 Deleted translation using Weblate (zh_HANS (generated) (zh_HANS)) [skip ci] 2022-05-01 22:34:16 -05:00
Weblate 0b3eda4de3 Added translation using Weblate (zh_HANS (generated) (zh_HANS)) [skip ci]
Deleted translation using Weblate (Chinese (Min Nan)) [skip ci]

Translated using Weblate (Chinese (Simplified)) [skip ci]

Currently translated at 22.6% (193 of 851 strings)

Translated using Weblate (Chinese (Simplified) (zh_CN)) [skip ci]

Currently translated at 58.5% (498 of 851 strings)

Translated using Weblate (Portuguese (Brazil)) [skip ci]

Currently translated at 100.0% (851 of 851 strings)

Translated using Weblate (Chinese (Simplified)) [skip ci]

Currently translated at 3.2% (28 of 851 strings)

Translated using Weblate (Chinese (Simplified) (zh_CN)) [skip ci]

Currently translated at 58.5% (498 of 851 strings)

Translated using Weblate (Dutch) [skip ci]

Currently translated at 56.9% (485 of 851 strings)

Translated using Weblate (Dutch) [skip ci]

Currently translated at 56.8% (484 of 851 strings)

Update translation files [skip ci]

Updated by "Remove blank strings" hook in Weblate.

Translated using Weblate (Chinese (Simplified)) [skip ci]

Currently translated at 3.1% (27 of 851 strings)

Translated using Weblate (Portuguese (Brazil)) [skip ci]

Currently translated at 100.0% (851 of 851 strings)

Translated using Weblate (Chinese (Simplified)) [skip ci]

Currently translated at 1.6% (14 of 851 strings)

Translated using Weblate (Portuguese (Brazil)) [skip ci]

Currently translated at 100.0% (851 of 851 strings)

Translated using Weblate (French) [skip ci]

Currently translated at 58.7% (500 of 851 strings)

Translated using Weblate (Portuguese (Brazil)) [skip ci]

Currently translated at 98.8% (841 of 851 strings)

Translated using Weblate (Ukrainian) [skip ci]

Currently translated at 6.8% (58 of 851 strings)

Translated using Weblate (Chinese (Simplified) (zh_CN)) [skip ci]

Currently translated at 58.5% (498 of 851 strings)

Translated using Weblate (Chinese (Simplified) (zh_CN)) [skip ci]

Currently translated at 58.5% (498 of 851 strings)

Translated using Weblate (Portuguese (Brazil)) [skip ci]

Currently translated at 95.1% (810 of 851 strings)

Translated using Weblate (Hungarian) [skip ci]

Currently translated at 100.0% (851 of 851 strings)

Translated using Weblate (Finnish) [skip ci]

Currently translated at 70.7% (602 of 851 strings)

Translated using Weblate (German) [skip ci]

Currently translated at 82.1% (699 of 851 strings)

Translated using Weblate (Spanish) [skip ci]

Currently translated at 59.3% (505 of 851 strings)

Translated using Weblate (Spanish) [skip ci]

Currently translated at 59.3% (505 of 851 strings)

Co-authored-by: Ana <phampyk@gmail.com>
Co-authored-by: AnlakHui <AnlakHui@gmail.com>
Co-authored-by: Csaba <csab0825@gmail.com>
Co-authored-by: Havok Dan <havokdan@yahoo.com.br>
Co-authored-by: M1C <webnar@gmail.com>
Co-authored-by: Mateo Periago Serrano <mateoperi@pm.me>
Co-authored-by: Oskari Lavinto <olavinto@protonmail.com>
Co-authored-by: Qstick <qstick@gmail.com>
Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: Zalhera <tobias.bechen@gmail.com>
Co-authored-by: andrey4korop <andrey999@i.ua>
Co-authored-by: jianjam <jianjam@qq.com>
Co-authored-by: killsover <w904202822@163.com>
Co-authored-by: lhquark <lhquark@gmail.com>
Co-authored-by: marcosteam <wdy71608161@gmail.com>
Co-authored-by: minermartijn <minermartijn@gmail.com>
Co-authored-by: neoestremi <remidu34070@hotmail.fr>
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/de/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/es/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/fi/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/fr/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/hu/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/nl/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/pt_BR/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/uk/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/zh_CN/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/zh_Hans/
Translation: Servarr/Readarr
2022-05-01 22:34:16 -05:00
Mark McDowall a1d4b3a0cf Fixed: UI hiding search results with duplicate GUIDs
(cherry picked from commit 458c5cd0b3c8efe6fc7cd852c357138468f8446e)
2022-04-24 13:54:39 -05:00
Douglas R Andreani 28f055e838 New: Add date picker for custom filter dates
(cherry picked from commit 5a08d5dc248bf1dbaa43264a2a470149cf716a3c)
2022-04-18 21:08:44 -05:00
Mark McDowall 8d91fb81bd Fixed: Interactive Search Filter not filtering multiple qualities in the same filter row
(cherry picked from commit c93f63cd204bf62dab3dffef6e29c8dd4c408cab)
2022-04-18 21:08:30 -05:00
bakerboy448 085913a852 Fixed: Clarify Qbit Content Path Error
(cherry picked from commit bba4a5636ed07277d82531c35cfc996bd17870eb)
2022-04-06 22:09:34 -05:00
ta264 8599fc4ee6 Fix .editorconfig to disallow this
(cherry picked from commit be29fc6adb2c8d8e52afea301118cf413bdc2d57)
2022-04-06 15:28:32 -05:00
Marcelo Castagna 68f017cd84 Fixed: Properly handle 119 error code from Synology Download Station
(cherry picked from commit 3be5d6c258bd947ae4c4d895b2f54faa5a7a222b)
2022-04-05 20:40:56 -05:00
bakerboy448 f34171444e Fixed: API error when sending payload without optional parameters
Co-authored-by: Qstick <qstick@gmail.com>

(cherry picked from commit 8d83b1d8d66ef24a25f312bdeac1e5625a630c00)
2022-04-05 20:40:36 -05:00
Qstick 10760471e0 Fixed: Cleanup Temp files after backup creation
(cherry picked from commit 7f0b708cb9f16a0116199625a2a5b4e67049be6a)
2022-04-05 20:40:13 -05:00
ta264 4ecabcd3d6 Fixed: Loading old commands from database
(cherry picked from commit 0f87cb72e559a19bddc6c9d4387ec7d9428291f8)
2022-04-02 20:05:00 +01:00
Weblate 1af2e14474 Translated using Weblate (Chinese (Simplified)) [skip ci]
Currently translated at 0.7% (6 of 851 strings)

Translated using Weblate (Chinese (Simplified) (zh_CN)) [skip ci]

Currently translated at 58.6% (499 of 851 strings)

Translated using Weblate (Portuguese (Brazil)) [skip ci]

Currently translated at 94.7% (806 of 851 strings)

Translated using Weblate (Chinese (Simplified) (zh_CN)) [skip ci]

Currently translated at 58.6% (499 of 851 strings)

Translated using Weblate (Chinese (Simplified) (zh_CN)) [skip ci]

Currently translated at 57.5% (490 of 851 strings)

Translated using Weblate (Portuguese (Brazil)) [skip ci]

Currently translated at 94.4% (804 of 851 strings)

Co-authored-by: Havok Dan <havokdan@yahoo.com.br>
Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: killsover <w904202822@163.com>
Co-authored-by: libsu <libsu@qq.com>
Co-authored-by: 無情天 <kofzhanganguo@126.com>
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/pt_BR/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/zh_CN/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/zh_Hans/
Translation: Servarr/Readarr
2022-04-01 07:32:31 -05:00
Ajax fe836c56ee New: Update Cert Validation Help Text
(cherry picked from commit 66be23a7c4ae717cf060f5e89b4df7a08bdff5ac)

Closes #1541
Closes #1546
2022-03-31 20:46:08 -05:00
bakerboy448 ae611cca74 Fix Release Profile Typos 2022-03-31 20:46:08 -05:00
bakerboy448 c446f9835e Fixed: Clarify Indexer Priority Helptext
(cherrypicked from f4dbda1318564463b23056b866cb87a7c0e50393)

Closes #1481
2022-03-31 20:46:08 -05:00
bakerboy448 2ff8bf204f Fixed: Improve help text for download client Category
(cherry picked from commit d18751eff2c684a72e4c698a1e0f6c282c8da0da)

Closes #1535
2022-03-31 20:46:08 -05:00
Ajax 5aa17e7a67 Fixed: IPv4 instead of IP4
(cherry picked from commit c7427f8df828733a81d83ea28393a18d10875769)

Closes #1532
2022-03-31 20:46:08 -05:00
bakerboy448 312cf2d364 remove unnecessary usings 2022-03-31 20:44:49 -05:00
Taloth Saldono a9852ded2f Add response size to http responses
(cherry picked from commit d899225509f04a9b6c72da19c7d63ff53498de22)
2022-03-23 19:58:08 -05:00
Weblate 4286f546e9 Translated using Weblate (Spanish) [skip ci]
Currently translated at 59.6% (508 of 851 strings)

Translated using Weblate (Chinese (Simplified) (zh_CN)) [skip ci]

Currently translated at 57.5% (490 of 851 strings)

Translated using Weblate (Chinese (Simplified) (zh_CN)) [skip ci]

Currently translated at 57.3% (488 of 851 strings)

Translated using Weblate (French) [skip ci]

Currently translated at 58.5% (498 of 851 strings)

Co-authored-by: EthanChoy <ethanchoy@163.com>
Co-authored-by: Kakise <sam.taa@icloud.com>
Co-authored-by: RicardoVelaC <ricardovelac@gmail.com>
Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: westay1984 <westjay@qq.com>
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/es/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/fr/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/zh_CN/
Translation: Servarr/Readarr
2022-03-23 19:57:48 -05:00
Qstick 482fe04161 New: Add Validations for Recycle Bin Folder 2022-03-23 19:26:11 -05:00
Qstick cbdc2c51c4 Improve path validation for Custom Script notifications 2022-03-23 19:21:12 -05:00
Weblate f55fda9bac Translated using Weblate (Spanish) [skip ci]
Currently translated at 57.2% (487 of 851 strings)

Translated using Weblate (Chinese (Simplified)) [skip ci]

Currently translated at 0.5% (5 of 851 strings)

Translated using Weblate (Chinese (Simplified) (zh_CN)) [skip ci]

Currently translated at 57.5% (490 of 851 strings)

Co-authored-by: Ayi <4ayixd@gmail.com>
Co-authored-by: Mateo Periago Serrano <mateoperi@pm.me>
Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: liuliping <306166677@qq.com>
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/es/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/zh_CN/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/zh_Hans/
Translation: Servarr/Readarr
2022-03-18 14:41:35 -05:00
Weblate 3841f7708e Translated using Weblate (Hungarian) [skip ci]
Currently translated at 100.0% (851 of 851 strings)

Translated using Weblate (Portuguese (Brazil)) [skip ci]

Currently translated at 91.8% (782 of 851 strings)

Translated using Weblate (Portuguese) [skip ci]

Currently translated at 68.7% (585 of 851 strings)

Co-authored-by: Csaba <csab0825@gmail.com>
Co-authored-by: Havok Dan <havokdan@yahoo.com.br>
Co-authored-by: José Eduardo Veiga <vitruxpt@vitruxbot.com>
Co-authored-by: Weblate <noreply@weblate.org>
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/hu/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/pt/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/pt_BR/
Translation: Servarr/Readarr
2022-03-11 01:44:35 -06:00
ta264 f2bfed0252 New: .NET 6.0.3 2022-03-09 21:47:57 +00:00
PearsonFlyer bc7e4ea622 Fixed: Healthcheck warning message used incorrect variable 2022-03-09 14:14:54 -06:00
Marcelo Castagna 38f16e6b85 Update Synology error codes
(cherry picked from commit a8cb7784f2a6f833bda9e24ca2146701df8da75c)
2022-03-08 16:10:53 -06:00
Weblate af57024c63 Translated using Weblate (French) [skip ci]
Currently translated at 57.5% (490 of 851 strings)

Translated using Weblate (Chinese (Traditional) (zh_TW)) [skip ci]

Currently translated at 0.1% (1 of 851 strings)

Translated using Weblate (Portuguese (Brazil)) [skip ci]

Currently translated at 90.7% (772 of 851 strings)

Translated using Weblate (Portuguese (Brazil)) [skip ci]

Currently translated at 90.7% (772 of 851 strings)

Translated using Weblate (Portuguese) [skip ci]

Currently translated at 66.8% (569 of 851 strings)

Translated using Weblate (Russian) [skip ci]

Currently translated at 56.0% (477 of 851 strings)

Translated using Weblate (Hungarian) [skip ci]

Currently translated at 100.0% (851 of 851 strings)

Translated using Weblate (Finnish) [skip ci]

Currently translated at 71.3% (607 of 851 strings)

Translated using Weblate (German) [skip ci]

Currently translated at 82.4% (702 of 851 strings)

Translated using Weblate (Dutch) [skip ci]

Currently translated at 57.3% (488 of 851 strings)

Update translation files [skip ci]

Updated by "Cleanup translation files" hook in Weblate.

Update translation files [skip ci]

Updated by "Cleanup translation files" hook in Weblate.

Co-authored-by: AlexR-sf <omg.portal.supp@gmail.com>
Co-authored-by: Csaba <csab0825@gmail.com>
Co-authored-by: Havok Dan <havokdan@yahoo.com.br>
Co-authored-by: KevoM <lilmarsu@gmail.com>
Co-authored-by: Nuno Filipe de Vilhena Santos <nunovilhenasantos@msn.com>
Co-authored-by: Oskari Lavinto <olavinto@protonmail.com>
Co-authored-by: Renan da Mota Ciciliato <renanciciliato@gmail.com>
Co-authored-by: Rico_Walker <ricardo.walker1203@gmail.com>
Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: Zalhera <tobias.bechen@gmail.com>
Co-authored-by: nopetw <lubduphaur@gmail.com>
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/de/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/fi/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/fr/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/hu/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/nl/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/pt/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/pt_BR/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/ru/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/zh_TW/
Translation: Servarr/Readarr
2022-03-07 13:14:37 +00:00
bakerboy448 54faa58a4d Fixed: Assume SABnzbd develop version is 3.0.0 if not specified
(cherry picked from commit 77412f23766e8bb553e83d87f1e599e795a67f8b)
2022-03-06 21:27:33 -06:00
servarr[bot] 8ca35a709c Fixed: Updater version number logging
(cherry picked from commit b34f4fde1bbe611bb5c886890e3be7cec2b96e6b)
2022-03-06 21:26:52 -06:00
bakerboy448 72a0e38b36 Fixed: Update from version in logs
Closes #1574

(cherry picked from commit bc3e3714b97dec19091e45324d9f2b550f1dbbd5)
2022-03-04 20:46:06 -06:00
bakerboy448 b25f8449a2 New: Add more information about Windows service to installer
Closes #520
2022-02-22 20:54:53 +00:00
Mark McDowall cf0a15a308 Fixed: Recycle bin log message
(cherry picked from commit 9e1b799fb74c341510d6da98f9f658d642b25c02)
2022-02-22 12:46:43 -06:00
ta264 a677098f0f Fixed: Make authentication cookie name unique to Readarr 2022-02-20 21:32:38 +00:00
ta264 a40cce9c71 Bump to 0.1.1 2022-02-20 21:31:57 +00:00
ta264 6d94136273 Report runtime identifier to sentry
[common]
2022-02-20 13:32:21 +00:00
ta264 f6d620f969 Fixed: Crash on startup on arm32 due to ImageSharp
See https://github.com/SixLabors/ImageSharp/issues/2001
2022-02-20 12:06:06 +00:00
ta264 8d9302da77 Fixed: No longer require first run as admin on windows 2022-02-16 21:07:58 +00:00
ta264 f5cbab6ac9 Fixed: Exception tagging audio files on import
Fixes #1523
2022-02-15 21:51:23 +00:00
ta264 cb0ae36033 Fixed: Enable response compression over https
[common]
2022-02-15 21:11:39 +00:00
ta264 93a42e2fe9 Fix duplicates in author search 2022-02-11 21:32:09 +00:00
ta264 0f9ab46dd6 New: Upgrade to .NET 6.0.2 2022-02-09 20:59:34 +00:00
ta264 3a360d7a1e Fixed: Contain memory usage during library import 2022-02-09 20:59:34 +00:00
ta264 8e37aa2e78 Fixed: Take publisher and format into account when choosing best edition 2022-02-09 20:59:34 +00:00
ta264 000022a927 Fixed: Return sensible value from Levenshtein when distance too large 2022-02-09 20:59:34 +00:00
ta264 2bfc50b59b Fixed: Don't forget about existing match when trying remote candidates 2022-02-09 20:59:34 +00:00
ta264 4f46ab9a9a Speed up FuzzyContains a bit more 2022-02-04 19:57:24 +00:00
ta264 e7410959fe Fixed: Correct and speed up FuzzyContains
Fixes READARR-C1
2022-02-04 17:28:33 +00:00
PearsonFlyer ee1112026a Fixed: Updated ruTorrent stopped state helptext 2022-01-26 10:52:43 -06:00
ta264 65681cad10 Fixed: Catch any exceptions thrown identifying books 2022-01-25 21:02:33 +00:00
ta264 9653f9bbca Fixed: Error reading PDF file
Fixes READARR-6P
2022-01-24 21:16:55 +00:00
ta264 6f97ca9a55 Fixed: Handle missing category when getting Qbittorrent download path
[common]

Fixes READARR-2VR
Fixes READARR-1GP
2022-01-24 21:13:20 +00:00
ta264 c0e193dd1f Fixed: Improve fuzzy matching algorithm to match around word boundaries
Fixes READARR-C1
2022-01-24 20:58:00 +00:00
ta264 ecf1e1a130 Fixed: Error splitting subtitle from book title
Fixes #1473
Fixes READARR-39N
Fixes READARR-3ES
Fixes READARR-6CM
2022-01-24 20:58:00 +00:00
PearsonFlyer 967dae5132 Fixed: Email attachments of ebooks 2022-01-24 18:04:36 -06:00
PearsonFlyer f4b96dc45e Fixed: Avoid download path check false positives for Flood
(cherry picked from commit d4d4bf8784fedbf76f938685229a700a2e552e79)
2022-01-23 16:22:26 -06:00
bakerboy448 8181749629 Fixed: Improved Indexer test failure message when no results are returned
(cherry picked from commit 05b1581b7dfa5bc8a2b38a60179e3472c8134f74)
2022-01-23 16:19:18 -06:00
PearsonFlyer 9bca258541 Fixed: Changed movie references to book 2022-01-22 15:04:08 -06:00
bakerboy448 77d2db3c47 Fixed: More Translations 2022-01-22 19:23:24 +00:00
ta264 1dd61e826b Fixed: SourceTitle if Book Title null in Discord ImportFailed event
Fixes READARR-FG
2022-01-20 22:08:00 +00:00
ta264 857a5f5005 Fix remote path mapping health check interface 2022-01-20 22:21:41 +00:00
bakerboy448 a321288a71 Fixed: Various Translations
Fixes #1209
2022-01-21 13:45:54 +00:00
ta264 62a3355546 Remove unused code 2022-01-21 13:28:04 +00:00
ta264 6db135877a Build installer from build.sh
[common]
2022-01-21 13:28:04 +00:00
ta264 fa1985509d Centralise image choice, update to latest images
[common]
2022-01-21 13:28:04 +00:00
ta264 01a5c456c4 Fixed: Set part numbers using alphabetical file ordering if not set in tags 2022-01-19 21:29:50 +00:00
ta264 3ec451e85e Fixed: Correct the 'Ignored' history filter
Closes #1463
2022-01-19 21:29:50 +00:00
Weblate bf7fc6fa19 Translated using Weblate (Portuguese (Brazil)) [skip ci]
Currently translated at 96.4% (763 of 791 strings)

Translated using Weblate (Hungarian) [skip ci]

Currently translated at 100.0% (791 of 791 strings)

Update translation files [skip ci]

Updated by "Cleanup translation files" hook in Weblate.

Update translation files [skip ci]

Updated by "Cleanup translation files" hook in Weblate.

Translated using Weblate (Hungarian) [skip ci]

Currently translated at 100.0% (787 of 787 strings)

Co-authored-by: Csaba <csab0825@gmail.com>
Co-authored-by: Havok Dan <havokdan@yahoo.com.br>
Co-authored-by: Weblate <noreply@weblate.org>
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/hu/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/pt_BR/
Translation: Servarr/Readarr
2022-01-20 11:17:28 +00:00
Mark McDowall cbf2f0f4fb Fixed: Jump bar on series page not showing when window is made wider
(cherry picked from commit 0cb8d93069d6310abd39ee2fe73219e17aa83fe6)
2022-01-20 11:16:37 +00:00
ta264 565fb77713 Fixed: Attempt to fix uncaught exceptions fetching book data
Closes #1465
Closes #1464
2022-01-20 10:50:51 +00:00
Robin Dadswell 3ea0c8e5fa New: End Jackett 'all' endpoint support
(cherry picked from commit 54c914d48fefa730728518d50fc9e49032d0947b)
2022-01-20 10:50:51 +00:00
Qstick 61454955be New: Support server notifications
(cherry picked from commit f5f0dd6fae5bc9f308506d56be42ac9a4be908e7)
2022-01-20 10:50:51 +00:00
ta264 34506025ac Fixed: Better searching for local candidate editions 2022-01-20 10:50:51 +00:00
ta264 ef35efb127 Fixed: Make sure exactly one edition is monitored when using remote candidates 2022-01-20 10:50:51 +00:00
ta264 2a4f681b17 Fixed: Speed up RSS sync 2022-01-20 10:50:51 +00:00
bakerboy448 24e2ff56dd New: Various Healthcheck enhancements
Various pulls from Radarr;  Completed at the file - not commit - level
2022-01-19 18:47:38 +00:00
Qstick c5787b0c87 New: Add AppName to system status response 2022-01-18 23:26:09 -06:00
Qstick d6ba6bbfd1 Fixed: Parse endpoint response when title failed to parse
Fixes #1175

Co-Authored-By: Taloth <Taloth@users.noreply.github.com>
2022-01-18 18:35:10 -06:00
ta264 de72cfcaaa Update DSN 2022-01-16 22:37:06 +00:00
ta264 90d671d68d Fixed: Error fetching metadata when redirected to work endpoint 2022-01-16 22:09:21 +00:00
ta264 b4b14a5359 Fixed: Error parsing books with no contributors
Fixes #1454
2022-01-16 22:09:21 +00:00
ta264 759c132797 Fixed: Allow scrolling in Select Edition modal
Fixes #1442
2022-01-16 22:09:21 +00:00
ta264 dc1fbb3a7e Fixed: Support nested file naming formats 2022-01-16 22:09:21 +00:00
ta264 eb431f09fd Fixed: Close all database connections on shutdown to remove shm/wal files
[common]
2022-01-16 22:00:47 +00:00
ta264 0031214fb3 Fixed: Check language of book file matches edition language if possible 2022-01-16 21:57:09 +00:00
bakerboy448 94adb4d582 Fixed: Added Various Missing Translations
cleanup en.json of unused translates

Fixes #1397

Closes Sonarr PR # 4791 'Fixed: Better wording of MissingFromDisk'
2022-01-16 21:53:43 +00:00
ta264 bc3764dcda Fixed: Error getting search results when there is only one result 2022-01-16 21:47:52 +00:00
bakerboy448 64fafc599c fix calibre validation typo 2022-01-17 09:17:01 +00:00
ta264 53f66606bc New: Upgrade to .NET 6.0.1 2022-01-17 09:14:28 +00:00
Qstick 706f8310bb Fixed: Use general settings cert validation for email 2022-01-17 09:14:28 +00:00
ta264 ae4994571a Fixed: Use our own HttpClient for Aria2 requests 2022-01-17 09:14:28 +00:00
ta264 258847a83b Fixed: Use our own HttpClient for rTorrent RPC requests 2022-01-17 09:14:28 +00:00
Qstick 43f1d77b9f Fixed: Twitter connect not sending messages after http rework 2022-01-17 09:14:28 +00:00
ta264 f451796cf5 Fixed: Better check for write access in Calibre 2022-01-16 13:33:16 +00:00
Weblate 620fb57b30 Translated using Weblate (Portuguese (Brazil)) [skip ci]
Currently translated at 99.7% (785 of 787 strings)

Translated using Weblate (Hungarian) [skip ci]

Currently translated at 100.0% (787 of 787 strings)

Translated using Weblate (Hungarian) [skip ci]

Currently translated at 100.0% (787 of 787 strings)

Translated using Weblate (Finnish) [skip ci]

Currently translated at 71.2% (561 of 787 strings)

Translated using Weblate (Russian) [skip ci]

Currently translated at 63.0% (496 of 787 strings)

Translated using Weblate (Finnish) [skip ci]

Currently translated at 71.1% (560 of 787 strings)

Translated using Weblate (German) [skip ci]

Currently translated at 70.3% (554 of 787 strings)

Translated using Weblate (Portuguese (Brazil)) [skip ci]

Currently translated at 99.7% (785 of 787 strings)

Translated using Weblate (Russian) [skip ci]

Currently translated at 63.0% (496 of 787 strings)

Translated using Weblate (Portuguese (Brazil)) [skip ci]

Currently translated at 99.8% (769 of 770 strings)

Translated using Weblate (Russian) [skip ci]

Currently translated at 64.2% (495 of 770 strings)

Translated using Weblate (German) [skip ci]

Currently translated at 71.9% (554 of 770 strings)

Translated using Weblate (Russian) [skip ci]

Currently translated at 64.2% (495 of 770 strings)

Co-authored-by: AlexR-sf <omg.portal.supp@gmail.com>
Co-authored-by: Csaba <csab0825@gmail.com>
Co-authored-by: Gian Klug <gian.klug@ict-scouts.ch>
Co-authored-by: Havok Dan <havokdan@yahoo.com.br>
Co-authored-by: Oskari Lavinto <olavinto@protonmail.com>
Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: diemade <spamkill@posteo.ch>
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/de/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/fi/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/hu/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/pt_BR/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/ru/
Translation: Servarr/Readarr
2022-01-15 13:25:44 +00:00
PearsonFlyer bca70e931f Fixed: Translation warning for search all 2022-01-15 13:12:24 +00:00
ta264 c7f0a8578a Fixed: Calibre auth check when library missing 2022-01-15 06:04:15 +00:00
ta264 c92563ea10 New: Validate remote calibre servers have authentication enabled 2022-01-14 19:54:18 +00:00
ta264 66e7ce6f27 Fixed: Queue items hanging in 'Downloaded - Importing' state 2022-01-14 19:54:18 +00:00
ta264 b1da9a1934 Fixed: Null reference setting download history for unmapped downloads 2022-01-14 19:54:17 +00:00
BookInfo 1491788081 Move all data fetching to BookInfo v2 2022-01-14 19:54:06 +00:00
ta264 33e1c4a537 Fixed: Books must match the edition title, not the work title 2022-01-03 21:23:58 +00:00
ta264 8c3dd3730a Fixed: Determine book author as primary author of most popular edition 2022-01-03 21:17:52 +00:00
bakerboy448 02927dc37d Fixed: Various Wiki Links 2021-12-30 16:39:18 -06:00
Robin Dadswell be46d5ae8f New: On delete notifications 2021-12-30 16:38:49 -06:00
bakerboy448 e4fdf71eee New: Display Unknown Items in Activity Queue by Default 2021-12-27 17:46:48 -06:00
ta264 9a2260a00f Revert "Move all data fetching to BookInfo"
This reverts commit f6ff53ca31.
2021-12-26 19:01:35 +00:00
Qstick 399a370e7a Fix Index creation on migration 20 2021-12-25 15:20:58 -06:00
Weblate ff27ad2096 Translated using Weblate (Slovak) [skip ci]
Currently translated at 6.2% (48 of 770 strings)

Translated using Weblate (Icelandic) [skip ci]

Currently translated at 63.8% (492 of 770 strings)

Translated using Weblate (Hebrew) [skip ci]

Currently translated at 64.2% (495 of 770 strings)

Translated using Weblate (Italian) [skip ci]

Currently translated at 65.9% (508 of 770 strings)

Translated using Weblate (Dutch) [skip ci]

Currently translated at 65.7% (506 of 770 strings)

Translated using Weblate (Polish) [skip ci]

Currently translated at 63.8% (492 of 770 strings)

Translated using Weblate (Spanish) [skip ci]

Currently translated at 64.6% (498 of 770 strings)

Translated using Weblate (Greek) [skip ci]

Currently translated at 63.8% (492 of 770 strings)

Translated using Weblate (Vietnamese) [skip ci]

Currently translated at 63.8% (492 of 770 strings)

Translated using Weblate (Romanian) [skip ci]

Currently translated at 63.8% (492 of 770 strings)

Translated using Weblate (Thai) [skip ci]

Currently translated at 63.8% (492 of 770 strings)

Translated using Weblate (Russian) [skip ci]

Currently translated at 64.2% (495 of 770 strings)

Translated using Weblate (Korean) [skip ci]

Currently translated at 62.9% (485 of 770 strings)

Translated using Weblate (French) [skip ci]

Currently translated at 66.1% (509 of 770 strings)

Translated using Weblate (Chinese (Simplified) (zh_CN)) [skip ci]

Currently translated at 66.2% (510 of 770 strings)

Translated using Weblate (German) [skip ci]

Currently translated at 71.6% (552 of 770 strings)

Translated using Weblate (Turkish) [skip ci]

Currently translated at 64.0% (493 of 770 strings)

Translated using Weblate (Czech) [skip ci]

Currently translated at 64.2% (495 of 770 strings)

Translated using Weblate (Norwegian Bokmål) [skip ci]

Currently translated at 8.1% (63 of 770 strings)

Translated using Weblate (Portuguese) [skip ci]

Currently translated at 76.7% (591 of 770 strings)

Translated using Weblate (Arabic) [skip ci]

Currently translated at 64.0% (493 of 770 strings)

Translated using Weblate (Swedish) [skip ci]

Currently translated at 96.4% (743 of 770 strings)

Translated using Weblate (Finnish) [skip ci]

Currently translated at 72.7% (560 of 770 strings)

Translated using Weblate (Bulgarian) [skip ci]

Currently translated at 63.7% (491 of 770 strings)

Translated using Weblate (Japanese) [skip ci]

Currently translated at 63.8% (492 of 770 strings)

Translated using Weblate (Hindi) [skip ci]

Currently translated at 63.8% (492 of 770 strings)

Translated using Weblate (Danish) [skip ci]

Currently translated at 63.8% (492 of 770 strings)

Translated using Weblate (Finnish) [skip ci]

Currently translated at 72.7% (560 of 770 strings)

Added translation using Weblate (Ukrainian) [skip ci]

Added translation using Weblate (Persian) [skip ci]

Added translation using Weblate (Bengali) [skip ci]

Translated using Weblate (Portuguese (Brazil)) [skip ci]

Currently translated at 100.0% (770 of 770 strings)

Translated using Weblate (Russian) [skip ci]

Currently translated at 62.0% (478 of 770 strings)

Translated using Weblate (Hungarian) [skip ci]

Currently translated at 100.0% (770 of 770 strings)

Translated using Weblate (Portuguese) [skip ci]

Currently translated at 74.8% (575 of 768 strings)

Co-authored-by: AlexR-sf <omg.portal.supp@gmail.com>
Co-authored-by: Anonymous <noreply@weblate.org>
Co-authored-by: Csaba <csab0825@gmail.com>
Co-authored-by: Havok Dan <havokdan@yahoo.com.br>
Co-authored-by: Nuno Filipe de Vilhena Santos <nunovilhenasantos@msn.com>
Co-authored-by: Oskari Lavinto <olavinto@protonmail.com>
Co-authored-by: Weblate <noreply@weblate.org>
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/ar/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/bg/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/cs/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/da/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/de/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/el/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/es/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/fi/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/fr/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/he/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/hi/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/hu/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/is/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/it/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/ja/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/ko/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/nb_NO/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/nl/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/pl/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/pt/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/pt_BR/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/ro/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/ru/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/sk/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/sv/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/th/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/tr/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/vi/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/zh_CN/
Translation: Servarr/Readarr
2021-12-24 10:12:41 -06:00
ta264 76bcf94f1d Fixed: Added missing sort token details for poster views
Fixes #1424
2021-12-23 21:41:43 +00:00
ta264 472da10149 Fixed: Fix book index footer stats
Fixes #1405
Fixes #1407
2021-12-23 21:41:43 +00:00
ta264 8011112919 Fixed: Error opening manual import for unmatched items
Fixes #1425
2021-12-23 21:41:43 +00:00
ta264 6d8adec7dc Fixed: Frontend error sorting book index by status
Fixes #1426
2021-12-23 21:41:43 +00:00
ta264 29c7404185 Fixed: Send primary series to Calibre
Fixes #1419
2021-12-23 21:41:43 +00:00
BookInfo f6ff53ca31 Move all data fetching to BookInfo 2021-12-24 15:41:29 +00:00
Davide Z 2dff18490e remove movies reference from readme.MD (#1423)[skip ci] 2021-12-21 09:45:32 -06:00
Qstick 6d7657e8b3 Bump RestSharp to 106.15.0
Fixes #1400
2021-12-18 10:30:48 -06:00
ta264 0db6cf272f New: Add release date sort option to book index view
Fixes #1403
2021-12-16 21:22:54 +00:00
ta264 5827644300 Fixed: Error getting seed config for rtorrent 2021-12-16 21:50:07 +00:00
ta264 d1f1052d7d Fixed: Missing / Wanted filter on book index view
Fixes #1366
2021-12-16 20:12:04 +00:00
ta264 341d64ebf7 Fixed: Don't try to read audio tags from a book file 2021-12-15 11:55:55 +00:00
ta264 c817d6c0d8 Fixed: Error 'Book with Id not found' in manual import 2021-12-15 11:55:55 +00:00
ta264 735fceb074 Fixed: Prevent duplicate searches on list add 2021-12-15 11:55:55 +00:00
ta264 0e43f67a9f Fixed: Track when calibre changes files to prevent unnecessary re-scans 2021-12-15 11:55:55 +00:00
ta264 eb95fe265a New: Send genres to calibre as tags 2021-12-15 11:55:55 +00:00
Taloth Saldono 3e32f7d49f Clarified Aria2 RPC Path field.
closes #4738
2021-12-15 11:55:55 +00:00
Mark McDowall 4b8c739b5c Aria2 fixes
Fixed: Removing completed downloads from Aria2
Fixed: Return correct path for Aria2 downloads in a job folder
Fixed: Seeding torrents in Aria2 are treated as finished downloading
2021-12-15 11:55:55 +00:00
Qstick eeb172d3bf Aria2 formatting cleanup 2021-12-15 11:55:55 +00:00
Mark McDowall e2745c5956 Fixed: Blocklisting pending releases 2021-12-15 11:55:55 +00:00
LLeny ede981f737 New: Aria2 Torrent Client 2021-12-15 11:55:55 +00:00
Jesse Chan e2c1d76516 Flood: explicitly cast DateFinished long? to long 2021-12-15 11:55:55 +00:00
Jesse Chan 05a8a3d764 New: Removing Flood downloads when seeding criteria have been met 2021-12-15 11:55:55 +00:00
leaty da262f3d95 New: Removing rtorrent downloads when seeding criteria have been met
(cherry picked from commit 411be4d0116f0739bb9c71235312d0c5a26dd3a2)
2021-12-15 11:55:55 +00:00
Taloth Saldono a5b1711827 Fixed: Refreshing Plex Server series in high volume systems
(cherry picked from commit 3fb55e9defdb90ab807fcacff249193a4d6114d5)
2021-12-15 11:55:55 +00:00
Mark McDowall 7b0802cfd6 Fixed: Errors loading queue after episodes in series are removed
Closes #3565
2021-12-15 11:55:55 +00:00
Mark McDowall 16fcba02ba Fixed: Update path before importing to ensure it hasn't changed
Closes #684
2021-12-15 11:55:55 +00:00
Mark McDowall b3c217d713 Some cleanup of things marked for removal in v3 2021-12-15 11:55:55 +00:00
Mark McDowall 975ff0baf3 Mark completed imports based on history as imported to remove from queue 2021-12-15 11:55:55 +00:00
Mark McDowall 0bb8672119 Fixed: Mark "BAD" Nzbget Downloads as Failed 2021-12-15 11:55:55 +00:00
Mark McDowall 9ebeee8b4f Fixed: Exception thrown when marking download as complete
Closes #326

(cherry picked from commit 27a9edf33d6ddb5f028f19b308245a067f1d8f2a)
2021-12-15 11:55:55 +00:00
Mark McDowall 894adbe91e Fixed: Error when processing release with files Sonarr is unable to parse 2021-12-15 11:55:55 +00:00
Mark McDowall e7628476f7 Additional logging when trying to complete tracked downloads
(cherry picked from commit 2df6b5370067635fdc9196451e09e4c2e6427eac)
2021-12-15 11:55:55 +00:00
Mark McDowall 3e5045e496 Fixed: Not removing seeded download if it was manual imported in some cases 2021-12-15 11:55:55 +00:00
Mark McDowall 95d93dfa09 Fixed: Manual import for unknown series items will properly mark as imported
Fixes: #277
(cherry picked from commit 3ffcf114682f9b1730f54706ecbf1bf237206bb1)
2021-12-15 11:55:55 +00:00
Mark McDowall 842f80d567 Fixed: Imports triggered through API not being marked as imported/removed from client
Fixes #258

(cherry picked from commit 382bcbcbeddcf04d5bc361744b6b57ca3c2c54e6)
2021-12-15 11:55:55 +00:00
Mark McDowall fc8b6014ec Fixed: Imported downloads not being removed when seeding goals are met
Fixes #3693
2021-12-15 11:55:55 +00:00
Mark McDowall 6fb24128f8 Fixed: Episodes removed from queue re-appearing on refresh
Fixes #249

(cherry picked from commit 1a921c09e5180e283f52411dd2d0344a96015c0c)
2021-12-15 11:55:55 +00:00
Mark McDowall 8dbd006978 Fixed: Remove seeded downloads if they've finished seeding after import 2021-12-15 11:55:55 +00:00
Mark McDowall fed67044f0 Fixed: Don't process downloads removed from the client 2021-12-15 11:55:55 +00:00
Mark McDowall f7c05d98a9 Don't re-trigger completed event 2021-12-15 11:55:55 +00:00
Mark McDowall 25b37ace34 Track fully imported downloads in separate history table
New: Improved detection of already imported downloads
Closes #232
2021-12-15 11:55:55 +00:00
Servarr e1eb9a0ba7 Translations from Weblate 2021-12-12 11:05:34 -06:00
ta264 b6055c3339 Fixed: Correctly set MonitorNewItems for new list authors 2021-12-08 21:30:24 +00:00
bakerboy448 0e78d8d535 Fixed: Support older glibc in libMonoPosixHelper
(based on Prowlarr 9e7af8369e165c19a2f181071e63bef6961cd64e)
2021-12-08 16:11:06 -06:00
ta264 0cf7953cab Fixed: Correctly force add duplicate books 2021-12-06 21:09:05 +00:00
Weblate 0d3cd24fb2 Translated using Weblate (Portuguese (Brazil)) [skip ci]
Currently translated at 98.4% (756 of 768 strings)

Translated using Weblate (Hungarian) [skip ci]

Currently translated at 100.0% (768 of 768 strings)

Translated using Weblate (Italian) [skip ci]

Currently translated at 64.7% (495 of 764 strings)

Translated using Weblate (Hungarian) [skip ci]

Currently translated at 100.0% (764 of 764 strings)

Translated using Weblate (Finnish) [skip ci]

Currently translated at 70.5% (539 of 764 strings)

Co-authored-by: Csaba <csab0825@gmail.com>
Co-authored-by: Havok Dan <havokdan@yahoo.com.br>
Co-authored-by: Oskari Lavinto <olavinto@protonmail.com>
Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: hidaba <nag@hidaba.com>
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/fi/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/hu/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/it/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/pt_BR/
Translation: Servarr/Readarr
2021-12-05 10:53:12 -06:00
bakerboy448 41d7a1f355 update contributing [skip ci] 2021-12-03 11:11:54 +00:00
bakerboy448 608c0f268f fixup! readme updates [skip ci] 2021-12-03 11:11:54 +00:00
bakerboy448 8c38e4ede8 readme updates [skip ci] 2021-12-03 11:11:54 +00:00
bakerboy448 4f791f965a Update Github Templates [skip ci]
(cherry picked from commit beb22844c960db8e0f42a32809ad74cffce06e09)
2021-12-03 11:11:38 +00:00
PearsonFlyer 0b0bebf3aa Fixed: Improved root folder setup page
(cherry picked from commit eb4f55de85)
2021-12-02 21:59:59 +00:00
ta264 05a0508d78 Fixed: Add author/book fails unless you change Monitor New Items value 2021-12-02 21:15:49 +00:00
ta264 6cecf23b88 Fixed: Removing from Goodreads shelf when different edition imported 2021-12-02 21:40:28 +00:00
Weblate fb0128e3be Translated using Weblate (Portuguese (Brazil)) [skip ci]
Currently translated at 100.0% (757 of 757 strings)

Translated using Weblate (Chinese (Simplified) (zh_CN)) [skip ci]

Currently translated at 64.4% (488 of 757 strings)

Translated using Weblate (Portuguese (Brazil)) [skip ci]

Currently translated at 99.7% (755 of 757 strings)

Translated using Weblate (Portuguese (Brazil)) [skip ci]

Currently translated at 98.1% (743 of 757 strings)

Translated using Weblate (Finnish) [skip ci]

Currently translated at 68.6% (520 of 757 strings)

Translated using Weblate (Finnish) [skip ci]

Currently translated at 68.6% (520 of 757 strings)

Translated using Weblate (Hungarian) [skip ci]

Currently translated at 100.0% (757 of 757 strings)

Translated using Weblate (Finnish) [skip ci]

Currently translated at 67.6% (512 of 757 strings)

Translated using Weblate (Portuguese (Brazil)) [skip ci]

Currently translated at 99.7% (743 of 745 strings)

Translated using Weblate (Hungarian) [skip ci]

Currently translated at 100.0% (745 of 745 strings)

Translated using Weblate (Finnish) [skip ci]

Currently translated at 66.8% (498 of 745 strings)

Co-authored-by: Csaba <csab0825@gmail.com>
Co-authored-by: Havok Dan <havokdan@yahoo.com.br>
Co-authored-by: Lizandra Candido da Silva <lizandra.c.s@gmail.com>
Co-authored-by: Oskari Lavinto <olavinto@protonmail.com>
Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: mm519897405 <baiya@vip.qq.com>
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/fi/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/hu/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/pt_BR/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/zh_CN/
Translation: Servarr/Readarr
2021-12-02 20:06:24 +00:00
ta264 6947e6e34c Fixed: Speed up initial author load 2021-12-01 21:56:48 +00:00
ta264 c51ae664aa New: Option to control which new author books get monitored 2021-12-01 21:23:23 +00:00
ta264 1d694af98e Workaround .net error serializing new object()
See https://github.com/dotnet/runtime/issues/61995
2021-12-01 21:23:22 +00:00
ta264 bc678e1976 Fixed: Books added via import list default to 'Automatically Switch Edition'
Fixes #565
2021-12-01 21:13:59 +00:00
Taloth Saldono c0db20a860 Fixed: OSX version detection
ref sonarr/4113 (not a fix, just partially)

(cherry picked from commit 026af222297d1d90d824e077e989ffd146bb5016)
2021-12-01 22:04:33 +00:00
Mark McDowall 621bb20756 Improve default path for Synology Download Station
Fixes: Missing default path for Download Station
Fixes: Error when getting destination path for Synology Download Station in health check

(cherry picked from commit 4bf3ab1511b4ea25642476bf9df13f91b6f73d76)
2021-12-01 21:18:46 +00:00
ta264 326d395da4 Fixed: Don't allow interactive import while book match is calculating
Fixes #1238
2021-11-29 21:49:12 +00:00
ta264 7be2effa05 Fixed: Sort by path in book index view
Fixes #1233
2021-11-28 19:24:39 +00:00
ta264 8f965a7cd5 New: Add book custom filters for author and automatic release switching
Fixes #1355
2021-11-28 19:19:39 +00:00
ta264 15dee29057 Fixed: Missing Book column in cutoff unmet 2021-11-28 19:11:18 +00:00
ta264 61617ff5bc Bump System.Data.Sqlite to fix osx-arm64 builds 2021-11-28 18:18:03 +00:00
ta264 27e3b5e630 Fixed: Windows installer and adding/removing services
Fixes #1361
2021-11-28 18:18:03 +00:00
ta264 1b6694739e Fixed: Sorting by Series, Rating and Status on author details page
Fixes #1315
2021-11-23 21:55:33 +00:00
ta264 a7c0eabb56 New: Series file naming tokens
Closes #25
Closes #26
2021-11-23 21:05:40 +00:00
Qstick 7c5188638f Fixed: Combine content headers with response headers
(cherry picked from commit c4cf38255e422b5c0d4e5c3909810cc596b0510b)
2021-11-24 01:59:19 +00:00
ta264 4ce405728a New: Add osx-arm64 and linux-musl-arm builds 2021-11-22 19:06:02 +00:00
ta264 615acdaebe New: Combine mass editor and author editor, enable book editor 2021-11-22 19:05:39 +00:00
Weblate d460cbf319 merge 2021-11-20 16:51:49 +00:00
ta264 4887ed0d2f New: Book editor on author details page 2021-11-19 20:03:32 +00:00
ta264 bf852cadbe Fixed: Prevent frontend errors when many books added to Readarr 2021-11-19 20:03:32 +00:00
ta264 05d24821f7 Fixed: Restarting windows service from UI
(cherry picked from commit 3ae1ccc5e25eb16420c1f4ab627f42e3f478b22e)
2021-11-19 20:03:32 +00:00
ta264 04e575903f Fixed: Tray app restart
(cherry picked from commit 5fce3bbedb48edc547d1e6a1db3af06b5542886d)
2021-11-19 20:03:32 +00:00
ta264 dfb9558868 Fixed: Broken SSL certificate validation option
(cherry picked from commit a6a761cb32a268c4447071dc692c428789063fce)
2021-11-19 20:03:32 +00:00
Weblate 808fb5f2aa Translated using Weblate (Chinese (Simplified) (zh_CN)) [skip ci]
Currently translated at 65.7% (488 of 742 strings)

Translated using Weblate (Korean) [skip ci]

Currently translated at 65.0% (483 of 742 strings)

Translated using Weblate (Japanese) [skip ci]

Currently translated at 65.3% (485 of 742 strings)

Translated using Weblate (Italian) [skip ci]

Currently translated at 66.3% (492 of 742 strings)

Translated using Weblate (Icelandic) [skip ci]

Currently translated at 65.3% (485 of 742 strings)

Translated using Weblate (Hungarian) [skip ci]

Currently translated at 100.0% (742 of 742 strings)

Translated using Weblate (Hindi) [skip ci]

Currently translated at 65.3% (485 of 742 strings)

Translated using Weblate (Hebrew) [skip ci]

Currently translated at 65.3% (485 of 742 strings)

Translated using Weblate (French) [skip ci]

Currently translated at 67.2% (499 of 742 strings)

Translated using Weblate (Finnish) [skip ci]

Currently translated at 65.3% (485 of 742 strings)

Translated using Weblate (Greek) [skip ci]

Currently translated at 65.3% (485 of 742 strings)

Translated using Weblate (German) [skip ci]

Currently translated at 73.1% (543 of 742 strings)

Translated using Weblate (German) [skip ci]

Currently translated at 73.1% (543 of 742 strings)

Translated using Weblate (Danish) [skip ci]

Currently translated at 65.3% (485 of 742 strings)

Translated using Weblate (Czech) [skip ci]

Currently translated at 65.3% (485 of 742 strings)

Translated using Weblate (Bulgarian) [skip ci]

Currently translated at 65.2% (484 of 742 strings)

Translated using Weblate (Arabic) [skip ci]

Currently translated at 65.4% (486 of 742 strings)

Translated using Weblate (Spanish) [skip ci]

Currently translated at 65.7% (488 of 742 strings)

Co-authored-by: Anonymous <noreply@weblate.org>
Co-authored-by: Csaba <csab0825@gmail.com>
Co-authored-by: mm519897405 <baiya@vip.qq.com>
Co-authored-by: reloxx <reloxx@interia.pl>
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/ar/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/bg/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/cs/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/da/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/de/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/el/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/es/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/fi/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/fr/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/he/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/hi/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/hu/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/is/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/it/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/ja/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/ko/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/zh_CN/
Translation: Servarr/Readarr
2021-11-18 02:00:01 -06:00
Weblate 9f62ee34f1 Translated using Weblate (Hungarian) [skip ci]
Currently translated at 100.0% (743 of 743 strings)

Translated using Weblate (Chinese (Simplified) (zh_CN)) [skip ci]

Currently translated at 65.7% (488 of 742 strings)

Translated using Weblate (Korean) [skip ci]

Currently translated at 65.0% (483 of 742 strings)

Translated using Weblate (Japanese) [skip ci]

Currently translated at 65.3% (485 of 742 strings)

Translated using Weblate (Italian) [skip ci]

Currently translated at 66.3% (492 of 742 strings)

Translated using Weblate (Icelandic) [skip ci]

Currently translated at 65.3% (485 of 742 strings)

Translated using Weblate (Hungarian) [skip ci]

Currently translated at 100.0% (742 of 742 strings)

Translated using Weblate (Hindi) [skip ci]

Currently translated at 65.3% (485 of 742 strings)

Translated using Weblate (Hebrew) [skip ci]

Currently translated at 65.3% (485 of 742 strings)

Translated using Weblate (French) [skip ci]

Currently translated at 67.2% (499 of 742 strings)

Translated using Weblate (Finnish) [skip ci]

Currently translated at 65.3% (485 of 742 strings)

Translated using Weblate (Greek) [skip ci]

Currently translated at 65.3% (485 of 742 strings)

Translated using Weblate (German) [skip ci]

Currently translated at 73.1% (543 of 742 strings)

Translated using Weblate (German) [skip ci]

Currently translated at 73.1% (543 of 742 strings)

Translated using Weblate (Danish) [skip ci]

Currently translated at 65.3% (485 of 742 strings)

Translated using Weblate (Czech) [skip ci]

Currently translated at 65.3% (485 of 742 strings)

Translated using Weblate (Bulgarian) [skip ci]

Currently translated at 65.2% (484 of 742 strings)

Translated using Weblate (Arabic) [skip ci]

Currently translated at 65.4% (486 of 742 strings)

Translated using Weblate (Spanish) [skip ci]

Currently translated at 65.7% (488 of 742 strings)

Co-authored-by: Anonymous <noreply@weblate.org>
Co-authored-by: Csaba <csab0825@gmail.com>
Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: mm519897405 <baiya@vip.qq.com>
Co-authored-by: reloxx <reloxx@interia.pl>
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/ar/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/bg/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/cs/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/da/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/de/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/el/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/es/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/fi/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/fr/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/he/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/hi/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/hu/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/is/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/it/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/ja/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/ko/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/zh_CN/
Translation: Servarr/Readarr
2021-11-17 14:30:07 +00:00
ta264 847a9eae93 New: Improve match by adding small penalty for missing isbn/asin 2021-11-17 14:30:01 +00:00
ta264 a9e181425b Fixed: Only send supported image data to calibre 2021-11-17 14:30:01 +00:00
ta264 357245a9eb Fixed: None metadata profile no longer grabs future books
Fixes #1234
2021-11-17 14:30:01 +00:00
ta264 8280908c39 Fixed: Import list exclusion display overflow
Fixes #1140
2021-11-17 14:30:01 +00:00
ta264 b05bd685bc New: Make monitoring existing books on an import list optional 2021-11-17 14:30:01 +00:00
ta264 33e5351add New: Add option to only monitor selected book when adding single book 2021-11-17 14:30:01 +00:00
ta264 a1c2986af8 Fixed: UI updates when new author book monitor state set
Fixes #1298
2021-11-17 14:30:01 +00:00
bakerboy448 2983b60026 Fixed: Cleanse APIKey from Signalr logging
[common]
2021-11-15 07:38:57 -06:00
bakerboy448 0d9e98cf51 various fixups of confusing UI translates 2021-11-15 07:38:32 -06:00
ta264 5d63ef01b6 Fixed: Calibre authentication with Basic auth 2021-11-14 21:06:02 +00:00
Qstick 0bb391235f Translation sync 2021-11-14 11:00:55 -06:00
ta264 c4d02c1666 Fixed: Gracefully fall back to ipv4 if ipv6 is broken 2021-11-14 15:38:11 +00:00
ta264 7c6adb0da7 New: Use native .NET socks proxy
(cherry picked from commit d93110336fea31565129b356c90043761f8c2c5b)
(cherry picked from commit 6a0bd0e8207d7e21240a91d219f279a9a7a1bf30)
2021-11-13 08:45:25 +00:00
ta264 8f2ae2beff New: Upgrade to .NET 6 2021-11-13 08:45:25 +00:00
ta264 f53a1d7942 Package updates 2021-11-13 08:45:25 +00:00
ta264 cef15887a4 Use modern HttpClient
(cherry picked from commit 402f8b296f17bf161824ec5ff40d67d036d00d94)
2021-11-13 08:45:25 +00:00
Qstick 5f946c0aa3 New: HealthCheck for valid Branch value
(cherry picked from commit ef2f954b814b10094de25d691812e699a587e0f4)
2021-11-11 18:04:26 +00:00
bakerboy448 7528ed4084 Fixed: Default Branch to Develop 2021-11-11 13:24:51 +00:00
Robin Dadswell e8ddaf6ccf Fixed: Audiobooks will not be attached to email notifications 2021-11-11 13:23:42 +00:00
ta264 c5281d04f1 Bump macos build agent 2021-11-11 11:08:43 +00:00
ta264 ec0e930a54 New: Goodreads listopia import list 2021-11-11 11:08:43 +00:00
ta264 fb7ec5c61e New: Goodreads series import list 2021-11-11 11:08:43 +00:00
ta264 cb2bd0273f Fixed: Null reference error importing some books 2021-11-11 11:08:43 +00:00
ta264 d6e55e2913 Fixed: Deleted books removed from UI 2021-11-11 11:08:43 +00:00
ta264 a3a914adfe Fixed: Forms login persists across restarts in docker
Closes #1307

(cherry picked from commit a219b4a1b869863b2ef47d4bdf33d308cb261ba3)
2021-11-11 11:08:43 +00:00
ta264 1835f15460 Improve ErrorHandler and quieten logging
Closes #1301

(cherry picked from commit 5fb6b449507af0b238afe6b699d8f55cc5deb790)
2021-11-11 11:08:43 +00:00
ta264 d1caed5c7d Fiddle release date 2021-11-11 11:08:43 +00:00
BookInfo 6bdfe01fbc Alternative metadata source 2021-11-11 11:08:43 +00:00
Robin Dadswell 225f0b310a Fixed: Time column is first column on events page
(cherry picked from commit c14ef7bee7477ad5d29498f1cba94267eb11daf0)
2021-11-09 18:54:33 -06:00
Weblate 6a0c99d32b Translated using Weblate (Chinese (Simplified) (zh_CN)) [skip ci]
Currently translated at 66.1% (488 of 738 strings)

Translated using Weblate (Hungarian) [skip ci]

Currently translated at 100.0% (738 of 738 strings)

Translated using Weblate (French) [skip ci]

Currently translated at 66.1% (488 of 738 strings)

Translated using Weblate (Hungarian) [skip ci]

Currently translated at 100.0% (738 of 738 strings)

Translated using Weblate (French) [skip ci]

Currently translated at 66.1% (488 of 738 strings)

Translated using Weblate (Portuguese (Brazil)) [skip ci]

Currently translated at 99.8% (737 of 738 strings)

Co-authored-by: Csaba <csab0825@gmail.com>
Co-authored-by: Havok Dan <havokdan@yahoo.com.br>
Co-authored-by: Nackophilz <clement.wigy@gmail.com>
Co-authored-by: Stéphane Dupont <aleistor@gmail.com>
Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: zpengcom <z.peng.com@gmail.com>
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/fr/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/hu/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/pt_BR/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/zh_CN/
Translation: Servarr/Readarr
2021-11-06 18:08:28 -05:00
Robin Dadswell 04cf0594f6 Fixed: Prowl notification priority 2021-11-06 18:08:05 -05:00
ta264 2001035257 Fixed: Correctly detect mounts in FreeBSD jails
(cherry picked from commit 67b1fd9bc5c3808ef7227a40ceb5304eefd50fa7)
2021-10-27 17:22:28 +01:00
ta264 355dcaed6c Fixed: Calender .ics feed
(cherry picked from commit 147cfe538a3ac1a54ae9e84460e37f744e69668f)
2021-10-26 19:14:26 +01:00
ta264 3d3292fd3d Fixed: Add missing index to improve book import performance 2021-10-23 14:10:00 +01:00
ta264 78d073a0a8 Fixed: Filtering editions by language 2021-10-23 14:09:54 +01:00
ta264 ca8f768f84 Fixed: Error adding book to existing author in incognito session 2021-10-23 13:59:48 +01:00
Mark McDowall b57ba3d6e2 New: Add logging is release is rejected because no download URL is available
(cherry picked from commit a83ed3bcce4b0a5ed5279029eed1b2ccfb4e8b85)
2021-10-18 06:20:49 -05:00
Mark McDowall d48f2a1cb6 Fixed: Qbit torrents treated as failed after error
(cherry picked from commit 7e175bf95ed0a7b624b04a397b953f27043211ae)
2021-10-17 14:23:26 -05:00
Weblate d8e4d388dc Translated using Weblate (Hungarian) [skip ci]
Currently translated at 100.0% (738 of 738 strings)

Update translation files [skip ci]

Updated by "Cleanup translation files" hook in Weblate.

Update translation files [skip ci]

Updated by "Cleanup translation files" hook in Weblate.

Translated using Weblate (Portuguese (Brazil)) [skip ci]

Currently translated at 100.0% (737 of 737 strings)

Translated using Weblate (Hungarian) [skip ci]

Currently translated at 100.0% (737 of 737 strings)

Translated using Weblate (Hungarian) [skip ci]

Currently translated at 100.0% (737 of 737 strings)

Translated using Weblate (Portuguese (Brazil)) [skip ci]

Currently translated at 100.0% (737 of 737 strings)

Translated using Weblate (Hungarian) [skip ci]

Currently translated at 100.0% (737 of 737 strings)

Translated using Weblate (Portuguese (Brazil)) [skip ci]

Currently translated at 100.0% (737 of 737 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: zsigus <zsigus.attila@gmail.com>
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/hu/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/pt_BR/
Translation: Servarr/Readarr
2021-10-17 14:22:54 -05:00
bakerboy448 47ae2032e5 update contributing [skip ci] 2021-10-10 17:09:17 -05:00
Robin Dadswell 89319f9833 New: Renamed Blacklist to Blocklist
(cherry picked from commit ead1371846b1f19cd49928052be0128bf7ccd41f)
2021-10-10 17:02:48 -05:00
ta264 07829a19b8 Fixed: Account for ISO 639 B vs T 2021-10-07 21:01:45 +01:00
Sean A 27259c1ebd Fixed: Ensure AudioTag years have default values (#1272)
* Fixed: Ensure AudioTagService years have default values

* Fix AudioTagServiceFixture.cs tests

Co-authored-by: Sean Anderson <sean.anderson@gaiaresources.com.au>
2021-10-08 09:58:20 +01:00
Qstick d14a64caf9 Bump System.Data.Sqlite to 1.0.115.0-0 2021-10-03 19:23:19 -05:00
Mark McDowall af2e743994 New: Log which DB is being migrated
(cherry picked from commit 07c95f06d3b9b32aaeb923d4c678f10a2bf1141a)
2021-10-03 10:22:46 -04:00
Kevin Lau 398ab902dc New: Change Today color in calendar for better visibility
(cherry picked from commit d9e9b72a894a238e58d40cc0a6aa83c416db1a44)
2021-10-02 11:06:53 -04:00
Qstick 007edcba9e Weblate Updates 2021-10-02 10:02:22 -05:00
Qstick 26b0034bbb Create swagger.json 2021-09-26 19:42:27 -05:00
ta264 e842137385 Fix backend analyze 2021-09-20 19:33:43 +01:00
Thomas White 294346db35 Fixed: Null reference error when import list adds new book to existing author
Fixes #1235

(cherry picked from commit 5e3045db86748d0ab407a6785007cb6bbd4f46a6)
2021-09-20 17:43:47 +01:00
Peter Sarossy 859dd091f3 Fix README typo (#1237) [skip CI] 2021-09-18 20:22:06 -05:00
ta264 72ae466892 Fixed: Calculate author statistics correctly
Fixes #1213
2021-09-02 21:12:14 +01:00
ta264 12c67891fb Fixed: Better book status column in author details 2021-09-02 21:12:14 +01:00
ta264 ffc97d8489 Fixed: Use track title tag if album tag not set 2021-09-02 21:12:14 +01:00
ta264 bdcee8c7c1 New: Try matching with "Unabridged" removed from title 2021-09-02 21:12:14 +01:00
ta264 6325432a34 Fixed: Filter by page count after filtering editions 2021-09-02 21:12:14 +01:00
ta264 1e82c7a67a New: Add book, series and files counts to author details page 2021-09-02 21:12:14 +01:00
ta264 8b19f02ade Fixed: Don't repeatedly refresh queue when author deleted 2021-09-02 21:12:14 +01:00
ta264 3c4c6b855e Fix add new book prop validation 2021-09-02 21:12:14 +01:00
ta264 9d78e5bfd8 Fixed: Bookshelf not updating after adjusting monitored options 2021-09-02 21:12:13 +01:00
Taloth Saldono 0e5f45a457 Send signalr message for episode monitored flag changes
(cherry picked from commit 9e81d41f262fb1f9d798374673b0a0427bf1a6e3)

Closes #1049
2021-09-02 21:12:13 +01:00
Robin Dadswell 2317665f33 New: Added book monitoring to author details
(cherry picked from commit 0ff889c3be1e8ee48759b233aeabf1bf1c4b4ff4)
(cherry picked from commit 0bd74098f9)
2021-09-02 21:12:13 +01:00
ta264 73950ca431 Fixed: Show metadata profile in mass editor by default 2021-09-02 21:12:13 +01:00
ta264 a746a9a4b1 Fixed: Cannot edit root folder calibre option after creation
Fixes #1188
2021-09-02 21:12:13 +01:00
ta264 7a969a63e4 New: Use ISO 639-3 language codes in metadata profile 2021-09-02 21:12:13 +01:00
ta264 7c10f3a74d New: Speed up metadata refresh 2021-09-02 21:12:13 +01:00
ta264 8edadbbfa2 Separate out Goodreads search from Author/Book data 2021-09-02 21:12:13 +01:00
ta264 dc2de62b03 Fixed: Use both album artist and track artist fields to pick up author for audiobooks 2021-09-01 21:04:39 +01:00
ta264 cdf8b0bc8f Fixed: Split concatenated authors when calculating match 2021-09-01 21:04:39 +01:00
ta264 17535bd8d6 Fixed: Better detection of series in search results 2021-09-01 21:04:39 +01:00
ta264 5f1be9e447 Fixed: Previous / Next author buttons sort by last name 2021-09-01 21:04:39 +01:00
ta264 c9cb0a9774 New: Search bar searches books as well as authors 2021-09-01 21:04:39 +01:00
Taloth Saldono ba9f618405 Lazy Loading fuse-worker and fixed some potential timing issues when it's slow. Also keep last result while typing.
(cherry picked from commit 1e98002b8f3b01e41bff011644a9345c37c259c1)
2021-09-01 21:04:39 +01:00
ta264 468ebc3307 New: Load all books on page load and store in the browser 2021-09-01 21:04:39 +01:00
ta264 2558660b7b New: Add index views for all books 2021-09-01 21:04:39 +01:00
ta264 a774cf0682 Fixed: Bookshelf jump bar 2021-09-01 21:04:39 +01:00
Mark McDowall 924e393d1a Fixed: Log active indexers instead of implying all indexers are searched
(cherry picked from commit e19d4cf85b5a48ef823b9a983591d2bf7e72c621)
2021-09-01 09:35:00 -04:00
bakerboy448 98cc8f0a4b update bug report [skip ci]
(cherry picked from commit e912e14cbbc3fedf2242281609a96760a716d16f)
2021-08-27 21:08:27 -05:00
ta264 665d87b8d7 Fixed: Prefer 13 character ISBN from epub metadata
Fixes #1210
2021-08-21 14:36:44 +01:00
nitsua 7c662d4628 Add a link to the github issue if it is added to the change notes
Database Migration
NO

Description
Add a link to the github issue if it is added to the change notes
2021-08-18 16:23:52 +01:00
ta264 d5199ebcd7 Don't fail builds if sentry down 2021-08-17 21:43:29 +01:00
Thomas White 466876da62 Fixed: "Specific Book" setting for readarr list import (#1200) 2021-08-18 14:14:54 +01:00
bakerboy448 109fd22d1f New: Add missing Part Number and Part Count Examples 2021-08-14 18:08:58 -05:00
bakerboy448 001e24aaae Fixed: Corrected Indexer Category Help Text 2021-08-14 16:38:07 -05:00
Qstick bbff60a2b0 Fixed: Avoid fetching quality definitions twice 2021-08-12 21:17:08 -04:00
Qstick 4b88cc5ea5 Fixed: Cleanup of unused tags for Import lists
Fixes #1181
2021-08-12 20:50:44 -04:00
Servarr cf49404e13 Translated using Weblate (Portuguese (Brazil)) [skip ci] (#1147)
Currently translated at 99.7% (720 of 722 strings)

Translated using Weblate (Portuguese) [skip ci]

Currently translated at 77.9% (563 of 722 strings)

Translated using Weblate (Portuguese (Brazil)) [skip ci]

Currently translated at 99.7% (720 of 722 strings)

Translated using Weblate (Arabic) [skip ci]

Currently translated at 66.0% (477 of 722 strings)

Translated using Weblate (Portuguese (Brazil)) [skip ci]

Currently translated at 99.3% (717 of 722 strings)

Translated using Weblate (Portuguese) [skip ci]

Currently translated at 77.9% (563 of 722 strings)

Translated using Weblate (Hungarian) [skip ci]

Currently translated at 100.0% (722 of 722 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: Will Segatto <segatto.w@gmail.com>
Co-authored-by: bison529 <abshalsh@gmail.com>
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/ar/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/hu/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/pt/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/pt_BR/
Translation: Servarr/Readarr

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: Will Segatto <segatto.w@gmail.com>
Co-authored-by: bison529 <abshalsh@gmail.com>
2021-08-11 19:45:36 -05:00
ta264 8a074c61f0 Fixed: Allow repeated import attempts until downloaded files appear
(cherry picked from commit 9f1d4446e82e9c5efde3d0339be2f7dde40ba1ac)
2021-08-04 21:11:21 +01:00
ta264 8dd6049603 Fixed: Don't mark downloads as failed if no files found 2021-08-04 21:09:20 +01:00
ta264 9249f0ca5d Fixed: ArgumentNullException importing against a newly added edition with no series links
- Fixes Sentry READARR-2CY

(cherry picked from commit 4eebd4f2050ca646869b657bb365e11b1eea4d0c)
2021-08-03 21:48:49 +01:00
ta264 4712fedb0e New: Refresh books added to match existing files
Fixes #1146

(cherry picked from commit 40c99fb67587b5890d4d2a3a3af1d61034598e1f)
2021-08-03 21:48:44 +01:00
ta264 d8d09c2517 Fixed: Books added to match existing files have correct monitored status
(cherry picked from commit c98b22723aa8bf0bba2ce9f5b9ec74608c354751)
2021-08-03 21:48:37 +01:00
ta264 59c1bf0b1f Fixed: Prevent books being added with AuthorMetadataId 0
(cherry picked from commit 0c227d0f21e3803c6293fd5988e48ea010483cad)
2021-08-03 21:48:28 +01:00
bakerboy448 1571ef4172 git updates [skip ci] 2021-08-01 21:24:30 +01:00
Mark McDowall 60866f4af6 Fixed: Peers filtering in Interactive Search results
(cherry picked from commit dca2cfcecd543ef93d9cb3735fefb7dbc2277107)
2021-08-01 21:23:39 +01:00
ta264 4541d3d3b0 Fixed: Parse search results using edition titles also
Fixes #1154
2021-07-30 19:51:21 +01:00
Alex Thomson 9150f6889f Remove duplicate call to DeleteTorrent
(cherry picked from commit 94417402d8364e435c35365a75278914d5405465)
2021-07-27 16:45:58 +01:00
ta264 474699b67d Fixed: Error refreshing author if manually added book edition has been removed from Goodreads
Fixes Sentry READARR-Z6
2021-07-26 22:02:30 +01:00
ta264 2a05112d7d Fixed: Set correct titleslug for a book 2021-07-26 22:00:16 +01:00
ta264 c1a846dd2b Fixed: Detect more variations of series book naming 2021-07-26 21:21:45 +01:00
ta264 1f22cae4f8 Fixed: Import highest quality file first, not largest size 2021-07-26 21:12:49 +01:00
ta264 b1e92e7f73 Fixed: Computing most common author now we have multiple authors 2021-07-27 07:06:06 +01:00
ta264 85e945430b Fixed: Read multiple authors from audio tags 2021-07-27 07:06:06 +01:00
ta264 2e5a9b8dd4 Fixed: Don't try to audio tag ebook files 2021-07-27 07:06:06 +01:00
ta264 fcd5005502 Fixed: Default naming scheme includes PartNumber for new databases also 2021-07-22 21:00:45 +01:00
ta264 331ef56e9a Update frontend packages 2021-07-22 20:37:43 +01:00
ta264 19549098a7 Fixed: Reinstate position in series table 2021-07-22 20:32:35 +01:00
ta264 848b183ab8 Fixed: Column settings for series table 2021-07-22 20:25:02 +01:00
Weblate 6adadc0ade Translated using Weblate (Japanese) [skip ci]
Currently translated at 66.2% (476 of 718 strings)

Translated using Weblate (Catalan) [skip ci]

Currently translated at 1.5% (11 of 718 strings)

Translated using Weblate (Portuguese (Brazil)) [skip ci]

Currently translated at 99.8% (717 of 718 strings)

Translated using Weblate (Portuguese) [skip ci]

Currently translated at 78.1% (561 of 718 strings)

Translated using Weblate (German) [skip ci]

Currently translated at 74.0% (532 of 718 strings)

Translated using Weblate (Arabic) [skip ci]

Currently translated at 66.4% (477 of 718 strings)

Added translation using Weblate (Chinese (Min Nan)) [skip ci]

Translated using Weblate (Chinese (Simplified) (zh_CN)) [skip ci]

Currently translated at 64.7% (465 of 718 strings)

Co-authored-by: Anonymous <noreply@weblate.org>
Co-authored-by: Havok Dan <havokdan@yahoo.com.br>
Co-authored-by: Sean <zhangshuyan@fuji.waseda.jp>
Co-authored-by: Weblate <noreply@weblate.org>
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/ar/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/ca/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/de/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/ja/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/pt/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/pt_BR/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/zh_CN/
Translation: Servarr/Readarr
2021-07-22 20:54:47 +01:00
bakerboy448 9ee1b5482a Update bug report template [skip ci]
(cherry picked from commit 4659a8366d8a1565890d3b72442bd35c6eb8176e)
2021-07-22 20:50:21 +01:00
bakerboy448 ae88bc30e1 Fixed: Provider Wiki Links (supported-X => supported#X) 2021-07-22 20:49:48 +01:00
ta264 af9f8a9a18 Fixed: Tidy up the Author / Book files table
Closes #1089
2021-07-22 20:35:01 +01:00
ta264 71a34c7650 Remove unused frontend stuff 2021-07-22 20:35:01 +01:00
ta264 7f8dc3d2b4 New: Optionally display authors as LastName, FirstName in index
Fixes #1062
2021-07-22 20:35:01 +01:00
ta264 332997aefe Clean up sort menu 2021-07-22 20:35:01 +01:00
ta264 0a20188508 Fixed: Bad Author -> Book lazy lookup 2021-07-20 21:41:57 +01:00
ta264 493ce1b20c Fixed: Deleting multiple books at once from author page 2021-07-20 21:41:57 +01:00
ta264 b3dd116d27 Fixed: Deleting author removes books from Calibre
Fixes #1144
2021-07-20 21:41:57 +01:00
Mark McDowall ca7ba125d2 Fixed: Remove selected in queue
(cherry picked from commit 4ed5fefcc6e362cb5c62ec639ee64571c97f9b5b)
2021-07-20 19:31:28 +01:00
Mark McDowall 1a3bb381b1 Fixed: Queue refresh closing manual import from queue if items change
(cherry picked from commit e9818b9982d868648d714a37527f1b066486c5df)
2021-07-20 19:31:28 +01:00
Mark McDowall 8d6e0c6bc3 Fixed: Queue refresh closing manual import from queue if items change
(cherry picked from commit f5d690aa7b703e6fc0cd7eeced177a28cfed4962)
2021-07-20 19:31:28 +01:00
Taloth Saldono 6cb2bf6b5f Fixed post-install update check not running
(cherry picked from commit eea6be459d5dbfafb9a5285046282c25c4697242)
2021-07-20 19:31:28 +01:00
ta264 e791f22333 Fixed: Don't redirect //api route to homepage 2021-07-20 16:34:18 +01:00
ta264 eaa1578c65 Fixed: Error trying to write calibre tags when calibre not enabled 2021-07-20 16:34:18 +01:00
Weblate e0236e781a Translated using Weblate (French) [skip ci]
Currently translated at 66.0% (474 of 718 strings)

Translated using Weblate (Catalan) [skip ci]

Currently translated at 0.2% (2 of 718 strings)

Translated using Weblate (Vietnamese) [skip ci]

Currently translated at 66.2% (476 of 718 strings)

Translated using Weblate (Korean) [skip ci]

Currently translated at 66.2% (476 of 718 strings)

Translated using Weblate (Hungarian) [skip ci]

Currently translated at 100.0% (718 of 718 strings)

Translated using Weblate (Greek) [skip ci]

Currently translated at 66.2% (476 of 718 strings)

Translated using Weblate (German) [skip ci]

Currently translated at 73.9% (531 of 718 strings)

Translated using Weblate (Danish) [skip ci]

Currently translated at 66.2% (476 of 718 strings)

Translated using Weblate (Czech) [skip ci]

Currently translated at 66.2% (476 of 718 strings)

Translated using Weblate (Bulgarian) [skip ci]

Currently translated at 66.2% (476 of 718 strings)

Translated using Weblate (Spanish) [skip ci]

Currently translated at 66.5% (478 of 718 strings)

Translated using Weblate (Dutch) [skip ci]

Currently translated at 66.5% (478 of 718 strings)

Added translation using Weblate (Catalan) [skip ci]

Co-authored-by: Anonymous <noreply@weblate.org>
Co-authored-by: Csaba <csab0825@gmail.com>
Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: dtalens <databio@gmail.com>
Co-authored-by: foXaCe <foxace66@gmail.com>
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/bg/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/ca/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/cs/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/da/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/de/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/el/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/es/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/fr/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/hu/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/ko/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/nl/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/vi/
Translation: Servarr/Readarr
2021-07-16 12:05:32 +01:00
Mark McDowall 92a9b5b451 Fixed: Unable to close indexer category select input on mobile
Closes #4296

(cherry picked from commit e42d1af5ff8f3eb987195caa7ec8a0bbaf4a00c3)

# Conflicts:
#	frontend/src/Components/Form/EnhancedSelectInput.js
2021-07-16 12:04:02 +01:00
Mark McDowall 226ad22748 Author: Mark McDowall <mark@mcdowall.ca>
Author date:	6 months ago (1/7/2021 1:01:30 AM)
Committer:		PearsonFlyer <PearsonFlyer@github.com>
Commit date:	19 minutes ago (7/9/2021 3:21:25 PM)
Commit hash:	0a104a9cf8a1c5421a0beed9120bfc84fac896a0
Child:			Commit index
Parent:			4f986de3

New: Allow quality size limits to be closer together

(cherry picked from commit 8a3027fa7c99af21a56ac1cfe9a5a0846de9c474)
(cherry picked from commit ef5d1b29467ea24d6721e54aec4b35062ab72e4f)
Contained in branches:
qual_size_limits
Contained in no tag

Derives from tag: v0.7.1.1381 + 815 commits
2021-07-16 12:02:23 +01:00
ta264 fe942524a2 Frontend package updates 2021-07-14 21:55:24 +01:00
ta264 8917b61ea9 Bump to .NET 5.0.8 and upgrade backend packages 2021-07-14 21:53:40 +01:00
ta264 60a49e3a03 Fixed: Error getting candidates if parsed author is null 2021-07-14 21:44:33 +01:00
bakerboy448 b8a3f09891 Fixed: Notifiarr Health Issue Level
ref Sonarr 5938c38bc3a76d1f1e105fb54d5d7f59aa207278

(cherry picked from commit 6f0a2de5053ccb859b4ffbe1e84b4f3e0f7ef9c9)
2021-07-14 21:10:33 -05:00
bakerboy448 6e7f0deef5 Update PULL_REQUEST_TEMPLATE.md [skip ci] (#1127) 2021-07-10 15:24:55 -05:00
PearsonFlyer 4f986de366 Fixed: Add 'FilterAuthor' token and update manual import text box 2021-07-08 21:49:22 -04:00
Weblate 4bf658e239 Translated using Weblate (Portuguese (Brazil)) [skip ci]
Currently translated at 100.0% (717 of 717 strings)

Translated using Weblate (Portuguese) [skip ci]

Currently translated at 75.8% (544 of 717 strings)

Translated using Weblate (Hungarian) [skip ci]

Currently translated at 100.0% (717 of 717 strings)

Translated using Weblate (Finnish) [skip ci]

Currently translated at 66.3% (476 of 717 strings)

Translated using Weblate (German) [skip ci]

Currently translated at 73.9% (530 of 717 strings)

Co-authored-by: Anonymous <noreply@weblate.org>
Co-authored-by: Csaba <csab0825@gmail.com>
Co-authored-by: Lizandra Candido da Silva <lizandra.c.s@gmail.com>
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/de/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/fi/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/hu/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/pt/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/pt_BR/
Translation: Servarr/Readarr
2021-07-07 23:10:04 -04:00
servarr[bot] 45d0e20608 New: Add Size column to Activity: Queue (#1116)
* New: Add Size column to Activity: Queue

(cherry picked from commit 43cd1032487743c72fe0503a293343b8811def4d)

* fixup! Lint

Co-authored-by: Nathaniel Peiffer <nathaniel@peiffer.com.au>
Co-authored-by: Qstick <qstick@gmail.com>
2021-07-04 14:50:35 -04:00
PearsonFlyer 438b75e8cf Fixed: "Profile" to "Indexer" on Clone Button (
(cherry picked from commit https://github.com/Readarr/Readarr/commit/058ab4b4a8f5b0e6cab178692ab8b85a818d6e08
2021-07-04 07:47:58 -05:00
Servarr d590769607 Translated using Weblate (Portuguese (Brazil)) [skip ci] (#1107)
Currently translated at 98.3% (704 of 716 strings)

Translated using Weblate (Portuguese) [skip ci]

Currently translated at 72.2% (517 of 716 strings)

Translated using Weblate (Portuguese (Brazil)) [skip ci]

Currently translated at 98.1% (703 of 716 strings)

Translated using Weblate (Portuguese) [skip ci]

Currently translated at 70.2% (503 of 716 strings)

Translated using Weblate (Portuguese) [skip ci]

Currently translated at 69.6% (498 of 715 strings)

Translated using Weblate (German) [skip ci]

Currently translated at 71.8% (514 of 715 strings)

Co-authored-by: Lizandra Candido da Silva <lizandra.c.s@gmail.com>
Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: reloxx <reloxx@interia.pl>
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/de/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/pt/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/pt_BR/
Translation: Servarr/Readarr

Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: Lizandra Candido da Silva <lizandra.c.s@gmail.com>
Co-authored-by: reloxx <reloxx@interia.pl>
2021-07-04 07:44:53 -05:00
Hugo Cortes 104d65b4ea fix: add SortName to author name regex validation 2021-07-04 13:21:15 +01:00
bakerboy448 25cb29e325 sync contributing from radarr [skip ci] (#1112)
* Update contributing.md Github docs URL [skip ci]

Closes #845

(cherry picked from commit 4e81b330061a758ec8ad37dbe648694187226687)

* sync contributing from radarr [skip ci]
2021-07-04 02:34:19 -04:00
Qstick d3f9474eab PublishEvent after StartupContext to try fix integration tests 2021-07-04 02:25:09 -04:00
Mark McDowall d5a74e7064 Return max tooltip width
Fixes #602

(cherry picked from commit fe0d8bb7da27e0f34b5db166ee54033f292b1006)
2021-07-04 01:33:05 -04:00
Mark McDowall 80ba57d4b5 Fix tooltip max width on larger screens
Fixes #510

(cherry picked from commit f4f2a6f5fc14244f9acf8186cbacda7f9c1e0481)
2021-07-04 01:32:57 -04:00
Mark McDowall 9fe1663267 Fixed: Episode history details tooltip jumping around
Fixes #503

(cherry picked from commit 796c5e8b6b9e2ba2b97c6144f64a756e76a947a9)
2021-07-04 01:32:29 -04:00
Qstick 0d860de88a Fixed: Tooltips overflowing the screen width
Fixes #430
Fixes #432

(cherry picked from commit 0a66e86cccc29d7fef6da7876b3b761deb414648)
2021-07-04 01:27:39 -04:00
Taloth Saldono 38a6553654 Added IsTorrentLoaded to tests
Fixes #911

(cherry picked from commit 7272c5b7fcada0b346e1dd72fb2d1caa6b6e4c63)
2021-07-04 00:49:27 -04:00
Taloth Saldono 916391edc3 Fixed: Qbittorrent api errors when only one of two seed criteria was configured
closes #907

(cherry picked from commit 652d44722b96a7a830ec45fe83260ddcecc525a7)
2021-07-04 00:48:26 -04:00
Taloth Saldono ac36675c6e Fixed: Setting seed criteria while torrent is still being loaded by qbittorrent
closes #896

(cherry picked from commit 67e97f7aee761d19af6fe1a086691a9934635a6d)
2021-07-04 00:44:42 -04:00
bakerboy448 d76f8e715d Fixed flaky test.
(cherry picked from commit f846e0c031d74914d3a02626597df583422164e0)
Closes #304
2021-07-04 00:24:21 -04:00
bakerboy448 27e799b624 Log contents on api errors during tests.
(cherry picked from commit f2e1b4e43549695afacee5c87cca368e8fa30905)

Closes #295
2021-07-04 00:24:21 -04:00
Mark McDowall d34e588588 New: Queue status icon is purple when download is waiting to import or importing
Fixed: Time Left on Queue won't show when completed
Queue status/timeleft improvements

Closes #281

(cherry picked from commit 910de6d94a4482e82e295153e01c299460af2d2d)
2021-07-04 00:24:21 -04:00
Mark McDowall 1be94da583 New: Don't close manual import when clicking outside the modal
Closes #278

(cherry picked from commit fd608fd4113bd1d6fde42bca4d9879f826a8c6a9)
2021-07-04 00:24:21 -04:00
rg9400 4066aa1472 Fixed: Indicate unchecking Replace Illegal Characters will remove them
Closes #251
2021-07-04 00:24:21 -04:00
beyondmeat 050dd67972 Fixed: Empty list message for System: Events
(cherry picked from commit a23639e62ee5e2106831c10d51b6a4d6ba569fdc)

Closes #159
2021-07-04 00:24:21 -04:00
bakerboy448 ed1935c85d fixup! Update wiki links 2021-07-04 00:24:21 -04:00
Qstick b625bd00ea fix import sort in appActions 2021-07-04 00:17:48 -04:00
Qstick a7c71c2093 fix wiki fragment for PackageGlobalMessageCheck 2021-07-04 00:15:46 -04:00
Qstick a6774eed6e fixup LocalizationService in PackageGlobalMessageCheck.cs 2021-07-04 00:07:24 -04:00
Qstick a1f740646f Fixed: Database migration failure when database was manually repaired in a certain way
Fixes #903
2021-07-03 23:53:09 -04:00
Taloth Saldono 759b78e816 Added mechanism for package maintainers to produce a health check error.
Fixes #859

(cherry picked from commit 7da02c236aa03e6aef011130526040c1cb8399fc)
(cherry picked from commit 024000275df3b2d3b884c2c2fbf0b86bd36a631a)
2021-07-03 23:50:05 -04:00
Taloth Saldono 740e0edc04 Added update check early in startup if the package requested a post-install update check 2021-07-03 23:47:56 -04:00
Mark McDowall 46fa7e80a0 Fixed: Restoring a backup with a different API didn't reload properly
Fixes #853

(cherry picked from commit 13ff2d4c70bc564525842c31d184127a3934e178)
2021-07-03 23:20:47 -04:00
Mark McDowall 45aa744b0f Fixed: Removal of previous service
Fixes #851

(cherry picked from commit cd28af98eed831e00a400e66b652e6a8d6f9c442)
2021-07-03 23:19:18 -04:00
Qstick 3e72770ec5 Handle 303 and 307 redirects in Http Requests
Fixes #849
2021-07-03 23:08:43 -04:00
Qstick 529ffa8864 Revert "Fixed: Corrupt image files when downloading from redirecting Url"
This reverts commit 79dfd8f14d.
2021-07-03 23:08:38 -04:00
servarr[bot] 99a2e1f0fa Fixed: Refresh queue count when navigating Activity: Queue
(cherry picked from commit 0a2b109a3fe101e260b623d0768240ef8b7a47ae)

Co-authored-by: Mark McDowall <mark@mcdowall.ca>
Closes #975
2021-07-03 20:04:57 -05:00
Taloth Saldono 9ddd08b0de Increased max redirects from 3 to 5
closes #3449

(cherry picked from commit d421ff973692a35d55e3773b2dc82e0a0d717546)
2021-07-03 19:19:27 -04:00
Taloth Saldono 79dfd8f14d Fixed: Corrupt image files when downloading from redirecting Url
(cherry picked from commit e28b2e83284f689d3620d8d394ef35fdfd55646f)
Closes #108
2021-07-03 19:19:27 -04:00
Mark McDowall db885a5111 Fixed: Manual import from queue showing error when download name failed to parse
(cherry picked from commit 079a0b56c3e124616fef6e2f81c19f67c13acb96)

Closes #67
2021-07-03 19:19:27 -04:00
Qstick b23e225271 Update wiki links 2021-07-03 14:55:53 -04:00
Qstick 68dd6bc98e Align version header with others
Fixes #865
Fixes #866
2021-07-03 14:36:51 -04:00
Qstick 966e9f43f1 Fixed: 'iso-8859-2' is not a supported encoding name 2021-07-03 14:13:49 -04:00
Mark McDowall 45671c89f9 Fixed: Show feed URL if incorrect mime type is found
Fixes #571
Fixes #572

(cherry picked from commit fa2e70d571cc7658611a0c51b8603247a22e6a2e)
2021-07-03 14:00:20 -04:00
Mark McDowall 8ad917e94b New: Warning when combining preferred words with a specific indexer
Fixes #534

(cherry picked from commit fae38a107f738eff148271499b571b93ed192e84)
2021-07-03 13:59:12 -04:00
Qstick 3de0df2162 Fixed: Root folder custom filter in Mass Editor
Fixes #260

Co-Authored-By: Mark McDowall <markus101@users.noreply.github.com>
2021-07-03 13:52:48 -04:00
Taloth Saldono e4225aa2c2 Fixed enter in modal confirmation dialogs
Fixes #463
Fixes #464

(cherry picked from commit 930742ae2c69a530afe60f76a5824f2722540df8)
2021-07-03 13:45:12 -04:00
Qstick a877c5b25d Fixed: Can ignore queue items with unknown book 2021-07-03 13:45:12 -04:00
Qstick 1f06c4f4e2 Fixed: Tooltip for existing author/book on add new item 2021-07-03 13:45:12 -04:00
Mark McDowall c31bbb63fb Fix checkingUP qbit status unit test
Fixes #227
2021-07-03 13:45:12 -04:00
Mark McDowall 92715ac850 Fixed: Treated checkingUP status from Qbit as queued in case it fails to validate
Fixes #220

Co-Authored-By: Mark McDowall <markus101@users.noreply.github.com>
2021-07-03 13:45:12 -04:00
Qstick cbf382625f Fixed: Preferred word can't have a term that is empty or only spaces
Fixes #218

Co-Authored-By: Mark McDowall <markus101@users.noreply.github.com>
2021-07-03 13:45:12 -04:00
Mark McDowall e6250bfe0f New: Don't forcibly retest indexers/download clients/connections on save if previously enabled
Fixes #448

(cherry picked from commit b2b1600ebe7f022a3248ea12b69553e2d51a3a7c)
2021-07-03 13:45:11 -04:00
Qstick ca00b8a3c7 New: Handle missingFiles status from qBit
Fixes #442

(cherry picked from commit 9a2cee3104b1e8d32f2df68d3ca75967aba41868)
2021-07-03 13:45:11 -04:00
Mark McDowall 39b2326bc5 Fixed: Replace : with _ when getting output path from Transmission
Fixes #433

(cherry picked from commit 0f792f9eb9517a4165a54d7c4551f4f68822d18e)
2021-07-03 13:45:11 -04:00
PearsonFlyer 907b7dc429 New: Add Readarr list sync
Closes #438
2021-07-03 12:34:48 -05:00
PearsonFlyer 9a78c8b512 Fixed: Compatibility with the new Download Station API 2021-07-03 06:55:48 -05:00
Servarr 5dc328346c Translated using Weblate (Portuguese (Brazil)) [skip ci] (#1092)
Currently translated at 98.3% (703 of 715 strings)

Translated using Weblate (Portuguese) [skip ci]

Currently translated at 69.3% (496 of 715 strings)

Translated using Weblate (Portuguese) [skip ci]

Currently translated at 69.3% (496 of 715 strings)

Translated using Weblate (Portuguese) [skip ci]

Currently translated at 69.3% (496 of 715 strings)

Translated using Weblate (Portuguese) [skip ci]

Currently translated at 69.2% (495 of 715 strings)

Translated using Weblate (Hungarian) [skip ci]

Currently translated at 100.0% (715 of 715 strings)

Co-authored-by: Csaba <csab0825@gmail.com>
Co-authored-by: Havok Dan <havokdan@yahoo.com.br>
Co-authored-by: Lizandra Candido da Silva <lizandra.c.s@gmail.com>
Co-authored-by: Weblate <noreply@weblate.org>
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/hu/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/pt/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/pt_BR/
Translation: Servarr/Readarr

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: Lizandra Candido da Silva <lizandra.c.s@gmail.com>
2021-07-03 06:55:00 -05:00
Taloth Saldono 79bd4728bf Removed extraneous enum hints in dropdown
(cherry picked from commit 91fe47ef31249f23c19a553df569ef6451e6ca5d)
2021-07-02 21:18:54 -04:00
bakerboy448 eb26b38f2c New: Replace SmtpClient with Mailkit
Closes #723
2021-07-02 21:16:05 -04:00
Taloth Saldono 811c84a845 Multiple Email Address
Fixes #854
Fixes #884
Fixes #951
Fixes #954

(cherry picked from commit a8b6f70be1860aa502795f0dd30299c87d54dbbe)
2021-07-02 21:16:05 -04:00
cicomalieran 214fa4c06e Fixed: Parsing RSS with null values
(cherry picked from commit 8175f19442273e13517b2d507e7a4c33587f1b15)
(cherry picked from commit 6842c561ea36d1d2661cb87c517d6c155d65c4d3)

Closes #982
2021-07-02 21:16:05 -04:00
Skyler Mäntysaari fc714182ad New: Mailgun connection
(cherry picked from commit 55752a6c6213c1d83d347ba0f6870aa6c1cc0770)
(cherry picked from commit 0b60ca68fcb5778d7b9eb1ae23e298458b4ab98d)
closes #981
closes #980
2021-07-02 21:16:05 -04:00
PearsonFlyer 7c96ab88d1 Really ignore ResizeObserver loop errors 2021-07-02 19:34:47 -04:00
bakerboy448 d6de4fc41f fix concurrency so runs don't cancel [skip ci] 2021-07-01 22:05:57 -04:00
PearsonFlyer 33b4ed44de Fixed: Corrected Naming Examples 2021-07-01 18:55:31 -05:00
ta264 81b12a7441 Fixed: Log files should not be cached 2021-07-01 16:22:57 +01:00
Qstick 8406dbe49d Prevent sync jobs from running in parallel
[skip ci]
2021-06-29 21:52:33 -04:00
servarr[bot] cbaf973eeb New: Translate Activity Queue & Rename Timeleft to Time Left
New: Translate Activity Queue

(cherry picked from radarr commit 7d644aa54430eb6712e294956e35c5601077e398)
add some missing keys/fixups as well

Co-authored-by: bakerboy448 <55419169+bakerboy448@users.noreply.github.com>
2021-06-28 20:34:40 -05:00
bakerboy448 44711d7585 add wiki link to bug template [skip ci]
(cherry picked from commit 15a99ab650ce2d5ca9e21a58847bf9f7307299ea)

Closes #1085
2021-06-28 20:11:59 -05:00
Mark McDowall c00d760cb0 Fix spelling of separated
(cherry picked from commit a4dea0aa62a6c0eb78c89d9ac2e80548fbceb615)

Closes #944
2021-06-28 20:11:59 -05:00
bakerboy448 9ad580effa Git template update [skip ci]
* FR template update [skip ci]

* PR Template update [skip ci]

Closes #1022

(cherry picked from commit ec3dbea7fc592801bf4e42e17e14ea4a66bed46e)
2021-06-28 20:11:59 -05:00
Qstick 2acc3f4584 Fixed: NZBGet Settings hint mentions Sabnzbd
closes #1044

(cherrypicked from Sonarr 2ad4e21aadbb2b6c94e4af529b2329e224ce4f8e)
2021-06-28 20:11:59 -05:00
Robin Dadswell 3fac1c23b2 Fix: Consistent SSL option for Download Clients
Closes #873

(cherrypicked from Sonarr 85f4cbe94c6f00352e0d4a38f337fb9417d3032b)
2021-06-28 20:11:59 -05:00
Qstick a596a1fe9a Create azuresync.yml 2021-06-26 22:20:58 -04:00
Jake Soenneker 1835edcb67 New: Manual Import rejection column is sortable
(cherry picked from commit 2f366bc3b7274200ff9d0bf1aa96408dc92206f3)
2021-06-26 16:46:56 -04:00
Weblate f928e2c3a8 Translated using Weblate (Portuguese) [skip ci]
Currently translated at 70.5% (496 of 703 strings)

Translated using Weblate (Chinese (Simplified)) [skip ci]

Currently translated at 0.1% (1 of 703 strings)

Translated using Weblate (Chinese (Simplified) (zh_CN)) [skip ci]

Currently translated at 65.8% (463 of 703 strings)

Translated using Weblate (Portuguese) [skip ci]

Currently translated at 70.5% (496 of 703 strings)

Translated using Weblate (Vietnamese) [skip ci]

Currently translated at 66.0% (464 of 703 strings)

Translated using Weblate (Turkish) [skip ci]

Currently translated at 66.0% (464 of 703 strings)

Translated using Weblate (Thai) [skip ci]

Currently translated at 66.0% (464 of 703 strings)

Translated using Weblate (Swedish) [skip ci]

Currently translated at 66.0% (464 of 703 strings)

Translated using Weblate (Russian) [skip ci]

Currently translated at 66.0% (464 of 703 strings)

Translated using Weblate (Romanian) [skip ci]

Currently translated at 66.0% (464 of 703 strings)

Translated using Weblate (Polish) [skip ci]

Currently translated at 66.0% (464 of 703 strings)

Translated using Weblate (Korean) [skip ci]

Currently translated at 66.0% (464 of 703 strings)

Translated using Weblate (Japanese) [skip ci]

Currently translated at 66.0% (464 of 703 strings)

Translated using Weblate (Italian) [skip ci]

Currently translated at 65.8% (463 of 703 strings)

Translated using Weblate (Icelandic) [skip ci]

Currently translated at 66.0% (464 of 703 strings)

Translated using Weblate (Hindi) [skip ci]

Currently translated at 66.0% (464 of 703 strings)

Translated using Weblate (Hebrew) [skip ci]

Currently translated at 66.0% (464 of 703 strings)

Translated using Weblate (French) [skip ci]

Currently translated at 67.4% (474 of 703 strings)

Translated using Weblate (Finnish) [skip ci]

Currently translated at 66.0% (464 of 703 strings)

Translated using Weblate (Greek) [skip ci]

Currently translated at 66.0% (464 of 703 strings)

Translated using Weblate (German) [skip ci]

Currently translated at 73.1% (514 of 703 strings)

Translated using Weblate (Danish) [skip ci]

Currently translated at 66.0% (464 of 703 strings)

Translated using Weblate (Czech) [skip ci]

Currently translated at 66.0% (464 of 703 strings)

Translated using Weblate (Bulgarian) [skip ci]

Currently translated at 66.0% (464 of 703 strings)

Translated using Weblate (Arabic) [skip ci]

Currently translated at 66.1% (465 of 703 strings)

Translated using Weblate (Spanish) [skip ci]

Currently translated at 66.2% (466 of 703 strings)

Translated using Weblate (Dutch) [skip ci]

Currently translated at 66.1% (465 of 703 strings)

Added translation using Weblate (Chinese (Simplified)) [skip ci]

Co-authored-by: Anonymous <noreply@weblate.org>
Co-authored-by: Lizandra Candido da Silva <lizandra.c.s@gmail.com>
Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: angelsky11 <angelsky11@gmail.com>
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/ar/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/bg/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/cs/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/da/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/de/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/el/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/es/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/fi/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/fr/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/he/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/hi/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/is/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/it/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/ja/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/ko/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/nl/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/pl/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/pt/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/ro/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/ru/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/sv/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/th/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/tr/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/vi/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/zh_CN/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/zh_Hans/
Translation: Servarr/Readarr
2021-06-26 16:42:32 -04:00
Qstick e48ed1806c Update Discord Notification Job
[skip ci]
2021-06-26 16:37:26 -04:00
Robin Dadswell 2f13fe0760 New: Added Prowlarr Donation link 2021-06-22 12:00:56 +01:00
RobinDadswell d01645052d fixups 2021-06-22 11:18:53 +01:00
Mark McDowall d822523394 Fixed broken tests
(cherry picked from commit 16156192c5f1abd929bcd825186b9f153507a46e)
2021-06-22 11:18:53 +01:00
Mark McDowall 0ffc44f3da Pull Sonarr commit 'Fixed: Removing completed download from SABnzbd'
(cherry picked from c669be317fffa252d59851e9a8ca9e56032a01fb)
2021-06-22 11:18:53 +01:00
Evan J 5fff24bf69 Update login.html
(cherry picked from commit e8f58eb9be583639909c0ac9b3dc3b40db8c7a53)
2021-06-11 14:38:57 +01:00
Servarr a34853c754 Translations update from Weblate (#1056)
* Translated using Weblate (Hungarian) [skip ci]

Currently translated at 100.0% (695 of 695 strings)

Translation: Servarr/Readarr
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/hu/

* Translated using Weblate (Portuguese (Brazil)) [skip ci]

Currently translated at 100.0% (695 of 695 strings)

Translation: Servarr/Readarr
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/pt_BR/

* Added translation using Weblate (Chinese (Traditional) (zh_TW)) [skip ci]

* Translated using Weblate (Portuguese (Brazil)) [skip ci]

Currently translated at 100.0% (695 of 695 strings)

Translation: Servarr/Readarr
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/pt_BR/

* Translated using Weblate (Hungarian) [skip ci]

Currently translated at 100.0% (703 of 703 strings)

Translation: Servarr/Readarr
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/hu/

* Translated using Weblate (Portuguese (Brazil)) [skip ci]

Currently translated at 100.0% (703 of 703 strings)

Translation: Servarr/Readarr
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/pt_BR/

* Translated using Weblate (Chinese (Simplified) (zh_CN)) [skip ci]

Currently translated at 64.8% (456 of 703 strings)

Translation: Servarr/Readarr
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/zh_CN/

* Translated using Weblate (Portuguese (Brazil)) [skip ci]

Currently translated at 100.0% (703 of 703 strings)

Translation: Servarr/Readarr
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/pt_BR/

* Translated using Weblate (French) [skip ci]

Currently translated at 66.0% (464 of 703 strings)

Translation: Servarr/Readarr
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/fr/

* Translated using Weblate (German) [skip ci]

Currently translated at 71.6% (504 of 703 strings)

Translation: Servarr/Readarr
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/de/

* Translated using Weblate (Portuguese) [skip ci]

Currently translated at 66.7% (469 of 703 strings)

Translation: Servarr/Readarr
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/pt/

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: muihiuwev <muihiuwev@outlook.com>
Co-authored-by: Simon Willcock <simon.willcock@kogan.com.au>
Co-authored-by: doob187 <amderkum@gmail.com>
2021-06-11 14:38:35 +01:00
Taloth Saldono cc13f7126c Make it clearer that Maximum size is the global limit.
(cherry picked from commit a848e575cd37eb3cc421a66fc6b4bbfb26782d8e)
2021-06-11 14:38:07 +01:00
Robin Dadswell 218a82998a Fixed: Real IP logging when IPv4 is mapped as IPv6 2021-06-11 14:36:48 +01:00
ta264 ee81ad2add Fixed: Bad login redirect using a reverse proxy
(cherry picked from commit b0f04bb9d79a9f9f0021d179ea7273998be7cab3)
2021-06-11 14:36:15 +01:00
ta264 648a41ed7b Fixed: RSS sync paging back too far for some indexers
(cherry picked from commit 7fcee7173450fc24f7733ea907b0886c1aa7d735)
2021-06-11 14:36:15 +01:00
ta264 eb9b9d57ed Fixed: Error on bulk delete from queue 2021-06-11 14:36:15 +01:00
ta264 3ab29eee60 Fixed: Reinstate total book count in author stats 2021-06-11 14:36:15 +01:00
ta264 fe13823b43 Fixed: Incorrectly looking up books by EditionId 2021-06-11 14:36:15 +01:00
ta264 13d8554e7e New: More book title naming tokens 2021-06-11 14:36:15 +01:00
ta264 4d840d6f43 New: PartNumber and PartCount naming tokens 2021-06-11 14:36:15 +01:00
ta264 a0e2747004 New: More granular book year naming tokens 2021-06-11 14:36:15 +01:00
ta264 c484a29099 Clean up naming tokens page 2021-06-11 14:36:15 +01:00
ta264 23772ce312 New: Author SortName token 2021-06-11 14:36:15 +01:00
ta264 63cfec517d Bump to .NET 5.0.7 and upgrade packages 2021-06-11 14:36:15 +01:00
ta264 e1465f5336 Fixed: Renaming multi-part books 2021-06-11 14:36:15 +01:00
ta264 7fda41c18b New: Better matching of books with subtitles 2021-06-11 14:36:15 +01:00
ta264 aa45bc3938 New: Neater filling of author images to aspect ratio 2021-06-11 14:36:15 +01:00
ta264 2ca55ae729 Fixed: Remove useless Banners view 2021-06-11 14:36:15 +01:00
ta264 977c4e653b Adjust default quality profiles 2021-05-28 06:49:08 +01:00
Mark McDowall c052363368 Fix webpack memory leak when copying HTML files
(cherry picked from commit 2804a961cb457cc94d3eaa1fe8ee2f71d9d1261c)
2021-05-28 06:49:08 +01:00
ta264 9fb7a1051e Rename MP3-320 to MP3 2021-05-28 06:49:08 +01:00
ta264 3abda061ba New: Detect audio vs text from newznab categories 2021-05-28 06:49:08 +01:00
ta264 065f03a01a Add M4B and Unknown Audio qualities 2021-05-28 06:49:08 +01:00
ta264 f6a04f7890 New: Basic audiobook support 2021-05-28 06:49:08 +01:00
ta264 62928b227b Fixed: Better detection of part books and sets 2021-05-28 06:49:08 +01:00
Robin Dadswell c93870ff60 New: Indexer Categories no longer an advanced option (#1052) 2021-05-23 23:45:22 +01:00
Robin Dadswell 0bcad2e57b Fixed: Root Folder Downloads check giving errors when RuTorrent is used (#1051)
* Fixed: Root Folder Downloads check giving errors when RuTorrent is used

* removed unnecessary if statement from RemotePathMappingCheck
2021-05-23 23:41:16 +01:00
Robin Dadswell 6acd42e82b Show User Agent in System->Tasks for externally triggered commands (#1047)
* Show User Agent in System->Tasks for externally triggered commands

(cherry picked from commit fe8f319f7bfdadb7218b6313ada6cae1d2a35ad8)

* Fix ESLint

(cherry picked from commit c3837c9f7b50534e3eafe1d9fbaf360fee4588b7)

* fixup

Co-authored-by: Taloth Saldono <Taloth@users.noreply.github.com>
Co-authored-by: Mark McDowall <mark@mcdowall.ca>
2021-05-23 20:52:14 +01:00
servarr[bot] 8711c5d824 New: Remove completed downloads from disk when removing from SABnzbd
(cherry picked from commit ac8283d7339b3d9e8ccf70f3d1ff031d1b0a71d1)

Fixes #947

Co-authored-by: Mark McDowall <mark@mcdowall.ca>
2021-05-16 23:05:18 +01:00
Servarr ba6b52c4c9 Translations update from Weblate (#1015)
* Translated using Weblate (Hungarian) [skip ci]

Currently translated at 100.0% (692 of 692 strings)

Translation: Servarr/Readarr
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/hu/

* Translated using Weblate (Italian) [skip ci]

Currently translated at 66.6% (461 of 692 strings)

Translation: Servarr/Readarr
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/it/

* Translated using Weblate (Dutch) [skip ci]

Currently translated at 66.9% (463 of 692 strings)

Translation: Servarr/Readarr
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/nl/

* Added translation using Weblate (Chinese (Traditional)) [skip ci]

* Translated using Weblate (Danish) [skip ci]

Currently translated at 66.9% (463 of 692 strings)

Translation: Servarr/Readarr
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/da/

* Deleted translation using Weblate (Chinese (Traditional)) [skip ci]

* Translated using Weblate (Hungarian) [skip ci]

Currently translated at 100.0% (694 of 694 strings)

Translation: Servarr/Readarr
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/hu/

* Translated using Weblate (German) [skip ci]

Currently translated at 68.7% (478 of 695 strings)

Translation: Servarr/Readarr
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/de/

* Translated using Weblate (Russian) [skip ci]

Currently translated at 66.6% (463 of 695 strings)

Translation: Servarr/Readarr
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/ru/

Co-authored-by: Csaba <csab0825@gmail.com>
Co-authored-by: memnos <fabrassi@gmail.com>
Co-authored-by: ProjectHydra31 <kay@timmerman.io>
Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: lechuck <theghostpirate@gmail.com>
Co-authored-by: Qstick <qstick@gmail.com>
Co-authored-by: reloxx <reloxx@interia.pl>
Co-authored-by: kingii98 <konoff2@gmail.com>
2021-05-15 09:13:22 +01:00
ta264 96db74494a Fixed: Sort authors by lastname, firstname 2021-05-15 08:51:35 +01:00
ta264 62221c2a7f Don't run build for weblate PRs
[common]
2021-05-13 21:16:40 +01:00
nitsua 80b0c594b5 Add a donations section to System for each arr
(cherry picked from commit 1b34244143)
2021-05-13 21:44:18 +01:00
nitsua 6612dab547 Adjust CSS so titles are wrap instead of truncate
(cherry picked from commit d7e91f39b4)
2021-05-13 21:44:02 +01:00
Robin Dadswell 292aacc766 New: Localization support on Health Checks 2021-05-14 10:32:10 +01:00
Robin Dadswell a4755631c3 New: Health Check for Downloads to Root Folder
removed using localization

updated ShouldBeWarning to include wikifragment check

fixed linting issues

slight tidy up
2021-05-14 10:32:10 +01:00
bakerboy448 c5dcb22c01 New: DiscordNotifier is now Notifiarr
Fixes #1014
2021-05-14 10:30:24 +01:00
bakerboy448 1db7ee5111 Fixed: Cleanse Tracker Announce Keys from logs
Fixes #844
2021-05-14 10:30:24 +01:00
bakerboy448 90d610b33a Fixed: Cleanse Notifiarr APIKey from logs
fixes #937
2021-05-14 10:30:24 +01:00
ta264 2984e2e1ca Fixed: Entity too large with big calibre library and digest authentication
Fixes #840
2021-05-13 21:27:16 +01:00
ta264 36080d4665 Fixed: Jumpbar after going back to artist index page 2021-05-13 21:15:11 +01:00
ta264 93f0f33e84 Fixed: restoring scroll position when going back to index page 2021-05-13 21:15:11 +01:00
ta264 129591de61 Revert "Ignore update test temporarily"
This reverts commit fd291aeb96.
2021-05-13 19:55:14 +01:00
ta264 3767c830d5 Fixed: Better detection of existing files 2021-05-13 19:55:14 +01:00
ta264 774180262b Better tracking of CalibreId 2021-05-13 19:55:14 +01:00
ta264 dc843ec63e Fixed: Handle filename changes when retagging with calibre 2021-05-13 19:55:14 +01:00
ta264 bfb42929a2 Fixed: SeriesBookLink housekeeping task 2021-05-13 19:55:14 +01:00
ta264 be09385c9d Fixed: Null reference processing failed import for unknown book 2021-05-13 19:55:14 +01:00
ta264 3c3f3a4d90 Use custom coverlet 2021-05-13 19:55:14 +01:00
ta264 222236bbde Update sentry 2021-05-13 19:55:14 +01:00
ta264 85f93eba98 Update nuget packages, dotnet 5.0.6 2021-05-13 19:55:14 +01:00
ta264 4181334d06 No clean 2021-05-13 19:55:14 +01:00
ta264 d1ed249039 More stringent cache key 2021-05-13 19:55:14 +01:00
ta264 0416b47b69 Remove the backend change optimization 2021-05-13 19:55:14 +01:00
ta264 d7f92daf08 Speed up upload, don't wait on non-windows builds 2021-05-13 19:55:14 +01:00
ta264 a146f6d223 Cache nuget packages 2021-05-13 19:55:14 +01:00
ta264 8864b6b2c8 Run coverage on linux 2021-05-13 19:55:14 +01:00
Qstick 1dff396b9e Fix lint 2021-05-11 21:40:36 +01:00
ta264 a28595887a Update signalr, connected react router, webpack, mini-css-extract 2021-05-10 22:34:15 +01:00
Mark McDowall bdbbcd7fac Updated react-dnd and added touch support
Fixed: Drag and drop on mobile devices
Closes ##4429
2021-05-10 22:24:22 +01:00
ta264 d668bd5277 Update redux and react-redux 2021-05-10 22:24:22 +01:00
ta264 651808497f Update react-addons-shallow-compare, react-autosuggest, react-focus-lock, react-lazyload, react-slider and react-tabs 2021-05-10 22:24:22 +01:00
ta264 ebdc51b821 Updated react and react-dom packages 2021-05-10 22:24:22 +01:00
ta264 755068a44e Upgrade fontawesome, sentry, classnames, clipboard, filesize, fuse.js, jquery, lodash, mobile-detect, moment, qs, core-js 2021-05-10 22:24:22 +01:00
Mark McDowall 3f5668705c Update postcss packages 2021-05-10 22:24:22 +01:00
ta264 9571c992df Update linter packages 2021-05-10 22:24:22 +01:00
ta264 7b3f7bb582 Upgrade babel packages 2021-05-10 22:24:22 +01:00
Qstick ab1928ee95 Update to webpack 5, remove gulp
Co-Authored-By: Mark McDowall <markus101@users.noreply.github.com>
(cherry picked from commit 4ef2174226a0210f756f180dded8567d659589e2)
(cherry picked from commit 06730363c0fe1e2bf376122f50943fbf90ab60e8)
(cherry picked from commit 533f1a61d52cc5d2b7c879de4b2291dbad833cbf)
2021-05-10 22:24:22 +01:00
Mark McDowall 7d4c92cc96 Fixed files that were using incorrect imports
(cherry picked from commit a3bb2f1c32fc1e0c49d0d1fe24c04940453f5431)
(cherry picked from commit 9ebdc5364c69971fde5a0c854a2d46d6b027fd5f)
2021-05-10 22:20:27 +01:00
ta264 00e4555736 New: Add min pages and ignored terms to metadata profiles 2021-05-10 21:54:50 +01:00
servarr[bot] 23142a59d7 New: Add rel="noreferrer" to all external links
* New: Add rel="noreferrer" to all external links

(cherry picked from commit c722e9112496062313d09df16b169873f910f2a1)

* Update Link.js

Co-authored-by: Mark McDowall <mark@mcdowall.ca>
Co-authored-by: Qstick <qstick@gmail.com>
2021-05-10 23:48:38 -04:00
Qstick 5dfd8d1a50 Github workflow for Issue lock and Support bot 2021-05-08 17:44:38 -04:00
Robin Dadswell f45cc29816 Fixed: Import Lists provider message in UI 2021-05-08 15:40:56 -04:00
ta264 fd291aeb96 Ignore update test temporarily 2021-05-07 19:41:49 +01:00
ta264 11577b6db9 Fixed: Identification failing if book metadata has no authors 2021-05-07 18:54:33 +01:00
ta264 146fe04cce Fix bulk queue and blacklisk endpoints 2021-05-05 21:23:15 +01:00
bakerboy448 4a7b14fa39 Update indexer category help text … (and make cats advanced)
closes #979

(cherrypicked from sonarr 8d2d9078ff8f6daf50aef2dded3f96dae93252cc)
2021-05-05 09:30:24 +01:00
bakerboy448 8748b18ae9 discord link fix 2021-05-05 09:29:55 +01:00
bakerboy448 3b84b5da1d update bug template [skip ci]
closes #919
2021-05-05 09:29:31 +01:00
Anonymous d57ef9805d Translated using Weblate (French) [skip ci]
Currently translated at 67.0% (464 of 692 strings)

Translation: Servarr/Readarr
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/fr/
2021-05-01 20:37:27 -04:00
Anonymous 54f336f3fd Translated using Weblate (Polish) [skip ci]
Currently translated at 66.9% (463 of 692 strings)

Translation: Servarr/Readarr
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/pl/
2021-05-01 20:37:27 -04:00
Anonymous 7a129a4f89 Translated using Weblate (Vietnamese) [skip ci]
Currently translated at 66.9% (463 of 692 strings)

Translation: Servarr/Readarr
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/vi/
2021-05-01 20:37:27 -04:00
Anonymous 877f40116a Translated using Weblate (Chinese (Simplified) (zh_CN)) [skip ci]
Currently translated at 66.0% (457 of 692 strings)

Translation: Servarr/Readarr
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/zh_CN/
2021-05-01 20:37:27 -04:00
Anonymous aa043a53b1 Translated using Weblate (Arabic) [skip ci]
Currently translated at 67.0% (464 of 692 strings)

Translation: Servarr/Readarr
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/ar/
2021-05-01 20:37:27 -04:00
Anonymous 51e25b2a3c Translated using Weblate (Korean) [skip ci]
Currently translated at 66.9% (463 of 692 strings)

Translation: Servarr/Readarr
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/ko/
2021-05-01 20:37:27 -04:00
Anonymous 99cedbf96e Translated using Weblate (Swedish) [skip ci]
Currently translated at 66.9% (463 of 692 strings)

Translation: Servarr/Readarr
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/sv/
2021-05-01 20:37:27 -04:00
Anonymous 97e6a353fa Translated using Weblate (Romanian) [skip ci]
Currently translated at 66.9% (463 of 692 strings)

Translation: Servarr/Readarr
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/ro/
2021-05-01 20:37:27 -04:00
Qstick 5996f4d000 Translated using Weblate (Spanish) [skip ci]
Currently translated at 67.0% (464 of 692 strings)

Translation: Servarr/Readarr
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/es/
2021-05-01 20:37:27 -04:00
Anonymous 2067f655bd Translated using Weblate (Spanish) [skip ci]
Currently translated at 67.0% (464 of 692 strings)

Translation: Servarr/Readarr
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/es/
2021-05-01 20:37:27 -04:00
Anonymous 3798ff19e5 Translated using Weblate (Japanese) [skip ci]
Currently translated at 66.9% (463 of 692 strings)

Translation: Servarr/Readarr
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/ja/
2021-05-01 20:37:27 -04:00
Anonymous 273680aed6 Translated using Weblate (German) [skip ci]
Currently translated at 67.0% (464 of 692 strings)

Translation: Servarr/Readarr
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/de/
2021-05-01 20:37:27 -04:00
Anonymous 2421c57bac Translated using Weblate (Icelandic) [skip ci]
Currently translated at 66.9% (463 of 692 strings)

Translation: Servarr/Readarr
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/is/
2021-05-01 20:37:27 -04:00
Anonymous d6d41ac20d Translated using Weblate (Hindi) [skip ci]
Currently translated at 66.9% (463 of 692 strings)

Translation: Servarr/Readarr
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/hi/
2021-05-01 20:37:27 -04:00
Anonymous 5de68ad8d4 Translated using Weblate (Hebrew) [skip ci]
Currently translated at 66.9% (463 of 692 strings)

Translation: Servarr/Readarr
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/he/
2021-05-01 20:37:27 -04:00
Anonymous 089e327596 Translated using Weblate (Italian) [skip ci]
Currently translated at 66.6% (461 of 692 strings)

Translation: Servarr/Readarr
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/it/
2021-05-01 20:37:27 -04:00
Anonymous bddf4d9801 Translated using Weblate (Russian) [skip ci]
Currently translated at 66.9% (463 of 692 strings)

Translation: Servarr/Readarr
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/ru/
2021-05-01 20:37:27 -04:00
Anonymous 88a8f33bdb Translated using Weblate (Bulgarian) [skip ci]
Currently translated at 66.9% (463 of 692 strings)

Translation: Servarr/Readarr
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/bg/
2021-05-01 20:37:27 -04:00
Anonymous a2668edabf Translated using Weblate (Czech) [skip ci]
Currently translated at 66.9% (463 of 692 strings)

Translation: Servarr/Readarr
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/cs/
2021-05-01 20:37:27 -04:00
Anonymous c435b3853b Translated using Weblate (Portuguese) [skip ci]
Currently translated at 66.6% (461 of 692 strings)

Translation: Servarr/Readarr
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/pt/
2021-05-01 20:37:27 -04:00
Anonymous c226abf184 Translated using Weblate (Turkish) [skip ci]
Currently translated at 66.9% (463 of 692 strings)

Translation: Servarr/Readarr
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/tr/
2021-05-01 20:37:27 -04:00
Anonymous ca5fbf7cc3 Translated using Weblate (Danish) [skip ci]
Currently translated at 66.9% (463 of 692 strings)

Translation: Servarr/Readarr
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/da/
2021-05-01 20:37:27 -04:00
Anonymous 395bb7cacf Translated using Weblate (Thai) [skip ci]
Currently translated at 66.9% (463 of 692 strings)

Translation: Servarr/Readarr
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/th/
2021-05-01 20:37:27 -04:00
Anonymous 13e06ffcfd Translated using Weblate (Hungarian) [skip ci]
Currently translated at 88.4% (612 of 692 strings)

Translation: Servarr/Readarr
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/hu/
2021-05-01 20:37:27 -04:00
Csaba 4b3bb051a2 Translated using Weblate (Hungarian) [skip ci]
Currently translated at 88.4% (612 of 692 strings)

Translation: Servarr/Readarr
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/hu/
2021-05-01 20:37:27 -04:00
Anonymous 68a7417760 Translated using Weblate (Finnish) [skip ci]
Currently translated at 66.9% (463 of 692 strings)

Translation: Servarr/Readarr
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/fi/
2021-05-01 20:37:27 -04:00
Anonymous 1deb9d576f Translated using Weblate (Dutch) [skip ci]
Currently translated at 66.9% (463 of 692 strings)

Translation: Servarr/Readarr
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/nl/
2021-05-01 20:37:27 -04:00
Anonymous 3fa656433c Translated using Weblate (Greek) [skip ci]
Currently translated at 66.9% (463 of 692 strings)

Translation: Servarr/Readarr
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/el/
2021-05-01 20:37:27 -04:00
Anonymous a1e90bef2e Translated using Weblate (Portuguese (Brazil)) [skip ci]
Currently translated at 66.7% (462 of 692 strings)

Translation: Servarr/Readarr
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/pt_BR/
2021-05-01 20:37:27 -04:00
Qstick 63b8dcc2e3 Consistent node ver between build_frontend and lint_frontend 2021-04-30 00:20:55 -04:00
Anonymous 12588e8e08 Translated using Weblate (Vietnamese) [skip ci]
Currently translated at 65.7% (455 of 692 strings)

Translation: Servarr/Readarr
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/vi/
2021-04-30 02:09:28 +00:00
Weblate aab35b1a48 Added translation using Weblate (Chinese (Simplified) (zh_CN)) [skip ci] 2021-04-30 02:02:48 +00:00
Weblate 0792e7c016 Added translation using Weblate (Portuguese (Brazil)) [skip ci] 2021-04-30 02:01:45 +00:00
Weblate ed12e2e534 Added translation using Weblate (Portuguese) [skip ci] 2021-04-30 02:00:55 +00:00
Anonymous 5cd8574792 Translated using Weblate (Korean) [skip ci]
Currently translated at 65.7% (455 of 692 strings)

Translation: Servarr/Readarr
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/ko/
2021-04-30 01:58:29 +00:00
Anonymous 2c5c7789dc Translated using Weblate (Italian) [skip ci]
Currently translated at 65.3% (452 of 692 strings)

Translation: Servarr/Readarr
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/it/
2021-04-30 01:55:27 +00:00
Anonymous bbcc26f489 Translated using Weblate (Hungarian) [skip ci]
Currently translated at 65.8% (456 of 692 strings)

Translation: Servarr/Readarr
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/hu/
2021-04-30 01:53:00 +00:00
Qstick d61106aee8 Added translation using Weblate (Vietnamese) [skip ci] 2021-04-30 01:52:37 +00:00
Qstick c7b11a83b9 Added translation using Weblate (Turkish) [skip ci] 2021-04-30 01:51:58 +00:00
Qstick 1a1d99f206 Added translation using Weblate (Thai) [skip ci] 2021-04-30 01:51:05 +00:00
Anonymous ed44f83e27 Translated using Weblate (Arabic) [skip ci]
Currently translated at 66.9% (463 of 692 strings)

Translation: Servarr/Readarr
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/ar/
2021-04-30 01:50:13 +00:00
Qstick e2f380df25 Added translation using Weblate (Swedish) [skip ci] 2021-04-30 01:50:11 +00:00
Qstick d2e2f68cf9 Added translation using Weblate (Russian) [skip ci] 2021-04-30 01:49:31 +00:00
Qstick 694cd1b178 Added translation using Weblate (Romanian) [skip ci] 2021-04-30 01:49:01 +00:00
Qstick 5b1277daff Added translation using Weblate (Polish) [skip ci] 2021-04-30 01:48:30 +00:00
Qstick 4b31a143a9 Added translation using Weblate (Korean) [skip ci] 2021-04-30 01:47:57 +00:00
Qstick 36f718dde5 Added translation using Weblate (Japanese) [skip ci] 2021-04-30 01:47:18 +00:00
Qstick 82f477c239 Added translation using Weblate (Italian) [skip ci] 2021-04-30 01:46:47 +00:00
Qstick c5e51248d2 Added translation using Weblate (Icelandic) [skip ci] 2021-04-30 01:46:12 +00:00
Qstick d4fb6824b6 Added translation using Weblate (Hungarian) [skip ci] 2021-04-30 01:45:32 +00:00
Qstick cb3cdd6980 Added translation using Weblate (Hindi) [skip ci] 2021-04-30 01:44:59 +00:00
Anonymous d441385a74 Translated using Weblate (Greek) [skip ci]
Currently translated at 66.0% (457 of 692 strings)

Translation: Servarr/Readarr
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/el/
2021-04-30 01:42:29 +00:00
Qstick 1b680d9faa Added translation using Weblate (Hebrew) [skip ci] 2021-04-30 01:42:10 +00:00
Qstick 0d6119a804 Added translation using Weblate (French) [skip ci] 2021-04-30 01:41:24 +00:00
Anonymous c26b787b6f Translated using Weblate (Arabic) [skip ci]
Currently translated at 66.9% (463 of 692 strings)

Translation: Servarr/Readarr
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/ar/
2021-04-30 01:38:27 +00:00
Qstick 482815629b Added translation using Weblate (Finnish) [skip ci] 2021-04-30 01:38:25 +00:00
Qstick 19ad139cf8 Added translation using Weblate (Greek) [skip ci] 2021-04-30 01:37:54 +00:00
Qstick c18f41e81c Added translation using Weblate (German) [skip ci] 2021-04-30 01:37:23 +00:00
Anonymous 6826ff1d4b Translated using Weblate (Arabic) [skip ci]
Currently translated at 66.0% (457 of 692 strings)

Translation: Servarr/Readarr
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/ar/
2021-04-30 01:34:45 +00:00
Qstick 22a17201ff Added translation using Weblate (Danish) [skip ci] 2021-04-30 01:34:28 +00:00
Qstick ddf5ec5f66 Added translation using Weblate (Czech) [skip ci] 2021-04-30 01:33:16 +00:00
Qstick 26cd77f1c5 Added translation using Weblate (Bulgarian) [skip ci] 2021-04-30 01:32:25 +00:00
Qstick 20e1874787 Added translation using Weblate (Arabic) [skip ci] 2021-04-30 01:31:50 +00:00
Qstick a85d25cb82 Added translation using Weblate (Spanish) [skip ci] 2021-04-30 01:23:15 +00:00
Qstick afb9f3809f Added translation using Weblate (Dutch) 2021-04-29 12:17:51 +00:00
nitsua d87bf5ae63 Localization framework 2021-04-29 08:58:43 +01:00
ta264 144134446d Fail build on BSD integration test fails
(cherry picked from commit aa07f3039e039387a54acabed2acdcd7d6d4830d)
2021-04-27 20:07:18 +01:00
ta264 23f2bbc700 Don't start integration tests too soon
(cherry picked from commit b284f40716269dc4f641323b8293f40dfda8a424)
(cherry picked from commit d549975d96f04cc6b197d719d8389110cb24b8e6)
2021-04-27 20:07:00 +01:00
ta264 a8388e12c1 Remove legacy code that accessed config.xml without a lock
(cherry picked from commit 7a4adea14ae18a5204226237eded56005a76893e)
(cherry picked from commit ba9aab1640358b4097997b6cd32e2edc36a5f696)
2021-04-27 20:02:40 +01:00
bakerboy448 4f40ad0480 New: ISO 8601 date format in log files
Closes #985
2021-04-24 22:43:03 -04:00
ta264 27bc97a1a6 Reinstate missing login mapper 2021-04-21 21:44:47 +01:00
ta264 73f81465e9 Fixed: Forms login page uses urlbase for logo
(cherry picked from commit e0f30c3eaeab7d863b4b4104a9f0d501bd693f69)
2021-04-20 21:58:20 +01:00
ta264 a8c91f2bc8 Fixed: Forms login with urlbase
(cherry picked from commit 811a9d4c6123643e0a2ae26c1ccf06717cb5f47b)
2021-04-20 21:58:11 +01:00
ta264 4b0586bd3d Fixed: UI not updating on upgrade
(cherry picked from commit d566c1efd42f9a94c524db311e8fa99bc6e0323f)
2021-04-20 21:57:24 +01:00
ta264 8f3f90d407 Tidy conversion to aspnetcore
(cherry picked from commit 490f6e2e6aa3f220cc98f257a3ca3b2bea48fb80)
2021-04-20 21:21:42 +01:00
ta264 47b23417e0 Fixed: Memory leak
Explicitly register concrete types as transient

(cherry picked from commit f097d30b095d89681eb1aede2e88c4fdefcab516)
2021-04-20 21:21:32 +01:00
ta264 5a9d75857d Fixed: Rogue scrollbar on large screens 2021-04-12 21:30:44 +01:00
ta264 2691cb3fce Fixed: Misaligned Book/Author details on large screens 2021-04-12 21:14:02 +01:00
ta264 9d77337726 Fixed: Retriggering marquee titles 2021-04-12 21:11:15 +01:00
ta264 5192c76717 New: Swipe left/right to navigate authors/books on mobile 2021-04-12 19:49:32 +01:00
ta264 f884a2689a Rework marquee 2021-04-12 19:49:32 +01:00
ta264 5714f1c913 Fix prop validation 2021-04-12 19:49:32 +01:00
ta264 a84725f867 Fixed: Author/Book overview overflows
Bump react-measure to v2.5.2
2021-04-12 19:49:32 +01:00
ta264 106a1c339b New: Scroll long book titles 2021-04-12 19:49:32 +01:00
ta264 72de94308b Fixed: Setting file dates
Fixes #940
2021-04-12 19:49:32 +01:00
ta264 400f77584d New: Add details and delete buttons to file editor table 2021-04-12 19:49:32 +01:00
ta264 427f76fbe0 Fixed: Better formatting of the author books page 2021-04-12 19:49:32 +01:00
ta264 8a7765c855 Fixed: Only pick up supported formats from calibre 2021-04-12 19:49:32 +01:00
ta264 fea34add4b New: Support kepub (as epub) 2021-04-12 19:49:32 +01:00
ta264 399ee8d2e7 Fixed: Book files disappearing 2021-04-12 19:49:32 +01:00
ta264 3940d4aa28 Fixed: Run import identification even for unparsable releases 2021-04-12 19:49:32 +01:00
ta264 f0742e3750 Fixed: File change history appearing against wrong book 2021-04-12 19:49:32 +01:00
ta264 41f5f0f2d4 New: Search for new editions from goodreads when identifying 2021-04-12 19:49:32 +01:00
ta264 c1f2ea6c8a Fixed: Don't distort author images in search bar results 2021-04-12 19:49:32 +01:00
ta264 2d7aa20448 New: Auto rescan on remote path mapping change for Calibre 2021-04-12 19:49:32 +01:00
ta264 9be948b7cc Fixed: Parse series for search results 2021-04-12 19:49:32 +01:00
ta264 110e867bd3 New: Show book file details in interactive import and unmapped files 2021-04-12 19:49:32 +01:00
ta264 9f37b1c484 New: Get more candidates and include ISBN/ASIN in distance calculation 2021-04-12 19:49:32 +01:00
ta264 d078dacaab New: Cache searches for 5 days 2021-04-12 19:49:32 +01:00
ta264 996841db45 Fixed: Slow initial author load 2021-04-12 19:49:32 +01:00
ta264 404da4ae22 Fixed: Handle parsing books with multiple authors properly 2021-04-12 19:49:32 +01:00
ta264 fa25324463 Fixed: Refreshing / Deleting Series 2021-04-12 19:49:32 +01:00
ta264 652fdae7d9 New: Use ISBN / ASIN in preference to goodreads id 2021-04-12 19:49:32 +01:00
ta264 6a61702a91 Fixed: Ensure correct book edition is in the database before importing book 2021-04-12 19:49:32 +01:00
ta264 8bc44f2a29 Fixed: Don't accidentally remove book editions when refreshing a book 2021-04-12 19:49:32 +01:00
ta264 8ec13f5ead Fixed: Better aggregation of calibre data 2021-04-12 19:49:32 +01:00
ta264 f584d2d8d2 New: Allow keeping calibre in sync with goodreads 2021-04-12 19:49:32 +01:00
ta264 7072b913a6 New: Allow retagging book files with calibre 2021-04-12 19:49:32 +01:00
ta264 e29b0c318e Fixed: Prevent renaming calibre files 2021-04-12 19:49:32 +01:00
ta264 dd341ef1e1 Fixed: Disable calibre duplicate check when adding new books 2021-04-12 19:49:32 +01:00
Jared Gesser 2bea1965c6 fix spelling, fix punctuation 2021-04-11 20:39:30 +01:00
njordan 0252617730 Add support for Flood 2021-04-07 13:19:44 +01:00
Robin Dadswell f6e87858a8 New: Added logo to loading page 2021-04-07 12:05:03 +01:00
Mark McDowall 6fa56b8873 Fixed: Interactive import modal horizontal scrolling on Firefox mobile
(cherry picked from commit 6c505937dacfa82e965adaaac407c888a1caacce)
2021-04-02 00:24:32 -04:00
bakerboy448 c749a660e7 Fixed: Debatable typos in Naming Modal
(cherry picked from commit f2f1039c5ed5fdf42683d64a777cdac410e45fd6)
2021-03-28 19:22:47 -04:00
bakerboy448 e6992da18c Fixed: Cleanse Goodreads Token and Token Secret from Log Files 2021-03-23 12:54:03 +00:00
ta264 80e8d5e5e7 Secret Dev Settings Page 2021-03-22 21:34:39 +00:00
Taloth Saldono 61fdb6eba2 Fixed: Unnecessary idle cpu usage
(cherry picked from commit 5a69801877eb72899dd9867c39a1b88b7114fe5b)
(cherry picked from commit 4eb6cb9dae)
2021-03-22 21:34:38 +00:00
ta264 98611c7d02 New: Release parser improvements 2021-03-22 21:28:14 +00:00
ta264 ad2b3e5cc5 Fix tests 2021-03-19 19:28:58 +00:00
ta264 34bd1a5876 New: Warn if user tries to connect to a calibre-web server 2021-03-18 22:38:52 +00:00
ta264 b652cf9563 New: Support for deleting books from calibre 2021-03-18 21:54:07 +00:00
ta264 fa459ea7ac Fixed: Cutoff delete button in unmapped files 2021-03-17 21:03:33 +00:00
ta264 acb6fc01b3 Fixed: Gracefully handle Goodreads search error
Fixes #897
2021-03-17 21:35:42 +00:00
ta264 1e0e8adc77 More mono cleanup 2021-03-17 21:30:57 +00:00
ta264 35ab21ab04 Fixed: Marking history as failed 2021-03-17 21:25:06 +00:00
Taloth Saldono d61daeac8e Generalized RateLimit logic to all indexers based on indexer id 2021-03-16 21:52:21 +00:00
Taloth Saldono c8c37435be Fixed: Jackett indexer search performance 2021-03-16 21:52:21 +00:00
ta264 a6f8391f40 Fix deleting providers 2021-03-16 21:52:21 +00:00
ta264 025cb04035 Fixed: FolderWritable check for CIFS shares mounted in Unix
See https://github.com/dotnet/runtime/issues/42790

Implemented workaround in https://github.com/dotnet/runtime/issues/42790#issuecomment-700362617
2021-03-15 23:33:19 -04:00
Qstick 3fc60dc56d Run Analysis on Linux main build (leaving in failed state to test)
(cherry picked from commit be40a0d7381278c3225e9faa0230cb1dcceeb794)
2021-03-12 12:55:48 +00:00
ta264 f5b2acdbdf New: .NET 5.0.4 2021-03-12 12:55:48 +00:00
Mark McDowall 9a0b247c8f Use createHandleActions for adding/removing commands so itemMap is synced properly
(cherry picked from commit 99be6a7e4065b77c910df6444a468fedc23e90cc)
2021-03-12 12:55:48 +00:00
ta264 8c50b866ff Fixed: Adding book from list 2021-03-12 12:55:48 +00:00
ta264 d6170dbfed New: Use native dotnet host and DryIoc 2021-03-12 12:55:48 +00:00
ta264 58ddbcd77e New: Use ASP.NET Core instead of Nancy 2021-03-12 12:55:48 +00:00
ta264 d348232e0d Unused 2021-03-12 12:55:48 +00:00
ta264 940da91ca4 Disable new warning in 5.0.200
[common]
2021-03-12 12:55:48 +00:00
ta264 543fe6729a More mono cleanup 2021-03-12 12:55:48 +00:00
ta264 6bcede5064 Fix formatting 2021-03-12 12:55:48 +00:00
Taloth Saldono fbfbe4a931 Cleanse more /home/username scenarios
(cherry picked from commit 23047623ee89944260b6073813ff1f4e5223be71)
2021-02-27 17:28:18 +00:00
Qstick 5a0d52aef9 Update Discord link on MoreInfo page 2021-02-26 12:42:04 -05:00
ta264 2bf86248af Fixed: Ensure SSL cert exists before saving config
Trap missing certificate exception to avoid bootloop

(cherry picked from commit 78c7372a0d64e15734b14b0ca9852ae7c0a47132)
2021-02-25 04:34:42 +00:00
Qstick 96cb26050b Update Readme Discord Link [skip ci] 2021-02-24 21:54:18 -05:00
ta264 32833b5fc4 Fixed: Parsing [book] by [author] 2021-02-12 19:47:15 +00:00
ta264 1cdcfe25c0 Fixed: Improve parser when release has colons in title 2021-02-12 19:41:18 +00:00
ta264 c61315b90e Fixed: Restart button in UI
Fixes #633
2021-02-11 22:06:16 +00:00
ta264 d22ca1fe4f Fixed: Adding book where the same author appears twice
Fixes #815
2021-02-12 16:04:15 +00:00
ta264 791bba471f Fixed: Trying to get book details from filename when already obtained from tags 2021-02-12 16:04:15 +00:00
ta264 446a0591db Fixed: Duplicates in wanted page 2021-02-12 16:04:15 +00:00
ta264 69773db77a Fixed: Errors converting to book resource 2021-02-12 16:04:15 +00:00
ta264 d51af026fb Move test harness packages to Directory.Build.props 2021-02-12 16:04:15 +00:00
ta264 fb130fd0e9 New: Drop mono support 2021-02-12 16:04:15 +00:00
ta264 760de88e7c New: .NET 5 support for FreeBSD 11+ 2021-02-12 16:04:15 +00:00
ta264 4a1b2af535 New: Log out body for bad API requests 2021-02-12 16:04:15 +00:00
ta264 5cc0331c75 Fixed: Adding indexers from presets 2021-02-12 16:04:15 +00:00
ta264 d3e8c7e0c9 New: Use System.Text.Json for Nancy and SignalR 2021-02-12 16:04:15 +00:00
Qstick 16b3817202 Fixed: Don't ignore default Boolean in db serialization 2021-02-12 16:04:15 +00:00
ta264 eaf46b0550 Hack: ignore wonky depedencies in signalR js client 2021-02-12 16:04:15 +00:00
ta264 da1686b53c New: Build with NET5 2021-02-12 16:04:15 +00:00
Mark McDowall 52337350d9 Fixed: Restoring backup from zip file on disk
(cherry picked from commit 5960035d5d660a923e11b0300833b60c64271522)
2021-02-08 13:02:52 -05:00
Mark McDowall faf8fbbc2a Update column properties when restoring persisted state
(cherry picked from commit 653db8290e0a7737348d911d322c4218c3b5b677)
2021-02-07 20:41:40 -05:00
Mark McDowall e6ceafe0b7 Fixed: Table column order resetting after refresh
#4297

(cherry picked from commit 044cb563a6488c16916ea7617d1f91404330b06f)
2021-02-07 15:35:17 -05:00
Qstick cf42e02586 Fixed: Settings fields being altered during save
(cherry picked from commit dd61480d60e067e851982b0cc98f03f752b80673)
2021-02-07 10:15:28 -05:00
Qstick 93eca6a749 Fix DownloadStation integration in DSM 7
(cherry picked from commit b0753ab153a79203de10a928e99fcec5b6a7c895)
2021-02-07 09:20:54 -05:00
bakerboy448 d7813c2255 bump chrome driver from 86 to 88
[common]
2021-02-06 16:05:31 -05:00
bakerboy448 239240768b update FR template [skip ci] 2021-02-06 11:23:49 -05:00
Taloth Saldono 36b8df87d2 Fixed: Validation of new qbittorrent max-ratio action config
(cherry picked from commit d1c3ae17491726320c58561548a21d83dae7fe7d)
2021-02-04 23:31:25 -05:00
Qstick 7c14bd1c80 Add crossorigin use-credentials attribute to manifest tag
(cherry picked from commit 70e4324a7c6a78e893a5c135cdfdedbb2398b892)
2021-02-04 23:24:11 -05:00
bakerboy448 fd81ca86db New: Update all wiki links to point to the Servarr Wiki 2021-02-03 22:41:59 -05:00
Qstick 42262877b0 Quick fix for Queue sort by Author SortName
Signed-off-by: bakerboy448 <55419169+bakerboy448@users.noreply.github.com>
2021-01-30 18:11:14 -05:00
Mark McDowall 843e46f890 New: Renamed Quick Import to Move Automatically 2021-01-30 15:07:59 -05:00
bakerboy448 5ae4899ff2 update bug template [skip ci]
Closes #751
2021-01-30 15:07:19 -05:00
Qstick bc4aed17a2 Revert "Fix GoodReads Search Test, New First Book"
This reverts commit c8263fd856.
2021-01-30 13:38:23 -05:00
Qstick 8adf67ed5a Fixed: Prevent Bookshelf error if items is undefined 2021-01-30 13:14:30 -05:00
Qstick 7cc9a67b74 Fixed: PendingRelese deletes wrong value on author delete 2021-01-28 23:43:19 -05:00
Qstick c8263fd856 Fix GoodReads Search Test, New First Book 2021-01-28 23:43:19 -05:00
ta264 d7cdbbecc8 Fixed: Set musl status at compile time 2021-01-28 23:43:19 -05:00
ta264 64e2f6457d Fixed: Goodreads bookshelves not shown after authentication 2021-01-28 23:43:19 -05:00
Qstick 93ba5ade9e Cleanup Conflicts in Sonarr/Lidarr Pulls
Co-Authored-By: Robin Dadswell <19610103+RobinDadswell@users.noreply.github.com>
2021-01-28 23:43:19 -05:00
ta264 ffc12656ee Add SortKey validation
Signed-off-by: Robin Dadswell <robin@dadswell.email>
2021-01-28 23:43:19 -05:00
Qstick 1e735da9f1 Fixed: False Positives for RemotePath check with Deluge
Signed-off-by: Robin Dadswell <robin@dadswell.email>
2021-01-28 23:43:19 -05:00
Mark McDowall 96072e61e0 Fixed: Show TLS errors in UI when testing download clients
Signed-off-by: Robin Dadswell <robin@dadswell.email>
2021-01-28 23:43:19 -05:00
Qstick b05b8c9e7a Resource missing from Gotify call
Signed-off-by: Robin Dadswell <robin@dadswell.email>
2021-01-28 23:43:19 -05:00
Qstick f73b9491ad Gotify token as query parameter
Signed-off-by: Robin Dadswell <robin@dadswell.email>
2021-01-28 23:43:19 -05:00
Qstick 7842acc76e Convert Notifications from RestSharp to HttpClient
Signed-off-by: Robin Dadswell <robin@dadswell.email>
2021-01-28 23:43:19 -05:00
Qstick ad11ef9d2a Fixed: Manual Import Fails on failed Import Items
Signed-off-by: Robin Dadswell <robin@dadswell.email>
2021-01-28 23:43:19 -05:00
Taloth Saldono 70c572534a Fixed binary execute permissions for osx and Radarr
Signed-off-by: Robin Dadswell <robin@dadswell.email>
2021-01-28 23:43:19 -05:00
Taloth Saldono 4236afe850 Fixed disk permission tests
Signed-off-by: Robin Dadswell <robin@dadswell.email>
2021-01-28 23:43:19 -05:00
Taloth Saldono 1ff5d814f4 New: Displaying folder-based permissions in UI rather than file-based permissions and with selectable sane presets
Fixed: Preserve setgid when applying unix permissions
Signed-off-by: Robin Dadswell <robin@dadswell.email>
2021-01-28 23:43:19 -05:00
Taloth Saldono 7921a228ad Readded 0 cat to the end of the Newznab list
Signed-off-by: Robin Dadswell <robin@dadswell.email>
2021-01-28 23:43:19 -05:00
Qstick 3af8051e3c Improve use of All() for Path related queries
Signed-off-by: Robin Dadswell <robin@dadswell.email>
2021-01-28 23:43:19 -05:00
Qstick cf0439d4c5 Mass Editor size and options
Co-Authored-By: Mark McDowall <markus101@users.noreply.github.com>
Signed-off-by: Robin Dadswell <robin@dadswell.email>
2021-01-28 23:43:19 -05:00
Qstick 5176bdc786 Fixed: Size on disk sorting and display
Co-Authored-By: Mark McDowall <markus101@users.noreply.github.com>
Signed-off-by: Robin Dadswell <robin@dadswell.email>
2021-01-28 23:43:19 -05:00
Mark McDowall 0c8ad37a8f New: Differentiate between short term and long term (more than 6 hours) indexer failures
Signed-off-by: Robin Dadswell <robin@dadswell.email>
2021-01-28 23:43:19 -05:00
Qstick 4fe6029be7 Fixed: (Windows) clean up extraneous files in build folder during installation
Co-Authored-By: Mark McDowall <markus101@users.noreply.github.com>
Signed-off-by: Robin Dadswell <robin@dadswell.email>
2021-01-28 23:43:19 -05:00
Mark McDowall 05bc9f11ee New: Bulk remove from Blacklist
Signed-off-by: Robin Dadswell <robin@dadswell.email>
2021-01-28 23:43:19 -05:00
Qstick 267bdb4cdf New: Show .net version in UI
Signed-off-by: Robin Dadswell <robin@dadswell.email>
2021-01-28 23:43:19 -05:00
Mark McDowall 6d9126bca4 Fixed: Cleanse account and passwd from Download Station URLs
Signed-off-by: Robin Dadswell <robin@dadswell.email>
2021-01-28 23:43:19 -05:00
Mark McDowall 8853f1cfb3 Fixed: Webhooks using lower case event types (in the future this could change)
Signed-off-by: Robin Dadswell <robin@dadswell.email>
2021-01-28 23:43:19 -05:00
Mark McDowall 5afe37e929 New: Health events for Webhooks
Signed-off-by: Robin Dadswell <robin@dadswell.email>
2021-01-28 23:43:19 -05:00
Qstick 755fec154b Fixed: Failing file copy when running in docker on synology with btrfs
Co-Authored-By: Taloth <Taloth@users.noreply.github.com>
Signed-off-by: Robin Dadswell <robin@dadswell.email>
2021-01-28 23:43:19 -05:00
Taloth Saldono 2d1573251b Fixed: Regression causing updater to fail (manual update required if on 3.0.3.971, see forums)
Signed-off-by: Robin Dadswell <robin@dadswell.email>
2021-01-28 23:43:19 -05:00
Taloth Saldono da5cdd6661 Fixed: Dataloss when moving series folder to root folder with only different casing
Signed-off-by: Robin Dadswell <robin@dadswell.email>
2021-01-28 23:43:19 -05:00
Taloth 7f64162a7a New: Newznab/Torznab categories dropdown with indexer provided category names
Signed-off-by: Robin Dadswell <robin@dadswell.email>
2021-01-28 23:43:19 -05:00
Taloth Saldono b4289664dc Handle ratelimit api response for newznab caps endpoint on certain newznab indexers that have caps behind the apikey
Signed-off-by: Robin Dadswell <robin@dadswell.email>
2021-01-28 23:43:19 -05:00
Qstick 4fb13a64b1 Fixed: Preview rename tip wording
Co-Authored-By: Mark McDowall <markus101@users.noreply.github.com>
Signed-off-by: Robin Dadswell <robin@dadswell.email>
2021-01-28 23:43:19 -05:00
Qstick a06ceeb31e Fixed: Artist/Album navigation buttons hidden with some titles
Co-Authored-By: Mark McDowall <markus101@users.noreply.github.com>
Signed-off-by: Robin Dadswell <robin@dadswell.email>
2021-01-28 23:43:19 -05:00
Qstick 18a9f69f60 Fixed: Links and already added icons overflowing on add artist/album search results
Co-Authored-By: Mark McDowall <markus101@users.noreply.github.com>
Signed-off-by: Robin Dadswell <robin@dadswell.email>
2021-01-28 23:43:19 -05:00
Taloth Saldono 36685edd49 Fixed: Exception when parsing Quality in release title with colon
Signed-off-by: Robin Dadswell <robin@dadswell.email>
2021-01-28 23:43:19 -05:00
Qstick e4ca35d2d2 Fixed: Long paths overflowing in artist history
Co-Authored-By: Mark McDowall <markus101@users.noreply.github.com>
Signed-off-by: Robin Dadswell <robin@dadswell.email>
2021-01-28 23:43:19 -05:00
Mark McDowall c534ab570f Don't process queue item without details
Signed-off-by: Robin Dadswell <robin@dadswell.email>
2021-01-28 23:43:19 -05:00
Mark McDowall 1f88450045 Fixed: Show more information in UI when testing SAB fails in some cases
Signed-off-by: Robin Dadswell <robin@dadswell.email>
2021-01-28 23:43:19 -05:00
Ryan b15ab3ae27 Fixed: Typo/unclear text in backup retention
Signed-off-by: Robin Dadswell <robin@dadswell.email>
2021-01-28 23:43:19 -05:00
Taloth Saldono 360e68a793 Remove stacktrace if hardlink resulted in EXDEV.
Signed-off-by: Robin Dadswell <robin@dadswell.email>
2021-01-28 23:43:19 -05:00
Taloth Saldono 4aebf02d14 Fixed: Performance of symbolic link detection and infinite recursion
Signed-off-by: Robin Dadswell <robin@dadswell.email>
2021-01-28 23:43:19 -05:00
Taloth Saldono 7002628514 New: Fast copy using reflink on btrfs volumes
Signed-off-by: Robin Dadswell <robin@dadswell.email>
2021-01-28 23:43:19 -05:00
Taloth Saldono 4af4d45873 Fixed: Removed hardlink-based transactional file transfer logic (instead relying on explicit copy+delete for cifs)
Signed-off-by: Robin Dadswell <robin@dadswell.email>
2021-01-28 23:43:19 -05:00
Qstick fe85e18a62 Fixed: Sorting of queue by artist title when unknown items are included
Co-Authored-By: Mark McDowall <markus101@users.noreply.github.com>
Signed-off-by: Robin Dadswell <robin@dadswell.email>
2021-01-28 23:43:19 -05:00
Qstick 4d2781d128 Moved Windows-only Permission function to Lidarr.Windows
Co-Authored-By: Taloth <Taloth@users.noreply.github.com>
Signed-off-by: Robin Dadswell <robin@dadswell.email>
2021-01-28 23:43:19 -05:00
Qstick 5a49fb9a14 fix modifiers for various classes
Co-Authored-By: Taloth <Taloth@users.noreply.github.com>
Signed-off-by: Robin Dadswell <robin@dadswell.email>
2021-01-28 23:43:19 -05:00
Mark McDowall 5ca32a7e84 Fixed: Indexer being disabled due to download client rejecting it
Signed-off-by: Robin Dadswell <robin@dadswell.email>
2021-01-28 23:43:19 -05:00
Taloth Saldono d6634e7da1 Added PrivacyLevel option to FieldDefinition for later usage
Signed-off-by: Robin Dadswell <robin@dadswell.email>
2021-01-28 23:43:19 -05:00
Taloth Saldono a6ec2f5367 Added MultiSelect input control for provider settings
Signed-off-by: Robin Dadswell <robin@dadswell.email>
2021-01-28 23:43:19 -05:00
Taloth Saldono 459dcc2ed6 New: Added FileList.io indexer support
Signed-off-by: Robin Dadswell <robin@dadswell.email>
2021-01-28 23:43:19 -05:00
Arthur Bols acd5796d87 New: Removed chown and simplified chmod options for linux/osx
Signed-off-by: Robin Dadswell <robin@dadswell.email>
2021-01-28 23:43:19 -05:00
Taloth Saldono e18f4bb71c Allow inline markdown in the changelog for linking to wiki
Signed-off-by: Robin Dadswell <robin@dadswell.email>
2021-01-28 23:43:19 -05:00
Qstick 051af8a9a6 Fixed: Not removing seeded download if it was manual imported in some cases
Co-Authored-By: Mark McDowall <markus101@users.noreply.github.com>
Signed-off-by: Robin Dadswell <robin@dadswell.email>
2021-01-28 23:43:19 -05:00
Mark McDowall 47f9572f83 Fixed: Rejections custom filter for Interactive Search (now Rejections Count)
Signed-off-by: Robin Dadswell <robin@dadswell.email>
2021-01-28 23:43:19 -05:00
Qstick 4ca774182a Improve root folder health check
Co-Authored-By: Mark McDowall <markus101@users.noreply.github.com>
Signed-off-by: Robin Dadswell <robin@dadswell.email>
2021-01-28 23:43:19 -05:00
Skyler Mäntysaari 53527c518b New: SendGrid Notifications
Signed-off-by: Robin Dadswell <robin@dadswell.email>
2021-01-28 23:43:19 -05:00
Qstick 84ff9abf44 Fixed: Added .org to website url filtering in parser
Co-Authored-By: Taloth <Taloth@users.noreply.github.com>
Signed-off-by: Robin Dadswell <robin@dadswell.email>
2021-01-28 23:43:19 -05:00
Qstick ceef604201 Fixed recursion issue when emptying recycle bin
Co-Authored-By: Taloth <Taloth@users.noreply.github.com>
Signed-off-by: Robin Dadswell <robin@dadswell.email>
2021-01-28 23:43:19 -05:00
Qstick 6b8d2a60a7 Fixed: Tag details list series in alphabetical order
Co-Authored-By: Mark McDowall <markus101@users.noreply.github.com>
Signed-off-by: Robin Dadswell <robin@dadswell.email>
2021-01-28 23:43:19 -05:00
Qstick 3b656e05a2 Added UserAgent to api request trace log
Co-Authored-By: Taloth <Taloth@users.noreply.github.com>
Signed-off-by: Robin Dadswell <robin@dadswell.email>
2021-01-28 23:43:19 -05:00
Qstick a9e03ed1cc New: Add DownloadClient and DownloadId to Webhook notifications
Co-Authored-By: Mark McDowall <markus101@users.noreply.github.com>
Signed-off-by: Robin Dadswell <robin@dadswell.email>
2021-01-28 23:43:19 -05:00
Qstick bb504ec275 Clarify that Post-Import Category torrents are not monitored by Sonarr.
Co-Authored-By: Taloth <Taloth@users.noreply.github.com>
Signed-off-by: Robin Dadswell <robin@dadswell.email>
2021-01-28 23:43:19 -05:00
Qstick 19a496c31c Fixed: Windows installer won't create shortcut if unchecked
Co-Authored-By: Mark McDowall <markus101@users.noreply.github.com>
Signed-off-by: Robin Dadswell <robin@dadswell.email>
2021-01-28 23:43:19 -05:00
Taloth Saldono db51254827 Improved error message when nzb download contains an newznab error instead
Signed-off-by: Robin Dadswell <robin@dadswell.email>
2021-01-28 23:43:19 -05:00
Qstick 24ab9768e9 Fixed: Ended overlay on artist posters
Co-Authored-By: Mark McDowall <markus101@users.noreply.github.com>
Signed-off-by: Robin Dadswell <robin@dadswell.email>
2021-01-28 23:43:19 -05:00
Qstick 79cff81ffd Rename FilterFiles to FilterPaths
Signed-off-by: Robin Dadswell <robin@dadswell.email>
2021-01-28 23:43:19 -05:00
Qstick 8d43d5d7b0 Fixed: Queue not always clearing checked items when updated
Signed-off-by: Robin Dadswell <robin@dadswell.email>
2021-01-28 23:43:19 -05:00
Qstick 97e6240177 Fixed: Remove website post fix before parsing
Signed-off-by: Robin Dadswell <robin@dadswell.email>
2021-01-28 23:43:19 -05:00
Taloth Saldono 371ef929f3 Linting error
Signed-off-by: Robin Dadswell <robin@dadswell.email>
2021-01-28 23:43:19 -05:00
Qstick ebcde8f602 Fix Release Push log statement
Signed-off-by: Robin Dadswell <robin@dadswell.email>
2021-01-28 23:43:19 -05:00
Jacob ea4044f237 New: Added option to filter Release Profile to a specific indexer
Signed-off-by: Robin Dadswell <robin@dadswell.email>
2021-01-28 23:43:19 -05:00
Mark McDowall 739ebf25c0 New: Clone indexer button
Signed-off-by: Robin Dadswell <robin@dadswell.email>
2021-01-28 23:43:19 -05:00
Qstick 0c6a51c7f7 Fixed: Manual Import sorting by quality
Co-Authored-By: Mark McDowall <markus101@users.noreply.github.com>
Signed-off-by: Robin Dadswell <robin@dadswell.email>
2021-01-28 23:43:19 -05:00
Mark McDowall 4fcc463d6a Fixed: Prompt to restart after resetting API key
Signed-off-by: Robin Dadswell <robin@dadswell.email>
2021-01-28 23:43:19 -05:00
Qstick 0d8c259237 Fixed: Sorting by track count
Signed-off-by: Robin Dadswell <robin@dadswell.email>
2021-01-28 23:43:19 -05:00
Taloth Saldono 6943cc0011 Added Norwegian Bokmal alias
Signed-off-by: Robin Dadswell <robin@dadswell.email>
2021-01-28 23:43:19 -05:00
Taloth Saldono 3a5752f3cc Fixed: Representation of episode start time when not starting at the full hour in am/pm notation
Signed-off-by: Robin Dadswell <robin@dadswell.email>
2021-01-28 23:43:19 -05:00
Qstick 7e00dd731c Fixed: RestClient does not use global proxy settings
Signed-off-by: Robin Dadswell <robin@dadswell.email>
2021-01-28 23:43:19 -05:00
Mark McDowall bb66af7185 New: Limit recent folders in Manual import to 10 and descending order
Signed-off-by: Robin Dadswell <robin@dadswell.email>
2021-01-28 23:43:19 -05:00
Mark McDowall 16b2458903 Fix proptype warning for id of EnhancedSelectInputOption
Signed-off-by: Robin Dadswell <robin@dadswell.email>
2021-01-28 23:43:19 -05:00
Mark McDowall d33d27a55f Remove website prefixes with dashes in URL
Signed-off-by: Robin Dadswell <robin@dadswell.email>
2021-01-28 23:43:19 -05:00
Mark McDowall 1e7efbe3d6 Fixed: Details for episode history flashing on mobile devices
Signed-off-by: Robin Dadswell <robin@dadswell.email>
2021-01-28 23:43:19 -05:00
Fossil 230198c1e7 Remove PFMonkey.com from Presets
Signed-off-by: Robin Dadswell <robin@dadswell.email>
2021-01-28 23:43:19 -05:00
Qstick d803847342 Fixed: Test All not clearing health error
Co-Authored-By: Mark McDowall <markus101@users.noreply.github.com>
Signed-off-by: Robin Dadswell <robin@dadswell.email>
2021-01-28 23:43:19 -05:00
Qstick 7693593230 Improved some log messages
Signed-off-by: Robin Dadswell <robin@dadswell.email>
2021-01-28 23:43:19 -05:00
Qstick f36eee0dc2 Fixed: Delete files from Artist Mass Editor not actually deleting files
Co-Authored-By: Mark McDowall <markus101@users.noreply.github.com>
Signed-off-by: Robin Dadswell <robin@dadswell.email>
2021-01-28 23:43:19 -05:00
Taloth Saldono 0db2f38dfe Tiny fix in test, left-over from my on-windows test.
Signed-off-by: Robin Dadswell <robin@dadswell.email>
2021-01-28 23:43:19 -05:00
Taloth Saldono c58be51a03 Fixed: File imports on cloud drives slow due to transaction logic
Signed-off-by: Robin Dadswell <robin@dadswell.email>
2021-01-28 23:43:19 -05:00
Qstick 7ea1bf71dd Fixed: Use Proxy for MediaCovers and Metadata
Signed-off-by: Robin Dadswell <robin@dadswell.email>
2021-01-28 23:43:19 -05:00
Mark McDowall 1d6749ef52 Fixed: Set permissions on extra and subtitle files
Signed-off-by: Robin Dadswell <robin@dadswell.email>
2021-01-28 23:43:19 -05:00
Mark McDowall 9216fe28d0 Fixed: Include releases that failed to parse in search results
Signed-off-by: Robin Dadswell <robin@dadswell.email>
2021-01-28 23:43:19 -05:00
Qstick 649ecd94ea New: Event Driven HealthCheck Support
Co-Authored-By: Taloth <Taloth@users.noreply.github.com>
Signed-off-by: Robin Dadswell <robin@dadswell.email>
2021-01-28 23:43:19 -05:00
Qstick 634153b658 Fixed: Disregard Real when user disabled proper preference
Co-Authored-By: Taloth <Taloth@users.noreply.github.com>
Signed-off-by: Robin Dadswell <robin@dadswell.email>
2021-01-28 23:43:19 -05:00
Qstick 3101544484 Simplify ManualImportModule null check
Signed-off-by: Robin Dadswell <robin@dadswell.email>
2021-01-28 23:43:19 -05:00
Qstick ff40d82ef1 Fixed: Edge case where import fails due to DB relationship mismatch
Signed-off-by: Robin Dadswell <robin@dadswell.email>
2021-01-28 23:43:19 -05:00
Qstick d4383d4180 Fixed: Improved failed series search messaging
Signed-off-by: Robin Dadswell <robin@dadswell.email>
2021-01-28 23:43:19 -05:00
Qstick 72314c4388 Fixed: Manage Tracks not showing whether language/quality meets cutoff
Signed-off-by: Robin Dadswell <robin@dadswell.email>
2021-01-28 23:43:19 -05:00
Qstick 17b5187729 Fixed: Delay profile being ignored for non-revision upgrades
Signed-off-by: Robin Dadswell <robin@dadswell.email>
2021-01-28 23:43:19 -05:00
Qstick e30c078962 Remove unnecessary usings
Signed-off-by: Robin Dadswell <robin@dadswell.email>
2021-01-28 23:43:19 -05:00
Qstick d808934cf4 Remove Dotnet Framework Version Checks
Signed-off-by: Robin Dadswell <robin@dadswell.email>
2021-01-28 23:43:19 -05:00
nitsua b3b4955fb2 New: Add label to disk usage progress bar
(cherry picked from commit 7c8ac300777583cb93d9deeed1328bcffaef555c)
Signed-off-by: Robin Dadswell <robin@dadswell.email>
2021-01-28 23:43:19 -05:00
Qstick 4765236940 Catchup Linting
Signed-off-by: Robin Dadswell <robin@dadswell.email>
2021-01-28 23:43:19 -05:00
Mark McDowall 32a49083e7 New: Show health warning if system time is off expected time 2021-01-28 23:43:19 -05:00
Qstick 9c096aae10 Fixed: Performance issue when scanning large root folder 2021-01-28 23:43:19 -05:00
Dyson Parkes 90b59a56e1 Update MonitorToggleButton.js
Fix toggle monitored state tooltip spelling.
2021-01-28 23:43:19 -05:00
Qstick 134523247c Misc UI Cleanup 2021-01-28 23:43:19 -05:00
Qstick e5ba8af3ce Fixed: Styling issues in Quality Profile and Release Profiles 2021-01-28 23:43:19 -05:00
Qstick 10fd15b50a Fixed: Tag inputs respect non-QWERTY layouts 2021-01-28 23:43:19 -05:00
Qstick dd93531432 Fixed: Deleting row from middle of filter builder leading to error 2021-01-28 23:43:19 -05:00
bakerboy448 762a085f9a Fixed: Rotating mobile device when modal is open won't reset modal 2021-01-28 23:43:19 -05:00
Qstick 8d63da1cfb Fixed: Toolbar button collapsing includes separator 2021-01-28 23:43:19 -05:00
Qstick 7a95cedbad New: Indicator when Filter Applied 2021-01-28 23:43:19 -05:00
ta264 44d73f3e7e New: Warn if UI won't update due to SignalR errors 2021-01-28 23:43:19 -05:00
Taloth Saldono 786247e9bc Added Plex url to cleanser 2021-01-28 23:43:19 -05:00
Taloth Saldono c152cc2517 Fixed typo in Cleanse IP 2021-01-28 23:43:19 -05:00
Taloth Saldono 3d86e29972 Cleanse remote IP Address from trace log file 2021-01-28 23:43:19 -05:00
Taloth Saldono e3c239e848 Cleanse getnzb url 2021-01-28 23:43:19 -05:00
2840 changed files with 129755 additions and 42868 deletions
+29 -13
View File
@@ -19,10 +19,10 @@ indent_size = 4
dotnet_sort_system_directives_first = true
# Avoid "this." and "Me." if not necessary
dotnet_style_qualification_for_field = false:refactoring
dotnet_style_qualification_for_property = false:refactoring
dotnet_style_qualification_for_method = false:refactoring
dotnet_style_qualification_for_event = false:refactoring
dotnet_style_qualification_for_field = false:warning
dotnet_style_qualification_for_property = false:warning
dotnet_style_qualification_for_method = false:warning
dotnet_style_qualification_for_event = false:warning
# Indentation preferences
csharp_indent_block_contents = true
@@ -32,17 +32,22 @@ csharp_indent_case_contents_when_block = true
csharp_indent_switch_labels = true
csharp_indent_labels = flush_left
dotnet_style_qualification_for_field = false:suggestion
dotnet_style_qualification_for_property = false:suggestion
dotnet_style_qualification_for_method = false:suggestion
dotnet_style_qualification_for_event = false:suggestion
dotnet_naming_style.instance_field_style.capitalization = camel_case
dotnet_naming_style.instance_field_style.required_prefix = _
# Prefer "var" everywhere
csharp_style_var_for_built_in_types = true:suggestion
csharp_style_var_when_type_is_apparent = true:suggestion
csharp_style_var_elsewhere = true:suggestion
csharp_style_var_for_built_in_types = true
csharp_style_var_when_type_is_apparent = true
csharp_style_var_elsewhere = true
# Prefer "out" variables to be declared inline
csharp_style_inlined_variable_declaration = true
# Using directive is unnecessary.
dotnet_diagnostic.IDE0005.severity = error
# Use var instead of explicit type
dotnet_diagnostic.IDE0007.severity = error
# Inline variable declaration
dotnet_diagnostic.IDE0018.severity = error
# Stylecop Rules
dotnet_diagnostic.SA0001.severity = none
@@ -110,13 +115,13 @@ dotnet_diagnostic.SA1643.severity = none
dotnet_diagnostic.SA1648.severity = none
dotnet_diagnostic.SA1649.severity = none
dotnet_diagnostic.SA1651.severity = none
dotnet_diagnostic.SX1101.severity = warning
dotnet_diagnostic.SX1309.severity = warning
# Microsoft Analyzers that fail and need to be sorted thru
dotnet_diagnostic.ASP0000.severity = suggestion
dotnet_diagnostic.CA1000.severity = suggestion
dotnet_diagnostic.CA1001.severity = suggestion
dotnet_diagnostic.CA1002.severity = suggestion
dotnet_diagnostic.CA1003.severity = suggestion
dotnet_diagnostic.CA1008.severity = suggestion
dotnet_diagnostic.CA1010.severity = suggestion
@@ -163,10 +168,16 @@ dotnet_diagnostic.CA1304.severity = suggestion
dotnet_diagnostic.CA1305.severity = suggestion
dotnet_diagnostic.CA1307.severity = suggestion
dotnet_diagnostic.CA1308.severity = suggestion
dotnet_diagnostic.CA1309.severity = suggestion
dotnet_diagnostic.CA1310.severity = suggestion
dotnet_diagnostic.CA1401.severity = suggestion
dotnet_diagnostic.CA1416.severity = suggestion
dotnet_diagnostic.CA1507.severity = suggestion
dotnet_diagnostic.CA1508.severity = suggestion
dotnet_diagnostic.CA1707.severity = suggestion
dotnet_diagnostic.CA1708.severity = suggestion
dotnet_diagnostic.CA1710.severity = suggestion
dotnet_diagnostic.CA1711.severity = suggestion
dotnet_diagnostic.CA1712.severity = suggestion
dotnet_diagnostic.CA1714.severity = suggestion
dotnet_diagnostic.CA1715.severity = suggestion
@@ -175,12 +186,14 @@ dotnet_diagnostic.CA1717.severity = suggestion
dotnet_diagnostic.CA1720.severity = suggestion
dotnet_diagnostic.CA1721.severity = suggestion
dotnet_diagnostic.CA1724.severity = suggestion
dotnet_diagnostic.CA1725.severity = suggestion
dotnet_diagnostic.CA1801.severity = suggestion
dotnet_diagnostic.CA1802.severity = suggestion
dotnet_diagnostic.CA1805.severity = suggestion
dotnet_diagnostic.CA1806.severity = suggestion
dotnet_diagnostic.CA1810.severity = suggestion
dotnet_diagnostic.CA1812.severity = suggestion
dotnet_diagnostic.CA1813.severity = suggestion
dotnet_diagnostic.CA1814.severity = suggestion
dotnet_diagnostic.CA1815.severity = suggestion
dotnet_diagnostic.CA1816.severity = suggestion
@@ -210,6 +223,7 @@ dotnet_diagnostic.CA2101.severity = suggestion
dotnet_diagnostic.CA2119.severity = suggestion
dotnet_diagnostic.CA2153.severity = suggestion
dotnet_diagnostic.CA2200.severity = suggestion
dotnet_diagnostic.CA2201.severity = suggestion
dotnet_diagnostic.CA2207.severity = suggestion
dotnet_diagnostic.CA2208.severity = suggestion
dotnet_diagnostic.CA2211.severity = suggestion
@@ -255,11 +269,13 @@ dotnet_diagnostic.CA5374.severity = suggestion
dotnet_diagnostic.CA5379.severity = suggestion
dotnet_diagnostic.CA5384.severity = suggestion
dotnet_diagnostic.CA5385.severity = suggestion
dotnet_diagnostic.CA5392.severity = suggestion
dotnet_diagnostic.CA5394.severity = suggestion
dotnet_diagnostic.CA5397.severity = suggestion
[*.{js,html,js,hbs,less,css}]
[*.{js,html,hbs,less,css,ts,tsx}]
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true
-9
View File
@@ -1,9 +0,0 @@
{
"paths": [
"frontend/src/**/*.js"
],
"ignored": [
"**/node_modules/**/*"
],
"port": 5004
}
-35
View File
@@ -1,35 +0,0 @@
---
name: Bug Report
about: 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!
title: ''
labels: bug
assignees: ''
---
**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.10]
- Docker: [Yes/No]
- Mono or.NET Core Version: [e.g. Mono 5.8 or .Net Core 3.1.10] (found under System -> Status)
- Browser and Version [e.g. chrome 86.0.4240.198] (Only needed for UI issues)
- Readarr Version [e.g. 0.3.0.430]
- Readarr Branch [e.g. master]
**Trace Logs**
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!**
+82
View File
@@ -0,0 +1,82 @@
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 open or closed issue already exists for the bug you encountered. If a bug exists and is closed note that it may only be fixed in an unstable branch.
options:
- label: I have searched the existing open and closed 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
- **Readarr**: Readarr 0.1.0.432
- **Docker Install**: Yes
- **Using Reverse Proxy**: No
- **Browser**: Firefox 90 (If UI related)
- **Database**: Sqlite 3.36.0
value: |
- OS:
- Readarr:
- Docker Install:
- Using Reverse Proxy:
- Browser:
- Database:
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/readarr/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
- type: checkboxes
attributes:
label: Trace Logs have been provided as applicable. Reports may be closed if the required logs are not provided.
description: Trace logs are generally required for all bug reports and contain `trace`. Info logs are invalid for bug reports and do not contain `debug` nor `trace`
options:
- label: I have read and followed the steps in the wiki link above and provided the required trace logs - the logs contain `trace` - that are relevant and show this issue.
required: true
+1 -1
View File
@@ -1,7 +1,7 @@
blank_issues_enabled: false
contact_links:
- name: Support via Discord
url: https://discord.gg/rkEXY2Rbgn
url: https://readarr.com/discord
about: Chat with users and devs on support and setup related topics.
- name: Support via Reddit
url: https://reddit.com/r/Readarr
-17
View File
@@ -1,17 +0,0 @@
---
name: Feature request
about: Suggest an idea for this project
---
**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.
@@ -0,0 +1,38 @@
name: Feature Request
description: 'Suggest an idea for Readarr'
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 open or closed issue already exists for the feature you are requesting. If a request exists and is closed note that it may only be fixed in an unstable branch.
options:
- label: I have searched the existing open and closed 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
+6 -4
View File
@@ -1,14 +1,16 @@
#### Database Migration
YES | NO
YES - XXXX | NO
#### Description
A few sentences describing the overall goals of the pull request's commits.
#### Screenshot (if UI related)
#### Todos
- [ ] Tests
- [ ] Wiki Updates
- [ ] Translation Keys (./src/NzbDrone.Core/Localization/Core/en.json)
- [ ] [Wiki Updates](https://wiki.servarr.com)
#### Issues Fixed or Closed by this PR
*
* Fixes #XXXX
+28
View File
@@ -0,0 +1,28 @@
'Area: API':
- src/Readarr.Api.V1/**/*
'Area: Db-migration':
- src/NzbDrone.Core/Datastore/Migration/*
'Area: Download Clients':
- src/NzbDrone.Core/Download/Clients/**/*
'Area: Import Lists':
- src/NzbDrone.Core/ImportLists/**/*
'Area: Indexer':
- src/NzbDrone.Core/Indexers/**/*
'Area: Notifications':
- src/NzbDrone.Core/Notifications/**/*
'Area: Organizer':
- src/NzbDrone.Core/Organizer/**/*
'Area: Parser':
- src/NzbDrone.Core/Parser/**/*
'Area: UI':
- frontend/**/*
- package.json
- yarn.lock
+12
View File
@@ -0,0 +1,12 @@
name: "Pull Request Labeler"
on:
- pull_request_target
jobs:
triage:
permissions:
contents: read
pull-requests: write
runs-on: ubuntu-latest
steps:
- uses: actions/labeler@v4
+21
View File
@@ -0,0 +1,21 @@
name: 'Lock threads'
on:
workflow_dispatch:
schedule:
- cron: '0 0 * * *'
jobs:
lock:
runs-on: ubuntu-latest
steps:
- uses: dessant/lock-threads@v4
with:
github-token: ${{ github.token }}
issue-inactive-days: '90'
exclude-issue-created-before: ''
exclude-any-issue-labels: ''
add-issue-labels: ''
issue-comment: ''
issue-lock-reason: 'resolved'
process-only: ''
+32
View File
@@ -0,0 +1,32 @@
name: 'Support requests'
on:
issues:
types: [labeled, unlabeled, reopened]
jobs:
support:
runs-on: ubuntu-latest
steps:
- uses: dessant/support-requests@v3
with:
github-token: ${{ github.token }}
support-label: 'Type: Support'
issue-comment: >
:wave: @{issue-author}, we use the issue tracker exclusively
for bug reports and feature requests. However, this issue appears
to be a support request. Please hop over onto our [Discord](https://readarr.com/discord)
or [Subreddit](https://reddit.com/r/readarr)
close-issue: true
lock-issue: false
- uses: dessant/support-requests@v3
with:
github-token: ${{ github.token }}
support-label: 'Status: Logs Needed'
issue-comment: >
:wave: @{issue-author}, In order to help you further we'll need to see logs.
You'll need to enable trace logging and replicate the problem that you encountered.
Guidance on how to enable trace logging can be found in
our [troubleshooting guide](https://wiki.servarr.com/readarr/troubleshooting#logging-and-log-files).
close-issue: false
lock-issue: false
+3
View File
@@ -148,3 +148,6 @@ _temp_*/**/*
## Merge any idea folder
*/**/.idea
*.iml
# API doc generation
.config/
-5
View File
@@ -1,5 +0,0 @@
{
"files.associations": {
"*.yaml": "home-assistant"
}
}
+132
View File
@@ -0,0 +1,132 @@
# Contributor Covenant Code of Conduct
## Our Pledge
We as members, contributors, and leaders pledge to make participation in our
community a harassment-free experience for everyone, regardless of age, body
size, visible or invisible disability, ethnicity, sex characteristics, gender
identity and expression, level of experience, education, socio-economic status,
nationality, personal appearance, race, caste, color, religion, or sexual
identity and orientation.
We pledge to act and interact in ways that contribute to an open, welcoming,
diverse, inclusive, and healthy community.
## Our Standards
Examples of behavior that contributes to a positive environment for our
community include:
* Demonstrating empathy and kindness toward other people
* Being respectful of differing opinions, viewpoints, and experiences
* Giving and gracefully accepting constructive feedback
* Accepting responsibility and apologizing to those affected by our mistakes,
and learning from the experience
* Focusing on what is best not just for us as individuals, but for the overall
community
Examples of unacceptable behavior include:
* The use of sexualized language or imagery, and sexual attention or advances of
any kind
* Trolling, insulting or derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or email address,
without their explicit permission
* Other conduct which could reasonably be considered inappropriate in a
professional setting
## Enforcement Responsibilities
Community leaders are responsible for clarifying and enforcing our standards of
acceptable behavior and will take appropriate and fair corrective action in
response to any behavior that they deem inappropriate, threatening, offensive,
or harmful.
Community leaders have the right and responsibility to remove, edit, or reject
comments, commits, code, wiki edits, issues, and other contributions that are
not aligned to this Code of Conduct, and will communicate reasons for moderation
decisions when appropriate.
## Scope
This Code of Conduct applies within all community spaces, and also applies when
an individual is officially representing the community in public spaces.
Examples of representing our community include using an official e-mail address,
posting via an official social media account, or acting as an appointed
representative at an online or offline event.
## Enforcement
Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported to the community leaders responsible for enforcement at
<development@readarr.com>.
All complaints will be reviewed and investigated promptly and fairly.
All community leaders are obligated to respect the privacy and security of the
reporter of any incident.
## Enforcement Guidelines
Community leaders will follow these Community Impact Guidelines in determining
the consequences for any action they deem in violation of this Code of Conduct:
### 1. Correction
**Community Impact**: Use of inappropriate language or other behavior deemed
unprofessional or unwelcome in the community.
**Consequence**: A private, written warning from community leaders, providing
clarity around the nature of the violation and an explanation of why the
behavior was inappropriate. A public apology may be requested.
### 2. Warning
**Community Impact**: A violation through a single incident or series of
actions.
**Consequence**: A warning with consequences for continued behavior. No
interaction with the people involved, including unsolicited interaction with
those enforcing the Code of Conduct, for a specified period of time. This
includes avoiding interactions in community spaces as well as external channels
like social media. Violating these terms may lead to a temporary or permanent
ban.
### 3. Temporary Ban
**Community Impact**: A serious violation of community standards, including
sustained inappropriate behavior.
**Consequence**: A temporary ban from any sort of interaction or public
communication with the community for a specified period of time. No public or
private interaction with the people involved, including unsolicited interaction
with those enforcing the Code of Conduct, is allowed during this period.
Violating these terms may lead to a permanent ban.
### 4. Permanent Ban
**Community Impact**: Demonstrating a pattern of violation of community
standards, including sustained inappropriate behavior, harassment of an
individual, or aggression toward or disparagement of classes of individuals.
**Consequence**: A permanent ban from any sort of public interaction within the
community.
## Attribution
This Code of Conduct is adapted from the [Contributor Covenant][homepage],
version 2.1, available at
[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1].
Community Impact Guidelines were inspired by
[Mozilla's code of conduct enforcement ladder][Mozilla CoC].
For answers to common questions about this code of conduct, see the FAQ at
[https://www.contributor-covenant.org/faq][FAQ]. Translations are available at
[https://www.contributor-covenant.org/translations][translations].
[homepage]: https://www.contributor-covenant.org
[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html
[Mozilla CoC]: https://github.com/mozilla/diversity
[FAQ]: https://www.contributor-covenant.org/faq
[translations]: https://www.contributor-covenant.org/translations
+6 -42
View File
@@ -1,49 +1,13 @@
# How to Contribute #
# How to Contribute
We're always looking for people to help make Readarr 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/Readarr) the better.
This file has been moved to the wiki for the latest details please see the [contributing wiki page](https://wiki.servarr.com/readarr/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 10.X.X or higher)
- [Yarn](https://yarnpkg.com/)
- .NET Core 3.1.
Setup guides, [FAQ](https://wiki.servarr.com/readarr/faq), the more information we have on the [wiki](https://wiki.servarr.com/readarr) the better.
### Getting started ###
## Development
1. Fork Readarr
2. Clone the repository into your development machine. [*info*](https://help.github.com/articles/working-with-repositories)
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 `Readarr.Console` and framework to `netcoreapp31`
6. Debug the project in Visual Studio
7. Open http://localhost:8787
### Contributing Code ###
- If you're adding a new, already requested feature, please comment on [Github Issues](https://github.com/Readarr/Readarr/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 Readarr'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)
### 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/readarr/contributing)
+45 -20
View File
@@ -1,52 +1,77 @@
# Readarr
[![Build Status](https://dev.azure.com/Readarr/Readarr/_apis/build/status/Readarr.Readarr?branchName=develop)](https://dev.azure.com/Readarr/Readarr/_build/latest?definitionId=1&branchName=develop)
[![Docker Pulls](https://img.shields.io/docker/pulls/hotio/readarr)](https://hub.docker.com/r/hotio/readarr)
[![Backers on Open Collective](https://opencollective.com/readarr/backers/badge.svg)](#backers) [![Sponsors on Open Collective](https://opencollective.com/readarr/sponsors/badge.svg)](#sponsors)
[![Translated](https://translate.servarr.com/widgets/servarr/-/readarr/svg-badge.svg)](https://translate.servarr.com/engage/readarr/?utm_source=widget)
[![Docker Pulls](https://img.shields.io/docker/pulls/hotio/readarr)](https://wiki.servarr.com/readarr/installation#docker)
[![Donors on Open Collective](https://opencollective.com/Readarr/backers/badge.svg)](#backers)
[![Sponsors on Open Collective](https://opencollective.com/Readarr/sponsors/badge.svg)](#sponsors)
[![Mega Sponsors on Open Collective](https://opencollective.com/Readarr/megasponsors/badge.svg)](#mega-sponsors)
### Readarr is in early stages of development, alpha/beta binary builds are not yet available. Use of any test builds isn't recommend, and may have detrimental effects on your library.
### Readarr is currently in beta testing and is generally still in a work in progress. Features may be broken, incomplete, or cause spontaneous combustion
Readarr is a ebook (and maybe eventually magazine/audiobook) collection manager for Usenet and BitTorrent users. It can monitor multiple RSS feeds for new books from your favorite authors and will grab, sort and rename them.
Readarr is an ebook and audiobook collection manager for Usenet and BitTorrent users. It can monitor multiple RSS feeds for new books from your favorite authors and will grab, sort, and rename them.
Note that only one type of a given book is supported. If you want both an audiobook and ebook of a given book you will need multiple instances.
## Major Features Include:
## Major Features Include
* Can watch for better quality of the ebooks and audiobooks you have and do an automatic upgrade. *e.g. from PDF to AZW3*
* Support for major platforms: Windows, Linux, macOS, Raspberry Pi, etc.
* Automatically detects new books.
* Can scan your existing library and download any missing books.
* Automatically detects new books
* Can scan your existing library and download any missing books
* Automatic failed download handling will try another release if one fails
* Manual search so you can pick any release or to see why a release was not downloaded automatically
* Advanced customization for profiles, such that Readarr will always download the copy you want
* Fully configurable book renaming
* Full integration with SABnzbd and NZBGet
* Full integration with Calibre (add to library, conversion)
* SABnzbd, NZBGet, QBittorrent, Deluge, rTorrent, Transmission, uTorrent, and other download clients are supported and integrated
* Full integration with Calibre (add to library, conversion) (Requires Calibre Content Server)
* And a beautiful UI
## Support
[![Discord](https://img.shields.io/badge/discord-chat-7289DA.svg?maxAge=60)](https://discord.gg/rkEXY2Rbgn)
[![GitHub](https://img.shields.io/badge/github-issues-red.svg?maxAge=60)](https://github.com/Readarr/Readarr/issues)
[![Wiki](https://img.shields.io/badge/servarr-wiki-181717.svg?maxAge=60)](https://wiki.servarr.com/Readarr)
[![Wiki](https://img.shields.io/badge/servarr-wiki-181717.svg?maxAge=60)](https://wiki.servarr.com/readarr)
[![Discord](https://img.shields.io/badge/discord-chat-7289DA.svg?maxAge=60)](https://readarr.com/discord)
[![Reddit](https://img.shields.io/badge/reddit-discussion-FF4500.svg?maxAge=60)](https://www.reddit.com/r/readarr)
## Contributors
Note: GitHub Issues are for Bugs and Feature Requests Only
This project exists thanks to all the people who contribute. [Contribute](CONTRIBUTING.md).
<a href="https://github.com/Readarr/Readarr/graphs/contributors"><img src="https://opencollective.com/Readarr/contributors.svg?width=890&button=false" /></a>
[![GitHub - Bugs and Feature Requests Only](https://img.shields.io/badge/github-issues-red.svg?maxAge=60)](https://github.com/Readarr/Readarr/issues)
## Contributors & Developers
[API Documentation](https://readarr.com/docs/api/)
This project exists thanks to all the people who contribute.
- [Contribute (GitHub)](CONTRIBUTING.md)
- [Contribution (Wiki Article)](https://wiki.servarr.com/readarr/contributing)
[![Contributors List](https://opencollective.com/Readarr/contributors.svg?width=890&button=false)](https://github.com/Readarr/Readarr/graphs/contributors)
## Backers
Thank you to all our backers! 🙏 [Become a backer](https://opencollective.com/readarr#backer)
Thank you to all our backers! 🙏 [Become a backer](https://opencollective.com/Readarr#backer)
<img src="https://opencollective.com/readarr/backers.svg?width=890"></a>
[![Backers List](https://opencollective.com/Readarr/backers.svg?width=890)](https://opencollective.com/Readarr#backer)
## 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/readarr#sponsor)
<img src="https://opencollective.com/readarr/sponsors.svg?width=890"></a>
[![Sponsors List](https://opencollective.com/Readarr/sponsors.svg?width=890)](https://opencollective.com/readarr#sponsor)
## Mega Sponsors
<img src="https://opencollective.com/readarr/tiers/mega-sponsor.svg?width=890"></a>
[![Mega Sponsors List](https://opencollective.com/Readarr/tiers/mega-sponsor.svg?width=890)](https://opencollective.com/readarr#mega-sponsor)
## DigitalOcean
This project is also supported by DigitalOcean
<p>
<a href="https://www.digitalocean.com/">
<img src="https://opensource.nyc3.cdn.digitaloceanspaces.com/attribution/assets/SVG/DO_Logo_horizontal_blue.svg" width="201px">
</a>
</p>
### License
* [GNU GPL v3](http://www.gnu.org/licenses/gpl.html)
* Copyright 2010-2021
* Copyright 2010-2022
+8
View File
@@ -0,0 +1,8 @@
# Security Policy
## Reporting a Vulnerability
Please report (suspected) security vulnerabilities on Discord (preferred) to
any of the Servarr Dev role holders (red names) or via email: development@servarr.com. You will receive a response from
us within 72 hours. If the issue is confirmed, we will release a patch as soon
as possible depending on complexity/severity.
+501 -270
View File
File diff suppressed because it is too large Load Diff
+125 -43
View File
@@ -1,4 +1,4 @@
#! /bin/bash
#! /usr/bin/env bash
set -e
outputFolder='_output'
@@ -27,6 +27,25 @@ UpdateVersionNumber()
fi
}
EnableExtraPlatformsInSDK()
{
SDK_PATH=$(dotnet --list-sdks | grep -P '6\.\d\.\d+' | head -1 | sed 's/\(6\.[0-9]*\.[0-9]*\).*\[\(.*\)\]/\2\/\1/g')
BUNDLEDVERSIONS="${SDK_PATH}/Microsoft.NETCoreSdk.BundledVersions.props"
if grep -q freebsd-x64 $BUNDLEDVERSIONS; then
echo "Extra platforms already enabled"
else
echo "Enabling extra platform support"
sed -i.ORI 's/osx-x64/osx-x64;freebsd-x64;linux-x86/' $BUNDLEDVERSIONS
fi
}
EnableExtraPlatforms()
{
if grep -qv freebsd-x64 src/Directory.Build.props; then
sed -i'' -e "s^<RuntimeIdentifiers>\(.*\)</RuntimeIdentifiers>^<RuntimeIdentifiers>\1;freebsd-x64;linux-x86</RuntimeIdentifiers>^g" src/Directory.Build.props
fi
}
LintUI()
{
ProgressStart 'ESLint'
@@ -57,9 +76,6 @@ Build()
platform=Posix
fi
dotnet clean $slnFile -c Debug
dotnet clean $slnFile -c Release
if [[ -z "$RID" || -z "$FRAMEWORK" ]];
then
dotnet msbuild -restore $slnFile -p:Configuration=Release -p:Platform=$platform -t:PublishAllRids
@@ -77,11 +93,11 @@ YarnInstall()
ProgressEnd 'yarn install'
}
RunGulp()
RunWebpack()
{
ProgressStart 'Running gulp'
yarn run build --production
ProgressEnd 'Running gulp'
ProgressStart 'Running webpack'
yarn run build --env production
ProgressEnd 'Running webpack'
}
PackageFiles()
@@ -120,7 +136,7 @@ PackageLinux()
echo "Adding Readarr.Mono to UpdatePackage"
cp $folder/Readarr.Mono.* $folder/Readarr.Update
if [ "$framework" = "netcoreapp3.1" ]; then
if [ "$framework" = "net6.0" ]; then
cp $folder/Mono.Posix.NETStandard.* $folder/Readarr.Update
cp $folder/libMonoPosixHelper.* $folder/Readarr.Update
fi
@@ -131,17 +147,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/Readarr
local folder=$artifactsFolder/$runtime/$framework/Readarr
PackageFiles "$folder" "$framework" "osx-x64"
if [ "$framework" = "net462" ]; then
echo "Adding Startup script"
cp macOS/Readarr $folder
fi
PackageFiles "$folder" "$framework" "$runtime"
echo "Removing Service helpers"
rm -f $folder/ServiceUninstall.*
@@ -152,7 +164,7 @@ PackageMacOS()
echo "Adding Readarr.Mono to UpdatePackage"
cp $folder/Readarr.Mono.* $folder/Readarr.Update
if [ "$framework" = "netcoreapp3.1" ]; then
if [ "$framework" = "net6.0" ]; then
cp $folder/Mono.Posix.NETStandard.* $folder/Readarr.Update
cp $folder/libMonoPosixHelper.* $folder/Readarr.Update
fi
@@ -163,10 +175,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
@@ -174,7 +187,7 @@ PackageMacOSApp()
mkdir -p $folder/Readarr.app/Contents/MacOS
echo "Copying Binaries"
cp -r $artifactsFolder/macos/$framework/Readarr/* $folder/Readarr.app/Contents/MacOS
cp -r $artifactsFolder/$runtime/$framework/Readarr/* $folder/Readarr.app/Contents/MacOS
echo "Removing Update Folder"
rm -r $folder/Readarr.app/Contents/MacOS/Readarr.Update
@@ -186,12 +199,13 @@ PackageWindows()
{
local framework="$1"
local runtime="$2"
ProgressStart "Creating Windows Package for $framework"
ProgressStart "Creating $runtime Package for $framework"
local folder=$artifactsFolder/$runtime/$framework/Readarr
PackageFiles "$folder" "$framework" "$runtime"
cp -r $outputFolder/$framework-windows/$runtime/publish/* $folder
echo "Removing Readarr.Mono"
rm -f $folder/Readarr.Mono.*
@@ -201,7 +215,7 @@ PackageWindows()
echo "Adding Readarr.Windows to UpdatePackage"
cp $folder/Readarr.Windows.* $folder/Readarr.Update
ProgressEnd 'Creating Windows Package'
ProgressEnd "Creating $runtime Package for $framework"
}
Package()
@@ -213,19 +227,45 @@ Package()
IFS='-' read -ra SPLIT <<< "$runtime"
case "${SPLIT[0]}" in
linux)
linux|freebsd*)
PackageLinux "$framework" "$runtime"
;;
win)
PackageWindows "$framework" "$runtime"
;;
osx)
PackageMacOS "$framework"
PackageMacOSApp "$framework"
PackageMacOS "$framework" "$runtime"
PackageMacOSApp "$framework" "$runtime"
;;
esac
}
BuildInstaller()
{
local framework="$1"
local runtime="$2"
./_inno/ISCC.exe setup/readarr.iss "//DFramework=$framework" "//DRuntime=$runtime"
}
InstallInno()
{
ProgressStart "Installing portable Inno Setup"
rm -rf _inno
curl -s --output innosetup.exe "https://files.jrsoftware.org/is/6/innosetup-${INNOVERSION:-6.2.0}.exe"
mkdir _inno
./innosetup.exe //portable=1 //silent //currentuser //dir=.\\_inno
rm innosetup.exe
ProgressEnd "Installed portable Inno Setup"
}
RemoveInno()
{
rm -rf _inno
}
PackageTests()
{
local framework="$1"
@@ -257,7 +297,10 @@ if [ $# -eq 0 ]; then
BACKEND=YES
FRONTEND=YES
PACKAGES=YES
INSTALLER=NO
LINT=YES
ENABLE_EXTRA_PLATFORMS=NO
ENABLE_EXTRA_PLATFORMS_IN_SDK=NO
fi
while [[ $# -gt 0 ]]
@@ -269,6 +312,14 @@ case $key in
BACKEND=YES
shift # past argument
;;
--enable-bsd|--enable-extra-platforms)
ENABLE_EXTRA_PLATFORMS=YES
shift # past argument
;;
--enable-extra-platforms-in-sdk)
ENABLE_EXTRA_PLATFORMS_IN_SDK=YES
shift # past argument
;;
-r|--runtime)
RID="$2"
shift # past argument
@@ -287,6 +338,10 @@ case $key in
PACKAGES=YES
shift # past argument
;;
--installer)
INSTALLER=YES
shift # past argument
;;
--lint)
LINT=YES
shift # past argument
@@ -306,18 +361,31 @@ esac
done
set -- "${POSITIONAL[@]}" # restore positional parameters
if [ "$ENABLE_EXTRA_PLATFORMS_IN_SDK" = "YES" ];
then
EnableExtraPlatformsInSDK
fi
if [ "$BACKEND" = "YES" ];
then
UpdateVersionNumber
if [ "$ENABLE_EXTRA_PLATFORMS" = "YES" ];
then
EnableExtraPlatforms
fi
Build
if [[ -z "$RID" || -z "$FRAMEWORK" ]];
then
PackageTests "netcoreapp3.1" "win-x64"
PackageTests "netcoreapp3.1" "win-x86"
PackageTests "netcoreapp3.1" "linux-x64"
PackageTests "netcoreapp3.1" "linux-musl-x64"
PackageTests "netcoreapp3.1" "osx-x64"
PackageTests "net462" "linux-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_EXTRA_PLATFORMS" = "YES" ];
then
PackageTests "net6.0" "freebsd-x64"
PackageTests "net6.0" "linux-x86"
fi
else
PackageTests "$FRAMEWORK" "$RID"
fi
@@ -326,7 +394,7 @@ fi
if [ "$FRONTEND" = "YES" ];
then
YarnInstall
RunGulp
RunWebpack
fi
if [ "$LINT" = "YES" ];
@@ -345,16 +413,30 @@ then
if [[ -z "$RID" || -z "$FRAMEWORK" ]];
then
Package "netcoreapp3.1" "win-x64"
Package "netcoreapp3.1" "win-x86"
Package "netcoreapp3.1" "linux-x64"
Package "netcoreapp3.1" "linux-musl-x64"
Package "netcoreapp3.1" "linux-arm64"
Package "netcoreapp3.1" "linux-musl-arm64"
Package "netcoreapp3.1" "linux-arm"
Package "netcoreapp3.1" "osx-x64"
Package "net462" "linux-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_EXTRA_PLATFORMS" = "YES" ];
then
Package "net6.0" "freebsd-x64"
Package "net6.0" "linux-x86"
fi
else
Package "$FRAMEWORK" "$RID"
fi
fi
if [ "$INSTALLER" = "YES" ];
then
InstallInno
BuildInstaller "net6.0" "win-x64"
BuildInstaller "net6.0" "win-x86"
RemoveInno
fi
-5
View File
@@ -1,5 +0,0 @@
nzbdrone {version} {branch}; urgency=low
* Automatic Release.
-- NzbDrone <contact@nzbdrone.com> Mon, 26 Aug 2013 00:00:00 -0700
-1
View File
@@ -1 +0,0 @@
8
-12
View File
@@ -1,12 +0,0 @@
Section: web
Priority: optional
Maintainer: Sonarr <contact@nzbdrone.com>
Source: nzbdrone
Homepage: https://readarr.com
Vcs-Git: git@github.com:readarr/Readarr.git
Vcs-Browser: https://github.com/readarr/Readarr
Package: nzbdrone
Architecture: all
Depends: libmono-cil-dev (>= 3.2), sqlite3 (>= 3.7), mediainfo (>= 0.7.52)
Description: Readarr is a music collection manager
-24
View File
@@ -1,24 +0,0 @@
Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Upstream-Name: nzbdrone
Source: https://github.com/readarr/Readarr
Files: *
Copyright: 2010-2016 Readarr <hello@readarr.com>
License: GPL-3.0+
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
.
This package is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
.
On Debian systems, the complete text of the GNU General
Public License version 3 can be found in "/usr/share/common-licenses/GPL-3".
-1
View File
@@ -1 +0,0 @@
nzbdrone_bin/* opt/NzbDrone
-13
View File
@@ -1,13 +0,0 @@
#!/usr/bin/make -f
# -*- makefile -*-
# Sample debian/rules that uses debhelper.
# This file was originally written by Joey Hess and Craig Small.
# As a special exception, when this file is copied by dh-make into a
# dh-make output file, you may use that output file without restriction.
# This special exception was added by Craig Small in version 0.37 of dh-make.
# Uncomment this to turn on verbose mode.
#export DH_VERBOSE=1
%:
dh $@
+38
View File
@@ -0,0 +1,38 @@
PLATFORM=$1
if [ "$PLATFORM" = "Windows" ]; then
RUNTIME="win-x64"
elif [ "$PLATFORM" = "Linux" ]; then
RUNTIME="linux-x64"
elif [ "$PLATFORM" = "Mac" ]; then
RUNTIME="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/Readarr.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.5.0 Swashbuckle.AspNetCore.Cli
dotnet tool run swagger tofile --output ./src/Readarr.Api.V1/openapi.json "$outputFolder/net6.0/$RUNTIME/Readarr.console.dll" v1 &
sleep 45
kill %1
exit 0
-25
View File
@@ -1,25 +0,0 @@
{
"remove-empty-rulesets": true,
"always-semicolon": true,
"color-case": "lower",
"block-indent": " ",
"color-shorthand": false,
"element-case": "lower",
"eof-newline": true,
"leading-zero": true,
"quotes": "double",
"sort-order-fallback": "abc",
"space-before-colon": "",
"space-after-colon": " ",
"space-before-combinator": " ",
"space-after-combinator": " ",
"space-between-declarations": "\n",
"space-before-opening-brace": " ",
"space-after-opening-brace": "\n",
"space-after-selector-delimiter": " ",
"space-before-selector-delimiter": "",
"space-before-closing-brace": "\n",
"strip-spaces": true,
"tab-size": true,
"unitless-zero": false
}
-335
View File
@@ -1,335 +0,0 @@
{
"indent": {
"value": " ",
"FunctionExpression": 1,
"ArrayExpression": 1,
"ObjectExpression": 1
},
"lineBreak": {
"value": "\n",
"before": {
"ArrayPatternClosing": 0,
"ArrayPatternComma": 0,
"ArrayPatternOpening": 0,
"ArrowFunctionExpressionArrow": 0,
"ArrowFunctionExpressionClosingBrace": ">=1",
"ArrowFunctionExpressionOpeningBrace": 0,
"AssignmentExpression": ">=1",
"AssignmentOperator": 0,
"BlockStatement": 0,
"BreakKeyword": ">=1",
"CallExpression": -1,
"CallExpressionClosingParentheses": -1,
"CallExpressionOpeningParentheses": 0,
"CatchClosingBrace": ">=1",
"CatchKeyword": 0,
"CatchOpeningBrace": 0,
"ClassDeclaration": ">=1",
"ClassDeclarationClosingBrace": ">=1",
"ClassDeclarationOpeningBrace": 0,
"ConditionalExpression": ">=1",
"DeleteOperator": ">=1",
"DoWhileStatement": ">=1",
"DoWhileStatementClosingBrace": ">=1",
"DoWhileStatementOpeningBrace": 0,
"ElseIfStatement": 0,
"ElseIfStatementClosingBrace": ">=1",
"ElseIfStatementOpeningBrace": 0,
"ElseStatement": 0,
"ElseStatementClosingBrace": ">=1",
"ElseStatementOpeningBrace": 0,
"EmptyStatement": -1,
"EndOfFile": -1,
"FinallyClosingBrace": ">=1",
"FinallyKeyword": -1,
"FinallyOpeningBrace": 0,
"ForInStatement": ">=1",
"ForInStatementClosingBrace": ">=1",
"ForInStatementExpressionClosing": 0,
"ForInStatementExpressionOpening": 0,
"ForInStatementOpeningBrace": 0,
"ForStatement": ">=1",
"ForStatementClosingBrace": ">=1",
"ForStatementExpressionClosing": "<2",
"ForStatementExpressionOpening": 0,
"ForStatementOpeningBrace": 0,
"FunctionDeclaration": ">=1",
"FunctionDeclarationClosingBrace": ">=1",
"FunctionDeclarationOpeningBrace": 0,
"FunctionExpression": 0,
"FunctionExpressionClosingBrace": 1,
"FunctionExpressionOpeningBrace":0,
"IIFEClosingParentheses": 0,
"IfStatement": ">=1",
"IfStatementClosingBrace": ">=1",
"IfStatementOpeningBrace": 0,
"LogicalExpression": -1,
"MemberExpressionClosing": 0,
"MemberExpressionOpening": 0,
"MemberExpressionPeriod": -1,
"MethodDefinition": ">=1",
"ObjectExpressionClosingBrace": "<=1",
"ObjectPatternClosingBrace": 0,
"ObjectPatternComma": 0,
"ObjectPatternOpeningBrace": 0,
"ParameterDefault": 0,
"Property": "<=2",
"PropertyValue": 0,
"ReturnStatement": -1,
"SwitchClosingBrace": ">=1",
"SwitchOpeningBrace": 0,
"ThisExpression": -1,
"ThrowStatement": ">=1",
"TryClosingBrace": ">=1",
"TryKeyword": -1,
"TryOpeningBrace": 0,
"VariableDeclaration": ">=1",
"VariableDeclarationSemiColon": 0,
"VariableDeclarationWithoutInit": ">=1",
"VariableName": ">=1",
"VariableValue": 0,
"WhileStatement": ">=1",
"WhileStatementClosingBrace": ">=1",
"WhileStatementOpeningBrace": 0
},
"after": {
"ArrayPatternClosing": 0,
"ArrayPatternComma": 0,
"ArrayPatternOpening": 0,
"ArrowFunctionExpressionArrow": 0,
"ArrowFunctionExpressionClosingBrace": -1,
"ArrowFunctionExpressionOpeningBrace": ">=1",
"AssignmentExpression": ">=1",
"AssignmentOperator": 0,
"BlockStatement": 0,
"BreakKeyword": -1,
"CallExpression": -1,
"CallExpressionClosingParentheses": -1,
"CallExpressionOpeningParentheses": -1,
"CatchClosingBrace": ">=0",
"CatchKeyword": 0,
"CatchOpeningBrace": ">=1",
"ClassDeclaration": ">=1",
"ClassDeclarationClosingBrace": ">=1",
"ClassDeclarationOpeningBrace": ">=1",
"ConditionalExpression": ">=1",
"DeleteOperator": ">=1",
"DoWhileStatement": ">=1",
"DoWhileStatementClosingBrace": 0,
"DoWhileStatementOpeningBrace": ">=1",
"ElseIfStatement": ">=1",
"ElseIfStatementClosingBrace": ">=1",
"ElseIfStatementOpeningBrace": ">=1",
"ElseStatement": ">=1",
"ElseStatementClosingBrace": ">=1",
"ElseStatementOpeningBrace": ">=1",
"EmptyStatement": -1,
"FinallyClosingBrace": ">=1",
"FinallyKeyword": -1,
"FinallyOpeningBrace": ">=1",
"ForInStatement": ">=1",
"ForInStatementClosingBrace": ">=1",
"ForInStatementExpressionClosing": -1,
"ForInStatementExpressionOpening": "<2",
"ForInStatementOpeningBrace": ">=1",
"ForStatement": ">=1",
"ForStatementClosingBrace": ">=1",
"ForStatementExpressionClosing": -1,
"ForStatementExpressionOpening": "<2",
"ForStatementOpeningBrace": ">=1",
"FunctionDeclaration": ">=1",
"FunctionDeclarationClosingBrace": ">=1",
"FunctionDeclarationOpeningBrace": ">=1",
"FunctionExpression": 0,
"FunctionExpressionClosingBrace": -1,
"FunctionExpressionOpeningBrace": 1,
"IIFEOpeningParentheses": 0,
"IfStatement": ">=1",
"IfStatementClosingBrace": ">=1",
"IfStatementOpeningBrace": ">=1",
"LogicalExpression": -1,
"MemberExpressionClosing": 0,
"MemberExpressionOpening": 0,
"MemberExpressionPeriod": 0,
"MethodDefinition": ">=1",
"ObjectExpressionOpeningBrace": "<=1",
"ObjectPatternClosingBrace": 0,
"ObjectPatternComma": 0,
"ObjectPatternOpeningBrace": 0,
"ParameterDefault": 0,
"Property": -1,
"PropertyName": 0,
"ReturnStatement": -1,
"SwitchCaseColon": ">=1",
"SwitchClosingBrace": ">=1",
"SwitchOpeningBrace": ">=1",
"ThisExpression": 0,
"ThrowStatement": ">=1",
"TryClosingBrace": 0,
"TryKeyword": -1,
"TryOpeningBrace": ">=1",
"VariableDeclaration": ">=1",
"VariableDeclarationSemiColon": ">=1",
"VariableValue": -1,
"WhileStatement": ">=1",
"WhileStatementClosingBrace": ">=1",
"WhileStatementOpeningBrace": ">=1"
}
},
"whiteSpace": {
"value": " ",
"removeTrailing": 1,
"before": {
"ArgumentComma": 0,
"ArgumentList": 0,
"ArgumentListArrayExpression": 0,
"ArgumentListFunctionExpression": 1,
"ArgumentListObjectExpression": 0,
"ArrayExpressionClosing": 0,
"ArrayExpressionComma": 0,
"ArrayExpressionOpening": 1,
"AssignmentOperator": 1,
"BinaryExpression": 0,
"BinaryExpressionOperator": 1,
"BlockComment": 1,
"CallExpression": 1,
"CatchClosingBrace": 1,
"CatchKeyword": 1,
"CatchOpeningBrace": 1,
"CatchParameterList": 0,
"CommaOperator": 0,
"ConditionalExpressionAlternate": 1,
"ConditionalExpressionConsequent": 1,
"DoWhileStatementClosingBrace": 1,
"DoWhileStatementConditional": 1,
"DoWhileStatementOpeningBrace": 1,
"ElseIfStatementClosingBrace": 1,
"ElseIfStatementOpeningBrace": 1,
"ElseStatementClosingBrace": 1,
"ElseStatementOpeningBrace": 1,
"EmptyStatement": 0,
"ExpressionClosingParentheses": 0,
"FinallyClosingBrace": 1,
"FinallyKeyword": -1,
"FinallyOpeningBrace": 1,
"ForInStatement": 1,
"ForInStatementClosingBrace": 1,
"ForInStatementExpressionClosing": 0,
"ForInStatementExpressionOpening": 1,
"ForInStatementOpeningBrace": 1,
"ForStatement": 1,
"ForStatementClosingBrace": 1,
"ForStatementExpressionClosing": 0,
"ForStatementExpressionOpening": 1,
"ForStatementOpeningBrace": 1,
"ForStatementSemicolon": 0,
"FunctionDeclarationClosingBrace": 1,
"FunctionDeclarationOpeningBrace": 1,
"FunctionExpressionClosingBrace": 1,
"FunctionExpressionOpeningBrace": 1,
"IfStatementClosingBrace": 1,
"IfStatementConditionalClosing": 0,
"IfStatementConditionalOpening": 1,
"IfStatementOpeningBrace": 1,
"LineComment": 1,
"LogicalExpressionOperator": 1,
"MemberExpressionClosing": 0,
"ObjectExpressionClosingBrace": 1,
"ParameterComma": 0,
"ParameterList": 0,
"Property": 1,
"PropertyName": 1,
"PropertyValue": 1,
"SwitchDiscriminantClosing": 0,
"SwitchDiscriminantOpening": 1,
"ThrowKeyword": 1,
"TryClosingBrace": 1,
"TryKeyword": -1,
"TryOpeningBrace": 1,
"UnaryExpressionOperator": 0,
"VariableName": 1,
"VariableValue": 1,
"WhileStatementClosingBrace": 1,
"WhileStatementConditionalClosing": 0,
"WhileStatementConditionalOpening": 1,
"WhileStatementOpeningBrace": 1
},
"after": {
"ArgumentComma": 1,
"ArgumentList": 0,
"ArgumentListArrayExpression": 1,
"ArgumentListFunctionExpression": 1,
"ArgumentListObjectExpression": 0,
"ArrayExpressionClosing": 0,
"ArrayExpressionComma": 1,
"ArrayExpressionOpening": 0,
"AssignmentOperator": 1,
"BinaryExpression": 0,
"BinaryExpressionOperator": 1,
"BlockComment": 1,
"CallExpression": 0,
"CatchClosingBrace": 1,
"CatchKeyword": 1,
"CatchOpeningBrace": 1,
"CatchParameterList": 0,
"CommaOperator": 1,
"ConditionalExpressionConsequent": 1,
"ConditionalExpressionTest": 1,
"DoWhileStatementBody": 1,
"DoWhileStatementClosingBrace": 1,
"DoWhileStatementOpeningBrace": 1,
"ElseIfStatementClosingBrace": 1,
"ElseIfStatementOpeningBrace": 1,
"ElseStatementClosingBrace": 1,
"ElseStatementOpeningBrace": 1,
"EmptyStatement": 0,
"ExpressionOpeningParentheses": 0,
"FinallyClosingBrace": 1,
"FinallyKeyword": -1,
"FinallyOpeningBrace": 1,
"ForInStatement": 1,
"ForInStatementClosingBrace": 1,
"ForInStatementExpressionClosing": 1,
"ForInStatementExpressionOpening": 0,
"ForInStatementOpeningBrace": 1,
"ForStatement": 1,
"ForStatementClosingBrace": 1,
"ForStatementExpressionClosing": 1,
"ForStatementExpressionOpening": 0,
"ForStatementOpeningBrace": 1,
"ForStatementSemicolon": 1,
"FunctionDeclarationClosingBrace": 0,
"FunctionDeclarationOpeningBrace": 0,
"FunctionExpressionClosingBrace": 0,
"FunctionExpressionOpeningBrace": 0,
"FunctionName": 0,
"FunctionReservedWord": 0,
"IfStatementClosingBrace": 1,
"IfStatementConditionalClosing": 0,
"IfStatementConditionalOpening": 0,
"IfStatementOpeningBrace": 1,
"LogicalExpressionOperator": 1,
"MemberExpressionOpening": 0,
"ObjectExpressionClosingBrace": 0,
"ObjectExpressionOpeningBrace": 1,
"ParameterComma": 1,
"ParameterList": 0,
"PropertyName": 0,
"PropertyValue": 0,
"SwitchDiscriminantClosing": 1,
"SwitchDiscriminantOpening": 0,
"ThrowKeyword": 1,
"TryClosingBrace": 1,
"TryKeyword": -1,
"TryOpeningBrace": 1,
"UnaryExpressionOperator": 0,
"VariableName": 1,
"WhileStatementClosingBrace": 1,
"WhileStatementConditionalClosing": 1,
"WhileStatementConditionalOpening": 0,
"WhileStatementOpeningBrace": 1
}
}
}
+1
View File
@@ -1 +1,2 @@
**/JsLibraries/**
**/*.css.d.ts
+73 -8
View File
@@ -1,13 +1,22 @@
// eslint-disable-next-line @typescript-eslint/no-var-requires
const fs = require('fs');
// eslint-disable-next-line @typescript-eslint/no-var-requires
const path = require('path');
// eslint-disable-next-line @typescript-eslint/no-var-requires
const typescriptEslintRecommended = require('@typescript-eslint/eslint-plugin').configs.recommended;
const frontendFolder = __dirname;
const dirs = fs
.readdirSync('frontend/src', { withFileTypes: true })
.readdirSync(path.join(frontendFolder, 'src'), { withFileTypes: true })
.filter((dirent) => dirent.isDirectory())
.map((dirent) => dirent.name)
.join('|');
module.exports = {
parser: 'babel-eslint',
root: true,
parser: '@babel/eslint-parser',
env: {
browser: true,
@@ -25,6 +34,9 @@ module.exports = {
parserOptions: {
ecmaVersion: 6,
sourceType: 'module',
babelOptions: {
configFile: `${frontendFolder}/babel.config.js`
},
ecmaFeatures: {
modules: true,
impliedStrict: true
@@ -34,8 +46,11 @@ module.exports = {
plugins: [
'filenames',
'react',
'react-hooks',
'simple-import-sort',
'import'
'import',
'@typescript-eslint',
'prettier'
],
settings: {
@@ -218,7 +233,7 @@ module.exports = {
'consistent-this': ['error', 'self'],
'eol-last': 'error',
'func-names': 'off',
'func-style': ['error', 'declaration'],
'func-style': ['error', 'declaration', { allowArrowFunctions: true }],
indent: ['error', 2, { SwitchCase: 1 }],
'key-spacing': ['error', { beforeColon: false, afterColon: true }],
'keyword-spacing': ['error', { before: true, after: true }],
@@ -271,7 +286,7 @@ module.exports = {
// ImportSort
'simple-import-sort/sort': 'error',
'simple-import-sort/imports': 'error',
'import/newline-after-import': 'error',
// React
@@ -303,13 +318,17 @@ module.exports = {
'react/react-in-jsx-scope': 2,
'react/self-closing-comp': 2,
'react/sort-comp': 2,
'react/jsx-wrap-multilines': 2
'react/jsx-wrap-multilines': 2,
'react-hooks/rules-of-hooks': 'error',
'react-hooks/exhaustive-deps': 'error'
},
overrides: [
{
files: ['*.js'],
files: [
'*.js'
],
rules: {
'simple-import-sort/sort': [
'simple-import-sort/imports': [
'error',
{
groups: [
@@ -322,6 +341,52 @@ module.exports = {
}
]
}
},
{
files: [
'*.ts',
'*.tsx'
],
parser: '@typescript-eslint/parser',
parserOptions: {
project: './tsconfig.json'
},
extends: [
'prettier'
],
rules: Object.assign(typescriptEslintRecommended.rules, {
'no-shadow': 'off',
// These should be enabled after cleaning things up
'@typescript-eslint/no-unused-vars': 'warn',
'@typescript-eslint/explicit-function-return-type': 'off',
'react/prop-types': 'off',
'prettier/prettier': 'error',
'simple-import-sort/imports': [
'error',
{
groups: [
// Packages
// Absolute Paths
// Relative Paths
// Css
['^@?\\w', `^(${dirs})(/.*|$)`, '^\\.', '^\\..*css$']
]
}
]
})
},
{
files: [
'*.css.d.ts'
],
rules: {
'filenames/match-exported': 'off',
'init-declarations': 'off',
'prettier/prettier': 'off'
}
}
]
};
-12
View File
@@ -1,12 +0,0 @@
{
"js": {
"indent_size": 2,
"indent_char": " ",
"indent_level": 2,
"indent_with_tabs": false,
"preserve_newlines": true,
"brace_style": "collapse",
"max_preserve_newlines": 2,
"jslint_happy": true
}
}
+10
View File
@@ -0,0 +1,10 @@
# Ignore everything recursively
*
# But not the .ts files
!*.ts*
*css.d.ts
# Check subdirectories too
!*/
+6
View File
@@ -0,0 +1,6 @@
{
"arrowParens": "always",
"endOfLine": "auto",
"singleQuote": true,
"trailingComma": "es5"
}
+13 -83
View File
@@ -1,12 +1,12 @@
{
"plugins": [
"stylelint-order"
],
"ignoreFiles": [
"frontend/src/Styles/scaffolding.css",
"**/*.js"
],
"rules": {
"plugins": [
"stylelint-order"
],
"ignoreFiles": [
"frontend/src/Styles/scaffolding.css",
"**/*.js"
],
"rules": {
"at-rule-empty-line-before": [
"always",
{
@@ -15,9 +15,6 @@
]
}
],
"at-rule-name-case": "lower",
"at-rule-name-newline-after": "always-multi-line",
"at-rule-name-space-after": "always",
"at-rule-no-unknown": [
true,
{
@@ -28,83 +25,36 @@
}
],
"at-rule-no-vendor-prefix": true,
"at-rule-semicolon-newline-after": "always",
"at-rule-semicolon-space-before": "never",
"block-closing-brace-empty-line-before": "never",
"block-closing-brace-newline-after": "always",
"block-closing-brace-newline-before": "always",
"block-closing-brace-space-after": "always-single-line",
"block-closing-brace-space-before": "always-single-line",
"block-no-empty": true,
"block-opening-brace-newline-after": "always",
"block-opening-brace-newline-before": "never-single-line",
"block-opening-brace-space-after": "always-single-line",
"block-opening-brace-space-before": "always",
"color-hex-case": "lower",
"color-hex-length": "short",
"color-named": "never",
"color-no-invalid-hex": true,
"comment-whitespace-inside": "always",
"declaration-bang-space-after": "never",
"declaration-bang-space-before": "always",
"declaration-block-no-duplicate-properties": [
true,
{
"ignoreProperties": [
"composes"
"composes"
]
}
],
"declaration-block-no-redundant-longhand-properties": true,
"declaration-block-no-shorthand-property-overrides": true,
"declaration-block-semicolon-newline-after": "always",
"declaration-block-semicolon-newline-before": "never-multi-line",
"declaration-block-semicolon-space-before": "never",
"declaration-block-single-line-max-declarations": 1,
"declaration-block-trailing-semicolon": "always",
"declaration-colon-space-after": "always",
"declaration-colon-space-before": "never",
"font-family-name-quotes": "always-unless-keyword",
"function-calc-no-unspaced-operator": true,
"function-comma-newline-after": "never-multi-line",
"function-comma-newline-before": "never-multi-line",
"function-comma-space-after": "always",
"function-comma-space-before": "never",
"function-linear-gradient-no-nonstandard-direction": true,
"function-name-case": "lower",
"function-parentheses-newline-inside": "never-multi-line",
"function-parentheses-space-inside": "never",
"function-url-quotes": "always",
"function-url-scheme-disallowed-list": [
"data"
],
"function-whitespace-after": "always",
"indentation": 2,
"keyframe-declaration-no-important": true,
"length-zero-no-unit": true,
"max-empty-lines": 1,
"max-line-length": [
100,
{
"ignore": [
"non-comments"
]
}
],
"max-nesting-depth": 2,
"media-feature-colon-space-after": "always",
"media-feature-colon-space-before": "never",
"media-feature-name-case": "lower",
"media-feature-name-no-vendor-prefix": true,
"media-feature-range-operator-space-after": "always",
"media-feature-range-operator-space-before": "always",
"no-empty-source": true,
"no-eol-whitespace": true,
"no-extra-semicolons": true,
"no-invalid-double-slash-comments": true,
"no-missing-end-of-source-newline": true,
"number-leading-zero": "always",
"number-no-trailing-zeros": true,
"order/order": [
"custom-properties",
"dollar-variables",
@@ -132,6 +82,7 @@
"right",
"bottom",
"left",
"inset",
"z-index",
"display",
"visibility",
@@ -343,54 +294,33 @@
]
}
],
"property-case": "lower",
"property-no-vendor-prefix": true,
"rule-empty-line-before": [
"always",
{
"except": [
"first-nested"
"first-nested"
],
"ignore": [
"after-comment"
"after-comment"
]
}
],
"selector-attribute-brackets-space-inside": "never",
"selector-attribute-operator-space-after": "never",
"selector-attribute-operator-space-before": "never",
"selector-attribute-quotes": "never",
"selector-class-pattern": "^[A-Za-z0-9]+$",
"selector-combinator-space-after": "always",
"selector-combinator-space-before": "always",
"selector-descendant-combinator-no-non-space": true,
"selector-list-comma-newline-after": "always",
"selector-list-comma-newline-before": "never-multi-line",
"selector-list-comma-space-before": "never",
"selector-max-attribute": 0,
"selector-max-class": 3,
"selector-max-compound-selectors": 3,
"selector-max-empty-lines": 0,
"selector-max-id": 0,
"selector-max-universal": 0,
"selector-pseudo-class-case": "lower",
"selector-pseudo-class-parentheses-space-inside": "never",
"selector-pseudo-element-case": "lower",
"selector-pseudo-element-colon-notation": "double",
"selector-pseudo-element-no-unknown": true,
"selector-type-case": "lower",
"selector-type-no-unknown": true,
"shorthand-property-no-redundant-values": true,
"string-no-newline": true,
"string-quotes": "single",
"time-min-milliseconds": 100,
"unit-case": "lower",
"unit-no-unknown": true,
"value-list-comma-newline-after": "never-multi-line",
"value-list-comma-newline-before": "never-multi-line",
"value-list-comma-space-after": "always",
"value-list-comma-space-before": "never",
"value-list-max-empty-lines": 0,
"value-no-vendor-prefix": true
}
}
}
+7
View File
@@ -0,0 +1,7 @@
{
"recommendations": [
"stylelint.vscode-stylelint",
"dbaeumer.vscode-eslint",
"esbenp.prettier-vscode"
]
}
+23
View File
@@ -0,0 +1,23 @@
// Place your settings in this file to overwrite default and user settings.
{
"files.insertFinalNewline": true,
"files.exclude": {
"**/node_modules": true,
"**/*.d.css": true
},
"editor.formatOnSave": false,
"editor.codeActionsOnSave": {
"source.fixAll": true
},
"typescript.preferences.quoteStyle": "single",
"eslint.validate": [
"javascript",
"javascriptreact",
"typescript",
"typescriptreact"
],
}
+4 -2
View File
@@ -17,7 +17,8 @@ module.exports = {
env: {
development: {
presets: [
['@babel/preset-react', { development: true }]
['@babel/preset-react', { development: true }],
'@babel/preset-typescript'
],
plugins: [
'babel-plugin-inline-classnames'
@@ -25,7 +26,8 @@ module.exports = {
},
production: {
presets: [
'@babel/preset-react'
'@babel/preset-react',
'@babel/preset-typescript'
],
plugins: [
'babel-plugin-transform-react-remove-prop-types'
+283
View File
@@ -0,0 +1,283 @@
/* eslint-disable @typescript-eslint/no-var-requires */
const path = require('path');
const webpack = require('webpack');
const FileManagerPlugin = require('filemanager-webpack-plugin');
const HtmlWebpackPlugin = require('html-webpack-plugin');
const LiveReloadPlugin = require('webpack-livereload-plugin');
const MiniCssExtractPlugin = require('mini-css-extract-plugin');
const TerserPlugin = require('terser-webpack-plugin');
const ForkTsCheckerWebpackPlugin = require('fork-ts-checker-webpack-plugin');
module.exports = (env) => {
const uiFolder = 'UI';
const frontendFolder = path.join(__dirname, '..');
const srcFolder = path.join(frontendFolder, 'src');
const isProduction = !!env.production;
const isProfiling = isProduction && !!env.profile;
const inlineWebWorkers = 'no-fallback';
const distFolder = path.resolve(frontendFolder, '..', '_output', uiFolder);
console.log('Source Folder:', srcFolder);
console.log('Output Folder:', distFolder);
console.log('isProduction:', isProduction);
console.log('isProfiling:', isProfiling);
const config = {
mode: isProduction ? 'production' : 'development',
devtool: isProduction ? 'source-map' : 'eval-source-map',
stats: {
children: false
},
watchOptions: {
ignored: /node_modules/
},
entry: {
index: 'index.js'
},
resolve: {
extensions: [
'.ts',
'.tsx',
'.js'
],
modules: [
srcFolder,
path.join(srcFolder, 'Shims'),
'node_modules'
],
alias: {
jquery: 'jquery/dist/jquery.min',
'react-middle-truncate': 'react-middle-truncate/lib/react-middle-truncate'
},
fallback: {
buffer: false,
http: false,
https: false,
url: false,
util: false,
net: false
}
},
output: {
path: distFolder,
publicPath: '/',
filename: '[name]-[contenthash].js',
sourceMapFilename: '[file].map'
},
optimization: {
moduleIds: 'deterministic',
chunkIds: isProduction ? 'deterministic' : 'named'
},
performance: {
hints: false
},
experiments: {
topLevelAwait: true
},
plugins: [
new webpack.DefinePlugin({
__DEV__: !isProduction,
'process.env.NODE_ENV': isProduction ? JSON.stringify('production') : JSON.stringify('development')
}),
new MiniCssExtractPlugin({
filename: 'Content/styles.css',
chunkFilename: 'Content/[id]-[chunkhash].css'
}),
new HtmlWebpackPlugin({
template: 'frontend/src/index.ejs',
filename: 'index.html',
publicPath: '/'
}),
new FileManagerPlugin({
events: {
onEnd: {
copy: [
// HTML
{
source: 'frontend/src/*.html',
destination: distFolder
},
// Fonts
{
source: 'frontend/src/Content/Fonts/*.*',
destination: path.join(distFolder, 'Content/Fonts')
},
// Icon Images
{
source: 'frontend/src/Content/Images/Icons/*.*',
destination: path.join(distFolder, 'Content/Images/Icons')
},
// Images
{
source: 'frontend/src/Content/Images/*.*',
destination: path.join(distFolder, 'Content/Images')
},
// Robots
{
source: 'frontend/src/Content/robots.txt',
destination: path.join(distFolder, 'Content/robots.txt')
}
]
}
}
}),
new ForkTsCheckerWebpackPlugin(),
new LiveReloadPlugin()
],
resolveLoader: {
modules: [
'node_modules',
'frontend/build/webpack/'
]
},
module: {
rules: [
{
test: /\.worker\.js$/,
use: {
loader: 'worker-loader',
options: {
filename: '[name].js',
inline: inlineWebWorkers
}
}
},
{
test: [/\.jsx?$/, /\.tsx?$/],
exclude: /(node_modules|JsLibraries)/,
use: [
{
loader: 'babel-loader',
options: {
configFile: `${frontendFolder}/babel.config.js`,
envName: isProduction ? 'production' : 'development',
presets: [
[
'@babel/preset-env',
{
modules: false,
loose: true,
debug: false,
useBuiltIns: 'entry',
corejs: 3
}
]
]
}
}
]
},
// CSS Modules
{
test: /\.css$/,
exclude: /(node_modules|globals.css)/,
use: [
{ loader: MiniCssExtractPlugin.loader },
{ loader: 'css-modules-typescript-loader' },
{
loader: 'css-loader',
options: {
importLoaders: 1,
modules: {
localIdentName: '[name]/[local]/[hash:base64:5]'
}
}
},
{
loader: 'postcss-loader',
options: {
postcssOptions: {
config: 'frontend/postcss.config.js'
}
}
}
]
},
// Global styles
{
test: /\.css$/,
include: /(node_modules|globals.css)/,
use: [
'style-loader',
{
loader: 'css-loader'
}
]
},
// Fonts
{
test: /\.woff(2)?(\?v=[0-9]\.[0-9]\.[0-9])?$/,
use: [
{
loader: 'url-loader',
options: {
limit: 10240,
mimetype: 'application/font-woff',
emitFile: false,
name: 'Content/Fonts/[name].[ext]'
}
}
]
},
{
test: /\.(ttf|eot|eot?#iefix|svg)(\?v=[0-9]\.[0-9]\.[0-9])?$/,
use: [
{
loader: 'file-loader',
options: {
emitFile: false,
name: 'Content/Fonts/[name].[ext]'
}
}
]
}
]
}
};
if (isProfiling) {
config.resolve.alias['react-dom$'] = 'react-dom/profiling';
config.resolve.alias['scheduler/tracing'] = 'scheduler/tracing-profiling';
config.optimization = {
minimize: true,
minimizer: [
new TerserPlugin({
terserOptions: {
sourceMap: true, // Must be set to true if using source-maps in production
mangle: false,
keep_classnames: true,
keep_fnames: true
}
})
]
};
}
return config;
};
@@ -1,3 +1,4 @@
// eslint-disable-next-line filenames/match-exported
const loaderUtils = require('loader-utils');
module.exports = function cssVariablesLoader(source) {
-18
View File
@@ -1,18 +0,0 @@
const gulp = require('gulp');
require('./clean');
require('./copy');
require('./webpack');
gulp.task('build',
gulp.series('clean',
gulp.parallel(
'webpack',
'copyHtml',
'copyFonts',
'copyImages',
'copyRobots'
)
)
);
-8
View File
@@ -1,8 +0,0 @@
const gulp = require('gulp');
const del = require('del');
const paths = require('./helpers/paths');
gulp.task('clean', () => {
return del([paths.dest.root]);
});
-42
View File
@@ -1,42 +0,0 @@
const path = require('path');
const gulp = require('gulp');
const print = require('gulp-print').default;
const cache = require('gulp-cached');
const livereload = require('gulp-livereload');
const paths = require('./helpers/paths.js');
gulp.task('copyHtml', () => {
return gulp.src(paths.src.html, { base: paths.src.root })
.pipe(cache('copyHtml'))
.pipe(print())
.pipe(gulp.dest(paths.dest.root))
.pipe(livereload());
});
gulp.task('copyFonts', () => {
return gulp.src(
path.join(paths.src.fonts, '**', '*.*'), { base: paths.src.root }
)
.pipe(cache('copyFonts'))
.pipe(print())
.pipe(gulp.dest(paths.dest.root))
.pipe(livereload());
});
gulp.task('copyImages', () => {
return gulp.src(
path.join(paths.src.images, '**', '*.*'), { base: paths.src.root }
)
.pipe(cache('copyImages'))
.pipe(print())
.pipe(gulp.dest(paths.dest.root))
.pipe(livereload());
});
gulp.task('copyRobots', () => {
return gulp.src(paths.src.robots, { base: paths.src.root })
.pipe(cache('copyRobots'))
.pipe(print())
.pipe(gulp.dest(paths.dest.root))
.pipe(livereload());
});
-5
View File
@@ -1,5 +0,0 @@
require('./build.js');
require('./clean.js');
require('./copy.js');
require('./watch.js');
require('./webpack.js');
-6
View File
@@ -1,6 +0,0 @@
const colors = require('ansi-colors');
module.exports = function errorHandler(error) {
console.log(colors.red(`Error (${error.plugin}): ${error.message}`));
this.emit('end');
};
-24
View File
@@ -1,24 +0,0 @@
const root = './frontend/src';
const paths = {
src: {
root,
html: `${root}/*.html`,
scripts: `${root}/**/*.js`,
content: `${root}/Content/`,
fonts: `${root}/Content/Fonts/`,
images: `${root}/Content/Images/`,
robots: `${root}/Content/robots.txt`,
exclude: {
libs: `!${root}/JsLibraries/**`
}
},
dest: {
root: './_output/UI/',
content: './_output/UI/Content/',
fonts: './_output/UI/Content/Fonts/',
images: './_output/UI/Content/Images/'
}
};
module.exports = paths;
-19
View File
@@ -1,19 +0,0 @@
const gulp = require('gulp');
const livereload = require('gulp-livereload');
const gulpWatch = require('gulp-watch');
const paths = require('./helpers/paths.js');
require('./copy.js');
require('./webpack.js');
function watch() {
livereload.listen({ start: true });
gulp.task('webpackWatch')();
gulpWatch(paths.src.html, gulp.series('copyHtml'));
gulpWatch(`${paths.src.fonts}**/*.*`, gulp.series('copyFonts'));
gulpWatch(`${paths.src.images}**/*.*`, gulp.series('copyImages'));
gulpWatch(paths.src.robots, gulp.series('copyRobots'));
}
gulp.task('watch', gulp.series('build', watch));
-271
View File
@@ -1,271 +0,0 @@
const gulp = require('gulp');
const webpackStream = require('webpack-stream');
const livereload = require('gulp-livereload');
const path = require('path');
const webpack = require('webpack');
const errorHandler = require('./helpers/errorHandler');
const OptimizeCssAssetsPlugin = require('optimize-css-assets-webpack-plugin');
const MiniCssExtractPlugin = require('mini-css-extract-plugin');
const HtmlWebpackPlugin = require('html-webpack-plugin');
const HtmlWebpackPluginHtmlTags = require('html-webpack-plugin/lib/html-tags');
const TerserPlugin = require('terser-webpack-plugin');
const uiFolder = 'UI';
const frontendFolder = path.join(__dirname, '..');
const srcFolder = path.join(frontendFolder, 'src');
const isProduction = process.argv.indexOf('--production') > -1;
const isProfiling = isProduction && process.argv.indexOf('--profile') > -1;
const inlineWebWorkers = 'no-fallback';
const distFolder = path.resolve(frontendFolder, '..', '_output', uiFolder);
console.log('Source Folder:', srcFolder);
console.log('Output Folder:', distFolder);
console.log('isProduction:', isProduction);
console.log('isProfiling:', isProfiling);
const cssVarsFiles = [
'../src/Styles/Variables/colors',
'../src/Styles/Variables/dimensions',
'../src/Styles/Variables/fonts',
'../src/Styles/Variables/animations',
'../src/Styles/Variables/zIndexes'
].map(require.resolve);
// Override the way HtmlWebpackPlugin injects the scripts
// TODO: Find a better way to get these paths without
HtmlWebpackPlugin.prototype.injectAssetsIntoHtml = function(html, assets, assetTags) {
const head = assetTags.headTags.map((v) => {
const href = v.attributes.href
.replace('\\', '/')
.replace('%5C', '/');
v.attributes = { rel: 'stylesheet', type: 'text/css', href: `/${href}` };
return HtmlWebpackPluginHtmlTags.htmlTagObjectToString(v, this.options.xhtml);
});
const body = assetTags.bodyTags.map((v) => {
v.attributes = { src: `/${v.attributes.src}` };
return HtmlWebpackPluginHtmlTags.htmlTagObjectToString(v, this.options.xhtml);
});
return html
.replace('<!-- webpack bundles head -->', head.join('\r\n '))
.replace('<!-- webpack bundles body -->', body.join('\r\n '));
};
const plugins = [
new OptimizeCssAssetsPlugin({}),
new webpack.DefinePlugin({
__DEV__: !isProduction,
'process.env.NODE_ENV': isProduction ? JSON.stringify('production') : JSON.stringify('development')
}),
new MiniCssExtractPlugin({
filename: path.join('Content', 'styles.css')
}),
new HtmlWebpackPlugin({
template: 'frontend/src/index.html',
filename: 'index.html'
})
];
const config = {
mode: isProduction ? 'production' : 'development',
devtool: '#source-map',
stats: {
children: false
},
watchOptions: {
ignored: /node_modules/
},
entry: {
index: 'index.js'
},
resolve: {
modules: [
srcFolder,
path.join(srcFolder, 'Shims'),
'node_modules'
],
alias: {
jquery: 'jquery/src/jquery'
}
},
output: {
path: distFolder,
filename: '[name].js',
sourceMapFilename: '[file].map'
},
optimization: {
chunkIds: 'named',
splitChunks: {
chunks: 'initial'
}
},
performance: {
hints: false
},
plugins,
resolveLoader: {
modules: [
'node_modules',
'frontend/gulp/webpack/'
]
},
module: {
rules: [
{
test: /\.worker\.js$/,
use: {
loader: 'worker-loader',
options: {
filename: '[name].js',
inline: inlineWebWorkers
}
}
},
{
test: /\.js?$/,
exclude: /(node_modules|JsLibraries)/,
use: [
{
loader: 'babel-loader',
options: {
configFile: `${frontendFolder}/babel.config.js`,
envName: isProduction ? 'production' : 'development',
presets: [
[
'@babel/preset-env',
{
modules: false,
loose: true,
debug: false,
useBuiltIns: 'entry',
corejs: 3
}
]
]
}
}
]
},
// CSS Modules
{
test: /\.css$/,
exclude: /(node_modules|globals.css)/,
use: [
{ loader: MiniCssExtractPlugin.loader },
{
loader: 'css-loader',
options: {
importLoaders: 1,
modules: {
localIdentName: '[name]/[local]/[hash:base64:5]'
}
}
},
{
loader: 'postcss-loader',
options: {
ident: 'postcss',
config: {
ctx: {
cssVarsFiles
},
path: 'frontend/postcss.config.js'
}
}
}
]
},
// Global styles
{
test: /\.css$/,
include: /(node_modules|globals.css)/,
use: [
'style-loader',
{
loader: 'css-loader'
}
]
},
// Fonts
{
test: /\.woff(2)?(\?v=[0-9]\.[0-9]\.[0-9])?$/,
use: [
{
loader: 'url-loader',
options: {
limit: 10240,
mimetype: 'application/font-woff',
emitFile: false,
name: 'Content/Fonts/[name].[ext]'
}
}
]
},
{
test: /\.(ttf|eot|eot?#iefix|svg)(\?v=[0-9]\.[0-9]\.[0-9])?$/,
use: [
{
loader: 'file-loader',
options: {
emitFile: false,
name: 'Content/Fonts/[name].[ext]'
}
}
]
}
]
}
};
if (isProfiling) {
config.resolve.alias['react-dom$'] = 'react-dom/profiling';
config.resolve.alias['scheduler/tracing'] = 'scheduler/tracing-profiling';
config.optimization.minimizer = [
new TerserPlugin({
cache: true,
parallel: true,
sourceMap: true, // Must be set to true if using source-maps in production
terserOptions: {
mangle: false,
keep_classnames: true,
keep_fnames: true
}
})
];
}
gulp.task('webpack', () => {
return webpackStream(config)
.pipe(gulp.dest('_output/UI'));
});
gulp.task('webpackWatch', () => {
config.watch = true;
return webpackStream(config, webpack)
.on('error', errorHandler)
.pipe(gulp.dest('_output/UI'))
.on('error', errorHandler)
.pipe(livereload())
.on('error', errorHandler);
});
+27 -19
View File
@@ -1,23 +1,31 @@
const reload = require('require-nocache')(module);
module.exports = (ctx, configPath, options) => {
const config = {
plugins: {
'postcss-mixins': {
mixinsDir: [
'frontend/src/Styles/Mixins'
]
},
'postcss-simple-vars': {
variables: () =>
ctx.options.cssVarsFiles.reduce((acc, vars) => {
return Object.assign(acc, reload(vars));
}, {})
},
'postcss-color-function': {},
'postcss-nested': {}
}
};
const cssVarsFiles = [
'./src/Styles/Variables/dimensions',
'./src/Styles/Variables/fonts',
'./src/Styles/Variables/animations',
'./src/Styles/Variables/zIndexes'
].map(require.resolve);
return config;
const mixinsFiles = [
'frontend/src/Styles/Mixins/cover.css',
'frontend/src/Styles/Mixins/linkOverlay.css',
'frontend/src/Styles/Mixins/scroller.css',
'frontend/src/Styles/Mixins/truncate.css'
];
module.exports = {
plugins: [
['postcss-mixins', {
mixinsFiles
}],
['postcss-simple-vars', {
variables: () =>
cssVarsFiles.reduce((acc, vars) => {
return Object.assign(acc, reload(vars));
}, {})
}],
'postcss-color-function',
'postcss-nested'
]
};
-4
View File
@@ -1,4 +0,0 @@
// Place your settings in this file to overwrite default and user settings.
{
"files.insertFinalNewline": true
}
@@ -1,130 +0,0 @@
import PropTypes from 'prop-types';
import React, { Component } from 'react';
import LoadingIndicator from 'Components/Loading/LoadingIndicator';
import PageContent from 'Components/Page/PageContent';
import PageContentBodyConnector from 'Components/Page/PageContentBodyConnector';
import PageToolbar from 'Components/Page/Toolbar/PageToolbar';
import PageToolbarButton from 'Components/Page/Toolbar/PageToolbarButton';
import PageToolbarSection from 'Components/Page/Toolbar/PageToolbarSection';
import Table from 'Components/Table/Table';
import TableBody from 'Components/Table/TableBody';
import TableOptionsModalWrapper from 'Components/Table/TableOptions/TableOptionsModalWrapper';
import TablePager from 'Components/Table/TablePager';
import { align, icons } from 'Helpers/Props';
import BlacklistRowConnector from './BlacklistRowConnector';
class Blacklist extends Component {
//
// Render
render() {
const {
isFetching,
isPopulated,
isAuthorFetching,
isAuthorPopulated,
error,
items,
columns,
totalRecords,
isClearingBlacklistExecuting,
onClearBlacklistPress,
...otherProps
} = this.props;
const isAllPopulated = isPopulated && isAuthorPopulated;
const isAnyFetching = isFetching || isAuthorFetching;
return (
<PageContent title="Blacklist">
<PageToolbar>
<PageToolbarSection>
<PageToolbarButton
label="Clear"
iconName={icons.CLEAR}
isSpinning={isClearingBlacklistExecuting}
onPress={onClearBlacklistPress}
/>
</PageToolbarSection>
<PageToolbarSection alignContent={align.RIGHT}>
<TableOptionsModalWrapper
{...otherProps}
columns={columns}
>
<PageToolbarButton
label="Options"
iconName={icons.TABLE}
/>
</TableOptionsModalWrapper>
</PageToolbarSection>
</PageToolbar>
<PageContentBodyConnector>
{
isAnyFetching && !isAllPopulated &&
<LoadingIndicator />
}
{
!isAnyFetching && !!error &&
<div>Unable to load blacklist</div>
}
{
isAllPopulated && !error && !items.length &&
<div>
No history blacklist
</div>
}
{
isAllPopulated && !error && !!items.length &&
<div>
<Table
columns={columns}
{...otherProps}
>
<TableBody>
{
items.map((item) => {
return (
<BlacklistRowConnector
key={item.id}
columns={columns}
{...item}
/>
);
})
}
</TableBody>
</Table>
<TablePager
totalRecords={totalRecords}
isFetching={isFetching}
{...otherProps}
/>
</div>
}
</PageContentBodyConnector>
</PageContent>
);
}
}
Blacklist.propTypes = {
isAuthorFetching: PropTypes.bool.isRequired,
isAuthorPopulated: PropTypes.bool.isRequired,
isFetching: PropTypes.bool.isRequired,
isPopulated: PropTypes.bool.isRequired,
error: PropTypes.object,
items: PropTypes.arrayOf(PropTypes.object).isRequired,
columns: PropTypes.arrayOf(PropTypes.object).isRequired,
totalRecords: PropTypes.number,
isClearingBlacklistExecuting: PropTypes.bool.isRequired,
onClearBlacklistPress: PropTypes.func.isRequired
};
export default Blacklist;
@@ -0,0 +1,243 @@
import PropTypes from 'prop-types';
import React, { Component } from 'react';
import Alert from 'Components/Alert';
import LoadingIndicator from 'Components/Loading/LoadingIndicator';
import ConfirmModal from 'Components/Modal/ConfirmModal';
import PageContent from 'Components/Page/PageContent';
import PageContentBody from 'Components/Page/PageContentBody';
import PageToolbar from 'Components/Page/Toolbar/PageToolbar';
import PageToolbarButton from 'Components/Page/Toolbar/PageToolbarButton';
import PageToolbarSection from 'Components/Page/Toolbar/PageToolbarSection';
import Table from 'Components/Table/Table';
import TableBody from 'Components/Table/TableBody';
import TableOptionsModalWrapper from 'Components/Table/TableOptions/TableOptionsModalWrapper';
import TablePager from 'Components/Table/TablePager';
import { align, icons, kinds } from 'Helpers/Props';
import getRemovedItems from 'Utilities/Object/getRemovedItems';
import hasDifferentItems from 'Utilities/Object/hasDifferentItems';
import translate from 'Utilities/String/translate';
import getSelectedIds from 'Utilities/Table/getSelectedIds';
import removeOldSelectedState from 'Utilities/Table/removeOldSelectedState';
import selectAll from 'Utilities/Table/selectAll';
import toggleSelected from 'Utilities/Table/toggleSelected';
import BlocklistRowConnector from './BlocklistRowConnector';
class Blocklist extends Component {
//
// Lifecycle
constructor(props, context) {
super(props, context);
this.state = {
allSelected: false,
allUnselected: false,
lastToggled: null,
selectedState: {},
isConfirmRemoveModalOpen: false,
items: props.items
};
}
componentDidUpdate(prevProps) {
const {
items
} = this.props;
if (hasDifferentItems(prevProps.items, items)) {
this.setState((state) => {
return {
...removeOldSelectedState(state, getRemovedItems(prevProps.items, items)),
items
};
});
return;
}
}
//
// Control
getSelectedIds = () => {
return getSelectedIds(this.state.selectedState);
};
//
// Listeners
onSelectAllChange = ({ value }) => {
this.setState(selectAll(this.state.selectedState, value));
};
onSelectedChange = ({ id, value, shiftKey = false }) => {
this.setState((state) => {
return toggleSelected(state, this.props.items, id, value, shiftKey);
});
};
onRemoveSelectedPress = () => {
this.setState({ isConfirmRemoveModalOpen: true });
};
onRemoveSelectedConfirmed = () => {
this.props.onRemoveSelected(this.getSelectedIds());
this.setState({ isConfirmRemoveModalOpen: false });
};
onConfirmRemoveModalClose = () => {
this.setState({ isConfirmRemoveModalOpen: false });
};
//
// Render
render() {
const {
isFetching,
isPopulated,
isAuthorFetching,
isAuthorPopulated,
error,
items,
columns,
totalRecords,
isRemoving,
isClearingBlocklistExecuting,
onClearBlocklistPress,
...otherProps
} = this.props;
const isAllPopulated = isPopulated && isAuthorPopulated;
const isAnyFetching = isFetching || isAuthorFetching;
const {
allSelected,
allUnselected,
selectedState,
isConfirmRemoveModalOpen
} = this.state;
const selectedIds = this.getSelectedIds();
return (
<PageContent title={translate('Blocklist')}>
<PageToolbar>
<PageToolbarSection>
<PageToolbarButton
label={translate('RemoveSelected')}
iconName={icons.REMOVE}
isDisabled={!selectedIds.length}
isSpinning={isRemoving}
onPress={this.onRemoveSelectedPress}
/>
<PageToolbarButton
label={translate('Clear')}
iconName={icons.CLEAR}
isSpinning={isClearingBlocklistExecuting}
onPress={onClearBlocklistPress}
/>
</PageToolbarSection>
<PageToolbarSection alignContent={align.RIGHT}>
<TableOptionsModalWrapper
{...otherProps}
columns={columns}
>
<PageToolbarButton
label={translate('Options')}
iconName={icons.TABLE}
/>
</TableOptionsModalWrapper>
</PageToolbarSection>
</PageToolbar>
<PageContentBody>
{
isAnyFetching && !isAllPopulated &&
<LoadingIndicator />
}
{
!isAnyFetching && !!error &&
<Alert kind={kinds.DANGER}>
{translate('UnableToLoadBlocklist')}
</Alert>
}
{
isAllPopulated && !error && !items.length &&
<Alert kind={kinds.INFO}>
{translate('NoHistoryBlocklist')}
</Alert>
}
{
isAllPopulated && !error && !!items.length &&
<div>
<Table
selectAll={true}
allSelected={allSelected}
allUnselected={allUnselected}
columns={columns}
{...otherProps}
onSelectAllChange={this.onSelectAllChange}
>
<TableBody>
{
items.map((item) => {
return (
<BlocklistRowConnector
key={item.id}
isSelected={selectedState[item.id] || false}
columns={columns}
{...item}
onSelectedChange={this.onSelectedChange}
/>
);
})
}
</TableBody>
</Table>
<TablePager
totalRecords={totalRecords}
isFetching={isFetching}
{...otherProps}
/>
</div>
}
</PageContentBody>
<ConfirmModal
isOpen={isConfirmRemoveModalOpen}
kind={kinds.DANGER}
title={translate('RemoveSelected')}
message={translate('RemoveSelectedItemBlocklistMessageText')}
confirmLabel={translate('RemoveSelected')}
onConfirm={this.onRemoveSelectedConfirmed}
onCancel={this.onConfirmRemoveModalClose}
/>
</PageContent>
);
}
}
Blocklist.propTypes = {
isAuthorFetching: PropTypes.bool.isRequired,
isAuthorPopulated: PropTypes.bool.isRequired,
isFetching: PropTypes.bool.isRequired,
isPopulated: PropTypes.bool.isRequired,
error: PropTypes.object,
items: PropTypes.arrayOf(PropTypes.object).isRequired,
columns: PropTypes.arrayOf(PropTypes.object).isRequired,
totalRecords: PropTypes.number,
isRemoving: PropTypes.bool.isRequired,
isClearingBlocklistExecuting: PropTypes.bool.isRequired,
onRemoveSelected: PropTypes.func.isRequired,
onClearBlocklistPress: PropTypes.func.isRequired
};
export default Blocklist;
@@ -4,34 +4,34 @@ import { connect } from 'react-redux';
import { createSelector } from 'reselect';
import * as commandNames from 'Commands/commandNames';
import withCurrentPage from 'Components/withCurrentPage';
import * as blacklistActions from 'Store/Actions/blacklistActions';
import * as blocklistActions from 'Store/Actions/blocklistActions';
import { executeCommand } from 'Store/Actions/commandActions';
import createCommandExecutingSelector from 'Store/Selectors/createCommandExecutingSelector';
import { registerPagePopulator, unregisterPagePopulator } from 'Utilities/pagePopulator';
import Blacklist from './Blacklist';
import Blocklist from './Blocklist';
function createMapStateToProps() {
return createSelector(
(state) => state.blacklist,
(state) => state.blocklist,
(state) => state.authors,
createCommandExecutingSelector(commandNames.CLEAR_BLACKLIST),
(blacklist, authors, isClearingBlacklistExecuting) => {
createCommandExecutingSelector(commandNames.CLEAR_BLOCKLIST),
(blocklist, authors, isClearingBlocklistExecuting) => {
return {
isAuthorFetching: authors.isFetching,
isAuthorPopulated: authors.isPopulated,
isClearingBlacklistExecuting,
...blacklist
isClearingBlocklistExecuting,
...blocklist
};
}
);
}
const mapDispatchToProps = {
...blacklistActions,
...blocklistActions,
executeCommand
};
class BlacklistConnector extends Component {
class BlocklistConnector extends Component {
//
// Lifecycle
@@ -39,27 +39,27 @@ class BlacklistConnector extends Component {
componentDidMount() {
const {
useCurrentPage,
fetchBlacklist,
gotoBlacklistFirstPage
fetchBlocklist,
gotoBlocklistFirstPage
} = this.props;
registerPagePopulator(this.repopulate);
if (useCurrentPage) {
fetchBlacklist();
fetchBlocklist();
} else {
gotoBlacklistFirstPage();
gotoBlocklistFirstPage();
}
}
componentDidUpdate(prevProps) {
if (prevProps.isClearingBlacklistExecuting && !this.props.isClearingBlacklistExecuting) {
this.props.gotoBlacklistFirstPage();
if (prevProps.isClearingBlocklistExecuting && !this.props.isClearingBlocklistExecuting) {
this.props.gotoBlocklistFirstPage();
}
}
componentWillUnmount() {
this.props.clearBlacklist();
this.props.clearBlocklist();
unregisterPagePopulator(this.repopulate);
}
@@ -67,83 +67,89 @@ class BlacklistConnector extends Component {
// Control
repopulate = () => {
this.props.fetchBlacklist();
}
this.props.fetchBlocklist();
};
//
// Listeners
onFirstPagePress = () => {
this.props.gotoBlacklistFirstPage();
}
this.props.gotoBlocklistFirstPage();
};
onPreviousPagePress = () => {
this.props.gotoBlacklistPreviousPage();
}
this.props.gotoBlocklistPreviousPage();
};
onNextPagePress = () => {
this.props.gotoBlacklistNextPage();
}
this.props.gotoBlocklistNextPage();
};
onLastPagePress = () => {
this.props.gotoBlacklistLastPage();
}
this.props.gotoBlocklistLastPage();
};
onPageSelect = (page) => {
this.props.gotoBlacklistPage({ page });
}
this.props.gotoBlocklistPage({ page });
};
onRemoveSelected = (ids) => {
this.props.removeBlocklistItems({ ids });
};
onSortPress = (sortKey) => {
this.props.setBlacklistSort({ sortKey });
}
this.props.setBlocklistSort({ sortKey });
};
onTableOptionChange = (payload) => {
this.props.setBlacklistTableOption(payload);
this.props.setBlocklistTableOption(payload);
if (payload.pageSize) {
this.props.gotoBlacklistFirstPage();
this.props.gotoBlocklistFirstPage();
}
}
};
onClearBlacklistPress = () => {
this.props.executeCommand({ name: commandNames.CLEAR_BLACKLIST });
}
onClearBlocklistPress = () => {
this.props.executeCommand({ name: commandNames.CLEAR_BLOCKLIST });
};
//
// Render
render() {
return (
<Blacklist
<Blocklist
onFirstPagePress={this.onFirstPagePress}
onPreviousPagePress={this.onPreviousPagePress}
onNextPagePress={this.onNextPagePress}
onLastPagePress={this.onLastPagePress}
onPageSelect={this.onPageSelect}
onRemoveSelected={this.onRemoveSelected}
onSortPress={this.onSortPress}
onTableOptionChange={this.onTableOptionChange}
onClearBlacklistPress={this.onClearBlacklistPress}
onClearBlocklistPress={this.onClearBlocklistPress}
{...this.props}
/>
);
}
}
BlacklistConnector.propTypes = {
BlocklistConnector.propTypes = {
useCurrentPage: PropTypes.bool.isRequired,
isClearingBlacklistExecuting: PropTypes.bool.isRequired,
isClearingBlocklistExecuting: PropTypes.bool.isRequired,
items: PropTypes.arrayOf(PropTypes.object).isRequired,
fetchBlacklist: PropTypes.func.isRequired,
gotoBlacklistFirstPage: PropTypes.func.isRequired,
gotoBlacklistPreviousPage: PropTypes.func.isRequired,
gotoBlacklistNextPage: PropTypes.func.isRequired,
gotoBlacklistLastPage: PropTypes.func.isRequired,
gotoBlacklistPage: PropTypes.func.isRequired,
setBlacklistSort: PropTypes.func.isRequired,
setBlacklistTableOption: PropTypes.func.isRequired,
clearBlacklist: PropTypes.func.isRequired,
fetchBlocklist: PropTypes.func.isRequired,
gotoBlocklistFirstPage: PropTypes.func.isRequired,
gotoBlocklistPreviousPage: PropTypes.func.isRequired,
gotoBlocklistNextPage: PropTypes.func.isRequired,
gotoBlocklistLastPage: PropTypes.func.isRequired,
gotoBlocklistPage: PropTypes.func.isRequired,
removeBlocklistItems: PropTypes.func.isRequired,
setBlocklistSort: PropTypes.func.isRequired,
setBlocklistTableOption: PropTypes.func.isRequired,
clearBlocklist: PropTypes.func.isRequired,
executeCommand: PropTypes.func.isRequired
};
export default withCurrentPage(
connect(createMapStateToProps, mapDispatchToProps)(BlacklistConnector)
connect(createMapStateToProps, mapDispatchToProps)(BlocklistConnector)
);
@@ -8,8 +8,9 @@ import ModalBody from 'Components/Modal/ModalBody';
import ModalContent from 'Components/Modal/ModalContent';
import ModalFooter from 'Components/Modal/ModalFooter';
import ModalHeader from 'Components/Modal/ModalHeader';
import translate from 'Utilities/String/translate';
class BlacklistDetailsModal extends Component {
class BlocklistDetailsModal extends Component {
//
// Render
@@ -39,19 +40,19 @@ class BlacklistDetailsModal extends Component {
<ModalBody>
<DescriptionList>
<DescriptionListItem
title="Name"
title={translate('Name')}
data={sourceTitle}
/>
<DescriptionListItem
title="Protocol"
title={translate('Protocol')}
data={protocol}
/>
{
!!message &&
<DescriptionListItem
title="Indexer"
title={translate('Indexer')}
data={indexer}
/>
}
@@ -59,7 +60,7 @@ class BlacklistDetailsModal extends Component {
{
!!message &&
<DescriptionListItem
title="Message"
title={translate('Message')}
data={message}
/>
}
@@ -77,7 +78,7 @@ class BlacklistDetailsModal extends Component {
}
}
BlacklistDetailsModal.propTypes = {
BlocklistDetailsModal.propTypes = {
isOpen: PropTypes.bool.isRequired,
sourceTitle: PropTypes.string.isRequired,
protocol: PropTypes.string.isRequired,
@@ -86,4 +87,4 @@ BlacklistDetailsModal.propTypes = {
onModalClose: PropTypes.func.isRequired
};
export default BlacklistDetailsModal;
export default BlocklistDetailsModal;
+9
View File
@@ -0,0 +1,9 @@
// This file is automatically generated.
// Please do not change this file!
interface CssExports {
'actions': string;
'indexer': string;
'quality': string;
}
export const cssExports: CssExports;
export default cssExports;
@@ -1,16 +1,19 @@
import PropTypes from 'prop-types';
import React, { Component } from 'react';
import AuthorNameLink from 'Author/AuthorNameLink';
import BookFormats from 'Book/BookFormats';
import BookQuality from 'Book/BookQuality';
import IconButton from 'Components/Link/IconButton';
import RelativeDateCellConnector from 'Components/Table/Cells/RelativeDateCellConnector';
import TableRowCell from 'Components/Table/Cells/TableRowCell';
import TableSelectCell from 'Components/Table/Cells/TableSelectCell';
import TableRow from 'Components/Table/TableRow';
import { icons, kinds } from 'Helpers/Props';
import BlacklistDetailsModal from './BlacklistDetailsModal';
import styles from './BlacklistRow.css';
import translate from 'Utilities/String/translate';
import BlocklistDetailsModal from './BlocklistDetailsModal';
import styles from './BlocklistRow.css';
class BlacklistRow extends Component {
class BlocklistRow extends Component {
//
// Lifecycle
@@ -28,25 +31,29 @@ class BlacklistRow extends Component {
onDetailsPress = () => {
this.setState({ isDetailsModalOpen: true });
}
};
onDetailsModalClose = () => {
this.setState({ isDetailsModalOpen: false });
}
};
//
// Render
render() {
const {
id,
author,
sourceTitle,
quality,
customFormats,
date,
protocol,
indexer,
message,
isSelected,
columns,
onSelectedChange,
onRemovePress
} = this.props;
@@ -56,6 +63,12 @@ class BlacklistRow extends Component {
return (
<TableRow>
<TableSelectCell
id={id}
isSelected={isSelected}
onSelectedChange={onSelectedChange}
/>
{
columns.map((column) => {
const {
@@ -67,7 +80,7 @@ class BlacklistRow extends Component {
return null;
}
if (name === 'authors.sortName') {
if (name === 'authorMetadata.sortName') {
return (
<TableRowCell key={name}>
<AuthorNameLink
@@ -99,6 +112,16 @@ class BlacklistRow extends Component {
);
}
if (name === 'customFormats') {
return (
<TableRowCell key={name}>
<BookFormats
formats={customFormats}
/>
</TableRowCell>
);
}
if (name === 'date') {
return (
<RelativeDateCellConnector
@@ -131,7 +154,7 @@ class BlacklistRow extends Component {
/>
<IconButton
title="Remove from blacklist"
title={translate('RemoveFromBlocklist')}
name={icons.REMOVE}
kind={kinds.DANGER}
onPress={onRemovePress}
@@ -144,7 +167,7 @@ class BlacklistRow extends Component {
})
}
<BlacklistDetailsModal
<BlocklistDetailsModal
isOpen={this.state.isDetailsModalOpen}
sourceTitle={sourceTitle}
protocol={protocol}
@@ -158,17 +181,20 @@ class BlacklistRow extends Component {
}
BlacklistRow.propTypes = {
BlocklistRow.propTypes = {
id: PropTypes.number.isRequired,
author: PropTypes.object.isRequired,
sourceTitle: PropTypes.string.isRequired,
quality: PropTypes.object.isRequired,
customFormats: PropTypes.arrayOf(PropTypes.object).isRequired,
date: PropTypes.string.isRequired,
protocol: PropTypes.string.isRequired,
indexer: PropTypes.string,
message: PropTypes.string,
isSelected: PropTypes.bool.isRequired,
columns: PropTypes.arrayOf(PropTypes.object).isRequired,
onSelectedChange: PropTypes.func.isRequired,
onRemovePress: PropTypes.func.isRequired
};
export default BlacklistRow;
export default BlocklistRow;
@@ -1,8 +1,8 @@
import { connect } from 'react-redux';
import { createSelector } from 'reselect';
import { removeFromBlacklist } from 'Store/Actions/blacklistActions';
import { removeBlocklistItem } from 'Store/Actions/blocklistActions';
import createAuthorSelector from 'Store/Selectors/createAuthorSelector';
import BlacklistRow from './BlacklistRow';
import BlocklistRow from './BlocklistRow';
function createMapStateToProps() {
return createSelector(
@@ -18,9 +18,9 @@ function createMapStateToProps() {
function createMapDispatchToProps(dispatch, props) {
return {
onRemovePress() {
dispatch(removeFromBlacklist({ id: props.id }));
dispatch(removeBlocklistItem({ id: props.id }));
}
};
}
export default connect(createMapStateToProps, createMapDispatchToProps)(BlacklistRow);
export default connect(createMapStateToProps, createMapDispatchToProps)(BlocklistRow);
@@ -0,0 +1,7 @@
// This file is automatically generated.
// Please do not change this file!
interface CssExports {
'description': string;
}
export const cssExports: CssExports;
export default cssExports;
@@ -9,6 +9,8 @@ import Link from 'Components/Link/Link';
import { icons } from 'Helpers/Props';
import formatDateTime from 'Utilities/Date/formatDateTime';
import formatAge from 'Utilities/Number/formatAge';
import formatCustomFormatScore from 'Utilities/Number/formatCustomFormatScore';
import translate from 'Utilities/String/translate';
import styles from './HistoryDetails.css';
function getDetailedList(statusMessages) {
@@ -64,8 +66,10 @@ function HistoryDetails(props) {
const {
indexer,
releaseGroup,
customFormatScore,
nzbInfoUrl,
downloadClient,
downloadClientName,
downloadId,
age,
ageHours,
@@ -73,18 +77,20 @@ function HistoryDetails(props) {
publishedDate
} = data;
const downloadClientNameInfo = downloadClientName ?? downloadClient;
return (
<DescriptionList>
<DescriptionListItem
descriptionClassName={styles.description}
title="Name"
title={translate('Name')}
data={sourceTitle}
/>
{
!!indexer &&
<DescriptionListItem
title="Indexer"
title={translate('Indexer')}
data={indexer}
/>
}
@@ -93,13 +99,22 @@ function HistoryDetails(props) {
!!releaseGroup &&
<DescriptionListItem
descriptionClassName={styles.description}
title="Release Group"
title={translate('ReleaseGroup')}
data={releaseGroup}
/>
}
{
!!nzbInfoUrl &&
customFormatScore && customFormatScore !== '0' ?
<DescriptionListItem
title={translate('CustomFormatScore')}
data={formatCustomFormatScore(customFormatScore)}
/> :
null
}
{
nzbInfoUrl ?
<span>
<DescriptionListItemTitle>
Info URL
@@ -108,21 +123,23 @@ function HistoryDetails(props) {
<DescriptionListItemDescription>
<Link to={nzbInfoUrl}>{nzbInfoUrl}</Link>
</DescriptionListItemDescription>
</span>
</span> :
null
}
{
!!downloadClient &&
downloadClientNameInfo ?
<DescriptionListItem
title="Download Client"
data={downloadClient}
/>
title={translate('DownloadClient')}
data={downloadClientNameInfo}
/> :
null
}
{
!!downloadId &&
<DescriptionListItem
title="Grab ID"
title={translate('GrabID')}
data={downloadId}
/>
}
@@ -130,7 +147,7 @@ function HistoryDetails(props) {
{
!!indexer &&
<DescriptionListItem
title="Age (when grabbed)"
title={translate('AgeWhenGrabbed')}
data={formatAge(age, ageHours, ageMinutes)}
/>
}
@@ -138,7 +155,7 @@ function HistoryDetails(props) {
{
!!publishedDate &&
<DescriptionListItem
title="Published Date"
title={translate('PublishedDate')}
data={formatDateTime(publishedDate, shortDateFormat, timeFormat, { includeSeconds: true })}
/>
}
@@ -155,14 +172,14 @@ function HistoryDetails(props) {
<DescriptionList>
<DescriptionListItem
descriptionClassName={styles.description}
title="Name"
title={translate('Name')}
data={sourceTitle}
/>
{
!!message &&
<DescriptionListItem
title="Message"
title={translate('Message')}
data={message}
/>
}
@@ -172,6 +189,7 @@ function HistoryDetails(props) {
if (eventType === 'bookFileImported') {
const {
customFormatScore,
droppedPath,
importedPath
} = data;
@@ -180,7 +198,7 @@ function HistoryDetails(props) {
<DescriptionList>
<DescriptionListItem
descriptionClassName={styles.description}
title="Name"
title={translate('Name')}
data={sourceTitle}
/>
@@ -188,18 +206,28 @@ function HistoryDetails(props) {
!!droppedPath &&
<DescriptionListItem
descriptionClassName={styles.description}
title="Source"
title={translate('Source')}
data={droppedPath}
/>
}
{
!!importedPath &&
importedPath ?
<DescriptionListItem
descriptionClassName={styles.description}
title="Imported To"
title={translate('ImportedTo')}
data={importedPath}
/>
/> :
null
}
{
customFormatScore && customFormatScore !== '0' ?
<DescriptionListItem
title={translate('CustomFormatScore')}
data={formatCustomFormatScore(customFormatScore)}
/> :
null
}
</DescriptionList>
);
@@ -207,20 +235,21 @@ function HistoryDetails(props) {
if (eventType === 'bookFileDeleted') {
const {
reason
reason,
customFormatScore
} = data;
let reasonMessage = '';
switch (reason) {
case 'Manual':
reasonMessage = 'File was deleted by via UI';
reasonMessage = translate('FileWasDeletedByViaUI');
break;
case 'MissingFromDisk':
reasonMessage = 'Readarr was unable to find the file on disk so it was removed';
reasonMessage = translate('MissingFromDisk');
break;
case 'Upgrade':
reasonMessage = 'File was deleted to import an upgrade';
reasonMessage = translate('FileWasDeletedByUpgrade');
break;
default:
reasonMessage = '';
@@ -229,14 +258,23 @@ function HistoryDetails(props) {
return (
<DescriptionList>
<DescriptionListItem
title="Name"
title={translate('Name')}
data={sourceTitle}
/>
<DescriptionListItem
title="Reason"
title={translate('Reason')}
data={reasonMessage}
/>
{
customFormatScore && customFormatScore !== '0' ?
<DescriptionListItem
title={translate('CustomFormatScore')}
data={formatCustomFormatScore(customFormatScore)}
/> :
null
}
</DescriptionList>
);
}
@@ -250,12 +288,12 @@ function HistoryDetails(props) {
return (
<DescriptionList>
<DescriptionListItem
title="Source Path"
title={translate('SourcePath')}
data={sourcePath}
/>
<DescriptionListItem
title="Destination Path"
title={translate('DestinationPath')}
data={path}
/>
</DescriptionList>
@@ -271,7 +309,7 @@ function HistoryDetails(props) {
return (
<DescriptionList>
<DescriptionListItem
title="Path"
title={translate('Path')}
data={sourceTitle}
/>
{
@@ -286,7 +324,7 @@ function HistoryDetails(props) {
})
}
<DescriptionListItem
title="Existing tags scrubbed"
title={translate('ExistingTagsScrubbed')}
data={tagsScrubbed === 'True' ? <Icon name={icons.CHECK} /> : <Icon name={icons.REMOVE} />}
/>
</DescriptionList>
@@ -301,14 +339,14 @@ function HistoryDetails(props) {
return (
<DescriptionList>
<DescriptionListItem
title="Name"
title={translate('Name')}
data={sourceTitle}
/>
{
!!statusMessages &&
<DescriptionListItem
title="Import failures"
title={translate('ImportFailures')}
data={getDetailedList(JSON.parse(statusMessages))}
/>
}
@@ -332,14 +370,14 @@ function HistoryDetails(props) {
return (
<DescriptionList>
<DescriptionListItem
title="Name"
title={translate('Name')}
data={sourceTitle}
/>
{
!!indexer &&
<DescriptionListItem
title="Indexer"
title={translate('Indexer')}
data={indexer}
/>
}
@@ -347,7 +385,7 @@ function HistoryDetails(props) {
{
!!releaseGroup &&
<DescriptionListItem
title="Release Group"
title={translate('ReleaseGroup')}
data={releaseGroup}
/>
}
@@ -368,7 +406,7 @@ function HistoryDetails(props) {
{
!!downloadClient &&
<DescriptionListItem
title="Download Client"
title={translate('DownloadClient')}
data={downloadClient}
/>
}
@@ -376,7 +414,7 @@ function HistoryDetails(props) {
{
!!downloadId &&
<DescriptionListItem
title="Grab ID"
title={translate('GrabID')}
data={downloadId}
/>
}
@@ -384,7 +422,7 @@ function HistoryDetails(props) {
{
!!indexer &&
<DescriptionListItem
title="Age (when grabbed)"
title={translate('AgeWhenGrabbed')}
data={formatAge(age, ageHours, ageMinutes)}
/>
}
@@ -392,7 +430,7 @@ function HistoryDetails(props) {
{
!!publishedDate &&
<DescriptionListItem
title="Published Date"
title={translate('PublishedDate')}
data={formatDateTime(publishedDate, shortDateFormat, timeFormat, { includeSeconds: true })}
/>
}
@@ -409,14 +447,14 @@ function HistoryDetails(props) {
<DescriptionList>
<DescriptionListItem
descriptionClassName={styles.description}
title="Name"
title={translate('Name')}
data={sourceTitle}
/>
{
!!message &&
<DescriptionListItem
title="Message"
title={translate('Message')}
data={message}
/>
}
@@ -428,7 +466,7 @@ function HistoryDetails(props) {
<DescriptionList>
<DescriptionListItem
descriptionClassName={styles.description}
title="Name"
title={translate('Name')}
data={sourceTitle}
/>
</DescriptionList>
@@ -0,0 +1,7 @@
// This file is automatically generated.
// Please do not change this file!
interface CssExports {
'markAsFailedButton': string;
}
export const cssExports: CssExports;
export default cssExports;
+15 -33
View File
@@ -1,9 +1,10 @@
import PropTypes from 'prop-types';
import React, { Component } from 'react';
import Alert from 'Components/Alert';
import LoadingIndicator from 'Components/Loading/LoadingIndicator';
import FilterMenu from 'Components/Menu/FilterMenu';
import PageContent from 'Components/Page/PageContent';
import PageContentBodyConnector from 'Components/Page/PageContentBodyConnector';
import PageContentBody from 'Components/Page/PageContentBody';
import PageToolbar from 'Components/Page/Toolbar/PageToolbar';
import PageToolbarButton from 'Components/Page/Toolbar/PageToolbarButton';
import PageToolbarSection from 'Components/Page/Toolbar/PageToolbarSection';
@@ -11,33 +12,12 @@ import Table from 'Components/Table/Table';
import TableBody from 'Components/Table/TableBody';
import TableOptionsModalWrapper from 'Components/Table/TableOptions/TableOptionsModalWrapper';
import TablePager from 'Components/Table/TablePager';
import { align, icons } from 'Helpers/Props';
import hasDifferentItems from 'Utilities/Object/hasDifferentItems';
import { align, icons, kinds } from 'Helpers/Props';
import translate from 'Utilities/String/translate';
import HistoryRowConnector from './HistoryRowConnector';
class History extends Component {
//
// Lifecycle
shouldComponentUpdate(nextProps) {
// Don't update when fetching has completed if items have changed,
// before books start fetching or when books start fetching.
if (
(
this.props.isFetching &&
nextProps.isPopulated &&
hasDifferentItems(this.props.items, nextProps.items)
) ||
(!this.props.isBooksFetching && nextProps.isBooksFetching)
) {
return false;
}
return true;
}
//
// Render
@@ -66,11 +46,11 @@ class History extends Component {
const hasError = error || booksError;
return (
<PageContent title="History">
<PageContent title={translate('History')}>
<PageToolbar>
<PageToolbarSection>
<PageToolbarButton
label="Refresh"
label={translate('Refresh')}
iconName={icons.REFRESH}
isSpinning={isFetching}
onPress={onFirstPagePress}
@@ -83,7 +63,7 @@ class History extends Component {
columns={columns}
>
<PageToolbarButton
label="Options"
label={translate('Options')}
iconName={icons.TABLE}
/>
</TableOptionsModalWrapper>
@@ -98,7 +78,7 @@ class History extends Component {
</PageToolbarSection>
</PageToolbar>
<PageContentBodyConnector>
<PageContentBody>
{
isFetchingAny && !isAllPopulated &&
<LoadingIndicator />
@@ -106,7 +86,9 @@ class History extends Component {
{
!isFetchingAny && hasError &&
<div>Unable to load history</div>
<Alert kind={kinds.DANGER}>
{translate('UnableToLoadHistory')}
</Alert>
}
{
@@ -114,9 +96,9 @@ class History extends Component {
// wait for the books to populate because they are never coming.
isPopulated && !hasError && !items.length &&
<div>
No history found
</div>
<Alert kind={kinds.INFO}>
{translate('NoHistory')}
</Alert>
}
{
@@ -149,7 +131,7 @@ class History extends Component {
/>
</div>
}
</PageContentBodyConnector>
</PageContentBody>
</PageContent>
);
}
@@ -3,10 +3,7 @@ import React, { Component } from 'react';
import { connect } from 'react-redux';
import { createSelector } from 'reselect';
import withCurrentPage from 'Components/withCurrentPage';
import { clearBooks, fetchBooks } from 'Store/Actions/bookActions';
import * as historyActions from 'Store/Actions/historyActions';
import hasDifferentItems from 'Utilities/Object/hasDifferentItems';
import selectUniqueIds from 'Utilities/Object/selectUniqueIds';
import { registerPagePopulator, unregisterPagePopulator } from 'Utilities/pagePopulator';
import History from './History';
@@ -29,9 +26,7 @@ function createMapStateToProps() {
}
const mapDispatchToProps = {
...historyActions,
fetchBooks,
clearBooks
...historyActions
};
class HistoryConnector extends Component {
@@ -55,21 +50,9 @@ class HistoryConnector extends Component {
}
}
componentDidUpdate(prevProps) {
if (hasDifferentItems(prevProps.items, this.props.items)) {
const bookIds = selectUniqueIds(this.props.items, 'bookId');
if (bookIds.length) {
this.props.fetchBooks({ bookIds });
} else {
this.props.clearBooks();
}
}
}
componentWillUnmount() {
unregisterPagePopulator(this.repopulate);
this.props.clearHistory();
this.props.clearBooks();
}
//
@@ -77,38 +60,38 @@ 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 });
}
};
onTableOptionChange = (payload) => {
this.props.setHistoryTableOption(payload);
@@ -116,7 +99,7 @@ class HistoryConnector extends Component {
if (payload.pageSize) {
this.props.gotoHistoryFirstPage();
}
}
};
//
// Render
@@ -150,9 +133,7 @@ HistoryConnector.propTypes = {
setHistorySort: PropTypes.func.isRequired,
setHistoryFilter: PropTypes.func.isRequired,
setHistoryTableOption: PropTypes.func.isRequired,
clearHistory: PropTypes.func.isRequired,
fetchBooks: PropTypes.func.isRequired,
clearBooks: PropTypes.func.isRequired
clearHistory: PropTypes.func.isRequired
};
export default withCurrentPage(
@@ -0,0 +1,7 @@
// This file is automatically generated.
// Please do not change this file!
interface CssExports {
'cell': string;
}
export const cssExports: CssExports;
export default cssExports;
@@ -23,8 +23,6 @@ function getIconName(eventType) {
return icons.RETAG;
case 'bookImportIncomplete':
return icons.DOWNLOADED;
case 'downloadImported':
return icons.DOWNLOADED;
case 'downloadIgnored':
return icons.IGNORE;
default:
@@ -61,8 +59,6 @@ function getTooltip(eventType, data) {
return 'Book file tags updated';
case 'bookImportIncomplete':
return 'Files downloaded but not all could be imported';
case 'downloadImported':
return 'Download completed and successfully imported';
case 'downloadIgnored':
return 'Book Download Ignored';
default:
@@ -10,6 +10,12 @@
width: 80px;
}
.customFormatScore {
composes: cell from '~Components/Table/Cells/TableRowCell.css';
width: 55px;
}
.releaseGroup {
composes: cell from '~Components/Table/Cells/TableRowCell.css';
+11
View File
@@ -0,0 +1,11 @@
// This file is automatically generated.
// Please do not change this file!
interface CssExports {
'customFormatScore': string;
'details': string;
'downloadClient': string;
'indexer': string;
'releaseGroup': string;
}
export const cssExports: CssExports;
export default cssExports;
+53 -4
View File
@@ -1,13 +1,16 @@
import PropTypes from 'prop-types';
import React, { Component } from 'react';
import AuthorNameLink from 'Author/AuthorNameLink';
import BookFormats from 'Book/BookFormats';
import BookQuality from 'Book/BookQuality';
import BookTitleLink from 'Book/BookTitleLink';
import IconButton from 'Components/Link/IconButton';
import RelativeDateCellConnector from 'Components/Table/Cells/RelativeDateCellConnector';
import TableRowCell from 'Components/Table/Cells/TableRowCell';
import TableRow from 'Components/Table/TableRow';
import { icons } from 'Helpers/Props';
import Tooltip from 'Components/Tooltip/Tooltip';
import { icons, tooltipPositions } from 'Helpers/Props';
import formatCustomFormatScore from 'Utilities/Number/formatCustomFormatScore';
import HistoryDetailsModal from './Details/HistoryDetailsModal';
import HistoryEventTypeCell from './HistoryEventTypeCell';
import styles from './HistoryRow.css';
@@ -40,11 +43,11 @@ class HistoryRow extends Component {
onDetailsPress = () => {
this.setState({ isDetailsModalOpen: true });
}
};
onDetailsModalClose = () => {
this.setState({ isDetailsModalOpen: false });
}
};
//
// Render
@@ -54,6 +57,8 @@ class HistoryRow extends Component {
author,
book,
quality,
customFormats,
customFormatScore,
qualityCutoffNotMet,
eventType,
sourceTitle,
@@ -93,7 +98,7 @@ class HistoryRow extends Component {
);
}
if (name === 'authors.sortName') {
if (name === 'authorMetadata.sortName') {
return (
<TableRowCell key={name}>
<AuthorNameLink
@@ -127,6 +132,16 @@ class HistoryRow extends Component {
);
}
if (name === 'customFormats') {
return (
<TableRowCell key={name}>
<BookFormats
formats={customFormats}
/>
</TableRowCell>
);
}
if (name === 'date') {
return (
<RelativeDateCellConnector
@@ -158,6 +173,24 @@ class HistoryRow extends Component {
);
}
if (name === 'customFormatScore') {
return (
<TableRowCell
key={name}
className={styles.customFormatScore}
>
<Tooltip
anchor={formatCustomFormatScore(
customFormatScore,
customFormats.length
)}
tooltip={<BookFormats formats={customFormats} />}
position={tooltipPositions.BOTTOM}
/>
</TableRowCell>
);
}
if (name === 'releaseGroup') {
return (
<TableRowCell
@@ -169,6 +202,16 @@ class HistoryRow extends Component {
);
}
if (name === 'sourceTitle') {
return (
<TableRowCell
key={name}
>
{sourceTitle}
</TableRowCell>
);
}
if (name === 'details') {
return (
<TableRowCell
@@ -209,6 +252,8 @@ HistoryRow.propTypes = {
author: PropTypes.object.isRequired,
book: PropTypes.object,
quality: PropTypes.object.isRequired,
customFormats: PropTypes.arrayOf(PropTypes.object),
customFormatScore: PropTypes.number.isRequired,
qualityCutoffNotMet: PropTypes.bool.isRequired,
eventType: PropTypes.string.isRequired,
sourceTitle: PropTypes.string.isRequired,
@@ -222,4 +267,8 @@ HistoryRow.propTypes = {
onMarkAsFailedPress: PropTypes.func.isRequired
};
HistoryRow.defaultProps = {
customFormats: []
};
export default HistoryRow;
@@ -49,7 +49,7 @@ class HistoryRowConnector extends Component {
onMarkAsFailedPress = () => {
this.props.markAsFailed({ id: this.props.id });
}
};
//
// Render
@@ -1,13 +1,13 @@
.torrent {
composes: label from '~Components/Label.css';
border-color: $torrentColor;
background-color: $torrentColor;
border-color: var(--torrentColor);
background-color: var(--torrentColor);
}
.usenet {
composes: label from '~Components/Label.css';
border-color: $usenetColor;
background-color: $usenetColor;
border-color: var(--usenetColor);
background-color: var(--usenetColor);
}
+8
View File
@@ -0,0 +1,8 @@
// This file is automatically generated.
// Please do not change this file!
interface CssExports {
'torrent': string;
'usenet': string;
}
export const cssExports: CssExports;
export default cssExports;
+90 -49
View File
@@ -1,9 +1,10 @@
import _ from 'lodash';
import PropTypes from 'prop-types';
import React, { Component } from 'react';
import Alert from 'Components/Alert';
import LoadingIndicator from 'Components/Loading/LoadingIndicator';
import PageContent from 'Components/Page/PageContent';
import PageContentBodyConnector from 'Components/Page/PageContentBodyConnector';
import PageContentBody from 'Components/Page/PageContentBody';
import PageToolbar from 'Components/Page/Toolbar/PageToolbar';
import PageToolbarButton from 'Components/Page/Toolbar/PageToolbarButton';
import PageToolbarSection from 'Components/Page/Toolbar/PageToolbarSection';
@@ -12,8 +13,10 @@ import Table from 'Components/Table/Table';
import TableBody from 'Components/Table/TableBody';
import TableOptionsModalWrapper from 'Components/Table/TableOptions/TableOptionsModalWrapper';
import TablePager from 'Components/Table/TablePager';
import { align, icons } from 'Helpers/Props';
import { align, icons, kinds } from 'Helpers/Props';
import getRemovedItems from 'Utilities/Object/getRemovedItems';
import hasDifferentItems from 'Utilities/Object/hasDifferentItems';
import translate from 'Utilities/String/translate';
import getSelectedIds from 'Utilities/Table/getSelectedIds';
import removeOldSelectedState from 'Utilities/Table/removeOldSelectedState';
import selectAll from 'Utilities/Table/selectAll';
@@ -30,30 +33,21 @@ class Queue extends Component {
constructor(props, context) {
super(props, context);
this._shouldBlockRefresh = false;
this.state = {
allSelected: false,
allUnselected: false,
lastToggled: null,
selectedState: {},
isPendingSelected: false,
isConfirmRemoveModalOpen: false
isConfirmRemoveModalOpen: false,
items: props.items
};
}
shouldComponentUpdate(nextProps) {
// Don't update when fetching has completed if items have changed,
// before books start fetching or when books start fetching.
if (
this.props.isFetching &&
nextProps.isPopulated &&
hasDifferentItems(this.props.items, nextProps.items) &&
nextProps.items.some((e) => e.bookId)
) {
return false;
}
if (!this.props.isBooksFetching && nextProps.isBooksFetching) {
shouldComponentUpdate() {
if (this._shouldBlockRefresh) {
return false;
}
@@ -61,21 +55,44 @@ class Queue extends Component {
}
componentDidUpdate(prevProps) {
if (hasDifferentItems(prevProps.items, this.props.items)) {
const {
items,
isFetching,
isBooksFetching
} = this.props;
if (
(!isBooksFetching && prevProps.isBooksFetching) ||
(!isFetching && prevProps.isFetching) ||
(hasDifferentItems(prevProps.items, items) && !items.some((e) => e.bookId))
) {
this.setState((state) => {
return removeOldSelectedState(state, prevProps.items);
return {
...removeOldSelectedState(state, getRemovedItems(prevProps.items, items)),
items
};
});
return;
}
const nextState = {};
if (prevProps.items !== items) {
nextState.items = items;
}
const selectedIds = this.getSelectedIds();
const isPendingSelected = _.some(this.props.items, (item) => {
return selectedIds.indexOf(item.id) > -1 && item.status === 'delay';
});
if (isPendingSelected !== this.state.isPendingSelected) {
this.setState({ isPendingSelected });
nextState.isPendingSelected = isPendingSelected;
}
if (!_.isEmpty(nextState)) {
this.setState(nextState);
}
}
@@ -84,37 +101,45 @@ class Queue extends Component {
getSelectedIds = () => {
return getSelectedIds(this.state.selectedState);
}
};
//
// Listeners
onQueueRowModalOpenOrClose = (isOpen) => {
this._shouldBlockRefresh = isOpen;
};
onSelectAllChange = ({ value }) => {
this.setState(selectAll(this.state.selectedState, value));
}
};
onSelectedChange = ({ id, value, shiftKey = false }) => {
this.setState((state) => {
return toggleSelected(state, this.props.items, id, value, shiftKey);
});
}
};
onGrabSelectedPress = () => {
this.props.onGrabSelectedPress(this.getSelectedIds());
}
};
onRemoveSelectedPress = () => {
this.setState({ isConfirmRemoveModalOpen: true });
}
this.setState({ isConfirmRemoveModalOpen: true }, () => {
this._shouldBlockRefresh = true;
});
};
onRemoveSelectedConfirmed = (payload) => {
this._shouldBlockRefresh = false;
this.props.onRemoveSelectedPress({ ids: this.getSelectedIds(), ...payload });
this.setState({ isConfirmRemoveModalOpen: false });
}
};
onConfirmRemoveModalClose = () => {
this._shouldBlockRefresh = false;
this.setState({ isConfirmRemoveModalOpen: false });
}
};
//
// Render
@@ -124,7 +149,6 @@ class Queue extends Component {
isFetching,
isPopulated,
error,
items,
isAuthorFetching,
isAuthorPopulated,
isBooksFetching,
@@ -144,7 +168,8 @@ class Queue extends Component {
allUnselected,
selectedState,
isConfirmRemoveModalOpen,
isPendingSelected
isPendingSelected,
items
} = this.state;
const isRefreshing = isFetching || isAuthorFetching || isBooksFetching || isRefreshMonitoredDownloadsExecuting;
@@ -155,11 +180,11 @@ class Queue extends Component {
const disableSelectedActions = selectedCount === 0;
return (
<PageContent title="Queue">
<PageContent title={translate('Queue')}>
<PageToolbar>
<PageToolbarSection>
<PageToolbarButton
label="Refresh"
label={translate('Refresh')}
iconName={icons.REFRESH}
isSpinning={isRefreshing}
onPress={onRefreshPress}
@@ -168,7 +193,7 @@ class Queue extends Component {
<PageToolbarSeparator />
<PageToolbarButton
label="Grab Selected"
label={translate('GrabSelected')}
iconName={icons.DOWNLOAD}
isDisabled={disableSelectedActions || !isPendingSelected}
isSpinning={isGrabbing}
@@ -176,7 +201,7 @@ class Queue extends Component {
/>
<PageToolbarButton
label="Remove Selected"
label={translate('RemoveSelected')}
iconName={icons.REMOVE}
isDisabled={disableSelectedActions}
isSpinning={isRemoving}
@@ -193,35 +218,38 @@ class Queue extends Component {
optionsComponent={QueueOptionsConnector}
>
<PageToolbarButton
label="Options"
label={translate('Options')}
iconName={icons.TABLE}
/>
</TableOptionsModalWrapper>
</PageToolbarSection>
</PageToolbar>
<PageContentBodyConnector>
<PageContentBody>
{
isRefreshing && !isAllPopulated &&
<LoadingIndicator />
isRefreshing && !isAllPopulated ?
<LoadingIndicator /> :
null
}
{
!isRefreshing && hasError &&
<div>
Failed to load Queue
</div>
!isRefreshing && hasError ?
<Alert kind={kinds.DANGER}>
{translate('FailedToLoadQueue')}
</Alert> :
null
}
{
isPopulated && !hasError && !items.length &&
<div>
Queue is empty
</div>
isAllPopulated && !hasError && !items.length ?
<Alert kind={kinds.INFO}>
{translate('QueueIsEmpty')}
</Alert> :
null
}
{
isAllPopulated && !hasError && !!items.length &&
isAllPopulated && !hasError && !!items.length ?
<div>
<Table
columns={columns}
@@ -243,6 +271,7 @@ class Queue extends Component {
columns={columns}
{...item}
onSelectedChange={this.onSelectedChange}
onQueueRowModalOpenOrClose={this.onQueueRowModalOpenOrClose}
/>
);
})
@@ -255,9 +284,10 @@ class Queue extends Component {
isFetching={isRefreshing}
{...otherProps}
/>
</div>
</div> :
null
}
</PageContentBodyConnector>
</PageContentBody>
<RemoveQueueItemsModal
isOpen={isConfirmRemoveModalOpen}
@@ -269,6 +299,17 @@ class Queue extends Component {
return !!(item && item.authorId && item.bookId);
})
)}
allPending={isConfirmRemoveModalOpen && (
selectedIds.every((id) => {
const item = items.find((i) => i.id === id);
if (!item) {
return false;
}
return item.status === 'delay' || item.status === 'downloadClientUnavailable';
})
)}
onRemovePress={this.onRemoveSelectedConfirmed}
onModalClose={this.onConfirmRemoveModalClose}
/>
+15 -30
View File
@@ -4,12 +4,9 @@ import { connect } from 'react-redux';
import { createSelector } from 'reselect';
import * as commandNames from 'Commands/commandNames';
import withCurrentPage from 'Components/withCurrentPage';
import { clearBooks, fetchBooks } from 'Store/Actions/bookActions';
import { executeCommand } from 'Store/Actions/commandActions';
import * as queueActions from 'Store/Actions/queueActions';
import createCommandExecutingSelector from 'Store/Selectors/createCommandExecutingSelector';
import hasDifferentItems from 'Utilities/Object/hasDifferentItems';
import selectUniqueIds from 'Utilities/Object/selectUniqueIds';
import { registerPagePopulator, unregisterPagePopulator } from 'Utilities/pagePopulator';
import Queue from './Queue';
@@ -37,8 +34,6 @@ function createMapStateToProps() {
const mapDispatchToProps = {
...queueActions,
fetchBooks,
clearBooks,
executeCommand
};
@@ -51,6 +46,7 @@ class QueueConnector extends Component {
const {
useCurrentPage,
fetchQueue,
fetchQueueStatus,
gotoQueueFirstPage
} = this.props;
@@ -61,19 +57,11 @@ class QueueConnector extends Component {
} else {
gotoQueueFirstPage();
}
fetchQueueStatus();
}
componentDidUpdate(prevProps) {
if (hasDifferentItems(prevProps.items, this.props.items)) {
const bookIds = selectUniqueIds(this.props.items, 'bookId');
if (bookIds.length) {
this.props.fetchBooks({ bookIds });
} else {
this.props.clearBooks();
}
}
if (
this.props.includeUnknownAuthorItems !==
prevProps.includeUnknownAuthorItems
@@ -84,8 +72,6 @@ class QueueConnector extends Component {
componentWillUnmount() {
unregisterPagePopulator(this.repopulate);
this.props.clearQueue();
this.props.clearBooks();
}
//
@@ -93,34 +79,34 @@ class QueueConnector extends Component {
repopulate = () => {
this.props.fetchQueue();
}
};
//
// Listeners
onFirstPagePress = () => {
this.props.gotoQueueFirstPage();
}
};
onPreviousPagePress = () => {
this.props.gotoQueuePreviousPage();
}
};
onNextPagePress = () => {
this.props.gotoQueueNextPage();
}
};
onLastPagePress = () => {
this.props.gotoQueueLastPage();
}
};
onPageSelect = (page) => {
this.props.gotoQueuePage({ page });
}
};
onSortPress = (sortKey) => {
this.props.setQueueSort({ sortKey });
}
};
onTableOptionChange = (payload) => {
this.props.setQueueTableOption(payload);
@@ -128,21 +114,21 @@ class QueueConnector extends Component {
if (payload.pageSize) {
this.props.gotoQueueFirstPage();
}
}
};
onRefreshPress = () => {
this.props.executeCommand({
name: commandNames.REFRESH_MONITORED_DOWNLOADS
});
}
};
onGrabSelectedPress = (ids) => {
this.props.grabQueueItems({ ids });
}
};
onRemoveSelectedPress = (payload) => {
this.props.removeQueueItems(payload);
}
};
//
// Render
@@ -171,6 +157,7 @@ QueueConnector.propTypes = {
items: PropTypes.arrayOf(PropTypes.object).isRequired,
includeUnknownAuthorItems: PropTypes.bool.isRequired,
fetchQueue: PropTypes.func.isRequired,
fetchQueueStatus: PropTypes.func.isRequired,
gotoQueueFirstPage: PropTypes.func.isRequired,
gotoQueuePreviousPage: PropTypes.func.isRequired,
gotoQueueNextPage: PropTypes.func.isRequired,
@@ -181,8 +168,6 @@ QueueConnector.propTypes = {
clearQueue: PropTypes.func.isRequired,
grabQueueItems: PropTypes.func.isRequired,
removeQueueItems: PropTypes.func.isRequired,
fetchBooks: PropTypes.func.isRequired,
clearBooks: PropTypes.func.isRequired,
executeCommand: PropTypes.func.isRequired
};
+7 -6
View File
@@ -3,6 +3,7 @@ import PropTypes from 'prop-types';
import React from 'react';
import Icon from 'Components/Icon';
import { icons, kinds } from 'Helpers/Props';
import translate from 'Utilities/String/translate';
function QueueDetails(props) {
const {
@@ -23,7 +24,7 @@ function QueueDetails(props) {
return (
<Icon
name={icons.PENDING}
title={`Release will be processed ${moment(estimatedCompletionTime).fromNow()}`}
title={translate('ReleaseWillBeProcessedInterp', [moment(estimatedCompletionTime).fromNow()])}
/>
);
}
@@ -34,7 +35,7 @@ function QueueDetails(props) {
<Icon
name={icons.DOWNLOAD}
kind={kinds.DANGER}
title={`Import failed: ${errorMessage}`}
title={translate('ImportFailedInterp', [errorMessage])}
/>
);
}
@@ -47,7 +48,7 @@ function QueueDetails(props) {
<Icon
name={icons.DOWNLOADING}
kind={kinds.DANGER}
title={`Download failed: ${errorMessage}`}
title={translate('DownloadFailedInterp', [errorMessage])}
/>
);
}
@@ -57,7 +58,7 @@ function QueueDetails(props) {
<Icon
name={icons.DOWNLOADING}
kind={kinds.DANGER}
title="Download failed: check download client for more details"
title={translate('DownloadFailedCheckDownloadClientForMoreDetails')}
/>
);
}
@@ -67,7 +68,7 @@ function QueueDetails(props) {
<Icon
name={icons.DOWNLOADING}
kind={kinds.WARNING}
title="Download warning: check download client for more details"
title={translate('DownloadWarningCheckDownloadClientForMoreDetails')}
/>
);
}
@@ -76,7 +77,7 @@ function QueueDetails(props) {
return (
<Icon
name={icons.DOWNLOADING}
title={`Book is downloading - ${progress.toFixed(1)}% ${title}`}
title={translate('BookIsDownloadingInterp', [progress.toFixed(1), title])}
/>
);
}
+6 -3
View File
@@ -4,6 +4,7 @@ import FormGroup from 'Components/Form/FormGroup';
import FormInputGroup from 'Components/Form/FormInputGroup';
import FormLabel from 'Components/Form/FormLabel';
import { inputTypes } from 'Helpers/Props';
import translate from 'Utilities/String/translate';
class QueueOptions extends Component {
@@ -41,7 +42,7 @@ class QueueOptions extends Component {
[name]: value
});
});
}
};
//
// Render
@@ -54,13 +55,15 @@ class QueueOptions extends Component {
return (
<Fragment>
<FormGroup>
<FormLabel>Show Unknown Author Items</FormLabel>
<FormLabel>
{translate('ShowUnknownAuthorItems')}
</FormLabel>
<FormInputGroup
type={inputTypes.CHECK}
name="includeUnknownAuthorItems"
value={includeUnknownAuthorItems}
helpText="Show items without a author in the queue, this could include removed authors, movies or anything else in Readarr's category"
helpText={translate('IncludeUnknownAuthorItemsHelpText')}
onChange={this.onOptionChange}
/>
</FormGroup>
+6
View File
@@ -16,6 +16,12 @@
width: 150px;
}
.customFormatScore {
composes: cell from '~Components/Table/Cells/TableRowCell.css';
width: 55px;
}
.actions {
composes: cell from '~Components/Table/Cells/TableRowCell.css';
+11
View File
@@ -0,0 +1,11 @@
// This file is automatically generated.
// Please do not change this file!
interface CssExports {
'actions': string;
'customFormatScore': string;
'progress': string;
'protocol': string;
'quality': string;
}
export const cssExports: CssExports;
export default cssExports;
+71 -12
View File
@@ -2,6 +2,7 @@ import PropTypes from 'prop-types';
import React, { Component } from 'react';
import ProtocolLabel from 'Activity/Queue/ProtocolLabel';
import AuthorNameLink from 'Author/AuthorNameLink';
import BookFormats from 'Book/BookFormats';
import BookQuality from 'Book/BookQuality';
import BookTitleLink from 'Book/BookTitleLink';
import Icon from 'Components/Icon';
@@ -13,8 +14,12 @@ import TableRowCell from 'Components/Table/Cells/TableRowCell';
import TableSelectCell from 'Components/Table/Cells/TableSelectCell';
import TableRow from 'Components/Table/TableRow';
import Popover from 'Components/Tooltip/Popover';
import Tooltip from 'Components/Tooltip/Tooltip';
import { icons, kinds, tooltipPositions } from 'Helpers/Props';
import InteractiveImportModal from 'InteractiveImport/InteractiveImportModal';
import formatBytes from 'Utilities/Number/formatBytes';
import formatCustomFormatScore from 'Utilities/Number/formatCustomFormatScore';
import translate from 'Utilities/String/translate';
import QueueStatusCell from './QueueStatusCell';
import RemoveQueueItemModal from './RemoveQueueItemModal';
import TimeleftCell from './TimeleftCell';
@@ -39,24 +44,37 @@ class QueueRow extends Component {
onRemoveQueueItemPress = () => {
this.setState({ isRemoveQueueItemModalOpen: true });
}
};
onRemoveQueueItemModalConfirmed = (blocklist, skipRedownload) => {
const {
onRemoveQueueItemPress,
onQueueRowModalOpenOrClose
} = this.props;
onQueueRowModalOpenOrClose(false);
onRemoveQueueItemPress(blocklist, skipRedownload);
onRemoveQueueItemModalConfirmed = (blacklist, skipredownload) => {
this.props.onRemoveQueueItemPress(blacklist, skipredownload);
this.setState({ isRemoveQueueItemModalOpen: false });
}
};
onRemoveQueueItemModalClose = () => {
this.props.onQueueRowModalOpenOrClose(false);
this.setState({ isRemoveQueueItemModalOpen: false });
}
};
onInteractiveImportPress = () => {
this.props.onQueueRowModalOpenOrClose(true);
this.setState({ isInteractiveImportModalOpen: true });
}
};
onInteractiveImportModalClose = () => {
this.props.onQueueRowModalOpenOrClose(false);
this.setState({ isInteractiveImportModalOpen: false });
}
};
//
// Render
@@ -74,6 +92,8 @@ class QueueRow extends Component {
author,
book,
quality,
customFormats,
customFormatScore,
protocol,
indexer,
outputPath,
@@ -137,7 +157,7 @@ class QueueRow extends Component {
);
}
if (name === 'authors.sortName') {
if (name === 'authorMetadata.sortName') {
return (
<TableRowCell key={name}>
{
@@ -195,6 +215,34 @@ class QueueRow extends Component {
);
}
if (name === 'customFormats') {
return (
<TableRowCell key={name}>
<BookFormats
formats={customFormats}
/>
</TableRowCell>
);
}
if (name === 'customFormatScore') {
return (
<TableRowCell
key={name}
className={styles.customFormatScore}
>
<Tooltip
anchor={formatCustomFormatScore(
customFormatScore,
customFormats.length
)}
tooltip={<BookFormats formats={customFormats} />}
position={tooltipPositions.BOTTOM}
/>
</TableRowCell>
);
}
if (name === 'protocol') {
return (
<TableRowCell key={name}>
@@ -229,6 +277,12 @@ class QueueRow extends Component {
);
}
if (name === 'size') {
return (
<TableRowCell key={name}>{formatBytes(size)}</TableRowCell>
);
}
if (name === 'outputPath') {
return (
<TableRowCell key={name}>
@@ -285,7 +339,7 @@ class QueueRow extends Component {
kind={kinds.DANGER}
/>
}
title="Manual Download"
title={translate('ManualDownload')}
body="This release failed parsing checks and was manually downloaded from an interactive search. Import is likely to fail."
position={tooltipPositions.LEFT}
/>
@@ -310,7 +364,7 @@ class QueueRow extends Component {
}
<SpinnerIconButton
title="Remove from queue"
title={translate('RemoveFromQueue')}
name={icons.REMOVE}
isSpinning={isRemoving}
onPress={this.onRemoveQueueItemPress}
@@ -335,7 +389,8 @@ class QueueRow extends Component {
<RemoveQueueItemModal
isOpen={isRemoveQueueItemModalOpen}
sourceTitle={title}
canIgnore={!!(author && book)}
canIgnore={!!author}
isPending={isPending}
onRemovePress={this.onRemoveQueueItemModalConfirmed}
onModalClose={this.onRemoveQueueItemModalClose}
/>
@@ -357,6 +412,8 @@ QueueRow.propTypes = {
author: PropTypes.object,
book: PropTypes.object,
quality: PropTypes.object.isRequired,
customFormats: PropTypes.arrayOf(PropTypes.object),
customFormatScore: PropTypes.number.isRequired,
protocol: PropTypes.string.isRequired,
indexer: PropTypes.string,
outputPath: PropTypes.string,
@@ -376,10 +433,12 @@ QueueRow.propTypes = {
columns: PropTypes.arrayOf(PropTypes.object).isRequired,
onSelectedChange: PropTypes.func.isRequired,
onGrabPress: PropTypes.func.isRequired,
onRemoveQueueItemPress: PropTypes.func.isRequired
onRemoveQueueItemPress: PropTypes.func.isRequired,
onQueueRowModalOpenOrClose: PropTypes.func.isRequired
};
QueueRow.defaultProps = {
customFormats: [],
isGrabbing: false,
isRemoving: false
};
@@ -41,11 +41,11 @@ class QueueRowConnector extends Component {
onGrabPress = () => {
this.props.grabQueueItem({ id: this.props.id });
}
};
onRemoveQueueItemPress = (payload) => {
this.props.removeQueueItem({ id: this.props.id, ...payload });
}
};
//
// Render
+7
View File
@@ -0,0 +1,7 @@
// This file is automatically generated.
// Please do not change this file!
interface CssExports {
'status': string;
}
export const cssExports: CssExports;
export default cssExports;
@@ -4,6 +4,7 @@ import Icon from 'Components/Icon';
import TableRowCell from 'Components/Table/Cells/TableRowCell';
import Popover from 'Components/Tooltip/Popover';
import { icons, kinds, tooltipPositions } from 'Helpers/Props';
import translate from 'Utilities/String/translate';
import styles from './QueueStatusCell.css';
function getDetailedPopoverBody(statusMessages) {
@@ -49,11 +50,7 @@ function QueueStatusCell(props) {
// status === 'downloading'
let iconName = icons.DOWNLOADING;
let iconKind = kinds.DEFAULT;
let title = 'Downloading';
if (hasWarning) {
iconKind = kinds.WARNING;
}
let title = translate('Title');
if (status === 'paused') {
iconName = icons.PAUSED;
@@ -71,17 +68,24 @@ function QueueStatusCell(props) {
if (trackedDownloadState === 'importPending') {
title += ' - Waiting to Import';
iconKind = kinds.PURPLE;
}
if (trackedDownloadState === 'importing') {
title += ' - Importing';
iconKind = kinds.PURPLE;
}
if (trackedDownloadState === 'failedPending') {
title += ' - Waiting to Process';
iconKind = kinds.DANGER;
}
}
if (hasWarning) {
iconKind = kinds.WARNING;
}
if (status === 'delay') {
iconName = icons.PENDING;
title = 'Pending';
@@ -10,6 +10,7 @@ import ModalContent from 'Components/Modal/ModalContent';
import ModalFooter from 'Components/Modal/ModalFooter';
import ModalHeader from 'Components/Modal/ModalHeader';
import { inputTypes, kinds, sizes } from 'Helpers/Props';
import translate from 'Utilities/String/translate';
class RemoveQueueItemModal extends Component {
@@ -21,8 +22,8 @@ class RemoveQueueItemModal extends Component {
this.state = {
remove: true,
blacklist: false,
skipredownload: false
blocklist: false,
skipRedownload: false
};
}
@@ -32,37 +33,37 @@ class RemoveQueueItemModal extends Component {
resetState = function() {
this.setState({
remove: true,
blacklist: false,
skipredownload: false
blocklist: false,
skipRedownload: false
});
}
};
//
// Listeners
onRemoveChange = ({ value }) => {
this.setState({ remove: value });
}
};
onBlacklistChange = ({ value }) => {
this.setState({ blacklist: value });
}
onBlocklistChange = ({ value }) => {
this.setState({ blocklist: value });
};
onSkipReDownloadChange = ({ value }) => {
this.setState({ skipredownload: value });
}
onSkipRedownloadChange = ({ value }) => {
this.setState({ skipRedownload: value });
};
onRemoveConfirmed = () => {
const state = this.state;
this.resetState();
this.props.onRemovePress(state);
}
};
onModalClose = () => {
this.resetState();
this.props.onModalClose();
}
};
//
// Render
@@ -71,10 +72,11 @@ class RemoveQueueItemModal extends Component {
const {
isOpen,
sourceTitle,
canIgnore
canIgnore,
isPending
} = this.props;
const { remove, blacklist, skipredownload } = this.state;
const { remove, blocklist, skipRedownload } = this.state;
return (
<Modal
@@ -94,41 +96,51 @@ class RemoveQueueItemModal extends Component {
Are you sure you want to remove '{sourceTitle}' from the queue?
</div>
{
isPending ?
null :
<FormGroup>
<FormLabel>
{translate('RemoveFromDownloadClient')}
</FormLabel>
<FormInputGroup
type={inputTypes.CHECK}
name="remove"
value={remove}
helpTextWarning={translate('RemoveHelpTextWarning')}
isDisabled={!canIgnore}
onChange={this.onRemoveChange}
/>
</FormGroup>
}
<FormGroup>
<FormLabel>Remove From Download Client</FormLabel>
<FormLabel>
{translate('BlocklistRelease')}
</FormLabel>
<FormInputGroup
type={inputTypes.CHECK}
name="remove"
value={remove}
helpTextWarning="Removing will remove the download and the file(s) from the download client."
isDisabled={!canIgnore}
onChange={this.onRemoveChange}
/>
</FormGroup>
<FormGroup>
<FormLabel>Blacklist Release</FormLabel>
<FormInputGroup
type={inputTypes.CHECK}
name="blacklist"
value={blacklist}
helpText="Prevents Readarr from automatically grabbing this release again"
onChange={this.onBlacklistChange}
name="blocklist"
value={blocklist}
helpText={translate('BlocklistReleaseHelpText')}
onChange={this.onBlocklistChange}
/>
</FormGroup>
{
blacklist &&
blocklist &&
<FormGroup>
<FormLabel>Skip Redownload</FormLabel>
<FormLabel>
{translate('SkipRedownload')}
</FormLabel>
<FormInputGroup
type={inputTypes.CHECK}
name="skipredownload"
value={skipredownload}
helpText="Prevents Readarr from trying download an alternative release for this item"
onChange={this.onSkipReDownloadChange}
name="skipRedownload"
value={skipRedownload}
helpText={translate('SkipRedownloadHelpText')}
onChange={this.onSkipRedownloadChange}
/>
</FormGroup>
}
@@ -157,6 +169,7 @@ RemoveQueueItemModal.propTypes = {
isOpen: PropTypes.bool.isRequired,
sourceTitle: PropTypes.string.isRequired,
canIgnore: PropTypes.bool.isRequired,
isPending: PropTypes.bool.isRequired,
onRemovePress: PropTypes.func.isRequired,
onModalClose: PropTypes.func.isRequired
};
@@ -0,0 +1,7 @@
// This file is automatically generated.
// Please do not change this file!
interface CssExports {
'message': string;
}
export const cssExports: CssExports;
export default cssExports;
@@ -10,6 +10,7 @@ import ModalContent from 'Components/Modal/ModalContent';
import ModalFooter from 'Components/Modal/ModalFooter';
import ModalHeader from 'Components/Modal/ModalHeader';
import { inputTypes, kinds, sizes } from 'Helpers/Props';
import translate from 'Utilities/String/translate';
import styles from './RemoveQueueItemsModal.css';
class RemoveQueueItemsModal extends Component {
@@ -22,48 +23,48 @@ class RemoveQueueItemsModal extends Component {
this.state = {
remove: true,
blacklist: false,
skipredownload: false
blocklist: false,
skipRedownload: false
};
}
//
// Control
resetState = function() {
this.setState({
remove: true,
blacklist: false,
skipredownload: false
});
}
resetState = function() {
this.setState({
remove: true,
blocklist: false,
skipRedownload: false
});
};
//
// Listeners
//
// Listeners
onRemoveChange = ({ value }) => {
this.setState({ remove: value });
}
onRemoveChange = ({ value }) => {
this.setState({ remove: value });
};
onBlacklistChange = ({ value }) => {
this.setState({ blacklist: value });
}
onBlocklistChange = ({ value }) => {
this.setState({ blocklist: value });
};
onSkipReDownloadChange = ({ value }) => {
this.setState({ skipredownload: value });
}
onSkipRedownloadChange = ({ value }) => {
this.setState({ skipRedownload: value });
};
onRemoveConfirmed = () => {
const state = this.state;
this.resetState();
this.props.onRemovePress(state);
}
};
onModalClose = () => {
this.resetState();
this.props.onModalClose();
}
};
//
// Render
@@ -72,10 +73,11 @@ class RemoveQueueItemsModal extends Component {
const {
isOpen,
selectedCount,
canIgnore
canIgnore,
allPending
} = this.props;
const { remove, blacklist, skipredownload } = this.state;
const { remove, blocklist, skipRedownload } = this.state;
return (
<Modal
@@ -87,51 +89,59 @@ class RemoveQueueItemsModal extends Component {
onModalClose={this.onModalClose}
>
<ModalHeader>
Remove Selected Item{selectedCount > 1 ? 's' : ''}
{selectedCount > 1 ? translate('RemoveSelectedItems') : translate('RemoveSelectedItem')}
</ModalHeader>
<ModalBody>
<div className={styles.message}>
Are you sure you want to remove {selectedCount} item{selectedCount > 1 ? 's' : ''} from the queue?
{selectedCount > 1 ? translate('RemoveSelectedItemsQueueMessageText', selectedCount) : translate('RemoveSelectedItemQueueMessageText')}
</div>
<FormGroup>
<FormLabel>Remove From Download Client</FormLabel>
{
allPending ?
null :
<FormGroup>
<FormLabel>
{translate('RemoveFromDownloadClient')}
</FormLabel>
<FormInputGroup
type={inputTypes.CHECK}
name="remove"
value={remove}
helpTextWarning="Removing will remove the download and the file(s) from the download client."
isDisabled={!canIgnore}
onChange={this.onRemoveChange}
/>
</FormGroup>
<FormInputGroup
type={inputTypes.CHECK}
name="remove"
value={remove}
helpTextWarning={translate('RemoveHelpTextWarning')}
isDisabled={!canIgnore}
onChange={this.onRemoveChange}
/>
</FormGroup>
}
<FormGroup>
<FormLabel>
Blacklist Release{selectedCount > 1 ? 's' : ''}
{selectedCount > 1 ? translate('BlocklistReleases') : translate('BlocklistRelease')}
</FormLabel>
<FormInputGroup
type={inputTypes.CHECK}
name="blacklist"
value={blacklist}
helpText="Prevents Readarr from automatically grabbing these files again"
onChange={this.onBlacklistChange}
name="blocklist"
value={blocklist}
helpText={translate('BlocklistReleaseHelpText')}
onChange={this.onBlocklistChange}
/>
</FormGroup>
{
blacklist &&
blocklist &&
<FormGroup>
<FormLabel>Skip Redownload</FormLabel>
<FormLabel>
{translate('SkipRedownload')}
</FormLabel>
<FormInputGroup
type={inputTypes.CHECK}
name="skipredownload"
value={skipredownload}
helpText="Prevents Readarr from trying download alternative releases for the removed items"
onChange={this.onSkipReDownloadChange}
name="skipRedownload"
value={skipRedownload}
helpText={translate('SkipRedownloadHelpText')}
onChange={this.onSkipRedownloadChange}
/>
</FormGroup>
}
@@ -140,14 +150,14 @@ class RemoveQueueItemsModal extends Component {
<ModalFooter>
<Button onPress={this.onModalClose}>
Close
{translate('Close')}
</Button>
<Button
kind={kinds.DANGER}
onPress={this.onRemoveConfirmed}
>
Remove
{translate('Remove')}
</Button>
</ModalFooter>
</ModalContent>
@@ -160,6 +170,7 @@ RemoveQueueItemsModal.propTypes = {
isOpen: PropTypes.bool.isRequired,
selectedCount: PropTypes.number.isRequired,
canIgnore: PropTypes.bool.isRequired,
allPending: PropTypes.bool.isRequired,
onRemovePress: PropTypes.func.isRequired,
onModalClose: PropTypes.func.isRequired
};
+7
View File
@@ -0,0 +1,7 @@
// This file is automatically generated.
// Please do not change this file!
interface CssExports {
'timeleft': string;
}
export const cssExports: CssExports;
export default cssExports;
+6 -5
View File
@@ -5,6 +5,7 @@ import formatTime from 'Utilities/Date/formatTime';
import formatTimeSpan from 'Utilities/Date/formatTimeSpan';
import getRelativeDate from 'Utilities/Date/getRelativeDate';
import formatBytes from 'Utilities/Number/formatBytes';
import translate from 'Utilities/String/translate';
import styles from './TimeleftCell.css';
function TimeleftCell(props) {
@@ -19,35 +20,35 @@ function TimeleftCell(props) {
timeFormat
} = props;
if (status === 'Delay') {
if (status === 'delay') {
const date = getRelativeDate(estimatedCompletionTime, shortDateFormat, showRelativeDates);
const time = formatTime(estimatedCompletionTime, timeFormat, { includeMinuteZero: true });
return (
<TableRowCell
className={styles.timeleft}
title={`Delaying download until ${date} at ${time}`}
title={translate('DelayingDownloadUntilInterp', [date, time])}
>
-
</TableRowCell>
);
}
if (status === 'DownloadClientUnavailable') {
if (status === 'downloadClientUnavailable') {
const date = getRelativeDate(estimatedCompletionTime, shortDateFormat, showRelativeDates);
const time = formatTime(estimatedCompletionTime, timeFormat, { includeMinuteZero: true });
return (
<TableRowCell
className={styles.timeleft}
title={`Retrying download ${date} at ${time}`}
title={translate('RetryingDownloadInterp', [date, time])}
>
-
</TableRowCell>
);
}
if (!timeleft) {
if (!timeleft || status === 'completed' || status === 'failed') {
return (
<TableRowCell className={styles.timeleft}>
-
@@ -0,0 +1,27 @@
import React from 'react';
import DescriptionList from 'Components/DescriptionList/DescriptionList';
import DescriptionListItem from 'Components/DescriptionList/DescriptionListItem';
import translate from 'Utilities/String/translate';
function AuthorMonitorNewItemsOptionsPopoverContent() {
return (
<DescriptionList>
<DescriptionListItem
title={translate('AllBooks')}
data={translate('DataNewAllBooks')}
/>
<DescriptionListItem
title={translate('NewBooks')}
data={translate('DataNewBooks')}
/>
<DescriptionListItem
title={translate('None')}
data={translate('DataNewNone')}
/>
</DescriptionList>
);
}
export default AuthorMonitorNewItemsOptionsPopoverContent;
@@ -1,45 +1,52 @@
import React from 'react';
import Alert from 'Components/Alert';
import DescriptionList from 'Components/DescriptionList/DescriptionList';
import DescriptionListItem from 'Components/DescriptionList/DescriptionListItem';
import translate from 'Utilities/String/translate';
function AuthorMonitoringOptionsPopoverContent() {
return (
<DescriptionList>
<DescriptionListItem
title="All Books"
data="Monitor all books"
/>
<>
<Alert>
{translate('MonitoringOptionsHelpText')}
</Alert>
<DescriptionList>
<DescriptionListItem
title={translate('AllBooks')}
data={translate('DataAllBooks')}
/>
<DescriptionListItem
title="Future Books"
data="Monitor books that have not released yet"
/>
<DescriptionListItem
title={translate('FutureBooks')}
data={translate('DataFutureBooks')}
/>
<DescriptionListItem
title="Missing Books"
data="Monitor books that do not have files or have not released yet"
/>
<DescriptionListItem
title={translate('MissingBooks')}
data={translate('DataMissingBooks')}
/>
<DescriptionListItem
title="Existing Books"
data="Monitor books that have files or have not released yet"
/>
<DescriptionListItem
title={translate('ExistingBooks')}
data={translate('DataExistingBooks')}
/>
<DescriptionListItem
title="First Book"
data="Monitor the first book. All other books will be ignored"
/>
<DescriptionListItem
title={translate('FirstBook')}
data={translate('DataFirstBook')}
/>
<DescriptionListItem
title="Latest Book"
data="Monitor the latest book and future books"
/>
<DescriptionListItem
title={translate('LatestBook')}
data={translate('DataLatestBook')}
/>
<DescriptionListItem
title="None"
data="No books will be monitored"
/>
</DescriptionList>
<DescriptionListItem
title={translate('None')}
data={translate('DataNone')}
/>
</DescriptionList>
</>
);
}
+10 -6
View File
@@ -4,16 +4,19 @@ import React from 'react';
import DocumentTitle from 'react-document-title';
import { Provider } from 'react-redux';
import PageConnector from 'Components/Page/PageConnector';
import ApplyTheme from './ApplyTheme';
import AppRoutes from './AppRoutes';
function App({ store, history }) {
function App({ store, history, hasTranslationsError }) {
return (
<DocumentTitle title="Readarr">
<DocumentTitle title={window.Readarr.instanceName}>
<Provider store={store}>
<ConnectedRouter history={history}>
<PageConnector>
<AppRoutes app={App} />
</PageConnector>
<ApplyTheme>
<PageConnector hasTranslationsError={hasTranslationsError}>
<AppRoutes app={App} />
</PageConnector>
</ApplyTheme>
</ConnectedRouter>
</Provider>
</DocumentTitle>
@@ -22,7 +25,8 @@ function App({ store, history }) {
App.propTypes = {
store: PropTypes.object.isRequired,
history: PropTypes.object.isRequired
history: PropTypes.object.isRequired,
hasTranslationsError: PropTypes.bool.isRequired
};
export default App;
+29 -10
View File
@@ -1,18 +1,20 @@
import PropTypes from 'prop-types';
import React from 'react';
import { Redirect, Route } from 'react-router-dom';
import BlacklistConnector from 'Activity/Blacklist/BlacklistConnector';
import BlocklistConnector from 'Activity/Blocklist/BlocklistConnector';
import HistoryConnector from 'Activity/History/HistoryConnector';
import QueueConnector from 'Activity/Queue/QueueConnector';
import AuthorDetailsPageConnector from 'Author/Details/AuthorDetailsPageConnector';
import AuthorEditorConnector from 'Author/Editor/AuthorEditorConnector';
import AuthorIndexConnector from 'Author/Index/AuthorIndexConnector';
import BookDetailsPageConnector from 'Book/Details/BookDetailsPageConnector';
import BookIndexConnector from 'Book/Index/BookIndexConnector';
import BookshelfConnector from 'Bookshelf/BookshelfConnector';
import CalendarPageConnector from 'Calendar/CalendarPageConnector';
import NotFound from 'Components/NotFound';
import Switch from 'Components/Router/Switch';
import AddNewItemConnector from 'Search/AddNewItemConnector';
import CustomFormatSettingsConnector from 'Settings/CustomFormats/CustomFormatSettingsConnector';
import DevelopmentSettingsConnector from 'Settings/Development/DevelopmentSettingsConnector';
import DownloadClientSettingsConnector from 'Settings/DownloadClients/DownloadClientSettingsConnector';
import GeneralSettingsConnector from 'Settings/General/GeneralSettingsConnector';
import ImportListSettingsConnector from 'Settings/ImportLists/ImportListSettingsConnector';
@@ -21,7 +23,7 @@ import MediaManagementConnector from 'Settings/MediaManagement/MediaManagementCo
import MetadataSettings from 'Settings/Metadata/MetadataSettings';
import NotificationSettings from 'Settings/Notifications/NotificationSettings';
import Profiles from 'Settings/Profiles/Profiles';
import Quality from 'Settings/Quality/Quality';
import QualityConnector from 'Settings/Quality/QualityConnector';
import Settings from 'Settings/Settings';
import TagSettings from 'Settings/Tags/TagSettings';
import UISettingsConnector from 'Settings/UI/UISettingsConnector';
@@ -70,19 +72,26 @@ function AppRoutes(props) {
/>
}
<Route
path="/authors"
component={AuthorIndexConnector}
/>
<Route
path="/add/search"
component={AddNewItemConnector}
/>
<Route
path="/authoreditor"
component={AuthorEditorConnector}
exact={true}
path="/shelf"
component={BookshelfConnector}
/>
<Route
path="/bookshelf"
component={BookshelfConnector}
exact={true}
path="/books"
component={BookIndexConnector}
/>
<Route
@@ -124,8 +133,8 @@ function AppRoutes(props) {
/>
<Route
path="/activity/blacklist"
component={BlacklistConnector}
path="/activity/blocklist"
component={BlocklistConnector}
/>
{/*
@@ -164,7 +173,12 @@ function AppRoutes(props) {
<Route
path="/settings/quality"
component={Quality}
component={QualityConnector}
/>
<Route
path="/settings/customformats"
component={CustomFormatSettingsConnector}
/>
<Route
@@ -207,6 +221,11 @@ function AppRoutes(props) {
component={UISettingsConnector}
/>
<Route
path="/settings/development"
component={DevelopmentSettingsConnector}
/>
{/*
System
*/}
+9
View File
@@ -0,0 +1,9 @@
// This file is automatically generated.
// Please do not change this file!
interface CssExports {
'changes': string;
'maintenance': string;
'version': string;
}
export const cssExports: CssExports;
export default cssExports;
+46 -4
View File
@@ -8,11 +8,50 @@ import ModalFooter from 'Components/Modal/ModalFooter';
import ModalHeader from 'Components/Modal/ModalHeader';
import { kinds } from 'Helpers/Props';
import UpdateChanges from 'System/Updates/UpdateChanges';
import translate from 'Utilities/String/translate';
import styles from './AppUpdatedModalContent.css';
function mergeUpdates(items, version, prevVersion) {
let installedIndex = items.findIndex((u) => u.version === version);
let installedPreviouslyIndex = items.findIndex((u) => u.version === prevVersion);
if (installedIndex === -1) {
installedIndex = 0;
}
if (installedPreviouslyIndex === -1) {
installedPreviouslyIndex = items.length;
} else if (installedPreviouslyIndex === installedIndex && items.length) {
installedPreviouslyIndex += 1;
}
const appliedUpdates = items.slice(installedIndex, installedPreviouslyIndex);
if (!appliedUpdates.length) {
return null;
}
const appliedChanges = { new: [], fixed: [] };
appliedUpdates.forEach((u) => {
if (u.changes) {
appliedChanges.new.push(... u.changes.new);
appliedChanges.fixed.push(... u.changes.fixed);
}
});
const mergedUpdate = Object.assign({}, appliedUpdates[0], { changes: appliedChanges });
if (!appliedChanges.new.length && !appliedChanges.fixed.length) {
mergedUpdate.changes = null;
}
return mergedUpdate;
}
function AppUpdatedModalContent(props) {
const {
version,
prevVersion,
isPopulated,
error,
items,
@@ -20,7 +59,7 @@ function AppUpdatedModalContent(props) {
onModalClose
} = props;
const update = items[0];
const update = mergeUpdates(items, version, prevVersion);
return (
<ModalContent onModalClose={onModalClose}>
@@ -38,7 +77,9 @@ function AppUpdatedModalContent(props) {
<div>
{
!update.changes &&
<div className={styles.maintenance}>Maintenance release</div>
<div className={styles.maintenance}>
{translate('MaintenanceRelease')}
</div>
}
{
@@ -49,12 +90,12 @@ function AppUpdatedModalContent(props) {
</div>
<UpdateChanges
title="New"
title={translate('New')}
changes={update.changes.new}
/>
<UpdateChanges
title="Fixed"
title={translate('Fixed')}
changes={update.changes.fixed}
/>
</div>
@@ -88,6 +129,7 @@ function AppUpdatedModalContent(props) {
AppUpdatedModalContent.propTypes = {
version: PropTypes.string.isRequired,
prevVersion: PropTypes.string,
isPopulated: PropTypes.bool.isRequired,
error: PropTypes.object,
items: PropTypes.arrayOf(PropTypes.object).isRequired,
@@ -8,8 +8,9 @@ import AppUpdatedModalContent from './AppUpdatedModalContent';
function createMapStateToProps() {
return createSelector(
(state) => state.app.version,
(state) => state.app.prevVersion,
(state) => state.system.updates,
(version, updates) => {
(version, prevVersion, updates) => {
const {
isPopulated,
error,
@@ -18,6 +19,7 @@ function createMapStateToProps() {
return {
version,
prevVersion,
isPopulated,
error,
items
+49
View File
@@ -0,0 +1,49 @@
import PropTypes from 'prop-types';
import React, { Fragment, useCallback, useEffect } from 'react';
import { connect } from 'react-redux';
import { createSelector } from 'reselect';
import themes from 'Styles/Themes';
function createMapStateToProps() {
return createSelector(
(state) => state.settings.ui.item.theme || window.Readarr.theme,
(
theme
) => {
return {
theme
};
}
);
}
function ApplyTheme({ theme, children }) {
// Update the CSS Variables
const updateCSSVariables = useCallback(() => {
const arrayOfVariableKeys = Object.keys(themes[theme]);
const arrayOfVariableValues = Object.values(themes[theme]);
// Loop through each array key and set the CSS Variables
arrayOfVariableKeys.forEach((cssVariableKey, index) => {
// Based on our snippet from MDN
document.documentElement.style.setProperty(
`--${cssVariableKey}`,
arrayOfVariableValues[index]
);
});
}, [theme]);
// On Component Mount and Component Update
useEffect(() => {
updateCSSVariables(theme);
}, [updateCSSVariables, theme]);
return <Fragment>{children}</Fragment>;
}
ApplyTheme.propTypes = {
theme: PropTypes.string.isRequired,
children: PropTypes.object.isRequired
};
export default connect(createMapStateToProps)(ApplyTheme);
+7
View File
@@ -0,0 +1,7 @@
// This file is automatically generated.
// Please do not change this file!
interface CssExports {
'automatic': string;
}
export const cssExports: CssExports;
export default cssExports;
+5
View File
@@ -0,0 +1,5 @@
interface ModelBase {
id: number;
}
export default ModelBase;
+48
View File
@@ -0,0 +1,48 @@
import SortDirection from 'Helpers/Props/SortDirection';
export interface Error {
responseJSON: {
message: string;
};
}
export interface AppSectionDeleteState {
isDeleting: boolean;
deleteError: Error;
}
export interface AppSectionSaveState {
isSaving: boolean;
saveError: Error;
}
export interface PagedAppSectionState {
pageSize: number;
}
export interface AppSectionSchemaState<T> {
isSchemaFetching: boolean;
isSchemaPopulated: boolean;
schemaError: Error;
schema: {
items: T[];
};
}
export interface AppSectionItemState<T> {
isFetching: boolean;
isPopulated: boolean;
error: Error;
item: T;
}
interface AppSectionState<T> {
isFetching: boolean;
isPopulated: boolean;
error: Error;
items: T[];
sortKey: string;
sortDirection: SortDirection;
}
export default AppSectionState;
+41
View File
@@ -0,0 +1,41 @@
import SettingsAppState from './SettingsAppState';
import TagsAppState from './TagsAppState';
interface FilterBuilderPropOption {
id: string;
name: string;
}
export interface FilterBuilderProp<T> {
name: string;
label: string;
type: string;
valueType?: string;
optionsSelector?: (items: T[]) => FilterBuilderPropOption[];
}
export interface PropertyFilter {
key: string;
value: boolean | string | number | string[] | number[];
type: string;
}
export interface Filter {
key: string;
label: string;
filers: PropertyFilter[];
}
export interface CustomFilter {
id: number;
type: string;
label: string;
filers: PropertyFilter[];
}
interface AppState {
settings: SettingsAppState;
tags: TagsAppState;
}
export default AppState;
@@ -0,0 +1,40 @@
import AppSectionState, {
AppSectionDeleteState,
AppSectionSaveState,
} from 'App/State/AppSectionState';
import DownloadClient from 'typings/DownloadClient';
import ImportList from 'typings/ImportList';
import Indexer from 'typings/Indexer';
import Notification from 'typings/Notification';
import { UiSettings } from 'typings/UiSettings';
export interface DownloadClientAppState
extends AppSectionState<DownloadClient>,
AppSectionDeleteState,
AppSectionSaveState {}
export interface ImportListAppState
extends AppSectionState<ImportList>,
AppSectionDeleteState,
AppSectionSaveState {}
export interface IndexerAppState
extends AppSectionState<Indexer>,
AppSectionDeleteState,
AppSectionSaveState {}
export interface NotificationAppState
extends AppSectionState<Notification>,
AppSectionDeleteState {}
export type UiSettingsAppState = AppSectionState<UiSettings>;
interface SettingsAppState {
downloadClients: DownloadClientAppState;
importLists: ImportListAppState;
indexers: IndexerAppState;
notifications: NotificationAppState;
uiSettings: UiSettingsAppState;
}
export default SettingsAppState;
+12
View File
@@ -0,0 +1,12 @@
import ModelBase from 'App/ModelBase';
import AppSectionState, {
AppSectionDeleteState,
} from 'App/State/AppSectionState';
export interface Tag extends ModelBase {
label: string;
}
interface TagsAppState extends AppSectionState<Tag>, AppSectionDeleteState {}
export default TagsAppState;

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