import random import subprocess import sys from typing import Optional import json from .responses import COMPILED_CONFIG_FILE from .static import colors def get_response_from_situation(situation: str, colorize: Optional[bool] = None): if colorize is None: colorize = sys.stdout.isatty() # get message config = json.loads(COMPILED_CONFIG_FILE.read_text()) existing_moods = list(config["moods"].keys()) template_options = config["moods"][random.choice(existing_moods)][situation] template: str = random.choice(template_options) template_values = {} for key, values in config["vars"].items(): template_values[key] = random.choice(values) message = template.format(**template_values) # return message if not colorize: return message return colors.BOLD + message + colors.ENDC def get_response(code: int, colorize: Optional[bool] = None) -> str: return get_response_from_situation("positive" if code == 0 else "negative")