""" Contains DebianCD class """ from project import Project from shared import CSC_MIRROR import requests from datetime import datetime import time class DebianCD(Project): """DebianCD class""" @staticmethod def check(data, project, current_time): 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 # Date Format Example: Sun 27 Mar 00:20:12 UTC 2022 date_format = "%a %d %b %H:%M:%S UTC %Y\n" CSC_date = datetime.strptime(CSC, date_format) CSC_utc_time = time.mktime(CSC_date.timetuple()) upstream_date = datetime.strptime(upstream, date_format) upstream_utc_time = time.mktime(upstream_date.timetuple()) try: return int(upstream_utc_time) - int(CSC_utc_time) < data[project]["out_of_sync_interval"] except ValueError: return False