Skip to content

Commit 958cf03

Browse files
author
Jonathan Warren
committed
Merge pull request #232 from DivineOmega/ackdata_api_changes
New API command getSentMessageByAckData and made other commands return ackData
2 parents 7f1d8cb + e49e9a6 commit 958cf03

1 file changed

Lines changed: 24 additions & 6 deletions

File tree

src/bitmessagemain.py

Lines changed: 24 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4404,18 +4404,18 @@ def _dispatch(self, method, params):
44044404
return data
44054405
elif method == 'getAllSentMessages':
44064406
shared.sqlLock.acquire()
4407-
shared.sqlSubmitQueue.put('''SELECT msgid, toaddress, fromaddress, subject, lastactiontime, message, encodingtype, status FROM sent where folder='sent' ORDER BY lastactiontime''')
4407+
shared.sqlSubmitQueue.put('''SELECT msgid, toaddress, fromaddress, subject, lastactiontime, message, encodingtype, status, ackdata FROM sent where folder='sent' ORDER BY lastactiontime''')
44084408
shared.sqlSubmitQueue.put('')
44094409
queryreturn = shared.sqlReturnQueue.get()
44104410
shared.sqlLock.release()
44114411
data = '{"sentMessages":['
44124412
for row in queryreturn:
4413-
msgid, toAddress, fromAddress, subject, lastactiontime, message, encodingtype, status = row
4413+
msgid, toAddress, fromAddress, subject, lastactiontime, message, encodingtype, status, ackdata = row
44144414
subject = shared.fixPotentiallyInvalidUTF8Data(subject)
44154415
message = shared.fixPotentiallyInvalidUTF8Data(message)
44164416
if len(data) > 25:
44174417
data += ','
4418-
data += json.dumps({'msgid':msgid.encode('hex'),'toAddress':toAddress,'fromAddress':fromAddress,'subject':subject.encode('base64'),'message':message.encode('base64'),'encodingType':encodingtype,'lastActionTime':lastactiontime,'status':status},indent=4, separators=(',', ': '))
4418+
data += json.dumps({'msgid':msgid.encode('hex'),'toAddress':toAddress,'fromAddress':fromAddress,'subject':subject.encode('base64'),'message':message.encode('base64'),'encodingType':encodingtype,'lastActionTime':lastactiontime,'status':status,'ackData':ackdata.encode('hex')},indent=4, separators=(',', ': '))
44194419
data += ']}'
44204420
return data
44214421
elif method == 'getInboxMessagesByAddress':
@@ -4442,16 +4442,34 @@ def _dispatch(self, method, params):
44424442
msgid = params[0].decode('hex')
44434443
v = (msgid,)
44444444
shared.sqlLock.acquire()
4445-
shared.sqlSubmitQueue.put('''SELECT msgid, toaddress, fromaddress, subject, lastactiontime, message, encodingtype, status FROM sent WHERE msgid=?''')
4445+
shared.sqlSubmitQueue.put('''SELECT msgid, toaddress, fromaddress, subject, lastactiontime, message, encodingtype, status, ackdata FROM sent WHERE msgid=?''')
44464446
shared.sqlSubmitQueue.put(v)
44474447
queryreturn = shared.sqlReturnQueue.get()
44484448
shared.sqlLock.release()
44494449
data = '{"sentMessage":['
44504450
for row in queryreturn:
4451-
msgid, toAddress, fromAddress, subject, lastactiontime, message, encodingtype, status = row
4451+
msgid, toAddress, fromAddress, subject, lastactiontime, message, encodingtype, status, ackdata = row
44524452
subject = shared.fixPotentiallyInvalidUTF8Data(subject)
44534453
message = shared.fixPotentiallyInvalidUTF8Data(message)
4454-
data += json.dumps({'msgid':msgid.encode('hex'),'toAddress':toAddress,'fromAddress':fromAddress,'subject':subject.encode('base64'),'message':message.encode('base64'),'encodingType':encodingtype,'lastActionTime':lastactiontime,'status':status},indent=4, separators=(',', ': '))
4454+
data += json.dumps({'msgid':msgid.encode('hex'),'toAddress':toAddress,'fromAddress':fromAddress,'subject':subject.encode('base64'),'message':message.encode('base64'),'encodingType':encodingtype,'lastActionTime':lastactiontime,'status':status,'ackData':ackdata.encode('hex')},indent=4, separators=(',', ': '))
4455+
data += ']}'
4456+
return data
4457+
elif method == 'getSentMessageByAckData':
4458+
if len(params) == 0:
4459+
return 'API Error 0000: I need parameters!'
4460+
ackData = params[0].decode('hex')
4461+
v = (ackData,)
4462+
shared.sqlLock.acquire()
4463+
shared.sqlSubmitQueue.put('''SELECT msgid, toaddress, fromaddress, subject, lastactiontime, message, encodingtype, status, ackdata FROM sent WHERE ackdata=?''')
4464+
shared.sqlSubmitQueue.put(v)
4465+
queryreturn = shared.sqlReturnQueue.get()
4466+
shared.sqlLock.release()
4467+
data = '{"sentMessage":['
4468+
for row in queryreturn:
4469+
msgid, toAddress, fromAddress, subject, lastactiontime, message, encodingtype, status, ackdata = row
4470+
subject = shared.fixPotentiallyInvalidUTF8Data(subject)
4471+
message = shared.fixPotentiallyInvalidUTF8Data(message)
4472+
data += json.dumps({'msgid':msgid.encode('hex'),'toAddress':toAddress,'fromAddress':fromAddress,'subject':subject.encode('base64'),'message':message.encode('base64'),'encodingType':encodingtype,'lastActionTime':lastactiontime,'status':status,'ackData':ackdata.encode('hex')},indent=4, separators=(',', ': '))
44554473
data += ']}'
44564474
return data
44574475
elif (method == 'trashMessage') or (method == 'trashInboxMessage'):

0 commit comments

Comments
 (0)