quasarr 1.26.7__py3-none-any.whl → 1.27.0__py3-none-any.whl
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.
- quasarr/__init__.py +23 -152
- quasarr/api/config/__init__.py +115 -3
- quasarr/providers/sessions/al.py +21 -0
- quasarr/providers/sessions/dd.py +8 -1
- quasarr/providers/sessions/dl.py +34 -23
- quasarr/providers/sessions/nx.py +8 -1
- quasarr/providers/utils.py +168 -0
- quasarr/providers/version.py +1 -1
- quasarr/storage/config.py +3 -0
- quasarr/storage/setup.py +456 -15
- {quasarr-1.26.7.dist-info → quasarr-1.27.0.dist-info}/METADATA +79 -93
- {quasarr-1.26.7.dist-info → quasarr-1.27.0.dist-info}/RECORD +16 -15
- {quasarr-1.26.7.dist-info → quasarr-1.27.0.dist-info}/WHEEL +0 -0
- {quasarr-1.26.7.dist-info → quasarr-1.27.0.dist-info}/entry_points.txt +0 -0
- {quasarr-1.26.7.dist-info → quasarr-1.27.0.dist-info}/licenses/LICENSE +0 -0
- {quasarr-1.26.7.dist-info → quasarr-1.27.0.dist-info}/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: quasarr
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.27.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
|
|
@@ -44,97 +44,115 @@ Alternatively, follow the link from the console output (or discord notification)
|
|
|
44
44
|
Quasarr will confidently handle the rest. Some CAPTCHA types require [Tampermonkey](https://www.tampermonkey.net/) to be installed in your browser.
|
|
45
45
|
|
|
46
46
|
# Instructions
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
47
|
+
|
|
48
|
+
1. Set up and run [FlareSolverr 3](https://github.com/FlareSolverr/FlareSolverr)
|
|
49
|
+
2. Set up and run [JDownloader 2](https://jdownloader.org/download/index)
|
|
50
|
+
3. Configure the integrations below
|
|
51
|
+
|
|
52
|
+
> **Finding your Quasarr URL and API Key**
|
|
53
|
+
> Both values are shown in the console output under **API Information**, or in the Quasarr web UI.
|
|
50
54
|
|
|
51
55
|
---
|
|
52
56
|
|
|
53
57
|
## FlareSolverr
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
58
|
+
|
|
59
|
+
Provide your FlareSolverr URL during setup. Include the version path:
|
|
60
|
+
```
|
|
61
|
+
http://192.168.1.1:8191/v1
|
|
62
|
+
```
|
|
57
63
|
|
|
58
64
|
---
|
|
59
65
|
|
|
60
66
|
## Quasarr
|
|
61
67
|
|
|
62
|
-
|
|
68
|
+
> ⚠️ Quasarr requires at least one valid hostname to start. It does not provide or endorse any specific sources, but community-maintained lists are available:
|
|
69
|
+
|
|
70
|
+
🔗 **[quasarr-hostnames.pages.dev](https://quasarr-hostnames.pages.dev)** — third-party guide for finding hostnames
|
|
63
71
|
|
|
64
|
-
|
|
65
|
-
> - The setup will guide you through the process of providing valid hostnames for Quasarr to scrape.
|
|
66
|
-
> - Do **not** ask for help here if you do not know which hostnames to use. Picking them is solely your responsibility.
|
|
67
|
-
> - You may check sites like [Pastebin](https://pastebin.com/search?q=hostnames+quasarr) for user‑submitted suggestions.
|
|
72
|
+
📋 Alternatively, browse community suggestions via [pastebin search](https://pastebin.com/search?q=hostnames+quasarr) (login required).
|
|
68
73
|
|
|
69
74
|
---
|
|
70
75
|
|
|
71
76
|
## JDownloader
|
|
72
77
|
|
|
73
|
-
|
|
74
|
-
|
|
78
|
+
> ⚠️ If using Docker:
|
|
79
|
+
> JDownloader's download path must be available to Radarr/Sonarr/LazyLibrarian with **identical internal and external path mappings**!
|
|
80
|
+
> Matching only the external path is not sufficient.
|
|
75
81
|
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
>
|
|
82
|
+
1. Start and connect JDownloader to [My JDownloader](https://my.jdownloader.org)
|
|
83
|
+
2. Provide your My JDownloader credentials during Quasarr setup
|
|
84
|
+
|
|
85
|
+
<details>
|
|
86
|
+
<summary>Fresh install recommended</summary>
|
|
87
|
+
|
|
88
|
+
Consider setting up a fresh JDownloader instance. Quasarr will modify JDownloader's settings to enable Radarr/Sonarr/LazyLibrarian integration.
|
|
89
|
+
|
|
90
|
+
</details>
|
|
80
91
|
|
|
81
92
|
---
|
|
82
93
|
|
|
83
94
|
## Radarr / Sonarr
|
|
84
95
|
|
|
85
|
-
Set
|
|
96
|
+
> ⚠️ **Sonarr users:** Set all shows (including anime) to the **Standard** series type. Quasarr cannot find releases for shows set to Anime/Absolute.
|
|
97
|
+
|
|
98
|
+
|
|
99
|
+
Add Quasarr as both a **Newznab Indexer** and **SABnzbd Download Client** using your Quasarr URL and API Key.
|
|
100
|
+
|
|
101
|
+
<details>
|
|
102
|
+
<summary>Show download status in Radarr/Sonarr</summary>
|
|
86
103
|
|
|
87
|
-
|
|
88
|
-
2. **API Key**: Use the `API Key` from the **API Information** section of the console output (or copy it from the Quasarr web UI).
|
|
89
|
-
3. Leave all other settings at their defaults.
|
|
104
|
+
**Activity → Queue → Options** → Enable `Release Title`
|
|
90
105
|
|
|
91
|
-
>
|
|
92
|
-
|
|
93
|
-
>
|
|
106
|
+
</details>
|
|
107
|
+
|
|
108
|
+
<details>
|
|
109
|
+
<summary>Restrict results to a specific mirror</summary>
|
|
110
|
+
|
|
111
|
+
Append the mirror name to your Newznab URL:
|
|
112
|
+
```
|
|
113
|
+
/api/dropbox/
|
|
114
|
+
```
|
|
115
|
+
Only releases with `dropbox` in a link will be returned. If the mirror isn't available, the release will fail.
|
|
116
|
+
|
|
117
|
+
</details>
|
|
94
118
|
|
|
95
119
|
---
|
|
96
120
|
|
|
97
121
|
## LazyLibrarian
|
|
98
122
|
|
|
99
|
-
> **
|
|
100
|
-
> - This feature is experimental and may not work as expected.
|
|
101
|
-
> - Quasarr cannot help you with metadata issues, missing covers, or other LazyLibrarian problems.
|
|
102
|
-
> - Please report issues when one of your hostnames yields results through their website, but not in LazyLibrarian.
|
|
103
|
-
|
|
104
|
-
Set up Quasarr as a **SABnzbd+ Downloader**
|
|
123
|
+
> ⚠️ **Experimental feature** — Report issues when a hostname returns results on its website but not in LazyLibrarian.
|
|
105
124
|
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
3. **SABnzbd Category**: Use `docs` to ensure LazyLibrarian does not interfere with Radarr/Sonarr.
|
|
109
|
-
4. Press `Test SABnzbd` to verify the connection, then `Save changes`.
|
|
125
|
+
<details>
|
|
126
|
+
<summary>Setup instructions</summary>
|
|
110
127
|
|
|
111
|
-
|
|
112
|
-
1. **Newznab URL**: Use the `URL` from the **API Information** section of the console output (or copy it from the Quasarr web UI).
|
|
113
|
-
2. **Newznab API** Use the `API Key` from the **API Information** section of the console output (or copy it from the Quasarr web UI).
|
|
114
|
-
3. Press `Test` to verify the connection, then `Save changes`.
|
|
128
|
+
### SABnzbd+ Downloader
|
|
115
129
|
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
130
|
+
| Setting | Value |
|
|
131
|
+
|---------|-------|
|
|
132
|
+
| URL/Port | Your Quasarr host and port |
|
|
133
|
+
| API Key | Your Quasarr API Key |
|
|
134
|
+
| Category | `docs` |
|
|
120
135
|
|
|
121
|
-
|
|
122
|
-
1. Under `Folders` add the full Quasarr download path, typically `/downloads/Quasarr/`
|
|
123
|
-
2. If you do not do this, processing after the download will fail.
|
|
136
|
+
### Newznab Provider
|
|
124
137
|
|
|
138
|
+
| Setting | Value |
|
|
139
|
+
|---------|-------|
|
|
140
|
+
| URL | Your Quasarr URL |
|
|
141
|
+
| API | Your Quasarr API Key |
|
|
125
142
|
|
|
143
|
+
### Fix Import & Processing
|
|
126
144
|
|
|
127
|
-
|
|
145
|
+
**Importing:**
|
|
146
|
+
- Enable `OpenLibrary api for book/author information`
|
|
147
|
+
- Set Primary Information Source to `OpenLibrary`
|
|
148
|
+
- Add to Import languages: `, Unknown` (German users: `, de, ger, de-DE`)
|
|
128
149
|
|
|
129
|
-
|
|
150
|
+
**Processing → Folders:**
|
|
151
|
+
- Add your Quasarr download path (typically `/downloads/Quasarr/`)
|
|
130
152
|
|
|
131
|
-
|
|
132
|
-
> **Example:** Appending `/api/dropbox/` will only return releases where `dropbox` is explicitly mentioned in a link.
|
|
133
|
-
> **Caution:** If a mirror is not available at a hostname, the release will be ignored or the download will fail. Use this option carefully.
|
|
153
|
+
</details>
|
|
134
154
|
|
|
135
|
-
|
|
136
|
-
1. Open `Activity` → `Queue` → `Options`
|
|
137
|
-
2. Enable `Release Title`
|
|
155
|
+
---
|
|
138
156
|
|
|
139
157
|
# Docker
|
|
140
158
|
|
|
@@ -173,8 +191,6 @@ Use this only in case you can't run the docker image.
|
|
|
173
191
|
`pip install quasarr`
|
|
174
192
|
|
|
175
193
|
* Requires Python 3.12 or later
|
|
176
|
-
* Requires [FlareSolverr](https://github.com/FlareSolverr/FlareSolverr)
|
|
177
|
-
* Requires [JDownloader 2](https://jdownloader.org/download/index) with [My JDownloader](https://my.jdownloader.org/)
|
|
178
194
|
|
|
179
195
|
```
|
|
180
196
|
--port=8080
|
|
@@ -205,10 +221,11 @@ Most feature requests can be satisfied by:
|
|
|
205
221
|
- Still having an issue? Provide a detailed report [here](https://github.com/rix1337/Quasarr/issues/new/choose)!
|
|
206
222
|
- There are no hostname integrations in active development unless you see an open pull request
|
|
207
223
|
[here](https://github.com/rix1337/Quasarr/pulls).
|
|
208
|
-
- Pull requests are welcome
|
|
224
|
+
- **Pull requests are welcome!** Especially for popular hostnames.
|
|
225
|
+
- 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)
|
|
209
226
|
- Always reach out on Discord before starting work on a new feature to prevent waste of time.
|
|
210
227
|
- Please follow the existing code style and project structure.
|
|
211
|
-
- Anti-bot measures must be circumvented fully by Quasarr. Thus you will need to provide a working solution for new
|
|
228
|
+
- Anti-bot measures must be circumvented fully by Quasarr. Thus, you will need to provide a working solution for new
|
|
212
229
|
CAPTCHA types by integrating it in the Quasarr Web UI.
|
|
213
230
|
- Please provide proof of functionality (screenshots/examples) when submitting your pull request.
|
|
214
231
|
|
|
@@ -238,6 +255,8 @@ Image access is limited to [active monthly GitHub sponsors](https://github.com/u
|
|
|
238
255
|
|
|
239
256
|
## 🐋 Docker Login
|
|
240
257
|
|
|
258
|
+
⚠️ **Before logging in, the image will not download.**
|
|
259
|
+
|
|
241
260
|
```bash
|
|
242
261
|
echo "GITHUB_TOKEN" | docker login ghcr.io -u USERNAME --password-stdin
|
|
243
262
|
````
|
|
@@ -245,14 +264,10 @@ echo "GITHUB_TOKEN" | docker login ghcr.io -u USERNAME --password-stdin
|
|
|
245
264
|
* `USERNAME` → your GitHub username
|
|
246
265
|
* `GITHUB_TOKEN` → the token you just created
|
|
247
266
|
|
|
248
|
-
---
|
|
249
|
-
|
|
250
|
-
⚠️ **Before logging in, the image will not download.**
|
|
251
|
-
|
|
252
|
-
---
|
|
253
|
-
|
|
254
267
|
## ▶️ Run SponsorsHelper
|
|
255
268
|
|
|
269
|
+
⚠️ **Without a valid GitHub token linked to an active sponsorship, the image will not run.**
|
|
270
|
+
|
|
256
271
|
```bash
|
|
257
272
|
docker run -d \
|
|
258
273
|
--name='SponsorsHelper' \
|
|
@@ -268,8 +283,6 @@ docker run -d \
|
|
|
268
283
|
ghcr.io/rix1337-sponsors/docker/helper:latest
|
|
269
284
|
```
|
|
270
285
|
|
|
271
|
-
### Required Parameters
|
|
272
|
-
|
|
273
286
|
* `QUASARR_URL` → Local URL of Quasarr
|
|
274
287
|
* `DEATHBYCAPTCHA_TOKEN` → [DeathByCaptcha](https://deathbycaptcha.com/register?refid=6184288242b) account token
|
|
275
288
|
* `GITHUB_TOKEN` → Classic GitHub PAT with the scopes listed above
|
|
@@ -277,30 +290,3 @@ docker run -d \
|
|
|
277
290
|
* `NX_USER` / `NX_PASS` → NX account credentials
|
|
278
291
|
* `JUNKIES_USER` / `JUNKIES_PASS` → Junkies account credentials
|
|
279
292
|
* `JUNKIES_HOSTER` → Preferred hoster for Junkies links
|
|
280
|
-
---
|
|
281
|
-
|
|
282
|
-
⚠️ **Without a valid GitHub token linked to an active sponsorship, the image will not run.**
|
|
283
|
-
|
|
284
|
-
---
|
|
285
|
-
|
|
286
|
-
# Development Setup for Pull Requests
|
|
287
|
-
|
|
288
|
-
To test your changes before submitting a pull request:
|
|
289
|
-
|
|
290
|
-
**Run Quasarr with the `--internal_address` parameter:**
|
|
291
|
-
|
|
292
|
-
```bash
|
|
293
|
-
python Quasarr.py --internal_address=http://<host-ip>:<port>
|
|
294
|
-
```
|
|
295
|
-
|
|
296
|
-
Replace `<host-ip>` and `<port>` with the scheme, IP, and port of your host machine.
|
|
297
|
-
The `--internal_address` parameter is **mandatory**.
|
|
298
|
-
|
|
299
|
-
**Start the required services using the `dev-services-compose.yml` file:**
|
|
300
|
-
|
|
301
|
-
```bash
|
|
302
|
-
CONFIG_VOLUMES=/path/to/config docker-compose -f docker/dev-services-compose.yml up
|
|
303
|
-
```
|
|
304
|
-
|
|
305
|
-
Replace `/path/to/config` with your desired configuration location.
|
|
306
|
-
The `CONFIG_VOLUMES` environment variable is **mandatory**.
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
quasarr/__init__.py,sha256=
|
|
1
|
+
quasarr/__init__.py,sha256=6-6FpRbLyr_DXpNTlXkzQAPnDxboMkHKvkhlmyP632Q,13593
|
|
2
2
|
quasarr/api/__init__.py,sha256=9Y_DTNYsHeimrXL3mAli8OUg0zqo7QGLF2ft40d3R-c,6822
|
|
3
3
|
quasarr/api/arr/__init__.py,sha256=6CFASudVLlqKVNhTnS72Np2T3uAMsJXE-8u0986WW9c,17460
|
|
4
4
|
quasarr/api/captcha/__init__.py,sha256=IhJVn9iWtb01P2yfoqtOF7wSsiXizES7HNn29BX1uHk,60268
|
|
5
|
-
quasarr/api/config/__init__.py,sha256=
|
|
5
|
+
quasarr/api/config/__init__.py,sha256=hUPDhGDyLe3DhzEl6mK5iBf8FDRu-9bNSjEnECsNXkY,5163
|
|
6
6
|
quasarr/api/sponsors_helper/__init__.py,sha256=kAZabPlplPYRG6Uw7ZHTk5uypualwvhs-NoTOjQhhhA,6369
|
|
7
7
|
quasarr/api/statistics/__init__.py,sha256=NrBAjjHkIUE95HhPUGIfNqh2IqBqJ_zm00S90Y-Qnus,7038
|
|
8
8
|
quasarr/downloads/__init__.py,sha256=bpNg6LNqoqpnA-U7uVDhq9jM6VYB2bkekCw1XxZRpWM,11613
|
|
@@ -39,13 +39,14 @@ quasarr/providers/notifications.py,sha256=bohT-6yudmFnmZMc3BwCGX0n1HdzSVgQG_LDZm
|
|
|
39
39
|
quasarr/providers/obfuscated.py,sha256=xPI3WrteOiZN5BgNDp0CURcYfkRrdnRCz_cT7BpzIJU,1363310
|
|
40
40
|
quasarr/providers/shared_state.py,sha256=-TIiH2lkCfovq7bzUZicpUjXEjS87ZHCcevsFgySOqw,29944
|
|
41
41
|
quasarr/providers/statistics.py,sha256=cEQixYnDMDqtm5wWe40E_2ucyo4mD0n3SrfelhQi1L8,6452
|
|
42
|
-
quasarr/providers/
|
|
42
|
+
quasarr/providers/utils.py,sha256=CEBsrtuasrQ8-l535Va4S_7gT9N47qjjgOKYGJX0TE0,5095
|
|
43
|
+
quasarr/providers/version.py,sha256=pwciXHt2xf8Tbxgm6j1ZZ_-zwPJuduxnv-hGwn0wbjM,4004
|
|
43
44
|
quasarr/providers/web_server.py,sha256=AYd0KRxdDWMBr87BP8wlSMuL4zZo0I_rY-vHBai6Pfg,1688
|
|
44
45
|
quasarr/providers/sessions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
45
|
-
quasarr/providers/sessions/al.py,sha256=
|
|
46
|
-
quasarr/providers/sessions/dd.py,sha256=
|
|
47
|
-
quasarr/providers/sessions/dl.py,sha256=
|
|
48
|
-
quasarr/providers/sessions/nx.py,sha256=
|
|
46
|
+
quasarr/providers/sessions/al.py,sha256=ARNgWAhTKQhAz0mF8kB2OsT8bGcC-mmYF-Wd22to-wA,11346
|
|
47
|
+
quasarr/providers/sessions/dd.py,sha256=I9tQCdxmhtbdmRUhKlkM1ZJjja1N1bdRSEZdfbSRWkc,2832
|
|
48
|
+
quasarr/providers/sessions/dl.py,sha256=6tch4QzkdwbU6XoNQE22T5nz5eoKlBVGa0eyjXJHPyA,5574
|
|
49
|
+
quasarr/providers/sessions/nx.py,sha256=vZDVnu4sKizx1wyKmrTr8itGURSEIVOtzMI5efjF6Oo,2924
|
|
49
50
|
quasarr/search/__init__.py,sha256=V59LIiC75mQvasDdTjiWZRbPD1jXO1lhXlKeNVX0iOc,5726
|
|
50
51
|
quasarr/search/sources/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
51
52
|
quasarr/search/sources/al.py,sha256=yr6wx-VcSOFYK_o3N1bepC4t6Gvt9eDvcG9fQBFg0bg,17203
|
|
@@ -66,12 +67,12 @@ quasarr/search/sources/sl.py,sha256=5e5S7JvdbNOc2EthyOkfC4aTpG8O7fn4WS2O3_EXjnM,
|
|
|
66
67
|
quasarr/search/sources/wd.py,sha256=O02j3irSlVw2qES82g_qHuavAk-njjSRH1dHSCnOUas,7540
|
|
67
68
|
quasarr/search/sources/wx.py,sha256=_h1M6GhkJzixwHscrt0lMOnPSEDP1Xl24OypEe8Jy7c,12906
|
|
68
69
|
quasarr/storage/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
69
|
-
quasarr/storage/config.py,sha256=
|
|
70
|
-
quasarr/storage/setup.py,sha256=
|
|
70
|
+
quasarr/storage/config.py,sha256=SSTgIce2FVYoVTK_6OCU3msknhxuLA3EC4Kcrrf_dxQ,6378
|
|
71
|
+
quasarr/storage/setup.py,sha256=YpF11NchXSMRfI7S0yzg-LqlmUhlWMgjZCFyGYDwS5M,38151
|
|
71
72
|
quasarr/storage/sqlite_database.py,sha256=yMqFQfKf0k7YS-6Z3_7pj4z1GwWSXJ8uvF4IydXsuTE,3554
|
|
72
|
-
quasarr-1.
|
|
73
|
-
quasarr-1.
|
|
74
|
-
quasarr-1.
|
|
75
|
-
quasarr-1.
|
|
76
|
-
quasarr-1.
|
|
77
|
-
quasarr-1.
|
|
73
|
+
quasarr-1.27.0.dist-info/licenses/LICENSE,sha256=QQFCAfDgt7lSA8oSWDHIZ9aTjFbZaBJdjnGOHkuhK7k,1060
|
|
74
|
+
quasarr-1.27.0.dist-info/METADATA,sha256=D3_jpkN9ALKqlaZM-X524wBJyJyND7m9RdDlxB3Cqdg,10679
|
|
75
|
+
quasarr-1.27.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
76
|
+
quasarr-1.27.0.dist-info/entry_points.txt,sha256=gXi8mUKsIqKVvn-bOc8E5f04sK_KoMCC-ty6b2Hf-jc,40
|
|
77
|
+
quasarr-1.27.0.dist-info/top_level.txt,sha256=dipJdaRda5ruTZkoGfZU60bY4l9dtPlmOWwxK_oGSF0,8
|
|
78
|
+
quasarr-1.27.0.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|