コード例 #1
0
ファイル: lastid.py プロジェクト: scotto/beets
    def track_distance(self, item, info):
        last_data = last_match(item.path)
        if not last_data:
            # Match failed.
            return 0.0, 0.0

        dist, dist_max = 0.0, 0.0

        # Track title distance.
        dist += match.string_dist(last_data['title'],
                                  info.title) \
                * match.TRACK_TITLE_WEIGHT
        dist_max += match.TRACK_TITLE_WEIGHT
        
        # MusicBrainz track ID.
        if last_data['track_mbid']:
            # log.debug('Last track ID match: %s/%s' %
            #           (last_data['track_mbid'], track_data['id']))
            if last_data['track_mbid'] != last_data['id']:
                dist += match.TRACK_ID_WEIGHT
            dist_max += match.TRACK_ID_WEIGHT

        # log.debug('Last data: %s; distance: %f' %
        #           (str(last_data), dist/dist_max if dist_max > 0.0 else 0.0))

        return dist * DISTANCE_SCALE, dist_max * DISTANCE_SCALE
コード例 #2
0
    def track_distance(self, item, info):
        last_data = last_match(item.path)
        if not last_data:
            # Match failed.
            return 0.0, 0.0

        dist, dist_max = 0.0, 0.0

        # Track title distance.
        dist += match.string_dist(last_data['title'],
                                  info.title) \
                * match.TRACK_TITLE_WEIGHT
        dist_max += match.TRACK_TITLE_WEIGHT

        # MusicBrainz track ID.
        if last_data['track_mbid']:
            # log.debug('Last track ID match: %s/%s' %
            #           (last_data['track_mbid'], track_data['id']))
            if last_data['track_mbid'] != last_data['id']:
                dist += match.TRACK_ID_WEIGHT
            dist_max += match.TRACK_ID_WEIGHT

        # log.debug('Last data: %s; distance: %f' %
        #           (str(last_data), dist/dist_max if dist_max > 0.0 else 0.0))

        return dist * DISTANCE_SCALE, dist_max * DISTANCE_SCALE
コード例 #3
0
    def album_distance(self, items, info):
        last_artist, last_artist_id = get_cur_artist(
            [item for item in items if item])

        # Compare artist to MusicBrainz metadata.
        dist, dist_max = 0.0, 0.0
        if last_artist:
            dist += match.string_dist(last_artist, info.artist) \
                    * match.ARTIST_WEIGHT
            dist_max += match.ARTIST_WEIGHT

        log.debug('Last artist (%s/%s) distance: %f' %
                  (last_artist, info.artist,
                   dist / dist_max if dist_max > 0.0 else 0.0))

        #fixme: artist MBID currently ignored (as in vanilla tagger)
        return dist, dist_max
コード例 #4
0
ファイル: lastid.py プロジェクト: scotto/beets
    def album_distance(self, items, info):
        last_artist, last_artist_id = get_cur_artist(
            [item for item in items if item]
        )

        # Compare artist to MusicBrainz metadata.
        dist, dist_max = 0.0, 0.0
        if last_artist:
            dist += match.string_dist(last_artist, info.artist) \
                    * match.ARTIST_WEIGHT
            dist_max += match.ARTIST_WEIGHT

        log.debug('Last artist (%s/%s) distance: %f' %
                  (last_artist, info.artist,
                   dist/dist_max if dist_max > 0.0 else 0.0))

        #fixme: artist MBID currently ignored (as in vanilla tagger)
        return dist, dist_max
コード例 #5
0
ファイル: test_autotag.py プロジェクト: mister-walter/beets
 def test_parens_have_lower_weight(self):
     dist1 = match.string_dist(u'One .Two.', u'One')
     dist2 = match.string_dist(u'One (Two)', u'One')
     self.assert_(dist2 < dist1)
コード例 #6
0
ファイル: test_autotag.py プロジェクト: mister-walter/beets
 def test_case_ignored(self):
     dist = match.string_dist(u'Some String', u'sOME sTring')
     self.assertEqual(dist, 0.0)
コード例 #7
0
ファイル: test_autotag.py プロジェクト: mister-walter/beets
 def test_different_strings(self):
     dist = match.string_dist(u'Some String', u'Totally Different')
     self.assertNotEqual(dist, 0.0)
コード例 #8
0
ファイル: test_autotag.py プロジェクト: navap/beets
 def test_accented_characters(self):
     dist = match.string_dist(u"\xe9\xe1\xf1", u"ean")
     self.assertEqual(dist, 0.0)
コード例 #9
0
ファイル: test_autotag.py プロジェクト: dcode/beets
 def test_different_strings(self):
     dist = match.string_dist('Some String', 'Totally Different')
     self.assertNotEqual(dist, 0.0)
コード例 #10
0
ファイル: test_autotag.py プロジェクト: mister-walter/beets
 def test_ampersand_expansion(self):
     dist = match.string_dist(u'And', u'&')
     self.assertEqual(dist, 0.0)
コード例 #11
0
ファイル: test_autotag.py プロジェクト: mister-walter/beets
 def test_postfix_an(self):
     dist = match.string_dist(u'An Album Title', u'Album Title, An')
     self.assertEqual(dist, 0.0)
コード例 #12
0
ファイル: test_autotag.py プロジェクト: dcode/beets
 def test_postfix_an(self):
     dist = match.string_dist('An Album Title', 'Album Title, An')
     self.assertEqual(dist, 0.0)
コード例 #13
0
ファイル: test_autotag.py プロジェクト: dcode/beets
 def test_postfix_a(self):
     dist = match.string_dist('A Song Title', 'Song Title, A')
     self.assertEqual(dist, 0.0)
コード例 #14
0
ファイル: test_autotag.py プロジェクト: dcode/beets
 def test_postfix_the(self):
     dist = match.string_dist('The Song Title', 'Song Title, The')
     self.assertEqual(dist, 0.0)
コード例 #15
0
ファイル: test_autotag.py プロジェクト: dcode/beets
 def test_brackets_have_lower_weight(self):
     dist1 = match.string_dist('One .Two.', 'One')
     dist2 = match.string_dist('One [Two]', 'One')
     self.assert_(dist2 < dist1)
コード例 #16
0
ファイル: test_autotag.py プロジェクト: dcode/beets
 def test_parens_have_lower_weight(self):
     dist1 = match.string_dist('One .Two.', 'One')
     dist2 = match.string_dist('One (Two)', 'One')
     self.assert_(dist2 < dist1)
コード例 #17
0
ファイル: test_autotag.py プロジェクト: dcode/beets
 def test_leading_the_has_lower_weight(self):
     dist1 = match.string_dist('XXX Band Name', 'Band Name')
     dist2 = match.string_dist('The Band Name', 'Band Name')
     self.assert_(dist2 < dist1)
コード例 #18
0
ファイル: test_autotag.py プロジェクト: dcode/beets
 def test_case_ignored(self):
     dist = match.string_dist('Some String', 'sOME sTring')
     self.assertEqual(dist, 0.0)
コード例 #19
0
ファイル: test_autotag.py プロジェクト: mister-walter/beets
 def test_ep_label_has_zero_weight(self):
     dist = match.string_dist(u'My Song (EP)', u'My Song')
     self.assertEqual(dist, 0.0)
コード例 #20
0
ファイル: test_autotag.py プロジェクト: mister-walter/beets
 def test_postfix_the(self):
     dist = match.string_dist(u'The Song Title', u'Song Title, The')
     self.assertEqual(dist, 0.0)
コード例 #21
0
ファイル: test_autotag.py プロジェクト: navap/beets
 def test_postfix_a(self):
     dist = match.string_dist("A Song Title", "Song Title, A")
     self.assertEqual(dist, 0.0)
コード例 #22
0
ファイル: test_autotag.py プロジェクト: mister-walter/beets
 def test_solo_pattern(self):
     # Just make sure these don't crash.
     match.string_dist(u'The ', u'')
     match.string_dist(u'(EP)', u'(EP)')
     match.string_dist(u', An', u'')
コード例 #23
0
ファイル: test_autotag.py プロジェクト: navap/beets
 def test_empty_strings(self):
     dist = match.string_dist("", "")
     self.assertEqual(dist, 0.0)
コード例 #24
0
ファイル: test_autotag.py プロジェクト: dcode/beets
 def test_solo_pattern(self):
     # Just make sure these don't crash.
     match.string_dist('The ', '')
     match.string_dist('(EP)', '(EP)')
     match.string_dist(', An', '')
コード例 #25
0
ファイル: test_autotag.py プロジェクト: navap/beets
 def test_heuristic_does_not_harm_distance(self):
     dist = match.string_dist("Untitled", "[Untitled]")
     self.assertEqual(dist, 0.0)
コード例 #26
0
ファイル: test_autotag.py プロジェクト: navap/beets
 def test_postfix_an(self):
     dist = match.string_dist("An Album Title", "Album Title, An")
     self.assertEqual(dist, 0.0)
コード例 #27
0
ファイル: test_autotag.py プロジェクト: dcode/beets
 def test_ampersand_expansion(self):
     dist = match.string_dist('And', '&')
     self.assertEqual(dist, 0.0)
コード例 #28
0
ファイル: test_autotag.py プロジェクト: navap/beets
 def test_solo_pattern(self):
     # Just make sure these don't crash.
     match.string_dist("The ", "")
     match.string_dist("(EP)", "(EP)")
     match.string_dist(", An", "")
コード例 #29
0
ファイル: test_autotag.py プロジェクト: dcode/beets
 def test_accented_characters(self):
     dist = match.string_dist(u'\xe9\xe1\xf1', u'ean')
     self.assertEqual(dist, 0.0)
コード例 #30
0
ファイル: test_autotag.py プロジェクト: navap/beets
 def test_ampersand_expansion(self):
     dist = match.string_dist("And", "&")
     self.assertEqual(dist, 0.0)
コード例 #31
0
ファイル: test_autotag.py プロジェクト: navap/beets
 def test_equal_strings(self):
     dist = match.string_dist("Some String", "Some String")
     self.assertEqual(dist, 0.0)
コード例 #32
0
ファイル: test_autotag.py プロジェクト: mister-walter/beets
 def test_equal_strings(self):
     dist = match.string_dist(u'Some String', u'Some String')
     self.assertEqual(dist, 0.0)
コード例 #33
0
ファイル: test_autotag.py プロジェクト: navap/beets
 def test_different_strings(self):
     dist = match.string_dist("Some String", "Totally Different")
     self.assertNotEqual(dist, 0.0)
コード例 #34
0
ファイル: test_autotag.py プロジェクト: mister-walter/beets
 def test_punctuation_ignored(self):
     dist = match.string_dist(u'Some String', u'Some.String!')
     self.assertEqual(dist, 0.0)
コード例 #35
0
ファイル: test_autotag.py プロジェクト: navap/beets
 def test_punctuation_ignored(self):
     dist = match.string_dist("Some String", "Some.String!")
     self.assertEqual(dist, 0.0)
コード例 #36
0
ファイル: test_autotag.py プロジェクト: mister-walter/beets
 def test_leading_the_has_lower_weight(self):
     dist1 = match.string_dist(u'XXX Band Name', u'Band Name')
     dist2 = match.string_dist(u'The Band Name', u'Band Name')
     self.assert_(dist2 < dist1)
コード例 #37
0
ファイル: test_autotag.py プロジェクト: navap/beets
 def test_case_ignored(self):
     dist = match.string_dist("Some String", "sOME sTring")
     self.assertEqual(dist, 0.0)
コード例 #38
0
ファイル: test_autotag.py プロジェクト: mister-walter/beets
 def test_brackets_have_lower_weight(self):
     dist1 = match.string_dist(u'One .Two.', u'One')
     dist2 = match.string_dist(u'One [Two]', u'One')
     self.assert_(dist2 < dist1)
コード例 #39
0
ファイル: test_autotag.py プロジェクト: navap/beets
 def test_leading_the_has_lower_weight(self):
     dist1 = match.string_dist("XXX Band Name", "Band Name")
     dist2 = match.string_dist("The Band Name", "Band Name")
     self.assert_(dist2 < dist1)
コード例 #40
0
ファイル: test_autotag.py プロジェクト: mister-walter/beets
 def test_featured_has_lower_weight(self):
     dist1 = match.string_dist(u'My Song blah Someone', u'My Song')
     dist2 = match.string_dist(u'My Song feat Someone', u'My Song')
     self.assert_(dist2 < dist1)
コード例 #41
0
ファイル: test_autotag.py プロジェクト: navap/beets
 def test_parens_have_lower_weight(self):
     dist1 = match.string_dist("One .Two.", "One")
     dist2 = match.string_dist("One (Two)", "One")
     self.assert_(dist2 < dist1)
コード例 #42
0
ファイル: test_autotag.py プロジェクト: mister-walter/beets
 def test_postfix_a(self):
     dist = match.string_dist(u'A Song Title', u'Song Title, A')
     self.assertEqual(dist, 0.0)
コード例 #43
0
ファイル: test_autotag.py プロジェクト: navap/beets
 def test_brackets_have_lower_weight(self):
     dist1 = match.string_dist("One .Two.", "One")
     dist2 = match.string_dist("One [Two]", "One")
     self.assert_(dist2 < dist1)
コード例 #44
0
ファイル: test_autotag.py プロジェクト: mister-walter/beets
 def test_empty_strings(self):
     dist = match.string_dist(u'', u'')
     self.assertEqual(dist, 0.0)
コード例 #45
0
ファイル: test_autotag.py プロジェクト: navap/beets
 def test_ep_label_has_zero_weight(self):
     dist = match.string_dist("My Song (EP)", "My Song")
     self.assertEqual(dist, 0.0)
コード例 #46
0
ファイル: test_autotag.py プロジェクト: mister-walter/beets
 def test_heuristic_does_not_harm_distance(self):
     dist = match.string_dist(u'Untitled', u'[Untitled]')
     self.assertEqual(dist, 0.0)
コード例 #47
0
ファイル: test_autotag.py プロジェクト: navap/beets
 def test_featured_has_lower_weight(self):
     dist1 = match.string_dist("My Song blah Someone", "My Song")
     dist2 = match.string_dist("My Song feat Someone", "My Song")
     self.assert_(dist2 < dist1)
コード例 #48
0
ファイル: test_autotag.py プロジェクト: mister-walter/beets
 def test_accented_characters(self):
     dist = match.string_dist(u'\xe9\xe1\xf1', u'ean')
     self.assertEqual(dist, 0.0)
コード例 #49
0
ファイル: test_autotag.py プロジェクト: navap/beets
 def test_postfix_the(self):
     dist = match.string_dist("The Song Title", "Song Title, The")
     self.assertEqual(dist, 0.0)