adventofcode/src/aoc/aoc.py
2022-12-06 07:49:16 +01:00

42 lines
1.2 KiB
Python

import os
import shutil
import urllib.request
from cpl_core.console import Console
def _get_cookie_headers() -> dict[str, str]:
"""
original code from https://github.com/anthonywritescode/aoc2022/blob/main/support/support.py
"""
env = os.path.join(os.path.dirname(os.path.abspath(__file__)), '../../.env')
if not os.path.exists(env):
Console.error(f'Session key from https://adventofcode.com/ required')
with open(env) as f:
contents = f.read().strip()
return {'Cookie': contents}
def get_input(year: int, day: int) -> str:
"""
original code from https://github.com/anthonywritescode/aoc2022/blob/main/support/support.py
"""
file = f'input/{year}/input_{day}.txt'
if not os.path.exists(os.path.dirname(file)):
os.makedirs(os.path.dirname(file))
if not os.path.exists(file):
url = f'https://adventofcode.com/{year}/day/{day}/input'
req = urllib.request.Request(url, headers=_get_cookie_headers())
txt = urllib.request.urlopen(req).read().decode()
with open(file, 'w+') as f:
f.write(txt)
f.close()
txt = ''
with open(file, 'r') as f:
txt = f.read()
f.close()
return txt