28 lines
		
	
	
		
			617 B
		
	
	
	
		
			Python
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			28 lines
		
	
	
		
			617 B
		
	
	
	
		
			Python
		
	
	
		
			Executable File
		
	
	
	
	
| #!/usr/bin/python3
 | |
| # -*- coding: utf-8 -*-
 | |
| import functools
 | |
| 
 | |
| class SourceModAPI:
 | |
| 	def __init__(self, master):
 | |
| 		self.Torchlight = master
 | |
| 
 | |
| 	def __getattr__(self, attr):
 | |
| 		try:
 | |
| 			return super(SourceModAPI, self).__getattr__(attr)
 | |
| 		except AttributeError:
 | |
| 			return functools.partial(self._MakeCall, attr)
 | |
| 
 | |
| 	async def _MakeCall(self, function, *args, **kwargs):
 | |
| 		Obj = {
 | |
| 			"method": "function",
 | |
| 			"function": function,
 | |
| 			"args": args
 | |
| 		}
 | |
| 
 | |
| 		Res = await self.Torchlight().Send(Obj)
 | |
| 
 | |
| 		if Res["error"]:
 | |
| 			raise Exception("{0}({1})\n{2}".format(function, args, Res["error"]))
 | |
| 
 | |
| 		return Res
 |