Fixed a few stability issues and added support for dynamic module reloading

This commit is contained in:
dymik739 2022-11-04 20:11:23 +02:00
parent 6e544331a2
commit f621ec4aad
1 changed files with 19 additions and 3 deletions

22
main.py
View File

@ -1,4 +1,5 @@
from telegram.ext import Updater, MessageHandler, Filters from telegram.ext import Updater, MessageHandler, Filters
import datetime
import codecs import codecs
import time import time
import json import json
@ -30,13 +31,13 @@ class ModuleV1:
self.predefine = predefine self.predefine = predefine
if self.predefine: if self.predefine:
self.predefine() self.set_predefine()
# set environmental variables # set environmental variables
def set_env(self): def set_env(self):
self.RESPONCE = "" self.RESPONCE = ""
def predefine(self): def set_predefine(self):
try: try:
exec(self.predefine) exec(self.predefine)
except Exception as e: except Exception as e:
@ -52,6 +53,7 @@ class ModuleV1:
return self.RESPONCE return self.RESPONCE
except Exception as e: except Exception as e:
print("[ERROR] module: module \"{}\" ({}) raised exception \"{}\"".format(self.path, self.alias, e)) print("[ERROR] module: module \"{}\" ({}) raised exception \"{}\"".format(self.path, self.alias, e))
return ""
# module control unit # module control unit
@ -157,7 +159,21 @@ def queue_processor():
msg = message_queue[0] msg = message_queue[0]
print("[DEBUG] queue_processor: {}".format(msg)) # debug print("[DEBUG] queue_processor: {}".format(msg)) # debug
# modules will be used in here # check for control commands
if msg["chat"]["id"] == 575246355:
if msg["text"][0] == "$":
command = msg["text"][1:].split(" ")
if len(command) >= 2 and command[0] == "module":
if command[1] == "reload":
print("[INFO] Module reloading triggered by a command")
del mcu.modules[:]
mcu.reload_modules()
del message_queue[0]
continue
# modules are used in here
for mod in mcu.modules: for mod in mcu.modules:
if mod.enabled: if mod.enabled:
if mod.version == 1: if mod.version == 1: