#! /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`;