Skip to content

Commit

Permalink
fallback/no_make_active
Browse files Browse the repository at this point in the history
let the intent service handle this, unittests in core uncovered duplicate messages this commit is fixing
  • Loading branch information
JarbasAl committed Sep 30, 2023
1 parent 83b3bca commit c0872b6
Showing 1 changed file with 49 additions and 0 deletions.
49 changes: 49 additions & 0 deletions ovos_workshop/skills/fallback.py
Original file line number Diff line number Diff line change
Expand Up @@ -187,6 +187,37 @@ def _register_fallback(cls, handler: callable, wrapper: callable,
cls.fallback_handlers[priority] = wrapper
cls.wrapper_map.append((handler, wrapper))

def _old_register_fallback(self, handler: Callable[[Message], None],
priority: int):
"""
core >= 0.8.0 makes skill active
"""
opmode = self.fallback_config.get("fallback_mode",
FallbackMode.ACCEPT_ALL)
priority_overrides = self.fallback_config.get("fallback_priorities", {})
fallback_blacklist = self.fallback_config.get("fallback_blacklist", [])
fallback_whitelist = self.fallback_config.get("fallback_whitelist", [])

if opmode == FallbackMode.BLACKLIST and \
self.skill_id in fallback_blacklist:
return
if opmode == FallbackMode.WHITELIST and \
self.skill_id not in fallback_whitelist:
return

# check if .conf is overriding the priority for this skill
priority = priority_overrides.get(self.skill_id, priority)

def wrapper(*args, **kwargs):
if handler(*args, **kwargs):
self.activate()
return True
return False

self.instance_fallback_handlers.append(handler)
self._register_fallback(handler, wrapper, priority)

@backwards_compat(classic_core=_old_register_fallback, pre_008=_old_register_fallback)
def register_fallback(self, handler: Callable[[Message], None],
priority: int):
"""
Expand Down Expand Up @@ -387,6 +418,24 @@ def _handle_fallback_request(self, message: Message):
f"ovos.skills.fallback.{self.skill_id}.response",
data={"result": status, "fallback_handler": handler_name}))

def _old_register_fallback(self, handler: callable, priority: int):
"""
makes the skill active, done by core >= 0.0.8
"""

LOG.info(f"registering fallback handler -> "
f"ovos.skills.fallback.{self.skill_id}")

def wrapper(*args, **kwargs):
if handler(*args, **kwargs):
self.activate()
return True
return False

self._fallback_handlers.append((priority, wrapper))
self.bus.on(f"ovos.skills.fallback.{self.skill_id}", wrapper)

@backwards_compat(classic_core=_old_register_fallback, pre_008=_old_register_fallback)
def register_fallback(self, handler: callable, priority: int):
"""
Register a fallback handler and add a messagebus handler to call it on
Expand Down

0 comments on commit c0872b6

Please sign in to comment.