#!/usr/bin/python import re import sqlalchemy from editing import MusicBrainzWebdriverClient import discogs_client import time import Levenshtein from utils import mangle_name, join_names, out, colored_out, bcolors, durationToMS, msToDuration, unaccent import config as cfg engine = sqlalchemy.create_engine(cfg.MB_DB) db = engine.connect() db.execute("SET search_path TO musicbrainz, %s" % cfg.BOT_SCHEMA_DB) mb = MusicBrainzWebdriverClient(cfg.MB_USERNAME, cfg.MB_PASSWORD, cfg.MB_SITE) discogs = discogs_client.Client( 'MusicBrainzBot/0.1 +https://github.com/murdos/musicbrainz-bot') """ CREATE TABLE bot_discogs_track_number ( gid uuid NOT NULL, processed timestamp with time zone DEFAULT now(), CONSTRAINT bot_discogs_track_number_pkey PRIMARY KEY (gid) ); """ query = """ WITH vinyl_releases AS ( SELECT DISTINCT r.id, u.url AS discogs_url
except ImportError as err: colored_out(bcolors.WARNING, "Warning: Cannot use Spotify: %s" % err) spotify = None try: from mbbot.source.itunes import ItunesSearchAPI itunes = ItunesSearchAPI() except ImportError as err: colored_out(bcolors.WARNING, "Warning: Cannot use iTunes: %s" % err) itunes = None engine = sqlalchemy.create_engine(cfg.MB_DB) db = engine.connect() db.execute("SET search_path TO musicbrainz, %s, public" % cfg.BOT_SCHEMA_DB) mb = MusicBrainzWebdriverClient(cfg_caa.MB_USERNAME, cfg_caa.MB_PASSWORD, cfg_caa.MB_SITE) discogs = discogs_client.Client( 'MusicBrainzBot/0.1 +https://github.com/murdos/musicbrainz-bot', cfg.DISCOGS_OAUTH_CONSUMER_KEY, cfg.DISCOGS_OAUTH_CONSUMER_SECRET, cfg.DISCOGS_OAUTH_TOKEN_KEY, cfg.DISCOGS_OAUTH_TOKEN_SECRET) socket.setdefaulttimeout(300) """ CREATE TABLE bot_discogs_amz_cover_art ( gid uuid NOT NULL, processed timestamp with time zone DEFAULT now(), CONSTRAINT bot_discogs_amz_cover_art_pkey PRIMARY KEY (gid) ); CREATE TABLE bot_release_artwork_url (
#!/usr/bin/python import re import sqlalchemy from editing import MusicBrainzWebdriverClient import discogs_client import time import Levenshtein from utils import mangle_name, join_names, out, colored_out, bcolors, durationToMS, msToDuration, unaccent import config as cfg engine = sqlalchemy.create_engine(cfg.MB_DB) db = engine.connect() db.execute("SET search_path TO musicbrainz, %s" % cfg.BOT_SCHEMA_DB) mb = MusicBrainzWebdriverClient(cfg.MB_USERNAME, cfg.MB_PASSWORD, cfg.MB_SITE) discogs = discogs_client.Client('MusicBrainzBot/0.1 +https://github.com/murdos/musicbrainz-bot') """ CREATE TABLE bot_discogs_track_number ( gid uuid NOT NULL, processed timestamp with time zone DEFAULT now(), CONSTRAINT bot_discogs_track_number_pkey PRIMARY KEY (gid) ); """ query = """ WITH vinyl_releases AS ( SELECT DISTINCT r.id, u.url AS discogs_url
import re import sqlalchemy import solr from editing import MusicBrainzWebdriverClient import discogs_client import pprint import urllib import time from utils import mangle_name, join_names, out, colored_out, bcolors import config as cfg engine = sqlalchemy.create_engine(cfg.MB_DB) db = engine.connect() db.execute("SET search_path TO musicbrainz, %s" % cfg.BOT_SCHEMA_DB) mb = MusicBrainzWebdriverClient(cfg.MB_USERNAME, cfg.MB_PASSWORD, cfg.MB_SITE) discogs = discogs_client.Client('MusicBrainzBot/0.1 +https://github.com/murdos/musicbrainz-bot') """ CREATE TABLE bot_discogs_medium_format ( medium integer NOT NULL, processed timestamp with time zone DEFAULT now(), CONSTRAINT bot_discogs_medium_format_pkey PRIMARY KEY (medium) ); """ query = """ WITH mediums_with_fuzzy_format AS ( SELECT r.id AS release_id, m.position, m.id AS medium_id, u.url AS discogs_url, m.format
#!/usr/bin/python import sys import os import re import time import urllib2 import json from editing import MusicBrainzWebdriverClient from utils import out, colored_out, bcolors, monkeypatch_mechanize import config as cfg # Work around mechanize bug. See: https://github.com/jjlee/mechanize/pull/58 monkeypatch_mechanize() mb = MusicBrainzWebdriverClient(cfg.MB_USERNAME, cfg.MB_PASSWORD, cfg.MB_SITE) FILE_RE = re.compile( r'^(?P<mbid>[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12})-(?P<type>front|back|medium|booklet|tray|sticker)(?:-\d+)?\.(?:jpeg|jpg|png|gif)', re.I) class CoverArtArchiveReleaseInfo(object): def __init__(self, release_id): try: data = urllib2.urlopen('https://coverartarchive.org/release/%s/' % release_id) self.metadata = json.load(data) except urllib2.HTTPError: self.metadata = { 'images': [],
#!/usr/bin/python import sys import os import re import time import urllib2 import json from editing import MusicBrainzWebdriverClient from utils import out, colored_out, bcolors, monkeypatch_mechanize import config as cfg # Work around mechanize bug. See: https://github.com/jjlee/mechanize/pull/58 monkeypatch_mechanize() mb = MusicBrainzWebdriverClient(cfg.MB_USERNAME, cfg.MB_PASSWORD, cfg.MB_SITE) FILE_RE = re.compile(r'^(?P<mbid>[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12})-(?P<type>front|back|medium|booklet|tray|sticker)(?:-\d+)?\.(?:jpeg|jpg|png|gif)', re.I) class CoverArtArchiveReleaseInfo(object): def __init__(self, release_id): try: data = urllib2.urlopen('https://coverartarchive.org/release/%s/' % release_id) self.metadata = json.load(data) except urllib2.HTTPError: self.metadata = {'images': [], 'release': 'https://musicbrainz.org/release/%s' % release_id} def hasType(self, type): for image in self.metadata['images']: for img_type in image['types']: