Skip to main content

Кто хочет няшных обоек с /r? Who wants fancy bg from /r?

Я хочу 🙂 Болваночка вот. /r/earthporn меняем на что-там-хотим (space, всенепременно), бешеное разрешение меняем на что-то вменяемо-своё. Have fun. Можно без jq, но то ещё приключение – парсить json на коленке 😉 one-liner’а-однострочника не вышло, и так забил на все проверки (да фиг с ними).

IFS=$'\n' ; read -r -d '' -a bg_files < <(wget -O - -q reddit.com/r/earthporn.json | jq --raw-output '.data.children[] | { url: .data.url_overridden_by_dest, image: .data.preview.images[]? } | select(.image.source.width>=3840 or .image.source.height>=2160) | (.url)' )

bg_file_num=$(($RANDOM % ${#bg_files[@]}))
bg_file=${bg_files[$bg_file_num]}

wget -O - -q $bg_file | feh --bg-fill -

Ну и финальная версия (aspect ratio/screen resolution/RnD Weather/etc):

#!/bin/bash
#$ver:1.0
LC_ALL=C
UUNIT="$(basename $0)-$(uuidgen)"
read -r res_xrandr _ < <(xrandr | grep "*" | head -1)
readarray -d x res <<< ${res_xrandr}
let WIDTH=${res[0]//x/} ; export WIDTH
let HEIGHT=${res[1]//x/} ; export HEIGHT
readarray bg_array < <(wget -O - -q reddit.com/r/earthporn.json | jq --raw-output '.data.children[] | { url: .data.url_overridden_by_dest, link: .data.permalink, image: .data.preview.images[]?, width: env.WIDTH | tonumber, height: env.HEIGHT | tonumber } | select(.image.source.width>=.width and .image.source.height>=.height and .image.source.width>.image.source.height) | (.url+"|"+"https://reddit.com"+.link)')

bg_array_num=$(($RANDOM % ${#bg_array[@]}))
bg_item=${bg_array[$bg_array_num]}
readarray -d "|" bg_item <<< ${bg_array[$bg_array_num]}

echo ${bg_item[1]}

wget -O - -q ${bg_item[0]//|/} | convert - -resize $WIDTH\>x$HEIGHT - | convert - -font Arial -fill white -pointsize 36 -gravity center -draw "text 0,600 '${bg_item[1]}'" - | convert - <(wget -O - -q http://wttr.in/ROV_tqpQ0_transparency=200.png) -geometry -$((WIDTH / 3))-$((HEIGHT / 3)) -gravity Center -composite - | feh --bg-fill -

systemd-run --quiet --unit="${UUNIT}" --user --collect --on-active=15m "$0"

PS: https://github.com/ilyxa/r-fancy-bg

PPS:

$ journalctl --user | grep set_wttr_bg.bsh  |grep https | awk '{print $6}' | sort | uniq | wc -l
269
$

Вполне ок 😉