quasarr 1.4.1__py3-none-any.whl → 1.20.4__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 +157 -67
- quasarr/api/__init__.py +126 -43
- quasarr/api/arr/__init__.py +197 -78
- quasarr/api/captcha/__init__.py +885 -39
- quasarr/api/config/__init__.py +23 -0
- quasarr/api/sponsors_helper/__init__.py +84 -22
- quasarr/api/statistics/__init__.py +196 -0
- quasarr/downloads/__init__.py +236 -487
- quasarr/downloads/linkcrypters/al.py +237 -0
- quasarr/downloads/linkcrypters/filecrypt.py +178 -31
- quasarr/downloads/linkcrypters/hide.py +123 -0
- quasarr/downloads/packages/__init__.py +461 -0
- quasarr/downloads/sources/al.py +697 -0
- quasarr/downloads/sources/by.py +106 -0
- quasarr/downloads/sources/dd.py +6 -78
- quasarr/downloads/sources/dj.py +7 -0
- quasarr/downloads/sources/dt.py +1 -1
- quasarr/downloads/sources/dw.py +2 -2
- quasarr/downloads/sources/he.py +112 -0
- quasarr/downloads/sources/mb.py +47 -0
- quasarr/downloads/sources/nk.py +51 -0
- quasarr/downloads/sources/nx.py +36 -81
- quasarr/downloads/sources/sf.py +27 -4
- quasarr/downloads/sources/sj.py +7 -0
- quasarr/downloads/sources/sl.py +90 -0
- quasarr/downloads/sources/wd.py +110 -0
- quasarr/providers/cloudflare.py +204 -0
- quasarr/providers/html_images.py +20 -0
- quasarr/providers/html_templates.py +48 -39
- quasarr/providers/imdb_metadata.py +15 -2
- quasarr/providers/myjd_api.py +34 -5
- quasarr/providers/notifications.py +30 -5
- quasarr/providers/obfuscated.py +35 -0
- quasarr/providers/sessions/__init__.py +0 -0
- quasarr/providers/sessions/al.py +286 -0
- quasarr/providers/sessions/dd.py +78 -0
- quasarr/providers/sessions/nx.py +76 -0
- quasarr/providers/shared_state.py +347 -20
- quasarr/providers/statistics.py +154 -0
- quasarr/providers/version.py +1 -1
- quasarr/search/__init__.py +112 -36
- quasarr/search/sources/al.py +448 -0
- quasarr/search/sources/by.py +203 -0
- quasarr/search/sources/dd.py +17 -6
- quasarr/search/sources/dj.py +213 -0
- quasarr/search/sources/dt.py +37 -7
- quasarr/search/sources/dw.py +27 -47
- quasarr/search/sources/fx.py +27 -29
- quasarr/search/sources/he.py +196 -0
- quasarr/search/sources/mb.py +195 -0
- quasarr/search/sources/nk.py +188 -0
- quasarr/search/sources/nx.py +22 -6
- quasarr/search/sources/sf.py +143 -151
- quasarr/search/sources/sj.py +213 -0
- quasarr/search/sources/sl.py +246 -0
- quasarr/search/sources/wd.py +208 -0
- quasarr/storage/config.py +20 -4
- quasarr/storage/setup.py +216 -51
- quasarr-1.20.4.dist-info/METADATA +304 -0
- quasarr-1.20.4.dist-info/RECORD +72 -0
- {quasarr-1.4.1.dist-info → quasarr-1.20.4.dist-info}/WHEEL +1 -1
- quasarr/providers/tvmaze_metadata.py +0 -23
- quasarr-1.4.1.dist-info/METADATA +0 -174
- quasarr-1.4.1.dist-info/RECORD +0 -43
- {quasarr-1.4.1.dist-info → quasarr-1.20.4.dist-info}/entry_points.txt +0 -0
- {quasarr-1.4.1.dist-info → quasarr-1.20.4.dist-info}/licenses/LICENSE +0 -0
- {quasarr-1.4.1.dist-info → quasarr-1.20.4.dist-info}/top_level.txt +0 -0
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
quasarr/__init__.py,sha256=_WoDFvqXXilQynsiPrY-SXyADy1OwhAjQkdaJFqqHo0,17873
|
|
2
|
+
quasarr/api/__init__.py,sha256=9Y_DTNYsHeimrXL3mAli8OUg0zqo7QGLF2ft40d3R-c,6822
|
|
3
|
+
quasarr/api/arr/__init__.py,sha256=HrzyavxsCmQkdV2SMqQSoJq3KgrsPBnQJdo5iyovmG8,16626
|
|
4
|
+
quasarr/api/captcha/__init__.py,sha256=2qlcJn_Kp_PWP8-_MJvIlPkRlZitH4B58QbdcFZ6xqU,49765
|
|
5
|
+
quasarr/api/config/__init__.py,sha256=0K7zqC9dt39Ul1RIJt0zNVdh1b9ARnfC6QFPa2D9FCw,819
|
|
6
|
+
quasarr/api/sponsors_helper/__init__.py,sha256=kAZabPlplPYRG6Uw7ZHTk5uypualwvhs-NoTOjQhhhA,6369
|
|
7
|
+
quasarr/api/statistics/__init__.py,sha256=NrBAjjHkIUE95HhPUGIfNqh2IqBqJ_zm00S90Y-Qnus,7038
|
|
8
|
+
quasarr/downloads/__init__.py,sha256=2jveOXh165lb-W1CesdS_CVDlrtDV66Gx11OMGTHPXI,11254
|
|
9
|
+
quasarr/downloads/linkcrypters/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
10
|
+
quasarr/downloads/linkcrypters/al.py,sha256=pM3NDan8x0WU8OS1GV3HuuV4B6Nm0a-ATrVORvLHt9M,8487
|
|
11
|
+
quasarr/downloads/linkcrypters/filecrypt.py,sha256=GT51x_MG_hW4IpOF6OvL5r-2mTnMijI8K7_1D5Bfn4U,18884
|
|
12
|
+
quasarr/downloads/linkcrypters/hide.py,sha256=kMxjsYZJpC1V3jwYv9b0h4HKBIectLlgglwOmexvFXs,4107
|
|
13
|
+
quasarr/downloads/packages/__init__.py,sha256=aUGz0aYaSNik8yM8-2CwMVwuk2eF4zsXTn_AC0_FHdY,17665
|
|
14
|
+
quasarr/downloads/sources/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
15
|
+
quasarr/downloads/sources/al.py,sha256=Ulc4fTuX8_gOHeTJzZYEAgUCiFPoyczIdbZh6qA3jzM,26180
|
|
16
|
+
quasarr/downloads/sources/by.py,sha256=VzytGYyy81vjsvNJabohoK8PkjYTKCwXM1TjeD3Ker0,3695
|
|
17
|
+
quasarr/downloads/sources/dd.py,sha256=EQ823wrVusVCVJhh9Rdf67-Yae9XYio8Uj_HW_y5qO0,2841
|
|
18
|
+
quasarr/downloads/sources/dj.py,sha256=b_RR_dqd4Zc9lbZbZbwZijDkXCb42OaU7eOAI4lX9EE,214
|
|
19
|
+
quasarr/downloads/sources/dt.py,sha256=fzAyJy8nmqTAFRObvaRbvsXdBkCo5JuojCJYQMYuPOs,2108
|
|
20
|
+
quasarr/downloads/sources/dw.py,sha256=15UH-kBZt06GS5CDi-TTJGV_H59mQO0Nl-y3nYA5kOk,2504
|
|
21
|
+
quasarr/downloads/sources/he.py,sha256=EZ42WIHE8rwvpvwesaWeG__1dUBq75OQzJ1n7Lgrx1g,3450
|
|
22
|
+
quasarr/downloads/sources/mb.py,sha256=IS5_RdACD3yterFEAj_N7RIH4TVK-VEauZqfya23hmA,1411
|
|
23
|
+
quasarr/downloads/sources/nk.py,sha256=rFdAf9ewfl5ELIFtlZWQ8Z3VjyCSxGwLX92szzwjvz0,1429
|
|
24
|
+
quasarr/downloads/sources/nx.py,sha256=nI0c-oM1g_EyW06_o2wFgn_jm_Zh1XMy3kbRCN0hw1E,3211
|
|
25
|
+
quasarr/downloads/sources/sf.py,sha256=PDBuWgJmEYmD1b-5blS3YWgrqIhJjfwz91IuiMy6rX8,6224
|
|
26
|
+
quasarr/downloads/sources/sj.py,sha256=d2HC52SFYXUXAr7AIaipthVvL-WpvJaD-8AuN-5Z-I8,214
|
|
27
|
+
quasarr/downloads/sources/sl.py,sha256=w6Mo1dphrZRlXfhBfAhFV8KcPfHINuTiFSNu3BYd46k,2851
|
|
28
|
+
quasarr/downloads/sources/wd.py,sha256=NOilEZIF9rumU2LMtfRfXyet3Mzn2shCs8NFCEC3CHY,3747
|
|
29
|
+
quasarr/providers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
30
|
+
quasarr/providers/cloudflare.py,sha256=mJxTYM7JjwIjdO6U_GyVj-dyug6XdD0-ObkYTaPtFVg,7028
|
|
31
|
+
quasarr/providers/html_images.py,sha256=ZvSzG5Mbjol1I_exFHcb4BZ2eUQ3CqquY_MwRBlr-HU,45609
|
|
32
|
+
quasarr/providers/html_templates.py,sha256=90O9RGwlpJB7jC8NZ0ggh9aD6LNM34IRSVsHCa9vSls,7825
|
|
33
|
+
quasarr/providers/imdb_metadata.py,sha256=10L4kZkt6Fg0HGdNcc6KCtIQHRYEqdarLyaMVN6mT8w,4843
|
|
34
|
+
quasarr/providers/log.py,sha256=_g5RwtfuksARXnvryhsngzoJyFcNzj6suqd3ndqZM0Y,313
|
|
35
|
+
quasarr/providers/myjd_api.py,sha256=vPiX-kOQk19ugciefw9wm_hw8djbT4o-Gk9w2XEBeI4,32707
|
|
36
|
+
quasarr/providers/notifications.py,sha256=bohT-6yudmFnmZMc3BwCGX0n1HdzSVgQG_LDZm_38dI,4630
|
|
37
|
+
quasarr/providers/obfuscated.py,sha256=YydQJHrZ485pHaXK0DHHRW3eLZygGr6c0xnUKD6mcCE,236502
|
|
38
|
+
quasarr/providers/shared_state.py,sha256=4nswf5AuA4c1DWqSXsX0HXwlDt5e-UUUvQSy-vryCRE,28987
|
|
39
|
+
quasarr/providers/statistics.py,sha256=cEQixYnDMDqtm5wWe40E_2ucyo4mD0n3SrfelhQi1L8,6452
|
|
40
|
+
quasarr/providers/version.py,sha256=Y3nNP8MoEpRYsOOEGT6K-EZMD21NOZqcmjH6s4jGAiA,4004
|
|
41
|
+
quasarr/providers/web_server.py,sha256=XPj98T-axxgotovuB-rVw1IPCkJiNdXBlEeFvM_zSlM,1432
|
|
42
|
+
quasarr/providers/sessions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
43
|
+
quasarr/providers/sessions/al.py,sha256=mlP6SWfCY2HyOSV40uyotQ5T4eSBNYG9A5GWOEAdz-c,9589
|
|
44
|
+
quasarr/providers/sessions/dd.py,sha256=JdXjqmjuyY32w0cIlwphRm8Sy43EK8nEEFwyXUkEGb4,2596
|
|
45
|
+
quasarr/providers/sessions/nx.py,sha256=qfW12AB_0nNsAoKOaSF4z0T9DCxMQleWCYf3fqJtF2A,2688
|
|
46
|
+
quasarr/search/__init__.py,sha256=yDk_Mx4QEBLODqfFZaRBfbiOGlntuVb22VN63EJdRrk,5367
|
|
47
|
+
quasarr/search/sources/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
48
|
+
quasarr/search/sources/al.py,sha256=yr6wx-VcSOFYK_o3N1bepC4t6Gvt9eDvcG9fQBFg0bg,17203
|
|
49
|
+
quasarr/search/sources/by.py,sha256=OPoAqS5kSSNrRVsPlALhX59h3lEZWGA7LlFfL4vH2-o,7914
|
|
50
|
+
quasarr/search/sources/dd.py,sha256=pVpdHLZlw2CYklBf_YLkeDWbCNsDLR2iecccR2c2RyI,4889
|
|
51
|
+
quasarr/search/sources/dj.py,sha256=2HIdg5ddXP4DtjHlyXmuQ8QVhOPt3Hh2kL4uxhFJK-8,7074
|
|
52
|
+
quasarr/search/sources/dt.py,sha256=m1kQ7mC43QlWZyVIkw-OXJGjWiT9IbQuFtHWiR8CjhA,9580
|
|
53
|
+
quasarr/search/sources/dw.py,sha256=-daUTBTA5izeatrE7TITVlnzNCQ5HfovYMMZ8UTM-2o,7636
|
|
54
|
+
quasarr/search/sources/fx.py,sha256=JAyD727yDAFIP14bzfi2SkX9paysXGkQdIybShYtdko,8596
|
|
55
|
+
quasarr/search/sources/he.py,sha256=ieBVlpd4nRonZyocV1kDlxIjgfWspspbspLS04PDQkQ,6503
|
|
56
|
+
quasarr/search/sources/mb.py,sha256=owwH5T0Yh7dwYRqMVQ0ecAdDlQ5CwLwWkTcig2ePggI,7749
|
|
57
|
+
quasarr/search/sources/nk.py,sha256=x84zckK8eG64X3oaPHYhNbK0aoSuVW8xp_n_mlE__NI,6427
|
|
58
|
+
quasarr/search/sources/nx.py,sha256=JdRLA2pWS05m5_ARU-RxAoaBW-8YWEoUN2RebyD2ejo,6981
|
|
59
|
+
quasarr/search/sources/sf.py,sha256=3z_fvcafOh7U4D_vgq9yC8ktKeazI9fiAi96hCeXb5Q,14869
|
|
60
|
+
quasarr/search/sources/sj.py,sha256=JRzoCDohClmGH7aXOz82KVUt6pZsZoBDBXvwvQrAijM,7074
|
|
61
|
+
quasarr/search/sources/sl.py,sha256=5e5S7JvdbNOc2EthyOkfC4aTpG8O7fn4WS2O3_EXjnM,9463
|
|
62
|
+
quasarr/search/sources/wd.py,sha256=O02j3irSlVw2qES82g_qHuavAk-njjSRH1dHSCnOUas,7540
|
|
63
|
+
quasarr/storage/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
64
|
+
quasarr/storage/config.py,sha256=a0JAeiSqMQYBvfZTyYtOxDZvuLGP5lZhMHb7nX9azPc,6130
|
|
65
|
+
quasarr/storage/setup.py,sha256=gpHOsc5qtt-M72saZoMJFLE2YlCrjv7FWZknh-iVKsk,17766
|
|
66
|
+
quasarr/storage/sqlite_database.py,sha256=yMqFQfKf0k7YS-6Z3_7pj4z1GwWSXJ8uvF4IydXsuTE,3554
|
|
67
|
+
quasarr-1.20.4.dist-info/licenses/LICENSE,sha256=QQFCAfDgt7lSA8oSWDHIZ9aTjFbZaBJdjnGOHkuhK7k,1060
|
|
68
|
+
quasarr-1.20.4.dist-info/METADATA,sha256=x77PJJ7-BcdMWjmKNFggR1ZjAkEh_ECZwZI0ai1XONw,12653
|
|
69
|
+
quasarr-1.20.4.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
70
|
+
quasarr-1.20.4.dist-info/entry_points.txt,sha256=gXi8mUKsIqKVvn-bOc8E5f04sK_KoMCC-ty6b2Hf-jc,40
|
|
71
|
+
quasarr-1.20.4.dist-info/top_level.txt,sha256=dipJdaRda5ruTZkoGfZU60bY4l9dtPlmOWwxK_oGSF0,8
|
|
72
|
+
quasarr-1.20.4.dist-info/RECORD,,
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
# -*- coding: utf-8 -*-
|
|
2
|
-
# Quasarr
|
|
3
|
-
# Project by https://github.com/rix1337
|
|
4
|
-
|
|
5
|
-
import requests
|
|
6
|
-
|
|
7
|
-
from quasarr.providers.log import info
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
def get_title_from_tvrage_id(tvrage_id):
|
|
11
|
-
try:
|
|
12
|
-
url = f"https://api.tvmaze.com/lookup/shows?tvrage={tvrage_id}"
|
|
13
|
-
response = requests.get(url)
|
|
14
|
-
|
|
15
|
-
if response.status_code == 200:
|
|
16
|
-
data = response.json()
|
|
17
|
-
return data.get("name", "Title not found")
|
|
18
|
-
else:
|
|
19
|
-
info(f"Error: Unable to fetch title. HTTP Status Code: {response.status_code}")
|
|
20
|
-
return ""
|
|
21
|
-
except Exception as e:
|
|
22
|
-
info(f"Exception occurred: {e}")
|
|
23
|
-
return ""
|
quasarr-1.4.1.dist-info/METADATA
DELETED
|
@@ -1,174 +0,0 @@
|
|
|
1
|
-
Metadata-Version: 2.4
|
|
2
|
-
Name: quasarr
|
|
3
|
-
Version: 1.4.1
|
|
4
|
-
Summary: Full template for python web projects with Docker, GitHub Actions, PyPI, and more.
|
|
5
|
-
Home-page: https://github.com/rix1337/Quasarr
|
|
6
|
-
Author: rix1337
|
|
7
|
-
Author-email:
|
|
8
|
-
Classifier: Programming Language :: Python :: 3
|
|
9
|
-
Classifier: License :: OSI Approved :: MIT License
|
|
10
|
-
Classifier: Operating System :: OS Independent
|
|
11
|
-
Description-Content-Type: text/markdown
|
|
12
|
-
License-File: LICENSE
|
|
13
|
-
Requires-Dist: beautifulsoup4==4.13.4
|
|
14
|
-
Requires-Dist: bottle==0.13.3
|
|
15
|
-
Requires-Dist: dukpy==0.5.0
|
|
16
|
-
Requires-Dist: pycryptodomex==3.22.0
|
|
17
|
-
Requires-Dist: requests==2.32.3
|
|
18
|
-
Dynamic: author
|
|
19
|
-
Dynamic: classifier
|
|
20
|
-
Dynamic: description
|
|
21
|
-
Dynamic: description-content-type
|
|
22
|
-
Dynamic: home-page
|
|
23
|
-
Dynamic: license-file
|
|
24
|
-
Dynamic: requires-dist
|
|
25
|
-
Dynamic: summary
|
|
26
|
-
|
|
27
|
-
#
|
|
28
|
-
|
|
29
|
-
<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" />
|
|
30
|
-
|
|
31
|
-
Quasarr connects JDownloader with Radarr and Sonarr. It also decrypts links protected by CAPTCHAs.
|
|
32
|
-
|
|
33
|
-
[](https://badge.fury.io/py/quasarr)
|
|
34
|
-
[](https://discord.gg/eM4zA2wWQb)
|
|
35
|
-
[](https://github.com/users/rix1337/sponsorship)
|
|
36
|
-
|
|
37
|
-
Quasarr poses as a Newznab Indexer and a SABnzbd client.
|
|
38
|
-
It will thus never work in parallel with a real NZB indexer and download client set up.
|
|
39
|
-
Torrents are unaffected. To still use NZB indexers, you must set fixed download clients in the advanced indexer
|
|
40
|
-
settings for Radarr/Sonarr.
|
|
41
|
-
|
|
42
|
-
Quasarr includes a solution to quickly and easily decrypt protected links.
|
|
43
|
-
[Active Sponsors get access to SponsorsHelper to do so automatically.](https://github.com/users/rix1337/sponsorship)
|
|
44
|
-
Alternatively, follow the link from the console output (or discord notification) to solve the CAPTCHA manually.
|
|
45
|
-
Quasarr will confidently handle the rest.
|
|
46
|
-
|
|
47
|
-
# Instructions
|
|
48
|
-
|
|
49
|
-
* Set up at least one hostname for Quasarr to use
|
|
50
|
-
* Chose your own or use the `HOSTNAMES` variable to provide a list of hostnames.
|
|
51
|
-
* This project will not condone nor provide you with hostnames. Search Google, Pastebin, etc. for suggestions.
|
|
52
|
-
* Always redact hostnames when creating issues in this repo.
|
|
53
|
-
* Quasarr will become available once at least one suitable hostname is set.
|
|
54
|
-
* Provide your [My-JDownloader-Credentials](https://my.jdownloader.org)
|
|
55
|
-
* Consider setting up a fresh JDownloader before you begin.
|
|
56
|
-
* Quasarr will modify the settings of JDownloader so downloads can be properly handled by Radarr/Sonarr.
|
|
57
|
-
* If using docker, make extra sure that JDownloader's download path is available to Radarr/Sonarr with the exact same
|
|
58
|
-
internal and external path mapping. Just matching the external path is not enough.
|
|
59
|
-
* Set up Quasarr as `Newznab Indexer` and `SABnzbd Download Client` in Radarr/Sonarr
|
|
60
|
-
* Use the API key from the console output (or copy it from the Quasarr web UI)
|
|
61
|
-
* Leave all other settings by default.
|
|
62
|
-
* If you prefer to only get releases for a specific mirror, add the mirror name to the
|
|
63
|
-
API path in the advanced indexer settings.
|
|
64
|
-
* Example: `/api/dropbox/` results will only return releases where `dropbox` is explicitly mentioned in a link.
|
|
65
|
-
* This means that if a mirror is not available at a hostname, the release is ignored or the download will fail.
|
|
66
|
-
So use this option with caution.
|
|
67
|
-
* To see download status information
|
|
68
|
-
* Open `Activity` → `Queue` → `Options` in Radarr/Sonarr
|
|
69
|
-
* Enable `Release Title`
|
|
70
|
-
|
|
71
|
-
# Docker
|
|
72
|
-
|
|
73
|
-
It is highly recommended to run the latest docker image with all optional variables set.
|
|
74
|
-
|
|
75
|
-
```
|
|
76
|
-
docker run -d \
|
|
77
|
-
--name="Quasarr" \
|
|
78
|
-
-p port:8080 \
|
|
79
|
-
-v /path/to/config/:/config:rw \
|
|
80
|
-
-e 'INTERNAL_ADDRESS'='http://192.168.0.1:8080' \
|
|
81
|
-
-e 'EXTERNAL_ADDRESS'='https://foo.bar/' \
|
|
82
|
-
-e 'DISCORD'='https://discord.com/api/webhooks/1234567890/ABCDEFGHIJKLMN' \
|
|
83
|
-
-e 'HOSTNAMES'='https://pastebin.com/raw/eX4Mpl3'
|
|
84
|
-
ghcr.io/rix1337/quasarr:latest
|
|
85
|
-
```
|
|
86
|
-
|
|
87
|
-
* `INTERNAL_ADDRESS` is required so Radarr/Sonarr can reach Quasarr. **Must** include port!
|
|
88
|
-
* `EXTERNAL_ADDRESS` is optional and used in Discord notifications.
|
|
89
|
-
* `DISCORD` is optional and must be a valid Discord Webhook URL.
|
|
90
|
-
* `HOSTNAMES` is optional and allows skipping the manual hostname step during setup.
|
|
91
|
-
* Must be a publicly available `HTTP` or `HTTPs` link
|
|
92
|
-
* Must be a raw `.ini` / text file (not HTML or JSON)
|
|
93
|
-
* Must contain at least one valid Hostname per line `ab = xyz`
|
|
94
|
-
* `SILENT` is optional and silences all discord notifications except for error messages from SponsorsHelper.
|
|
95
|
-
* `DEBUG` is optional and enables debug logging. **Only use to create a GitHub issue!**
|
|
96
|
-
|
|
97
|
-
# Manual setup
|
|
98
|
-
|
|
99
|
-
Use this only in case you can't run the docker image.
|
|
100
|
-
|
|
101
|
-
`pip install `
|
|
102
|
-
|
|
103
|
-
* Requires Python 3.12 or later
|
|
104
|
-
|
|
105
|
-
```
|
|
106
|
-
--port=8080
|
|
107
|
-
--discord=https://discord.com/api/webhooks/1234567890/ABCDEFGHIJKLMN
|
|
108
|
-
--external_address=https://foo.bar/
|
|
109
|
-
--hostnames=https://pastebin.com/raw/eX4Mpl3
|
|
110
|
-
```
|
|
111
|
-
|
|
112
|
-
* `--discord` see `DISCORD`docker variable
|
|
113
|
-
* `--external_address` see `EXTERNAL_ADDRESS`docker variable
|
|
114
|
-
* `--hostnames` see `HOSTNAMES`docker variable
|
|
115
|
-
|
|
116
|
-
# Philosophy
|
|
117
|
-
|
|
118
|
-
Complexity is the killer of solo projects like this one. It must be fought at all cost!
|
|
119
|
-
|
|
120
|
-
Therefore, feature toggles to modify Quasarr's behavior will never be introduced to this project.
|
|
121
|
-
|
|
122
|
-
Consider that every choice for the user must be reflected throughout the project.
|
|
123
|
-
Every feature toggle, therefore, is a negative multiplier for future development efforts.
|
|
124
|
-
This project's predecessor [FeedCrawler](https://github.com/rix1337/FeedCrawler) died because it allowed an insane
|
|
125
|
-
amount of flexibility.
|
|
126
|
-
|
|
127
|
-
I will not waste my precious time on features that will slow future development cycles down.
|
|
128
|
-
Issues, feature and pull requests that are meant to introduce feature toggles will therefore be rejected.
|
|
129
|
-
|
|
130
|
-
## Intentional design decisions
|
|
131
|
-
* There is no settings UI after the initial setup.
|
|
132
|
-
If you need to update hostnames or My-JDownloader-Credentials, simply delete the `Quasarr.ini` and restart Quasarr.
|
|
133
|
-
* Radarr and Sonarr provide custom formats to automatically choose the most fitting release for a given search
|
|
134
|
-
based on the release's title. Quasarr prefixes release titles with the source hostname in square brackets in case you
|
|
135
|
-
want to apply custom format scores to certain hostnames.
|
|
136
|
-
|
|
137
|
-
# Roadmap
|
|
138
|
-
|
|
139
|
-
- Assume there are zero known
|
|
140
|
-
issues [unless you find one or more open issues in this repository](https://github.com/rix1337/Quasarr/issues).
|
|
141
|
-
- Still having an issue? Provide a detailed report [here](https://github.com/rix1337/Quasarr/issues/new/choose)!
|
|
142
|
-
- The feature set is considered complete. Most feature requests can be satisfied by:
|
|
143
|
-
- Existing settings in Radarr/Sonarr
|
|
144
|
-
- Existing settings in JDownloader
|
|
145
|
-
- Existing tools from the *arr ecosystem that integrate directly with Radarr/Sonarr
|
|
146
|
-
- There are no hostname integrations in active development.
|
|
147
|
-
- **Adding additional hostnames focused on English content is highly desired. Please send your pull requests!**
|
|
148
|
-
- Pull requests are welcome. Especially for popular hostnames.
|
|
149
|
-
- Always reach out on Discord before starting work on a new feature.
|
|
150
|
-
- Please follow the existing code style and project structure.
|
|
151
|
-
- Anti-bot measures must be circumvented without relying on third party tools like Flaresolverr.
|
|
152
|
-
- Please provide proof of functionality (screenshots/examples) when submitting your pull request.
|
|
153
|
-
|
|
154
|
-
## Development Setup for Pull Requests
|
|
155
|
-
|
|
156
|
-
To test your changes before submitting a pull request:
|
|
157
|
-
|
|
158
|
-
### 1. Run Quasarr with the `--internal_address` parameter
|
|
159
|
-
|
|
160
|
-
```bash
|
|
161
|
-
python Quasarr.py --internal_address=http://<host-ip>:<port>
|
|
162
|
-
```
|
|
163
|
-
|
|
164
|
-
Replace `<host-ip>` and `<port>` with the scheme, IP, and port of your host machine.
|
|
165
|
-
The `--internal_address` parameter is **mandatory**.
|
|
166
|
-
|
|
167
|
-
### 2. Start the required services using the `dev-services-compose.yml` file
|
|
168
|
-
|
|
169
|
-
```bash
|
|
170
|
-
CONFIG_VOLUMES=/path/to/config docker-compose -f docker/dev-services-compose.yml up
|
|
171
|
-
```
|
|
172
|
-
|
|
173
|
-
Replace `/path/to/config` with your desired configuration location.
|
|
174
|
-
The `CONFIG_VOLUMES` environment variable is **mandatory**.
|
quasarr-1.4.1.dist-info/RECORD
DELETED
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
quasarr/__init__.py,sha256=GI12ObfP-bU-QlgwVUWcZO4nVmkKKc5MNu6zICpQxeA,14912
|
|
2
|
-
quasarr/api/__init__.py,sha256=Xax1mu1u5FUnW6d-2Z7NGE8U-TQ4MPHsSxdVirZhnY4,4072
|
|
3
|
-
quasarr/api/arr/__init__.py,sha256=XRvM-MWxA0Trm-Axnix9yiVA-oX3E3t8zSdmMivyszQ,10857
|
|
4
|
-
quasarr/api/captcha/__init__.py,sha256=-ixVg_44fPRMk6QNy-qlNsMjfGJolY_lmDE-q6J76Zw,10037
|
|
5
|
-
quasarr/api/sponsors_helper/__init__.py,sha256=iw6B6Gx3b8qB1ZRBjRhAvlLAGPRS_g4uGKFQdDBusKc,3919
|
|
6
|
-
quasarr/downloads/__init__.py,sha256=Ax8GbJZdNmji5p2RHLOR22kZpnWMVhvHFCKpZILFIL0,20659
|
|
7
|
-
quasarr/downloads/linkcrypters/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
8
|
-
quasarr/downloads/linkcrypters/filecrypt.py,sha256=v8J4V03KqOYmAXGs3uvpAsFRsDsYLc7RcziVIxOhVAA,11049
|
|
9
|
-
quasarr/downloads/sources/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
10
|
-
quasarr/downloads/sources/dd.py,sha256=MyC9JcgLLPm3UgFWpNgzGnTYVMmMHNICMhCfnGEaz8s,5175
|
|
11
|
-
quasarr/downloads/sources/dt.py,sha256=SZM-SVy3kcduUyfg2RllXyzytMVeS6BdmWtnRfnu-so,2049
|
|
12
|
-
quasarr/downloads/sources/dw.py,sha256=XV7Szpxm1lWzc0WdjBOSBnhpjbyWE3bIDzbWYkD4fZc,2429
|
|
13
|
-
quasarr/downloads/sources/nx.py,sha256=M8H6tK5AIwbWE2-WUvSXK_1PKQUbMdGjq6VAuWLnZok,4976
|
|
14
|
-
quasarr/downloads/sources/sf.py,sha256=raQvfpTrCJygRhtZWCpmh0cw3c8oD7nGkAbTc6OBPQk,5422
|
|
15
|
-
quasarr/providers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
16
|
-
quasarr/providers/html_templates.py,sha256=NTWCRAHO9O8sudXJ4PDt2qtEzx_ljXK8TW3RLzywZvM,7686
|
|
17
|
-
quasarr/providers/imdb_metadata.py,sha256=Pw1g9CK97UBWkPfvROAfzYiG0Nwz1AWxLa1KsuEKqkI,4301
|
|
18
|
-
quasarr/providers/log.py,sha256=_g5RwtfuksARXnvryhsngzoJyFcNzj6suqd3ndqZM0Y,313
|
|
19
|
-
quasarr/providers/myjd_api.py,sha256=7HntZ4aX-6PHXklW2jSpQVtFHitw5MMddwvHmVb70Bc,31852
|
|
20
|
-
quasarr/providers/notifications.py,sha256=jNtbJcqdHBj_Z2CqPCFQioxVAydCjOfCHcQxkRs4C8U,3513
|
|
21
|
-
quasarr/providers/obfuscated.py,sha256=XfiEblJizqixUoA4MIsillr5Nh1dwFqCgLvBQWM7Lwo,193865
|
|
22
|
-
quasarr/providers/shared_state.py,sha256=hXo-DcpLEiYl94XWtEk0ed6Jsk7QtkKMBzpb-Q1y-C8,17486
|
|
23
|
-
quasarr/providers/tvmaze_metadata.py,sha256=MhHbdL-PoG2jD-MnubLdtGaGX095UfEvzVN1iVOBJLo,637
|
|
24
|
-
quasarr/providers/version.py,sha256=fYLCMyhBR9BCvz2X6_MqV2eVPkAEXLDS2O_ONa_WHgY,4003
|
|
25
|
-
quasarr/providers/web_server.py,sha256=XPj98T-axxgotovuB-rVw1IPCkJiNdXBlEeFvM_zSlM,1432
|
|
26
|
-
quasarr/search/__init__.py,sha256=cUOaZP1o0K4-eJSmib9dLDnq96AjebKwRws6SCxgnd0,3440
|
|
27
|
-
quasarr/search/sources/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
28
|
-
quasarr/search/sources/dd.py,sha256=n0Twr0qYuEaooKFypnGQZq4DS7ZmDHH6srmKHwQnm4c,4402
|
|
29
|
-
quasarr/search/sources/dt.py,sha256=I7frY3L_fpsEu8IgR5NUWjv7F9pcMbJp_idXnRebwm0,8356
|
|
30
|
-
quasarr/search/sources/dw.py,sha256=plU0z9walKmNBGcQmGbul5cAiiyhjsk0fDTrRUgMOxc,8268
|
|
31
|
-
quasarr/search/sources/fx.py,sha256=hwE1SQnP9LMt5L4DqzXI4IAD0Ld-MhJmbv8nQzNlLWE,8456
|
|
32
|
-
quasarr/search/sources/nx.py,sha256=KuAMRz4byThyta7NiMNj-OeLOytmKVCkmM12yEJBSfo,6065
|
|
33
|
-
quasarr/search/sources/sf.py,sha256=fiF5zcYa4olFRHlqZYt8D8v6Dlodxq8yGEmn6TyO428,14900
|
|
34
|
-
quasarr/storage/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
35
|
-
quasarr/storage/config.py,sha256=wvO2iPU0RGhFAfq6RMCNn0KYiH73SRM76t_soVuJt4Q,5671
|
|
36
|
-
quasarr/storage/setup.py,sha256=Ebx9HrIt0u-DNvEtaCRSgH13-UEdwne8KrPLsI5zyGA,11257
|
|
37
|
-
quasarr/storage/sqlite_database.py,sha256=yMqFQfKf0k7YS-6Z3_7pj4z1GwWSXJ8uvF4IydXsuTE,3554
|
|
38
|
-
quasarr-1.4.1.dist-info/licenses/LICENSE,sha256=QQFCAfDgt7lSA8oSWDHIZ9aTjFbZaBJdjnGOHkuhK7k,1060
|
|
39
|
-
quasarr-1.4.1.dist-info/METADATA,sha256=Boram2R1EjdtkxmRxAs9NSneY_e4QhtNIBGyu_lXqPA,8211
|
|
40
|
-
quasarr-1.4.1.dist-info/WHEEL,sha256=wXxTzcEDnjrTwFYjLPcsW_7_XihufBwmpiBeiXNBGEA,91
|
|
41
|
-
quasarr-1.4.1.dist-info/entry_points.txt,sha256=gXi8mUKsIqKVvn-bOc8E5f04sK_KoMCC-ty6b2Hf-jc,40
|
|
42
|
-
quasarr-1.4.1.dist-info/top_level.txt,sha256=dipJdaRda5ruTZkoGfZU60bY4l9dtPlmOWwxK_oGSF0,8
|
|
43
|
-
quasarr-1.4.1.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|