From e50e2a66a0441d470dacd1e37c0a3ad29a93063d Mon Sep 17 00:00:00 2001 From: Johann Jacobsohn <j.jacobsohn@satzmedia.de> Date: Mon, 3 Aug 2020 13:59:13 +0200 Subject: [PATCH] get, display and also search by reporter --- papersurfer.py | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/papersurfer.py b/papersurfer.py index d17379a..434bd90 100644 --- a/papersurfer.py +++ b/papersurfer.py @@ -25,6 +25,7 @@ class PostDTO: """"Encapsulate Mattermost Posts.""" id: str message: str + reporter: str class Mattermost: @@ -37,11 +38,22 @@ class Mattermost: 'port': 443 }) self.mattermost.login() + self.reporters = {} + + + def get_reporter(self, id): + if id not in self.reporters: + self.reporters[id] = self.mattermost.users.get_user(id)["username"] + return self.reporters[id] def retrieve_all_messages(self): """Retrieve all messages from mattermost, unfiltered for papers.""" posts = self.mattermost.posts.get_posts_for_channel(CHANNEL) - return [PostDTO(m['id'], m['message']) + return [PostDTO( + id=m['id'], + message=m['message'], + reporter=self.get_reporter(m['user_id']), + ) for m in posts['posts'].values()] def filter_incoming(self, posts): @@ -56,7 +68,9 @@ class Mattermost: def get_filtered(self, needle): """Filter posts by needle.""" - return [m for m in self.msgs if needle.lower() in m.message.lower()] + return [m for m in self.msgs + if needle.lower() in m.message.lower() + or needle.lower() in m.reporter.lower()] class Papersurfer: @@ -74,7 +88,7 @@ class Papersurfer: papers = self.mtm.retrieve() body = [] for paper in papers: - button = urwid.Button(paper.message) + button = urwid.Button(f"{paper.message} ({paper.reporter})") urwid.connect_signal(button, 'click', partial(self.handle_paper, paper)) body.append(urwid.AttrMap(button, None, focus_map='reversed')) -- GitLab