许多统一作用域在ubuntu (例如unity-scope-gmusicbrowser)中不起作用,因此我尝试“修正”它们,以便在破折号中获得结果。
好的,我成功地做到了这一点(对于文件:/usr/share/unity-scopes/gmusicbrowser/unity_gmusicbrowser_deamon.py:“更正的”代码:https://gist.github.com/wa4557/d6cc4ec5354bbb95042b (可以在这里发布它吗,即使主要部分不是我的?)。这是完美无缺的,而且gmusicbrowser的结果现在可以在音乐中看到,就像我希望它们出现一样。
但我仍然有一个小问题:如何在作用域中实现可用的过滤器?我认为代码中的相关行是(第372行及其后):
def do_get_filters(self):
'''
Adds filters
'''
fs = Unity.FilterSet.new()
#if FILTERS:
#
return fs不幸的是,所有的东西都被注释掉了,没有严肃的文档或者类似的东西
过滤器在范围内将允许我过滤音乐,因此,例如,选择只摇滚乐等;我认为截图解释了我的意思(这是德语)。

如你所见,即使我收藏了很多00年代的音乐,也没有结果.
编辑:我发现了一个类似的加载程序的作用域(Unity):https://gist.github.com/wa4557/e3a9cdef5806dc3c13c9,其中添加了过滤器。坦白说我不明白这是怎么回事。但是do_get_filters函数中肯定有一些东西.
发布于 2014-01-28 10:45:17
即使我们要从原来的问题中去掉主题,在clementine范围内也有一个查询字符串,如
SEARCH_SQL = '''SELECT title, filename, artist, album, albumartist, art_automatic, year, genre, art_manual, track, length
FROM songs
WHERE album LIKE '%%%s%%' OR artist LIKE '%%%s%%' OR title LIKE '%%%s%%'
ORDER BY disc, track'''(我在原始字符串中添加了磁盘顺序),调用它的方法如下
tracks = get_music_from_clementine(search, search, search))搜索是搜索词的地方。现在我定义了一个新的搜索字符串
MY_SEARCH_SQL = '''SELECT title, filename, artist, album, albumartist, art_automatic, year, genre, art_manual, track, length
FROM songs
WHERE (year >= %s AND year <= %s AND (album LIKE '%%%s%%' OR artist LIKE '%%%s%%' OR title LIKE '%%%s%%') )
ORDER BY disc, track'''我用它打电话
tracks = get_music_from_clementine(MY_SEARCH_SQL % (str(start_year), str(end_year), search, search, search))使用这个搜索字符串,我只从数据库查询中直接获得我感兴趣的结果,而且范围肯定更快,如果可以对类型进行类似的操作,则不知道,因为在这种情况下,筛选器的数量是可变的(您可以选择多个类型,而不仅仅是“十年”过滤器的范围)。
https://askubuntu.com/questions/409367
复制相似问题