import sys import argparse from pathlib import Path from ..configuration import Config from ..message import Message, MessageError from ..chat import ChatDB def print_message(message: Message, args: argparse.Namespace) -> None: """ Print given message according to give arguments. """ if args.question: print(message.question) elif args.answer: print(message.answer) elif message.answer and args.only_source_code: for code in message.answer.source_code(): print(code) else: print(message.to_str()) def print_cmd(args: argparse.Namespace, config: Config) -> None: """ Handler for the 'print' command. """ # print given file if args.file is not None: fname = Path(args.file) try: message = Message.from_file(fname) if message: print_message(message, args) except MessageError: print(f"File is not a valid message: {args.file}") sys.exit(1) # print latest message elif args.latest: chat = ChatDB.from_dir(Path(config.cache), Path(config.db)) latest = chat.msg_latest(loc='disk') if not latest: print("No message found!") sys.exit(1) print_message(latest, args)