Banshee: Как бы я установил рейтинг для конкретного трека на Banshee через DBus? - PullRequest
1 голос
/ 05 октября 2009

Я бы хотел установить «рейтинг» конкретной дорожки (то есть не только той, которая сейчас воспроизводится) на Banshee через интерфейс DBus?

Ответы [ 3 ]

2 голосов
/ 22 августа 2011

Банши поддерживает рейтинг через командную строку с прошлого года.

banshee --set-rating={1;2;3;4;5}

См. Отчет об ошибке для дополнительных опций: Добавить рейтинг предмета в интерфейс DBus

2 голосов
/ 13 октября 2009

Banshee не предоставляет функции оценки через DBus.

Вы можете быстро просмотреть все предоставляемые им функции, используя такие приложения, как d-foot [1]. Убедитесь, что экземпляр интересующего вас приложения (например, Banshee в этом случае) запущен.

Существует сообщение об ошибке, уже запрашивающее добавление функциональности рейтинга [2] в интерфейс DBus. Вы можете подписаться на него.

  1. https://fedorahosted.org/d-feet/
  2. https://bugzilla.gnome.org/show_bug.cgi?id=579754
1 голос
/ 08 августа 2012

К сожалению, разработчик не реализовал метод 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 не будет предоставлять данные для конкретного трека, это моя лучшая ставка.

...