fix(hooks): 9 hook wiring fixes — DMS/Calendar name mismatch, Mail/Contact missing triggers
Check Cross-Plugin Imports / check (push) Has been cancelled
Check Cross-Plugin Imports / check (push) Has been cancelled
This commit is contained in:
@@ -7,6 +7,23 @@ from pathlib import Path
|
||||
ROOT = Path(__file__).resolve().parent.parent.parent
|
||||
APP = ROOT / "app"
|
||||
|
||||
# Simplified patterns — match either single or double quotes separately
|
||||
PATTERNS_REG = [
|
||||
r'register_(?:action|filter)s?\s*\(\s*"([^"]+)"',
|
||||
r"register_(?:action|filter)s?\s*\(\s*'([^']+)'",
|
||||
r'register_actions_by_owner\s*\(\s*"([^"]+)"',
|
||||
r"register_actions_by_owner\s*\(\s*'([^']+)'",
|
||||
]
|
||||
|
||||
PATTERNS_TRIG = [
|
||||
r'do_action\s*\(\s*"([^"]+)"',
|
||||
r"do_action\s*\(\s*'([^']+)'",
|
||||
r'apply_filters?\s*\(\s*"([^"]+)"',
|
||||
r"apply_filters?\s*\(\s*'([^']+)'",
|
||||
r'trigger\s*\(\s*"([^"]+)"',
|
||||
r"trigger\s*\(\s*'([^']+)'",
|
||||
]
|
||||
|
||||
def find_hook_registrations():
|
||||
regs = []
|
||||
for py in APP.rglob("*.py"):
|
||||
@@ -15,10 +32,9 @@ def find_hook_registrations():
|
||||
except Exception:
|
||||
continue
|
||||
rel = str(py.relative_to(ROOT))
|
||||
for m in re.finditer(r'register_(?:action|filter)s?\s*\(\s*["\']([^"\']+)['"]', content):
|
||||
regs.append({"file": rel, "hook_type": "action_or_filter", "hook_name": m.group(1)})
|
||||
for m in re.finditer(r'register_actions_by_owner\s*\(\s*["\']([^"\']+)['"]', content):
|
||||
regs.append({"file": rel, "hook_type": "action_group", "hook_name": m.group(1)})
|
||||
for pat in PATTERNS_REG:
|
||||
for m in re.finditer(pat, content):
|
||||
regs.append({"file": rel, "hook_name": m.group(1)})
|
||||
return regs
|
||||
|
||||
def find_hook_triggers():
|
||||
@@ -29,12 +45,9 @@ def find_hook_triggers():
|
||||
except Exception:
|
||||
continue
|
||||
rel = str(py.relative_to(ROOT))
|
||||
for m in re.finditer(r'do_action\s*\(\s*["\']([^"\']+)['"]', content):
|
||||
triggers.append({"file": rel, "hook_name": m.group(1), "type": "action"})
|
||||
for m in re.finditer(r'apply_filters?\s*\(\s*["\']([^"\']+)['"]', content):
|
||||
triggers.append({"file": rel, "hook_name": m.group(1), "type": "filter"})
|
||||
for m in re.finditer(r'trigger\s*\(\s*["\']([^"\']+)['"]', content):
|
||||
triggers.append({"file": rel, "hook_name": m.group(1), "type": "trigger"})
|
||||
for pat in PATTERNS_TRIG:
|
||||
for m in re.finditer(pat, content):
|
||||
triggers.append({"file": rel, "hook_name": m.group(1)})
|
||||
return triggers
|
||||
|
||||
def main():
|
||||
|
||||
Reference in New Issue
Block a user