banshee:我如何通过 DBus 设置 Banshee 上特定曲目的评级?

发布于 2024-08-07 06:31:28 字数 57 浏览 4 评论 0原文

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

I'd like to set the 'rating' of a specific track (i.e. not only the one currently playing) on Banshee through the DBus interface?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

送君千里 2024-08-14 06:31:28

Banshee 不通过 DBus 公开评级功能。

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

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

  1. https://fedorahosted.org/d-feet/
  2. https://bugzilla.gnome.org/show_bug.cgi?id=579754

Banshee does not expose rating functions via DBus.

You can quickly view all functions that it exposes, using applications like d-feet[1]. Make sure that an instance of the application you are interested in (like Banshee in this case) is running.

There is a bug report already requesting to add rating functionality[2] to DBus interface. You might want to subscribe to it.

  1. https://fedorahosted.org/d-feet/
  2. https://bugzilla.gnome.org/show_bug.cgi?id=579754
送你一个梦 2024-08-14 06:31:28

自去年以来,Banshee 确实支持通过命令行进行评级。

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

有关更多选项,请参阅错误报告:
将项目评级添加到 DBus 接口

Banshee does support rating via commandline since last year.

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

See the bug report for more options:
Add item rating to DBus interface

望她远 2024-08-14 06:31:28

遗憾的是,开发人员尚未实现 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 ->如果可能的话,将评级降低一分
  • ->将评级重置为三颗星
  • ->将评级设置为最多零星
  • ->将评级设置为五颗星

到目前为止,Banshee 不会提供特定轨道的操作数据,这是我最好的选择。

Sadly the developer have not implemented a GET method, so there is no common way to execute "rate current track 1 star up/down"-command, much less than a specific track.
Does anyone has written a script which provide this feature?
Yet, I haven't found any solution to modify the D-Bus Property via command line.
Finally here is my Workaround for rate the current played Track.

#!/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

Options:

  • inc -> increase rating by one if possible
  • dec -> decrease rating by one if possible
  • res -> reset rating to three stars
  • min -> set rating to zero stars
  • max -> set rating to five stars

As far Banshee will not provide manipulating data of a specific Track this is my best bet.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文