aboutsummaryrefslogtreecommitdiffstats
path: root/climl/__init__.py
diff options
context:
space:
mode:
Diffstat (limited to 'climl/__init__.py')
-rw-r--r--climl/__init__.py16
1 files changed, 16 insertions, 0 deletions
diff --git a/climl/__init__.py b/climl/__init__.py
index cb1f129..c16218f 100644
--- a/climl/__init__.py
+++ b/climl/__init__.py
@@ -4,10 +4,26 @@ from . import hooks
def on_email(content):
print('on_email:', content)
+ context = {}
+ try:
+ for hook in hooks:
+ context, content = hook(context, content)
+ except interface.HookStopIteration():
+ pass
print('now, raising exception')
raise interface.HookAbortError()
def main():
+ # TODO: how to load hooks with a dependency tree and sort them accordingly
+ # to generate hooks list ?
+ # now try a fixed list ?
+ hooks = (
+ hook_check_ml_restrictions,
+ hook_validate_poster,
+ hook_process_subscribe_queries,
+ hook_generate_rcpt_list,
+ hook_send_all,
+ )
print('starting imap.main loop')
try:
imap.main(on_email)