added input caching to aoc

This commit is contained in:
Sven Heidemann 2022-12-05 14:36:05 +01:00
parent 5610a952b0
commit 21812a5756
2 changed files with 17 additions and 3 deletions

1
.gitignore vendored
View File

@ -159,4 +159,5 @@ cython_debug/
# and can be added to the global gitignore or merged into this file. For a more nuclear
# option (not recommended) you can uncomment the following to ignore the entire idea folder.
.idea/
input/

View File

@ -1,4 +1,5 @@
import os
import shutil
import urllib.request
from cpl_core.console import Console
@ -21,6 +22,18 @@ def get_input(year: int, day: int) -> str:
"""
original code from https://github.com/anthonywritescode/aoc2022/blob/main/support/support.py
"""
url = f'https://adventofcode.com/{year}/day/{day}/input'
req = urllib.request.Request(url, headers=_get_cookie_headers())
return urllib.request.urlopen(req).read().decode()
file = f'input/{year}/input_{day}.txt'
if not os.path.exists(file):
os.makedirs(os.path.dirname(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