dotfiles/miscellany/papeswap.pl

43 lines
970 B
Perl
Executable File

#! /bin/env perl
use utf8;
use warnings;
use strict;
use POSIX qw(strftime);
use HTTP::Tiny;
use Mojo::DOM;
# le funy vars
my $folder = "/home/nu/.opt/papeswap/img/";
my $region = "ca";
my $filename = strftime "%Y%m%d", localtime;
# if today's pape is already downloaded, then die
if (-e "$folder$filename.jpg") {
`feh --bg-scale $folder$filename.jpg`;
die("Today's pape already downloaded");
}
# get the initial page listing bing papes
my $page =
HTTP::Tiny->new(keep_alive => 0)->get(
"https://bing.gifposter.com/" . $region
);
bless $page;
my $pageDom =
Mojo::DOM->new->parse(Mojo::Util::decode('UTF-8',
$page->{content}));
# fetch listed URL
my $img = $pageDom->find('img.fl')->map(attr => 'src')->first;
# convert URL to UHD download URL
$img =~ s/((1920x1080)\.(jpg_mb))/uhd.jpg/; # this changes
$img =~ s/((h2)\.)/bing./;
# download w/ wget
`wget $img -O $folder$filename.jpg`;
# set as wallpaper
`feh --bg-fill $folder$filename.jpg`;