Toot_music_is_playing/tweet_music
2022-08-25 14:21:27 +02:00

99 lines
4 KiB
Bash
Executable file

#!/bin/bash
#//config
BASEDIR=$(readlink -f "$0" | xargs dirname)
function urldecode() { : "${*//+/ }"; echo -e "${_//%/\\x}"; }
clementine=$(qdbus org.mpris.MediaPlayer2.clementine /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.PlaybackStatus)
vlc=$(qdbus org.mpris.MediaPlayer2.vlc /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.PlaybackStatus)
if [ "$clementine" == "Playing" ]
then
player=clementine
elif [ "$vlc" == "Playing" ]
then
player=vlc
else
exit
fi
#Path twurlis not EXPORT
twurlp="/usr/bin/ruby /home/karl/.local/share/gem/ruby/3.0.0/bin/twurl"
#twurlp="twurl"
user="foobar"
#//Musikinfo von Clementie Audioplayer holen
# Ohne Test ob Variablen einenWert haben (von den 5 darf keine leer sein)
<<<<<<< HEAD
readarray -t a <<< "$(qdbus org.mpris.MediaPlayer2.$player /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.Metadata | grep -E 'artUrl|genre|artist|album:|title:'| sed -e 's/xesam://g'| sed -e 's/mpris:artUrl: file:\/\///g')"
=======
#readarray -t a <<< "$(qdbus org.mpris.MediaPlayer2.$player /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.Metadata | grep -E 'artUrl|genre|artist|album:|title:'| sed -e 's/xesam://g'| sed -e 's/mpris:artUrl: file:\/\///g')"
# Mit Test ob Variablen einen Wert haben
# Test und Feedback ist erwünscht.
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
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]="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]="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]="ohne"; fi
>>>>>>> main
# Mit Test ob Variablen einen Wert haben
#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]="test.jpg"; 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]="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]="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]="ohne"; fi
#//Bild kopieren
lolo1=$(urldecode "${a[0]}")
convert "$lolo1" -gravity south -background YellowGreen -splice 0x18 -annotate +0+2 'Die Tweet_Music-App ist vom @dewomser' "$BASEDIR"/cover.jpg
#cp "$lolo1" "$PWD"/cover.jpg
# Daten an den Twitterclient
a[5]="https://www.youtube.com/results?search_query=${a[2]} ${a[4]}"
lolo="${a[5]// /+}"
text1=$"ich höre gerade:"
text="$text1
${a[4]}
${a[2]}
${a[1]}
Audio-player:$player
Video(geraten):$lolo"
#// Bildgröße in Byte ermitteln
byte=$(du -b cover.jpg | grep -Eo "^[0-9]+")
#// initialisieren
mis=$($twurlp -u $user -H upload.twitter.com "/1.1/media/upload.json" -d "command=INIT&media_type=image/jpg&total_bytes=$byte" | jq -r .media_id_string)
# jq -r macht das jetzt mis="${mis:1: -1}"
#//hochladen
$twurlp -u $user -H upload.twitter.com "/1.1/media/upload.json" -d "command=APPEND&media_id=$mis&segment_index=0" --file "$BASEDIR"/cover.jpg --file-field "media" | jq .
#//finalisieren
$twurlp -u $user -H upload.twitter.com "/1.1/media/upload.json" -d "command=FINALIZE&media_id=$mis" | jq .
#//text hinzufügen
$twurlp -u $user "/1.1/statuses/update.json" -d "media_ids=$mis&status=$text"