Skip to content

Conversation

@SourceryAI
Copy link

Thanks for starring sourcery-ai/sourcery ✨ 🌟 ✨

Here's your pull request refactoring your most popular Python repo.

If you want Sourcery to refactor all your Python repos and incoming pull requests install our bot.

Review changes via command line

To manually merge these changes, make sure you're on the master branch, then run:

git fetch https://github.com/sourcery-ai-bot/hls-get master
git merge --ff-only FETCH_HEAD
git reset HEAD^

header_lines = [b'', *(line.encode('latin-1') for line in headers), b'']
parsed_headers, raw_headers = headers_parser.parse_headers(header_lines)
kwargs = dict()
kwargs = {}
Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function download refactored with the following changes:

self.path = path
self.timeout = timeout or None
self.key_cache = dict()
self.key_cache = {}
Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function HLSDownloader.__init__ refactored with the following changes:

Comment on lines -48 to -52
wrapper = tenacity.retry(
return tenacity.retry(
wait=tenacity.wait_fixed(ctx.params['delay']),
stop=tenacity.stop_after_attempt(ctx.params['retry_times'])
stop=tenacity.stop_after_attempt(ctx.params['retry_times']),
)
return wrapper
Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function HLSDownloader.retry_wrapper refactored with the following changes:

Comment on lines -69 to +70
async with self.sem, self.session.get(link) as resp:
async with (self.sem, self.session.get(link) as resp):
resp.raise_for_status()
if text:
return await resp.text()
else:
return await resp.read()
return await resp.text() if text else await resp.read()
Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function HLSDownloader.fetch_with_retry refactored with the following changes:

Comment on lines -93 to +130
if not m3u8_obj.media_sequence:
if m3u8_obj.is_variant:
for i, playlist in enumerate(m3u8_obj.playlists):
click.echo(
f'{i}: bandwidth={playlist.stream_info.bandwidth} '
f'resolution={playlist.stream_info.resolution} '
f'codecs={playlist.stream_info.codecs} '
)
index = click.prompt(
'Which playlist to download?',
type=click.Choice(list(range(len(m3u8_obj.playlists)))),
value_proc=int,
default=0
if m3u8_obj.media_sequence:
click.echo('Live streaming media is not suppported!')

elif m3u8_obj.is_variant:
for i, playlist in enumerate(m3u8_obj.playlists):
click.echo(
f'{i}: bandwidth={playlist.stream_info.bandwidth} '
f'resolution={playlist.stream_info.resolution} '
f'codecs={playlist.stream_info.codecs} '
)
return await self.download(m3u8_obj.playlists[index].absolute_uri)
else:
tmp_list = m3u8.M3U8()
tmp_list.version = '3'
tmp_list.media_sequence = '0'
tmp_list.target_duration = m3u8_obj.target_duration
tmp_list.is_endlist = True
tasks = []
os.makedirs(self.cache_dir, exist_ok=True)
bar = ShadyBar(self.name, max=len(m3u8_obj.segments), suffix='%(percent).1f%% - %(eta_td)s')
for i, segment in enumerate(m3u8_obj.segments):
tmp_list.add_segment(
m3u8.Segment(
f'{os.path.realpath(self.cache_dir)}/{i}.ts',
duration=segment.duration,
base_uri='file://'
)
index = click.prompt(
'Which playlist to download?',
type=click.Choice(list(range(len(m3u8_obj.playlists)))),
value_proc=int,
default=0
)
return await self.download(m3u8_obj.playlists[index].absolute_uri)
else:
tmp_list = m3u8.M3U8()
tmp_list.version = '3'
tmp_list.media_sequence = '0'
tmp_list.target_duration = m3u8_obj.target_duration
tmp_list.is_endlist = True
tasks = []
os.makedirs(self.cache_dir, exist_ok=True)
bar = ShadyBar(self.name, max=len(m3u8_obj.segments), suffix='%(percent).1f%% - %(eta_td)s')
for i, segment in enumerate(m3u8_obj.segments):
tmp_list.add_segment(
m3u8.Segment(
f'{os.path.realpath(self.cache_dir)}/{i}.ts',
duration=segment.duration,
base_uri='file://'
)
tasks.append(
asyncio.ensure_future(
self.download_segment(i, segment, bar)
)
)
tasks.append(
asyncio.ensure_future(
self.download_segment(i, segment, bar)
)
tmp_list.dump(f'{self.cache_dir}/filelist.m3u8')
await asyncio.gather(*tasks)
bar.finish()
else:
click.echo('Live streaming media is not suppported!')
)
tmp_list.dump(f'{self.cache_dir}/filelist.m3u8')
await asyncio.gather(*tasks)
bar.finish()
Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function HLSDownloader.download refactored with the following changes:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant