Improve new day scripts
This commit is contained in:
parent
1310c4314e
commit
56ec1d2ec7
|
@ -1,7 +0,0 @@
|
|||
def main():
|
||||
with open("", "rt") as f:
|
||||
lines = [line.rstrip() for line in f.readlines()]
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
19
2020/new.py
19
2020/new.py
|
@ -1,19 +0,0 @@
|
|||
#!/usr/bin/env python3
|
||||
|
||||
import os
|
||||
from datetime import date
|
||||
|
||||
TEMPLATE = """\
|
||||
import sys
|
||||
|
||||
def main():
|
||||
lines = [line.rstrip() for line in sys.stdin]
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
"""
|
||||
|
||||
day = date.today().day
|
||||
with open(f"day{day}.py", "wt") as f:
|
||||
f.write(TEMPLATE)
|
||||
os.system(f"python ../fetch.py {day}")
|
19
fetch.py
19
fetch.py
|
@ -1,19 +0,0 @@
|
|||
from datetime import datetime
|
||||
import os
|
||||
import requests
|
||||
import sys
|
||||
|
||||
if len(sys.argv) < 2:
|
||||
print("Usage: <fetch> day")
|
||||
sys.exit()
|
||||
day = sys.argv[1]
|
||||
year = sys.argv[2] if len(sys.argv) > 2 else str(datetime.now().year)
|
||||
|
||||
URL = "https://adventofcode.com/{}/day/{}/input"
|
||||
SESSION_ID = os.environ["AOC_SESSION"]
|
||||
|
||||
response = requests.get(URL.format(year, day), cookies={"session": SESSION_ID})
|
||||
response.raise_for_status()
|
||||
|
||||
with open("day{}.txt".format(day), "wt") as output_file:
|
||||
output_file.write(response.text)
|
59
prepare.py
Normal file
59
prepare.py
Normal file
|
@ -0,0 +1,59 @@
|
|||
import argparse
|
||||
import os
|
||||
import shutil
|
||||
import webbrowser
|
||||
from datetime import datetime
|
||||
from pathlib import Path
|
||||
|
||||
import requests
|
||||
|
||||
|
||||
URL = "https://adventofcode.com/{}/day/{}"
|
||||
SESSION_ID = os.environ["AOC_SESSION"]
|
||||
|
||||
|
||||
def main():
|
||||
now = datetime.now()
|
||||
parser = argparse.ArgumentParser()
|
||||
parser.add_argument("day", type=int, default=now.day)
|
||||
parser.add_argument("year", type=int, default=now.year)
|
||||
parser.add_argument("--lang", default="py")
|
||||
args = parser.parse_args()
|
||||
|
||||
day_url = get_url(args.day, args.year)
|
||||
input_url = day_url + "/input"
|
||||
input_text = fetch(input_url)
|
||||
create_files(input_text, args.day, args.year, args.lang)
|
||||
webbrowser.open_new_tab(day_url)
|
||||
webbrowser.open_new_tab(input_url)
|
||||
|
||||
def fetch(input_url):
|
||||
response = requests.get(input_url, cookies={"session": SESSION_ID})
|
||||
response.raise_for_status()
|
||||
return response.text
|
||||
|
||||
def get_url(day, year):
|
||||
return URL.format(year, day)
|
||||
|
||||
def create_files(text, day, year, lang):
|
||||
root_dir = Path(__file__).parent.resolve()
|
||||
year_dir = root_dir / str(year)
|
||||
year_dir.mkdir(exist_ok=True)
|
||||
input_path = year_dir / f"day{day}.txt"
|
||||
with open(input_path, "wt") as output_file:
|
||||
output_file.write(text)
|
||||
template_path = root_dir / f"template.{lang}"
|
||||
if template_path.exists():
|
||||
if lang == "rs":
|
||||
bin_path = year_dir / "src" / "bin"
|
||||
bin_path.mkdir(exist_ok=True)
|
||||
script_path = bin_path / f"day{day}.{lang}"
|
||||
else:
|
||||
script_path = year_dir / f"day{day}.{lang}"
|
||||
shutil.copyfile(template_path, script_path)
|
||||
else:
|
||||
print(f"No template for {lang}.")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
7
template.py
Normal file
7
template.py
Normal file
|
@ -0,0 +1,7 @@
|
|||
import sys
|
||||
|
||||
def main():
|
||||
lines = [line.rstrip() for line in sys.stdin]
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
0
template.rs
Normal file
0
template.rs
Normal file
Loading…
Reference in a new issue