6 use Y::AoC qw(grey red);
9 use Mojo::UserAgent -signatures;
10 use Mojo::Util qw(getopt);
13 my $start = '6:00:02';
16 'd|day=i' => \my $day,
17 'y|year=i' => \my $year;
19 $year //= Y::AoC::year;
24 my @now = localtime($now);
25 if ($now[4] == 11 && $now[2] >= 5 && $now[2] < 7) {
27 if ($now[2] == 5 && $now[1] >= 50) {
28 my $then = parsedate($start);
29 $sleep = $then - $now;
34 die "Use -d day command-line switch.\n"
38 my $url = "https://adventofcode.com/$year/day/$day/input";
39 my $dest = $task.'in.txt';
42 say "Sleeping for $sleep s till $start before downloading\n",
46 say "Downloading $url to $dest";
48 my $data = Y::AoC::UA::request($url, { body => 1 });
49 Mojo::File->new($dest)->spew($data);
50 say grey('==================================================');
52 say grey('==================================================');
54 say "lines words chars";
57 $url =~ s/\/input\z//;
58 $dest = $task.'test.txt';
60 my $tst = Y::AoC::UA::request($url, { cache_to => "task-$year-$day.html" })
61 ->find('main > article > pre > code')->first->all_text;
62 Mojo::File->new($dest)->spew($tst);
63 say "\n", grey("also downloaded $dest"), "\n";