""" Contains FreeBSD class """ from project import Project from shared import CSC_MIRROR import requests class FreeBSD(Project): """FreeBSD class""" # FreeBSD's time file has two segments, so we need a special function # Example TIMESTAMP file: 1648308600 2022-03-26T15:30:00 UTC def check(data, project, current_time): """Check if project packages are up-to-date""" csc_url = CSC_MIRROR + data[project]["csc"] + data[project]["file"] upstream_url = data[project]["upstream"] + data[project]["file"] req = requests.get(csc_url) req.raise_for_status() CSC = req.text req = requests.get(upstream_url) req.raise_for_status() upstream = req.text if upstream == CSC: return True try: return get_timestamp_for_freebsd(upstream) - get_timestamp_for_freebsd(CSC) < data[project]["out_of_sync_interval"] except ValueError: print("failed to parse apache") return False def get_timestamp_for_freebsd(s: str) -> int: real_time = s.split(" ")[0] return int(real_time)