Loading all sessions from folder
This commit is contained in:
37
modules/menu/callbacks/load_sessions/callbacks.py
Normal file
37
modules/menu/callbacks/load_sessions/callbacks.py
Normal file
@@ -0,0 +1,37 @@
|
||||
from modules.decorators.callback import async_callback
|
||||
from modules.config import sessions
|
||||
from modules.client import GeneratedClient
|
||||
from modules.config.models import SessionConfig
|
||||
from rich import print
|
||||
import os
|
||||
|
||||
|
||||
@async_callback
|
||||
async def load_sessions_callback():
|
||||
if input('Do you really want to load all .session files that are not in database? '
|
||||
'It may cause bans of your accounts, because logging to many sessions from one IP at once may seem'
|
||||
'suspicious for Telegram (y/N) ') not in ['y', 'Y']:
|
||||
return
|
||||
print('Loading...')
|
||||
loaded = 0
|
||||
for file in os.listdir():
|
||||
if not file.endswith('.session'):
|
||||
continue
|
||||
file = file.replace('.session', '')
|
||||
if file not in sessions.keys():
|
||||
try:
|
||||
await (client := GeneratedClient(name=file)).start()
|
||||
sessions[file] = SessionConfig(
|
||||
id=client.me.id,
|
||||
phone=client.me.phone_number,
|
||||
profile_name=client.me.first_name + (f' {client.me.last_name}' if client.me.last_name else ''),
|
||||
username=client.me.username
|
||||
).json()
|
||||
print(f'[green]Created[/] session {file}...')
|
||||
await client.stop()
|
||||
loaded += 1
|
||||
except Exception as e:
|
||||
print(f'[red]Error[/] loading {file} ({e}), skipping...')
|
||||
|
||||
print(f'[green]Created[/] {loaded} records...')
|
||||
input()
|
||||
Reference in New Issue
Block a user