Merge pull request #1015 from azie-ginanjar/make_message_optional

make message parameter on intent handler optional

====  Tech Notes ====
intent handlers that don't use the message bus message no longer need to have the argument so a simple intent handler could be

    def handle_yahoo(self):
        self.speak('Yahoo')
pull/1054/head
Åke 2017-09-02 14:29:25 +02:00 committed by GitHub
commit 66453cbf9c
1 changed files with 14 additions and 2 deletions

View File

@ -36,6 +36,8 @@ from mycroft.messagebus.message import Message
from mycroft.util.log import getLogger
from mycroft.skills.settings import SkillSettings
from inspect import getargspec
__author__ = 'seanfitz'
skills_config = ConfigurationManager.instance().get("skills")
@ -323,9 +325,19 @@ class MycroftSkill(object):
try:
if need_self:
# When registring from decorator self is required
if len(getargspec(handler).args) == 2:
handler(self, message)
elif len(getargspec(handler).args) == 1:
handler(self)
else:
raise TypeError
else:
if len(getargspec(handler).args) == 2:
handler(message)
elif len(getargspec(handler).args) == 1:
handler()
else:
raise TypeError
self.settings.store() # Store settings if they've changed
except:
# TODO: Localize