Exemple #1
0
    def run(self, session: Session):
        args = session.command_args

        if args.token:
            session.token = args.token
            print("updated token")
        if args.l:
            session.language = args.l
            print(f"updated language to {session.language}")
        if args.d or args.y or args.today or args.next:
            now = datetime.now(timezone(timedelta(hours=-5)))
            if args.today:
                if now.month != 12:
                    raise ValueError(
                        "advent of code is not currently running. try -n?")
                if now.day not in _valid_days:
                    raise ValueError("advent of code is not currently running")
                session.challenge.year = now.year
                session.challenge.day = now.day
            elif args.next:
                if now.month == 11 and now.day == 30:
                    session.challenge.year = now.year
                    session.challenge.day = 1
                else:
                    if now.month != 12:
                        raise ValueError(
                            "advent of code is not running tomorrow")
                    if now.day + 1 not in _valid_days:
                        raise ValueError(
                            "advent of code is not running tomorrow")
                    session.challenge.year = now.year
                    session.challenge.day = now.day + 1
            else:
                if args.y:
                    session.challenge.year = args.y
                    session.challenge = Challenge(args.y,
                                                  session.challenge.day)
                if args.d:
                    session.challenge.day = args.d
                    session.challenge = Challenge(session.challenge.year,
                                                  args.d)
            print(f"updated challenge to {session.challenge}")

        session.validate()
        session.cache()
        print(session)