fix ruff errors

This commit is contained in:
subsense 2025-01-06 18:56:24 +09:00
parent ede4e0b78a
commit 5ab4037e8d
2 changed files with 19 additions and 29 deletions

View File

@ -585,8 +585,8 @@ from .egghead import (
EggheadLessonIE, EggheadLessonIE,
) )
from .eggs import ( from .eggs import (
EggsIE,
EggsArtistIE, EggsArtistIE,
EggsIE,
) )
from .eighttracks import EightTracksIE from .eighttracks import EightTracksIE
from .eitb import EitbIE from .eitb import EitbIE

View File

@ -3,8 +3,8 @@ import re
from .common import InfoExtractor from .common import InfoExtractor
from ..utils import ( from ..utils import (
ExtractorError, ExtractorError,
url_or_none,
unescapeHTML, unescapeHTML,
url_or_none,
) )
@ -12,8 +12,7 @@ class EggsBaseIE(InfoExtractor):
def _parse_artist_name(self, webpage): def _parse_artist_name(self, webpage):
artist = self._search_regex( artist = self._search_regex(
r'<div[^>]+class=(["\'])artist_name\1[^>]*>([^<]+)</div>', r'<div[^>]+class=(["\'])artist_name\1[^>]*>([^<]+)</div>',
webpage, 'artist name', fatal=False, default=None, group=2 webpage, 'artist name', fatal=False, default=None, group=2)
)
if artist: if artist:
return artist.strip() return artist.strip()
@ -28,19 +27,16 @@ class EggsBaseIE(InfoExtractor):
def _parse_single_song(self, url, webpage, default_artist='Unknown Artist'): def _parse_single_song(self, url, webpage, default_artist='Unknown Artist'):
song_id = self._search_regex( song_id = self._search_regex(
r'/song/(?P<id>[^/?#&]+)', r'/song/(?P<id>[^/?#&]+)',
url, 'song id', fatal=False, default=None, group='id' url, 'song id', fatal=False, default=None, group='id')
)
track_title = self._search_regex( track_title = self._search_regex(
r'<div[^>]+class=(["\'])product_name\1[^>]*>\s*<p>([^<]+)</p>', r'<div[^>]+class=(["\'])product_name\1[^>]*>\s*<p>([^<]+)</p>',
webpage, 'track title', fatal=False, default=None, group=2 webpage, 'track title', fatal=False, default=None, group=2)
)
if not track_title: if not track_title:
page_title = self._search_regex( page_title = self._search_regex(
r'<title>(?P<title>[^<]+)</title>', r'<title>(?P<title>[^<]+)</title>',
webpage, 'page title', fatal=False, default=None, group='title' webpage, 'page title', fatal=False, default=None, group='title')
)
if page_title: if page_title:
inner_match = re.search(r'「(?P<inner>[^」]+)」', page_title) inner_match = re.search(r'「(?P<inner>[^」]+)」', page_title)
if inner_match: if inner_match:
@ -54,15 +50,13 @@ class EggsBaseIE(InfoExtractor):
artist_regex = r'<span[^>]+class=(["\'])artist_name\1[^>]*>\s*<a[^>]*>([^<]+)</a>' artist_regex = r'<span[^>]+class=(["\'])artist_name\1[^>]*>\s*<a[^>]*>([^<]+)</a>'
fallback_artist = self._search_regex( fallback_artist = self._search_regex(
artist_regex, webpage, 'artist name', artist_regex, webpage, 'artist name',
fatal=False, default=None, group=2 fatal=False, default=None, group=2)
)
if fallback_artist: if fallback_artist:
artist = fallback_artist.strip() artist = fallback_artist.strip()
audio_url = self._search_regex( audio_url = self._search_regex(
r'<div[^>]+class=(["\'])[^"\']*player[^"\']*\1[^>]+data-src=(["\'])(?P<audio_url>[^"\']+)\2', r'<div[^>]+class=(["\'])[^"\']*player[^"\']*\1[^>]+data-src=(["\'])(?P<audio_url>[^"\']+)\2',
webpage, 'audio url', fatal=True, group='audio_url' webpage, 'audio url', fatal=True, group='audio_url')
)
audio_url = url_or_none(unescapeHTML(audio_url)) audio_url = url_or_none(unescapeHTML(audio_url))
if not audio_url: if not audio_url:
raise ExtractorError('Invalid audio URL.', expected=True) raise ExtractorError('Invalid audio URL.', expected=True)
@ -71,8 +65,7 @@ class EggsBaseIE(InfoExtractor):
self._html_search_meta(['og:image'], webpage, 'thumbnail', default=None) self._html_search_meta(['og:image'], webpage, 'thumbnail', default=None)
or self._search_regex( or self._search_regex(
r'<span[^>]*>\s*<img[^>]+src=(["\'])(?P<thumb>[^"\']+)\1', r'<span[^>]*>\s*<img[^>]+src=(["\'])(?P<thumb>[^"\']+)\1',
webpage, 'thumbnail', fatal=False, default=None, group='thumb' webpage, 'thumbnail', fatal=False, default=None, group='thumb')
)
) )
return { return {
@ -91,30 +84,26 @@ class EggsBaseIE(InfoExtractor):
for block in song_blocks: for block in song_blocks:
audio_url = self._search_regex( audio_url = self._search_regex(
r'data-src=(["\'])(?P<url>https?://.*?\.(?:mp3|m4a).*?)\1', r'data-src=(["\'])(?P<url>https?://.*?\.(?:mp3|m4a).*?)\1',
block, 'audio url', fatal=False, default=None, group='url' block, 'audio url', fatal=False, default=None, group='url')
)
audio_url = url_or_none(unescapeHTML(audio_url)) audio_url = url_or_none(unescapeHTML(audio_url))
if not audio_url: if not audio_url:
continue continue
track_id = self._search_regex( track_id = self._search_regex(
r'data-srcid=(["\'])(?P<id>[^"\'<>]+)\1', r'data-srcid=(["\'])(?P<id>[^"\'<>]+)\1',
block, 'track id', fatal=False, default=None, group='id' block, 'track id', fatal=False, default=None, group='id')
)
if not track_id: if not track_id:
continue continue
title = self._search_regex( title = self._search_regex(
r'data-srcname=(["\'])(?P<title>[^"\']+)\1', r'data-srcname=(["\'])(?P<title>[^"\']+)\1',
block, 'track title', fatal=False, default=None, group='title' block, 'track title', fatal=False, default=None, group='title')
)
if not title: if not title:
title = 'Unknown Title' title = 'Unknown Title'
thumbnail = self._search_regex( thumbnail = self._search_regex(
r'<img[^>]+src=(["\'])(?P<th>[^"\']+)\1', r'<img[^>]+src=(["\'])(?P<th>[^"\']+)\1',
block, 'thumbnail', fatal=False, default=None, group='th' block, 'thumbnail', fatal=False, default=None, group='th')
)
entries.append({ entries.append({
'id': track_id, 'id': track_id,
@ -127,6 +116,7 @@ class EggsBaseIE(InfoExtractor):
return entries return entries
class EggsIE(EggsBaseIE): class EggsIE(EggsBaseIE):
IE_NAME = 'eggs:single' IE_NAME = 'eggs:single'
_VALID_URL = ( _VALID_URL = (
@ -148,13 +138,13 @@ class EggsIE(EggsBaseIE):
song_id = mobj.group('song_id') song_id = mobj.group('song_id')
webpage = self._download_webpage(url, song_id) webpage = self._download_webpage(url, song_id)
artist_name = self._parse_artist_name(webpage) artist_name = self._parse_artist_name(webpage)
info = self._parse_single_song(url, webpage, artist_name) return self._parse_single_song(url, webpage, artist_name)
return info
class EggsArtistIE(EggsBaseIE): class EggsArtistIE(EggsBaseIE):
IE_NAME = 'eggs:artist' IE_NAME = 'eggs:artist'
_VALID_URL = ( _VALID_URL = (
r'https?://(?:www\.)?eggs\.mu/artist/(?P<artist_id>[^/]+)' r'https?://(?:www\.)?eggs\.mu/artist/(?P<artist_id>[^/]+)$'
) )
_TESTS = [{ _TESTS = [{
'url': 'https://eggs.mu/artist/32_sunny_girl', 'url': 'https://eggs.mu/artist/32_sunny_girl',
@ -173,5 +163,5 @@ class EggsArtistIE(EggsBaseIE):
return self.playlist_result( return self.playlist_result(
entries, entries,
playlist_id=artist_id, playlist_id=artist_id,
playlist_title=artist_name playlist_title=artist_name,
) )