Skip to content
Snippets Groups Projects
Commit 3f50b86e authored by Johann Jacobsohn's avatar Johann Jacobsohn
Browse files

lint

parent e4bdc6b6
No related branches found
No related tags found
No related merge requests found
"""Simplified mattermost interface.""" """Simplified mattermost interface."""
import requests
import logging import logging
import time import time
import requests
import mattermostdriver import mattermostdriver
from .exceptions import ConfigError from .exceptions import ConfigError
from .dtos import PostDTO from .dtos import PostDTO
...@@ -83,7 +83,7 @@ class Mattermost: ...@@ -83,7 +83,7 @@ class Mattermost:
else: else:
break break
postDTOs = [PostDTO( dtos = [PostDTO(
id=m['id'], id=m['id'],
create_at=m['create_at'], create_at=m['create_at'],
message=m['message'], message=m['message'],
...@@ -94,13 +94,13 @@ class Mattermost: ...@@ -94,13 +94,13 @@ class Mattermost:
logging.debug("retrieving and processing %i mattermost posts took %f", logging.debug("retrieving and processing %i mattermost posts took %f",
len(posts), time.perf_counter() - start) len(posts), time.perf_counter() - start)
return postDTOs return dtos
def _filter_incoming(self, posts): def _filter_incoming(self, posts):
"""Filter posts from mattermost to only papers.""" """Filter posts from mattermost to only papers."""
return [p for p in posts if "doi" in p.message] return [p for p in posts if "doi" in p.message]
def retrieve(self, since): def retrieve(self, since=None):
"""Retrieve papers from mattermost channel.""" """Retrieve papers from mattermost channel."""
if not self._loggedin: if not self._loggedin:
self._login() self._login()
......
...@@ -16,6 +16,7 @@ import os ...@@ -16,6 +16,7 @@ import os
import sys import sys
import re import re
import logging import logging
from pathlib import Path
import urwid import urwid
import configargparse import configargparse
from tinydb import TinyDB, Query from tinydb import TinyDB, Query
...@@ -48,7 +49,6 @@ class Papersurfer: ...@@ -48,7 +49,6 @@ class Papersurfer:
self.db_path = "." self.db_path = "."
self.isLoggedIn = False
self.db_posts = None self.db_posts = None
self.db_papers = None self.db_papers = None
self.db_file_posts = "papersurfer_posts_db.json" self.db_file_posts = "papersurfer_posts_db.json"
...@@ -58,7 +58,8 @@ class Papersurfer: ...@@ -58,7 +58,8 @@ class Papersurfer:
"""Load data from mattermost and save to storage.""" """Load data from mattermost and save to storage."""
self._connect_db() self._connect_db()
latest = self.get_latest_post() latest = self.get_latest_post()
posts = self.mattermost.retrieve(latest["create_at"] if latest else None) posts = self.mattermost.retrieve(latest["create_at"]
if latest else None)
self._update_db(posts=posts) self._update_db(posts=posts)
def _connect_db(self): def _connect_db(self):
...@@ -74,7 +75,7 @@ class Papersurfer: ...@@ -74,7 +75,7 @@ class Papersurfer:
if posts: if posts:
posts.sort(reverse=True, key=lambda p: p["create_at"]) posts.sort(reverse=True, key=lambda p: p["create_at"])
return posts[0] if len(posts) else [] return posts[0] if posts else None
def _update_db(self, posts=[], papers=[]): def _update_db(self, posts=[], papers=[]):
""""Merge new data into database.""" """"Merge new data into database."""
...@@ -94,7 +95,8 @@ class Papersurfer: ...@@ -94,7 +95,8 @@ class Papersurfer:
def get_posts(self): def get_posts(self):
"""Get all posts in storage.""" """Get all posts in storage."""
self._connect_db() self._connect_db()
return [PostDTO(p["id"], p["create_at"], p["message"], p["reporter"], p["doi"]) return [PostDTO(p["id"], p["create_at"], p["message"],
p["reporter"], p["doi"])
for p in self.db_posts.all()] for p in self.db_posts.all()]
def get_posts_filtered(self, needle=None): def get_posts_filtered(self, needle=None):
...@@ -167,12 +169,12 @@ class PapersurferUi: ...@@ -167,12 +169,12 @@ class PapersurferUi:
urwid.connect_signal(ask, 'change', self.onchange) urwid.connect_signal(ask, 'change', self.onchange)
self.mainloop = urwid.MainLoop(self._over, self._palette, self.mainloop = urwid.MainLoop(self._over, self._palette,
unhandled_input=self.h_unhandled_input) unhandled_input=self._h_unhandled_input)
self.mainloop.set_alarm_in(.1, self.load_list) self.mainloop.set_alarm_in(.1, self.load_list)
self.mainloop.set_alarm_in(.2, self.update_data) self.mainloop.set_alarm_in(.2, self.update_data)
self.mainloop.run() self.mainloop.run()
def h_unhandled_input(self, key): def _h_unhandled_input(self, key):
"""Handle keyboard input not otherwise handled.""" """Handle keyboard input not otherwise handled."""
if key == "esc": if key == "esc":
raise urwid.ExitMainLoop() raise urwid.ExitMainLoop()
...@@ -343,7 +345,8 @@ class PapersurferUi: ...@@ -343,7 +345,8 @@ class PapersurferUi:
"""Open submit paper dialog.""" """Open submit paper dialog."""
self._pile = urwid.Pile( self._pile = urwid.Pile(
[ [
PostDialog(self.mtm, self.h_close_dialog, self.mainloop) PostDialog(self.papersurfer.mattermost,
self.h_close_dialog, self.mainloop)
] ]
) )
self._over = urwid.Overlay( self._over = urwid.Overlay(
...@@ -496,10 +499,10 @@ class PostDialog(urwid.WidgetWrap): ...@@ -496,10 +499,10 @@ class PostDialog(urwid.WidgetWrap):
def get_version(): def get_version():
from pathlib import Path """Get version number from static version text file."""
pkgbase = Path(__file__).parent pkgbase = Path(__file__).parent
with open(f"{pkgbase}/_version.txt", "r") as f: with open(f"{pkgbase}/_version.txt", "r") as versionfile:
return f.read() return versionfile.read()
def parse_args(): def parse_args():
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment