From 3db7933d8bc41939b418f140acf4be1452fa9df9 Mon Sep 17 00:00:00 2001 From: missytake Date: Fri, 12 Jan 2024 15:41:13 +0100 Subject: [PATCH] greeterbot: port to chatmail --- chatmaild/pyproject.toml | 5 + chatmaild/src/chatmaild/avatar.jpg | Bin 0 -> 35785 bytes chatmaild/src/chatmaild/database.py | 10 +- chatmaild/src/chatmaild/doveauth.py | 2 +- chatmaild/src/chatmaild/editor.xdc | Bin 0 -> 152073 bytes chatmaild/src/chatmaild/greeterbot.py | 124 +++++++++++++++++++ chatmaild/src/chatmaild/greeterbot.service.f | 11 ++ chatmaild/src/chatmaild/tower-builder.xdc | Bin 0 -> 524638 bytes cmdeploy/src/cmdeploy/__init__.py | 2 + 9 files changed, 151 insertions(+), 3 deletions(-) create mode 100644 chatmaild/src/chatmaild/avatar.jpg create mode 100644 chatmaild/src/chatmaild/editor.xdc create mode 100644 chatmaild/src/chatmaild/greeterbot.py create mode 100644 chatmaild/src/chatmaild/greeterbot.service.f create mode 100644 chatmaild/src/chatmaild/tower-builder.xdc diff --git a/chatmaild/pyproject.toml b/chatmaild/pyproject.toml index 90c1fe9a..cdaaabd6 100644 --- a/chatmaild/pyproject.toml +++ b/chatmaild/pyproject.toml @@ -10,6 +10,10 @@ dependencies = [ "iniconfig", "deltachat-rpc-server", "deltachat-rpc-client", + "ConfigArgParse", + "deltachat", + "setuptools>=60", + "setuptools-scm>=8", ] [tool.setuptools] @@ -22,6 +26,7 @@ where = ['src'] doveauth = "chatmaild.doveauth:main" filtermail = "chatmaild.filtermail:main" echobot = "chatmaild.echo:main" +greeterbot = "chatmaild.greeterbot:main" chatmail-metrics = "chatmaild.metrics:main" [project.entry-points.pytest11] diff --git a/chatmaild/src/chatmaild/avatar.jpg b/chatmaild/src/chatmaild/avatar.jpg new file mode 100644 index 0000000000000000000000000000000000000000..00f1abf532f39b8a252a39e92b6c3055d09dd2a0 GIT binary patch literal 35785 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 mVs}}1M%Do2`>$RWkXX`ZIl+ literal 0 HcmV?d00001 diff --git a/chatmaild/src/chatmaild/database.py b/chatmaild/src/chatmaild/database.py index a7197e14..cb7d100a 100644 --- a/chatmaild/src/chatmaild/database.py +++ b/chatmaild/src/chatmaild/database.py @@ -46,11 +46,17 @@ class Connection: ) return result + def get_user_list(self) -> set[str]: + """Get a set of all users.""" + q = "SELECT addr from users" + return set([tup[0] for tup in self._sqlconn.execute(q).fetchall()]) + class Database: - def __init__(self, path: str): + def __init__(self, path: str, read_only=False): self.path = Path(path) - self.ensure_tables() + if not read_only: + self.ensure_tables() def _get_connection( self, write=False, transaction=False, closing=False diff --git a/chatmaild/src/chatmaild/doveauth.py b/chatmaild/src/chatmaild/doveauth.py index b95f2240..c937cbeb 100644 --- a/chatmaild/src/chatmaild/doveauth.py +++ b/chatmaild/src/chatmaild/doveauth.py @@ -46,7 +46,7 @@ def is_allowed_to_create(config: Config, user, cleartext_password) -> bool: len(localpart) > config.username_max_length or len(localpart) < config.username_min_length ): - if localpart != "echo": + if localpart != "echo" and localpart != "hello": logging.warning( "localpart %s has to be between %s and %s chars long", localpart, diff --git a/chatmaild/src/chatmaild/editor.xdc b/chatmaild/src/chatmaild/editor.xdc new file mode 100644 index 0000000000000000000000000000000000000000..3e935b7a19b2a932beea7509cd504d0e8c5b69a5 GIT binary patch literal 152073 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