Add rule option continue_after_match
(defaults to True
)
This commit is contained in:
parent
a15e13ae5f
commit
2e5d9424b9
3 changed files with 4 additions and 1 deletions
|
@ -106,4 +106,5 @@ class ReactBot(Plugin):
|
||||||
await rule.execute(evt, match)
|
await rule.execute(evt, match)
|
||||||
except Exception:
|
except Exception:
|
||||||
self.log.exception(f"Failed to execute {name} in {evt.room_id}")
|
self.log.exception(f"Failed to execute {name} in {evt.room_id}")
|
||||||
|
if not rule.continue_after_match:
|
||||||
|
return
|
||||||
|
|
|
@ -64,6 +64,7 @@ class Config(BaseProxyConfig):
|
||||||
type=EventType.find(rule["type"]) if "type" in rule else None,
|
type=EventType.find(rule["type"]) if "type" in rule else None,
|
||||||
template=self.templates[rule["template"]],
|
template=self.templates[rule["template"]],
|
||||||
variables=self._parse_variables(rule),
|
variables=self._parse_variables(rule),
|
||||||
|
continue_after_match=rule.get("continue_after_match", True),
|
||||||
)
|
)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
raise ConfigError(f"Failed to load {name}") from e
|
raise ConfigError(f"Failed to load {name}") from e
|
||||||
|
|
|
@ -35,6 +35,7 @@ class Rule:
|
||||||
template: Template
|
template: Template
|
||||||
type: Optional[EventType]
|
type: Optional[EventType]
|
||||||
variables: Dict[str, Any]
|
variables: Dict[str, Any]
|
||||||
|
continue_after_match: bool
|
||||||
|
|
||||||
def _check_not_match(self, body: str) -> bool:
|
def _check_not_match(self, body: str) -> bool:
|
||||||
for pattern in self.not_matches:
|
for pattern in self.not_matches:
|
||||||
|
|
Loading…
Reference in a new issue