From bcc8a5bb067f9796b145145c225d727fdf3ef269 Mon Sep 17 00:00:00 2001 From: quadrismegistus Date: Tue, 15 Sep 2020 10:12:11 +0100 Subject: [PATCH] updates --- komrade/backend/komrades.py | 46 +++++++++++++++++++++++++++++++++++-- 1 file changed, 44 insertions(+), 2 deletions(-) diff --git a/komrade/backend/komrades.py b/komrade/backend/komrades.py index c372dd8..3974bb6 100644 --- a/komrade/backend/komrades.py +++ b/komrade/backend/komrades.py @@ -351,7 +351,49 @@ class KomradeX(Caller): override=True ) - def inbox(self): + def refresh(self): + # refresh inbox + self.check_msgs() + + # status? + inbox_status = self.get_inbox_ids() + if not inbox_status['success']: return inbox_status + + unread=inbox_status.get('unread',[]) + inbox=inbox_status.get('inbox',[]) + + # download new messages + self.download_msgs(post_ids = unread) + + return { + 'success':True, + 'status':'Messages refreshed', + 'unread':unread, + 'inbox':inbox + } + + def inbox(self,topn=100,only_unread=False): + # refreshing inbox + res = self.refresh() + if not res['success']: return res + boxname = 'inbox' if not only_unread else 'unread' + post_ids = res[boxname] + msgs=[] + for post_id in post_ids: + try: + msg = self.read_msg(post_id) + except ThemisError as e: + self.log(f'!! Could not decrypt post {post_id}') + continue + msgs.append(msg) + if len(msgs)>=topn: break + # print('!!',post_id,msg.from_whom, msg.to_whom, msg.from_whom is self) + return msgs + + # return all messages read? + + + def get_inbox_ids(self): inbox_encr = self.crypt_keys.get( self.uri, prefix='/inbox/', @@ -430,7 +472,7 @@ class KomradeX(Caller): def download_msgs(self,post_ids=[],inbox=None): if not post_ids: # get unerad - post_ids = self.inbox().get('unread',[]) + post_ids = self.get_inbox_ids().get('unread',[]) if not post_ids: return {'success':False,'status':'No messages requested'}