Fix version comparison logic to properly handle version strings like 2026.2.4 vs 2026.02.04

This commit is contained in:
Jarian Cottingham 2026-02-20 09:10:37 -06:00
parent f58f0445ca
commit 8b90a4ebc7

View File

@ -82,8 +82,8 @@ class YouTubeCLI:
# Simple version comparison (basic implementation)
# In a real implementation, you'd want a more robust version comparison
# Check if versions are different
if current_version != latest_version:
# Check if versions are different using proper version comparison
if self._compare_versions(current_version, latest_version) < 0:
console.print(f"[yellow]Newer version available: {latest_version} (current: {current_version})[/yellow]")
console.print("[blue]Would you like to update? (y/n): [/blue]", end="")
try:
@ -100,6 +100,29 @@ class YouTubeCLI:
console.print(f"[green]yt-dlp is up to date: {current_version}[/green]")
return True
def _compare_versions(self, version1, version2):
"""Compare two version strings.
Returns -1 if version1 < version2, 0 if equal, 1 if version1 > version2
"""
# Split versions into components
v1_parts = [int(x) for x in version1.split('.')]
v2_parts = [int(x) for x in version2.split('.')]
# Compare each part
for i in range(min(len(v1_parts), len(v2_parts))):
if v1_parts[i] < v2_parts[i]:
return -1
elif v1_parts[i] > v2_parts[i]:
return 1
# If all compared parts are equal, the longer version is newer
if len(v1_parts) < len(v2_parts):
return -1
elif len(v1_parts) > len(v2_parts):
return 1
else:
return 0
def load_config(self, config_path=None):
"""Load configuration from file or use defaults."""
default_config = {