Exemplo n.º 1
0
 def individual_subitem_matches(self, subitem, data):
     musicbrainzngs.set_useragent('geordi', 'discogs-subitem-matches', 'http://geordi.musicbrainz.org')
     (discogs_type, discogs_id) = re.split('-', subitem, 1)
     if discogs_type == 'master':
         try:
             url_data = musicbrainzngs.browse_urls(
                 resource='http://www.discogs.com/master/%s' % discogs_id,
                 includes=['release-group-rels'])
             mbids = [release_group['release-group']['id'] for release_group in url_data['url']['release_group-relation-list']]
             return {'release-group': mbids}
         except:
             return {'unmatch': []}
     elif discogs_type in ['artist', 'label'] and data.get('name', False):
         names = data.get('name', [])
         mbids = []
         for name in names:
             try:
                 url_data = musicbrainzngs.browse_urls(
                     resource='http://www.discogs.com/%s/%s' % (discogs_type, urllib.quote_plus(name.encode('utf-8'), '!\'()*-._~')),
                     includes=['%s-rels' % discogs_type])
                 mbids = mbids + [entity[discogs_type]['id'] for entity in url_data['url']['%s-relation-list' % discogs_type]]
             except: continue
         mbids = uniq(mbids)
         if len(mbids) > 0:
             return {discogs_type: mbids}
         else:
             return {'unmatch': []}
     else:
         return {}
Exemplo n.º 2
0
    def test_browse_url(self):
        resource = "http://www.queenonline.com"
        musicbrainzngs.browse_urls(resource=resource)
        self.assertEqual("http://musicbrainz.org/ws/2/url/?resource=http%3A%2F%2Fwww.queenonline.com", self.opener.get_url())

        # Resource is urlencoded, including ? and =
        resource = "http://www.splendidezine.com/review.html?reviewid=1109588405202831"
        musicbrainzngs.browse_urls(resource=resource)
        self.assertEqual("http://musicbrainz.org/ws/2/url/?resource=http%3A%2F%2Fwww.splendidezine.com%2Freview.html%3Freviewid%3D1109588405202831", self.opener.get_url())
Exemplo n.º 3
0
    def test_browse_url(self):
        resource = "http://www.queenonline.com"
        musicbrainzngs.browse_urls(resource=resource)
        self.assertEqual(
            "http://musicbrainz.org/ws/2/url/?resource=http%3A%2F%2Fwww.queenonline.com",
            self.opener.get_url())

        # Resource is urlencoded, including ? and =
        resource = "http://www.splendidezine.com/review.html?reviewid=1109588405202831"
        musicbrainzngs.browse_urls(resource=resource)
        self.assertEqual(
            "http://musicbrainz.org/ws/2/url/?resource=http%3A%2F%2Fwww.splendidezine.com%2Freview.html%3Freviewid%3D1109588405202831",
            self.opener.get_url())
Exemplo n.º 4
0
 def automatic_item_matches(self, data):
     musicbrainzngs.set_useragent('geordi', 'discogs-item-matches', 'http://geordi.musicbrainz.org')
     try:
         url_data = musicbrainzngs.browse_urls(
             resource='http://www.discogs.com/release/%s' % data['discogs']['release']['_id'],
             includes=['release-rels'])
         mbids = [release['release']['id'] for release in url_data['url']['release-relation-list']]
         return {'release': mbids}
     except:
         return {'unmatch': []}
Exemplo n.º 5
0
 def individual_subitem_matches(self, subitem, data):
     musicbrainzngs.set_useragent('geordi', 'discogs-subitem-matches',
                                  'http://geordi.musicbrainz.org')
     (discogs_type, discogs_id) = re.split('-', subitem, 1)
     if discogs_type == 'master':
         try:
             url_data = musicbrainzngs.browse_urls(
                 resource='http://www.discogs.com/master/%s' % discogs_id,
                 includes=['release-group-rels'])
             mbids = [
                 release_group['release-group']['id'] for release_group in
                 url_data['url']['release_group-relation-list']
             ]
             return {'release-group': mbids}
         except:
             return {'unmatch': []}
     elif discogs_type in ['artist', 'label'] and data.get('name', False):
         names = data.get('name', [])
         mbids = []
         for name in names:
             try:
                 url_data = musicbrainzngs.browse_urls(
                     resource='http://www.discogs.com/%s/%s' %
                     (discogs_type,
                      urllib.quote_plus(name.encode('utf-8'),
                                        '!\'()*-._~')),
                     includes=['%s-rels' % discogs_type])
                 mbids = mbids + [
                     entity[discogs_type]['id']
                     for entity in url_data['url']['%s-relation-list' %
                                                   discogs_type]
                 ]
             except:
                 continue
         mbids = uniq(mbids)
         if len(mbids) > 0:
             return {discogs_type: mbids}
         else:
             return {'unmatch': []}
     else:
         return {}
Exemplo n.º 6
0
 def automatic_item_matches(self, data):
     musicbrainzngs.set_useragent('geordi', 'discogs-item-matches',
                                  'http://geordi.musicbrainz.org')
     try:
         url_data = musicbrainzngs.browse_urls(
             resource='http://www.discogs.com/release/%s' %
             data['discogs']['release']['_id'],
             includes=['release-rels'])
         mbids = [
             release['release']['id']
             for release in url_data['url']['release-relation-list']
         ]
         return {'release': mbids}
     except:
         return {'unmatch': []}