@@ -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