added CRAN

This commit is contained in:
Tom 2021-10-10 20:40:33 -07:00
parent c230811ab8
commit 565fd092d2
4 changed files with 42 additions and 9 deletions

View File

@ -19,7 +19,6 @@ even if the date relies on a specific file in their repo, we can still find the
to find repos of the mirrored projects to check, just search "projectName mirrors" to find repos of the mirrored projects to check, just search "projectName mirrors"
not done: not done:
CRAN
csclub csclub
CTAN CTAN
damnsmalllinux damnsmalllinux
@ -50,6 +49,7 @@ archlinux
centos centos
ceph ceph
CPAN CPAN
CRAN: https://cran.r-project.org/mirmon_report.html has a mirror tracker
Cygwin Cygwin
debian debian
debian-cd debian-cd

View File

@ -7,7 +7,7 @@
"file": "almalinux/TIME" "file": "almalinux/TIME"
}, },
"Alpine": { "Alpine": {
"out_of_sync_since": null, "out_of_sync_since": 1633923341,
"out_of_sync_interval": 86400, "out_of_sync_interval": 86400,
"csc": "", "csc": "",
"upstream": "https://uk.alpinelinux.org/", "upstream": "https://uk.alpinelinux.org/",
@ -21,7 +21,7 @@
"file": "zzz/time.txt" "file": "zzz/time.txt"
}, },
"Arch": { "Arch": {
"out_of_sync_since": null, "out_of_sync_since": 1633923341,
"out_of_sync_interval": 86400, "out_of_sync_interval": 86400,
"csc": "archlinux/", "csc": "archlinux/",
"upstream": "http://arch.mirror.constant.com/", "upstream": "http://arch.mirror.constant.com/",
@ -66,7 +66,7 @@
"file": "debian-cd/project/trace/cdimage.debian.org" "file": "debian-cd/project/trace/cdimage.debian.org"
}, },
"DebianMultimedia": { "DebianMultimedia": {
"out_of_sync_since": 1633340186, "out_of_sync_since": null,
"out_of_sync_interval": 86400, "out_of_sync_interval": 86400,
"csc": "debian-multimedia/", "csc": "debian-multimedia/",
"upstream": "http://debian-mirrors.sdinet.de/deb-multimedia/", "upstream": "http://debian-mirrors.sdinet.de/deb-multimedia/",
@ -80,7 +80,7 @@
"file": "debian-ports/project/trace/porta.debian.org" "file": "debian-ports/project/trace/porta.debian.org"
}, },
"DebianSecurity": { "DebianSecurity": {
"out_of_sync_since": 1633337502, "out_of_sync_since": null,
"out_of_sync_interval": 86400, "out_of_sync_interval": 86400,
"csc": "", "csc": "",
"upstream": "http://debian.mirror.iweb.ca/", "upstream": "http://debian.mirror.iweb.ca/",
@ -94,7 +94,7 @@
"file": "TIME" "file": "TIME"
}, },
"Fedora": { "Fedora": {
"out_of_sync_since": null, "out_of_sync_since": 1633923341,
"out_of_sync_interval": 86400, "out_of_sync_interval": 86400,
"csc": "fedora/", "csc": "fedora/",
"upstream": "http://fedora.mirror.iweb.com/", "upstream": "http://fedora.mirror.iweb.com/",
@ -193,7 +193,7 @@
"file": "" "file": ""
}, },
"vlc": { "vlc": {
"out_of_sync_since": 1633298732, "out_of_sync_since": null,
"out_of_sync_interval": 86400, "out_of_sync_interval": 86400,
"csc": "vlc/", "csc": "vlc/",
"upstream": "http://download.videolan.org/pub/videolan/", "upstream": "http://download.videolan.org/pub/videolan/",
@ -249,7 +249,7 @@
"file": "MIRROR-TIMESTAMP" "file": "MIRROR-TIMESTAMP"
}, },
"qtproject": { "qtproject": {
"out_of_sync_since": 1633340186, "out_of_sync_since": null,
"out_of_sync_interval": 86400, "out_of_sync_interval": 86400,
"csc": "qtproject/", "csc": "qtproject/",
"upstream": "https://download.qt.io/", "upstream": "https://download.qt.io/",
@ -289,5 +289,12 @@
"csc": "", "csc": "",
"upstream": "https://launchpad.net/ubuntu/+mirror/mirror.csclub.uwaterloo.ca-release", "upstream": "https://launchpad.net/ubuntu/+mirror/mirror.csclub.uwaterloo.ca-release",
"file": "" "file": ""
},
"cran": {
"out_of_sync_since": null,
"out_of_sync_interval": 86400,
"csc": "",
"upstream": "https://cran.r-project.org/mirmon_report.html",
"file": ""
} }
} }

View File

@ -67,7 +67,7 @@ if __name__ == "__main__":
print(f"Failure: {project} does not exist") print(f"Failure: {project} does not exist")
continue continue
project_class = getattr(sys.modules[__name__], project) project_class = getattr(sys.modules[__name__], project)
if project == "CPAN" or project == "ubuntu" or project == "ubuntu_releases" or project == "manjaro" or project == "mxlinux" or project == "mxlinux_iso" or project == "slackware" or project == "trisquel": if project == "CPAN" or project == "ubuntu" or project == "ubuntu_releases" or project == "manjaro" or project == "mxlinux" or project == "mxlinux_iso" or project == "slackware" or project == "trisquel" or project == "cran":
checker_result = project_class.check(data, project, current_time) checker_result = project_class.check(data, project, current_time)
if checker_result: if checker_result:
print(f"Success: {project} up-to-date") print(f"Success: {project} up-to-date")

26
projects/cran.py Normal file
View File

@ -0,0 +1,26 @@
"""
Contains cran class
"""
import os
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
import re
import pandas as pd
class cran(Project):
"""cran class"""
@staticmethod
def check(data, project, current_time):
page = requests.get(data[project]["upstream"]).text
indexOfFile = page.find("mirror.csclub.uwaterloo.ca")
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))
return duration <= pd.to_timedelta(data[project]["out_of_sync_interval"], unit='s')