Python 女妖:我如何通过DBus设置女妖上特定轨道的等级?

Python 女妖:我如何通过DBus设置女妖上特定轨道的等级?,python,linux,dbus,banshee,Python,Linux,Dbus,Banshee,我想通过DBus接口在Banshee上设置特定曲目(即不仅是当前播放的曲目)的“分级”?Banshee不通过DBus公开分级功能 您可以使用d-feet等应用程序快速查看它公开的所有函数[1]。确保您感兴趣的应用程序实例(如本例中的Banshee)正在运行 已经有一个bug报告请求将评级功能[2]添加到DBus接口。你可能想订阅它 Banshee不通过DBU公开评级功能 您可以使用d-feet等应用程序快速查看它公开的所有函数[1]。确保您感兴趣的应用程序实例(如本例中的Banshee)正在

我想通过DBus接口在Banshee上设置特定曲目(即不仅是当前播放的曲目)的“分级”?

Banshee不通过DBus公开分级功能

您可以使用d-feet等应用程序快速查看它公开的所有函数[1]。确保您感兴趣的应用程序实例(如本例中的Banshee)正在运行

已经有一个bug报告请求将评级功能[2]添加到DBus接口。你可能想订阅它


  • Banshee不通过DBU公开评级功能

    您可以使用d-feet等应用程序快速查看它公开的所有函数[1]。确保您感兴趣的应用程序实例(如本例中的Banshee)正在运行

    已经有一个bug报告请求将评级功能[2]添加到DBus接口。你可能想订阅它


  • 自去年以来,女妖确实支持通过命令行进行评级

    banshee --set-rating={1;2;3;4;5}
    
    有关更多选项,请参见错误报告:
    自去年以来,女妖确实支持通过命令行进行评级

    banshee --set-rating={1;2;3;4;5}
    
    有关更多选项,请参见错误报告:

    遗憾的是,开发人员没有实现GET方法,因此没有通用的方法来执行“rate current track 1 star up/down”(速率当前磁道1 star up/down)命令,远低于特定磁道。 是否有人编写了提供此功能的脚本? 然而,我还没有找到任何通过命令行修改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->如果可能,将评级提高1
    • 12月->如果可能,将额定值降低一
    • res->将评级重置为三星级
    • 最小->将额定值设置为零星
    • 最大->将评级设置为五星

    由于Banshee不会提供特定曲目的操作数据,这是我的最佳选择。

    遗憾的是,开发人员没有实现GET方法,因此没有通用的方法来执行“rate current Track 1 star up/down”命令,远低于特定曲目。 是否有人编写了提供此功能的脚本? 然而,我还没有找到任何通过命令行修改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->如果可能,将评级提高1
    • 12月->如果可能,将额定值降低一
    • res->将评级重置为三星级
    • 最小->将额定值设置为零星
    • 最大->将评级设置为五星

    就Banshee不会提供特定轨迹的操纵数据而言,这是我的最佳选择。

    Banshee 1.5.3中修复了引用的错误。Banshee 1.5.3中修复了引用的错误。