"""Update checker — checks for available router updates. Compares the current router version against available updates and determines if an update is needed. Ported from net.i2p.update.UpdateHandler / UpdateManager. """ from __future__ import annotations from dataclasses import dataclass from i2p_apps.updater.version import compare_versions @dataclass class UpdateInfo: """Information about an available update.""" version: str url: str sig_url: str = "" min_version: str = "" class UpdateChecker: """Checks whether the router needs updating.""" def __init__(self, current_version: str) -> None: self.current_version = current_version def needs_update(self, info: UpdateInfo) -> bool: """Check if an update is needed based on version comparison.""" return compare_versions(info.version, self.current_version) > 0