Added basic plugin examples

This commit is contained in:
Mark Qvist 2024-03-25 00:59:39 +01:00
parent ced7e881b9
commit 84bc1f786d
3 changed files with 72 additions and 0 deletions

View 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

View File

View 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