Fix update_event and cancel_event methods
==== Tech Notes ==== update_event and cancel_event did not use a name unique to the skill forcing the user to build it themselves. Now the unique name is constructed in the method _unique_name() for all event scheduling methods.pull/1099/merge
parent
0709aa8b9e
commit
1d0e65dfb1
|
@ -566,6 +566,18 @@ class MycroftSkill(object):
|
||||||
LOG.error("Failed to stop skill: {}".format(self.name),
|
LOG.error("Failed to stop skill: {}".format(self.name),
|
||||||
exc_info=True)
|
exc_info=True)
|
||||||
|
|
||||||
|
def _unique_name(self, name):
|
||||||
|
"""
|
||||||
|
Return a name unique to this skill using the format
|
||||||
|
[skill_id]:[name].
|
||||||
|
|
||||||
|
Args:
|
||||||
|
name: Name to use internally
|
||||||
|
|
||||||
|
returns: name unique to this skill
|
||||||
|
"""
|
||||||
|
return str(self.skill_id) + ':' + name
|
||||||
|
|
||||||
def _schedule_event(self, handler, when, data=None, name=None,
|
def _schedule_event(self, handler, when, data=None, name=None,
|
||||||
repeat=None):
|
repeat=None):
|
||||||
"""
|
"""
|
||||||
|
@ -575,7 +587,8 @@ class MycroftSkill(object):
|
||||||
data = data or {}
|
data = data or {}
|
||||||
if not name:
|
if not name:
|
||||||
name = self.name + handler.__name__
|
name = self.name + handler.__name__
|
||||||
name = str(self.skill_id) + ':' + name
|
name = self._unique_name(name)
|
||||||
|
|
||||||
self.add_event(name, handler, False)
|
self.add_event(name, handler, False)
|
||||||
event_data = {}
|
event_data = {}
|
||||||
event_data['time'] = time.mktime(when.timetuple())
|
event_data['time'] = time.mktime(when.timetuple())
|
||||||
|
@ -622,11 +635,10 @@ class MycroftSkill(object):
|
||||||
"""
|
"""
|
||||||
data = data or {}
|
data = data or {}
|
||||||
data = {
|
data = {
|
||||||
'event': name,
|
'event': self._unique_name(name),
|
||||||
'data': data
|
'data': data
|
||||||
}
|
}
|
||||||
self.emitter.emit(Message('mycroft.schedule.update_event',
|
self.emitter.emit(Message('mycroft.schedule.update_event', data=data))
|
||||||
data=data))
|
|
||||||
|
|
||||||
def cancel_event(self, name):
|
def cancel_event(self, name):
|
||||||
"""
|
"""
|
||||||
|
@ -636,9 +648,8 @@ class MycroftSkill(object):
|
||||||
Args:
|
Args:
|
||||||
name (str): Name of event
|
name (str): Name of event
|
||||||
"""
|
"""
|
||||||
data = {'event': name}
|
data = {'event': self._unique_name(name)}
|
||||||
self.emitter.emit(Message('mycroft.scheduler.remove_event',
|
self.emitter.emit(Message('mycroft.scheduler.remove_event', data=data))
|
||||||
data=data))
|
|
||||||
|
|
||||||
|
|
||||||
class FallbackSkill(MycroftSkill):
|
class FallbackSkill(MycroftSkill):
|
||||||
|
|
Loading…
Reference in New Issue