quasarr 1.22.0__tar.gz → 1.23.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 (83) hide show
  1. {quasarr-1.22.0 → quasarr-1.23.0}/PKG-INFO +1 -1
  2. {quasarr-1.22.0 → quasarr-1.23.0}/quasarr/api/captcha/__init__.py +65 -15
  3. {quasarr-1.22.0 → quasarr-1.23.0}/quasarr/downloads/sources/dl.py +2 -1
  4. {quasarr-1.22.0 → quasarr-1.23.0}/quasarr/providers/obfuscated.py +15 -0
  5. {quasarr-1.22.0 → quasarr-1.23.0}/quasarr/providers/version.py +1 -1
  6. {quasarr-1.22.0 → quasarr-1.23.0}/quasarr.egg-info/PKG-INFO +1 -1
  7. {quasarr-1.22.0 → quasarr-1.23.0}/LICENSE +0 -0
  8. {quasarr-1.22.0 → quasarr-1.23.0}/README.md +0 -0
  9. {quasarr-1.22.0 → quasarr-1.23.0}/quasarr/__init__.py +0 -0
  10. {quasarr-1.22.0 → quasarr-1.23.0}/quasarr/api/__init__.py +0 -0
  11. {quasarr-1.22.0 → quasarr-1.23.0}/quasarr/api/arr/__init__.py +0 -0
  12. {quasarr-1.22.0 → quasarr-1.23.0}/quasarr/api/config/__init__.py +0 -0
  13. {quasarr-1.22.0 → quasarr-1.23.0}/quasarr/api/sponsors_helper/__init__.py +0 -0
  14. {quasarr-1.22.0 → quasarr-1.23.0}/quasarr/api/statistics/__init__.py +0 -0
  15. {quasarr-1.22.0 → quasarr-1.23.0}/quasarr/downloads/__init__.py +0 -0
  16. {quasarr-1.22.0 → quasarr-1.23.0}/quasarr/downloads/linkcrypters/__init__.py +0 -0
  17. {quasarr-1.22.0 → quasarr-1.23.0}/quasarr/downloads/linkcrypters/al.py +0 -0
  18. {quasarr-1.22.0 → quasarr-1.23.0}/quasarr/downloads/linkcrypters/filecrypt.py +0 -0
  19. {quasarr-1.22.0 → quasarr-1.23.0}/quasarr/downloads/linkcrypters/hide.py +0 -0
  20. {quasarr-1.22.0 → quasarr-1.23.0}/quasarr/downloads/packages/__init__.py +0 -0
  21. {quasarr-1.22.0 → quasarr-1.23.0}/quasarr/downloads/sources/__init__.py +0 -0
  22. {quasarr-1.22.0 → quasarr-1.23.0}/quasarr/downloads/sources/al.py +0 -0
  23. {quasarr-1.22.0 → quasarr-1.23.0}/quasarr/downloads/sources/by.py +0 -0
  24. {quasarr-1.22.0 → quasarr-1.23.0}/quasarr/downloads/sources/dd.py +0 -0
  25. {quasarr-1.22.0 → quasarr-1.23.0}/quasarr/downloads/sources/dj.py +0 -0
  26. {quasarr-1.22.0 → quasarr-1.23.0}/quasarr/downloads/sources/dt.py +0 -0
  27. {quasarr-1.22.0 → quasarr-1.23.0}/quasarr/downloads/sources/dw.py +0 -0
  28. {quasarr-1.22.0 → quasarr-1.23.0}/quasarr/downloads/sources/he.py +0 -0
  29. {quasarr-1.22.0 → quasarr-1.23.0}/quasarr/downloads/sources/mb.py +0 -0
  30. {quasarr-1.22.0 → quasarr-1.23.0}/quasarr/downloads/sources/nk.py +0 -0
  31. {quasarr-1.22.0 → quasarr-1.23.0}/quasarr/downloads/sources/nx.py +0 -0
  32. {quasarr-1.22.0 → quasarr-1.23.0}/quasarr/downloads/sources/sf.py +0 -0
  33. {quasarr-1.22.0 → quasarr-1.23.0}/quasarr/downloads/sources/sj.py +0 -0
  34. {quasarr-1.22.0 → quasarr-1.23.0}/quasarr/downloads/sources/sl.py +0 -0
  35. {quasarr-1.22.0 → quasarr-1.23.0}/quasarr/downloads/sources/wd.py +0 -0
  36. {quasarr-1.22.0 → quasarr-1.23.0}/quasarr/downloads/sources/wx.py +0 -0
  37. {quasarr-1.22.0 → quasarr-1.23.0}/quasarr/providers/__init__.py +0 -0
  38. {quasarr-1.22.0 → quasarr-1.23.0}/quasarr/providers/cloudflare.py +0 -0
  39. {quasarr-1.22.0 → quasarr-1.23.0}/quasarr/providers/html_images.py +0 -0
  40. {quasarr-1.22.0 → quasarr-1.23.0}/quasarr/providers/html_templates.py +0 -0
  41. {quasarr-1.22.0 → quasarr-1.23.0}/quasarr/providers/imdb_metadata.py +0 -0
  42. {quasarr-1.22.0 → quasarr-1.23.0}/quasarr/providers/log.py +0 -0
  43. {quasarr-1.22.0 → quasarr-1.23.0}/quasarr/providers/myjd_api.py +0 -0
  44. {quasarr-1.22.0 → quasarr-1.23.0}/quasarr/providers/notifications.py +0 -0
  45. {quasarr-1.22.0 → quasarr-1.23.0}/quasarr/providers/sessions/__init__.py +0 -0
  46. {quasarr-1.22.0 → quasarr-1.23.0}/quasarr/providers/sessions/al.py +0 -0
  47. {quasarr-1.22.0 → quasarr-1.23.0}/quasarr/providers/sessions/dd.py +0 -0
  48. {quasarr-1.22.0 → quasarr-1.23.0}/quasarr/providers/sessions/dl.py +0 -0
  49. {quasarr-1.22.0 → quasarr-1.23.0}/quasarr/providers/sessions/nx.py +0 -0
  50. {quasarr-1.22.0 → quasarr-1.23.0}/quasarr/providers/shared_state.py +0 -0
  51. {quasarr-1.22.0 → quasarr-1.23.0}/quasarr/providers/statistics.py +0 -0
  52. {quasarr-1.22.0 → quasarr-1.23.0}/quasarr/providers/web_server.py +0 -0
  53. {quasarr-1.22.0 → quasarr-1.23.0}/quasarr/search/__init__.py +0 -0
  54. {quasarr-1.22.0 → quasarr-1.23.0}/quasarr/search/sources/__init__.py +0 -0
  55. {quasarr-1.22.0 → quasarr-1.23.0}/quasarr/search/sources/al.py +0 -0
  56. {quasarr-1.22.0 → quasarr-1.23.0}/quasarr/search/sources/by.py +0 -0
  57. {quasarr-1.22.0 → quasarr-1.23.0}/quasarr/search/sources/dd.py +0 -0
  58. {quasarr-1.22.0 → quasarr-1.23.0}/quasarr/search/sources/dj.py +0 -0
  59. {quasarr-1.22.0 → quasarr-1.23.0}/quasarr/search/sources/dl.py +0 -0
  60. {quasarr-1.22.0 → quasarr-1.23.0}/quasarr/search/sources/dt.py +0 -0
  61. {quasarr-1.22.0 → quasarr-1.23.0}/quasarr/search/sources/dw.py +0 -0
  62. {quasarr-1.22.0 → quasarr-1.23.0}/quasarr/search/sources/fx.py +0 -0
  63. {quasarr-1.22.0 → quasarr-1.23.0}/quasarr/search/sources/he.py +0 -0
  64. {quasarr-1.22.0 → quasarr-1.23.0}/quasarr/search/sources/mb.py +0 -0
  65. {quasarr-1.22.0 → quasarr-1.23.0}/quasarr/search/sources/nk.py +0 -0
  66. {quasarr-1.22.0 → quasarr-1.23.0}/quasarr/search/sources/nx.py +0 -0
  67. {quasarr-1.22.0 → quasarr-1.23.0}/quasarr/search/sources/sf.py +0 -0
  68. {quasarr-1.22.0 → quasarr-1.23.0}/quasarr/search/sources/sj.py +0 -0
  69. {quasarr-1.22.0 → quasarr-1.23.0}/quasarr/search/sources/sl.py +0 -0
  70. {quasarr-1.22.0 → quasarr-1.23.0}/quasarr/search/sources/wd.py +0 -0
  71. {quasarr-1.22.0 → quasarr-1.23.0}/quasarr/search/sources/wx.py +0 -0
  72. {quasarr-1.22.0 → quasarr-1.23.0}/quasarr/storage/__init__.py +0 -0
  73. {quasarr-1.22.0 → quasarr-1.23.0}/quasarr/storage/config.py +0 -0
  74. {quasarr-1.22.0 → quasarr-1.23.0}/quasarr/storage/setup.py +0 -0
  75. {quasarr-1.22.0 → quasarr-1.23.0}/quasarr/storage/sqlite_database.py +0 -0
  76. {quasarr-1.22.0 → quasarr-1.23.0}/quasarr.egg-info/SOURCES.txt +0 -0
  77. {quasarr-1.22.0 → quasarr-1.23.0}/quasarr.egg-info/dependency_links.txt +0 -0
  78. {quasarr-1.22.0 → quasarr-1.23.0}/quasarr.egg-info/entry_points.txt +0 -0
  79. {quasarr-1.22.0 → quasarr-1.23.0}/quasarr.egg-info/not-zip-safe +0 -0
  80. {quasarr-1.22.0 → quasarr-1.23.0}/quasarr.egg-info/requires.txt +0 -0
  81. {quasarr-1.22.0 → quasarr-1.23.0}/quasarr.egg-info/top_level.txt +0 -0
  82. {quasarr-1.22.0 → quasarr-1.23.0}/setup.cfg +0 -0
  83. {quasarr-1.22.0 → quasarr-1.23.0}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: quasarr
3
- Version: 1.22.0
3
+ Version: 1.23.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
@@ -13,11 +13,10 @@ from bottle import request, response, redirect
13
13
  import quasarr.providers.html_images as images
14
14
  from quasarr.downloads.linkcrypters.filecrypt import get_filecrypt_links, DLC
15
15
  from quasarr.downloads.packages import delete_package
16
+ from quasarr.providers import obfuscated
16
17
  from quasarr.providers import shared_state
17
18
  from quasarr.providers.html_templates import render_button, render_centered_html
18
19
  from quasarr.providers.log import info, debug
19
- from quasarr.providers.obfuscated import captcha_js, captcha_values, filecrypt_user_js, junkies_user_js, \
20
- keeplinks_user_js
21
20
  from quasarr.providers.statistics import StatsHelper
22
21
 
23
22
 
@@ -94,12 +93,21 @@ def setup_captcha_routes(app):
94
93
  for link in prioritized_links
95
94
  )
96
95
 
96
+ # ToLink uses nested arrays like FileCrypt: [["url", "mirror"]]
97
+ has_tolink_links = any(
98
+ ("tolink." in link[0] if isinstance(link, (list, tuple)) else "tolink." in link)
99
+ for link in prioritized_links
100
+ )
101
+
97
102
  if has_junkies_links:
98
103
  debug("Redirecting to Junkies CAPTCHA")
99
104
  redirect(f"/captcha/junkies?data={quote(encoded_payload)}")
100
105
  elif has_keeplinks_links:
101
106
  debug("Redirecting to KeepLinks CAPTCHA")
102
107
  redirect(f"/captcha/keeplinks?data={quote(encoded_payload)}")
108
+ elif has_tolink_links:
109
+ debug("Redirecting to ToLink CAPTCHA")
110
+ redirect(f"/captcha/tolink?data={quote(encoded_payload)}")
103
111
  elif filecrypt_session:
104
112
  debug(f'Redirecting to circle CAPTCHA')
105
113
  redirect(f"/captcha/circle?data={quote(encoded_payload)}")
@@ -122,7 +130,7 @@ def setup_captcha_routes(app):
122
130
  return {"error": f"Failed to decode payload: {str(e)}"}
123
131
 
124
132
  def render_userscript_section(url, package_id, title, password, provider_type="junkies"):
125
- """Render the userscript UI section for Junkies or KeepLinks pages
133
+ """Render the userscript UI section for Junkies, KeepLinks, or ToLink pages
126
134
 
127
135
  This is the MAIN solution for these providers (not a bypass/fallback).
128
136
 
@@ -131,10 +139,11 @@ def setup_captcha_routes(app):
131
139
  package_id: Package identifier
132
140
  title: Package title
133
141
  password: Package password
134
- provider_type: Either "junkies" or "keeplinks"
142
+ provider_type: Either "junkies", "keeplinks", or "tolink"
135
143
  """
136
144
 
137
- provider_name = "Junkies" if provider_type == "junkies" else "KeepLinks"
145
+ provider_names = {"junkies": "Junkies", "keeplinks": "KeepLinks", "tolink": "ToLink"}
146
+ provider_name = provider_names.get(provider_type, "Provider")
138
147
  userscript_url = f"/captcha/{provider_type}.user.js"
139
148
  storage_key = f"hide{provider_name}SetupInstructions"
140
149
 
@@ -287,24 +296,65 @@ def setup_captcha_routes(app):
287
296
  </body>
288
297
  </html>""")
289
298
 
299
+ @app.get("/captcha/tolink")
300
+ def serve_tolink_captcha():
301
+ payload = decode_payload()
302
+
303
+ if "error" in payload:
304
+ return render_centered_html(f'''<h1><img src="{images.logo}" type="image/png" alt="Quasarr logo" class="logo"/>Quasarr</h1>
305
+ <p>{payload["error"]}</p>
306
+ <p>
307
+ {render_button("Back", "secondary", {"onclick": "location.href='/'"})}
308
+ </p>''')
309
+
310
+ package_id = payload.get("package_id")
311
+ title = payload.get("title")
312
+ password = payload.get("password")
313
+ urls = payload.get("links")
314
+ # ToLink uses nested arrays like FileCrypt: [["url", "mirror"]]
315
+ url = urls[0][0] if isinstance(urls[0], (list, tuple)) else urls[0]
316
+
317
+ return render_centered_html(f"""
318
+ <!DOCTYPE html>
319
+ <html>
320
+ <body>
321
+ <h1><img src="{images.logo}" type="image/png" alt="Quasarr logo" class="logo"/>Quasarr</h1>
322
+ <p><b>Package:</b> {title}</p>
323
+ {render_userscript_section(url, package_id, title, password, "tolink")}
324
+ <p>
325
+ {render_button("Delete Package", "secondary", {"onclick": f"location.href='/captcha/delete/{package_id}'"})}
326
+ </p>
327
+ <p>
328
+ {render_button("Back", "secondary", {"onclick": "location.href='/'"})}
329
+ </p>
330
+
331
+ </body>
332
+ </html>""")
333
+
290
334
  @app.get('/captcha/junkies.user.js')
291
335
  def serve_junkies_user_js():
292
336
  sj = shared_state.values["config"]("Hostnames").get("sj")
293
337
  dj = shared_state.values["config"]("Hostnames").get("dj")
294
338
 
295
- content = junkies_user_js(sj, dj)
339
+ content = obfuscated.junkies_user_js(sj, dj)
296
340
  response.content_type = 'application/javascript'
297
341
  return content
298
342
 
299
343
  @app.get('/captcha/keeplinks.user.js')
300
344
  def serve_keeplinks_user_js():
301
- content = keeplinks_user_js()
345
+ content = obfuscated.keeplinks_user_js()
346
+ response.content_type = 'application/javascript'
347
+ return content
348
+
349
+ @app.get('/captcha/tolink.user.js')
350
+ def serve_tolink_user_js():
351
+ content = obfuscated.tolink_user_js()
302
352
  response.content_type = 'application/javascript'
303
353
  return content
304
354
 
305
355
  @app.get('/captcha/filecrypt.user.js')
306
356
  def serve_filecrypt_user_js():
307
- content = filecrypt_user_js()
357
+ content = obfuscated.filecrypt_user_js()
308
358
  response.content_type = 'application/javascript'
309
359
  return content
310
360
 
@@ -631,7 +681,7 @@ def setup_captcha_routes(app):
631
681
 
632
682
  content = render_centered_html(r'''
633
683
  <script type="text/javascript">
634
- var api_key = "''' + captcha_values()["api_key"] + r'''";
684
+ var api_key = "''' + obfuscated.captcha_values()["api_key"] + r'''";
635
685
  var endpoint = '/' + window.location.pathname.split('/')[1] + '/' + api_key + '.html';
636
686
  var solveAnotherHtml = `<p>''' + solve_another_html + r'''</p><p>''' + back_button_html + r'''</p>`;
637
687
  var noMoreHtml = `<p><b>No more CAPTCHAs</b></p><p>''' + back_button_html + r'''</p>`;
@@ -685,7 +735,7 @@ def setup_captcha_routes(app):
685
735
  reloadSection.style.display = "block";
686
736
  });
687
737
  }
688
- ''' + captcha_js() + f'''</script>
738
+ ''' + obfuscated.captcha_js() + f'''</script>
689
739
  <div>
690
740
  <h1><img src="{images.logo}" type="image/png" alt="Quasarr logo" class="logo"/>Quasarr</h1>
691
741
  <p id="package-title" style="max-width: 370px; word-wrap: break-word; overflow-wrap: break-word;"><b>Package:</b> {title}</p>
@@ -720,7 +770,7 @@ def setup_captcha_routes(app):
720
770
 
721
771
  @app.post('/captcha/<captcha_id>.html')
722
772
  def proxy_html(captcha_id):
723
- target_url = f"{captcha_values()["url"]}/captcha/{captcha_id}.html"
773
+ target_url = f"{obfuscated.captcha_values()["url"]}/captcha/{captcha_id}.html"
724
774
 
725
775
  headers = {key: value for key, value in request.headers.items() if key != 'Host'}
726
776
  data = request.body.read()
@@ -740,7 +790,7 @@ def setup_captcha_routes(app):
740
790
 
741
791
  @app.post('/captcha/<captcha_id>.json')
742
792
  def proxy_json(captcha_id):
743
- target_url = f"{captcha_values()["url"]}/captcha/{captcha_id}.json"
793
+ target_url = f"{obfuscated.captcha_values()["url"]}/captcha/{captcha_id}.json"
744
794
 
745
795
  headers = {key: value for key, value in request.headers.items() if key != 'Host'}
746
796
  data = request.body.read()
@@ -751,7 +801,7 @@ def setup_captcha_routes(app):
751
801
 
752
802
  @app.get('/captcha/js/<filename>')
753
803
  def serve_local_js(filename):
754
- upstream = f"{captcha_values()['url']}/{filename}"
804
+ upstream = f"{obfuscated.captcha_values()['url']}/{filename}"
755
805
  try:
756
806
  upstream_resp = requests.get(upstream, verify=False, stream=True)
757
807
  upstream_resp.raise_for_status()
@@ -764,7 +814,7 @@ def setup_captcha_routes(app):
764
814
 
765
815
  @app.get('/captcha/<captcha_id>/<uuid>/<filename>')
766
816
  def proxy_pngs(captcha_id, uuid, filename):
767
- new_url = f"{captcha_values()["url"]}/captcha/{captcha_id}/{uuid}/{filename}"
817
+ new_url = f"{obfuscated.captcha_values()["url"]}/captcha/{captcha_id}/{uuid}/{filename}"
768
818
 
769
819
  try:
770
820
  external_response = requests.get(new_url, stream=True, verify=False)
@@ -779,7 +829,7 @@ def setup_captcha_routes(app):
779
829
 
780
830
  @app.post('/captcha/<captcha_id>/check')
781
831
  def proxy_check(captcha_id):
782
- new_url = f"{captcha_values()["url"]}/captcha/{captcha_id}/check"
832
+ new_url = f"{obfuscated.captcha_values()["url"]}/captcha/{captcha_id}/check"
783
833
  headers = {key: value for key, value in request.headers.items()}
784
834
 
785
835
  data = request.body.read()
@@ -113,13 +113,14 @@ def extract_links_and_password_from_post(post_content, host):
113
113
  continue
114
114
 
115
115
  # Check supported link crypters
116
- crypter_type = None
117
116
  if re.search(r'filecrypt\.', href, re.IGNORECASE):
118
117
  crypter_type = "filecrypt"
119
118
  elif re.search(r'hide\.', href, re.IGNORECASE):
120
119
  crypter_type = "hide"
121
120
  elif re.search(r'keeplinks\.', href, re.IGNORECASE):
122
121
  crypter_type = "keeplinks"
122
+ elif re.search(r'tolink\.', href, re.IGNORECASE):
123
+ crypter_type = "tolink"
123
124
  else:
124
125
  debug(f"Unsupported link crypter/hoster found: {href}")
125
126
  debug(f"Currently only filecrypt and hide are supported. Other crypters may be added later.")
@@ -64,3 +64,18 @@ def keeplinks_user_js():
64
64
 
65
65
  function _0x3695(_0x278807,_0x2b65bd){_0x278807=_0x278807-0x17d;const _0x3dc246=_0x3dc2();let _0x3695cf=_0x3dc246[_0x278807];return _0x3695cf;}function _0x3dc2(){const _0x421136=['includes','_blank','🛡️\x20[KL-Blocker]\x20Initializing\x20script\x20blocker','loading','get','❌\x20[KL-Helper]\x20Pako\x20failed\x20to\x20load','onerror','\x20final\x20link(s)','📋\x20[KL-Helper]\x20Extracted\x20','display','530118ZOUBqq','kl_pkg_pass','✅\x20[KL-Helper]\x20Submitting\x20form\x20with\x20password','https://cdnjs.cloudflare.com/ajax/libs/pako/2.1.0/pako.min.js','toLowerCase','728459bcsHYn','google.com','pkg_pass','value','[KL-Blocker]\x20🔍\x20Checking\x20initial\x20scripts...','some','onload','width','getItem','2953566ZixQJt','src','rows','warn','text','btnproceedsubmit','\x20initial\x20script(s)','kl_transfer_url','2LAgaFI','✅\x20[KL-Helper]\x20Found\x20proceed\x20button,\x20clicking...','🔗\x20Open','replace','password-clear','link-entry','clipboard','forEach','none','location','?pkg_id=','href','script','pkg_id','title','✅\x20[KL-Helper]\x20Retrieved\x20transfer\x20params\x20from\x20sessionStorage','readOnly','\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<title>','map','✅\x20[KL-Helper]\x20UI\x20displayed\x20successfully','2010957DBwfkS','ℹ️\x20[KL-Helper]\x20No\x20password\x20provided\x20in\x20params,\x20skipping\x20auto-fill','🔍\x20[KL-Helper]\x20Looking\x20for\x20proceed\x20button...','[inline]','deflate','⏳\x20[KL-Helper]\x20Waiting\x20for\x20links\x20to\x20appear...','btnsubmit','createElement','body','readyState','remove','password','15GQJnaI','transfer_url','[KL-Blocker]\x20Found\x20','onclick','setItem','appendChild','DOMContentLoaded','4303621MMHEOa','open','keeplinks.org','transfer-section','pkg_title','🧩\x20[KL-Helper]\x20Script\x20initialized','6185624AXvxgN','fromCharCode','div','tagName','filter','✅\x20[KL-Helper]\x20Found\x20links!','removeItem','✅\x20[KL-Helper]\x20Pako\x20loaded','btnchange','textarea.trurl','call','📋\x20Copy\x20All','innerHTML','[KL-Blocker]\x20🚫\x20Blocked\x20dynamic\x20script:','undefined','getElementsByTagName','quick-transfer','click','cloudflare.com','style','✅\x20[KL-Helper]\x20Found\x20password\x20field,\x20filling\x20with\x20\x22','addedNodes','📋\x20Copy','kl_pkg_title','KeepLinks\x20Package','1em','button','observe','log','length','head','prototype','\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<h2>⚡\x20Quick\x20Transfer\x20to\x20Quasarr</h2>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<p>Send\x20these\x20','getElementById','min','🔑\x20[KL-Helper]\x20Checking\x20for\x20password\x20input...','</title>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<style>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20body\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-family:\x20sans-serif;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20padding:\x202em;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20background:\x20#f9f9f9;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20color:\x20#333;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20h1\x20{\x20font-size:\x201.5em;\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20input\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20width:\x2080%;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20padding:\x200.5em;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20margin-right:\x200.5em;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20button\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20padding:\x200.5em\x201em;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20background:\x20#007bff;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20color:\x20white;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border:\x20none;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border-radius:\x205px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20cursor:\x20pointer;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20button:hover\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20background:\x20#0056b3;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20button.transfer\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20background:\x20#6f42c1\x20!important;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-size:\x201.1em;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20padding:\x200.7em\x201.5em;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20margin:\x201em\x200;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20button.transfer:hover\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20background:\x20#5a32a3\x20!important;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20div.link-entry\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20margin-bottom:\x201em;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#transfer-section\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20margin:\x202em\x200;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20padding:\x201.5em;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20background:\x20#e7f3ff\x20!important;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border:\x202px\x20solid\x20#6f42c1\x20!important;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border-radius:\x208px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</style>\x0a\x20\x20\x20\x20\x20\x20\x20\x20','className','📃\x20[KL-Helper]\x20Showing\x20','</h1>','[KL-Blocker]\x20❌\x20REMOVING\x20script:','1897848ZINzRz','error','\x20link(s)\x20directly\x20to\x20your\x20Quasarr\x20instance</p>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20class=\x22transfer\x22\x20id=\x22quick-transfer\x22>🚀\x20Transfer\x20to\x20Quasarr</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20','textContent','Compression\x20library\x20not\x20loaded.\x20Please\x20refresh\x20and\x20try\x20again.'];_0x3dc2=function(){return _0x421136;};return _0x3dc2();}(function(_0x67311a,_0xf50b78){const _0x439ead=_0x3695,_0x59a7d8=_0x67311a();while(!![]){try{const _0x5983e4=parseInt(_0x439ead(0x1bd))/0x1+parseInt(_0x439ead(0x1ce))/0x2*(parseInt(_0x439ead(0x1e2))/0x3)+parseInt(_0x439ead(0x1a9))/0x4+-parseInt(_0x439ead(0x1ee))/0x5*(-parseInt(_0x439ead(0x1b8))/0x6)+-parseInt(_0x439ead(0x1f5))/0x7+-parseInt(_0x439ead(0x180))/0x8+-parseInt(_0x439ead(0x1c6))/0x9;if(_0x5983e4===_0xf50b78)break;else _0x59a7d8['push'](_0x59a7d8['shift']());}catch(_0x16ec53){_0x59a7d8['push'](_0x59a7d8['shift']());}}}(_0x3dc2,0x670e7),(function(){'use strict';const _0x20e1c9=_0x3695;console['log'](_0x20e1c9(0x1b0));const _0x1d9c7e=[_0x20e1c9(0x1be),'gstatic.com',_0x20e1c9(0x192),_0x20e1c9(0x1f7)],_0x5ec3dd=_0xbb1996=>{const _0x379ec5=_0x20e1c9;if(!_0xbb1996[_0x379ec5(0x1c7)])return!![];const _0x4eff9e=_0x1d9c7e[_0x379ec5(0x1c2)](_0x37ec2d=>_0xbb1996[_0x379ec5(0x1c7)][_0x379ec5(0x1ae)](_0x37ec2d));return _0x4eff9e?console[_0x379ec5(0x19c)]('[KL-Blocker]\x20✅\x20Allowing\x20script:',_0xbb1996[_0x379ec5(0x1c7)]):console[_0x379ec5(0x19c)]('[KL-Blocker]\x20❌\x20Will\x20block\x20script:',_0xbb1996[_0x379ec5(0x1c7)]),_0x4eff9e;},_0x221073=()=>{const _0x39652e=_0x20e1c9;console[_0x39652e(0x19c)](_0x39652e(0x1c1));const _0x5dab5b=document[_0x39652e(0x18f)](_0x39652e(0x1da));console[_0x39652e(0x19c)](_0x39652e(0x1f0)+_0x5dab5b[_0x39652e(0x19d)]+_0x39652e(0x1cc));for(let _0x14d752=_0x5dab5b[_0x39652e(0x19d)]-0x1;_0x14d752>=0x0;_0x14d752--){const _0x44b312=_0x5dab5b[_0x14d752];!_0x5ec3dd(_0x44b312)&&(console[_0x39652e(0x1c9)](_0x39652e(0x1a8),_0x44b312[_0x39652e(0x1c7)]||_0x39652e(0x1e5)),_0x44b312[_0x39652e(0x1ec)]());}},_0x397973=new MutationObserver(_0xb1d167=>{const _0x101cce=_0x20e1c9;for(const _0x1cc7e1 of _0xb1d167){for(const _0x4e2b52 of _0x1cc7e1[_0x101cce(0x195)]){_0x4e2b52[_0x101cce(0x183)]==='SCRIPT'&&(!_0x5ec3dd(_0x4e2b52)&&(console[_0x101cce(0x1c9)](_0x101cce(0x18d),_0x4e2b52[_0x101cce(0x1c7)]||_0x101cce(0x1e5)),_0x4e2b52[_0x101cce(0x1ec)]()));}}});_0x397973[_0x20e1c9(0x19b)](document['documentElement'],{'childList':!![],'subtree':!![]});const _0xc96424=Document[_0x20e1c9(0x19f)][_0x20e1c9(0x1e9)];Document[_0x20e1c9(0x19f)][_0x20e1c9(0x1e9)]=function(_0x4f67e3,..._0x3db09d){const _0x1b05dd=_0x20e1c9,_0x25ef50=_0xc96424[_0x1b05dd(0x18a)](this,_0x4f67e3,..._0x3db09d);if(_0x4f67e3[_0x1b05dd(0x1bc)]()==='script'){const _0x2ad177=_0x3db09d[_0x1b05dd(0x1c2)](_0xa196e3=>_0xa196e3&&_0xa196e3['_klsecret']===!![]);_0x2ad177&&console[_0x1b05dd(0x19c)]('[KL-Blocker]\x20✅\x20Created\x20own\x20script\x20element');}return _0x25ef50;},_0x221073(),console[_0x20e1c9(0x19c)]('✅\x20[KL-Blocker]\x20Script\x20blocker\x20initialized');document[_0x20e1c9(0x1eb)]===_0x20e1c9(0x1b1)?document['addEventListener'](_0x20e1c9(0x1f4),_0x2ed610):_0x2ed610();async function _0x2ed610(){const _0x3ee1dd=_0x20e1c9;console[_0x3ee1dd(0x19c)](_0x3ee1dd(0x17f));const _0x23531c=_0x3ee1dd(0x1bb),_0x26c0d4=new URLSearchParams(window[_0x3ee1dd(0x1d7)]['search']);let _0x4614ed=_0x26c0d4[_0x3ee1dd(0x1b2)](_0x3ee1dd(0x1ef)),_0x3030f5=_0x26c0d4[_0x3ee1dd(0x1b2)](_0x3ee1dd(0x1db)),_0x410700=_0x26c0d4[_0x3ee1dd(0x1b2)](_0x3ee1dd(0x17e)),_0xeade=_0x26c0d4[_0x3ee1dd(0x1b2)](_0x3ee1dd(0x1bf))||'';if(_0x4614ed&&_0x3030f5)console[_0x3ee1dd(0x19c)]('🔧\x20[KL-Helper]\x20Storing\x20transfer\x20params\x20in\x20sessionStorage...'),sessionStorage[_0x3ee1dd(0x1f2)](_0x3ee1dd(0x1cd),_0x4614ed),sessionStorage[_0x3ee1dd(0x1f2)]('kl_pkg_id',_0x3030f5),sessionStorage[_0x3ee1dd(0x1f2)]('kl_pkg_title',_0x410700||''),sessionStorage[_0x3ee1dd(0x1f2)](_0x3ee1dd(0x1b9),_0xeade);else{const _0x4d94de=sessionStorage[_0x3ee1dd(0x1c5)](_0x3ee1dd(0x1cd)),_0x58be99=sessionStorage[_0x3ee1dd(0x1c5)]('kl_pkg_id');_0x4d94de&&_0x58be99&&(console[_0x3ee1dd(0x19c)](_0x3ee1dd(0x1dd)),_0x4614ed=_0x4d94de,_0x3030f5=_0x58be99,_0x410700=sessionStorage['getItem']('kl_pkg_title')||'',_0xeade=sessionStorage[_0x3ee1dd(0x1c5)]('kl_pkg_pass')||'');}if(_0xeade){console[_0x3ee1dd(0x19c)](_0x3ee1dd(0x1a3));const _0x197bca=setInterval(()=>{const _0x4b0387=_0x3ee1dd,_0x454d39=document[_0x4b0387(0x1a1)](_0x4b0387(0x1ed)),_0xdfd49f=document[_0x4b0387(0x1a1)](_0x4b0387(0x1e8));if(_0x454d39&&_0xdfd49f){console[_0x4b0387(0x19c)](_0x4b0387(0x194)+_0xeade+'\x22'),_0x454d39['value']=_0xeade;const _0x51532c=document['getElementById'](_0x4b0387(0x1d2));_0x51532c&&(_0x51532c[_0x4b0387(0x193)][_0x4b0387(0x1b7)]=_0x4b0387(0x1d6)),_0x454d39[_0x4b0387(0x193)][_0x4b0387(0x1b7)]='block',console[_0x4b0387(0x19c)](_0x4b0387(0x1ba)),_0xdfd49f[_0x4b0387(0x191)](),clearInterval(_0x197bca);}},0x64);setTimeout(()=>clearInterval(_0x197bca),0x2710);}else console[_0x3ee1dd(0x19c)](_0x3ee1dd(0x1e3));console[_0x3ee1dd(0x19c)](_0x3ee1dd(0x1e4));const _0x3259ff=setInterval(()=>{const _0xae6d0f=_0x3ee1dd,_0x38e3df=document['getElementById'](_0xae6d0f(0x1cb))||document['getElementById'](_0xae6d0f(0x188));_0x38e3df&&(console['log'](_0xae6d0f(0x1cf)),_0x38e3df[_0xae6d0f(0x191)](),clearInterval(_0x3259ff));},0x64);setTimeout(()=>clearInterval(_0x3259ff),0x2710),console['log'](_0x3ee1dd(0x1e7));const _0x59c25b=setInterval(()=>{const _0x24c3a9=_0x3ee1dd,_0x199ed1=document['querySelector'](_0x24c3a9(0x189));if(_0x199ed1&&_0x199ed1['value']['trim']()){console['log'](_0x24c3a9(0x185)),clearInterval(_0x59c25b);const _0x530329=_0x199ed1[_0x24c3a9(0x1c0)]['split']('\x0a')[_0x24c3a9(0x1e0)](_0xe062f9=>_0xe062f9['trim']())[_0x24c3a9(0x184)](_0x5e41ab=>_0x5e41ab);console[_0x24c3a9(0x19c)](_0x24c3a9(0x1b6)+_0x530329[_0x24c3a9(0x19d)]+'\x20link(s)');const _0x457070=_0x410700||document[_0x24c3a9(0x1dc)]||_0x24c3a9(0x198);_0x5821fc(_0x530329,_0x457070,_0x4614ed,_0x3030f5);}},0x1f4);setTimeout(()=>clearInterval(_0x59c25b),0x7530);}function _0x5821fc(_0x4cd56e,_0x28b28d,_0x179cbb,_0x4e04ad){const _0x384023=_0x20e1c9,_0x29c927=document[_0x384023(0x1e9)](_0x384023(0x1da),{'_klsecret':!![]});_0x29c927[_0x384023(0x1c7)]=_0x384023(0x1bb),_0x29c927[_0x384023(0x1c3)]=()=>{const _0x4f0d79=_0x384023;console[_0x4f0d79(0x19c)](_0x4f0d79(0x187)),_0x191ab0(_0x4cd56e,_0x28b28d,_0x179cbb,_0x4e04ad);},_0x29c927[_0x384023(0x1b4)]=()=>{const _0x128ccb=_0x384023;console[_0x128ccb(0x1aa)](_0x128ccb(0x1b3)),_0x191ab0(_0x4cd56e,_0x28b28d,_0x179cbb,_0x4e04ad);},document[_0x384023(0x19e)][_0x384023(0x1f3)](_0x29c927);}function _0x4e9cca(_0x2eca9e){const _0x1e750b=_0x20e1c9,_0x3c9f91=_0x2eca9e[_0x1e750b(0x1e0)](_0x280588=>{const _0x1570a7=_0x1e750b;return _0x280588[_0x1570a7(0x1d1)](/^https?:\/\//,'');})['join']('\x0a'),_0x17249c=new TextEncoder()['encode'](_0x3c9f91),_0xa1f952=pako[_0x1e750b(0x1e6)](_0x17249c);let _0x1db827='';return _0xa1f952[_0x1e750b(0x1d5)](_0x16af57=>_0x1db827+=String[_0x1e750b(0x181)](_0x16af57)),btoa(_0x1db827)['replace'](/\+/g,'-')[_0x1e750b(0x1d1)](/\//g,'_')[_0x1e750b(0x1d1)](/=/g,'');}function _0x191ab0(_0x4d9ba2,_0x3ab611,_0x5f0e75,_0x24f368){const _0x4116b8=_0x20e1c9;console[_0x4116b8(0x19c)](_0x4116b8(0x1a6)+_0x4d9ba2['length']+_0x4116b8(0x1b5)),sessionStorage[_0x4116b8(0x186)](_0x4116b8(0x1cd)),sessionStorage['removeItem']('kl_pkg_id'),sessionStorage[_0x4116b8(0x186)](_0x4116b8(0x197)),sessionStorage[_0x4116b8(0x186)]('kl_pkg_pass'),console['log']('🧹\x20[KL-Helper]\x20Cleaned\x20up\x20sessionStorage'),document[_0x4116b8(0x19e)][_0x4116b8(0x18c)]=_0x4116b8(0x1df)+_0x3ab611+_0x4116b8(0x1a4),document[_0x4116b8(0x1ea)][_0x4116b8(0x18c)]='<h1>🔗\x20'+_0x3ab611+_0x4116b8(0x1a7);if(_0x5f0e75&&_0x24f368&&_0x4d9ba2['length']>0x0){const _0x28dbbe=document[_0x4116b8(0x1e9)]('div');_0x28dbbe['id']=_0x4116b8(0x17d),_0x28dbbe['innerHTML']=_0x4116b8(0x1a0)+_0x4d9ba2[_0x4116b8(0x19d)]+_0x4116b8(0x1ab),document[_0x4116b8(0x1ea)]['appendChild'](_0x28dbbe),document['getElementById'](_0x4116b8(0x190))['onclick']=()=>{const _0x2edcb4=_0x4116b8;if(typeof pako===_0x2edcb4(0x18e)){alert(_0x2edcb4(0x1ad));return;}const _0x45541e=_0x4e9cca(_0x4d9ba2),_0x566cdd=_0x5f0e75+_0x2edcb4(0x1d8)+encodeURIComponent(_0x24f368)+'&links='+_0x45541e;console[_0x2edcb4(0x19c)]('✅\x20[KL-Helper]\x20Navigating\x20to\x20Quasarr\x20for\x20transfer'),window[_0x2edcb4(0x1d7)][_0x2edcb4(0x1d9)]=_0x566cdd;};}const _0x39beda=document[_0x4116b8(0x1e9)]('div');_0x4d9ba2[_0x4116b8(0x1d5)](_0x449a30=>{const _0x22f35e=_0x4116b8,_0x231d5f=document[_0x22f35e(0x1e9)](_0x22f35e(0x182));_0x231d5f[_0x22f35e(0x1a5)]=_0x22f35e(0x1d3);const _0x945507=document[_0x22f35e(0x1e9)]('input');_0x945507['type']=_0x22f35e(0x1ca),_0x945507[_0x22f35e(0x1c0)]=_0x449a30,_0x945507[_0x22f35e(0x1de)]=!![];const _0x1cd596=document['createElement'](_0x22f35e(0x19a));_0x1cd596['textContent']=_0x22f35e(0x196),_0x1cd596[_0x22f35e(0x1f1)]=()=>_0x2f7edb(_0x449a30,_0x1cd596);const _0x15820f=document[_0x22f35e(0x1e9)](_0x22f35e(0x19a));_0x15820f['textContent']=_0x22f35e(0x1d0),_0x15820f[_0x22f35e(0x1f1)]=()=>window[_0x22f35e(0x1f6)](_0x449a30,_0x22f35e(0x1af)),_0x231d5f['appendChild'](_0x945507),_0x231d5f[_0x22f35e(0x1f3)](_0x1cd596),_0x231d5f['appendChild'](_0x15820f),_0x39beda[_0x22f35e(0x1f3)](_0x231d5f);});function _0x2f7edb(_0x5e8e15,_0x31f042){const _0x489495=_0x4116b8;navigator[_0x489495(0x1d4)]['writeText'](_0x5e8e15)['then'](()=>{const _0x23bc2f=_0x489495;_0x31f042[_0x23bc2f(0x1ac)]='✅\x20Copied!',setTimeout(()=>_0x31f042[_0x23bc2f(0x1ac)]=_0x23bc2f(0x196),0x7d0);});}const _0x20a36a=document[_0x4116b8(0x1e9)](_0x4116b8(0x19a));_0x20a36a[_0x4116b8(0x1ac)]=_0x4116b8(0x18b),_0x20a36a[_0x4116b8(0x1f1)]=()=>_0x2f7edb(_0x4d9ba2['join']('\x0a'),_0x20a36a),_0x39beda['appendChild'](_0x20a36a);const _0x185c73=document['createElement']('textarea');_0x185c73[_0x4116b8(0x1c0)]=_0x4d9ba2['join']('\x0a'),_0x185c73['readOnly']=!![],_0x185c73[_0x4116b8(0x1c8)]=Math[_0x4116b8(0x1a2)](_0x4d9ba2['length'],0xa),_0x185c73[_0x4116b8(0x193)][_0x4116b8(0x1c4)]='100%',_0x185c73['style']['marginTop']=_0x4116b8(0x199),document[_0x4116b8(0x1ea)][_0x4116b8(0x1f3)](_0x39beda),document[_0x4116b8(0x1ea)][_0x4116b8(0x1f3)](_0x185c73),console['log'](_0x4116b8(0x1e1));}}()));
66
66
  """
67
+
68
+ def tolink_user_js():
69
+ return r"""// ==UserScript==
70
+ // @name ToLink Quasarr Helper
71
+ // @namespace http://tampermonkey.net/
72
+ // @version 1.0
73
+ // @description Auto-fill password, extract links and Click'n'Load data, quick transfer to Quasarr
74
+ // @match *://tolink.to/*
75
+ // @match *://*.tolink.to/*
76
+ // @grant none
77
+ // @run-at document-start
78
+ // ==/UserScript==
79
+
80
+ function _0x312a(_0x32c091,_0x5b239c){_0x32c091=_0x32c091-0x125;const _0x4262f8=_0x4262();let _0x312abb=_0x4262f8[_0x32c091];return _0x312abb;}(function(_0x1fa678,_0x37aec3){const _0x51f7d3=_0x312a,_0x1d2400=_0x1fa678();while(!![]){try{const _0x1dd709=parseInt(_0x51f7d3(0x159))/0x1+parseInt(_0x51f7d3(0x126))/0x2+-parseInt(_0x51f7d3(0x18e))/0x3+parseInt(_0x51f7d3(0x186))/0x4+parseInt(_0x51f7d3(0x125))/0x5+-parseInt(_0x51f7d3(0x14d))/0x6*(-parseInt(_0x51f7d3(0x12f))/0x7)+-parseInt(_0x51f7d3(0x19f))/0x8;if(_0x1dd709===_0x37aec3)break;else _0x1d2400['push'](_0x1d2400['shift']());}catch(_0x41ec3b){_0x1d2400['push'](_0x1d2400['shift']());}}}(_0x4262,0x2764f),(function(){'use strict';const _0x4c8b57=_0x312a;console[_0x4c8b57(0x16e)]('🧩\x20[ToLink-Helper]\x20Script\x20initialized');document[_0x4c8b57(0x14a)]===_0x4c8b57(0x16f)?document[_0x4c8b57(0x190)]('DOMContentLoaded',_0x3cf78e):_0x3cf78e();function _0x3cf78e(){const _0x167db4=_0x4c8b57,_0x247e36=new URLSearchParams(window[_0x167db4(0x139)][_0x167db4(0x157)]),_0x541270=_0x247e36[_0x167db4(0x191)](_0x167db4(0x12b)),_0xd551be=_0x247e36[_0x167db4(0x191)](_0x167db4(0x154)),_0x2ec9df=_0x247e36[_0x167db4(0x191)](_0x167db4(0x128)),_0x4d9816=_0x247e36[_0x167db4(0x191)](_0x167db4(0x189))||'';_0x541270&&_0xd551be&&(console[_0x167db4(0x16e)](_0x167db4(0x170)),sessionStorage['setItem'](_0x167db4(0x15e),_0x541270),sessionStorage['setItem']('tl_pkg_id',_0xd551be),sessionStorage['setItem'](_0x167db4(0x195),_0x2ec9df||''),sessionStorage[_0x167db4(0x175)]('tl_pkg_pass',_0x4d9816));let _0x50b038=_0x541270||sessionStorage[_0x167db4(0x132)]('tl_transfer_url'),_0x105ad0=_0xd551be||sessionStorage['getItem']('tl_pkg_id'),_0x1c34eb=_0x2ec9df||sessionStorage[_0x167db4(0x132)]('tl_pkg_title')||'',_0x297645=_0x4d9816||sessionStorage['getItem'](_0x167db4(0x145))||'';const _0xa07a3f=document[_0x167db4(0x12e)](_0x167db4(0x142));if(_0xa07a3f){console[_0x167db4(0x16e)](_0x167db4(0x138));const _0x56067b=document[_0x167db4(0x12e)](_0x167db4(0x15d)),_0x37d7af=document[_0x167db4(0x12e)]('.g-recaptcha'),_0x3e0f31=document['querySelector'](_0x167db4(0x135)),_0x1e17bd=_0x56067b!==null,_0x168f99=_0x37d7af!==null;console[_0x167db4(0x16e)](_0x167db4(0x17d)+_0x1e17bd+_0x167db4(0x181)+_0x168f99);_0x1e17bd&&_0x297645&&(console['log'](_0x167db4(0x153)+_0x297645),_0x56067b[_0x167db4(0x169)]=_0x297645);if(_0x1e17bd&&!_0x168f99&&_0x297645&&_0x3e0f31)setTimeout(()=>{const _0x4bea51=_0x167db4;console['log'](_0x4bea51(0x160)),_0x3e0f31['click']();},0x1f4);else{if(_0x168f99)console['log']('ℹ️\x20[ToLink-Helper]\x20CAPTCHA\x20detected\x20-\x20password\x20filled,\x20please\x20solve\x20CAPTCHA\x20and\x20submit');else _0x1e17bd&&!_0x297645&&console['log'](_0x167db4(0x196));}return;}const _0x4a43f0=document[_0x167db4(0x12e)](_0x167db4(0x127));if(_0x4a43f0){console[_0x167db4(0x16e)](_0x167db4(0x17b));const _0x1060b4=_0x4a43f0[_0x167db4(0x12e)](_0x167db4(0x129)),_0x5ed19c=_0x4a43f0[_0x167db4(0x12e)](_0x167db4(0x172)),_0x36163c=_0x4a43f0[_0x167db4(0x12e)](_0x167db4(0x158)),_0x48d85c=_0x4a43f0[_0x167db4(0x12e)]('input[name=\x22source\x22]');if(_0x1060b4&&_0x5ed19c){const _0x46ba86={'crypted':_0x1060b4['value'],'jk':_0x5ed19c[_0x167db4(0x169)],'passwords':_0x36163c?_0x36163c['value']:'','source':_0x48d85c?_0x48d85c[_0x167db4(0x169)]:_0x167db4(0x193)};console[_0x167db4(0x16e)](_0x167db4(0x16c));const _0x41ea60=document[_0x167db4(0x12e)](_0x167db4(0x179)),_0x2860d4=_0x1c34eb||(_0x41ea60?_0x41ea60[_0x167db4(0x12d)][_0x167db4(0x14e)]():_0x167db4(0x171));_0x310b5a(_0x46ba86,_0x2860d4,_0x50b038,_0x105ad0);}else console['error'](_0x167db4(0x183));}}function _0x310b5a(_0x1f30e9,_0x6fc255,_0xea0f3d,_0x350e2a){const _0x245cd2=_0x4c8b57;console[_0x245cd2(0x16e)](_0x245cd2(0x143));const _0x494e65=_0x245cd2(0x166),_0x2e6a06=_0x245cd2(0x180),_0x46fd8d=document[_0x245cd2(0x15b)](_0x245cd2(0x13d));_0x46fd8d[_0x245cd2(0x199)]=_0x494e65,_0x46fd8d['onload']=()=>{const _0x237f44=_0x245cd2;console[_0x237f44(0x16e)](_0x237f44(0x19c));const _0x3d49b5=document['createElement'](_0x237f44(0x13d));_0x3d49b5[_0x237f44(0x199)]=_0x2e6a06,_0x3d49b5[_0x237f44(0x14f)]=()=>{const _0x3dcbee=_0x237f44;console[_0x3dcbee(0x16e)](_0x3dcbee(0x161));const _0x2d8526=_0x6183c9(_0x1f30e9);_0x2d8526&&_0x2d8526[_0x3dcbee(0x17a)]>0x0?(console[_0x3dcbee(0x16e)]('✅\x20[ToLink-Helper]\x20Decrypted\x20'+_0x2d8526[_0x3dcbee(0x17a)]+'\x20link(s)'),_0x28b454(_0x2d8526,_0x6fc255,_0xea0f3d,_0x350e2a)):(console['error'](_0x3dcbee(0x13a)),_0x28b454([],_0x6fc255,_0xea0f3d,_0x350e2a));},_0x3d49b5[_0x237f44(0x141)]=()=>{const _0x9e2f1e=_0x237f44;console[_0x9e2f1e(0x15c)](_0x9e2f1e(0x194)),_0x28b454([],_0x6fc255,_0xea0f3d,_0x350e2a);},document[_0x237f44(0x187)][_0x237f44(0x14c)](_0x3d49b5);},_0x46fd8d[_0x245cd2(0x141)]=()=>{const _0x4ccd9f=_0x245cd2;console[_0x4ccd9f(0x15c)](_0x4ccd9f(0x18d)),_0x28b454([],_0x6fc255,_0xea0f3d,_0x350e2a);},document[_0x245cd2(0x187)][_0x245cd2(0x14c)](_0x46fd8d);}function _0x6183c9(_0x407e5a){const _0x359150=_0x4c8b57;try{const _0x598ff3=_0x407e5a['jk']['match'](/return\s+'([0-9a-fA-F]+)'/);if(!_0x598ff3)return console[_0x359150(0x15c)]('❌\x20[ToLink-Helper]\x20Could\x20not\x20extract\x20key\x20from\x20jk'),null;const _0x16a304=_0x598ff3[0x1];console[_0x359150(0x16e)](_0x359150(0x12c));const _0x293154=CryptoJS[_0x359150(0x140)][_0x359150(0x131)](_0x407e5a[_0x359150(0x13e)],CryptoJS[_0x359150(0x1a1)][_0x359150(0x19b)][_0x359150(0x147)](_0x16a304),{'iv':CryptoJS[_0x359150(0x1a1)][_0x359150(0x19b)][_0x359150(0x147)](_0x16a304),'mode':CryptoJS[_0x359150(0x1a0)][_0x359150(0x163)],'padding':CryptoJS[_0x359150(0x19d)][_0x359150(0x130)]})[_0x359150(0x134)](CryptoJS['enc']['Utf8']),_0x21325b=_0x293154[_0x359150(0x137)](/[^\x20-\x7E\n]/g,'')[_0x359150(0x174)]('\x0a')[_0x359150(0x13c)](_0x3de447=>_0x3de447[_0x359150(0x14e)]())[_0x359150(0x173)](_0x5af375=>_0x5af375);return _0x21325b;}catch(_0x2fb476){return console[_0x359150(0x15c)](_0x359150(0x16a),_0x2fb476),null;}}function _0x28b454(_0x2f65e9,_0x454dc0,_0x4ffe3f,_0xcdfad8){const _0x47abef=_0x4c8b57;console['log'](_0x47abef(0x18b)+_0x2f65e9[_0x47abef(0x17a)]+_0x47abef(0x184)+_0x454dc0),sessionStorage['removeItem'](_0x47abef(0x15e)),sessionStorage[_0x47abef(0x168)](_0x47abef(0x182)),sessionStorage['removeItem'](_0x47abef(0x195)),sessionStorage[_0x47abef(0x168)]('tl_pkg_pass'),console['log'](_0x47abef(0x197)),document['head']['innerHTML']=_0x47abef(0x18f)+_0x454dc0+'</title>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<style>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20body\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-family:\x20sans-serif;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20padding:\x202em;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20background:\x20#f9f9f9;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20color:\x20#333;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20h1\x20{\x20font-size:\x201.5em;\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20input\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20width:\x2080%;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20padding:\x200.5em;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20margin-right:\x200.5em;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20button\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20padding:\x200.5em\x201em;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20background:\x20#007bff;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20color:\x20white;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border:\x20none;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border-radius:\x205px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20cursor:\x20pointer;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20button:hover\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20background:\x20#0056b3;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20button.transfer\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20background:\x20#6f42c1\x20!important;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-size:\x201.1em;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20padding:\x200.7em\x201.5em;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20margin:\x201em\x200;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20button.transfer:hover\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20background:\x20#5a32a3\x20!important;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20div.link-entry\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20margin-bottom:\x201em;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#transfer-section\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20margin:\x202em\x200;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20padding:\x201.5em;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20background:\x20#e7f3ff\x20!important;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border:\x202px\x20solid\x20#6f42c1\x20!important;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border-radius:\x208px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20textarea\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20width:\x20100%;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20padding:\x200.8em;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20margin-top:\x201em;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-family:\x20\x27Courier\x20New\x27,\x20monospace;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-size:\x200.9em;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20resize:\x20vertical;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</style>\x0a\x20\x20\x20\x20\x20\x20\x20\x20',document[_0x47abef(0x149)][_0x47abef(0x18c)]=_0x47abef(0x156)+_0x454dc0+_0x47abef(0x167);const _0x43aab9=document['createElement'](_0x47abef(0x164));if(_0x4ffe3f&&_0xcdfad8&&_0x2f65e9['length']>0x0){const _0x8a97de=document[_0x47abef(0x15b)](_0x47abef(0x164));_0x8a97de['id']=_0x47abef(0x148),_0x8a97de[_0x47abef(0x18c)]=_0x47abef(0x18a)+_0x2f65e9['length']+_0x47abef(0x15f),document[_0x47abef(0x149)][_0x47abef(0x14c)](_0x8a97de),document[_0x47abef(0x177)](_0x47abef(0x16b))['onclick']=()=>{const _0x5dce59=_0x47abef;if(typeof pako===_0x5dce59(0x16d)){alert(_0x5dce59(0x14b));return;}const _0x144d06=_0x2b1596(_0x2f65e9),_0x7b3a3c=_0x4ffe3f+_0x5dce59(0x136)+encodeURIComponent(_0xcdfad8)+_0x5dce59(0x133)+_0x144d06;console[_0x5dce59(0x16e)](_0x5dce59(0x165)),window[_0x5dce59(0x139)][_0x5dce59(0x144)]=_0x7b3a3c;};}if(_0x2f65e9['length']>0x0){_0x2f65e9[_0x47abef(0x185)](_0x46de40=>{const _0x35d99c=_0x47abef,_0xf74fd6=document[_0x35d99c(0x15b)](_0x35d99c(0x164));_0xf74fd6[_0x35d99c(0x198)]=_0x35d99c(0x151);const _0x5ca188=document[_0x35d99c(0x15b)](_0x35d99c(0x150));_0x5ca188[_0x35d99c(0x178)]=_0x35d99c(0x155),_0x5ca188[_0x35d99c(0x169)]=_0x46de40,_0x5ca188[_0x35d99c(0x188)]=!![];const _0x45adbc=document[_0x35d99c(0x15b)](_0x35d99c(0x13f));_0x45adbc['textContent']=_0x35d99c(0x19e),_0x45adbc[_0x35d99c(0x176)]=()=>_0x23b985(_0x46de40,_0x45adbc);const _0x3fdd38=document[_0x35d99c(0x15b)](_0x35d99c(0x13f));_0x3fdd38[_0x35d99c(0x12d)]=_0x35d99c(0x17c),_0x3fdd38['onclick']=()=>window[_0x35d99c(0x162)](_0x46de40,'_blank'),_0xf74fd6[_0x35d99c(0x14c)](_0x5ca188),_0xf74fd6[_0x35d99c(0x14c)](_0x45adbc),_0xf74fd6['appendChild'](_0x3fdd38),_0x43aab9[_0x35d99c(0x14c)](_0xf74fd6);});const _0x301f52=document['createElement'](_0x47abef(0x13f));_0x301f52[_0x47abef(0x12d)]='📋\x20Copy\x20All',_0x301f52[_0x47abef(0x176)]=()=>_0x23b985(_0x2f65e9['join']('\x0a'),_0x301f52),_0x43aab9['appendChild'](_0x301f52);const _0x27c348=document['createElement'](_0x47abef(0x192));_0x27c348[_0x47abef(0x169)]=_0x2f65e9[_0x47abef(0x13b)]('\x0a'),_0x27c348[_0x47abef(0x188)]=!![],_0x27c348['rows']=Math[_0x47abef(0x17e)](_0x2f65e9[_0x47abef(0x17a)],0xa),_0x43aab9['appendChild'](_0x27c348),document[_0x47abef(0x149)][_0x47abef(0x14c)](_0x43aab9);}else{const _0x3c13e0=document[_0x47abef(0x15b)]('p');_0x3c13e0[_0x47abef(0x12d)]=_0x47abef(0x19a),document['body'][_0x47abef(0x14c)](_0x3c13e0);}function _0x23b985(_0x4fc306,_0x26f0af){const _0xcde076=_0x47abef;navigator['clipboard'][_0xcde076(0x17f)](_0x4fc306)[_0xcde076(0x146)](()=>{const _0x17f68b=_0xcde076,_0x1850bd=_0x26f0af['textContent'];_0x26f0af['textContent']=_0x17f68b(0x12a),setTimeout(()=>_0x26f0af['textContent']=_0x1850bd,0x7d0);});}console[_0x47abef(0x16e)]('✅\x20[ToLink-Helper]\x20UI\x20displayed\x20successfully');}function _0x2b1596(_0x471d2f){const _0x2524ad=_0x4c8b57,_0x288306=_0x471d2f[_0x2524ad(0x13c)](_0x2d4a2d=>{const _0xc3f7a3=_0x2524ad;return _0x2d4a2d[_0xc3f7a3(0x137)](/^https?:\/\//,'');})['join']('\x0a'),_0x2a2f6f=new TextEncoder()['encode'](_0x288306),_0xcbebb0=pako[_0x2524ad(0x152)](_0x2a2f6f);let _0x5e2610='';return _0xcbebb0[_0x2524ad(0x185)](_0x4147bb=>_0x5e2610+=String[_0x2524ad(0x15a)](_0x4147bb)),btoa(_0x5e2610)['replace'](/\+/g,'-')[_0x2524ad(0x137)](/\//g,'_')[_0x2524ad(0x137)](/=/g,'');}}()));function _0x4262(){const _0x49e8ce=['?pkg_id=','replace','🔐\x20[ToLink-Helper]\x20Challenge\x20page\x20detected','location','❌\x20[ToLink-Helper]\x20Failed\x20to\x20decrypt\x20links','join','map','script','crypted','button','AES','onerror','form#challange','🔓\x20[ToLink-Helper]\x20Loading\x20decryption\x20libraries...','href','tl_pkg_pass','then','parse','transfer-section','body','readyState','Compression\x20library\x20not\x20loaded.\x20Please\x20refresh\x20and\x20try\x20again.','appendChild','2556goLQry','trim','onload','input','link-entry','deflate','🔑\x20[ToLink-Helper]\x20Auto-filling\x20password:\x20','pkg_id','text','<h1>🔗\x20','search','input[name=\x22passwords\x22]','233016DiUiyN','fromCharCode','createElement','error','#password','tl_transfer_url','\x20link(s)\x20directly\x20to\x20your\x20Quasarr\x20instance</p>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20class=\x22transfer\x22\x20id=\x22quick-transfer\x22>🚀\x20Transfer\x20to\x20Quasarr</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20','✅\x20[ToLink-Helper]\x20Auto-submitting\x20password-only\x20form','✅\x20[ToLink-Helper]\x20Pako\x20loaded','open','CBC','div','✅\x20[ToLink-Helper]\x20Navigating\x20to\x20Quasarr\x20for\x20transfer','https://cdnjs.cloudflare.com/ajax/libs/crypto-js/4.2.0/crypto-js.min.js','</h1>','removeItem','value','❌\x20[ToLink-Helper]\x20Decryption\x20error:','quick-transfer','📦\x20[ToLink-Helper]\x20Click\x27n\x27Load\x20data\x20extracted','undefined','log','loading','🔧\x20[ToLink-Helper]\x20Storing\x20transfer\x20params\x20in\x20sessionStorage...','ToLink.to\x20Package','input[name=\x22jk\x22]','filter','split','setItem','onclick','getElementById','type','h3.myapp-table-folder-h3','length','✅\x20[ToLink-Helper]\x20Final\x20page\x20detected,\x20extracting\x20Click\x27n\x27Load\x20data...','🔗\x20Open','ℹ️\x20[ToLink-Helper]\x20Has\x20password\x20field:\x20','min','writeText','https://cdnjs.cloudflare.com/ajax/libs/pako/2.1.0/pako.min.js',',\x20Has\x20CAPTCHA:\x20','tl_pkg_id','❌\x20[ToLink-Helper]\x20Could\x20not\x20find\x20Click\x27n\x27Load\x20data','\x20link(s)\x20for:\x20','forEach','955348FCqZyD','head','readOnly','pkg_pass','\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<h2>⚡\x20Quick\x20Transfer\x20to\x20Quasarr</h2>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<p>Send\x20these\x20','📃\x20[ToLink-Helper]\x20Displaying\x20','innerHTML','❌\x20[ToLink-Helper]\x20CryptoJS\x20failed\x20to\x20load','399150hTOEfy','\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<title>','addEventListener','get','textarea','https://tolink.to','❌\x20[ToLink-Helper]\x20Pako\x20failed\x20to\x20load','tl_pkg_title','⚠️\x20[ToLink-Helper]\x20Password\x20required\x20but\x20not\x20provided\x20in\x20params','🧹\x20[ToLink-Helper]\x20Cleaned\x20up\x20sessionStorage','className','src','No\x20links\x20available.','Hex','✅\x20[ToLink-Helper]\x20CryptoJS\x20loaded','pad','📋\x20Copy','4893376PNIUuS','mode','enc','523335yLkNim','249310xaQYVB','form#cnlForm','pkg_title','input[name=\x22crypted\x22]','✅\x20Copied!','transfer_url','🔑\x20[ToLink-Helper]\x20Extracted\x20key','textContent','querySelector','3367ojkrTe','Pkcs7','decrypt','getItem','&links=','toString','#submitChallange'];_0x4262=function(){return _0x49e8ce;};return _0x4262();}
81
+ """
@@ -8,7 +8,7 @@ import requests
8
8
 
9
9
 
10
10
  def get_version():
11
- return "1.22.0"
11
+ return "1.23.0"
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.22.0
3
+ Version: 1.23.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
File without changes
File without changes
File without changes
File without changes
File without changes