from opentele.td import TDesktop from opentele.tl import TelegramClient from opentele.api import UseCurrentSession import asyncio from art import text2art from colorama import Fore, Style, init import os init() green = Fore.GREEN red = Fore.RED reset = Style.RESET_ALL def print_banner(): art = text2art("Converter", "small") print(green + art + reset) async def convert_session_to_tdata(session_file, tdata_path): try: client = TelegramClient(session_file) tdesk = await client.ToTDesktop(flag=UseCurrentSession) tdesk.SaveTData(tdata_path) print(f"{green}Session '{session_file}' successfully converted to tdata in '{tdata_path}'{reset}") except Exception as e: print(f"{red}Error converting '{session_file}': {str(e)}{reset}") async def convert_tdata_to_session(tdata_folder, session_file): try: tdesk = TDesktop(tdata_folder) assert tdesk.isLoaded() client = await tdesk.ToTelethon(session=session_file, flag=UseCurrentSession) await client.connect() await client.PrintSessions() print(f"{green}Tdata in '{tdata_folder}' successfully converted to session '{session_file}'{reset}") except Exception as e: print(f"{red}Error converting tdata in '{tdata_folder}': {str(e)}{reset}") async def main(): print_banner() print("1. Convert .session to tdata") print("2. Convert tdata to .session") choice = input("Select action: ") if choice == "1": session_folder = "sessions" # CHANGE IF YOU WANT base_tdata_path = "datas" # CHANGE IF YOU WANT os.makedirs(base_tdata_path, exist_ok=True) for file in os.listdir(session_folder): if file.endswith(".session"): session_file = os.path.join(session_folder, file) tdata_path = os.path.join(base_tdata_path, os.path.splitext(file)[0]) os.makedirs(tdata_path, exist_ok=True) await convert_session_to_tdata(session_file, tdata_path) elif choice == "2": tdata_folder = "datas/tdata" # CHANGE IF YOU WANT session_file = "sessions/session.session" # CHANGE IF YOU WANT await convert_tdata_to_session(tdata_folder, session_file) else: print(f"{red}Invalid choice{reset}") asyncio.run(main()) Код from opentele.td import TDesktop from opentele.tl import TelegramClient from opentele.api import UseCurrentSession import asyncio from art import text2art from colorama import Fore, Style, init import os init() green = Fore.GREEN red = Fore.RED reset = Style.RESET_ALL def print_banner(): art = text2art("Converter", "small") print(green + art + reset) async def convert_session_to_tdata(session_file, tdata_path): try: client = TelegramClient(session_file) tdesk = await client.ToTDesktop(flag=UseCurrentSession) tdesk.SaveTData(tdata_path) print(f"{green}Session '{session_file}' successfully converted to tdata in '{tdata_path}'{reset}") except Exception as e: print(f"{red}Error converting '{session_file}': {str(e)}{reset}") async def convert_tdata_to_session(tdata_folder, session_file): try: tdesk = TDesktop(tdata_folder) assert tdesk.isLoaded() client = await tdesk.ToTelethon(session=session_file, flag=UseCurrentSession) await client.connect() await client.PrintSessions() print(f"{green}Tdata in '{tdata_folder}' successfully converted to session '{session_file}'{reset}") except Exception as e: print(f"{red}Error converting tdata in '{tdata_folder}': {str(e)}{reset}") async def main(): print_banner() print("1. Convert .session to tdata") print("2. Convert tdata to .session") choice = input("Select action: ") if choice == "1": session_folder = "sessions" # CHANGE IF YOU WANT base_tdata_path = "datas" # CHANGE IF YOU WANT os.makedirs(base_tdata_path, exist_ok=True) for file in os.listdir(session_folder): if file.endswith(".session"): session_file = os.path.join(session_folder, file) tdata_path = os.path.join(base_tdata_path, os.path.splitext(file)[0]) os.makedirs(tdata_path, exist_ok=True) await convert_session_to_tdata(session_file, tdata_path) elif choice == "2": tdata_folder = "datas/tdata" # CHANGE IF YOU WANT session_file = "sessions/session.session" # CHANGE IF YOU WANT await convert_tdata_to_session(tdata_folder, session_file) else: print(f"{red}Invalid choice{reset}") asyncio.run(main())