Advertisement
kohpriwniranam

installpy

Sep 9th, 2024 (edited)
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 6.51 KB | None | 0 0
  1. import subprocess
  2. import os
  3.  
  4. WHITE = '\033[37m'
  5. RESET = '\033[0m'
  6.  
  7. def install_package(package_name):
  8.     try:
  9.         print(f"กำลังติดตั้ง {package_name} ...")
  10.         subprocess.check_call(["sudo", "apt-get", "install", "-y", package_name])
  11.         print(f"{package_name} ติดตั้งเรียบร้อยแล้ว")
  12.     except Exception as e:
  13.         print(f"เกิดข้อผิดพลาดในการติดตั้ง {package_name}: {e}")
  14.  
  15. def install_python_and_pip():
  16.     install_package("python3")
  17.     install_package("python3-pip")
  18.     install_package("python3-venv")
  19.  
  20. def create_virtualenv():
  21.     if not os.path.exists("myenv"):
  22.         try:
  23.             print("กำลังสร้าง virtual environment ชื่อ myenv ...")
  24.             subprocess.check_call(["python3", "-m", "venv", "myenv"])
  25.             print("สร้าง virtual environment ชื่อ myenv เรียบร้อยแล้ว")
  26.         except Exception as e:
  27.             print(f"เกิดข้อผิดพลาดในการสร้าง virtual environment: {e}")
  28.     else:
  29.         print("พบ virtual environment ชื่อ myenv แล้ว")
  30.  
  31. def install_modules_in_virtualenv():
  32.     modules = [
  33.         "proxybroker", "akad", "rsa", "bs4", "humanfriendly", "pafy", "youtube_dl",
  34.         "pytz", "gtts", "googletrans", "livejson", "python-axolotl-curve25519",
  35.         "translatepy", "qrcode", "orjson", "speedtest-cli", "pycryptodome", "null",
  36.         "timeago", "schematics", "humanize", "wikiapi", "selenium", "lxml",
  37.         "Naked", "pytube", "html5lib", "psutil", "thingspeak", "openai", "netifaces",
  38.         "attrs==19.1.0", "httpx==0.13.3"
  39.     ]
  40.     try:
  41.         for module in modules:
  42.             subprocess.check_call(["myenv/bin/pip", "install", module])
  43.             print(f"{module} ติดตั้งเรียบร้อยแล้ว")
  44.     except Exception as e:
  45.         print(f"เกิดข้อผิดพลาดในการติดตั้งโมดูล: {e}")
  46.  
  47. def install_python_modules():
  48.     modules = [
  49.         "proxybroker", "akad", "rsa", "bs4", "humanfriendly", "pafy", "youtube_dl",
  50.         "pytz", "gtts", "googletrans", "livejson", "python-axolotl-curve25519",
  51.         "translatepy", "qrcode", "orjson", "speedtest-cli", "pycryptodome", "null",
  52.         "timeago", "schematics", "humanize", "wikiapi", "selenium", "lxml",
  53.         "Naked", "pytube", "html5lib", "psutil", "thingspeak", "openai", "netifaces",
  54.         "attrs==19.1.0", "httpx==0.13.3"
  55.     ]
  56.     for module in modules:
  57.         try:
  58.             subprocess.check_call(["pip3", "install", module])
  59.             print(f"{module} ติดตั้งเรียบร้อยแล้ว")
  60.         except Exception as e:
  61.             print(f"เกิดข้อผิดพลาดในการติดตั้ง {module}: {e}")
  62.  
  63. def change_hostname():
  64.     new_hostname = input("กรุณาใส่โฮสต์เนมใหม่ (หรือกด Enter เพื่อข้าม): ")
  65.     if new_hostname:
  66.         try:
  67.             subprocess.check_call(["sudo", "hostnamectl", "set-hostname", new_hostname])
  68.             print(f"โฮสต์เนมถูกเปลี่ยนเป็น {new_hostname} แล้ว")
  69.         except Exception as e:
  70.             print(f"เกิดข้อผิดพลาดในการเปลี่ยนโฮสต์เนม: {e}")
  71.     else:
  72.         print("ข้ามการเปลี่ยนโฮสต์เนม")
  73.  
  74. def change_password():
  75.     new_password = input("กรุณาใส่พาสเวิร์ดใหม่ (หรือกด Enter เพื่อข้าม): ")
  76.     if new_password:
  77.         try:
  78.             subprocess.run(["passwd"], input=f"{new_password}\n{new_password}\n", text=True)
  79.             print("พาสเวิร์ดถูกเปลี่ยนเรียบร้อยแล้ว")
  80.         except Exception as e:
  81.             print(f"เกิดข้อผิดพลาดในการเปลี่ยนพาสเวิร์ด: {e}")
  82.     else:
  83.         print("ข้ามการเปลี่ยนพาสเวิร์ด")
  84.  
  85. def change_timezone():
  86.     new_timezone = input("กรุณาใส่โซนเวลาใหม่ (เช่น Asia/Bangkok) (หรือกด Enter เพื่อข้าม): ")
  87.     if new_timezone:
  88.         try:
  89.             subprocess.check_call(["sudo", "timedatectl", "set-timezone", new_timezone])
  90.             print(f"เขตเวลาถูกเปลี่ยนเป็น {new_timezone} แล้ว")
  91.         except Exception as e:
  92.             print(f"เกิดข้อผิดพลาดในการเปลี่ยนเขตเวลา: {e}")
  93.     else:
  94.         print("ข้ามการเปลี่ยนเขตเวลา")
  95.  
  96. def show_credits():
  97.     ba = f"""{WHITE}
  98. | \ | (_)_ __ __ _ _ __   __ _ _ __ ___  
  99. |  \| | | '__/ _` | '_ \ / _` | '_ ` _ \
  100. | |\ | | | (_| | | | | (_| | | | | | |
  101. |_| \_|_|_|  \__,_|_| |_|\__,_|_| |_| |_|
  102.    """
  103.     ba += "\n\n《 ᵖᵒʷᵉʳᵉᵈ ᵇʸ ηιяαηαм™ 》"
  104.     ba += RESET
  105.     print(ba)
  106.  
  107. if __name__ == "__main__":
  108.     show_credits()
  109.     try:
  110.         subprocess.check_call(["sudo", "apt-get", "update"])
  111.         print("\033[38;5;214mอัปเดตแพ็กเกจสำเร็จ\033[0m")
  112.     except Exception as e:
  113.         print(f"เกิดข้อผิดพลาดในการอัปเดตแพ็กเกจ: {e}")
  114.     print("\033[38;5;214mคุณต้องการติดตั้งแพ็กเกจแบบปกติหรือใช้ virtual environment?\033[0m")
  115.     print("\033[38;5;214mพิมพ์ '1' สำหรับการติดตั้งแบบปกติ หรือ '2' สำหรับ virtual environment\033[0m")
  116.     choice = input("เลือก: ").strip()
  117.     if choice == '2':
  118.         install_python_and_pip()
  119.         create_virtualenv()
  120.         install_modules_in_virtualenv()
  121.     else:
  122.         install_python_and_pip()
  123.         install_python_modules()
  124.     change_hostname()
  125.     change_password()
  126.     change_timezone()
  127.     print("\033[38;5;214mการติดตั้งและตั้งค่าเสร็จสมบูรณ์ คุณสามารถเริ่มใช้เซิร์ฟเวอร์ได้ทันที\033[0m")
  128.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement