43 lines
970 B
Perl
Executable File
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`; |