示例#1
0
#
# 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
示例#2
0
    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
示例#3
0
# 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()
示例#4
0
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()
示例#5
0
#
# 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}