From 612ec9d04bade3bc9c78f7af97ecc2be460727ac Mon Sep 17 00:00:00 2001 From: Leo Shen Date: Sat, 26 Mar 2022 22:04:51 -0400 Subject: [PATCH 1/2] projects/cpan: trust CPAN's mirror status --- projects/cpan.py | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/projects/cpan.py b/projects/cpan.py index 478174d..bad50e7 100644 --- a/projects/cpan.py +++ b/projects/cpan.py @@ -9,13 +9,14 @@ from shared import CSC_MIRROR class CPAN(Project): - """CPAN class""" + """CPAN class""" - @staticmethod - def check(data, project, current_time): - res_json = requests.get("http://mirrors.cpan.org/cpan-json.txt").json() - for mirror in res_json: - if mirror["url"] == f"{CSC_MIRROR}CPAN/": - data[project]["out_of_sync_since"] = int(mirror["age"]) - return current_time - data[project]["out_of_sync_since"] <= data[project]["out_of_sync_interval"] - return False + @staticmethod + def check(data, project, current_time): + res_json = requests.get("http://mirrors.cpan.org/cpan-json.txt").json() + for mirror in res_json: + if mirror["url"] == f"{CSC_MIRROR}CPAN/" and mirror["last_status"] == "ok": + # This is an improvised method: report we're good if CPAN think we are good + # Change this to a more precise method if you find a better way to do it + return True + return False From 0571f7353a8e58616bac7726c4bcced7d48da595 Mon Sep 17 00:00:00 2001 From: Leo Shen Date: Wed, 30 Mar 2022 00:15:08 -0400 Subject: [PATCH 2/2] projects/ctan: make Python happy --- projects/ctan.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/projects/ctan.py b/projects/ctan.py index 4a834d8..9d0b383 100644 --- a/projects/ctan.py +++ b/projects/ctan.py @@ -7,7 +7,7 @@ from project import Project from shared import CSC_MIRROR import requests import datefinder # another date finding library -from datetime import timedelta +from datetime import datetime, timedelta import re import pandas as pd @@ -20,7 +20,8 @@ class ctan(Project): m = re.search(r'(\d+ hour)|(\d+ hours)|(\d+(\.)?\d+ days)', page[indexOfFile:]) # solution from: https://stackoverflow.com/questions/21074100/how-to-convert-standard-timedelta-string-to-timedelta-object/21074460 + duration = pd.to_timedelta(m.group(0)) - data[project]["out_of_sync_since"] = datetime.now() - duration.total_seconds() + data[project]["out_of_sync_since"] = datetime.now() - duration return duration <= pd.to_timedelta(data[project]["out_of_sync_interval"], unit='s')