小编Men*_*hak的帖子

如何设置在Rhythmbox 2.96中播放的歌曲的等级?

我正在尝试创建一个Python插件,它将设置Rhythmbox 2.96中当前正在播放的歌曲的评级.似乎Rhythmbox 2.96不允许您使用API​​(Python模块)来设置歌曲的评级; 球员相关的行动已被取消,有利于MPRIS.

然后我尝试使用dbus与MPRIS,但MPRIS也没有设置歌曲评级的规范.经过大量挖掘后,我在Rhythmbox代码库中找到了这个样本并将其改编成测试脚本.

它有效,但SetEntryProperties方法导致Rhythmbox冻结约30秒.这是Python脚本.


说明:

  1. 将代码复制到名为rate.py的文件中

  2. 使用终端从终端启动rhythmbox

    rhythmbox -D rate
    
    Run Code Online (Sandbox Code Playgroud)
  3. 在Rhythmbox中,从插件启用Python控制台

  4. 启动Python控制台并运行

       execfile('/path/to/rate.py')
    
    Run Code Online (Sandbox Code Playgroud)
  5. 您将在终端中看到打印输出,Rhythmbox会冻结约20-30秒.


# rhythmbox -D rate
# Rhythmbox: Edit > Plugins > Python Console enabled
# Play a song
# Open Rhythmbox Python Console
# execfile('/path/to/rate.py')

import sys
import rb
from gi.repository import Gtk, Gdk

def rateThread(rating):
        try:
            currentSongURI = shell.props.shell_player.get_playing_entry().get_playback_uri()
            print "Setting rating for " + currentSongURI

            from gi.repository import GLib, Gio
            bus_type = Gio.BusType.SESSION
            flags = 0
            iface_info = None

            print "Get …
Run Code Online (Sandbox Code Playgroud)

python ubuntu rhythmbox gio

5
推荐指数
1
解决办法
907
查看次数

设置 Gtk3 MenuItem 的悬停背景颜色

我有一个带有弹出菜单的托盘图标。我正在尝试设置此弹出窗口中菜单项的背景颜色。我可以设置文本颜色,但不能设置菜单项的背景颜色。

在此处输入图片说明

出现的背景是默认的 Ubuntu 橙色,我无法覆盖它。

我创建了一个示例应用程序来演示这个问题。只需将其复制粘贴到 .py 文件中,它就会运行。

from gi.repository import Gtk, Gdk
import sys

class TrayIcon:

    def __init__(self):
        self.statusicon = Gtk.StatusIcon()
        self.statusicon.set_from_stock(Gtk.STOCK_MEDIA_PLAY)
        self.statusicon.connect("popup-menu", self.OnShowPopupMenu)
        window = Gtk.Window()

    def OnShowPopupMenu(self, icon, button, time):
       menu = Gtk.Menu()
       first = self.GetMenuItem("First")
       second = self.GetMenuItem("Second")
       menu.append(first)
       menu.append(second)
       menu.show_all()
       menu.popup(None, None, lambda w,x: self.statusicon.position_menu(menu, self.statusicon), self.statusicon, 3, time)

    def GetMenuItem(self, txt):
    menuItem = Gtk.MenuItem(txt)

    screen = Gdk.Screen.get_default()
    css_provider = Gtk.CssProvider()
    #css_provider.load_from_data("GtkWidget { color:white; background-color: green; } GtkWidget:hover,GtkWidget:selected { color:white; background-color:pink;}")
    css_provider.load_from_data("GtkMenuItem { color:#0f0; background-color: #f00; …
Run Code Online (Sandbox Code Playgroud)

css python gtk3

5
推荐指数
1
解决办法
6617
查看次数

如何在 Python 中使用 GLib.Array?

我正在为 Rhythmbox 编写一个插件,其中引发信号传入一个类型为 的对象GArrayGLib Arrays的文档向我展示了一些我感兴趣但无法访问的方法。

例如,g_array_index可以为我获取GArray 中的第 n 个项目,但我无法调用它。GArray 对象也没有向我展示任何有用的方法。

要了解我的意思,请在 Python 控制台中执行此操作:

from gi.repository.GLib import Array
x = Array()
dir(x)
Run Code Online (Sandbox Code Playgroud)

这是 dir(x) 的输出

['__class__', '__delattr__', '__dict__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__gtype__', '__hash__', '__info__', '__init__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', '_free_on_dealloc', 'copy', 'data', 'len']
Run Code Online (Sandbox Code Playgroud)

我看到那里没有从数组中读取的方法,也没有关于g_array_indexGLib Arrays 文档页面上提到的任何方法或任何其他方法。我也试过

    for a in x:
        print a
Run Code Online (Sandbox Code Playgroud)

并且

list(x)
Run Code Online (Sandbox Code Playgroud)

但我收到一个错误: …

python glib python-2.7

5
推荐指数
1
解决办法
1012
查看次数

如何用另一个值替换 NGINX 响应标头中*每个*出现的字符串?

我有一个 Nginx 设置,正在使用proxy_pass它与内部服务器通信并返回响应。我想要做什么 - 我可以用另一个单词替换特定标头中特定字符串的每个实例吗?

指向proxy_pass内部服务器,并在响应中发送以下标头:

WWW-Authenticate: Bearer realm="https://someinternal.domain/v2/token",service="https://someinternal.domain/v2/token"
Run Code Online (Sandbox Code Playgroud)

我希望覆盖它,将“someinternal”字符串替换为“mypublic”

WWW-Authenticate: Bearer realm="https://mypublic.domain/v2/token",service="https://mypublic.domain/v2/token"
Run Code Online (Sandbox Code Playgroud)

我知道 nginx 的sub_filter,但这似乎只适用于响应正文,而不适用于标头。
我知道proxy_redirect,但这仅适用于 Location 标头。
所以这个问题归结为 - 如何在自定义标头中执行这些 URL 替换?


我确实有一些工作,但感觉不优雅;如果我可以在不知道标头结构的情况下替换所有出现的情况,那就太好了。

map $upstream_http_www_authenticate $newvalue {
  ~(.*)(someinternal)(.*)(someinternal)(.*)  $1mypublic$3mypublic$5;
  default "";
}

server {
    listen 80;

    location / {
      proxy_pass https://someinternal.domain/;
      proxy_hide_header 'WWW-Authenticate';
      add_header WWW-Authenticate $newvalue always;
    }
}
Run Code Online (Sandbox Code Playgroud)

我使用 Nginxmap和正则表达式来查找“someinternal”,然后在正则表达式匹配之间使用“mypublic”重建标头。然后我用来proxy_hide_header隐藏内部标头,并添加其替换项。

reverse-proxy nginx http-headers

5
推荐指数
0
解决办法
1803
查看次数

Redshift列编码会影响查询执行速度吗?

在Amazon Redshift中创建数据表时,您可以指定各种编码,例如MOSTLY32或BYTEDICT或LZO.这些是在磁盘上存储柱状值时使用的压缩.

我想知道我的编码选择是否会对查询执行时间产生影响.例如,如果我创建一个BYTEDICT列,那么当涉及SELECT,GROUP BY或FILTER时,它会对LZO产生影响吗?

amazon-redshift

4
推荐指数
2
解决办法
1800
查看次数

如何清除Redshift中的stl_load_errors表?

有没有办法清除stl_load_errors亚马逊Redshift中表格的内容?

我正在运行批处理COPY进入Redshift,如果我可以一次查看整个stl_load_errors而不必按时间范围进行过滤,那将会很方便.

当我尝试时DELETE FROM stl_load_errors,我得到" 错误:无法从系统表中删除 "

当我尝试时TRUNCATE stl_load_errors,我得到" 错误:权限被拒绝:"stl_load_errors"是系统目录 "

batch-processing amazon-redshift

4
推荐指数
2
解决办法
4291
查看次数

我可以在Java中重命名已实现的方法吗?

我有一个实现接口的类,其中一个方法叫做onClick.有没有办法实现接口想要的onClick,但是将其命名为其他东西?像(我正在做的):

public void AnyMethodNameIWant() implements Interface1.onClick
Run Code Online (Sandbox Code Playgroud)

我问的三个原因是:

  1. 看一下方法签名并知道它来自一个接口会很好
  2. 要避免像onClick这样的"通用"名称,接口可能需要我拥有
  3. 在许多接口中区分相同的方法名称

如果这是一个基本上"坏"的问题,我很抱歉,因为我不熟悉Java.

java rename explicit interface

3
推荐指数
1
解决办法
3266
查看次数

在AngularJS 1.2中,如何为ng-include指定控制器?

我们正在尝试从AngularJS 1.0.7升级到1.2.1.在1.0.7中,我们能够将控制器设置为同一元素中的ng-include,就像这样

<div data-ng-include="'include1.html'" data-ng-controller="MyCtrl1"
Run Code Online (Sandbox Code Playgroud)

MyCtrl1将变得可用于内部的代码include1.html.

移动到我在此plunkr中说明的AngularJS 1.2.1时,这会中断.如果您将引用的版本更改为1.0.7,它将再次起作用.

我有兴趣了解发生了什么变化/为什么会这样.我试过搜索但找不到任何东西,或者我没有使用正确的条款.

另外,为我的ng-includes 指定控制器的正确方法是什么?

javascript controller angularjs

3
推荐指数
1
解决办法
3049
查看次数

require()和new require()之间有什么区别?

我的问题的核心是,有什么区别

var fs = new require('fs');
Run Code Online (Sandbox Code Playgroud)

var fs = require('fs');
Run Code Online (Sandbox Code Playgroud)

如果我new到处都使用所有模块,是否有任何影响或警告?

在使用Webstorm的时候,我注意到只有在我使用的时候才可以使用intellisense new require('fs').在我开始一直使用它以获得更好的开发体验之前,我想了解更多相关信息.

javascript require node.js

3
推荐指数
1
解决办法
3094
查看次数

ActivityRecognition API可以在没有数据连接的情况下工作吗?

我希望将Google Play服务ActivityRecognition API用作Android应用的一部分,该应用将在大多数情况下脱机使用; 用户通常会外出并且无法保证数据连接.

查看文档,该requestActivityUpdates方法需要连接GoogleApiClient.

我的问题是,如果没有数据连接,活动识别API是否可以保证工作?

android google-play-services activity-recognition

2
推荐指数
1
解决办法
476
查看次数