mirror of
				https://github.com/liberatedsystems/Sideband_CE.git
				synced 2024-09-03 04:13:27 +02:00 
			
		
		
		
	Added basic plugin examples
This commit is contained in:
		
							parent
							
								
									ced7e881b9
								
							
						
					
					
						commit
						84bc1f786d
					
				
							
								
								
									
										38
									
								
								docs/example_plugins/basic.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										38
									
								
								docs/example_plugins/basic.py
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,38 @@ | ||||
| import RNS | ||||
| 
 | ||||
| class BasicCommandPlugin(SidebandCommandPlugin): | ||||
|     command_name = "basic_example" | ||||
| 
 | ||||
|     def start(self): | ||||
|         # Do any initialisation work here | ||||
|         RNS.log("Basic command plugin example starting...") | ||||
| 
 | ||||
|         # And finally call start on superclass | ||||
|         super().start() | ||||
| 
 | ||||
|     def stop(self): | ||||
|         # Do any teardown work here | ||||
|         pass | ||||
| 
 | ||||
|         # And finally call stop on superclass | ||||
|         super().stop() | ||||
| 
 | ||||
|     def handle_command(self, arguments, lxm): | ||||
|         response_content = "Hello "+RNS.prettyhexrep(lxm.source_hash)+". " | ||||
|         response_content += "This is a response from the basic command example. It doesn't do much, but here is a list of the arguments you included:\n" | ||||
| 
 | ||||
|         for argument in arguments: | ||||
|             response_content += "\n"+str(argument) | ||||
| 
 | ||||
|         # Let the Sideband core send a reply. | ||||
|         self.get_sideband().send_message( | ||||
|             response_content, | ||||
|             lxm.source_hash, | ||||
|             False,              # Don't use propagation by default, try direct first | ||||
|             skip_fields=True,   # Don't include any additional fields automatically | ||||
|             no_display=True     # Dot't display this message in the message stream | ||||
|         ) | ||||
| 
 | ||||
| # Finally, tell Sideband what class in this | ||||
| # file is the actual plugin class. | ||||
| plugin_class = BasicCommandPlugin | ||||
							
								
								
									
										0
									
								
								docs/example_plugins/comic.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								docs/example_plugins/comic.py
									
									
									
									
									
										Normal file
									
								
							
							
								
								
									
										34
									
								
								docs/example_plugins/service.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										34
									
								
								docs/example_plugins/service.py
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,34 @@ | ||||
| import RNS | ||||
| import time | ||||
| import threading | ||||
| 
 | ||||
| class BasicServicePlugin(SidebandServicePlugin): | ||||
|     service_name = "service_example" | ||||
| 
 | ||||
|     def service_jobs(self): | ||||
|         while self.should_run: | ||||
|             time.sleep(5) | ||||
|             RNS.log("Service ping from "+str(self)) | ||||
| 
 | ||||
|         RNS.log("Jobs stopped running for "+str(self)) | ||||
| 
 | ||||
|     def start(self): | ||||
|         # Do any initialisation work here | ||||
|         RNS.log("Basic service plugin example starting...") | ||||
|         self.should_run = True | ||||
|         self.service_thread = threading.Thread(target=self.service_jobs, daemon=True) | ||||
|         self.service_thread.start() | ||||
| 
 | ||||
|         # And finally call start on superclass | ||||
|         super().start() | ||||
| 
 | ||||
|     def stop(self): | ||||
|         # Do any teardown work here | ||||
|         self.should_run = False | ||||
| 
 | ||||
|         # And finally call stop on superclass | ||||
|         super().stop() | ||||
| 
 | ||||
| # Finally, tell Sideband what class in this | ||||
| # file is the actual plugin class. | ||||
| plugin_class = BasicServicePlugin | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user