quasarr 1.32.0__tar.gz → 2.1.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of quasarr might be problematic. Click here for more details.

Files changed (89) hide show
  1. {quasarr-1.32.0 → quasarr-2.1.0}/PKG-INFO +47 -24
  2. {quasarr-1.32.0 → quasarr-2.1.0}/README.md +46 -23
  3. quasarr-2.1.0/quasarr/api/__init__.py +405 -0
  4. {quasarr-1.32.0 → quasarr-2.1.0}/quasarr/api/arr/__init__.py +56 -20
  5. {quasarr-1.32.0 → quasarr-2.1.0}/quasarr/api/captcha/__init__.py +26 -1
  6. {quasarr-1.32.0 → quasarr-2.1.0}/quasarr/api/config/__init__.py +1 -1
  7. quasarr-2.1.0/quasarr/api/packages/__init__.py +435 -0
  8. {quasarr-1.32.0 → quasarr-2.1.0}/quasarr/api/sponsors_helper/__init__.py +4 -0
  9. {quasarr-1.32.0 → quasarr-2.1.0}/quasarr/downloads/__init__.py +96 -6
  10. {quasarr-1.32.0 → quasarr-2.1.0}/quasarr/downloads/linkcrypters/filecrypt.py +1 -1
  11. {quasarr-1.32.0 → quasarr-2.1.0}/quasarr/downloads/linkcrypters/hide.py +45 -6
  12. quasarr-2.1.0/quasarr/providers/auth.py +250 -0
  13. {quasarr-1.32.0 → quasarr-2.1.0}/quasarr/providers/html_templates.py +65 -10
  14. quasarr-2.1.0/quasarr/providers/obfuscated.py +121 -0
  15. {quasarr-1.32.0 → quasarr-2.1.0}/quasarr/providers/shared_state.py +24 -0
  16. {quasarr-1.32.0 → quasarr-2.1.0}/quasarr/providers/version.py +1 -1
  17. {quasarr-1.32.0 → quasarr-2.1.0}/quasarr/search/sources/al.py +1 -1
  18. {quasarr-1.32.0 → quasarr-2.1.0}/quasarr/search/sources/by.py +1 -1
  19. {quasarr-1.32.0 → quasarr-2.1.0}/quasarr/search/sources/dd.py +2 -1
  20. {quasarr-1.32.0 → quasarr-2.1.0}/quasarr/search/sources/dj.py +2 -2
  21. {quasarr-1.32.0 → quasarr-2.1.0}/quasarr/search/sources/dl.py +11 -4
  22. {quasarr-1.32.0 → quasarr-2.1.0}/quasarr/search/sources/dt.py +1 -1
  23. {quasarr-1.32.0 → quasarr-2.1.0}/quasarr/search/sources/dw.py +6 -7
  24. {quasarr-1.32.0 → quasarr-2.1.0}/quasarr/search/sources/fx.py +4 -4
  25. {quasarr-1.32.0 → quasarr-2.1.0}/quasarr/search/sources/he.py +1 -1
  26. {quasarr-1.32.0 → quasarr-2.1.0}/quasarr/search/sources/mb.py +1 -1
  27. {quasarr-1.32.0 → quasarr-2.1.0}/quasarr/search/sources/nk.py +1 -1
  28. {quasarr-1.32.0 → quasarr-2.1.0}/quasarr/search/sources/nx.py +1 -1
  29. {quasarr-1.32.0 → quasarr-2.1.0}/quasarr/search/sources/sf.py +4 -2
  30. {quasarr-1.32.0 → quasarr-2.1.0}/quasarr/search/sources/sj.py +2 -2
  31. {quasarr-1.32.0 → quasarr-2.1.0}/quasarr/search/sources/sl.py +3 -3
  32. {quasarr-1.32.0 → quasarr-2.1.0}/quasarr/search/sources/wd.py +1 -1
  33. {quasarr-1.32.0 → quasarr-2.1.0}/quasarr/search/sources/wx.py +4 -3
  34. {quasarr-1.32.0 → quasarr-2.1.0}/quasarr/storage/setup.py +12 -0
  35. {quasarr-1.32.0 → quasarr-2.1.0}/quasarr.egg-info/PKG-INFO +47 -24
  36. {quasarr-1.32.0 → quasarr-2.1.0}/quasarr.egg-info/SOURCES.txt +2 -0
  37. quasarr-1.32.0/quasarr/api/__init__.py +0 -187
  38. quasarr-1.32.0/quasarr/providers/obfuscated.py +0 -119
  39. {quasarr-1.32.0 → quasarr-2.1.0}/LICENSE +0 -0
  40. {quasarr-1.32.0 → quasarr-2.1.0}/quasarr/__init__.py +0 -0
  41. {quasarr-1.32.0 → quasarr-2.1.0}/quasarr/api/statistics/__init__.py +0 -0
  42. {quasarr-1.32.0 → quasarr-2.1.0}/quasarr/downloads/linkcrypters/__init__.py +0 -0
  43. {quasarr-1.32.0 → quasarr-2.1.0}/quasarr/downloads/linkcrypters/al.py +0 -0
  44. {quasarr-1.32.0 → quasarr-2.1.0}/quasarr/downloads/packages/__init__.py +0 -0
  45. {quasarr-1.32.0 → quasarr-2.1.0}/quasarr/downloads/sources/__init__.py +0 -0
  46. {quasarr-1.32.0 → quasarr-2.1.0}/quasarr/downloads/sources/al.py +0 -0
  47. {quasarr-1.32.0 → quasarr-2.1.0}/quasarr/downloads/sources/by.py +0 -0
  48. {quasarr-1.32.0 → quasarr-2.1.0}/quasarr/downloads/sources/dd.py +0 -0
  49. {quasarr-1.32.0 → quasarr-2.1.0}/quasarr/downloads/sources/dj.py +0 -0
  50. {quasarr-1.32.0 → quasarr-2.1.0}/quasarr/downloads/sources/dl.py +0 -0
  51. {quasarr-1.32.0 → quasarr-2.1.0}/quasarr/downloads/sources/dt.py +0 -0
  52. {quasarr-1.32.0 → quasarr-2.1.0}/quasarr/downloads/sources/dw.py +0 -0
  53. {quasarr-1.32.0 → quasarr-2.1.0}/quasarr/downloads/sources/he.py +0 -0
  54. {quasarr-1.32.0 → quasarr-2.1.0}/quasarr/downloads/sources/mb.py +0 -0
  55. {quasarr-1.32.0 → quasarr-2.1.0}/quasarr/downloads/sources/nk.py +0 -0
  56. {quasarr-1.32.0 → quasarr-2.1.0}/quasarr/downloads/sources/nx.py +0 -0
  57. {quasarr-1.32.0 → quasarr-2.1.0}/quasarr/downloads/sources/sf.py +0 -0
  58. {quasarr-1.32.0 → quasarr-2.1.0}/quasarr/downloads/sources/sj.py +0 -0
  59. {quasarr-1.32.0 → quasarr-2.1.0}/quasarr/downloads/sources/sl.py +0 -0
  60. {quasarr-1.32.0 → quasarr-2.1.0}/quasarr/downloads/sources/wd.py +0 -0
  61. {quasarr-1.32.0 → quasarr-2.1.0}/quasarr/downloads/sources/wx.py +0 -0
  62. {quasarr-1.32.0 → quasarr-2.1.0}/quasarr/providers/__init__.py +0 -0
  63. {quasarr-1.32.0 → quasarr-2.1.0}/quasarr/providers/cloudflare.py +0 -0
  64. {quasarr-1.32.0 → quasarr-2.1.0}/quasarr/providers/html_images.py +0 -0
  65. {quasarr-1.32.0 → quasarr-2.1.0}/quasarr/providers/imdb_metadata.py +0 -0
  66. {quasarr-1.32.0 → quasarr-2.1.0}/quasarr/providers/jd_cache.py +0 -0
  67. {quasarr-1.32.0 → quasarr-2.1.0}/quasarr/providers/log.py +0 -0
  68. {quasarr-1.32.0 → quasarr-2.1.0}/quasarr/providers/myjd_api.py +0 -0
  69. {quasarr-1.32.0 → quasarr-2.1.0}/quasarr/providers/notifications.py +0 -0
  70. {quasarr-1.32.0 → quasarr-2.1.0}/quasarr/providers/sessions/__init__.py +0 -0
  71. {quasarr-1.32.0 → quasarr-2.1.0}/quasarr/providers/sessions/al.py +0 -0
  72. {quasarr-1.32.0 → quasarr-2.1.0}/quasarr/providers/sessions/dd.py +0 -0
  73. {quasarr-1.32.0 → quasarr-2.1.0}/quasarr/providers/sessions/dl.py +0 -0
  74. {quasarr-1.32.0 → quasarr-2.1.0}/quasarr/providers/sessions/nx.py +0 -0
  75. {quasarr-1.32.0 → quasarr-2.1.0}/quasarr/providers/statistics.py +0 -0
  76. {quasarr-1.32.0 → quasarr-2.1.0}/quasarr/providers/utils.py +0 -0
  77. {quasarr-1.32.0 → quasarr-2.1.0}/quasarr/providers/web_server.py +0 -0
  78. {quasarr-1.32.0 → quasarr-2.1.0}/quasarr/search/__init__.py +0 -0
  79. {quasarr-1.32.0 → quasarr-2.1.0}/quasarr/search/sources/__init__.py +0 -0
  80. {quasarr-1.32.0 → quasarr-2.1.0}/quasarr/storage/__init__.py +0 -0
  81. {quasarr-1.32.0 → quasarr-2.1.0}/quasarr/storage/config.py +0 -0
  82. {quasarr-1.32.0 → quasarr-2.1.0}/quasarr/storage/sqlite_database.py +0 -0
  83. {quasarr-1.32.0 → quasarr-2.1.0}/quasarr.egg-info/dependency_links.txt +0 -0
  84. {quasarr-1.32.0 → quasarr-2.1.0}/quasarr.egg-info/entry_points.txt +0 -0
  85. {quasarr-1.32.0 → quasarr-2.1.0}/quasarr.egg-info/not-zip-safe +0 -0
  86. {quasarr-1.32.0 → quasarr-2.1.0}/quasarr.egg-info/requires.txt +0 -0
  87. {quasarr-1.32.0 → quasarr-2.1.0}/quasarr.egg-info/top_level.txt +0 -0
  88. {quasarr-1.32.0 → quasarr-2.1.0}/setup.cfg +0 -0
  89. {quasarr-1.32.0 → quasarr-2.1.0}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: quasarr
3
- Version: 1.32.0
3
+ Version: 2.1.0
4
4
  Summary: Quasarr connects JDownloader with Radarr, Sonarr and LazyLibrarian. It also decrypts links protected by CAPTCHAs.
5
5
  Home-page: https://github.com/rix1337/Quasarr
6
6
  Author: rix1337
@@ -25,7 +25,7 @@ Dynamic: license-file
25
25
  Dynamic: requires-dist
26
26
  Dynamic: summary
27
27
 
28
- #
28
+ #
29
29
 
30
30
  <img src="https://raw.githubusercontent.com/rix1337/Quasarr/main/Quasarr.png" data-canonical-src="https://raw.githubusercontent.com/rix1337/Quasarr/main/Quasarr.png" width="64" height="64" />
31
31
 
@@ -41,7 +41,8 @@ indexers. It simply does not know what NZB files are.
41
41
  Quasarr includes a solution to quickly and easily decrypt protected links.
42
42
  [Active monthly Sponsors get access to SponsorsHelper to do so automatically.](https://github.com/rix1337/Quasarr?tab=readme-ov-file#sponsorshelper)
43
43
  Alternatively, follow the link from the console output (or discord notification) to solve CAPTCHAs manually.
44
- Quasarr will confidently handle the rest. Some CAPTCHA types require [Tampermonkey](https://www.tampermonkey.net/) to be installed in your browser.
44
+ Quasarr will confidently handle the rest. Some CAPTCHA types require [Tampermonkey](https://www.tampermonkey.net/) to be
45
+ installed in your browser.
45
46
 
46
47
  # Instructions
47
48
 
@@ -56,9 +57,11 @@ Quasarr will confidently handle the rest. Some CAPTCHA types require [Tampermonk
56
57
 
57
58
  ## FlareSolverr (Optional)
58
59
 
59
- FlareSolverr is **optional** but **required for some sites** (e.g., AL) that use Cloudflare protection. You can skip FlareSolverr during setup and configure it later via the web UI.
60
+ FlareSolverr is **optional** but **required for some sites** (e.g., AL) that use Cloudflare protection. You can skip
61
+ FlareSolverr during setup and configure it later via the web UI.
60
62
 
61
63
  If using FlareSolverr, provide your URL including the version path:
64
+
62
65
  ```
63
66
  http://192.168.1.1:8191/v1
64
67
  ```
@@ -69,18 +72,26 @@ http://192.168.1.1:8191/v1
69
72
 
70
73
  ## Quasarr
71
74
 
72
- > ⚠️ Quasarr requires at least one valid hostname to start. It does not provide or endorse any specific sources, but community-maintained lists are available:
75
+ > ⚠️ Quasarr requires at least one valid hostname to start. It does not provide or endorse any specific sources, but
76
+ > community-maintained lists are available:
73
77
 
74
78
  🔗 **[https://quasarr-host.name](https://quasarr-host.name)** — community guide for finding hostnames
75
79
 
76
- 📋 Alternatively, browse community suggestions via [pastebin search](https://pastebin.com/search?q=hostnames+quasarr) (login required).
80
+ 📋 Alternatively, browse community suggestions via [pastebin search](https://pastebin.com/search?q=hostnames+quasarr) (
81
+ login required).
82
+
83
+ > Authentication is optional but strongly recommended.
84
+ >
85
+ > - 🔐 Set `USER` and `PASS` to enable form-based login (30-day session)
86
+ > - 🔑 Set `AUTH=basic` to use HTTP Basic Authentication instead
77
87
 
78
88
  ---
79
89
 
80
90
  ## JDownloader
81
91
 
82
- > ⚠️ If using Docker:
83
- > JDownloader's download path must be available to Radarr/Sonarr/LazyLibrarian with **identical internal and external path mappings**!
92
+ > ⚠️ If using Docker:
93
+ > JDownloader's download path must be available to Radarr/Sonarr/LazyLibrarian with **identical internal and external
94
+ path mappings**!
84
95
  > Matching only the external path is not sufficient.
85
96
 
86
97
  1. Start and connect JDownloader to [My JDownloader](https://my.jdownloader.org)
@@ -89,7 +100,8 @@ http://192.168.1.1:8191/v1
89
100
  <details>
90
101
  <summary>Fresh install recommended</summary>
91
102
 
92
- Consider setting up a fresh JDownloader instance. Quasarr will modify JDownloader's settings to enable Radarr/Sonarr/LazyLibrarian integration.
103
+ Consider setting up a fresh JDownloader instance. Quasarr will modify JDownloader's settings to enable
104
+ Radarr/Sonarr/LazyLibrarian integration.
93
105
 
94
106
  </details>
95
107
 
@@ -97,7 +109,8 @@ Consider setting up a fresh JDownloader instance. Quasarr will modify JDownloade
97
109
 
98
110
  ## Radarr / Sonarr
99
111
 
100
- > ⚠️ **Sonarr users:** Set all shows (including anime) to the **Standard** series type. Quasarr cannot find releases for shows set to Anime/Absolute.
112
+ > ⚠️ **Sonarr users:** Set all shows (including anime) to the **Standard** series type. Quasarr cannot find releases for
113
+ > shows set to Anime/Absolute.
101
114
 
102
115
 
103
116
  Add Quasarr as both a **Newznab Indexer** and **SABnzbd Download Client** using your Quasarr URL and API Key.
@@ -113,9 +126,11 @@ Add Quasarr as both a **Newznab Indexer** and **SABnzbd Download Client** using
113
126
  <summary>Restrict results to a specific mirror</summary>
114
127
 
115
128
  Append the mirror name to your Newznab URL:
129
+
116
130
  ```
117
131
  /api/dropbox/
118
132
  ```
133
+
119
134
  Only releases with `dropbox` in a link will be returned. If the mirror isn't available, the release will fail.
120
135
 
121
136
  </details>
@@ -131,27 +146,29 @@ Only releases with `dropbox` in a link will be returned. If the mirror isn't ava
131
146
 
132
147
  ### SABnzbd+ Downloader
133
148
 
134
- | Setting | Value |
135
- |---------|-------|
149
+ | Setting | Value |
150
+ |----------|----------------------------|
136
151
  | URL/Port | Your Quasarr host and port |
137
- | API Key | Your Quasarr API Key |
138
- | Category | `docs` |
152
+ | API Key | Your Quasarr API Key |
153
+ | Category | `docs` |
139
154
 
140
155
  ### Newznab Provider
141
156
 
142
- | Setting | Value |
143
- |---------|-------|
144
- | URL | Your Quasarr URL |
145
- | API | Your Quasarr API Key |
157
+ | Setting | Value |
158
+ |---------|----------------------|
159
+ | URL | Your Quasarr URL |
160
+ | API | Your Quasarr API Key |
146
161
 
147
162
  ### Fix Import & Processing
148
163
 
149
164
  **Importing:**
165
+
150
166
  - Enable `OpenLibrary api for book/author information`
151
167
  - Set Primary Information Source to `OpenLibrary`
152
168
  - Add to Import languages: `, Unknown` (German users: `, de, ger, de-DE`)
153
169
 
154
170
  **Processing → Folders:**
171
+
155
172
  - Add your Quasarr download path (typically `/downloads/Quasarr/`)
156
173
 
157
174
  </details>
@@ -170,7 +187,10 @@ docker run -d \
170
187
  -e 'INTERNAL_ADDRESS'='http://192.168.0.1:8080' \
171
188
  -e 'EXTERNAL_ADDRESS'='https://foo.bar/' \
172
189
  -e 'DISCORD'='https://discord.com/api/webhooks/1234567890/ABCDEFGHIJKLMN' \
173
- -e 'HOSTNAMES'='https://quasarr-host.name/ini?token=123...'
190
+ -e 'HOSTNAMES'='https://quasarr-host.name/ini?token=123...' \
191
+ -e 'USER'='admin' \
192
+ -e 'PASS'='change-me' \
193
+ -e 'AUTH'='form' \
174
194
  -e 'SILENT'='True' \
175
195
  -e 'DEBUG'='' \
176
196
  -e 'TZ'='Europe/Berlin' \
@@ -184,6 +204,8 @@ docker run -d \
184
204
  * Must be a publicly available `HTTP` or `HTTPs` link
185
205
  * Must be a raw `.ini` / text file (not HTML or JSON)
186
206
  * Must contain at least one valid Hostname per line `ab = xyz`
207
+ * `USER` / `PASS` are credentials to protect the web UI
208
+ * `AUTH` is the authentication mode (`form` or `basic`)
187
209
  * `SILENT` is optional and silences all discord notifications except for error messages from SponsorsHelper if `True`.
188
210
  * `DEBUG` is optional and enables debug logging if `True`.
189
211
  * `TZ` is optional, wrong timezone can cause HTTPS/SSL issues
@@ -226,7 +248,8 @@ Most feature requests can be satisfied by:
226
248
  - There are no hostname integrations in active development unless you see an open pull request
227
249
  [here](https://github.com/rix1337/Quasarr/pulls).
228
250
  - **Pull requests are welcome!** Especially for popular hostnames.
229
- - A short guide to set up required dev services is found in [/docker/dev-setup.md](https://github.com/rix1337/Quasarr/blob/main/docker/dev-setup.md)
251
+ - A short guide to set up required dev services is found
252
+ in [/docker/dev-setup.md](https://github.com/rix1337/Quasarr/blob/main/docker/dev-setup.md)
230
253
  - Always reach out on Discord before starting work on a new feature to prevent waste of time.
231
254
  - Please follow the existing code style and project structure.
232
255
  - Anti-bot measures must be circumvented fully by Quasarr. Thus, you will need to provide a working solution for new
@@ -248,11 +271,11 @@ Image access is limited to [active monthly GitHub sponsors](https://github.com/u
248
271
 
249
272
  1. Start your [sponsorship](https://github.com/users/rix1337/sponsorship) first.
250
273
  2. Open [GitHub Classic Token Settings](https://github.com/settings/tokens/new?type=classic)
251
- 3. Name it (e.g., `SponsorsHelper`) and choose unlimited expiration
274
+ 3. Name it (e.g., `SponsorsHelper`) and choose unlimited expiration
252
275
  4. Enable these scopes:
253
- - `read:packages`
254
- - `read:user`
255
- - `read:org`
276
+ - `read:packages`
277
+ - `read:user`
278
+ - `read:org`
256
279
  5. Click **Generate token** and copy it for the next steps
257
280
 
258
281
  ---
@@ -1,4 +1,4 @@
1
- #
1
+ #
2
2
 
3
3
  <img src="https://raw.githubusercontent.com/rix1337/Quasarr/main/Quasarr.png" data-canonical-src="https://raw.githubusercontent.com/rix1337/Quasarr/main/Quasarr.png" width="64" height="64" />
4
4
 
@@ -14,7 +14,8 @@ indexers. It simply does not know what NZB files are.
14
14
  Quasarr includes a solution to quickly and easily decrypt protected links.
15
15
  [Active monthly Sponsors get access to SponsorsHelper to do so automatically.](https://github.com/rix1337/Quasarr?tab=readme-ov-file#sponsorshelper)
16
16
  Alternatively, follow the link from the console output (or discord notification) to solve CAPTCHAs manually.
17
- Quasarr will confidently handle the rest. Some CAPTCHA types require [Tampermonkey](https://www.tampermonkey.net/) to be installed in your browser.
17
+ Quasarr will confidently handle the rest. Some CAPTCHA types require [Tampermonkey](https://www.tampermonkey.net/) to be
18
+ installed in your browser.
18
19
 
19
20
  # Instructions
20
21
 
@@ -29,9 +30,11 @@ Quasarr will confidently handle the rest. Some CAPTCHA types require [Tampermonk
29
30
 
30
31
  ## FlareSolverr (Optional)
31
32
 
32
- FlareSolverr is **optional** but **required for some sites** (e.g., AL) that use Cloudflare protection. You can skip FlareSolverr during setup and configure it later via the web UI.
33
+ FlareSolverr is **optional** but **required for some sites** (e.g., AL) that use Cloudflare protection. You can skip
34
+ FlareSolverr during setup and configure it later via the web UI.
33
35
 
34
36
  If using FlareSolverr, provide your URL including the version path:
37
+
35
38
  ```
36
39
  http://192.168.1.1:8191/v1
37
40
  ```
@@ -42,18 +45,26 @@ http://192.168.1.1:8191/v1
42
45
 
43
46
  ## Quasarr
44
47
 
45
- > ⚠️ Quasarr requires at least one valid hostname to start. It does not provide or endorse any specific sources, but community-maintained lists are available:
48
+ > ⚠️ Quasarr requires at least one valid hostname to start. It does not provide or endorse any specific sources, but
49
+ > community-maintained lists are available:
46
50
 
47
51
  🔗 **[https://quasarr-host.name](https://quasarr-host.name)** — community guide for finding hostnames
48
52
 
49
- 📋 Alternatively, browse community suggestions via [pastebin search](https://pastebin.com/search?q=hostnames+quasarr) (login required).
53
+ 📋 Alternatively, browse community suggestions via [pastebin search](https://pastebin.com/search?q=hostnames+quasarr) (
54
+ login required).
55
+
56
+ > Authentication is optional but strongly recommended.
57
+ >
58
+ > - 🔐 Set `USER` and `PASS` to enable form-based login (30-day session)
59
+ > - 🔑 Set `AUTH=basic` to use HTTP Basic Authentication instead
50
60
 
51
61
  ---
52
62
 
53
63
  ## JDownloader
54
64
 
55
- > ⚠️ If using Docker:
56
- > JDownloader's download path must be available to Radarr/Sonarr/LazyLibrarian with **identical internal and external path mappings**!
65
+ > ⚠️ If using Docker:
66
+ > JDownloader's download path must be available to Radarr/Sonarr/LazyLibrarian with **identical internal and external
67
+ path mappings**!
57
68
  > Matching only the external path is not sufficient.
58
69
 
59
70
  1. Start and connect JDownloader to [My JDownloader](https://my.jdownloader.org)
@@ -62,7 +73,8 @@ http://192.168.1.1:8191/v1
62
73
  <details>
63
74
  <summary>Fresh install recommended</summary>
64
75
 
65
- Consider setting up a fresh JDownloader instance. Quasarr will modify JDownloader's settings to enable Radarr/Sonarr/LazyLibrarian integration.
76
+ Consider setting up a fresh JDownloader instance. Quasarr will modify JDownloader's settings to enable
77
+ Radarr/Sonarr/LazyLibrarian integration.
66
78
 
67
79
  </details>
68
80
 
@@ -70,7 +82,8 @@ Consider setting up a fresh JDownloader instance. Quasarr will modify JDownloade
70
82
 
71
83
  ## Radarr / Sonarr
72
84
 
73
- > ⚠️ **Sonarr users:** Set all shows (including anime) to the **Standard** series type. Quasarr cannot find releases for shows set to Anime/Absolute.
85
+ > ⚠️ **Sonarr users:** Set all shows (including anime) to the **Standard** series type. Quasarr cannot find releases for
86
+ > shows set to Anime/Absolute.
74
87
 
75
88
 
76
89
  Add Quasarr as both a **Newznab Indexer** and **SABnzbd Download Client** using your Quasarr URL and API Key.
@@ -86,9 +99,11 @@ Add Quasarr as both a **Newznab Indexer** and **SABnzbd Download Client** using
86
99
  <summary>Restrict results to a specific mirror</summary>
87
100
 
88
101
  Append the mirror name to your Newznab URL:
102
+
89
103
  ```
90
104
  /api/dropbox/
91
105
  ```
106
+
92
107
  Only releases with `dropbox` in a link will be returned. If the mirror isn't available, the release will fail.
93
108
 
94
109
  </details>
@@ -104,27 +119,29 @@ Only releases with `dropbox` in a link will be returned. If the mirror isn't ava
104
119
 
105
120
  ### SABnzbd+ Downloader
106
121
 
107
- | Setting | Value |
108
- |---------|-------|
122
+ | Setting | Value |
123
+ |----------|----------------------------|
109
124
  | URL/Port | Your Quasarr host and port |
110
- | API Key | Your Quasarr API Key |
111
- | Category | `docs` |
125
+ | API Key | Your Quasarr API Key |
126
+ | Category | `docs` |
112
127
 
113
128
  ### Newznab Provider
114
129
 
115
- | Setting | Value |
116
- |---------|-------|
117
- | URL | Your Quasarr URL |
118
- | API | Your Quasarr API Key |
130
+ | Setting | Value |
131
+ |---------|----------------------|
132
+ | URL | Your Quasarr URL |
133
+ | API | Your Quasarr API Key |
119
134
 
120
135
  ### Fix Import & Processing
121
136
 
122
137
  **Importing:**
138
+
123
139
  - Enable `OpenLibrary api for book/author information`
124
140
  - Set Primary Information Source to `OpenLibrary`
125
141
  - Add to Import languages: `, Unknown` (German users: `, de, ger, de-DE`)
126
142
 
127
143
  **Processing → Folders:**
144
+
128
145
  - Add your Quasarr download path (typically `/downloads/Quasarr/`)
129
146
 
130
147
  </details>
@@ -143,7 +160,10 @@ docker run -d \
143
160
  -e 'INTERNAL_ADDRESS'='http://192.168.0.1:8080' \
144
161
  -e 'EXTERNAL_ADDRESS'='https://foo.bar/' \
145
162
  -e 'DISCORD'='https://discord.com/api/webhooks/1234567890/ABCDEFGHIJKLMN' \
146
- -e 'HOSTNAMES'='https://quasarr-host.name/ini?token=123...'
163
+ -e 'HOSTNAMES'='https://quasarr-host.name/ini?token=123...' \
164
+ -e 'USER'='admin' \
165
+ -e 'PASS'='change-me' \
166
+ -e 'AUTH'='form' \
147
167
  -e 'SILENT'='True' \
148
168
  -e 'DEBUG'='' \
149
169
  -e 'TZ'='Europe/Berlin' \
@@ -157,6 +177,8 @@ docker run -d \
157
177
  * Must be a publicly available `HTTP` or `HTTPs` link
158
178
  * Must be a raw `.ini` / text file (not HTML or JSON)
159
179
  * Must contain at least one valid Hostname per line `ab = xyz`
180
+ * `USER` / `PASS` are credentials to protect the web UI
181
+ * `AUTH` is the authentication mode (`form` or `basic`)
160
182
  * `SILENT` is optional and silences all discord notifications except for error messages from SponsorsHelper if `True`.
161
183
  * `DEBUG` is optional and enables debug logging if `True`.
162
184
  * `TZ` is optional, wrong timezone can cause HTTPS/SSL issues
@@ -199,7 +221,8 @@ Most feature requests can be satisfied by:
199
221
  - There are no hostname integrations in active development unless you see an open pull request
200
222
  [here](https://github.com/rix1337/Quasarr/pulls).
201
223
  - **Pull requests are welcome!** Especially for popular hostnames.
202
- - A short guide to set up required dev services is found in [/docker/dev-setup.md](https://github.com/rix1337/Quasarr/blob/main/docker/dev-setup.md)
224
+ - A short guide to set up required dev services is found
225
+ in [/docker/dev-setup.md](https://github.com/rix1337/Quasarr/blob/main/docker/dev-setup.md)
203
226
  - Always reach out on Discord before starting work on a new feature to prevent waste of time.
204
227
  - Please follow the existing code style and project structure.
205
228
  - Anti-bot measures must be circumvented fully by Quasarr. Thus, you will need to provide a working solution for new
@@ -221,11 +244,11 @@ Image access is limited to [active monthly GitHub sponsors](https://github.com/u
221
244
 
222
245
  1. Start your [sponsorship](https://github.com/users/rix1337/sponsorship) first.
223
246
  2. Open [GitHub Classic Token Settings](https://github.com/settings/tokens/new?type=classic)
224
- 3. Name it (e.g., `SponsorsHelper`) and choose unlimited expiration
247
+ 3. Name it (e.g., `SponsorsHelper`) and choose unlimited expiration
225
248
  4. Enable these scopes:
226
- - `read:packages`
227
- - `read:user`
228
- - `read:org`
249
+ - `read:packages`
250
+ - `read:user`
251
+ - `read:org`
229
252
  5. Click **Generate token** and copy it for the next steps
230
253
 
231
254
  ---