From 56ec1d2ec71a47ecfbf65d4f9d21651b6b33459f Mon Sep 17 00:00:00 2001 From: dece Date: Sun, 27 Dec 2020 18:59:25 +0100 Subject: [PATCH] Improve new day scripts --- 2018/skel.py.txt | 7 ------ 2020/new.py | 19 ---------------- fetch.py | 19 ---------------- prepare.py | 59 ++++++++++++++++++++++++++++++++++++++++++++++++ template.py | 7 ++++++ template.rs | 0 6 files changed, 66 insertions(+), 45 deletions(-) delete mode 100644 2018/skel.py.txt delete mode 100755 2020/new.py delete mode 100644 fetch.py create mode 100644 prepare.py create mode 100644 template.py create mode 100644 template.rs diff --git a/2018/skel.py.txt b/2018/skel.py.txt deleted file mode 100644 index 732477d..0000000 --- a/2018/skel.py.txt +++ /dev/null @@ -1,7 +0,0 @@ -def main(): - with open("", "rt") as f: - lines = [line.rstrip() for line in f.readlines()] - - -if __name__ == "__main__": - main() diff --git a/2020/new.py b/2020/new.py deleted file mode 100755 index 7f33985..0000000 --- a/2020/new.py +++ /dev/null @@ -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}") diff --git a/fetch.py b/fetch.py deleted file mode 100644 index 867ad75..0000000 --- a/fetch.py +++ /dev/null @@ -1,19 +0,0 @@ -from datetime import datetime -import os -import requests -import sys - -if len(sys.argv) < 2: - print("Usage: 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) diff --git a/prepare.py b/prepare.py new file mode 100644 index 0000000..4f7a5b0 --- /dev/null +++ b/prepare.py @@ -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() diff --git a/template.py b/template.py new file mode 100644 index 0000000..0080a8d --- /dev/null +++ b/template.py @@ -0,0 +1,7 @@ +import sys + +def main(): + lines = [line.rstrip() for line in sys.stdin] + +if __name__ == "__main__": + main() diff --git a/template.rs b/template.rs new file mode 100644 index 0000000..e69de29