def saveLyrics(self, lyrics): try: self._lyrics = lyrics self._settings = settings.Settings() lyric_grabber.write_file(artist=self._artist, title=self._title, write_info=self._settings.info, write_metadata=self._settings.metadata, write_text=self._settings.text, lyrics=lyrics, song_filepath=self._filepath) except Exception as e: logger.log(logger.LOG_LEVEL_ERROR, str(e))
def test_no_lyrics(self): write_info = True write_metadata = False write_text = True lyrics = False result = lyric_grabber.write_file(artist=self.artist, title=self.title, write_info=write_info, write_metadata=write_metadata, write_text=write_text, lyrics=lyrics, song_filepath=self.filepath) self.assertTrue(result.succeeded) self.assertEqual(result.filepath, 'test_file.mp3') self.assertEqual( result.message, '[INFO] ' + 'No lyrics found for file: {file}'.format(file=self.title))
def run(self): self.setProgressIcon.emit(states.IN_PROGRESS) with SingleLyricGrabberThread.lock: try: if self._url is not None: # We have a URL, so scrape the URL result = lyric_grabber.scrape_url( artist=self._artist, title=self._title, url=self._url, song_filepath=self._filepath) else: # No URL, so fetch based on artist and title result = lyric_grabber.get_lyrics( approximate=self._settings.approximate, keep_brackets=not self._settings.remove_brackets, artist=self._artist, title=self._title, source=self._source.lower(), song_filepath=self._filepath) if result.succeeded: self.setUrl.emit(result.url) self.setLyrics.emit(result.lyrics) result = lyric_grabber.write_file( artist=self._artist, title=self._title, write_info=self._settings.info, write_metadata=self._settings.metadata, write_text=self._settings.text, lyrics=result.lyrics, song_filepath=self._filepath) logger.log(logger.LOG_LEVEL_SUCCESS, result.message) self.setProgressIcon.emit(states.COMPLETE) else: self.setProgressIcon.emit(states.ERROR) # print(result.lyrics) except Exception as e: logger.log( logger.LOG_LEVEL_ERROR, ' Exception occurred while getting lyrics for file {filepath}: {error}' .format(self._filepath, error=str(e)))
def test_not_write_info(self): write_info = False write_metadata = False write_text = True result = lyric_grabber.write_file(artist=self.artist, title=self.title, write_info=write_info, write_metadata=write_metadata, write_text=write_text, lyrics=self.lyrics, song_filepath=self.filepath) self.assertTrue(result.succeeded) self.assertEqual(result.filepath, self.filepath) self.assertEqual( result.message, '[SUCCESS] ' + 'Got lyrics for file: {file}'.format(file=self.title)) file = open('test_file.mp3'[:'test_file.mp3'.rfind('.')] + '.txt', 'r') result = file.read() file.close() self.assertEqual(result, self.lyrics) os.remove('test_file.txt')