# /usr/bin/python3 # Ultroid - UserBot # Copyright (C) 2021-2025 TeamUltroid # # This file is a part of < https://github.com/TeamUltroid/Ultroid/ > # Please read the GNU Affero General Public License in # . # Standalone file for facilitating local deploys. import os a = r""" _ _ _ _ _ _ | | | | | | (_) | | | | | | | |_ _ __ ___ _ __| | | | | | | __| '__/ _ \| |/ _ | | |__| | | |_| | | (_) | | (_| | \____/|_|\__|_| \___/|_|\__,_| """ def start(): clear_screen() check_for_py() print(f"{a}\n\n") print("Welcome to Ultroid, lets start setting up!\n\n") print("Cloning the repository...\n\n") os.system("rm -rf Ultroid") os.system("git clone https://github.com/TeamUltroid/Ultroid") print("\n\nDone") os.chdir("Ultroid") clear_screen() print(a) print("\n\nLet's start!\n") # generate session if needed. sessionisneeded = input( "Do you want to generate a new session, or have an old session string? [generate/skip]", ) if sessionisneeded == "generate": gen_session() elif sessionisneeded != "skip": print( 'Please choose "generate" to generate a session string, or "skip" to pass on.\n\nPlease run the script again!', ) exit(0) # start bleck megik print("\n\nLets start entering the variables.\n\n") varrs = [ "API_ID", "API_HASH", "SESSION", "REDIS_URI", "REDIS_PASSWORD", ] all_done = "# Ultroid Environment Variables.\n# Do not delete this file.\n\n" for i in varrs: all_done += do_input(i) clear_screen() print(a) print("\n\nHere are the things you've entered.\nKindly check.") print(all_done) isitdone = input("\n\nIs it all correct? [y/n]") if isitdone == "y" or isitdone != "n": # https://github.com/TeamUltroid/Ultroid/blob/31b9eb1f4f8059e0ae66adb74cb6e8174df12eac/resources/startup/locals.py#L35 f = open(".env", "w") f.write(all_done) else: print("Oh, let's redo these then.") start() clear_screen() print("\nCongrats. All done!\nTime to start the bot!") print("\nInstalling requirements... This might take a while...") os.system("pip3 install --no-cache-dir -r requirements.txt") os.system("pip3 install -r requirements.txt --break-system-packages") ask = input( "Enter 'yes/y' to Install other requirements, required for local deployment." ) if ask.lower().startswith("y"): print("Started Installing...") os.system( "pip3 install --no-cache-dir -r resources/startup/optional-requirements.txt" ) else: print("Skipped!") clear_screen() print(a) print("\nStarting Ultroid...") os.system("sh startup") def do_input(var): val = input(f"Enter your {var}: ") return f"{var}={val}\n" def clear_screen(): # clear screen _ = os.system("clear") if os.name == "posix" else os.system("cls") def check_for_py(): print( "Please make sure you have python installed. \nGet it from http://python.org/\n\n", ) try: ch = int( input( "Enter Choice:\n1. Continue, python is installed.\n2. Exit and install python.\n", ), ) except BaseException: print("Please run the script again, and enter the choice as a number!!") exit(0) if ch == 1: pass elif ch == 2: print("Please install python and continue!") exit(0) else: print("Weren't you taught how to read? Enter a choice!!") return def gen_session(): print("\nProcessing...") # https://github.com/TeamUltroid/Ultroid/main/resources/startup/locals.py#L35 os.system("python3 resources/session/ssgen.py") start()