|
5 | 5 | import argparse |
6 | 6 | import logging |
7 | 7 | import os |
8 | | -from typing import Dict, Optional, Coroutine, Any, Callable |
| 8 | +from typing import Dict, Optional, Coroutine, Any, Callable, List |
9 | 9 |
|
10 | 10 | # Add project root to sys.path |
11 | 11 | project_root = Path(__file__).resolve().parent.parent |
|
17 | 17 | from sqlalchemy.ext.asyncio import AsyncSession |
18 | 18 |
|
19 | 19 | from userbot import TelegramClient, _generate_random_device |
20 | | -from userbot.src.db.session import get_db, initialize_database |
21 | | -import userbot.src.db_manager as db_manager |
22 | | -from userbot.src.encrypt import encryption_manager |
23 | | -from userbot.src.db.models import Account |
| 20 | +from userbot.db.session import get_db, initialize_database |
| 21 | +from userbot.db import db_manager |
| 22 | +from userbot.utils.encrypt import encryption_manager |
| 23 | +from userbot.db.models import Account |
24 | 24 |
|
25 | 25 | logging.basicConfig(level=logging.WARNING, format='%(name)s - %(levelname)s - %(message)s') |
26 | 26 | logger = logging.getLogger('manage_account_cli') |
27 | 27 | logger.setLevel(logging.INFO) |
28 | 28 |
|
29 | 29 | async def add_account_logic(args: argparse.Namespace) -> None: |
30 | | - # ... (Implementation from previous correct response remains unchanged) |
| 30 | + """Handles the logic for adding a new account with a full interactive session.""" |
31 | 31 | logger.info(f"--- Adding new account: {args.name} ---") |
32 | 32 |
|
33 | 33 | session_file_path: str = f"temp_cli_{args.name}.session" |
@@ -81,7 +81,7 @@ async def add_account_logic(args: argparse.Namespace) -> None: |
81 | 81 | app_version: str = input("Enter app version: ").strip() |
82 | 82 | else: |
83 | 83 | device_details: Dict[str, str] = _generate_random_device() |
84 | | - device_model, system_version, app_version = device_details.values() |
| 84 | + device_model, system_version, app_version = device_details['device_model'], device_details['system_version'], device_details['app_version'] |
85 | 85 | logger.info("Generated random device details.") |
86 | 86 |
|
87 | 87 | proxy_type: Optional[str] = None |
@@ -214,22 +214,18 @@ async def main() -> None: |
214 | 214 | parser = argparse.ArgumentParser(description="DeBot Account Management CLI") |
215 | 215 | subparsers = parser.add_subparsers(dest="command", required=True, help="Available commands") |
216 | 216 |
|
217 | | - # Add command |
218 | 217 | parser_add = subparsers.add_parser("add", help="Add a new account via interactive login") |
219 | 218 | parser_add.add_argument("name", help="Unique name for the new account") |
220 | 219 | parser_add.set_defaults(func=add_account_logic) |
221 | 220 |
|
222 | | - # Delete command |
223 | 221 | parser_delete = subparsers.add_parser("delete", help="Permanently delete an account") |
224 | 222 | parser_delete.add_argument("name", help="Name of the account to delete") |
225 | 223 | parser_delete.set_defaults(func=delete_account_logic) |
226 | 224 |
|
227 | | - # Toggle command |
228 | 225 | parser_toggle = subparsers.add_parser("toggle", help="Enable or disable an account") |
229 | 226 | parser_toggle.add_argument("name", help="Name of the account to toggle") |
230 | 227 | parser_toggle.set_defaults(func=toggle_account_logic) |
231 | 228 |
|
232 | | - # Edit command |
233 | 229 | parser_edit = subparsers.add_parser("edit", help="Edit properties of an existing account") |
234 | 230 | parser_edit.add_argument("name", help="Name of the account to edit") |
235 | 231 | parser_edit.add_argument("--lang", help="Set a new language code (e.g., en)") |
|
0 commit comments