Exemple #1
0
def main(args: Optional[List[str]] = None) -> None:
    parser = get_parser()
    parsed = parser.parse_args(args=args)

    # configure the logger
    level = INFO
    if parsed.verbose:
        level = DEBUG
    handler = StreamHandler(sys.stdout)
    handler.setFormatter(log_formatter.LogFormatter())
    basicConfig(level=level, handlers=[handler])

    # check update
    is_updated = update_checking.run()

    try:
        run_program(parsed, parser=parser)
    except NotImplementedError as e:
        logger.debug('\n' + traceback.format_exc())
        logger.error('NotImplementedError')
        logger.info('The operation you specified is not supported yet. Pull requests are welcome.')
        logger.info('see: https://github.com/online-judge-tools/oj')
        if not is_updated:
            logger.info('hint: try updating the version of online-judge-tools')
        sys.exit(1)
    except Exception as e:
        logger.debug('\n' + traceback.format_exc())
        logger.exception(str(e))
        if not is_updated:
            logger.info('hint: try updating the version of online-judge-tools')
        sys.exit(1)
Exemple #2
0
from enum import Enum, unique, auto
from pathlib import Path, PurePath
from urllib.parse import urlparse
from logging import DEBUG, INFO, StreamHandler, basicConfig, getLogger


@unique
class Mode(Enum):
    CONTEST = auto()
    PROBLEM = auto()
    TESTCASE = auto()


log = getLogger(__name__)
handler = StreamHandler(sys.stdout)
handler.setFormatter(log_formatter.LogFormatter())
basicConfig(level=INFO, handlers=[handler])

user_data_dir = pathlib.Path(appdirs.user_data_dir('wrong_answer'))
os.makedirs(user_data_dir, exist_ok=True)
GITHUB_URL = 'https://takoha-cpp.github.io/WrongAnswer'
BASE_URLS = f"{user_data_dir}/folders.txt"

session = requests.Session()
agent = {
    'User-Agent':
    'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.75 Safari/537.36',
}


# sizeof_fmt is from https://bit.ly/3c5Lr6Z by Fred Cirera