From cb70d97027cb4a4417fb132ad0c2de58737ce8a5 Mon Sep 17 00:00:00 2001 From: quadrismegistus Date: Fri, 18 Sep 2020 06:32:25 +0100 Subject: [PATCH] updates --- komrade/backend/keymaker.py | 5 ++++- komrade/backend/komrades.py | 25 +++++++++++++++++++------ komrade/cli/cli.py | 10 ++++------ 3 files changed, 27 insertions(+), 13 deletions(-) diff --git a/komrade/backend/keymaker.py b/komrade/backend/keymaker.py index de5ad5d..33ad137 100644 --- a/komrade/backend/keymaker.py +++ b/komrade/backend/keymaker.py @@ -64,7 +64,10 @@ class KomradeSymmetricKeyWithPassphrase(KomradeSymmetricKey): @property def passhash(self): if not self._passhash: - self._passhash = hasher(getpass(WHY_MSG)) + try: + self._passhash = hasher(getpass(WHY_MSG)) + except (KeyboardInterrupt,EOFError) as e: + exit('@Keymaker: Incorrect password. Goodbye.') return self._passhash def __init__(self,passphrase=None,passhash=None): diff --git a/komrade/backend/komrades.py b/komrade/backend/komrades.py index 3b748ec..a13ce3e 100644 --- a/komrade/backend/komrades.py +++ b/komrade/backend/komrades.py @@ -352,14 +352,27 @@ class KomradeX(Caller): self.log('res from op <-',res) # record that I've already tried this - self.crypt_keys.set( - keystr, - b'y', - prefix='/met/' - ) + # self.crypt_keys.set( + # keystr, + # b'y', + # prefix='/met/' + # ) # return result - return res + succ=res.get('success') + if succ: + msgd=res.get('msg_d',{}) + msg=msgd.get('msg') + toname=msgd.get('to_name') + status = f"""I sent the following message to {toname}:\n\n"{msg}" """ + else: + status = res.get('status') + return { + 'status':status, + 'success':succ, + 'res':res + } + diff --git a/komrade/cli/cli.py b/komrade/cli/cli.py index c904a94..e08d767 100644 --- a/komrade/cli/cli.py +++ b/komrade/cli/cli.py @@ -35,6 +35,7 @@ class CLI(Logger): self.komrade=None self.loggedin=False self.tabber=tabber + self.log('ROUTES:',self.ROUTES) # Routes rts=['/'+k for k in self.ROUTES] @@ -235,11 +236,7 @@ class CLI(Logger): name_or_pubkey = datl[0] res = self.komrade.meet(name_or_pubkey,returning=returning) status=res.get('status') - #msg = status if not res.get('success') else status+str(res) - if res.get('success'): - self.stat(f'I sent the following message to @{name_or_pubkey}:\n\n"{res.get("msg_sent")}"') - else: - self.stat(status) + self.stat(status) def msg(self,dat='',name_or_pubkey=None,msg_s=None): @@ -281,8 +278,9 @@ class CLI(Logger): - def update(self,dat=None,res=None,statd={}): + def refresh(self,dat=None,res=None,statd={}): self.log(f'<-- dat={dat}, res={res}') + stop ## get updates # this does login, msgs, and posts in one req