Banshee: Как бы я установил рейтинг для конкретного трека на Banshee через DBus?
Я хотел бы установить "рейтинг" конкретной дорожки (то есть не только той, которая сейчас воспроизводится) на Banshee через интерфейс DBus?
3 ответа
Банши не выставляет рейтинговые функции через DBus.
Вы можете быстро просмотреть все функции, которые он предоставляет, используя такие приложения, как d-foot[1]. Убедитесь, что экземпляр интересующего вас приложения (например, Banshee в этом случае) запущен.
Уже есть сообщение об ошибке, запрашивающее добавить функциональность оценки [2] в интерфейс DBus. Вы можете подписаться на него.
Banshee поддерживает рейтинг через командную строку с прошлого года.
banshee --set-rating={1;2;3;4;5}
См. Отчет об ошибке для получения дополнительных опций: Добавить рейтинг предметов в интерфейс DBus
К сожалению, разработчик не реализовал метод 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 -> сбросить рейтинг до трех звезд
- мин -> установить рейтинг на ноль звезд
- Макс -> установить рейтинг на пять звезд
Пока Banshee не будет предоставлять данные для конкретного трека, это мой лучший выбор.