forked from dymik739/modular-bot-framework-for-telegram
		
	added predefine feature (to be documented in README)
This commit is contained in:
		
							parent
							
								
									30f53c08d4
								
							
						
					
					
						commit
						f6e744a14d
					
				
							
								
								
									
										19
									
								
								main.py
									
									
									
									
									
								
							
							
						
						
									
										19
									
								
								main.py
									
									
									
									
									
								
							@ -21,17 +21,27 @@ def readfile(filename):
 | 
			
		||||
 | 
			
		||||
# module object classes
 | 
			
		||||
class ModuleV1:
 | 
			
		||||
    def __init__(self, path, code, enabled, alias):
 | 
			
		||||
    def __init__(self, path, code, enabled, alias, predefine):
 | 
			
		||||
        self.version = 1
 | 
			
		||||
        self.enabled = enabled
 | 
			
		||||
        self.code = code
 | 
			
		||||
        self.alias = alias
 | 
			
		||||
        self.path = path
 | 
			
		||||
        self.predefine = predefine
 | 
			
		||||
 | 
			
		||||
        if self.predefine:
 | 
			
		||||
            self.predefine()
 | 
			
		||||
 | 
			
		||||
    # set environmental variables
 | 
			
		||||
    def set_env(self):
 | 
			
		||||
        self.RESPONCE = ""
 | 
			
		||||
 | 
			
		||||
    def predefine(self):
 | 
			
		||||
        try:
 | 
			
		||||
            exec(self.predefine)
 | 
			
		||||
        except Exception as e:
 | 
			
		||||
            print("[ERROR] module: module \"{}\" ({}) raised exception \"{}\" during predefine stage, disabling it...".format(self.path, self.alias, e))
 | 
			
		||||
 | 
			
		||||
    # running the module
 | 
			
		||||
    def process(self, msg):
 | 
			
		||||
        self.set_env()
 | 
			
		||||
@ -83,7 +93,12 @@ class ModuleControlUnit:
 | 
			
		||||
                        else:
 | 
			
		||||
                            alias = None
 | 
			
		||||
 | 
			
		||||
                        self.modules.append( ModuleV1( "modules/{}/".format(folder), code, enabled, alias ) )
 | 
			
		||||
                        if "predefine" in meta:
 | 
			
		||||
                            predefine = readfile("modules/{}/{}".format(folder, meta["predefine"]))
 | 
			
		||||
                        else:
 | 
			
		||||
                            predefine = False
 | 
			
		||||
 | 
			
		||||
                        self.modules.append( ModuleV1( "modules/{}/".format(folder), code, enabled, alias, predefine ) )
 | 
			
		||||
 | 
			
		||||
                        print("[INFO] reload_modules: successfully loaded {} as {} (start_on_boot: {})".format(folder, alias, enabled))
 | 
			
		||||
                    else:
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user