continued
This commit is contained in:
		| @@ -2,7 +2,9 @@ from music_kraken.pages import ( | ||||
|     EncyclopaediaMetallum | ||||
| ) | ||||
|  | ||||
| print(EncyclopaediaMetallum.search_by_query("only smile")) | ||||
| print(EncyclopaediaMetallum.search_by_query("#a Ghost Bath")) | ||||
| print(EncyclopaediaMetallum.search_by_query("#a Ghost Bath #r Self Loather")) | ||||
| # only_smile = EncyclopaediaMetallum.search_by_query("only smile") | ||||
| # print(EncyclopaediaMetallum.search_by_query("#a Ghost Bath")) | ||||
| # print(EncyclopaediaMetallum.search_by_query("#a Ghost Bath #r Self Loather")) | ||||
| print(EncyclopaediaMetallum.search_by_query("#a Ghost Bath #r Self Loather #t hide from the sun")) | ||||
|  | ||||
| # print(only_smile) | ||||
|   | ||||
| @@ -24,6 +24,8 @@ class EncyclopaediaMetallum(Page): | ||||
|         "Connection": "keep-alive" | ||||
|     } | ||||
|  | ||||
|     SOURCE_TYPE = SourcePages.ENCYCLOPAEDIA_METALLUM | ||||
|  | ||||
|  | ||||
|     @classmethod | ||||
|     def search_by_query(cls, query: str) -> List[MusicObject]: | ||||
| @@ -56,7 +58,8 @@ class EncyclopaediaMetallum(Page): | ||||
|             artist_html=raw_song[0], | ||||
|             album_html=raw_song[1], | ||||
|             release_type=raw_song[2], | ||||
|             title=raw_song[3] | ||||
|             title=raw_song[3], | ||||
|             lyrics_html=raw_song[4] | ||||
|         ) for raw_song in r.json()['aaData']] | ||||
|  | ||||
|     @classmethod | ||||
| @@ -161,11 +164,33 @@ class EncyclopaediaMetallum(Page): | ||||
|         ) | ||||
|  | ||||
|     @classmethod | ||||
|     def get_song_from_json(cls, artist_html=None, album_html=None, release_type=None, title=None) -> Song: | ||||
|     def get_song_from_json(cls, artist_html=None, album_html=None, release_type=None, title=None, lyrics_html=None) -> Song: | ||||
|         song_id = None | ||||
|         if lyrics_html is not None: | ||||
|             # <a href="javascript:;" id="lyricsLink_5948443" title="Toggle lyrics display" class="viewLyrics iconContainer ui-state-default"><span class="ui-icon ui-icon-script">Edit song lyrics</span></a> | ||||
|             soup = BeautifulSoup(lyrics_html, 'html.parser') | ||||
|             anchor = soup.find('a') | ||||
|             raw_song_id = anchor.get('id') | ||||
|             song_id = raw_song_id.replace("lyricsLink_", "") | ||||
|          | ||||
|         return Song( | ||||
|             id_=song_id, | ||||
|             title=title, | ||||
|             main_artist_list=[ | ||||
|                 cls.get_artist_from_json(html=artist_html) | ||||
|             ], | ||||
|             album=cls.get_album_from_json(album_html=album_html, release_type=release_type, artist_html=artist_html) | ||||
|         ) | ||||
|  | ||||
|     @classmethod | ||||
|     def fetch_artist_details(cls, artist: Artist) -> Artist: | ||||
|         relevant_source = None | ||||
|         for source in artist.sources: | ||||
|             if source.page_enum == cls.SOURCE_TYPE: | ||||
|                 relevant_source = source | ||||
|                 break | ||||
|         if relevant_source is None: | ||||
|             return artist | ||||
|          | ||||
|         print(relevant_source.url) | ||||
|         return artist | ||||
		Reference in New Issue
	
	Block a user