def push_data(): mb = MusicBrainzClient(cfg.MB_USERNAME, cfg.MB_PASSWORD, cfg.MB_SITE) for row in aClient.get_mb_data(): gid, workid, iswc, artist, work = row note = 'Data taken from ' + aClient.search_url(str(workid), 'i') mb.edit_work(gid, {'iswc': iswc}, note) print artist + ' work: ' + work + ' Done!'
def main(args): if not args: out('Usage: cancel_edits.py <edit_number edit_note>...\n') out('Example: cancel_edits.py "Edit #123 my mistake"') out(' cancel_edits.py 123 124 125') return edits = [] for arg in args: if not isinstance(arg, unicode): arg = unicode(arg, locale.getpreferredencoding()) m = re.match(ur'(?:[Ee]dit )?#?([0-9]+) ?(.*)$', arg) if not m: out('invalid edit number "%s", aborting!' % arg) return edit_nr = str(m.group(1)) edit_note = m.group(2).lstrip() edits.append((edit_nr, edit_note)) mb = MusicBrainzClient(cfg.MB_USERNAME, cfg.MB_PASSWORD, cfg.MB_SITE) for edit_nr, edit_note in edits: out(u'Cancel edit #%s: %s' % (edit_nr, edit_note if edit_note else u'<no edit note>')) mb.cancel_edit(str(edit_nr), edit_note)
'artist': 352, 'label': 354, 'release-group': 353, 'work': 351, 'area': 358, 'place': 594, 'series': 749, 'instrument': 733, 'event': 790 } engine = sqlalchemy.create_engine(cfg.MB_DB) db = engine.connect() db.execute("SET search_path TO musicbrainz, %s" % cfg.BOT_SCHEMA_DB) mb = MusicBrainzClient(cfg.MB_USERNAME, cfg.MB_PASSWORD, cfg.MB_SITE) """ CREATE TABLE mbbot.bot_wp_wikidata_links ( gid uuid NOT NULL, lang character varying(10), processed timestamp with time zone DEFAULT now(), CONSTRAINT bot_wp_wikidata_links_pkey PRIMARY KEY (gid, lang) ); """ def main(ENTITY_TYPE): entity_type_table = ENTITY_TYPE.replace('-', '_') url_relationship_table = 'l_%s_url' % entity_type_table if ENTITY_TYPE != 'work' else 'l_url_%s' % entity_type_table main_entity_entity_point = "entity0" if ENTITY_TYPE != 'work' else "entity1"
def init_mb(): global mb print "Logging in..." mb = MusicBrainzClient(config.MB_USERNAME, config.MB_PASSWORD, config.MB_SITE)
def init_mb(): global mb mb = MusicBrainzClient(cfg.MB_USERNAME, cfg.MB_PASSWORD, cfg.MB_SITE)
); CREATE TABLE bot_asin_catmismatch ( gid uuid NOT NULL, processed timestamp with time zone DEFAULT now(), CONSTRAINT bot_asin_catmismatch_pkey PRIMARY KEY (gid) ); ''' engine = sqlalchemy.create_engine(cfg.MB_DB) db = engine.connect() db.execute("SET search_path TO musicbrainz, mbbot") editor_id = db.execute('''SELECT id FROM editor WHERE name = %s''', cfg.MB_USERNAME).first()[0] mb = MusicBrainzClient(cfg.MB_USERNAME, cfg.MB_PASSWORD, cfg.MB_SITE, editor_id=editor_id) store_map = [ # http://www.amazon.com/gp/help/customer/display.html/ref=hp_left_cn?nodeId=527692 ('us', ['US', 'AU']), # http://www.amazon.co.uk/gp/help/customer/display.html/ref=ssd?nodeId=1204872 ('uk', ['GB', 'XE']), # http://www.amazon.de/gp/help/customer/display.html/ref=hp_left_sib?nodeId=13464781 ('de', ['DE', 'AT', 'BE', 'LI', 'LU', 'NL', 'CH', 'XE']), # http://www.amazon.fr/gp/help/customer/display.html?nodeId=897502 ('fr', ['FR', 'MC', 'BE', 'LU', 'CH', 'XE']), # http://www.amazon.co.jp/gp/help/customer/display.html/ref=hp_rel_topic?nodeId=1039606 ('jp', ['JP']), # http://www.amazon.ca/gp/help/customer/display.html?nodeId=918742 ('ca', ['CA']),
def open(self, mb=False, do=False, client=False): if mb: self.mbdb = self.mbengine.connect() if do: self.dodb = self.doengine.connect() if client: return MusicBrainzClient(cfg.MB_USERNAME, cfg.MB_PASSWORD, cfg.MB_SITE) return None
import re import sys import urllib import urllib2 import config import pymongo import pprint from editing import MusicBrainzClient import cgi mb = MusicBrainzClient('lukz_bot', 'mb', 'http://mb.muziq.eu') opener = urllib2.build_opener() if config.WWW_USER_AGENT: opener.addheaders = [('User-Agent', config.WWW_USER_AGENT)] mongo = pymongo.Connection() db = mongo.mbot html_escape_table = { "&": "&", '"': """, "'": "'", ">": ">", "<": "<", }