本文整理汇总了Python中quodlibet.util.tag函数的典型用法代码示例。如果您正苦于以下问题:Python tag函数的具体用法?Python tag怎么用?Python tag使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了tag函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Python代码示例。
示例1: get
def get(self, key, default="", connector=" - "):
if key[:1] == "~" and '~' in key[1:]:
return connector.join(map(self.get, util.tagsplit(key)))
elif key[:1] == "~" and key[-4:-3] == ":":
func = key[-3:]
key = key[:-4]
return "%s<%s>" % (util.tag(key), func)
elif key in self:
return self[key]
return util.tag(key)
开发者ID:akdor1154,项目名称:quodlibet,代码行数:10,代码来源:prefs.py
示例2: _people
def _people(self, song, box):
vb = Gtk.VBox()
if "artist" in song:
if len(song.list("artist")) == 1:
title = _("artist")
else:
title = _("artists")
title = util.capitalize(title)
l = Label(song["artist"])
l.set_ellipsize(Pango.EllipsizeMode.END)
vb.pack_start(l, False, True, 0)
else:
title = tag("~people")
for tag_ in ["performer", "lyricist", "arranger", "composer",
"conductor", "author"]:
if tag_ in song:
l = Label(song[tag_])
l.set_ellipsize(Pango.EllipsizeMode.END)
if len(song.list(tag_)) == 1:
name = tag(tag_)
else:
name = readable(tag_, plural=True)
vb.pack_start(Frame(util.capitalize(name), l), False, False, 0)
performers = {}
for tag_ in song:
if "performer:" in tag_:
for person in song[tag_].split('\n'):
try:
performers[str(person)]
except:
performers[str(person)] = []
performers[str(person)].append(
util.title(tag_[tag_.find(":") + 1:]))
if len(performers) > 0:
performerstr = ''
for performer in performers:
performerstr += performer + ' ('
i = 0
for part in performers[performer]:
if i != 0:
performerstr += ', '
performerstr += part
i += 1
performerstr += ')\n'
l = Label(performerstr)
l.set_ellipsize(Pango.EllipsizeMode.END)
if len(performers) == 1:
name = tag("performer")
else:
name = _("performers")
vb.pack_start(Frame(util.capitalize(name), l), False, False, 0)
if not vb.get_children():
vb.destroy()
else:
box.pack_start(Frame(title, vb), False, False, 0)
开发者ID:urielz,项目名称:quodlibet,代码行数:55,代码来源:information.py
示例3: _people
def _people(self, songs, box):
tags_ = PEOPLE
people = defaultdict(set)
for song in songs:
for t in tags_:
if t in song:
people[t] |= set(song.list(t))
data = []
# Preserve order of people
for tag_ in tags_:
values = people.get(tag_)
if values:
name = readable(tag_, plural=len(values) > 1)
data.append((name, "\n".join(values)))
table = Table(len(data))
for i, (key, text) in enumerate(data):
key = util.capitalize(util.escape(key) + ":")
table.attach(Label(markup=key), 0, 1, i, i + 1,
xoptions=Gtk.AttachOptions.FILL)
label = Label(text, ellipsize=True)
table.attach(label, 1, 2, i, i + 1)
box.pack_start(Frame(tag("~people"), table), False, False, 0)
开发者ID:elfalem,项目名称:quodlibet,代码行数:25,代码来源:information.py
示例4: _album
def _album(self, song, box):
if "album" not in song:
return
text = ["<span size='x-large'><i>%s</i></span>"
% util.escape(song.comma("album"))]
secondary = []
if "discnumber" in song:
secondary.append(_("Disc %s") % song["discnumber"])
if "discsubtitle" in song:
secondary.append("<i>%s</i>" %
util.escape(song.comma("discsubtitle")))
if "tracknumber" in song:
secondary.append(_("Track %s") % song["tracknumber"])
if secondary:
text.append(" - ".join(secondary))
if "date" in song:
text.append(util.escape(song.comma("date")))
if "organization" in song or "labelid" in song:
t = util.escape(song.comma("~organization~labelid"))
text.append(t)
if "producer" in song:
text.append(_("Produced by %s") % (
util.escape(song.comma("producer"))))
w = Label(markup="\n".join(text), ellipsize=True)
hb = Gtk.HBox(spacing=12)
hb.pack_start(w, True, True, 0)
box.pack_start(Frame(tag("album"), hb), False, False, 0)
cover = ReactiveCoverImage(song=song)
hb.pack_start(cover, False, True, 0)
开发者ID:elfalem,项目名称:quodlibet,代码行数:35,代码来源:information.py
示例5: _execute
def _execute(self, options, args):
if len(args) != 0:
raise CommandError(_("Too many arguments"))
headers = [_("Tag"), _("Description")]
nicks = ["tag", "desc"]
if not options.columns:
order = nicks
else:
order = [n.strip() for n in options.columns.split(",")]
tag_names = list(USER_TAGS)
if options.all:
tag_names.extend(MACHINE_TAGS)
tags = []
for key in tag_names:
tags.append((key, util.tag(key)))
tags.sort()
if not options.terse:
print_table(tags, headers, nicks, order)
else:
print_terse_table(tags, nicks, order)
开发者ID:LudoBike,项目名称:quodlibet,代码行数:25,代码来源:commands.py
示例6: _album
def _album(self, song, box):
if "album" not in song: return
w = Label("")
text = []
text.append("<i>%s</i>" % util.escape(song.comma("album")))
if "date" in song:
text[-1] += " (%s)" % util.escape(song.comma("date"))
secondary = []
if "discnumber" in song:
secondary.append(_("Disc %s") % song["discnumber"])
if "discsubtitle" in song:
secondary.append("<i>%s</i>" %
util.escape(song.comma("discsubtitle")))
if "tracknumber" in song:
secondary.append(_("Track %s") % song["tracknumber"])
if secondary: text.append(" - ".join(secondary))
if "organization" in song or "labelid" in song:
t = util.escape(song.comma("~organization~labelid"))
text.append(t)
if "producer" in song:
text.append("Produced by %s" %(
util.escape(song.comma("producer"))))
w.set_markup("\n".join(text))
w.set_ellipsize(pango.ELLIPSIZE_END)
hb = gtk.HBox(spacing=12)
cover = CoverImage(song=song)
if cover: hb.pack_start(cover, expand=False)
else: cover.destroy()
hb.pack_start(w)
box.pack_start(Frame(tag("album"), hb), expand=False, fill=False)
开发者ID:silkecho,项目名称:glowing-silk,代码行数:35,代码来源:information.py
示例7: Filter
def Filter(t):
# Translators: The substituted string is the name of the
# selected column (a translated tag name).
b = qltk.MenuItem(
_("_Filter on %s") % util.tag(t, True), Gtk.STOCK_INDEX)
b.connect('activate', self.__filter_on, t, songs, browser)
return b
开发者ID:lebauce,项目名称:quodlibet,代码行数:7,代码来源:songlist.py
示例8: __preview_pattern
def __preview_pattern(self, edit, label):
people = "\n".join(
[util.tag("artist"), util.tag("performer"), util.tag("arranger")])
album = FakeAlbum({"date": "2004-10-31",
"~length": util.format_time(6319),
"~long-length": util.format_time_long(6319),
"~tracks": ngettext("%d track", "%d tracks", 5) % 5,
"~discs": ngettext("%d disc", "%d discs", 2) % 2,
"~people": people})
try: text = XMLFromPattern(edit.text) % album
except:
text = _("Invalid pattern")
edit.apply.set_sensitive(False)
try: pango.parse_markup(text, u"\u0000")
except gobject.GError:
text = _("Invalid pattern")
edit.apply.set_sensitive(False)
else: edit.apply.set_sensitive(True)
label.set_markup(text)
开发者ID:silkecho,项目名称:glowing-silk,代码行数:20,代码来源:albums.py
示例9: __init__
def __init__(self, t):
self._render = gtk.CellRendererText()
title = util.tag(t)
super(SongList.TextColumn, self).__init__(title, self._render)
self.header_name = t
self.set_sizing(gtk.TREE_VIEW_COLUMN_FIXED)
self.set_visible(True)
self.set_clickable(True)
self.set_sort_indicator(False)
self.set_cell_data_func(self._render, self._cdf, t)
self._text = set()
self._timeout = None
self._update_layout(title, force=True)
开发者ID:silkecho,项目名称:glowing-silk,代码行数:13,代码来源:songlist.py
示例10: __init__
def __init__(self):
super(SortCriterionBox, self).__init__(gtk.TreeStore(str, str))
render = gtk.CellRendererText()
self.pack_start(render, True)
self.add_attribute(render, 'text', 1)
model = self.get_model()
for (group, items) in self.__criterions:
group_row = model.append(None, row=[group, group])
for t in items:
model.append(group_row, row=[t, "%s (%s)" % (tag(t), t)])
self.set_active(0)
开发者ID:silkecho,项目名称:glowing-silk,代码行数:14,代码来源:sortdialog.py
示例11: __init__
def __init__(self, row_pattern):
parts = re.split(r"(?<!\\):", row_pattern)
parts = list(map(lambda p: p.replace(r"\:", ":"), parts))
is_numeric = lambda s: s[:2] == "~#" and "~" not in s[2:]
is_pattern = lambda s: '<' in s
f_round = lambda s: (isinstance(s, float) and "%.2f" % s) or s
disp = (len(parts) >= 2 and parts[1]) or r"[i](<~#tracks>)[/i]"
cat = parts[0]
if is_pattern(cat):
title = util.pattern(cat, esc=True, markup=True)
try:
pc = XMLFromPattern(cat)
except ValueError:
pc = XMLFromPattern("")
tags = pc.tags
format = pc.format_list
has_markup = True
else:
title = util.tag(cat)
tags = util.tagsplit(cat)
has_markup = False
if is_numeric(cat):
def format(song):
v = text_type(f_round(song(cat)))
return [(v, v)]
else:
format = lambda song: song.list_separate(cat)
if is_pattern(disp):
try:
pd = XMLFromPattern(disp)
except ValueError:
pd = XMLFromPattern("")
format_display = pd.format
else:
if is_numeric(disp):
format_display = lambda coll: text_type(f_round(coll(disp)))
else:
format_display = lambda coll: util.escape(coll.comma(disp))
self.title = title
self.tags = set(tags)
self.format = format
self.format_display = format_display
self.has_markup = has_markup
开发者ID:Muges,项目名称:quodlibet,代码行数:49,代码来源:util.py
示例12: get_markup
def get_markup(self, tags, iter_):
obj = self[iter_][0]
if isinstance(obj, Album):
return PAT % obj
if isinstance(obj, basestring):
markup = util.escape(obj)
else:
tag = util.tag(tags[len(self.get_path(iter_)) - 1])
if obj is UnknownNode:
markup = UNKNOWN_PATTERN % util.escape(tag)
else:
markup = MULTI_PATTERN % util.escape(tag)
num = len(StoreUtils.get_albums_for_iter(self, iter_))
return markup + COUNT_PATTERN % num
开发者ID:silkecho,项目名称:glowing-silk,代码行数:16,代码来源:collection.py
示例13: get_markup
def get_markup(self, tags, iter_):
obj = self.get_value(iter_, 0)
if isinstance(obj, AlbumNode):
return PAT % obj.album
if isinstance(obj, string_types):
markup = util.escape(obj)
else:
tag = util.tag(tags[len(self.get_path(iter_).get_indices()) - 1])
if obj is UnknownNode:
markup = UNKNOWN_PATTERN % util.escape(tag)
else:
markup = MULTI_PATTERN % util.escape(tag)
num = len(self.get_albums_for_iter(iter_))
return markup + COUNT_PATTERN % num
开发者ID:elfalem,项目名称:quodlibet,代码行数:16,代码来源:models.py
示例14: _fill_model
def _fill_model(self, can_change):
self.clear()
render = Gtk.CellRendererText()
self.pack_start(render, True)
self.add_attribute(render, 'text', 1)
if can_change is None:
can_change = self.__tags
can_change = sorted(can_change)
model = self.get_model()
for t in can_change:
model.append(row=[t, "%s (%s)" % (tag(t), t)])
self.set_model(model)
if len(model) == 0:
raise ValueError("TagsCombo boxes require at least one tag name")
开发者ID:LudoBike,项目名称:quodlibet,代码行数:17,代码来源:tagscombobox.py
示例15: _album
def _album(self, song, box):
if "album" not in song:
return
w = Label("")
text = []
text.append("<i>%s</i>" % util.escape(song.comma("album")))
if "date" in song:
text[-1] += " (%s)" % util.escape(song.comma("date"))
secondary = []
if "discnumber" in song:
secondary.append(_("Disc %s") % song["discnumber"])
if "discsubtitle" in song:
secondary.append("<i>%s</i>" %
util.escape(song.comma("discsubtitle")))
if "tracknumber" in song:
secondary.append(_("Track %s") % song["tracknumber"])
if secondary:
text.append(" - ".join(secondary))
if "organization" in song or "labelid" in song:
t = util.escape(song.comma("~organization~labelid"))
text.append(t)
if "producer" in song:
text.append("Produced by %s" % (
util.escape(song.comma("producer"))))
w.set_markup("\n".join(text))
w.set_ellipsize(Pango.EllipsizeMode.END)
hb = Gtk.HBox(spacing=12)
cover = CoverImage()
cover.set_property('no-show-all', True)
hb.pack_start(cover, False, True, 0)
def show_cover(cover, success):
if success:
cover.show()
cover.disconnect(signal_id)
signal_id = cover.connect('cover-visible', show_cover)
cover.set_song(song)
hb.pack_start(w, True, True, 0)
box.pack_start(Frame(tag("album"), hb), False, False, 0)
开发者ID:urielz,项目名称:quodlibet,代码行数:44,代码来源:information.py
示例16: to_html
def to_html(songs):
cols = get_columns()
cols_s = ""
for col in cols:
cols_s += '<th>%s</th>' % tag(col)
songs_s = ""
for song in songs:
s = '<tr>'
for col in cols:
col = {"~#rating": "~rating", "~#length": "~length"}.get(
col, col)
s += '\n<td>%s</td>' % (
escape(text_type(song.comma(col))) or ' ')
s += '</tr>'
songs_s += s
return HTML % {'headers': cols_s, 'songs': songs_s}
开发者ID:LudoBike,项目名称:quodlibet,代码行数:19,代码来源:html.py
示例17: list_tags
def list_tags(song, machine=False, terse=False):
"""Return a list of key, value pairs"""
keys = set(song.realkeys())
if not machine:
keys.difference_update(MACHINE_TAGS)
tags = []
for key in sorted(keys, key=sortkey):
for value in song.list(key):
if not terse:
# QL can't handle multiline values and splits them by \n.
# Tags with Windows line endings leave a \r, messing up the
# table layout
value = value.rstrip("\r")
# Normalize tab
value = value.replace("\t", " ")
tags.append((util.tag(key), value, key))
return tags
开发者ID:ZDBioHazard,项目名称:quodlibet,代码行数:19,代码来源:util.py
示例18: _execute
def _execute(self, options, args):
if len(args) != 0:
raise CommandError(_("Too many arguments"))
headers = [_("Tag"), _("Description")]
nicks = ["tag", "desc"]
if not options.columns:
order = nicks
else:
order = map(str.strip, options.columns.split(","))
tags = []
for key in USER_TAGS:
tags.append((key, util.tag(key)))
tags.sort()
if not options.terse:
print_table(tags, headers, nicks, order)
else:
print_terse_table(tags, nicks, order)
开发者ID:gbtami,项目名称:quodlibet,代码行数:21,代码来源:commands.py
示例19: _format_title
def _format_title(self, tag):
"""Format the column title based on the tag"""
return util.tag(tag)
开发者ID:mistotebe,项目名称:quodlibet,代码行数:4,代码来源:songlistcolumns.py
示例20: Preferences
from gi.repository import Gtk
from quodlibet import config
from quodlibet import qltk
from quodlibet import util
from quodlibet import _
from quodlibet.browsers._base import FakeDisplayItem, EditDisplayPatternMixin
from quodlibet.formats import PEOPLE
from quodlibet.qltk import Button, Icons
from quodlibet.qltk.ccb import ConfigCheckButton
from quodlibet.util import format_rating
from quodlibet.util.i18n import numeric_phrase
from quodlibet.util.dprint import print_d
PEOPLE
_SOME_PEOPLE = "\n".join([util.tag("artist"), util.tag("performer"),
util.tag("composer"), util.tag("arranger"), ])
_EMPTY = _("Songs not in an album")
DEFAULT_PATTERN_TEXT = """[b]<album|<album>|%s>[/b]<date| (<date>)>
[small]<~discs|<~discs> - ><~tracks> - <~long-length>[/small]
<~people>""" % _EMPTY
class Preferences(qltk.UniqueWindow, EditDisplayPatternMixin):
_DEFAULT_PATTERN = DEFAULT_PATTERN_TEXT
_PREVIEW_ITEM = FakeDisplayItem({
"date": "2010-10-31",
"~length": util.format_time_display(6319),
"~long-length": util.format_time_long(6319),
开发者ID:elfalem,项目名称:quodlibet,代码行数:31,代码来源:prefs.py
注:本文中的quodlibet.util.tag函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论