#!/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" "AudioTube") #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]}") magick "$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