mirror of
https://github.com/liberatedsystems/openCom-Companion.git
synced 2024-11-25 06:40:38 +01: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…
Reference in New Issue
Block a user