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.""" """Return a (code, label, index_url) iterator."""
for stream in config["attributes"]["streams"]: for stream in config["attributes"]["streams"]:
yield ( yield (
stream["versions"][0]["eStat"]["ml5"], # version code # version code
stream["versions"][0]["label"], # version full name stream["versions"][0]["eStat"]["ml5"],
stream["url"], # version index url # 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.""" """Return the version index url for the given version code."""
for (code, _, index_url) in iter_versions(config): for stream in config["attributes"]["streams"]:
if code == version_code: if stream["versions"][0]["eStat"]["ml5"] == version_code:
return index_url return stream["url"]
return None 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.""" """Return the stream information for a given resolution_code."""
for pl in version_index.playlists: for pl in version_index.playlists:
code = f"{pl.stream_info.resolution[1]}p" code = f"{pl.stream_info.resolution[1]}p"

View File

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