首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用python在统一作用域中实现过滤器

用python在统一作用域中实现过滤器
EN

Ask Ubuntu用户
提问于 2014-01-22 21:46:41
回答 1查看 307关注 0票数 3

许多统一作用域在ubuntu (例如unity-scope-gmusicbrowser)中不起作用,因此我尝试“修正”它们,以便在破折号中获得结果。

好的,我成功地做到了这一点(对于文件:/usr/share/unity-scopes/gmusicbrowser/unity_gmusicbrowser_deamon.py:“更正的”代码:https://gist.github.com/wa4557/d6cc4ec5354bbb95042b (可以在这里发布它吗,即使主要部分不是我的?)。这是完美无缺的,而且gmusicbrowser的结果现在可以在音乐中看到,就像我希望它们出现一样。

但我仍然有一个小问题:如何在作用域中实现可用的过滤器?我认为代码中的相关行是(第372行及其后):

代码语言:javascript
复制
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函数中肯定有一些东西.

EN

回答 1

Ask Ubuntu用户

发布于 2014-01-28 10:45:17

即使我们要从原来的问题中去掉主题,在clementine范围内也有一个查询字符串,如

代码语言:javascript
复制
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'''

(我在原始字符串中添加了磁盘顺序),调用它的方法如下

代码语言:javascript
复制
tracks = get_music_from_clementine(search, search, search))

搜索是搜索词的地方。现在我定义了一个新的搜索字符串

代码语言:javascript
复制
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'''

我用它打电话

代码语言:javascript
复制
    tracks = get_music_from_clementine(MY_SEARCH_SQL % (str(start_year), str(end_year), search, search, search))

使用这个搜索字符串,我只从数据库查询中直接获得我感兴趣的结果,而且范围肯定更快,如果可以对类型进行类似的操作,则不知道,因为在这种情况下,筛选器的数量是可变的(您可以选择多个类型,而不仅仅是“十年”过滤器的范围)。

票数 1
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/409367

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档