quasarr 1.26.6__tar.gz → 1.26.7__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 (83) hide show
  1. {quasarr-1.26.6 → quasarr-1.26.7}/PKG-INFO +1 -1
  2. {quasarr-1.26.6 → quasarr-1.26.7}/quasarr/__init__.py +5 -60
  3. {quasarr-1.26.6 → quasarr-1.26.7}/quasarr/providers/version.py +1 -1
  4. {quasarr-1.26.6 → quasarr-1.26.7}/quasarr.egg-info/PKG-INFO +1 -1
  5. {quasarr-1.26.6 → quasarr-1.26.7}/LICENSE +0 -0
  6. {quasarr-1.26.6 → quasarr-1.26.7}/README.md +0 -0
  7. {quasarr-1.26.6 → quasarr-1.26.7}/quasarr/api/__init__.py +0 -0
  8. {quasarr-1.26.6 → quasarr-1.26.7}/quasarr/api/arr/__init__.py +0 -0
  9. {quasarr-1.26.6 → quasarr-1.26.7}/quasarr/api/captcha/__init__.py +0 -0
  10. {quasarr-1.26.6 → quasarr-1.26.7}/quasarr/api/config/__init__.py +0 -0
  11. {quasarr-1.26.6 → quasarr-1.26.7}/quasarr/api/sponsors_helper/__init__.py +0 -0
  12. {quasarr-1.26.6 → quasarr-1.26.7}/quasarr/api/statistics/__init__.py +0 -0
  13. {quasarr-1.26.6 → quasarr-1.26.7}/quasarr/downloads/__init__.py +0 -0
  14. {quasarr-1.26.6 → quasarr-1.26.7}/quasarr/downloads/linkcrypters/__init__.py +0 -0
  15. {quasarr-1.26.6 → quasarr-1.26.7}/quasarr/downloads/linkcrypters/al.py +0 -0
  16. {quasarr-1.26.6 → quasarr-1.26.7}/quasarr/downloads/linkcrypters/filecrypt.py +0 -0
  17. {quasarr-1.26.6 → quasarr-1.26.7}/quasarr/downloads/linkcrypters/hide.py +0 -0
  18. {quasarr-1.26.6 → quasarr-1.26.7}/quasarr/downloads/packages/__init__.py +0 -0
  19. {quasarr-1.26.6 → quasarr-1.26.7}/quasarr/downloads/sources/__init__.py +0 -0
  20. {quasarr-1.26.6 → quasarr-1.26.7}/quasarr/downloads/sources/al.py +0 -0
  21. {quasarr-1.26.6 → quasarr-1.26.7}/quasarr/downloads/sources/by.py +0 -0
  22. {quasarr-1.26.6 → quasarr-1.26.7}/quasarr/downloads/sources/dd.py +0 -0
  23. {quasarr-1.26.6 → quasarr-1.26.7}/quasarr/downloads/sources/dj.py +0 -0
  24. {quasarr-1.26.6 → quasarr-1.26.7}/quasarr/downloads/sources/dl.py +0 -0
  25. {quasarr-1.26.6 → quasarr-1.26.7}/quasarr/downloads/sources/dt.py +0 -0
  26. {quasarr-1.26.6 → quasarr-1.26.7}/quasarr/downloads/sources/dw.py +0 -0
  27. {quasarr-1.26.6 → quasarr-1.26.7}/quasarr/downloads/sources/he.py +0 -0
  28. {quasarr-1.26.6 → quasarr-1.26.7}/quasarr/downloads/sources/mb.py +0 -0
  29. {quasarr-1.26.6 → quasarr-1.26.7}/quasarr/downloads/sources/nk.py +0 -0
  30. {quasarr-1.26.6 → quasarr-1.26.7}/quasarr/downloads/sources/nx.py +0 -0
  31. {quasarr-1.26.6 → quasarr-1.26.7}/quasarr/downloads/sources/sf.py +0 -0
  32. {quasarr-1.26.6 → quasarr-1.26.7}/quasarr/downloads/sources/sj.py +0 -0
  33. {quasarr-1.26.6 → quasarr-1.26.7}/quasarr/downloads/sources/sl.py +0 -0
  34. {quasarr-1.26.6 → quasarr-1.26.7}/quasarr/downloads/sources/wd.py +0 -0
  35. {quasarr-1.26.6 → quasarr-1.26.7}/quasarr/downloads/sources/wx.py +0 -0
  36. {quasarr-1.26.6 → quasarr-1.26.7}/quasarr/providers/__init__.py +0 -0
  37. {quasarr-1.26.6 → quasarr-1.26.7}/quasarr/providers/cloudflare.py +0 -0
  38. {quasarr-1.26.6 → quasarr-1.26.7}/quasarr/providers/html_images.py +0 -0
  39. {quasarr-1.26.6 → quasarr-1.26.7}/quasarr/providers/html_templates.py +0 -0
  40. {quasarr-1.26.6 → quasarr-1.26.7}/quasarr/providers/imdb_metadata.py +0 -0
  41. {quasarr-1.26.6 → quasarr-1.26.7}/quasarr/providers/log.py +0 -0
  42. {quasarr-1.26.6 → quasarr-1.26.7}/quasarr/providers/myjd_api.py +0 -0
  43. {quasarr-1.26.6 → quasarr-1.26.7}/quasarr/providers/notifications.py +0 -0
  44. {quasarr-1.26.6 → quasarr-1.26.7}/quasarr/providers/obfuscated.py +0 -0
  45. {quasarr-1.26.6 → quasarr-1.26.7}/quasarr/providers/sessions/__init__.py +0 -0
  46. {quasarr-1.26.6 → quasarr-1.26.7}/quasarr/providers/sessions/al.py +0 -0
  47. {quasarr-1.26.6 → quasarr-1.26.7}/quasarr/providers/sessions/dd.py +0 -0
  48. {quasarr-1.26.6 → quasarr-1.26.7}/quasarr/providers/sessions/dl.py +0 -0
  49. {quasarr-1.26.6 → quasarr-1.26.7}/quasarr/providers/sessions/nx.py +0 -0
  50. {quasarr-1.26.6 → quasarr-1.26.7}/quasarr/providers/shared_state.py +0 -0
  51. {quasarr-1.26.6 → quasarr-1.26.7}/quasarr/providers/statistics.py +0 -0
  52. {quasarr-1.26.6 → quasarr-1.26.7}/quasarr/providers/web_server.py +0 -0
  53. {quasarr-1.26.6 → quasarr-1.26.7}/quasarr/search/__init__.py +0 -0
  54. {quasarr-1.26.6 → quasarr-1.26.7}/quasarr/search/sources/__init__.py +0 -0
  55. {quasarr-1.26.6 → quasarr-1.26.7}/quasarr/search/sources/al.py +0 -0
  56. {quasarr-1.26.6 → quasarr-1.26.7}/quasarr/search/sources/by.py +0 -0
  57. {quasarr-1.26.6 → quasarr-1.26.7}/quasarr/search/sources/dd.py +0 -0
  58. {quasarr-1.26.6 → quasarr-1.26.7}/quasarr/search/sources/dj.py +0 -0
  59. {quasarr-1.26.6 → quasarr-1.26.7}/quasarr/search/sources/dl.py +0 -0
  60. {quasarr-1.26.6 → quasarr-1.26.7}/quasarr/search/sources/dt.py +0 -0
  61. {quasarr-1.26.6 → quasarr-1.26.7}/quasarr/search/sources/dw.py +0 -0
  62. {quasarr-1.26.6 → quasarr-1.26.7}/quasarr/search/sources/fx.py +0 -0
  63. {quasarr-1.26.6 → quasarr-1.26.7}/quasarr/search/sources/he.py +0 -0
  64. {quasarr-1.26.6 → quasarr-1.26.7}/quasarr/search/sources/mb.py +0 -0
  65. {quasarr-1.26.6 → quasarr-1.26.7}/quasarr/search/sources/nk.py +0 -0
  66. {quasarr-1.26.6 → quasarr-1.26.7}/quasarr/search/sources/nx.py +0 -0
  67. {quasarr-1.26.6 → quasarr-1.26.7}/quasarr/search/sources/sf.py +0 -0
  68. {quasarr-1.26.6 → quasarr-1.26.7}/quasarr/search/sources/sj.py +0 -0
  69. {quasarr-1.26.6 → quasarr-1.26.7}/quasarr/search/sources/sl.py +0 -0
  70. {quasarr-1.26.6 → quasarr-1.26.7}/quasarr/search/sources/wd.py +0 -0
  71. {quasarr-1.26.6 → quasarr-1.26.7}/quasarr/search/sources/wx.py +0 -0
  72. {quasarr-1.26.6 → quasarr-1.26.7}/quasarr/storage/__init__.py +0 -0
  73. {quasarr-1.26.6 → quasarr-1.26.7}/quasarr/storage/config.py +0 -0
  74. {quasarr-1.26.6 → quasarr-1.26.7}/quasarr/storage/setup.py +0 -0
  75. {quasarr-1.26.6 → quasarr-1.26.7}/quasarr/storage/sqlite_database.py +0 -0
  76. {quasarr-1.26.6 → quasarr-1.26.7}/quasarr.egg-info/SOURCES.txt +0 -0
  77. {quasarr-1.26.6 → quasarr-1.26.7}/quasarr.egg-info/dependency_links.txt +0 -0
  78. {quasarr-1.26.6 → quasarr-1.26.7}/quasarr.egg-info/entry_points.txt +0 -0
  79. {quasarr-1.26.6 → quasarr-1.26.7}/quasarr.egg-info/not-zip-safe +0 -0
  80. {quasarr-1.26.6 → quasarr-1.26.7}/quasarr.egg-info/requires.txt +0 -0
  81. {quasarr-1.26.6 → quasarr-1.26.7}/quasarr.egg-info/top_level.txt +0 -0
  82. {quasarr-1.26.6 → quasarr-1.26.7}/setup.cfg +0 -0
  83. {quasarr-1.26.6 → quasarr-1.26.7}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: quasarr
3
- Version: 1.26.6
3
+ Version: 1.26.7
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
@@ -120,19 +120,13 @@ def run():
120
120
  if arguments.hostnames:
121
121
  hostnames_link = arguments.hostnames
122
122
  if is_valid_url(hostnames_link):
123
- if "pastebin.com" in hostnames_link:
124
- hostnames_link = make_raw_pastebin_link(hostnames_link)
125
-
126
123
  print(f"Extracting hostnames from {hostnames_link}...")
127
124
  allowed_keys = supported_hostnames
128
125
  max_keys = len(allowed_keys)
129
126
  shorthand_list = ', '.join(
130
127
  [f'"{key}"' for key in allowed_keys[:-1]]) + ' and ' + f'"{allowed_keys[-1]}"'
131
128
  print(f'There are up to {max_keys} hostnames currently supported: {shorthand_list}')
132
- if "/ini.html" in hostnames_link:
133
- data = build_ini_from_ini_html(hostnames_link)
134
- else:
135
- data = requests.get(hostnames_link).text
129
+ data = requests.get(hostnames_link).text
136
130
  results = extract_kv_pairs(data, allowed_keys)
137
131
 
138
132
  extracted_hostnames = 0
@@ -397,60 +391,9 @@ def check_flaresolverr(shared_state, flaresolverr_url):
397
391
  print(f"Failed to connect to FlareSolverr: {e}")
398
392
  return False
399
393
 
400
-
401
- def make_raw_pastebin_link(url):
402
- """
403
- Takes a Pastebin URL and ensures it is a raw link.
404
- If it's not a Pastebin URL, it returns the URL unchanged.
405
- """
406
- # Check if the URL is already a raw Pastebin link
407
- if re.match(r"https?://(?:www\.)?pastebin\.com/raw/\w+", url):
408
- return url # Already raw, return as is
409
-
410
- # Check if the URL is a standard Pastebin link
411
- pastebin_pattern = r"https?://(?:www\.)?pastebin\.com/(\w+)"
412
- match = re.match(pastebin_pattern, url)
413
-
414
- if match:
415
- paste_id = match.group(1)
416
- print(f"The link you provided is not a raw Pastebin link. Attempting to convert it to a raw link from {url}...")
417
- return f"https://pastebin.com/raw/{paste_id}"
418
-
419
- return url # Not a Pastebin link, return unchanged
420
-
421
-
422
- def build_ini_from_ini_html(url: str) -> str:
423
- def get(u: str) -> str:
424
- r = requests.get(u, timeout=10)
425
- r.raise_for_status()
426
- return r.text
427
-
428
- parsed = urlparse(url)
429
- params = parse_qs(parsed.query)
430
-
431
- data_js = get(urljoin(f"{parsed.scheme}://{parsed.netloc}", "data.js"))
432
-
433
- hostnames = dukpy.evaljs("""
434
- var window = {};
435
- %s
436
- window.HOSTNAMES;
437
- """ % data_js)
438
-
439
- excluded = set()
440
- if "exclude" in params:
441
- excluded = set(params["exclude"][0].split(","))
442
-
443
- lines = []
444
- for h in hostnames:
445
- if h["key"] not in excluded:
446
- lines.append(f"{h['key']} = {h['name']}")
447
-
448
- return "\n".join(lines) + "\n"
449
-
450
-
451
394
  def is_valid_url(url):
452
- if "https://pastebin.com/raw/eX4Mpl3" in url:
453
- print("Example URL detected. Please provide a valid URL found on pastebin or another public site!")
395
+ if "/raw/eX4Mpl3" in url:
396
+ print("Example URL detected. Please provide a valid URL found on pastebin or any other public site!")
454
397
  return False
455
398
 
456
399
  parsed = urlparse(url)
@@ -496,6 +439,8 @@ def extract_kv_pairs(input_text, allowed_keys):
496
439
  if match:
497
440
  key, value = match.groups()
498
441
  kv_pairs[key] = value
442
+ elif "[Hostnames]" in line:
443
+ pass
499
444
  else:
500
445
  print(f"Skipping line because it does not contain any supported hostname: {line}")
501
446
 
@@ -8,7 +8,7 @@ import requests
8
8
 
9
9
 
10
10
  def get_version():
11
- return "1.26.6"
11
+ return "1.26.7"
12
12
 
13
13
 
14
14
  def get_latest_version():
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: quasarr
3
- Version: 1.26.6
3
+ Version: 1.26.7
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
File without changes
File without changes
File without changes
File without changes