def check_plugin(self, plugin_id, artist, title, lyric_hashes): logging.basicConfig(format='%(asctime)s %(levelname)s [%(module)s] %(message)s', level=logging.DEBUG) self.is_skipped(plugin_id) retry_delay = int(os.getenv('PRISMRIVER_TEST_RETRY_DELAY', '120')) retry_count = int(os.getenv('PRISMRIVER_TEST_RETRY_COUNT', '2')) config = self.get_search_config(plugin_id) step = 0 result = search(artist, title, config) while not result and step < retry_count: config.cache_web_ttl_sec = 0 # force test to re-download pages instead of getting them from cache delay = retry_delay * (step + 1) logging.debug('Empty search result, wait for {} sec. before retry'.format(delay)) sleep(delay) result = search(artist, title, config) step += 1 self.assertEqual(1, len(result), 'Wrong songs count') self.assertEqual(len(lyric_hashes), len(result[0].lyrics), 'Wrong lyrics count') index = 0 for lyric_hash in lyric_hashes: logging.debug('Lyric #{}:\n'.format(index) + result[0].lyrics[index]) self.assertEqual(lyric_hash, self.get_md5(result[0].lyrics[index]), 'Different text in #{} lyrics'.format(index)) index += 1
def check_plugin(self, plugin_id, artist, title, lyric_hashes): logging.basicConfig( format='%(asctime)s %(levelname)s [%(module)s] %(message)s', level=logging.DEBUG) self.is_skipped(plugin_id) retry_delay = int(os.getenv('PRISMRIVER_TEST_RETRY_DELAY', '120')) retry_count = int(os.getenv('PRISMRIVER_TEST_RETRY_COUNT', '0')) config = self.get_search_config(plugin_id) step = 0 result = search(artist, title, config) while not result and step < retry_count: config.cache_web_ttl_sec = 0 # force test to re-download pages instead of getting them from cache delay = retry_delay * (step + 1) logging.debug( 'Empty search result, wait for {} sec. before retry'.format( delay)) sleep(delay) result = search(artist, title, config) step += 1 self.assertEqual(1, len(result), 'Wrong songs count') self.assertEqual(len(lyric_hashes), len(result[0].lyrics), 'Wrong lyrics count') index = 0 for lyric_hash in lyric_hashes: logging.debug('Lyric #{}:\n'.format(index) + result[0].lyrics[index]) self.assertEqual(lyric_hash, self.get_md5(result[0].lyrics[index]), 'Different text in #{} lyrics'.format(index)) index += 1
def run(self): start_time = time.time() songs = [] for item in self.meta: item_songs = main.search(item[0], item[1], self.config) songs.extend(item_songs) total_time = time.time() - start_time self.resultReady.emit(self.worker_id, self.meta[0][0], self.meta[0][1], songs, total_time, self.background)
def run(): parser = util.init_args_parser() parser.add_argument('--list', action='store_true', help='list available search plugins') parser.add_argument( '--song', action='store_true', help='search for song information by artist and title (default action)' ) parser.add_argument('--cleanup', action='store_true', help='remove outdated files from cache') parser.add_argument( "-f", "--format", type=str, default='txt', help="lyrics output format (txt (default), json, json_ascii)") parser.add_argument( "-o", "--output", type=str, default='%ARTIST% - %TITLE%\nSource: %PLUGIN_NAME%\n\n%LYRICS%', help="output template for txt format. Available parameters: " "%%TITLE%% - song title, " "%%ARTIST%% - song artist, " "%%LYRICS%% - song lyrics, " "%%PLUGIN_ID%% - plugin id, " "%%PLUGIN_NAME%% - plugin name " "(default value: %%ARTIST%% - %%TITLE%%\\nSource: %%PLUGIN_NAME%%\\n\\n%%LYRICS%%)" ) params = parser.parse_args() util.init_logging(params.quiet, params.verbose, params.log) util.log_debug_info(params) config = util.init_search_config(params) util.log_config_info(config) if params.list: list_plugins() elif params.cleanup: main.cleanup_cache(config) else: result = main.search(params.artist, params.title, config) if result: print(format_output(result, params.format, params.output))
def run(): parser = util.init_args_parser() parser.add_argument('--list', action='store_true', help='list available search plugins') parser.add_argument('--song', action='store_true', help='search for song information by artist and title (default action)') parser.add_argument('--cleanup', action='store_true', help='remove outdated files from cache') parser.add_argument("-f", "--format", type=str, default='txt', help="lyrics output format (txt (default), json, json_ascii)") parser.add_argument("-o", "--output", type=str, default='%ARTIST% - %TITLE%\nSource: %PLUGIN_NAME%\n\n%LYRICS%', help="output template for txt format. Available parameters: " "%%TITLE%% - song title, " "%%ARTIST%% - song artist, " "%%LYRICS%% - song lyrics, " "%%PLUGIN_ID%% - plugin id, " "%%PLUGIN_NAME%% - plugin name " "(default value: %%ARTIST%% - %%TITLE%%\\nSource: %%PLUGIN_NAME%%\\n\\n%%LYRICS%%)" ) params = parser.parse_args() util.init_logging(params.quiet, params.verbose, params.log) util.log_debug_info(params) config = util.init_search_config(params) util.log_config_info(config) if params.list: list_plugins() elif params.cleanup: main.cleanup_cache(config) else: result = main.search(params.artist, params.title, config) if result: print(format_output(result, params.format, params.output))