42 lines
1.2 KiB
Python
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
|