print_cmd: added option to print latest message
This commit is contained in:
parent
7277eb5dc0
commit
968d858580
@ -3,16 +3,13 @@ import argparse
|
|||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
from ..configuration import Config
|
from ..configuration import Config
|
||||||
from ..message import Message, MessageError
|
from ..message import Message, MessageError
|
||||||
|
from ..chat import ChatDB
|
||||||
|
|
||||||
|
|
||||||
def print_cmd(args: argparse.Namespace, config: Config) -> None:
|
def print_message(message: Message, args: argparse.Namespace) -> None:
|
||||||
"""
|
"""
|
||||||
Handler for the 'print' command.
|
Print given message according to give arguments.
|
||||||
"""
|
"""
|
||||||
fname = Path(args.file)
|
|
||||||
try:
|
|
||||||
message = Message.from_file(fname)
|
|
||||||
if message:
|
|
||||||
if args.question:
|
if args.question:
|
||||||
print(message.question)
|
print(message.question)
|
||||||
elif args.answer:
|
elif args.answer:
|
||||||
@ -22,6 +19,27 @@ def print_cmd(args: argparse.Namespace, config: Config) -> None:
|
|||||||
print(code)
|
print(code)
|
||||||
else:
|
else:
|
||||||
print(message.to_str())
|
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:
|
except MessageError:
|
||||||
print(f"File is not a valid message: {args.file}")
|
print(f"File is not a valid message: {args.file}")
|
||||||
sys.exit(1)
|
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)
|
||||||
|
|||||||
@ -114,7 +114,9 @@ def create_parser() -> argparse.ArgumentParser:
|
|||||||
help="Print message files.",
|
help="Print message files.",
|
||||||
aliases=['p'])
|
aliases=['p'])
|
||||||
print_cmd_parser.set_defaults(func=print_cmd)
|
print_cmd_parser.set_defaults(func=print_cmd)
|
||||||
print_cmd_parser.add_argument('-f', '--file', help='Print given message file', required=True, metavar='FILE')
|
print_group = print_cmd_parser.add_mutually_exclusive_group(required=True)
|
||||||
|
print_group.add_argument('-f', '--file', help='Print given message file', metavar='FILE')
|
||||||
|
print_group.add_argument('-l', '--latest', help='Print latest message', action='store_true')
|
||||||
print_cmd_modes = print_cmd_parser.add_mutually_exclusive_group()
|
print_cmd_modes = print_cmd_parser.add_mutually_exclusive_group()
|
||||||
print_cmd_modes.add_argument('-q', '--question', help='Only print the question', action='store_true')
|
print_cmd_modes.add_argument('-q', '--question', help='Only print the question', action='store_true')
|
||||||
print_cmd_modes.add_argument('-a', '--answer', help='Only print the answer', action='store_true')
|
print_cmd_modes.add_argument('-a', '--answer', help='Only print the answer', action='store_true')
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user