quasarr 2.7.0__tar.gz → 2.7.2__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 (103) hide show
  1. {quasarr-2.7.0 → quasarr-2.7.2}/.github/workflows/Release.yml +6 -0
  2. {quasarr-2.7.0 → quasarr-2.7.2}/CONTRIBUTING.md +15 -6
  3. {quasarr-2.7.0 → quasarr-2.7.2}/PKG-INFO +1 -1
  4. quasarr-2.7.2/cli_tester.py +955 -0
  5. {quasarr-2.7.0 → quasarr-2.7.2}/docker/Dockerfile +1 -1
  6. quasarr-2.7.2/docker/dev-services-compose.yml +100 -0
  7. {quasarr-2.7.0 → quasarr-2.7.2}/pyproject.toml +2 -0
  8. {quasarr-2.7.0 → quasarr-2.7.2}/quasarr/api/arr/__init__.py +17 -112
  9. {quasarr-2.7.0 → quasarr-2.7.2}/quasarr/downloads/linkcrypters/al.py +1 -1
  10. {quasarr-2.7.0 → quasarr-2.7.2}/quasarr/providers/cloudflare.py +1 -1
  11. {quasarr-2.7.0 → quasarr-2.7.2}/quasarr/providers/imdb_metadata.py +1 -1
  12. {quasarr-2.7.0 → quasarr-2.7.2}/quasarr/providers/shared_state.py +1 -1
  13. {quasarr-2.7.0 → quasarr-2.7.2}/quasarr/providers/version.py +1 -1
  14. quasarr-2.7.2/quasarr/search/__init__.py +319 -0
  15. {quasarr-2.7.0 → quasarr-2.7.2}/quasarr/search/sources/dj.py +55 -52
  16. {quasarr-2.7.0 → quasarr-2.7.2}/quasarr/search/sources/mb.py +15 -18
  17. {quasarr-2.7.0 → quasarr-2.7.2}/quasarr/search/sources/sf.py +1 -1
  18. {quasarr-2.7.0 → quasarr-2.7.2}/quasarr/search/sources/sj.py +55 -52
  19. {quasarr-2.7.0 → quasarr-2.7.2}/uv.lock +71 -0
  20. quasarr-2.7.0/docker/dev-services-compose.yml +0 -98
  21. quasarr-2.7.0/quasarr/search/__init__.py +0 -267
  22. {quasarr-2.7.0 → quasarr-2.7.2}/.env.example +0 -0
  23. {quasarr-2.7.0 → quasarr-2.7.2}/.github/FUNDING.yml +0 -0
  24. {quasarr-2.7.0 → quasarr-2.7.2}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
  25. {quasarr-2.7.0 → quasarr-2.7.2}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  26. {quasarr-2.7.0 → quasarr-2.7.2}/.github/workflows/HostnameRedaction.yml +0 -0
  27. {quasarr-2.7.0 → quasarr-2.7.2}/.github/workflows/PullRequests.yml +0 -0
  28. {quasarr-2.7.0 → quasarr-2.7.2}/.gitignore +0 -0
  29. {quasarr-2.7.0 → quasarr-2.7.2}/.pre-commit-config.yaml +0 -0
  30. {quasarr-2.7.0 → quasarr-2.7.2}/LICENSE +0 -0
  31. {quasarr-2.7.0 → quasarr-2.7.2}/Quasarr.png +0 -0
  32. {quasarr-2.7.0 → quasarr-2.7.2}/Quasarr.py +0 -0
  33. {quasarr-2.7.0 → quasarr-2.7.2}/README.md +0 -0
  34. {quasarr-2.7.0 → quasarr-2.7.2}/docker/docker-compose.yml +0 -0
  35. {quasarr-2.7.0 → quasarr-2.7.2}/pre-commit.py +0 -0
  36. {quasarr-2.7.0 → quasarr-2.7.2}/quasarr/__init__.py +0 -0
  37. {quasarr-2.7.0 → quasarr-2.7.2}/quasarr/api/__init__.py +0 -0
  38. {quasarr-2.7.0 → quasarr-2.7.2}/quasarr/api/captcha/__init__.py +0 -0
  39. {quasarr-2.7.0 → quasarr-2.7.2}/quasarr/api/config/__init__.py +0 -0
  40. {quasarr-2.7.0 → quasarr-2.7.2}/quasarr/api/jdownloader/__init__.py +0 -0
  41. {quasarr-2.7.0 → quasarr-2.7.2}/quasarr/api/packages/__init__.py +0 -0
  42. {quasarr-2.7.0 → quasarr-2.7.2}/quasarr/api/sponsors_helper/__init__.py +0 -0
  43. {quasarr-2.7.0 → quasarr-2.7.2}/quasarr/api/statistics/__init__.py +0 -0
  44. {quasarr-2.7.0 → quasarr-2.7.2}/quasarr/downloads/__init__.py +0 -0
  45. {quasarr-2.7.0 → quasarr-2.7.2}/quasarr/downloads/linkcrypters/__init__.py +0 -0
  46. {quasarr-2.7.0 → quasarr-2.7.2}/quasarr/downloads/linkcrypters/filecrypt.py +0 -0
  47. {quasarr-2.7.0 → quasarr-2.7.2}/quasarr/downloads/linkcrypters/hide.py +0 -0
  48. {quasarr-2.7.0 → quasarr-2.7.2}/quasarr/downloads/packages/__init__.py +0 -0
  49. {quasarr-2.7.0 → quasarr-2.7.2}/quasarr/downloads/sources/__init__.py +0 -0
  50. {quasarr-2.7.0 → quasarr-2.7.2}/quasarr/downloads/sources/al.py +0 -0
  51. {quasarr-2.7.0 → quasarr-2.7.2}/quasarr/downloads/sources/by.py +0 -0
  52. {quasarr-2.7.0 → quasarr-2.7.2}/quasarr/downloads/sources/dd.py +0 -0
  53. {quasarr-2.7.0 → quasarr-2.7.2}/quasarr/downloads/sources/dj.py +0 -0
  54. {quasarr-2.7.0 → quasarr-2.7.2}/quasarr/downloads/sources/dl.py +0 -0
  55. {quasarr-2.7.0 → quasarr-2.7.2}/quasarr/downloads/sources/dt.py +0 -0
  56. {quasarr-2.7.0 → quasarr-2.7.2}/quasarr/downloads/sources/dw.py +0 -0
  57. {quasarr-2.7.0 → quasarr-2.7.2}/quasarr/downloads/sources/he.py +0 -0
  58. {quasarr-2.7.0 → quasarr-2.7.2}/quasarr/downloads/sources/hs.py +0 -0
  59. {quasarr-2.7.0 → quasarr-2.7.2}/quasarr/downloads/sources/mb.py +0 -0
  60. {quasarr-2.7.0 → quasarr-2.7.2}/quasarr/downloads/sources/nk.py +0 -0
  61. {quasarr-2.7.0 → quasarr-2.7.2}/quasarr/downloads/sources/nx.py +0 -0
  62. {quasarr-2.7.0 → quasarr-2.7.2}/quasarr/downloads/sources/sf.py +0 -0
  63. {quasarr-2.7.0 → quasarr-2.7.2}/quasarr/downloads/sources/sj.py +0 -0
  64. {quasarr-2.7.0 → quasarr-2.7.2}/quasarr/downloads/sources/sl.py +0 -0
  65. {quasarr-2.7.0 → quasarr-2.7.2}/quasarr/downloads/sources/wd.py +0 -0
  66. {quasarr-2.7.0 → quasarr-2.7.2}/quasarr/downloads/sources/wx.py +0 -0
  67. {quasarr-2.7.0 → quasarr-2.7.2}/quasarr/providers/__init__.py +0 -0
  68. {quasarr-2.7.0 → quasarr-2.7.2}/quasarr/providers/auth.py +0 -0
  69. {quasarr-2.7.0 → quasarr-2.7.2}/quasarr/providers/hostname_issues.py +0 -0
  70. {quasarr-2.7.0 → quasarr-2.7.2}/quasarr/providers/html_images.py +0 -0
  71. {quasarr-2.7.0 → quasarr-2.7.2}/quasarr/providers/html_templates.py +0 -0
  72. {quasarr-2.7.0 → quasarr-2.7.2}/quasarr/providers/jd_cache.py +0 -0
  73. {quasarr-2.7.0 → quasarr-2.7.2}/quasarr/providers/log.py +0 -0
  74. {quasarr-2.7.0 → quasarr-2.7.2}/quasarr/providers/myjd_api.py +0 -0
  75. {quasarr-2.7.0 → quasarr-2.7.2}/quasarr/providers/notifications.py +0 -0
  76. {quasarr-2.7.0 → quasarr-2.7.2}/quasarr/providers/obfuscated.py +0 -0
  77. {quasarr-2.7.0 → quasarr-2.7.2}/quasarr/providers/sessions/__init__.py +0 -0
  78. {quasarr-2.7.0 → quasarr-2.7.2}/quasarr/providers/sessions/al.py +0 -0
  79. {quasarr-2.7.0 → quasarr-2.7.2}/quasarr/providers/sessions/dd.py +0 -0
  80. {quasarr-2.7.0 → quasarr-2.7.2}/quasarr/providers/sessions/dl.py +0 -0
  81. {quasarr-2.7.0 → quasarr-2.7.2}/quasarr/providers/sessions/nx.py +0 -0
  82. {quasarr-2.7.0 → quasarr-2.7.2}/quasarr/providers/statistics.py +0 -0
  83. {quasarr-2.7.0 → quasarr-2.7.2}/quasarr/providers/utils.py +0 -0
  84. {quasarr-2.7.0 → quasarr-2.7.2}/quasarr/providers/web_server.py +0 -0
  85. {quasarr-2.7.0 → quasarr-2.7.2}/quasarr/search/sources/__init__.py +0 -0
  86. {quasarr-2.7.0 → quasarr-2.7.2}/quasarr/search/sources/al.py +0 -0
  87. {quasarr-2.7.0 → quasarr-2.7.2}/quasarr/search/sources/by.py +0 -0
  88. {quasarr-2.7.0 → quasarr-2.7.2}/quasarr/search/sources/dd.py +0 -0
  89. {quasarr-2.7.0 → quasarr-2.7.2}/quasarr/search/sources/dl.py +0 -0
  90. {quasarr-2.7.0 → quasarr-2.7.2}/quasarr/search/sources/dt.py +0 -0
  91. {quasarr-2.7.0 → quasarr-2.7.2}/quasarr/search/sources/dw.py +0 -0
  92. {quasarr-2.7.0 → quasarr-2.7.2}/quasarr/search/sources/fx.py +0 -0
  93. {quasarr-2.7.0 → quasarr-2.7.2}/quasarr/search/sources/he.py +0 -0
  94. {quasarr-2.7.0 → quasarr-2.7.2}/quasarr/search/sources/hs.py +0 -0
  95. {quasarr-2.7.0 → quasarr-2.7.2}/quasarr/search/sources/nk.py +0 -0
  96. {quasarr-2.7.0 → quasarr-2.7.2}/quasarr/search/sources/nx.py +0 -0
  97. {quasarr-2.7.0 → quasarr-2.7.2}/quasarr/search/sources/sl.py +0 -0
  98. {quasarr-2.7.0 → quasarr-2.7.2}/quasarr/search/sources/wd.py +0 -0
  99. {quasarr-2.7.0 → quasarr-2.7.2}/quasarr/search/sources/wx.py +0 -0
  100. {quasarr-2.7.0 → quasarr-2.7.2}/quasarr/storage/__init__.py +0 -0
  101. {quasarr-2.7.0 → quasarr-2.7.2}/quasarr/storage/config.py +0 -0
  102. {quasarr-2.7.0 → quasarr-2.7.2}/quasarr/storage/setup.py +0 -0
  103. {quasarr-2.7.0 → quasarr-2.7.2}/quasarr/storage/sqlite_database.py +0 -0
@@ -157,8 +157,10 @@ jobs:
157
157
  tags: |
158
158
  ${{ env.ENDPOINT }}:latest-amd64
159
159
  ${{ env.ENDPOINT }}:${{ needs.version.outputs.version }}-amd64
160
+ ${{ env.ENDPOINT }}:beta-amd64
160
161
  ${{ env.GHCR_ENDPOINT }}:latest-amd64
161
162
  ${{ env.GHCR_ENDPOINT }}:${{ needs.version.outputs.version }}-amd64
163
+ ${{ env.GHCR_ENDPOINT }}:beta-amd64
162
164
  build-args: VS=${{ needs.version.outputs.version }}
163
165
  cache-from: type=gha,scope=amd64
164
166
  cache-to: type=gha,mode=max,scope=amd64
@@ -197,8 +199,10 @@ jobs:
197
199
  tags: |
198
200
  ${{ env.ENDPOINT }}:latest-arm64
199
201
  ${{ env.ENDPOINT }}:${{ needs.version.outputs.version }}-arm64
202
+ ${{ env.ENDPOINT }}:beta-arm64
200
203
  ${{ env.GHCR_ENDPOINT }}:latest-arm64
201
204
  ${{ env.GHCR_ENDPOINT }}:${{ needs.version.outputs.version }}-arm64
205
+ ${{ env.GHCR_ENDPOINT }}:beta-arm64
202
206
  build-args: VS=${{ needs.version.outputs.version }}
203
207
  cache-from: type=gha,scope=arm64
204
208
  cache-to: type=gha,mode=max,scope=arm64
@@ -227,8 +231,10 @@ jobs:
227
231
  ANNOTATION="index:org.opencontainers.image.description=$DESCRIPTION"
228
232
  docker buildx imagetools create -t ${{ env.ENDPOINT }}:latest ${{ env.ENDPOINT }}:latest-amd64 ${{ env.ENDPOINT }}:latest-arm64
229
233
  docker buildx imagetools create -t ${{ env.ENDPOINT }}:${{ needs.version.outputs.version }} ${{ env.ENDPOINT }}:${TAG_AMD64} ${{ env.ENDPOINT }}:${TAG_ARM64}
234
+ docker buildx imagetools create -t ${{ env.ENDPOINT }}:beta ${{ env.ENDPOINT }}:beta-amd64 ${{ env.ENDPOINT }}:beta-arm64
230
235
  docker buildx imagetools create -t ${{ env.GHCR_ENDPOINT }}:latest --annotation "$ANNOTATION" ${{ env.GHCR_ENDPOINT }}:latest-amd64 ${{ env.GHCR_ENDPOINT }}:latest-arm64
231
236
  docker buildx imagetools create -t ${{ env.GHCR_ENDPOINT }}:${{ needs.version.outputs.version }} --annotation "$ANNOTATION" ${{ env.GHCR_ENDPOINT }}:${TAG_AMD64} ${{ env.GHCR_ENDPOINT }}:${TAG_ARM64}
237
+ docker buildx imagetools create -t ${{ env.GHCR_ENDPOINT }}:beta --annotation "$ANNOTATION" ${{ env.GHCR_ENDPOINT }}:beta-amd64 ${{ env.GHCR_ENDPOINT }}:beta-arm64
232
238
 
233
239
  release:
234
240
  name: Create Release
@@ -16,15 +16,12 @@ Install the pre-commit hook that ensures linting, formatting and version upgrade
16
16
  uv run pre-commit install
17
17
  ```
18
18
 
19
- **2. Run Quasarr with the `--internal_address` parameter**
19
+ **2. Run Quasarr**
20
20
 
21
21
  ```bash
22
- uv run Quasarr.py --internal_address=http://<host-ip>:<port>
22
+ uv run Quasarr.py
23
23
  ```
24
24
 
25
- Replace `<host-ip>` and `<port>` with the scheme, IP, and port of your host machine.
26
- The `--internal_address` parameter is **mandatory**.
27
-
28
25
  **3. Start the required services using the `dev-services-compose.yml` file**
29
26
 
30
27
  ```bash
@@ -34,12 +31,24 @@ CONFIG_VOLUMES=/path/to/config docker-compose -f docker/dev-services-compose.yml
34
31
  Replace `/path/to/config` with your desired configuration location.
35
32
  The `CONFIG_VOLUMES` environment variable is **mandatory**.
36
33
 
34
+ By default only JDownloader and Flaresolverr are enabled. See next step how to emulate supported *arr services.
35
+
36
+ **4. Validate your changes**
37
+
38
+ Use the `cli_tester.py` script to simulate Radarr, Sonarr, and LazyLibrarian interactions.
39
+
40
+ ```bash
41
+ uv run cli_tester.py
42
+ ```
43
+
44
+ This tool allows you to test searches, feeds, and downloads without needing the full stack of services running.
45
+
37
46
  ---
38
47
 
39
48
  ### Code Quality & Maintenance
40
49
 
41
50
  The CI pipeline enforces strict code styling and import optimization. Please run this commands before pushing your
42
- changes. Alternatively, you should just set up the pre-commit hook as described above.
51
+ changes. Alternatively, set up the pre-commit hook as described above.
43
52
 
44
53
  **Format code AND upgrade dependencie manually:**
45
54
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: quasarr
3
- Version: 2.7.0
3
+ Version: 2.7.2
4
4
  Summary: Quasarr connects JDownloader with Radarr, Sonarr and LazyLibrarian. It also decrypts links protected by CAPTCHAs.
5
5
  Author-email: rix1337 <rix1337@users.noreply.github.com>
6
6
  License-File: LICENSE