Files
early-concept/get_bm_message.py
2024-04-23 13:56:26 +03:00

39 lines
1.3 KiB
Python

import argparse
import base64
import json
import xmlrpclib
def get_next_message(api, to_address, prev_id):
messages = json.loads(api.getAllInboxMessages())['inboxMessages']
messages = [m for m in messages if m['toAddress'] == to_address]
if len(messages) == 0:
return None
if not prev_id:
return messages[0]
for (prev, next) in zip(messages, messages[1:]):
if prev['msgid'] == prev_id:
return next
def main():
parser = argparse.ArgumentParser()
parser.add_argument('--prev-id')
parser.add_argument('--api', default="http://username:password@127.0.0.1:8442/")
parser.add_argument('--to-address')
parser.add_argument('--from-address')
parser.add_argument('--output-id')
parser.add_argument('--output-text')
args = parser.parse_args()
api = xmlrpclib.ServerProxy(args.api)
next_message = get_next_message(api, args.to_address, args.prev_id)
if not next_message:
return
with open(args.output_text, 'w') as f:
f.write(base64.b64decode(next_message['message']))
with open(args.output_id, 'w') as f:
f.write(next_message['msgid'])
with open(args.from_address, 'w') as f:
f.write(next_message['fromAddress'])
if __name__ == '__main__':
main()