Spaces:
Running
Running
| # /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 | |
| # <https://www.github.com/TeamUltroid/Ultroid/blob/main/LICENSE/>. | |
| # 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() | |