Ejemplo n.º 1
0
 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))
Ejemplo n.º 2
0
 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))
Ejemplo n.º 3
0
    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)))
Ejemplo n.º 4
0
    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')