Files
Ultroid-fork/resources/startup/_termux.py
Devesh Pal 4d30dd7dd7 [Update] Ultroid v0.6
Co-Authored-By: Amit Sharma <48654350+buddhhu@users.noreply.github.com>
Co-Authored-By: MMETMA <79155572+MMETMA@users.noreply.github.com>
Co-Authored-By: Aditya <me@xditya.me>
Co-Authored-By: marat2509 <93652988+marat2509@users.noreply.github.com>
Co-Authored-By: smartman_ru <14003491+smartmanru@users.noreply.github.com>
Co-Authored-By: Flasho <75789819+flashokillerify@users.noreply.github.com>
Co-Authored-By: ÁÑÑÍHÌLÅTØR SPÄRK <75305464+annihilatorrrr@users.noreply.github.com>
2022-06-06 23:18:16 +05:30

256 lines
8.2 KiB
Python

# /usr/bin/python3
# Ultroid - UserBot
# Copyright (C) 2021-2022 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/>.
from os import system, path
from time import sleep
from datetime import datetime
from colorama import Style, Fore, Back
# clear screen
def clear():
system("clear")
MANDATORY_REQS = [
"https://github.com/New-dev0/Telethon/archive/Cartoon.zip",
"py-Ultroid==2022.6.6",
"gitpython",
"enhancer==0.3.4",
"telegraph",
"aiohttp"
]
OPT_PACKAGES = {
"bs4":"Used for site-scrapping (used in commands like - .gadget and many more)",
"yt-dlp": "Used for Youtuble Related Downloads...",
"youtube-search-python": "Used for youtube video search..",
"pillow": "Used for Image-Conversion related task. (size - approx 50mb ) (required for kang, convert and many more.)",
"psutil": "Used for .usage command.",
"lottie":"Used for animated sticker related conversion.",
"apscheduler":"Used in autopic/nightmode (scheduling tasks.)",
"git+https://github.com/1danish-00/google_trans_new.git": "Used for translation purposes."
}
APT_PACKAGES = [
"ffmpeg",
"neofetch",
"mediainfo"
]
DISCLAIMER_TEXT = ""
COPYRIGHT = f"©️ TeamUltroid {datetime.now().year}"
HEADER = f"""{Fore.MAGENTA}
╔╗ ╔╗╔╗ ╔╗ ╔╗
║║ ║║║║ ╔╝╚╗ ║║
║║ ║║║║ ╚╗╔╝╔═╗╔══╗╔╗╔═╝║
║║ ║║║║ ║║ ║╔╝║╔╗║╠╣║╔╗║
║╚═╝║║╚╗ ║╚╗║║ ║╚╝║║║║╚╝║
╚═══╝╚═╝ ╚═╝╚╝ ╚══╝╚╝╚══╝\n{Fore.RESET}
"""
INFO_TEXT = f"""
{Fore.GREEN}# Important points to know.
{Fore.YELLOW}1. This script will just install basic requirements because of which some command whose requirements are missing won't work. You can view all optional requirements in (./resources/startup/optional-requirements.txt)
2. You can install that requirement whenever you want with 'pip install' (a very basic python+bash knowledge is required.)
3. Some of the plugins are disabled for 'Termux Users' to save resources (by adding in EXCLUDE_OFFICIAL).
- Read More - https://t.me/UltroidUpdates/36
- Also, way to enable the disabled plugins is mentioned in that post.
# Disabled Plugins Name
- autocorrect - compressor
- Gdrive - instagram
- nsfwfilter - glitch
- pdftools - writer
- youtube - megadl
- autopic - nightmode
- blacklist - forcesubscribe
4. You can't use 'VCBOT' on Termux.
5. You can't use 'MongoDB' on Termux (Android).
{Fore.RESET}
* Hope you are smart enought to understand.
* Enter 'A' to Continue, 'E' to Exit..\n
"""
def ask_and_wait(text, header:bool=False):
if header:
text = with_header(text)
print(text + "\nPress 'ANY Key' to Continue or 'Ctrl+C' to exit...\n")
input("")
def with_header(text):
return HEADER + "\n\n" + text
def yes_no_apt():
yes_no = input("").strip().lower()
if yes_no in ["yes", "y"]:
return True
elif yes_no in ["no", "n"]:
return False
print("Invalid Input\nRe-Enter: ")
return yes_no_apt()
def ask_process_info_text():
strm = input("").lower().strip()
if strm == "e":
print("Exiting...")
exit(0)
elif strm == "a":
pass
else:
print("Invalid Input")
print("Enter 'A' to Continue or 'E' to exit...")
ask_process_info_text()
def ask_process_apt_install():
strm = input("").lower().strip()
if strm == "e":
print("Exiting...")
exit(0)
elif strm == "a":
for apt in APT_PACKAGES:
print(f"* Do you want to install '{apt}'? [Y/N] ")
if yes_no_apt():
print(f"Installing {apt}...")
system(f"apt install {apt} -y")
else:
print(f"- Discarded {apt}.\n")
elif strm == "i":
names = " ".join(APT_PACKAGES)
print("Installing all apt-packages...")
system(f"apt install {names} -y")
elif strm == "s":
pass
else:
print("Invalid Input\n* Enter Again...")
ask_process_apt_install()
def ask_and_wait_opt():
strm = input("").strip().lower()
if strm == "e":
print("Exiting...")
exit(0)
elif strm == "a":
for opt in OPT_PACKAGES.keys():
print(f"* {Fore.YELLOW}Do you want to install '{opt}'? [Y/N]\n- {OPT_PACKAGES[opt]}")
if yes_no_apt():
print(f"Installing {opt}...")
system(f"pip install {opt}")
else:
print(f"{Fore.YELLOW}- Discarded {opt}.\n")
elif strm == "i":
names = " ".join(OPT_PACKAGES.keys())
print(f"{Fore.YELLOW}Installing all packages...")
system(f"pip install {names}")
elif strm == "s":
pass
else:
print("Invalid Input\n* Enter Again...")
ask_and_wait_opt()
def ask_make_env():
strm = input("").strip().lower()
if strm in ["yes", "y"]:
print(f"{Fore.YELLOW}* Creating .env file..")
with open(".env", "a") as file:
for var in ["API_ID", "API_HASH", "SESSION", "REDIS_URI", "REDIS_PASSWORD"]:
inp = input(f"Enter {var}\n- ")
file.write(f"{var}={inp}\n")
print("* Created '.env' file successfully! 😃")
else:
print("OK!")
# ------------------------------------------------------------------------------------------ #
clear()
print(
f"""
{Fore.BLACK}{Back.WHITE} _____________
▄▄ ▄▄ ▄▄▄ ▄▄▄▄▄▄▄ ▄▄▄▄▄▄ ▄▄▄▄▄▄▄ ▄▄▄ ▄▄▄▄▄▄
█ █ █ █ █ █ █ ▄ █ █ █ █ █
█ █ █ █ █ █▄ ▄█ █ █ █ █ ▄ █ █ ▄ █
█ █▄█ █ █ █ █ █ █▄▄█▄█ █ █ █ █ █ █ █
█ █ █▄▄▄ █ █ █ ▄▄ █ █▄█ █ █ █▄█ █
█ █ █ █ █ █ █ █ █ █ █ █
█▄▄▄▄▄▄▄█▄▄▄▄▄▄▄█ █▄▄▄█ █▄▄▄█ █▄█▄▄▄▄▄▄▄█▄▄▄█▄▄▄▄▄▄█
{Style.RESET_ALL}
{Fore.GREEN}- ULTROID Termux Installation -
The Main Aim of this script is to deploy Ultroid with basic requirements and save your phone resources.
{Fore.RESET}
{COPYRIGHT}
"""
)
print("Press 'Any Key' to continue...")
input("")
clear()
print(with_header(INFO_TEXT))
ask_process_info_text()
clear()
print(with_header("Installing Mandatory requirements..."))
all_ = " ".join(MANDATORY_REQS)
system(f"pip install {all_}")
clear()
print(with_header(f"\n{Fore.GREEN}# Moving toward Installing Apt-Packages{Fore.RESET}\n\n"))
print("---Enter---")
print(" - A = 'Ask Y/N for each'.")
print(" - I = 'Install all'")
print(" - S = 'Skip Apt installation.'")
print(" - E = Exit.\n")
ask_process_apt_install()
clear()
print(
with_header(f"""
{Fore.YELLOW}# Installing other non mandatory requirements.
(You can Install them, if you want command using them to work!){Fore.RESET}
{'- '.join(list(OPT_PACKAGES.keys()))}
Enter [ A = Ask for each, I = Install all, S = Skip, E = Exit]""")
)
ask_and_wait_opt()
print(f"\n{Fore.RED}#EXTRA Features...\n")
print(f"{Fore.YELLOW}* Do you want to get Ultroid Logs in Colors? [Y/N] ")
inp = input("").strip().lower()
if inp in ["yes", "y"]:
print(f"{Fore.GREEN}*Spoking the Magical Mantras*")
system("pip install coloredlogs")
else:
print("Skipped!")
clear()
if not path.exists(".env"):
print(with_header("# Do you want to move toward creating .env file ? [y/N] "))
ask_make_env()
print(with_header(f"\n{Fore.GREEN}You are all Done! 🥳"))
sleep(0.2)
print(f"Use 'bash startup' to try running Ultroid.{Fore.RESET}")
sleep(0.5)
print("\nYou can head over to @UltroidSupport, if you get stuck somewhere, and need help.")
sleep(0.5)
print("\nMade with ❤️ by @TeamUltroid...")
system("pip3 uninstall -q colorama -y")