import argparse from pathlib import Path from ..configuration import Config from ..chat import ChatDB from ..message import MessageFilter, Message msg_suffix = Message.file_suffix_write def convert(args: argparse.Namespace, config: Config) -> None: """ Convert messages to a new format. Also used to change the suffix, to the latest default message file suffix. """ chat = ChatDB.from_dir(Path(config.cache), Path(config.db)) # read all known message files msgs = chat.msg_gather(loc='disk', glob='*.*') # make a set of all message IDs # msg_ids = set([m.msg_id() for m in msgs]) # set requested format and write all messages chat.set_msg_format(args.format) chat.msg_write(msgs) def hist_cmd(args: argparse.Namespace, config: Config) -> None: """ Handler for the 'hist' command. """ mfilter = MessageFilter(tags_or=args.or_tags, tags_and=args.and_tags, tags_not=args.exclude_tags, question_contains=args.question, answer_contains=args.answer) chat = ChatDB.from_dir(Path(config.cache), Path(config.db), mfilter=mfilter) chat.print(args.source_code_only, args.with_tags, args.with_files)