43 lines
1.1 KiB
Python
43 lines
1.1 KiB
Python
#!/usr/bin/env python3
|
|
"""
|
|
Generate a Telethon StringSession for OverUB.
|
|
"""
|
|
|
|
import asyncio
|
|
import os
|
|
from getpass import getpass
|
|
|
|
from telethon import TelegramClient
|
|
from telethon.sessions import StringSession
|
|
|
|
|
|
async def generate() -> None:
|
|
api_id = os.getenv("OVERUB_API_ID") or os.getenv("API_ID")
|
|
api_hash = os.getenv("OVERUB_API_HASH") or os.getenv("API_HASH")
|
|
if not api_id or not api_hash:
|
|
print("API_ID/API_HASH required (set OVERUB_API_ID/OVERUB_API_HASH or API_ID/API_HASH).")
|
|
return
|
|
try:
|
|
api_id = int(api_id)
|
|
except ValueError:
|
|
print("API_ID must be an integer")
|
|
return
|
|
|
|
print("Starting session generation. You will be prompted to log in.")
|
|
client = TelegramClient(StringSession(), api_id, api_hash)
|
|
await client.start()
|
|
session_string = client.session.save()
|
|
await client.disconnect()
|
|
|
|
print("\nSession string:")
|
|
print(session_string)
|
|
print("\nSet this in config/config.yml as bot.session_string or in env OVERUB_SESSION_STRING.")
|
|
|
|
|
|
def main() -> None:
|
|
asyncio.run(generate())
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|