- def _parse_similarity(self):
- """Parse command line option similarity"""
- cli_sim = self.options.similarity.strip(',').split(',')
- sim = list([])
- main = cli_sim[0]
- for art in cli_sim[1:]:
- artist = art.split(':')[0]
- score = int(art.split(':')[1])
- sim.append({'artist': artist, 'score': score})
- return (main, sim)
-
- def _print_main_art(self, art=None):
- """Print entries, art as main artist."""
- if not art:
- art = self.options.view
- db = simadb.SimaDB(db_path=self.dbfile)
- art_db = self._get_art_from_db(art)
- if not art_db: return
- sims = list([])
- [sims.append(a) for a in db._get_similar_artists_from_db(art_db[0])]
- if len(sims) == 0:
- return False
- print('"%s" similarities:' % art)
- for art in sims:
- mess = str(' - {score:0>2d} {artist}'.format(**art))
- print(mess)
- return True
-
- def _remove_sim(self, art1_db, art2_db):
- """Remove single similarity between two artists."""
- db = simadb.SimaDB(db_path=self.dbfile)
- similarity = db._get_artist_match(art1_db[0], art2_db[0])
- if similarity == 0:
- return False
- db._remove_relation_between_2_artist(art1_db[0], art2_db[0])
- mess = 'Remove: "{0}" "{1}:{2:0>2d}"'.format(art1_db[1], art2_db[1],
- similarity)
- print(mess)
- return True
-
- def _revert_similarity(self, sim_formated):
- """Revert similarity string (for reciprocal editing - add)."""
- main_art = sim_formated[0]
- similars = sim_formated[1]
- for similar in similars:
- yield (similar.get('artist'),
- [{'artist':main_art, 'score':similar.get('score')}])
-