# # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. try: # https://github.com/alastair/python-musicbrainzngs/issues/157 # Work around warnings getting enabled in musicbrainzngs import warnings f = list(warnings.filters) import musicbrainzngs warnings.filters[:] = f except ImportError: from quodlibet import plugins raise plugins.MissingModulePluginException("musicbrainzngs") # musicbrainzngs.get_url_by_id was added in version 0.5 if not hasattr(musicbrainzngs, "get_url_by_id"): from quodlibet import plugins raise plugins.MissingModulePluginException("musicbrainzngs >= 0.5") from quodlibet import app from quodlibet import const from quodlibet import util VARIOUS_ARTISTS_ARTISTID = '89ad4ac3-39f7-470e-963a-56509c546377' def is_mbid(id_): return len(id_) == 36
from quodlibet.plugins import PluginNotSupportedError raise PluginNotSupportedError import time try: import __builtin__ # zeitgeist overrides our gettext functions old_builtin = __builtin__.__dict__.copy() from zeitgeist.client import ZeitgeistClient from zeitgeist.datamodel import Event, Subject from zeitgeist.datamodel import Interpretation, Manifestation __builtin__.__dict__.update(old_builtin) except ImportError as e: from quodlibet import plugins raise (plugins.MissingModulePluginException("zeitgeist") if hasattr( plugins, "MissingModulePluginException") else e) from quodlibet.plugins.events import EventPlugin class Zeitgeist(EventPlugin): PLUGIN_ID = "zeitgeist" PLUGIN_NAME = _("Event Logging") PLUGIN_DESC = _("Send song events to the Zeitgeist event logging service") PLUGIN_ICON = 'gtk-network' PLUGIN_VERSION = "0.1" def enabled(self): self.client = ZeitgeistClient() self.__stopped_by_user = False
# it under the terms of the GNU General Public License version 2 as # published by the Free Software Foundation import os import re import threading import time from gi.repository import Gtk, GObject, Pango, GLib try: from musicbrainz2 import webservice as ws from musicbrainz2.utils import extractUuid except ImportError as e: from quodlibet import plugins raise (plugins.MissingModulePluginException("musicbrainz2") if hasattr( plugins, "MissingModulePluginException") else e) from quodlibet import config, util from quodlibet.qltk.ccb import ConfigCheckButton from quodlibet.qltk import Dialog, Icons from quodlibet.plugins.songsmenu import SongsMenuPlugin from quodlibet.qltk.views import HintedTreeView, MultiDragTreeView VARIOUS_ARTISTS_ARTISTID = '89ad4ac3-39f7-470e-963a-56509c546377' def get_artist(album): """Returns a single artist likely to be the MB AlbumArtist, or None.""" for tag in ["albumartist", "artist", "performer"]: names = set()
import operator import os import sys from quodlibet.qltk import Icons if os.name == "nt" or sys.platform == "darwin": from quodlibet.plugins import PluginNotSupportedError raise PluginNotSupportedError try: from pyinotify import WatchManager, EventsCodes, ProcessEvent from pyinotify import Notifier, ThreadedNotifier except ImportError as e: from quodlibet import plugins raise plugins.MissingModulePluginException("pyinotify") from quodlibet import _ from quodlibet.util.dprint import print_d, print_w from quodlibet.plugins.events import EventPlugin from quodlibet.util.library import get_scan_dirs from quodlibet.compat import reduce from quodlibet import app from gi.repository import GLib class LibraryEvent(ProcessEvent): """pynotify event handler for library changes""" # Slightly dodgy state mechanism for updates _being_created = set()
# # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License version 2 as # published by the Free Software Foundation import os if os.name == "nt": from quodlibet.plugins import PluginNotSupportedError raise PluginNotSupportedError try: import CDDB except ImportError as e: from quodlibet import plugins raise (plugins.MissingModulePluginException("cddb") if hasattr(plugins, "MissingModulePluginException") else e) from os import path from gi.repository import Gtk from quodlibet.qltk import ErrorMessage from quodlibet.const import VERSION from quodlibet.util import tag, escape from quodlibet.plugins.songsmenu import SongsMenuPlugin from quodlibet.util.path import expanduser CDDB.proto = 6 # utf8 instead of latin1 CLIENTINFO = {'client_name': "quodlibet", 'client_version': VERSION}