Match signature for version & resolution functions

This commit is contained in:
Barbagus 2022-12-09 20:52:55 +01:00
parent 9593619c68
commit f9c20e2149
2 changed files with 14 additions and 13 deletions

View File

@ -54,17 +54,18 @@ def iter_versions(config):
"""Return a (code, label, index_url) iterator."""
for stream in config["attributes"]["streams"]:
yield (
stream["versions"][0]["eStat"]["ml5"], # version code
stream["versions"][0]["label"], # version full name
stream["url"], # version index url
# version code
stream["versions"][0]["eStat"]["ml5"],
# version full name
stream["versions"][0]["label"],
)
def find_version(config, version_code):
def select_version(config, version_code):
"""Return the version index url for the given version code."""
for (code, _, index_url) in iter_versions(config):
if code == version_code:
return index_url
for stream in config["attributes"]["streams"]:
if stream["versions"][0]["eStat"]["ml5"] == version_code:
return stream["url"]
return None
@ -148,7 +149,7 @@ def iter_resolutions(version_index):
)
def find_resolution(version_index, resolution_code):
def select_resolution(version_index, resolution_code):
"""Return the stream information for a given resolution_code."""
for pl in version_index.playlists:
code = f"{pl.stream_info.resolution[1]}p"

View File

@ -14,8 +14,8 @@ from urllib.parse import urlparse
from . import (
build_ffmpeg_cmd,
build_file_base_name,
find_resolution,
find_version,
select_resolution,
select_version,
iter_resolutions,
iter_versions,
load_config_api,
@ -33,7 +33,7 @@ def fail(message, code=1):
def print_available_versions(config, f):
"""Print available program versions."""
print(f"Available versions:", file=f)
for (code, label, _) in iter_versions(config):
for code, label in iter_versions(config):
print(f"\t{code} - {label}", file=f)
@ -80,7 +80,7 @@ def main():
print_available_versions(config, sys.stdout)
return 0
version_index_url = find_version(config, args.pop(0))
version_index_url = select_version(config, args.pop(0))
if version_index_url is None:
fail("Invalid version")
print_available_versions(config, sys.stderr)
@ -92,7 +92,7 @@ def main():
print_available_resolutions(version_index, sys.stdout)
return 0
stream_info = find_resolution(version_index, args.pop(0))
stream_info = select_resolution(version_index, args.pop(0))
if stream_info is None:
fail("Invalid resolution")
print_available_resolutions(version_index, sys.stderr)