Toot_music_is_playing/toot_music

138 lines
4 KiB
Bash
Executable file

#!/bin/bash
#//config
BASEDIR=$(readlink -f "$0" | xargs dirname)
function urldecode() { : "${*//+/ }"; echo -e "${_//%/\\x}"; }
unset linkohnecover
#list of available player
#todo: amarok liefert kein Cover
list_pl=( "strawberry" "vlc" "elisa" "juk" "plasma-browser-integration" "amarok" "tauon")
#active player
for i in "${list_pl[@]}"
do
pl=$(qdbus org.mpris.MediaPlayer2."$i" /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.PlaybackStatus 2>&1)
if [ "$pl" == "Playing" ]
then
player="$i"
fi
done
if [ "$player" == "" ]
then
exit
fi
#get metadata fromplayer
#Plasma-browser-integration wget cover
if [ "$player" == "plasma-browser-integration" ]
then
a[6]="$(qdbus org.mpris.MediaPlayer2."$player" /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.Metadata | grep -E url: | sed -e 's/xesam://g')"
lolo4=$(qdbus org.mpris.MediaPlayer2."$player" /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.Metadata | grep -E artUrl | sed -e 's/mpris:artUrl://g')
if [ -z "$lolo4" ]; then a[0]="nocover.jpg"
if [ "${a[6]}" ] && [ -z "${lolo4}" ]; then linkohnecover=1 ;fi
else
# Ab hier füe Nextcloud oder andere Musikwebseiten mit Anmeldung. Optional
# Wenn das nicht benötigt wird, braucht man hier nichts ändern!
# Ansonsten Variablen anpassen!
lolo15=${lolo4%/*}
if [ "$lolo15" == "https://irgendwas/index.php/apps/music/api/cover" ]
then
#entweder
#lolo16="--user=foo --password=bar"
#oder
lolo16="--header 'Authorization: Basic aABCDEF0123456789='"
else
lolo16=""
fi
lolo3="wget $(qdbus org.mpris.MediaPlayer2."$player" /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.Metadata | grep -E artUrl | sed -e 's/mpris:artUrl://g')"
$lolo3 "$lolo16" -O cover.jpg
a[0]=cover.jpg
fi
else
a[0]="$(qdbus org.mpris.MediaPlayer2."$player" /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.Metadata | grep -E artUrl: | sed -e 's/mpris:artUrl: file:\/\///g')"
if [ -z "${a[0]}" ]; then a[0]="nocover.jpg"; fi
fi
a[1]="$(qdbus org.mpris.MediaPlayer2."$player" /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.Metadata | grep -E artist: | sed -e 's/xesam://g')"
if [ -z "${a[1]}" ]; then a[1]="Artist: ohne"; fi
a[2]="$(qdbus org.mpris.MediaPlayer2."$player" /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.Metadata | grep -E album: | sed -e 's/xesam://g')"
if [ -z "${a[2]}" ]; then a[2]="Album: ohne"; fi
a[4]="$(qdbus org.mpris.MediaPlayer2."$player" /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.Metadata | grep -E title: | sed -e 's/xesam://g')"
if [ -z "${a[4]}" ]; then a[4]="Title: ohne"; fi
if [ -z "${a[6]}" ]; then a[6]="url: ohne"; fi
#//Bild kopieren
lolo1=$(urldecode "${a[0]}")
convert "$lolo1" -gravity south -background YellowGreen -splice 0x18 -annotate +0+2 'Die Toot_Music-App ist vom @dewomser' "$BASEDIR"/cover.jpg
#a[7]="$( ${a[6]} | sed -e 's/youtube/invidious/g')"
#olo1="$(echo ${a[6]} |sed -e 's/www.youtube.com/invidio.us/g')"
# wenn sed Ersatz nicht will. dann diese Zeile
# lolo1="$(echo "${a[6]}" | sed -e 's/[[:alpha:]]*.youtube.com/invidio.us/g')"
# sed Ersatz wegen shelcheck-terror
lolo3=${a[6]}
lolo2="${lolo3#*.}"
lolo1="${lolo2/youtube.com/url: https:\/\/invidio.us}"
# Daten an den Twitterclient
a[5]="https://www.youtube.com/results?search_query=${a[2]} ${a[4]}"
lolo="${a[5]// /+}"
lolo=${lolo//\"/}
text1=$"ich höre gerade:"
text="$text1
${a[4]}
${a[2]}
${a[1]}
Media-player: $player
Video (geraten): $lolo
${a[6]}
$lolo1"
# lyrics is part of python package lyrics-in-terminal https://github.com/Jugran/lyrics-in-terminal
# if not installed do something like
# description="cover" and comment next 2 lines
description1=$(lyrics -t "${a[1]}" "${a[4]}")
description="$(echo "$description1" | head -10)"
# Nur zur Kontrolle
echo "$text"
echo Cover
echo "${a[@]}"
if [ $linkohnecover ]
then
echo "link ohne text"
else
echo "cover"
fi
if [ $linkohnecover ]
then
echo "$text"| toot post
else
#echo -e "Ich höre gerade \n${a[4]}\n${a[2]}\n${a[1]}\n${a[3]}\nAudio-player:$player\nVideo(geraten):$lolo"
#| toot post --media "cover.jpg"
echo "$text"|toot post --media "$BASEDIR"/cover.jpg --description "$description"
fi