|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import os |
|
from time import sleep |
|
|
|
ULTROID = r""" |
|
_ _ _ _ _ _ |
|
| | | | | | (_) | | |
|
| | | | | |_ _ __ ___ _ __| | |
|
| | | | | __| '__/ _ \| |/ _ | |
|
| |__| | | |_| | | (_) | | (_| | |
|
\____/|_|\__|_| \___/|_|\__,_| |
|
""" |
|
|
|
|
|
def spinner(x): |
|
if x == "tele": |
|
print("Checking if Telethon is installed...") |
|
else: |
|
print("Checking if Pyrogram is installed...") |
|
for _ in range(3): |
|
for frame in r"-\|/-\|/": |
|
print("\b", frame, sep="", end="", flush=True) |
|
sleep(0.1) |
|
|
|
|
|
def clear_screen(): |
|
|
|
if os.name == "posix": |
|
os.system("clear") |
|
else: |
|
|
|
os.system("cls") |
|
|
|
|
|
def get_api_id_and_hash(): |
|
print( |
|
"Get your API ID and API HASH from my.telegram.org or @ScrapperRoBot to proceed.\n\n", |
|
) |
|
try: |
|
API_ID = int(input("Please enter your API ID: ")) |
|
except ValueError: |
|
print("APP ID must be an integer.\nQuitting...") |
|
exit(0) |
|
API_HASH = input("Please enter your API HASH: ") |
|
return API_ID, API_HASH |
|
|
|
|
|
def telethon_session(): |
|
try: |
|
spinner("tele") |
|
import telethon |
|
x = "\bFound an existing installation of Telethon...\nSuccessfully Imported.\n\n" |
|
except ImportError: |
|
print("Installing Telethon...") |
|
os.system("pip uninstall telethon -y && pip install -U telethon") |
|
|
|
x = "\bDone. Installed and imported Telethon." |
|
clear_screen() |
|
print(ULTROID) |
|
print(x) |
|
|
|
|
|
|
|
from telethon.errors.rpcerrorlist import ( |
|
ApiIdInvalidError, |
|
PhoneNumberInvalidError, |
|
UserIsBotError, |
|
) |
|
from telethon.sessions import StringSession |
|
from telethon.sync import TelegramClient |
|
|
|
API_ID, API_HASH = get_api_id_and_hash() |
|
|
|
|
|
try: |
|
with TelegramClient(StringSession(), API_ID, API_HASH) as ultroid: |
|
print("Generating a string session for •ULTROID•") |
|
try: |
|
ultroid.send_message( |
|
"me", |
|
f"**ULTROID** `SESSION`:\n\n`{ultroid.session.save()}`\n\n**Do not share this anywhere!**", |
|
) |
|
print( |
|
"Your SESSION has been generated. Check your Telegram saved messages!" |
|
) |
|
return |
|
except UserIsBotError: |
|
print("You are trying to Generate Session for your Bot's Account?") |
|
print("Here is That!\n{ultroid.session.save()}\n\n") |
|
print("NOTE: You can't use that as User Session..") |
|
except ApiIdInvalidError: |
|
print( |
|
"Your API ID/API HASH combination is invalid. Kindly recheck.\nQuitting..." |
|
) |
|
exit(0) |
|
except ValueError: |
|
print("API HASH must not be empty!\nQuitting...") |
|
exit(0) |
|
except PhoneNumberInvalidError: |
|
print("The phone number is invalid!\nQuitting...") |
|
exit(0) |
|
except Exception as er: |
|
print("Unexpected Error Occurred while Creating Session") |
|
print(er) |
|
print("If you think It as a Bug, Report to @UltroidSupportChat.\n\n") |
|
|
|
|
|
def pyro_session(): |
|
try: |
|
spinner("pyro") |
|
from pyrogram import Client |
|
|
|
x = "\bFound an existing installation of Pyrogram...\nSuccessfully Imported.\n\n" |
|
except BaseException: |
|
print("Installing Pyrogram...") |
|
os.system("pip install pyrogram tgcrypto") |
|
x = "\bDone. Installed and imported Pyrogram." |
|
from pyrogram import Client |
|
|
|
clear_screen() |
|
print(ULTROID) |
|
print(x) |
|
|
|
|
|
API_ID, API_HASH = get_api_id_and_hash() |
|
print("Enter phone number when asked.\n\n") |
|
try: |
|
with Client(name="ultroid", api_id=API_ID, api_hash=API_HASH, in_memory=True) as pyro: |
|
ss = pyro.export_session_string() |
|
pyro.send_message( |
|
"me", |
|
f"`{ss}`\n\nAbove is your Pyrogram Session String for @TheUltroid. **DO NOT SHARE it.**", |
|
) |
|
print("Session has been sent to your saved messages!") |
|
exit(0) |
|
except Exception as er: |
|
print("Unexpected error occurred while creating session, make sure to validate your inputs.") |
|
print(er) |
|
|
|
|
|
def main(): |
|
clear_screen() |
|
print(ULTROID) |
|
try: |
|
type_of_ss = int( |
|
input( |
|
"\nUltroid supports both telethon as well as pyrogram sessions.\n\nWhich session do you want to generate?\n1. Telethon Session.\n2. Pyrogram Session.\n\nEnter choice: " |
|
) |
|
) |
|
except Exception as e: |
|
print(e) |
|
exit(0) |
|
if type_of_ss == 1: |
|
telethon_session() |
|
elif type_of_ss == 2: |
|
pyro_session() |
|
else: |
|
print("Invalid choice.") |
|
x = input("Run again? (Y/n)") |
|
if x.lower() in ["y", "yes"]: |
|
main() |
|
else: |
|
exit(0) |
|
|
|
|
|
main() |
|
|