К сожалению, разработчик не реализовал метод GET, поэтому нет общего способа выполнить команду «Оценить текущую дорожку 1 звезда вверх / вниз», намного меньше, чем конкретная дорожка.
Кто-нибудь написал скрипт, который предоставляет эту функцию?
Тем не менее, я не нашел никакого решения изменить свойство D-Bus через командную строку.
Наконец, вот мой обходной путь для оценки текущего проигранного трека.
#!/bin/bash
#read current TrackRating
R=$(qdbus org.mpris.MediaPlayer2.banshee /org/mpris/MediaPlayer2 org.freedesktop.DBus.Properties.Get org.mpris.MediaPlayer2.Player Metadata | grep 'userRating' | tr -d '/xesam:userRating: ')
case $R in
'' ) R=0 ;;
'0.2' ) R=1 ;;
'0.4' ) R=2 ;;
'0.6' ) R=3 ;;
'0.8' ) R=4 ;;
'1' ) R=5 ;;
esac
case $1 in
'inc' ) [ $R -lt 5 ]
banshee --set-rating=$(($R+1)) ;;
'dec' ) [ $R -gt 0 ]
banshee --set-rating=$(($R-1)) ;;
'res' ) banshee --set-rating=3 ;;
'min' ) banshee --set-rating=0 ;;
'max' ) banshee --set-rating=5 ;;
esac
Параметры:
- inc -> увеличить рейтинг на единицу, если это возможно
- dec -> уменьшить рейтинг на единицу, если это возможно
- res -> сбросить рейтинг до трех звезд
- min -> установить рейтинг на ноль звезд
- max -> установить рейтинг на пять звезд
Поскольку Banshee не будет предоставлять данные для конкретного трека, это моя лучшая ставка.