Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Sourcery Starbot ⭐ refactored SoulMelody/hls-get #4

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

sourcery-ai-bot
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^

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.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.

None yet

1 participant