weeb-cli 2.4.1__tar.gz → 2.4.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.
Files changed (55) hide show
  1. {weeb_cli-2.4.1/weeb_cli.egg-info → weeb_cli-2.4.2}/PKG-INFO +1 -1
  2. {weeb_cli-2.4.1 → weeb_cli-2.4.2}/pyproject.toml +1 -1
  3. weeb_cli-2.4.2/weeb_cli/__init__.py +1 -0
  4. {weeb_cli-2.4.1 → weeb_cli-2.4.2}/weeb_cli/commands/settings.py +22 -5
  5. {weeb_cli-2.4.1 → weeb_cli-2.4.2}/weeb_cli/config.py +2 -1
  6. {weeb_cli-2.4.1 → weeb_cli-2.4.2}/weeb_cli/locales/en.json +1 -0
  7. {weeb_cli-2.4.1 → weeb_cli-2.4.2}/weeb_cli/locales/tr.json +1 -0
  8. {weeb_cli-2.4.1 → weeb_cli-2.4.2}/weeb_cli/services/shortcuts.py +8 -0
  9. {weeb_cli-2.4.1 → weeb_cli-2.4.2}/weeb_cli/ui/menu.py +27 -17
  10. {weeb_cli-2.4.1 → weeb_cli-2.4.2/weeb_cli.egg-info}/PKG-INFO +1 -1
  11. weeb_cli-2.4.1/weeb_cli/__init__.py +0 -1
  12. {weeb_cli-2.4.1 → weeb_cli-2.4.2}/LICENSE +0 -0
  13. {weeb_cli-2.4.1 → weeb_cli-2.4.2}/README.md +0 -0
  14. {weeb_cli-2.4.1 → weeb_cli-2.4.2}/setup.cfg +0 -0
  15. {weeb_cli-2.4.1 → weeb_cli-2.4.2}/weeb_cli/__main__.py +0 -0
  16. {weeb_cli-2.4.1 → weeb_cli-2.4.2}/weeb_cli/commands/downloads.py +0 -0
  17. {weeb_cli-2.4.1 → weeb_cli-2.4.2}/weeb_cli/commands/search.py +0 -0
  18. {weeb_cli-2.4.1 → weeb_cli-2.4.2}/weeb_cli/commands/setup.py +0 -0
  19. {weeb_cli-2.4.1 → weeb_cli-2.4.2}/weeb_cli/commands/watchlist.py +0 -0
  20. {weeb_cli-2.4.1 → weeb_cli-2.4.2}/weeb_cli/i18n.py +0 -0
  21. {weeb_cli-2.4.1 → weeb_cli-2.4.2}/weeb_cli/main.py +0 -0
  22. {weeb_cli-2.4.1 → weeb_cli-2.4.2}/weeb_cli/providers/__init__.py +0 -0
  23. {weeb_cli-2.4.1 → weeb_cli-2.4.2}/weeb_cli/providers/allanime.py +0 -0
  24. {weeb_cli-2.4.1 → weeb_cli-2.4.2}/weeb_cli/providers/animecix.py +0 -0
  25. {weeb_cli-2.4.1 → weeb_cli-2.4.2}/weeb_cli/providers/anizle.py +0 -0
  26. {weeb_cli-2.4.1 → weeb_cli-2.4.2}/weeb_cli/providers/base.py +0 -0
  27. {weeb_cli-2.4.1 → weeb_cli-2.4.2}/weeb_cli/providers/extractors/__init__.py +0 -0
  28. {weeb_cli-2.4.1 → weeb_cli-2.4.2}/weeb_cli/providers/extractors/megacloud.py +0 -0
  29. {weeb_cli-2.4.1 → weeb_cli-2.4.2}/weeb_cli/providers/hianime.py +0 -0
  30. {weeb_cli-2.4.1 → weeb_cli-2.4.2}/weeb_cli/providers/registry.py +0 -0
  31. {weeb_cli-2.4.1 → weeb_cli-2.4.2}/weeb_cli/providers/turkanime.py +0 -0
  32. {weeb_cli-2.4.1 → weeb_cli-2.4.2}/weeb_cli/services/__init__.py +0 -0
  33. {weeb_cli-2.4.1 → weeb_cli-2.4.2}/weeb_cli/services/database.py +0 -0
  34. {weeb_cli-2.4.1 → weeb_cli-2.4.2}/weeb_cli/services/dependency_manager.py +0 -0
  35. {weeb_cli-2.4.1 → weeb_cli-2.4.2}/weeb_cli/services/details.py +0 -0
  36. {weeb_cli-2.4.1 → weeb_cli-2.4.2}/weeb_cli/services/discord_rpc.py +0 -0
  37. {weeb_cli-2.4.1 → weeb_cli-2.4.2}/weeb_cli/services/downloader.py +0 -0
  38. {weeb_cli-2.4.1 → weeb_cli-2.4.2}/weeb_cli/services/local_library.py +0 -0
  39. {weeb_cli-2.4.1 → weeb_cli-2.4.2}/weeb_cli/services/logger.py +0 -0
  40. {weeb_cli-2.4.1 → weeb_cli-2.4.2}/weeb_cli/services/notifier.py +0 -0
  41. {weeb_cli-2.4.1 → weeb_cli-2.4.2}/weeb_cli/services/player.py +0 -0
  42. {weeb_cli-2.4.1 → weeb_cli-2.4.2}/weeb_cli/services/progress.py +0 -0
  43. {weeb_cli-2.4.1 → weeb_cli-2.4.2}/weeb_cli/services/scraper.py +0 -0
  44. {weeb_cli-2.4.1 → weeb_cli-2.4.2}/weeb_cli/services/search.py +0 -0
  45. {weeb_cli-2.4.1 → weeb_cli-2.4.2}/weeb_cli/services/tracker.py +0 -0
  46. {weeb_cli-2.4.1 → weeb_cli-2.4.2}/weeb_cli/services/updater.py +0 -0
  47. {weeb_cli-2.4.1 → weeb_cli-2.4.2}/weeb_cli/services/watch.py +0 -0
  48. {weeb_cli-2.4.1 → weeb_cli-2.4.2}/weeb_cli/ui/__init__.py +0 -0
  49. {weeb_cli-2.4.1 → weeb_cli-2.4.2}/weeb_cli/ui/header.py +0 -0
  50. {weeb_cli-2.4.1 → weeb_cli-2.4.2}/weeb_cli/ui/prompt.py +0 -0
  51. {weeb_cli-2.4.1 → weeb_cli-2.4.2}/weeb_cli.egg-info/SOURCES.txt +0 -0
  52. {weeb_cli-2.4.1 → weeb_cli-2.4.2}/weeb_cli.egg-info/dependency_links.txt +0 -0
  53. {weeb_cli-2.4.1 → weeb_cli-2.4.2}/weeb_cli.egg-info/entry_points.txt +0 -0
  54. {weeb_cli-2.4.1 → weeb_cli-2.4.2}/weeb_cli.egg-info/requires.txt +0 -0
  55. {weeb_cli-2.4.1 → weeb_cli-2.4.2}/weeb_cli.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: weeb-cli
3
- Version: 2.4.1
3
+ Version: 2.4.2
4
4
  Summary: Tarayıcı yok, reklam yok, dikkat dağıtıcı unsur yok. Sadece siz ve eşsiz bir anime izleme deneyimi.
5
5
  Author-email: ewgsta <ewgst@proton.me>
6
6
  License-Expression: CC-BY-NC-ND-4.0
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "weeb-cli"
7
- version = "2.4.1"
7
+ version = "2.4.2"
8
8
  description = "Tarayıcı yok, reklam yok, dikkat dağıtıcı unsur yok. Sadece siz ve eşsiz bir anime izleme deneyimi."
9
9
  readme = "README.md"
10
10
  authors = [{ name = "ewgsta", email = "ewgst@proton.me" }]
@@ -0,0 +1 @@
1
+ __version__ = "2.4.2"
@@ -46,6 +46,7 @@ def open_settings():
46
46
  ytdlp_state = i18n.get("common.enabled") if config.get("ytdlp_enabled") else i18n.get("common.disabled")
47
47
  desc_state = i18n.get("common.enabled") if config.get("show_description", True) else i18n.get("common.disabled")
48
48
  discord_rpc_state = i18n.get("common.enabled") if config.get("discord_rpc_enabled", False) else i18n.get("common.disabled")
49
+ shortcuts_state = i18n.get("common.enabled") if config.get("shortcuts_enabled", True) else i18n.get("common.disabled")
49
50
 
50
51
  opt_lang = i18n.get("settings.language")
51
52
  opt_source = f"{i18n.get('settings.source')} [{display_source}]"
@@ -53,15 +54,21 @@ def open_settings():
53
54
  opt_drives = i18n.get("settings.external_drives")
54
55
  opt_desc = f"{i18n.get('settings.show_description')} [{desc_state}]"
55
56
  opt_discord_rpc = f"{i18n.get('settings.discord_rpc')} [{discord_rpc_state}]"
57
+ opt_shortcuts_toggle = f"{i18n.get('settings.shortcuts')} [{shortcuts_state}]"
56
58
  opt_aria2 = f"{i18n.get('settings.aria2')} [{aria2_state}]"
57
59
  opt_ytdlp = f"{i18n.get('settings.ytdlp')} [{ytdlp_state}]"
58
60
 
59
61
  opt_aria2_conf = f" ↳ {i18n.get('settings.aria2_config')}"
60
62
  opt_ytdlp_conf = f" ↳ {i18n.get('settings.ytdlp_config')}"
63
+ opt_shortcuts_conf = f" ↳ {i18n.get('settings.shortcuts_config')}"
61
64
  opt_backup = i18n.get("settings.backup_restore")
62
- opt_shortcuts = i18n.get("settings.shortcuts")
63
65
 
64
- choices = [opt_lang, opt_source, opt_download, opt_drives, opt_desc, opt_discord_rpc, opt_aria2]
66
+ choices = [opt_lang, opt_source, opt_download, opt_drives, opt_desc, opt_discord_rpc, opt_shortcuts_toggle]
67
+
68
+ if config.get("shortcuts_enabled", True):
69
+ choices.append(opt_shortcuts_conf)
70
+
71
+ choices.append(opt_aria2)
65
72
  if config.get("aria2_enabled"):
66
73
  choices.append(opt_aria2_conf)
67
74
 
@@ -72,7 +79,6 @@ def open_settings():
72
79
  opt_trackers = i18n.get("settings.trackers")
73
80
  choices.append(opt_trackers)
74
81
  choices.append(opt_backup)
75
- choices.append(opt_shortcuts)
76
82
 
77
83
  try:
78
84
  answer = questionary.select(
@@ -101,6 +107,10 @@ def open_settings():
101
107
  toggle_description()
102
108
  elif answer == opt_discord_rpc:
103
109
  toggle_discord_rpc()
110
+ elif answer == opt_shortcuts_toggle:
111
+ toggle_shortcuts()
112
+ elif answer == opt_shortcuts_conf:
113
+ shortcuts_menu()
104
114
  elif answer == opt_aria2:
105
115
  toggle_config("aria2_enabled", "Aria2")
106
116
  elif answer == opt_aria2_conf:
@@ -113,8 +123,6 @@ def open_settings():
113
123
  trackers_menu()
114
124
  elif answer == opt_backup:
115
125
  backup_restore_menu()
116
- elif answer == opt_shortcuts:
117
- shortcuts_menu()
118
126
  elif answer is None:
119
127
  return
120
128
 
@@ -141,6 +149,15 @@ def toggle_discord_rpc():
141
149
  console.print(f"[green]{i18n.t(msg_key, tool='Discord RPC')}[/green]")
142
150
  time.sleep(0.5)
143
151
 
152
+ def toggle_shortcuts():
153
+ current = config.get("shortcuts_enabled", True)
154
+ new_val = not current
155
+ config.set("shortcuts_enabled", new_val)
156
+
157
+ msg_key = "settings.toggle_on" if new_val else "settings.toggle_off"
158
+ console.print(f"[green]{i18n.t(msg_key, tool=i18n.get('settings.shortcuts'))}[/green]")
159
+ time.sleep(0.5)
160
+
144
161
  def change_language():
145
162
  from weeb_cli.services.scraper import scraper
146
163
 
@@ -17,7 +17,8 @@ DEFAULT_CONFIG = {
17
17
  "debug_mode": False,
18
18
  "download_max_retries": 3,
19
19
  "download_retry_delay": 10,
20
- "discord_rpc_enabled": False
20
+ "discord_rpc_enabled": False,
21
+ "shortcuts_enabled": True
21
22
  }
22
23
 
23
24
  class Config:
@@ -111,6 +111,7 @@
111
111
  "backup_not_found": "Backup file not found.",
112
112
  "restart_required": "Please restart the application to apply changes.",
113
113
  "shortcuts": "Keyboard Shortcuts",
114
+ "shortcuts_config": "Shortcut Settings",
114
115
  "shortcuts_hint": "Use single key shortcuts for quick access in menus",
115
116
  "shortcut_search": "Search Anime",
116
117
  "shortcut_downloads": "Downloads",
@@ -111,6 +111,7 @@
111
111
  "backup_not_found": "Yedek dosyası bulunamadı.",
112
112
  "restart_required": "Değişikliklerin uygulanması için uygulamayı yeniden başlatın.",
113
113
  "shortcuts": "Klavye Kısayolları",
114
+ "shortcuts_config": "Kısayol Ayarları",
114
115
  "shortcuts_hint": "Menülerde hızlı erişim için tek tuşla seçim yapabilirsiniz",
115
116
  "shortcut_search": "Anime Ara",
116
117
  "shortcut_downloads": "İndirmeler",
@@ -16,7 +16,13 @@ class ShortcutManager:
16
16
  def __init__(self):
17
17
  self._shortcuts = None
18
18
 
19
+ def is_enabled(self):
20
+ return config.get("shortcuts_enabled", True)
21
+
19
22
  def get_shortcuts(self):
23
+ if not self.is_enabled():
24
+ return {}
25
+
20
26
  if self._shortcuts is None:
21
27
  self._shortcuts = {}
22
28
  for key, default_value in DEFAULT_SHORTCUTS.items():
@@ -25,6 +31,8 @@ class ShortcutManager:
25
31
  return self._shortcuts
26
32
 
27
33
  def get_shortcut(self, action):
34
+ if not self.is_enabled():
35
+ return None
28
36
  shortcuts = self.get_shortcuts()
29
37
  return shortcuts.get(action, DEFAULT_SHORTCUTS.get(action))
30
38
 
@@ -44,18 +44,25 @@ def show_main_menu():
44
44
  show_header("Weeb CLI", show_version=True, show_source=True)
45
45
 
46
46
  shortcuts = shortcut_manager.get_shortcuts()
47
+ shortcuts_enabled = shortcut_manager.is_enabled()
47
48
 
48
- opt_search = f"{i18n.get('menu.options.search')} [{shortcuts['search']}]"
49
- opt_downloads = f"{i18n.get('menu.options.downloads')} [{shortcuts['downloads']}]"
50
- opt_watchlist = f"{i18n.get('menu.options.watchlist')} [{shortcuts['watchlist']}]"
51
- opt_settings = f"{i18n.get('menu.options.settings')} [{shortcuts['settings']}]"
52
- opt_exit = f"{i18n.get('menu.options.exit')} [{shortcuts['exit']}]"
49
+ opt_search = i18n.get("menu.options.search")
50
+ opt_downloads = i18n.get("menu.options.downloads")
51
+ opt_watchlist = i18n.get("menu.options.watchlist")
52
+ opt_settings = i18n.get("menu.options.settings")
53
53
 
54
- choices = [
55
- questionary.Choice(opt_search, shortcut_key=shortcuts['search']),
56
- questionary.Choice(opt_downloads, shortcut_key=shortcuts['downloads']),
57
- questionary.Choice(opt_watchlist, shortcut_key=shortcuts['watchlist']),
58
- ]
54
+ if shortcuts_enabled:
55
+ choices = [
56
+ questionary.Choice(opt_search, shortcut_key=shortcuts.get('search')),
57
+ questionary.Choice(opt_downloads, shortcut_key=shortcuts.get('downloads')),
58
+ questionary.Choice(opt_watchlist, shortcut_key=shortcuts.get('watchlist')),
59
+ ]
60
+ else:
61
+ choices = [
62
+ opt_search,
63
+ opt_downloads,
64
+ opt_watchlist,
65
+ ]
59
66
 
60
67
  active_queue = [i for i in queue_manager.queue if i["status"] in ["pending", "processing"]]
61
68
  opt_active = None
@@ -63,19 +70,22 @@ def show_main_menu():
63
70
  is_running = queue_manager.is_running()
64
71
  status = i18n.get("downloads.queue_running") if is_running else i18n.get("downloads.queue_stopped")
65
72
  opt_active = f"{i18n.get('downloads.active_downloads')} ({len(active_queue)}) - {status}"
66
- choices.append(questionary.Choice(opt_active))
73
+ if shortcuts_enabled:
74
+ choices.append(questionary.Choice(opt_active))
75
+ else:
76
+ choices.append(opt_active)
67
77
 
68
- choices.extend([
69
- questionary.Choice(opt_settings, shortcut_key=shortcuts['settings']),
70
- questionary.Choice(opt_exit, shortcut_key=shortcuts['exit'])
71
- ])
78
+ if shortcuts_enabled:
79
+ choices.append(questionary.Choice(opt_settings, shortcut_key=shortcuts.get('settings')))
80
+ else:
81
+ choices.append(opt_settings)
72
82
 
73
83
  try:
74
84
  selected = questionary.select(
75
85
  i18n.get("menu.prompt"),
76
86
  choices=choices,
77
87
  pointer=">",
78
- use_shortcuts=True,
88
+ use_shortcuts=shortcuts_enabled,
79
89
  style=questionary.Style([
80
90
  ('pointer', 'fg:cyan bold'),
81
91
  ('highlighted', 'fg:cyan'),
@@ -95,7 +105,7 @@ def show_main_menu():
95
105
  show_active_downloads_menu()
96
106
  elif selected == opt_settings:
97
107
  open_settings()
98
- elif selected == opt_exit or selected is None:
108
+ elif selected is None:
99
109
  _handle_exit()
100
110
 
101
111
  show_main_menu()
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: weeb-cli
3
- Version: 2.4.1
3
+ Version: 2.4.2
4
4
  Summary: Tarayıcı yok, reklam yok, dikkat dağıtıcı unsur yok. Sadece siz ve eşsiz bir anime izleme deneyimi.
5
5
  Author-email: ewgsta <ewgst@proton.me>
6
6
  License-Expression: CC-BY-NC-ND-4.0
@@ -1 +0,0 @@
1
- __version__ = "2.4.1"
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes