Add rule option continue_after_match (defaults to True)

This commit is contained in:
bg 2024-01-25 07:46:54 +00:00
parent a15e13ae5f
commit 2e5d9424b9
3 changed files with 4 additions and 1 deletions

View file

@ -106,4 +106,5 @@ class ReactBot(Plugin):
await rule.execute(evt, match)
except Exception:
self.log.exception(f"Failed to execute {name} in {evt.room_id}")
if not rule.continue_after_match:
return

View file

@ -64,6 +64,7 @@ class Config(BaseProxyConfig):
type=EventType.find(rule["type"]) if "type" in rule else None,
template=self.templates[rule["template"]],
variables=self._parse_variables(rule),
continue_after_match=rule.get("continue_after_match", True),
)
except Exception as e:
raise ConfigError(f"Failed to load {name}") from e

View file

@ -35,6 +35,7 @@ class Rule:
template: Template
type: Optional[EventType]
variables: Dict[str, Any]
continue_after_match: bool
def _check_not_match(self, body: str) -> bool:
for pattern in self.not_matches: