diff options
| author | J08nY | 2017-08-20 22:48:09 +0200 |
|---|---|---|
| committer | J08nY | 2017-08-20 22:48:09 +0200 |
| commit | bfc7f14b1df86834abf395fdbf11ab54f076dca6 (patch) | |
| tree | 4ea3c48c079baf533e625c90a1f77c62f14d5c2c /src/django_pgpmailman/plugin.py | |
| parent | 9d23d95ca530f5eabcd0f1c50d18dea2dc29b506 (diff) | |
| download | django-pgpmailman-bfc7f14b1df86834abf395fdbf11ab54f076dca6.tar.gz django-pgpmailman-bfc7f14b1df86834abf395fdbf11ab54f076dca6.tar.zst django-pgpmailman-bfc7f14b1df86834abf395fdbf11ab54f076dca6.zip | |
Diffstat (limited to 'src/django_pgpmailman/plugin.py')
| -rw-r--r-- | src/django_pgpmailman/plugin.py | 28 |
1 files changed, 22 insertions, 6 deletions
diff --git a/src/django_pgpmailman/plugin.py b/src/django_pgpmailman/plugin.py index de6cbcc..5a5d62a 100644 --- a/src/django_pgpmailman/plugin.py +++ b/src/django_pgpmailman/plugin.py @@ -20,7 +20,7 @@ from operator import itemgetter from django.conf import settings from mailmanclient._client import Plugin, Client -from django_pgpmailman.models import PGPMailingList +from django_pgpmailman.models import PGPMailingList, PGPAddress class PGPPlugin(Plugin): @@ -42,16 +42,32 @@ class PGPPlugin(Plugin): response, content = self.call('lists/%s' % list_identifier) return PGPMailingList(self._connection, content['self_link'], content) + @property + def addresses(self): + response, content = self.call('addresses') + if 'entries' not in content: + return [] + return [PGPAddress(self._connection, entry['self_link'], entry) for + entry in sorted(content['entries'], key=itemgetter('email'))] + + def get_address(self, email): + response, content = self.call('addresses/%s' % email) + return PGPAddress(self._connection, content['self_link'], content) + + +def get_client(): + return Client('%s/3.1' % + settings.MAILMAN_REST_API_URL, + settings.MAILMAN_REST_API_USER, + settings.MAILMAN_REST_API_PASS) + plugin = None -def get_pgp_plugin(): +def get_plugin(): global plugin if not plugin: - client = Client('%s/3.1' % - settings.MAILMAN_REST_API_URL, - settings.MAILMAN_REST_API_USER, - settings.MAILMAN_REST_API_PASS) + client = get_client() plugin = PGPPlugin(client.get_plugin(settings.MAILMAN_PGP_PLUGIN_NAME)) return plugin |
