--- /dev/null
+#!/usr/bin/perl -w
+
+use v5.36;
+use strict;
+
+use Y::AoC qw(grey);
+use Y::AoC::UA;
+
+use Mojo::UserAgent -signatures;
+use Mojo::Util qw(getopt);
+use Time::ParseDate;
+
+my $start = '6:00:02';
+
+getopt
+ 'd|day=i' => \my $day,
+ 'y|year=i' => \my $year;
+
+$year //= Y::AoC::year;
+my $sleep;
+
+if (!$day) {
+ my $now = time;
+ my @now = localtime($now);
+ if ($now[4] == 11 && $now[2] >= 5 && $now[2] < 7) {
+ $day = $now[3];
+ if ($now[2] == 5 && $now[1] >= 50) {
+ my $then = parsedate($start);
+ $sleep = $then - $now;
+ }
+ }
+}
+
+die "Use -d day command-line switch.\n"
+ if !$day;
+
+my $task = 2*$day-1;
+my $url = "https://adventofcode.com/$year/day/$day/input";
+my $dest = $task.'in.txt';
+
+if ($sleep) {
+ say "Sleeping for $sleep s till $start before downloading\n",
+ "$url to $dest";
+ sleep $sleep;
+}
+say "Downloading $url to $dest";
+
+my $data = Y::AoC::UA::request($url, { body => 1 });
+Mojo::File->new($dest)->spurt($data);
+say grey('==================================================');
+print $data;
+say grey('==================================================');
+
+say "lines words chars";
+system 'wc', $dest;
+
+$url =~ s/\/input\z//;
+$dest = $task.'test.txt';
+
+my $tst = Y::AoC::UA::request($url, { cache_to => "task-$year-$day.html" })
+ ->find('main > article > pre > code')->first->all_text;
+Mojo::File->new($dest)->spurt($tst);
+say "\n", grey("also downloaded $dest"), "\n";