komrade update!

posting
quadrismegistus 4 years ago
parent f0cc24fd9a
commit a8f265bd5a

@ -269,8 +269,8 @@ class KomradeX(Caller):
self.log('Got resp_msg_d back from operator:',resp_msg_d) self.log('Got resp_msg_d back from operator:',resp_msg_d)
# check msgs? # check msgs?
if 'res_check_msgs' in resp_msg_d: if 'inbox' in resp_msg_d:
self.do_check_msgs(resp_msg_d['res_check_msgs']) self.do_check_msgs(resp_msg_d['inbox'])
resp_msg_d['res_refresh'] = self.refresh(check_msgs=False) # already done in previous line resp_msg_d['res_refresh'] = self.refresh(check_msgs=False) # already done in previous line
self.log('-->',resp_msg_d) self.log('-->',resp_msg_d)
@ -439,31 +439,53 @@ class KomradeX(Caller):
) )
@property
def inbox_db(self):
if not hasattr(self,'_inbox_db'):
self._inbox_db=self.get_inbox_crypt(
prefix='/inbox/'
)
return self._inbox_db
@property
def inbox_unread_db(self):
if not hasattr(self,'_inbox_unread_db'):
self._inbox_unread_db=self.get_inbox_crypt(
prefix='/inbox/unread/',
)
return self._inbox_unread_db
@property
def inbox_read_db(self):
if not hasattr(self,'_inbox_read_db'):
self._inbox_read_db=self.get_inbox_crypt(
prefix='/inbox/read/',
)
return self._inbox_read_db
def check_msgs(self,inbox=None):
def download_inbox(self,uri=None):
if not self.pubkey and self.privkey: if not self.pubkey and self.privkey:
return {'success':False,'status':'Need to be logged in'} return {'success':False,'status':'Need to be logged in'}
# checking my own mail I presume? # checking my own mail I presume?
if not inbox: uri=self.uri if not uri else uri
inbox=self.pubkey.data_b64
# send info op needs # send info op needs
msg = { msg = {
'secret_login':self.secret_login, 'secret_login':self.secret_login,
'name':self.name, 'name':self.name,
'pubkey':self.uri, 'pubkey':self.uri,
'inbox':inbox 'inbox':uri
} }
self.log('sending msg to op:',msg) self.log('sending msg to op:',msg)
# Ring operator # Ring operator
res = self.ring_ring( res = self.ring_ring(
msg, msg,
route='check_msgs' route='get_inbox'
) )
self.log('got back response:',res) self.log('got back response:',res)
stop
return self.do_check_msgs(res) return self.do_check_msgs(res)
@ -490,7 +512,7 @@ class KomradeX(Caller):
def refresh(self,check_msgs=True): def refresh(self,check_msgs=True):
# refresh inbox # refresh inbox
if check_msgs: if check_msgs:
self.check_msgs() self.download_inbox()
# status? # status?
inbox_status = self.get_inbox_ids() inbox_status = self.get_inbox_ids()

@ -53,7 +53,7 @@ class Operator(Keymaker):
'register_new_user', 'register_new_user',
'login', 'login',
'deliver_msg', 'deliver_msg',
'check_msgs', 'get_inbox',
'download_msgs', 'download_msgs',
'introduce_komrades', 'introduce_komrades',
'post', 'post',
@ -290,7 +290,7 @@ class Operator(Keymaker):
## inboxes? ## inboxes?
def inbox_crypt(self, def get_inbox_crypt(self,
crypt=None, crypt=None,
uri=None, uri=None,
prefix='/inbox/', prefix='/inbox/',
@ -307,7 +307,7 @@ class Operator(Keymaker):
if not encryptor_func or not decryptor_func: if not encryptor_func or not decryptor_func:
if not privkey_b: privkey_b=self.privkey.data if not privkey_b: privkey_b=self.privkey.data
if not pubkey_b: pubkey_b=self.pubkey.data if not pubkey_b: pubkey_b=self.op.pubkey.data
smsg=SMessage( smsg=SMessage(
privkey_b, privkey_b,

@ -243,7 +243,7 @@ class TheOperator(Operator):
return { return {
'success': True, 'success': True,
'status':f'Welcome back, Komrade @{name.decode()}.', 'status':f'Welcome back, Komrade @{name.decode()}.',
'res_check_msgs':self.check_msgs(msg_obj,do_login=False) 'inbox':self.get_inbox(msg_obj,do_login=False)
} }
else: else:
return { return {
@ -524,7 +524,7 @@ class TheOperator(Operator):
self.log(f'put {msg_from_op} (or {msg_from_op_b_encr}) in {post_id}') self.log(f'put {msg_from_op} (or {msg_from_op_b_encr}) in {post_id}')
# get inbox # get inbox
inbox_crypt = self.inbox_crypt(pubkey_b=deliver_to_b) inbox_crypt = self.get_inbox_crypt(pubkey_b=deliver_to_b)
self.log('inbox_crypt',inbox_crypt) self.log('inbox_crypt',inbox_crypt)
self.log('inbox_crypt.values',inbox_crypt.values) self.log('inbox_crypt.values',inbox_crypt.values)
res_inbox = inbox_crypt.prepend(post_id) res_inbox = inbox_crypt.prepend(post_id)
@ -538,7 +538,7 @@ class TheOperator(Operator):
self.log('->',res) self.log('->',res)
return res return res
def check_msgs(self, def get_inbox(self,
msg_to_op, msg_to_op,
required_fields = [ required_fields = [
'secret_login', 'secret_login',
@ -554,30 +554,16 @@ class TheOperator(Operator):
return login_res return login_res
# ok, then find the inbox? # ok, then find the inbox?
inbox=msg_to_op.data.get('inbox') inbox=self.get_inbox_crypt(
if not inbox: pubkey_b=b64dec(msg_to_op.from_pubkey)
inbox=msg_to_op.data.get('pubkey')
if not inbox:
res = {'success':False, 'status':'No inbox specified'}
self.log('!!',res)
return res
self.log(f'using {inbox} ({b64enc(inbox)}) to get inbox')
inbox_encr = self.crypt_keys.get(
b64enc(inbox),
prefix='/inbox/'
) )
self.log('got back inbox encr',inbox_encr)
# fine: here, try this on for size
res = { res = {
'status':'Succeeded in getting inbox.', 'status':'Succeeded in getting inbox.',
'success':True, 'success':True,
'data_encr':inbox_encr 'inbox':inbox.values if inbox else None
} }
self.log(f'returning from Op.check_msgs --> {res}') self.log(f'returning from Op.get_inbox --> {res}')
return res return res
def download_msgs(self, def download_msgs(self,

Loading…
Cancel
Save