本文整理汇总了Python中quodlibet.formats._audio.AudioFile.reload方法的典型用法代码示例。如果您正苦于以下问题:Python AudioFile.reload方法的具体用法?Python AudioFile.reload怎么用?Python AudioFile.reload使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类quodlibet.formats._audio.AudioFile
的用法示例。
在下文中一共展示了AudioFile.reload方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: __update_done
# 需要导入模块: from quodlibet.formats._audio import AudioFile [as 别名]
# 或者: from quodlibet.formats._audio.AudioFile import reload [as 别名]
def __update_done(self, stations):
if not stations:
print_w("Loading remote station list failed.")
return
# take the best 4000
stations.sort(key=sort_stations, reverse=True)
stations = stations[:4000]
# remove the tags only used for ranking
for s in stations:
s.pop("~listenerpeak", None)
stations = dict(((s.key, s) for s in stations))
# don't add ones that are in the fav list
for fav in self.__fav_stations.iterkeys():
stations.pop(fav, None)
# separate
o, n = set(self.__stations.iterkeys()), set(stations)
to_add, to_change, to_remove = n - o, o & n, o - n
del o, n
# migrate stats
to_change = [stations.pop(k) for k in to_change]
for new in to_change:
old = self.__stations[new.key]
# clear everything except stats
AudioFile.reload(old)
# add new metadata except stats
for k in (x for x in new.iterkeys() if x not in MIGRATE):
old[k] = new[k]
to_add = [stations.pop(k) for k in to_add]
to_remove = [self.__stations[k] for k in to_remove]
self.__stations.remove(to_remove)
self.__stations.changed(to_change)
self.__stations.add(to_add)
示例2: __update_done
# 需要导入模块: from quodlibet.formats._audio import AudioFile [as 别名]
# 或者: from quodlibet.formats._audio.AudioFile import reload [as 别名]
def __update_done(self, stations):
if not stations:
print_w("Loading remote station list failed.")
return
# filter stations based on quality, listenercount
def filter_stations(station):
peak = station.get("~#listenerpeak", 0)
if peak < 10:
return False
aac = "AAC" in station("~format")
bitrate = station("~#bitrate", 50)
if (aac and bitrate < 40) or (not aac and bitrate < 60):
return False
return True
stations = filter(filter_stations, stations)
# group them based on the title
groups = {}
for s in stations:
key = s("~title~artist")
groups.setdefault(key, []).append(s)
# keep at most 2 URLs for each group
stations = []
for key, sub in groups.iteritems():
sub.sort(key=lambda s: s.get("~#listenerpeak", 0), reverse=True)
stations.extend(sub[:2])
# only keep the ones in at least one category
all_ = [self.filters.query(k) for k in self.filters.keys()]
assert all_
anycat_filter = reduce(lambda x, y: x | y, all_)
stations = filter(anycat_filter.search, stations)
# remove listenerpeak
for s in stations:
s.pop("~#listenerpeak", None)
# update the libraries
stations = dict(((s.key, s) for s in stations))
# don't add ones that are in the fav list
for fav in self.__fav_stations.iterkeys():
stations.pop(fav, None)
# separate
o, n = set(self.__stations.iterkeys()), set(stations)
to_add, to_change, to_remove = n - o, o & n, o - n
del o, n
# migrate stats
to_change = [stations.pop(k) for k in to_change]
for new in to_change:
old = self.__stations[new.key]
# clear everything except stats
AudioFile.reload(old)
# add new metadata except stats
for k in (x for x in new.iterkeys() if x not in MIGRATE):
old[k] = new[k]
to_add = [stations.pop(k) for k in to_add]
to_remove = [self.__stations[k] for k in to_remove]
self.__stations.remove(to_remove)
self.__stations.changed(to_change)
self.__stations.add(to_add)