mycroft-run-script/__init__.py

38 lines
1.1 KiB
Python

import os
from mycroft import MycroftSkill, intent_handler
class RunScriptSkill(MycroftSkill):
def __init__(self):
super().__init__()
self.script_dir = None
self.scripts = []
def initialize(self):
self.settings_change_callback = self.on_settings_changed
self.on_settings_changed()
def on_settings_changed(self):
self.script_dir = self.settings.get('script_dir', os.path.expanduser("~/scripts"))
self.read_scripts_dir()
def read_scripts_dir(self):
if self.script_dir and os.path.isdir(self.script_dir):
self.scripts = os.listdir(self.script_dir)
else:
self.log.critical("The script_dir directory does not exist or can't be read")
self.scripts = []
@intent_handler('RunScript.intent')
def handle_run_script_intent(self, msg=None):
script = msg.data.get('script', None)
if script in self.scripts:
self.speak_dialog('Running', {'script': script})
else:
self.speak_dialog('NotFound', {'script': script})
def stop(self):
pass
def create_skill():
return RunScriptSkill()