diff options
author | Vasil Dimov <vd@FreeBSD.org> | 2006-06-18 09:33:47 +0000 |
---|---|---|
committer | Vasil Dimov <vd@FreeBSD.org> | 2006-06-18 09:33:47 +0000 |
commit | a7a976a5d6e35d0d61398916769c9e63eb426d78 (patch) | |
tree | 781488039e1ce2b322e6b4064cfe275ba6c72313 /multimedia/quodlibet | |
parent | 313c6c2e9c5b81b5af03b2d874f97ee77656e176 (diff) | |
download | ports-a7a976a5d6e35d0d61398916769c9e63eb426d78.tar.gz ports-a7a976a5d6e35d0d61398916769c9e63eb426d78.zip |
Notes
Diffstat (limited to 'multimedia/quodlibet')
-rw-r--r-- | multimedia/quodlibet/Makefile | 80 | ||||
-rw-r--r-- | multimedia/quodlibet/distinfo | 6 | ||||
-rw-r--r-- | multimedia/quodlibet/files/patch-quodlibet.py | 21 | ||||
-rw-r--r-- | multimedia/quodlibet/files/qlscrobbler.py | 149 | ||||
-rw-r--r-- | multimedia/quodlibet/pkg-plist | 38 |
5 files changed, 174 insertions, 120 deletions
diff --git a/multimedia/quodlibet/Makefile b/multimedia/quodlibet/Makefile index 0dd81b1918d9..c8807b4120f9 100644 --- a/multimedia/quodlibet/Makefile +++ b/multimedia/quodlibet/Makefile @@ -6,65 +6,82 @@ # PORTNAME= quodlibet -PORTVERSION= 0.17.1 -PORTREVISION= 1 +PORTVERSION= 0.21.1 CATEGORIES= multimedia audio python gnome MASTER_SITES= http://www.sacredchao.net/~piman/software/ MAINTAINER= changbom.yoon@gmail.com COMMENT= A GTK+-based audio player written in Python -BUILD_DEPENDS= ${PYTHON_SITELIBDIR}/gst/__init__.py:${PORTSDIR}/multimedia/py-gstreamer80 -RUN_DEPENDS= ${PYTHON_SITELIBDIR}/gst/__init__.py:${PORTSDIR}/multimedia/py-gstreamer80 +INITIAL_DEP= ${PYTHON_SITELIBDIR}/gst-0.10/gst/__init__.py:${PORTSDIR}/multimedia/py-gstreamer \ + ${PYTHON_SITELIBDIR}/mutagen/__init__.py:${PORTSDIR}/audio/py-mutagen +BUILD_DEPENDS= ${INITIAL_DEP} +RUN_DEPENDS= ${INITIAL_DEP} USE_PYTHON= 2.3+ USE_GNOME= pygtk2 USE_GMAKE= yes USE_X_PREFIX= yes -USE_GSTREAMER80= gconf +USE_GSTREAMER= yes +USE_GSTREAMER+= gconf MAN1= exfalso.1 quodlibet.1 -# Supported formats: ogg vorbis mad flac remote -QUODLIBET_FORMATS?= ogg vorbis mad flac remote +QUODLIBET_FORMATS?= ogg vorbis mp3 flac musepack wavpack aac remote .for format in ${QUODLIBET_FORMATS} WANT_QUODLIBET_${format:U}= yes .endfor .if defined(WANT_QUODLIBET_OGG) -BUILD_DEPENDS+= ${PYTHON_SITELIBDIR}/ogg/_ogg.so:${PORTSDIR}/audio/py-ogg -RUN_DEPENDS+= ${PYTHON_SITELIBDIR}/ogg/_ogg.so:${PORTSDIR}/audio/py-ogg -USE_GSTREAMER80+= ogg +USE_GSTREAMER+= ogg .endif .if defined(WANT_QUODLIBET_VORBIS) -BUILD_DEPENDS+= ${PYTHON_SITELIBDIR}/ogg/vorbis.so:${PORTSDIR}/audio/py-vorbis -RUN_DEPENDS+= ${PYTHON_SITELIBDIR}/ogg/vorbis.so:${PORTSDIR}/audio/py-vorbis -USE_GSTREAMER80+= vorbis +USE_GSTREAMER+= vorbis .endif -.if defined(WANT_QUODLIBET_MAD) -BUILD_DEPENDS+= ${PYTHON_SITELIBDIR}/madmodule.so:${PORTSDIR}/audio/py-mad -RUN_DEPNDS+= ${PYTHON_SITELIBDIR}/madmodule.so:${PORTSDIR}/audio/py-mad -USE_GSTREAMER80+= mad +.if defined(WANT_QUODLIBET_MP3) +USE_GSTREAMER+= mad .endif .if defined(WANT_QUODLIBET_FLAC) -USE_GSTREAMER80+= flac +USE_GSTREAMER+= flac +.endif + +.if defined(WANT_QUODLIBET_MUSEPACK) || defined(WANT_QUODLIBET_WAVPACK) \ + || defined(WANT_QUODLIBET_AAC) +CTYPES_DEP= ${PYTHON_SITELIBDIR}/ctypes/__init__.py:${PORTSDIR}/devel/py-ctypes +BUILD_DEPENDS+= ${CTYPES_DEP} +RUN_DEPENDS+= ${CTYPES_DEP} +.endif + +.if defined(WANT_QUODLIBET_MUSEPACK) +USE_GSTREAMER+= musepack +.endif + +.if defined(WANT_QUODLIBET_WAVPACK) +USE_GSTREAMER+= wavpack +.endif + +.if defined(WANT_QUODLIBET_AAC) +LIB_DEPENDS+= mp4v2.0:${PORTSDIR}/multimedia/mpeg4ip-libmp4v2 +USE_GSTREAMER+= faad .endif .if defined(WANT_QUODLIBET_REMOTE) -BUILD_DEPENDS+= ${PYTHON_SITELIBDIR}/feedparser.py:${PORTSDIR}/textproc/py-feedparser -RUN_DEPENDS+= ${PYTHON_SITELIBDIR}/feedparser.py:${PORTSDIR}/textproc/py-feedparser -USE_GSTREAMER80+= gnomevfs +FEEDPARSER_DEP= ${PYTHON_SITELIBDIR}/feedparser.py:${PORTSDIR}/textproc/py-feedparser +BUILD_DEPENDS+= ${FEEDPARSER_DEP} +RUN_DEPENDS+= ${FEEDPARSER_DEP} +USE_GSTREAMER+= gnomevfs .endif .if defined(WITH_EXTENSIONS) -BUILD_DEPENDS+= ${PYTHON_SITELIBDIR}/gtk-2.0/egg/__init__.py:${PORTSDIR}/x11-toolkits/py-gnome-extras -RUN_DEPENDS+= ${PYTHON_SITELIBDIR}/gtk-2.0/egg/__init__.py:${PORTSDIR}/x11-toolkits/py-gnome-extras -PLIST_SUB+= EXTENSIONS:="" +EXTRAS_DEP= ${PYTHON_SITELIBDIR}/gtk-2.0/egg/__init__.py:${PORTSDIR}/x11-toolkits/py-gnome-extras +BUILD_DEPENDS+= ${EXTRAS_DEP} +RUN_DEPENDS+= ${EXTRAS_DEP} +PLIST_SUB+= EXTENSIONS="" .else -PLIST_SUB+= EXTENSIONS:="@comment " +PLIST_SUB+= EXTENSIONS="@comment " .endif .if defined(PACKAGE_BUILDING) @@ -75,22 +92,20 @@ BUILD_DEPENDS+= Xvfb:${X_VFBSERVER_PORT} \ .include <bsd.port.pre.mk> .if ${OSVERSION} < 500000 -IGNORE= is unsupported on FreeBSD 4.x +IGNORE= is unsupported on FreeBSD 4.x .endif .if ${ARCH} == amd64 || ${ARCH} == sparc64 || ${ARCH} == ia64 -BROKEN= "Does not configure" +BROKEN= Does not configure .endif do-configure: @${PYTHON_CMD} ${WRKSRC}/check.py do-build: -.if defined(WITH_EXTENSIONS) @cd ${WRKSRC}/po && ${GMAKE} po +.if defined(WITH_EXTENSIONS) @cd ${WRKSRC} && ${GMAKE} extensions -.else - @cd ${WRKSRC}/po && ${GMAKE} po .endif pre-install: @@ -98,7 +113,8 @@ pre-install: @${MKDIR} ${PREFIX}/share/applications post-install: - @${MKDIR} ${PREFIX}/share/${PORTNAME}/plugins - @${INSTALL_DATA} ${FILESDIR}/qlscrobbler.py ${PREFIX}/share/${PORTNAME}/plugins + @${MKDIR} ${DATADIR}/plugins + @${MKDIR} ${DATADIR}/plugins/events + @${INSTALL_DATA} ${FILESDIR}/qlscrobbler.py ${DATADIR}/plugins/events .include <bsd.port.post.mk> diff --git a/multimedia/quodlibet/distinfo b/multimedia/quodlibet/distinfo index a3db6c40d433..d5a4fe43dd1e 100644 --- a/multimedia/quodlibet/distinfo +++ b/multimedia/quodlibet/distinfo @@ -1,3 +1,3 @@ -MD5 (quodlibet-0.17.1.tar.gz) = 457e03c9aeed83077172185a06664c96 -SHA256 (quodlibet-0.17.1.tar.gz) = 4a2fda947933991bbdf0d338afbcb3a01f19b87f0418867086bf68ce4cda6011 -SIZE (quodlibet-0.17.1.tar.gz) = 434299 +MD5 (quodlibet-0.21.1.tar.gz) = 39508a281244e5b9264d2f9692e5f498 +SHA256 (quodlibet-0.21.1.tar.gz) = c093116a7b3846a937c37396f630dd8e5ea79654a38e322144b231ce685926d5 +SIZE (quodlibet-0.21.1.tar.gz) = 498151 diff --git a/multimedia/quodlibet/files/patch-quodlibet.py b/multimedia/quodlibet/files/patch-quodlibet.py deleted file mode 100644 index aff4cc37f846..000000000000 --- a/multimedia/quodlibet/files/patch-quodlibet.py +++ /dev/null @@ -1,21 +0,0 @@ ---- quodlibet.py.orig 2005-12-12 15:43:59.000000000 -0700 -+++ quodlibet.py 2006-01-07 11:25:44.773179056 -0700 -@@ -273,15 +273,15 @@ - basedir = os.getcwd() - if basedir.endswith("/share/quodlibet"): - sys.path.append(basedir[:-15] + "lib/quodlibet") -- i18ndir = "/usr/share/locale" -+ i18ndir = "/usr/X11R6/share/locale" - - import locale, gettext, util - try: locale.setlocale(locale.LC_ALL, '') - except: pass - -- gettext.bindtextdomain("quodlibet") -+ gettext.bindtextdomain("quodlibet", i18ndir) - gettext.textdomain("quodlibet") -- util.gettext_install("quodlibet", unicode=True) -+ util.gettext_install("quodlibet", i18ndir, unicode=True) - util.ctypes_init() - - from util import to diff --git a/multimedia/quodlibet/files/qlscrobbler.py b/multimedia/quodlibet/files/qlscrobbler.py index a52f534cec8d..9d9e74f4e181 100644 --- a/multimedia/quodlibet/files/qlscrobbler.py +++ b/multimedia/quodlibet/files/qlscrobbler.py @@ -1,31 +1,37 @@ # QLScrobbler: an Audioscrobbler client plugin for Quod Libet. -# version 0.7 +# version 0.8 # (C) 2005 by Joshua Kwan <joshk@triplehelix.org>, # Joe Wreschnig <piman@sacredchao.net> # Licensed under GPLv2. See Quod Libet's COPYING for more information. import random import md5, urllib, urllib2, time, threading, os -import player, config, const +import player, config, const, widgets, parse import gobject, gtk -from qltk import Message +from qltk.msg import Message, WarningMessage +from qltk.entry import ValidatingEntry from util import to -class QLScrobbler(object): +from plugins.events import EventPlugin + +class QLScrobbler(EventPlugin): # session invariants PLUGIN_NAME = "QLScrobbler" PLUGIN_DESC = "Audioscrobbler client for Quod Libet" PLUGIN_ICON = gtk.STOCK_CONNECT - PLUGIN_VERSION = "0.7" + PLUGIN_VERSION = "0.8.1" CLIENT = "qlb" PROTOCOL_VERSION = "1.1" - DUMP = os.path.join(const.DIR, "scrobbler_cache") + try: DUMP = os.path.join(const.USERDIR, "scrobbler_cache") + except AttributeError: + DUMP = os.path.join(const.DIR, "scrobbler_cache") # things that could change username = "" password = "" pwhash = "" + exclude = "" timeout_id = -1 submission_tid = -1 @@ -42,7 +48,8 @@ class QLScrobbler(object): already_submitted = False locked = False flushing = False - disabled = False + __enabled = False + offline = False # we need to store this because not all events get the song song = None @@ -55,6 +62,9 @@ class QLScrobbler(object): dump = open(self.DUMP, 'r') self.read_dump(dump) except: pass + + # Read configuration + self.read_config() # Set up exit hook to dump queue gtk.quit_add(0, self.dump_queue) @@ -68,7 +78,7 @@ class QLScrobbler(object): key = "" value = "" - line = line.rstrip() + line = line.rstrip("\n") try: (key, value) = line.split(" = ", 1) except: if line == "-": @@ -113,6 +123,7 @@ class QLScrobbler(object): for item in self.queue: for key in item: dump.write("%s = %s\n" % (key, item[key])) + dump.write("-\n") dump.close() @@ -151,6 +162,12 @@ class QLScrobbler(object): elif 'title' not in song: return elif "artist" not in song: if ("composer" not in song) and ("performer" not in song): return + + # Check to see if this song is not something we'd like to submit + # e.g. "Hit Me Baby One More Time" + if self.exclude != "" and parse.Query(self.exclude).search(song): + print to("Not submitting: %s - %s" % (song["artist"], song["title"])) + return self.song = song if player.playlist.paused == False: @@ -185,7 +202,7 @@ class QLScrobbler(object): if self.timeout_id == -2: # change delta based on current progress # assumption is that self.already_submitted == 0, therefore # delay - progress > 0 - progress = int(player.playlist.info.time[0] / 1000) + progress = int(player.playlist.get_position() / 1000) delay -= progress self.timeout_id = gobject.timeout_add(delay * 1000, self.submit_song) @@ -197,10 +214,16 @@ class QLScrobbler(object): username = config.get("plugins", "scrobbler_username") password = config.get("plugins", "scrobbler_password") except: - if self.need_config == False: - self.quick_info("Please visit the Preferences window to set QLScrobbler up. Until then, songs will not be submitted.") + if (self.need_config == False and + getattr(self, 'PMEnFlag', False)): + self.quick_dialog("Please visit the Preferences window to set QLScrobbler up. Until then, songs will not be submitted.", gtk.MESSAGE_INFO) self.need_config = True return + + try: self.offline = (config.get("plugins", "scrobbler_offline") == "true") + except: pass + try: self.exclude = config.get("plugins", "scrobbler_exclude") + except: pass self.username = username @@ -211,22 +234,14 @@ class QLScrobbler(object): def __destroy_cb(self, dialog, response_id): dialog.destroy() - - def quick_error_helper(self, str): - dialog = Message(gtk.MESSAGE_ERROR, None, "QLScrobbler", str) - dialog.connect('response', self.__destroy_cb) - dialog.show() - - def quick_error(self, str): - gobject.idle_add(self.quick_error_helper, str) - def quick_info_helper(self, str): - dialog = Message(gtk.MESSAGE_INFO, widgets.widgets.main, "QLScrobbler", str).run() + def quick_dialog_helper(self, type, str): + dialog = Message(gtk.MESSAGE_INFO, widgets.main, "QLScrobbler", str) dialog.connect('response', self.__destroy_cb) dialog.show() - def quick_info(self, str): - gobject.idle_add(self.quick_info_helper, str) + def quick_dialog(self, str, type): + gobject.idle_add(self.quick_dialog_helper, type, str) def clear_waiting(self): self.waiting = False @@ -253,7 +268,7 @@ class QLScrobbler(object): if status == "UPTODATE" or status.startswith("UPDATE"): if status.startswith("UPDATE"): - self.quick_info("A new plugin is available at %s! Please download it, or your Audioscrobbler stats may not be updated, and this message will be displayed every session." % status.split()[1]) + self.quick_dialog("A new plugin is available at %s! Please download it, or your Audioscrobbler stats may not be updated, and this message will be displayed every session." % status.split()[1], gtk.MESSAGE_INFO) self.need_update = True # Scan for submit URL and challenge. @@ -271,7 +286,7 @@ class QLScrobbler(object): self.challenge_sent = True elif status == "BADUSER": - self.quick_error("Authentication failed: invalid username %s or bad password." % self.username) + self.quick_dialog("Authentication failed: invalid username %s or bad password." % self.username, gtk.MESSAGE_ERROR) self.broken = True @@ -289,23 +304,29 @@ class QLScrobbler(object): bg.setDaemon(True) bg.start() + def enabled(self): + self.__enabled = True + + def disabled(self): + self.__enabled = False + def submit_song_helper(self): - enabled = getattr(self, 'PMEnFlag', False) - if enabled and self.disabled: + if self.__enabled: print "Plugin re-enabled - accepting new songs." - self.disabled = False if self.submission_tid != -1: gobject.source_remove(self.submission_tid); self.submission_tid = -1 - elif not enabled and not self.disabled: #if we've already printed + else: print "Plugin disabled - not accepting any new songs." - self.disabled = True if len(self.queue) > 0: self.submission_tid = gobject.timeout_add(120 * 1000, self.submit_song_helper) print "Attempts will continue to submit the last %d songs." % len(self.queue) if self.already_submitted == True or self.broken == True: return + # Scope. + store = {} + if self.flushing == False: stamp = time.strftime("%Y-%m-%d %H:%M:%S", time.gmtime()) @@ -327,14 +348,16 @@ class QLScrobbler(object): store["artist"] = performer[:performer.rindex("(")].strip() else: store["artist"] = performer - elif "musicbrainz_trackid" in self.song: + if "musicbrainz_trackid" in self.song: store["mbid"] = self.song["musicbrainz_trackid"] self.queue.append(store) else: self.flushing = False - - if self.locked == True: - # another instance running, let it deal with this + + # Just note to stdout if either of these are true.. + # locked means another instance if s_s_h is dealing with sending. + if self.offline or self.locked: + print to("Queuing: %s - %s" % (store["artist"], store["title"])) return self.locked = True @@ -360,7 +383,7 @@ class QLScrobbler(object): } # Flush the cache - for i in range(len(self.queue)): + for i in range(min(len(self.queue), 10)): print to("Sending song: %s - %s" % (self.queue[i]['artist'], self.queue[i]['title'])) data["a[%d]" % i] = self.queue[i]['artist'].encode('utf-8') data["t[%d]" % i] = self.queue[i]['title'].encode('utf-8') @@ -400,16 +423,16 @@ class QLScrobbler(object): self.challenge_sent = False self.send_handshake() if self.challenge_sent == False: - self.quick_error("Your Audioscrobbler login data is incorrect, so you must re-enter it before any songs will be submitted.\n\nThis message will not be shown again.") + self.quick_dialog("Your Audioscrobbler login data is incorrect, so you must re-enter it before any songs will be submitted.\n\nThis message will not be shown again.", gtk.MESSAGE_ERROR) self.broken = True elif status == "OK": - self.queue = [] + self.queue = self.queue[10:] elif status.startswith("FAILED"): if status.startswith("FAILED Plugin bug"): print "Plugin bug!? Ridiculous! Dumping queue contents." for item in self.queue: for key in item: - print "%s = %s" % (key, item[key]) + print to("%s = %s" % (key, item[key])) # possibly handle other specific cases here for debugging later else: print "Unknown response from server: %s" % status @@ -424,7 +447,7 @@ class QLScrobbler(object): gobject.timeout_add(interval_secs * 1000, self.clear_waiting) print "Server says to wait for %d seconds." % interval_secs - if self.disabled and len(self.queue) == 0 and self.submission_tid != -1: + if not self.__enabled and len(self.queue) == 0 and self.submission_tid != -1: print "All songs submitted, disabling retries." gobject.source_remove(self.submission_tid) self.submission_tid = -1 @@ -433,8 +456,16 @@ class QLScrobbler(object): self.locked = False def PluginPreferences(self, parent): + def toggled(widget): + if widget.get_active(): + config.set("plugins", "scrobbler_offline", "true") + self.offline = True + else: + config.set("plugins", "scrobbler_offline", "false") + self.offline = False + def changed(entry, key): - # having two functions is unnecessary.. + # having a function for each entry is unnecessary.. config.set("plugins", "scrobbler_" + key, entry.get_text()) def destroyed(*args): @@ -448,35 +479,55 @@ class QLScrobbler(object): except: return + try: self.exclude = config.get("plugins", "scrobbler_exclude") + except: pass + if self.username != newu or self.password != newp: self.broken = False - table = gtk.Table(3, 2) + table = gtk.Table(6, 3) table.set_col_spacings(3) - lt = gtk.Label(_("Please enter your Audioscrobbler username and password.")) - lt.set_size_request(260, -1) + lt = gtk.Label(_("Please enter your Audioscrobbler\nusername and password.")) lu = gtk.Label(_("Username:")) lp = gtk.Label(_("Password:")) - for l in [lt, lu, lp]: + lv = gtk.Label(_("Exclude filter:")) + lvd = gtk.Label(_("Songs matching this filter will\nnot be sent to Audioscrobbler.\n")) + off = gtk.CheckButton(_("Offline mode (don't submit anything)")) + ve = ValidatingEntry(parse.Query.is_valid_color) + for l in [lt, lu, lp, lv, lvd]: l.set_line_wrap(True) l.set_alignment(0.0, 0.5) - table.attach(lt, 0, 2, 0, 1, xoptions=gtk.FILL) - table.attach(lu, 0, 1, 1, 2, xoptions=gtk.FILL) - table.attach(lp, 0, 1, 2, 3, xoptions=gtk.FILL) + table.attach(lt, 0, 2, 0, 1, xoptions=gtk.FILL | gtk.SHRINK) + table.attach(lu, 0, 1, 1, 2, xoptions=gtk.FILL | gtk.SHRINK) + table.attach(lp, 0, 1, 2, 3, xoptions=gtk.FILL | gtk.SHRINK) + table.attach(lv, 0, 1, 3, 4, xoptions=gtk.FILL | gtk.SHRINK) + userent = gtk.Entry() pwent = gtk.Entry() pwent.set_visibility(False) pwent.set_invisible_char('*') table.set_border_width(6) + + table.attach(ve, 1, 2, 3, 4, xoptions=gtk.FILL | gtk.SHRINK) + table.attach(lvd, 0, 2, 4, 5, xoptions=gtk.FILL | gtk.SHRINK) + table.attach(off, 0, 2, 5, 7, xoptions=gtk.FILL | gtk.SHRINK) try: userent.set_text(config.get("plugins", "scrobbler_username")) except: pass try: pwent.set_text(config.get("plugins", "scrobbler_password")) except: pass + try: + if config.get("plugins", "scrobbler_offline") == "true": + off.set_active(True) + except: pass + try: ve.set_text(config.get("plugins", "scrobbler_exclude")) + except: pass - table.attach(userent, 1, 2, 1, 2) - table.attach(pwent, 1, 2, 2, 3) + table.attach(userent, 1, 2, 1, 2, xoptions=gtk.FILL | gtk.SHRINK) + table.attach(pwent, 1, 2, 2, 3, xoptions=gtk.FILL | gtk.SHRINK) pwent.connect('changed', changed, 'password') userent.connect('changed', changed, 'username') + ve.connect('changed', changed, 'exclude') table.connect('destroy', destroyed) + off.connect('toggled', toggled) return table diff --git a/multimedia/quodlibet/pkg-plist b/multimedia/quodlibet/pkg-plist index aaec700d0c13..9e4a8be09305 100644 --- a/multimedia/quodlibet/pkg-plist +++ b/multimedia/quodlibet/pkg-plist @@ -1,7 +1,7 @@ bin/exfalso bin/quodlibet -%%EXTENSIONS:%%lib/quodlibet/_mmkeys.so -%%EXTENSIONS:%%lib/quodlibet/_trayicon.so +%%EXTENSIONS%%lib/quodlibet/_mmkeys.so +%%EXTENSIONS%%lib/quodlibet/_trayicon.so share/applications/exfalso.desktop share/applications/quodlibet.desktop share/locale/bg/LC_MESSAGES/quodlibet.mo @@ -13,12 +13,17 @@ share/locale/fi/LC_MESSAGES/quodlibet.mo share/locale/fr/LC_MESSAGES/quodlibet.mo share/locale/gl/LC_MESSAGES/quodlibet.mo share/locale/he/LC_MESSAGES/quodlibet.mo +share/locale/hu/LC_MESSAGES/quodlibet.mo share/locale/it/LC_MESSAGES/quodlibet.mo share/locale/ko/LC_MESSAGES/quodlibet.mo +share/locale/lt/LC_MESSAGES/quodlibet.mo +share/locale/nb/LC_MESSAGES/quodlibet.mo share/locale/nl/LC_MESSAGES/quodlibet.mo share/locale/pl/LC_MESSAGES/quodlibet.mo share/locale/pt/LC_MESSAGES/quodlibet.mo share/locale/ru/LC_MESSAGES/quodlibet.mo +share/locale/sv/LC_MESSAGES/quodlibet.mo +share/locale/zh_CN/LC_MESSAGES/quodlibet.mo share/pixmaps/exfalso.png share/pixmaps/quodlibet.png share/quodlibet/browsers/__init__.py @@ -39,7 +44,6 @@ share/quodlibet/formats/__init__.py share/quodlibet/formats/_apev2.py share/quodlibet/formats/_audio.py share/quodlibet/formats/_vorbis.py -share/quodlibet/formats/ape.py share/quodlibet/formats/flac.py share/quodlibet/formats/mod.py share/quodlibet/formats/mp3.py @@ -47,27 +51,23 @@ share/quodlibet/formats/mp4.py share/quodlibet/formats/mpc.py share/quodlibet/formats/oggvorbis.py share/quodlibet/formats/remote.py +share/quodlibet/formats/wav.py share/quodlibet/formats/wavpack.py share/quodlibet/library.py -share/quodlibet/massagers.py -share/quodlibet/mutagen/__init__.py -share/quodlibet/mutagen/_constants.py -share/quodlibet/mutagen/_vorbis.py -share/quodlibet/mutagen/apev2.py -share/quodlibet/mutagen/flac.py -share/quodlibet/mutagen/id3.py share/quodlibet/parse/__init__.py share/quodlibet/parse/_match.py share/quodlibet/parse/_pattern.py share/quodlibet/parse/_query.py share/quodlibet/player.py share/quodlibet/plugins/__init__.py -share/quodlibet/plugins/_manager.py share/quodlibet/plugins/editing.py -share/quodlibet/plugins/qlscrobbler.py +share/quodlibet/plugins/events.py +share/quodlibet/plugins/events/qlscrobbler.py +share/quodlibet/plugins/songsmenu.py share/quodlibet/qltk/__init__.py share/quodlibet/qltk/_editpane.py share/quodlibet/qltk/about.py +share/quodlibet/qltk/bookmarks.py share/quodlibet/qltk/browser.py share/quodlibet/qltk/cbes.py share/quodlibet/qltk/ccb.py @@ -96,8 +96,11 @@ share/quodlibet/qltk/queue.py share/quodlibet/qltk/quodlibet.py share/quodlibet/qltk/remote.py share/quodlibet/qltk/renamefiles.py +share/quodlibet/qltk/session.py share/quodlibet/qltk/sliderbutton.py share/quodlibet/qltk/songlist.py +share/quodlibet/qltk/songsmenu.py +share/quodlibet/qltk/tagscombobox.py share/quodlibet/qltk/tagsfrompath.py share/quodlibet/qltk/textedit.py share/quodlibet/qltk/tracknumbers.py @@ -114,9 +117,14 @@ share/quodlibet/rhythmbox-volume-medium.png share/quodlibet/rhythmbox-volume-min.png share/quodlibet/rhythmbox-volume-zero.png share/quodlibet/stock.py -share/quodlibet/util.py +share/quodlibet/util/__init__.py +share/quodlibet/util/i18n.py +share/quodlibet/util/massagers.py +share/quodlibet/util/uri.py share/quodlibet/widgets.py @dirrmtry share/applications +@exec mkdir -p %D/share/quodlibet/plugins/events +@dirrm share/quodlibet/plugins/events @exec mkdir -p %D/share/quodlibet/plugins @dirrm share/quodlibet/plugins @exec mkdir -p %D/lib/quodlibet @@ -125,11 +133,11 @@ share/quodlibet/widgets.py @dirrm share/quodlibet/browsers @exec mkdir -p %D/share/quodlibet/formats @dirrm share/quodlibet/formats -@exec mkdir -p %D/share/quodlibet/mutagen -@dirrm share/quodlibet/mutagen @exec mkdir -p %D/share/quodlibet/parse @dirrm share/quodlibet/parse @exec mkdir -p %D/share/quodlibet/qltk @dirrm share/quodlibet/qltk +@exec mkdir -p %D/share/quodlibet/util +@dirrm share/quodlibet/util @exec mkdir -p %D/share/quodlibet @dirrm share/quodlibet |