import xmlrpclib import json import time import time from datetime import timedelta import configparser seconds=300 class BitmessageAutoresponder(): config = configparser.ConfigParser() config.read('/home/cis/PyBitmessage/examples/credentials.ini') apiusername = config['sqlite3']['apiusername'] apipassword = config['sqlite3']['apipassword'] api = xmlrpclib.ServerProxy("http://%s:%s@localhost:8442/" % (apiusername, apipassword)) def send_autorepond_inbox_message(self): """Sending Auto Message To The Recipient""" track={} while True: inboxMessages=json.loads(self.api.getAllInboxMessages()) inbox_var=inboxMessages.get('inboxMessages') for values in inbox_var: msgid=values.get('msgid') toaddress=values.get('fromAddress') fromaddress=values.get('toAddress') subject=values.get('subject') message=values.get('message') try: if time.time() < track[toaddress]: continue except KeyError: pass ackData=self.api.sendMessage(toaddress,fromaddress,subject,message) print 'The ackData is:', ackData self.api.trashMessage(msgid) global seconds currenttime = time.time() track[toaddress]= currenttime + seconds list_of_time_track = list(key for (key,value) in track.items() if value < currenttime) for t in list_of_time_track: track.pop(t) time.sleep(10) def delete_outbox_message(self): """Deleting Messages from Outbox Having Status ackreceived or msgsentnoackexpected""" SentMessage=json.loads(self.api.getAllSentMessages()) sent_var=SentMessage.get('sentMessages') for values in sent_var: status_ack_rcvd=values.get('status') ackData=values.get('ackData') if status_ack_rcvd in ('ackreceived','msgsentnoackexpected'): self.api.trashSentMessageByAckData(ackData) else: print("--------********----------") if __name__ == '__main__': BitmessageAutoresponder().send_autorepond_inbox_message() # Bitmessage_Autorespond_To_Recipient().delete_outbox_message()