MythTV  master
scrapertest.py
Go to the documentation of this file.
1 #-*- coding: UTF-8 -*-
2 import time
3 from lib.utils import *
4 from lib.culrcscrapers.azlyrics import lyricsScraper as lyricsScraper_azlyrics
5 from lib.culrcscrapers.darklyrics import lyricsScraper as lyricsScraper_darklyrics
6 from lib.culrcscrapers.genius import lyricsScraper as lyricsScraper_genius
7 from lib.culrcscrapers.lrclib import lyricsScraper as lyricsScraper_lrclib
8 from lib.culrcscrapers.lyricscom import lyricsScraper as lyricsScraper_lyricscom
9 from lib.culrcscrapers.lyricsmode import lyricsScraper as lyricsScraper_lyricsmode
10 from lib.culrcscrapers.megalobiz import lyricsScraper as lyricsScraper_megalobiz
11 from lib.culrcscrapers.music163 import lyricsScraper as lyricsScraper_music163
12 from lib.culrcscrapers.musixmatch import lyricsScraper as lyricsScraper_musixmatch
13 from lib.culrcscrapers.musixmatchlrc import lyricsScraper as lyricsScraper_musixmatchlrc
14 from lib.culrcscrapers.rclyricsband import lyricsScraper as lyricsScraper_rclyricsband
15 from lib.culrcscrapers.supermusic import lyricsScraper as lyricsScraper_supermusic
16 
17 FAILED = []
18 
20  lyricssettings = {}
21  lyricssettings['debug'] = ADDON.getSettingBool('log_enabled')
22  lyricssettings['save_filename_format'] = ADDON.getSettingInt('save_filename_format')
23  lyricssettings['save_lyrics_path'] = ADDON.getSettingString('save_lyrics_path')
24  lyricssettings['save_subfolder'] = ADDON.getSettingBool('save_subfolder')
25  lyricssettings['save_subfolder_path'] = ADDON.getSettingString('save_subfolder_path')
26 
27  dialog = xbmcgui.DialogProgress()
28  TIMINGS = []
29 
30  # test alsong
31  dialog.create(ADDONNAME, LANGUAGE(32163) % 'azlyrics')
32  log('==================== azlyrics ====================', debug=True)
33  song = Song(opt=lyricssettings)
34  song.artist = 'La Dispute'
35  song.title = 'Such Small Hands'
36  st = time.time()
37  lyrics = lyricsScraper_azlyrics.LyricsFetcher(settings=lyricssettings, debug=True).get_lyrics(song)
38  ft = time.time()
39  tt = ft - st
40  TIMINGS.append(['azlyrics',tt])
41  if lyrics:
42  log(lyrics.lyrics, debug=True)
43  else:
44  FAILED.append('azlyrics')
45  log('FAILED: azlyrics', debug=True)
46  if dialog.iscanceled():
47  return
48 
49  # test darklyrics
50  dialog.update(8, LANGUAGE(32163) % 'darklyrics')
51  log('==================== darklyrics ====================', debug=True)
52  song = Song(opt=lyricssettings)
53  song.artist = 'Neurosis'
54  song.title = 'Lost'
55  st = time.time()
56  lyrics = lyricsScraper_darklyrics.LyricsFetcher(settings=lyricssettings, debug=True).get_lyrics(song)
57  ft = time.time()
58  tt = ft - st
59  TIMINGS.append(['darklyrics',tt])
60  if lyrics:
61  log(lyrics.lyrics, debug=True)
62  else:
63  FAILED.append('darklyrics')
64  log('FAILED: darklyrics', debug=True)
65  if dialog.iscanceled():
66  return
67 
68  # test genius
69  dialog.update(16, LANGUAGE(32163) % 'genius')
70  log('==================== genius ====================', debug=True)
71  song = Song(opt=lyricssettings)
72  song.artist = 'Maren Morris'
73  song.title = 'My Church'
74  st = time.time()
75  lyrics = lyricsScraper_genius.LyricsFetcher(settings=lyricssettings, debug=True).get_lyrics(song)
76  ft = time.time()
77  tt = ft - st
78  TIMINGS.append(['genius',tt])
79  if lyrics:
80  log(lyrics.lyrics, debug=True)
81  else:
82  FAILED.append('genius')
83  log('FAILED: genius', debug=True)
84  if dialog.iscanceled():
85  return
86 
87  # test lrclib
88  dialog.update(24, LANGUAGE(32163) % 'lrclib')
89  log('==================== lrclib ====================', debug=True)
90  song = Song(opt=lyricssettings)
91  song.artist = 'CHVRCHES'
92  song.title = 'Clearest Blue'
93  st = time.time()
94  lyrics = lyricsScraper_lrclib.LyricsFetcher(settings=lyricssettings, debug=True).get_lyrics(song)
95  ft = time.time()
96  tt = ft - st
97  TIMINGS.append(['lrclib',tt])
98  if lyrics:
99  log(lyrics.lyrics, debug=True)
100  else:
101  FAILED.append('lrclib')
102  log('FAILED: lrclib', debug=True)
103  if dialog.iscanceled():
104  return
105 
106  # test lyricscom
107  dialog.update(32, LANGUAGE(32163) % 'lyricscom')
108  log('==================== lyricscom ====================', debug=True)
109  song = Song(opt=lyricssettings)
110  song.artist = 'Blur'
111  song.title = 'You\'re So Great'
112  st = time.time()
113  lyrics = lyricsScraper_lyricscom.LyricsFetcher(settings=lyricssettings, debug=True).get_lyrics(song)
114  ft = time.time()
115  tt = ft - st
116  TIMINGS.append(['lyricscom',tt])
117  if lyrics:
118  log(lyrics.lyrics, debug=True)
119  else:
120  FAILED.append('lyricscom')
121  log('FAILED: lyricscom', debug=True)
122  if dialog.iscanceled():
123  return
124 
125  # test lyricsmode
126  dialog.update(40, LANGUAGE(32163) % 'lyricsmode')
127  log('==================== lyricsmode ====================', debug=True)
128  song = Song(opt=lyricssettings)
129  song.artist = 'Maren Morris'
130  song.title = 'My Church'
131  st = time.time()
132  lyrics = lyricsScraper_lyricsmode.LyricsFetcher(settings=lyricssettings, debug=True).get_lyrics(song)
133  ft = time.time()
134  tt = ft - st
135  TIMINGS.append(['lyricsmode',tt])
136  if lyrics:
137  log(lyrics.lyrics, debug=True)
138  else:
139  FAILED.append('lyricsmode')
140  log('FAILED: lyricsmode', debug=True)
141  if dialog.iscanceled():
142  return
143 
144  # test megalobiz
145  dialog.update(49, LANGUAGE(32163) % 'megalobiz')
146  log('==================== megalobiz ====================', debug=True)
147  song = Song(opt=lyricssettings)
148  song.artist = 'Michael Jackson'
149  song.title = 'Beat It'
150  st = time.time()
151  lyrics = lyricsScraper_megalobiz.LyricsFetcher(settings=lyricssettings, debug=True).get_lyrics(song)
152  ft = time.time()
153  tt = ft - st
154  TIMINGS.append(['megalobiz',tt])
155  if lyrics:
156  log(lyrics.lyrics, debug=True)
157  else:
158  FAILED.append('megalobiz')
159  log('FAILED: megalobiz', debug=True)
160  if dialog.iscanceled():
161  return
162 
163  # test music163
164  dialog.update(58, LANGUAGE(32163) % 'music163')
165  log('==================== music163 ====================', debug=True)
166  song = Song(opt=lyricssettings)
167  song.artist = 'Madonna'
168  song.title = 'Vogue'
169  st = time.time()
170  lyrics = lyricsScraper_music163.LyricsFetcher(settings=lyricssettings, debug=True).get_lyrics(song)
171  ft = time.time()
172  tt = ft - st
173  TIMINGS.append(['music163',tt])
174  if lyrics:
175  log(lyrics.lyrics, debug=True)
176  else:
177  FAILED.append('music163')
178  log('FAILED: music163', debug=True)
179  if dialog.iscanceled():
180  return
181 
182  # test musixmatch
183  dialog.update(66, LANGUAGE(32163) % 'musixmatch')
184  log('==================== musixmatch ====================', debug=True)
185  song = Song(opt=lyricssettings)
186  song.artist = 'Kate Bush'
187  song.title = 'Wuthering Heights'
188  st = time.time()
189  lyrics = lyricsScraper_musixmatch.LyricsFetcher(settings=lyricssettings, debug=True).get_lyrics(song)
190  ft = time.time()
191  tt = ft - st
192  TIMINGS.append(['musixmatch',tt])
193  if lyrics:
194  log(lyrics.lyrics, debug=True)
195  else:
196  FAILED.append('musixmatch')
197  log('FAILED: musixmatch', debug=True)
198  if dialog.iscanceled():
199  return
200 
201  # test musixmatchlrc
202  dialog.update(73, LANGUAGE(32163) % 'musixmatchlrc')
203  log('==================== musixmatchlrc ====================', debug=True)
204  song = Song(opt=lyricssettings)
205  song.artist = 'Kate Bush'
206  song.title = 'Wuthering Heights'
207  st = time.time()
208  lyrics = lyricsScraper_musixmatchlrc.LyricsFetcher(settings=lyricssettings, debug=True).get_lyrics(song)
209  ft = time.time()
210  tt = ft - st
211  TIMINGS.append(['musixmatchlrc',tt])
212  if lyrics:
213  log(lyrics.lyrics, debug=True)
214  else:
215  FAILED.append('musixmatchlrc')
216  log('FAILED: musixmatchlrc', debug=True)
217  if dialog.iscanceled():
218  return
219 
220  # test rclyricsband
221  dialog.update(80, LANGUAGE(32163) % 'rclyricsband')
222  log('==================== rclyricsband ====================', debug=True)
223  song = Song(opt=lyricssettings)
224  song.artist = 'Taylor Swift'
225  song.title = 'The Archer'
226  st = time.time()
227  lyrics = lyricsScraper_rclyricsband.LyricsFetcher(settings=lyricssettings, debug=True).get_lyrics(song)
228  ft = time.time()
229  tt = ft - st
230  TIMINGS.append(['rclyricsband',tt])
231  if lyrics:
232  log(lyrics.lyrics, debug=True)
233  else:
234  FAILED.append('rclyricsband')
235  log('FAILED: rclyricsband', debug=True)
236  if dialog.iscanceled():
237  return
238 
239  # test supermusic
240  dialog.update(88, LANGUAGE(32163) % 'supermusic')
241  log('==================== supermusic ====================', debug=True)
242  song = Song(opt=lyricssettings)
243  song.artist = 'Karel Gott'
244  song.title = 'Trezor'
245  st = time.time()
246  lyrics = lyricsScraper_supermusic.LyricsFetcher(settings=lyricssettings, debug=True).get_lyrics(song)
247  ft = time.time()
248  tt = ft - st
249  TIMINGS.append(['supermusic',tt])
250  if lyrics:
251  log(lyrics.lyrics, debug=True)
252  else:
253  FAILED.append('supermusic')
254  log('FAILED: supermusic', debug=True)
255  if dialog.iscanceled():
256  return
257 
258  dialog.close()
259  log('=======================================', debug=True)
260  log('FAILED: %s' % str(FAILED), debug=True)
261  log('=======================================', debug=True)
262  for item in TIMINGS:
263  log('%s - %i' % (item[0], item[1]), debug=True)
264  log('=======================================', debug=True)
265  if FAILED:
266  dialog = xbmcgui.Dialog().ok(ADDONNAME, LANGUAGE(32165) % ' / '.join(FAILED))
267  else:
268  dialog = xbmcgui.Dialog().ok(ADDONNAME, LANGUAGE(32164))
utils
xbmcgui.Dialog
Definition: xbmcgui.py:8
scrapertest.test_scrapers
def test_scrapers()
Definition: scrapertest.py:19
xbmcgui.DialogProgress
Definition: xbmcgui.py:16
embedlrc.LANGUAGE
LANGUAGE
Definition: embedlrc.py:8
xbmc.log
None log(str msg, int level=LOGDEBUG)
Definition: xbmc.py:9