diff --git a/script/injectDM.py b/script/injectDM.py new file mode 100644 index 0000000..1c8a9c6 --- /dev/null +++ b/script/injectDM.py @@ -0,0 +1,51 @@ +#!/usr/bin/env python3 +# Usage: python3 script/injectDM.py -s NODEID -d NODEID -m "message" +# meshing-around - helper script +import sys +import os +import argparse + +# welcome header +print("meshing-around: injectDM.py -s NODEID -d NODEID -m 'Hello World'") +print("Auto-Inject DM messages to data/bbsdm.pkl") +print("---------------------------------------------------------------") + +try: + # set the path to import the modules and config.ini + sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '..'))) + from modules.log import * + from modules.bbstools import * +except Exception as e: + print(f"Error importing modules run this program from the main program directory 'python3 script/injectDM.py'") + exit(1) + +if __name__ == "__main__": + parser = argparse.ArgumentParser(description='Inject DM messages to data/bbsdm.pkl') + parser.add_argument('-s', '--src', type=str, required=True, help='Source NODEID') + parser.add_argument('-d', '--dst', type=str, required=True, help='Destination NODEID') + parser.add_argument('-m', '--msg', type=str, required=True, help="'Message to send'") + args = parser.parse_args() + dst = args.dst + src = args.src + message = args.msg + if not message: + logger.error("Message cannot be empty") + exit(1) + if dst == src: + logger.error("Source and Destination cannot be the same") + exit(1) + + if not isinstance(bbs_dm, list): + logger.error("bbs_dm is corrupt, something is wrong") + exit(1) + + # inject the message + if bbs_post_dm(dst, message, src): + logger.info(f"Injected message from {src} to {dst}: {message}") + else: + logger.error("Failed to inject message") + exit(1) + + # show stats get_bbs_stats + stats = get_bbs_stats() + logger.info(f"BBS Stats: {stats}")