Wipe branch
This commit is contained in:
		
							
								
								
									
										95
									
								
								main.py
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										95
									
								
								main.py
									
									
									
									
									
										Executable file
									
								
							| @ -0,0 +1,95 @@ | ||||
| #!/usr/bin/python | ||||
|  | ||||
| from updater import UThread | ||||
| from license import LThread | ||||
| from checker import CThread | ||||
| from cleaner import NThread | ||||
| from telegrambot import TGThread | ||||
| from webserver import WSThread | ||||
| from time import sleep | ||||
| from macros import * | ||||
| from colors import * | ||||
| from threading import Event | ||||
| import config, sys, os, asyncio | ||||
|  | ||||
|  | ||||
| INFO('╔' + '═'*(len(config.APPNAME) + len(config.VERSION) + 3) + '╗') | ||||
| INFO(f"║ {CYAN}{BOLD}{config.APPNAME}{RESET} {config.VERSION} ║") | ||||
| INFO('╚' + '═'*(len(config.APPNAME) + len(config.VERSION) + 3) + '╝') | ||||
|  | ||||
| if CONF.get('debug'): | ||||
| 	INFO('DEBUG TEST START ' + '*' * 20) | ||||
| 	DEBUG(f"{RESET}{BLACK}*{RED}*{GREEN}*{YELLOW}*{BLUE}*{MAGENTA}*{CYAN}*{WHITE}*") | ||||
| 	DEBUG(f"{RESET}{BOLD}{BLACK}*{RED}*{GREEN}*{YELLOW}*{BLUE}*{MAGENTA}*{CYAN}*{WHITE}*") | ||||
| 	DEBUG(f"{RESET}{BGBLACK}*{BGRED}*{BGGREEN}*{BGYELLOW}*{BGBLUE}*{BGMAGENTA}*{BGCYAN}*{BGWHITE}*") | ||||
| 	INFO('Test message') | ||||
| 	DEBUG('Test message') | ||||
| 	SUCC('Test message') | ||||
| 	WARN('Test message') | ||||
| 	ERR('Test message') | ||||
| 	CRIT('Test message') | ||||
| 	INFO('DEBUG TEST END ' + '*' * 22 + RESET) | ||||
|  | ||||
|  | ||||
| eupdate = Event() | ||||
| estop = Event() | ||||
|  | ||||
| lt = LThread(eupdate) | ||||
| lt.daemon = True | ||||
| lt.start() | ||||
|  | ||||
| wt = WSThread(eupdate) | ||||
| wt.daemon = True | ||||
| wt.start() | ||||
|  | ||||
| ct = CThread(eupdate) | ||||
| ct.daemon = True | ||||
| ct.start() | ||||
|  | ||||
| nt = NThread(eupdate) | ||||
| nt.daemon = True | ||||
| nt.start() | ||||
|  | ||||
| tt = TGThread(eupdate, estop) | ||||
| tt.daemon = True | ||||
| tt.start() | ||||
|  | ||||
| ut = UThread() | ||||
| ut.daemon = True | ||||
| ut.start() | ||||
|  | ||||
| updated = False | ||||
|  | ||||
| try: | ||||
| 	while 1: | ||||
| 		if lt.is_alive() and wt.is_alive() and ct.is_alive() and tt.is_alive() and ut.is_alive() and nt.is_alive(): | ||||
| 			sleep(1) | ||||
| 		elif lt.is_alive() and wt.is_alive() and ct.is_alive() and tt.is_alive() and nt.is_alive(): | ||||
| 			eupdate.set() | ||||
| 			if lt.is_alive(): lt.join() | ||||
| 			if wt.is_alive(): wt.join() | ||||
| 			if ct.is_alive(): ct.join() | ||||
| 			if nt.is_alive(): nt.join() | ||||
| 			if tt.is_alive(): tt.join() | ||||
| 			updated = True | ||||
| 			SUCC('Program updated, reboot!') | ||||
| 			break | ||||
| 		else: | ||||
| 			estop.set() | ||||
| 			sleep(1) | ||||
| 			CRIT('Program broken.') | ||||
| 			os._exit(3) | ||||
| except KeyboardInterrupt: | ||||
| 	sys.stdout.flush() | ||||
| 	print('\r', end='') | ||||
| 	estop.set() | ||||
| 	sleep(1) | ||||
| 	CRIT('STOP') | ||||
| except Exception as e: | ||||
| 	CRIT(str(e)) | ||||
| 	estop.set() | ||||
| 	sleep(1) | ||||
| 	os._exit(1) | ||||
|  | ||||
| if updated: | ||||
| 	os.execl(sys.argv[0], *sys.argv) | ||||
		Reference in New Issue
	
	Block a user