aoc-2022/venv/Lib/site-packages/aocd/post.py

43 lines
1.2 KiB
Python

# coding: utf-8
from __future__ import absolute_import
from __future__ import division
from __future__ import print_function
from __future__ import unicode_literals
import logging
from .get import current_day
from .get import most_recent_year
from .models import default_user
from .models import Puzzle
from .models import User
log = logging.getLogger(__name__)
def submit(
answer, part=None, day=None, year=None, session=None, reopen=True, quiet=False
):
if session is None:
user = default_user()
else:
user = User(token=session)
if day is None:
day = current_day()
if year is None:
year = most_recent_year()
puzzle = Puzzle(year=year, day=day, user=user)
if part is None:
# guess if user is submitting for part a or part b
answer_a = getattr(puzzle, "answer_a", None)
log.warning("answer a: %s", answer_a)
if answer_a is None:
log.warning("submitting for part a")
part = "a"
else:
log.warning("submitting for part b (part a is already completed)")
part = "b"
response = puzzle._submit(value=answer, part=part, reopen=reopen, quiet=quiet)
return response