added CRAN
This commit is contained in:
parent
c230811ab8
commit
565fd092d2
|
@ -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"
|
||||
|
||||
not done:
|
||||
CRAN
|
||||
csclub
|
||||
CTAN
|
||||
damnsmalllinux
|
||||
|
@ -50,6 +49,7 @@ archlinux
|
|||
centos
|
||||
ceph
|
||||
CPAN
|
||||
CRAN: https://cran.r-project.org/mirmon_report.html has a mirror tracker
|
||||
Cygwin
|
||||
debian
|
||||
debian-cd
|
||||
|
|
21
data.json
21
data.json
|
@ -7,7 +7,7 @@
|
|||
"file": "almalinux/TIME"
|
||||
},
|
||||
"Alpine": {
|
||||
"out_of_sync_since": null,
|
||||
"out_of_sync_since": 1633923341,
|
||||
"out_of_sync_interval": 86400,
|
||||
"csc": "",
|
||||
"upstream": "https://uk.alpinelinux.org/",
|
||||
|
@ -21,7 +21,7 @@
|
|||
"file": "zzz/time.txt"
|
||||
},
|
||||
"Arch": {
|
||||
"out_of_sync_since": null,
|
||||
"out_of_sync_since": 1633923341,
|
||||
"out_of_sync_interval": 86400,
|
||||
"csc": "archlinux/",
|
||||
"upstream": "http://arch.mirror.constant.com/",
|
||||
|
@ -66,7 +66,7 @@
|
|||
"file": "debian-cd/project/trace/cdimage.debian.org"
|
||||
},
|
||||
"DebianMultimedia": {
|
||||
"out_of_sync_since": 1633340186,
|
||||
"out_of_sync_since": null,
|
||||
"out_of_sync_interval": 86400,
|
||||
"csc": "debian-multimedia/",
|
||||
"upstream": "http://debian-mirrors.sdinet.de/deb-multimedia/",
|
||||
|
@ -80,7 +80,7 @@
|
|||
"file": "debian-ports/project/trace/porta.debian.org"
|
||||
},
|
||||
"DebianSecurity": {
|
||||
"out_of_sync_since": 1633337502,
|
||||
"out_of_sync_since": null,
|
||||
"out_of_sync_interval": 86400,
|
||||
"csc": "",
|
||||
"upstream": "http://debian.mirror.iweb.ca/",
|
||||
|
@ -94,7 +94,7 @@
|
|||
"file": "TIME"
|
||||
},
|
||||
"Fedora": {
|
||||
"out_of_sync_since": null,
|
||||
"out_of_sync_since": 1633923341,
|
||||
"out_of_sync_interval": 86400,
|
||||
"csc": "fedora/",
|
||||
"upstream": "http://fedora.mirror.iweb.com/",
|
||||
|
@ -193,7 +193,7 @@
|
|||
"file": ""
|
||||
},
|
||||
"vlc": {
|
||||
"out_of_sync_since": 1633298732,
|
||||
"out_of_sync_since": null,
|
||||
"out_of_sync_interval": 86400,
|
||||
"csc": "vlc/",
|
||||
"upstream": "http://download.videolan.org/pub/videolan/",
|
||||
|
@ -249,7 +249,7 @@
|
|||
"file": "MIRROR-TIMESTAMP"
|
||||
},
|
||||
"qtproject": {
|
||||
"out_of_sync_since": 1633340186,
|
||||
"out_of_sync_since": null,
|
||||
"out_of_sync_interval": 86400,
|
||||
"csc": "qtproject/",
|
||||
"upstream": "https://download.qt.io/",
|
||||
|
@ -289,5 +289,12 @@
|
|||
"csc": "",
|
||||
"upstream": "https://launchpad.net/ubuntu/+mirror/mirror.csclub.uwaterloo.ca-release",
|
||||
"file": ""
|
||||
},
|
||||
"cran": {
|
||||
"out_of_sync_since": null,
|
||||
"out_of_sync_interval": 86400,
|
||||
"csc": "",
|
||||
"upstream": "https://cran.r-project.org/mirmon_report.html",
|
||||
"file": ""
|
||||
}
|
||||
}
|
2
main.py
2
main.py
|
@ -67,7 +67,7 @@ if __name__ == "__main__":
|
|||
print(f"Failure: {project} does not exist")
|
||||
continue
|
||||
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)
|
||||
if checker_result:
|
||||
print(f"Success: {project} up-to-date")
|
||||
|
|
|
@ -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')
|
Loading…
Reference in New Issue