def new_session_with_our_user_agent( *, path: pathlib.Path) -> Iterator[requests.Session]: session = requests.Session() session.headers['User-Agent'] = '{}/{} (+{})'.format( version.__package_name__, version.__version__, version.__url__) logger.debug('User-Agent: %s', session.headers['User-Agent']) with utils.with_cookiejar(session, path=path) as session: yield session
def new_session_with_our_user_agent(*, path: pathlib.Path) -> Iterator[requests.Session]: session = requests.Session() session.headers['User-Agent'] = '{}/{} (+{})'.format(version.__package_name__, version.__version__, version.__url__) logger.debug('User-Agent: %s', session.headers['User-Agent']) try: with utils.with_cookiejar(session, path=path) as session: yield session except http.cookiejar.LoadError: logger.info(HINT + 'You can delete the broken cookie.jar file: %s', str(path)) raise
def generate_contest_directory(contest_id): contest = contest_from_url(ATCODER_URL + contest_id) contest_dir = Path(contest_id).resolve() contest_dir.mkdir() chdir(contest_dir) with with_cookiejar(requests.Session()) as sess: problems = contest.list_problems(session=sess) for i, problem in enumerate(problems): problem_url = problem.get_url() problem_dir = contest_dir.joinpath(chr(ord('a') + i)) problem_dir.mkdir() chdir(problem_dir) command = ['pipenv', 'run', 'oj', 'download', problem_url] subprocess.run(command).check_returncode() problem_dir.joinpath('main.py').touch() time.sleep(1) chdir(contest_dir)