Commit 62ea0248 authored by Frederic HAN's avatar Frederic HAN
Browse files

option pour demander plus de jours dans le flux

parent d23b8e19
......@@ -28,14 +28,16 @@ redtstamp=re.compile('DTSTAMP:(\d{8}T\d{6})Z')
# les L1
def get_rss(nomrss, outdir='data', write=False, url=None,dryrun=False):
def get_rss(nomrss, outdir='data', write=False, url=None,dryrun=False, rssdays=56):
"""
BROKEN: Il faut que le flux rss soit allumé.
Si quelqu'un va sous ADE avec firefox et fait une demande de flux RSS, alors meme en quittant firefox, le flux
semble rester ouvert au moins 15min. (Sous chrome ou safari c'est beaucoup plus court)
"""
from calendriersfromtitres import nextcloud_rss, liens_rss
if url == None:
url = liens_rss[nomrss]
url = (re.sub("&nbDays=\d+&","&nbDays=%d&"%(rssdays),url))
r = requests.get(url)
if r.status_code == 200:
t=datetime.datetime.now()
......@@ -141,6 +143,10 @@ def writecal(codeformation,calendriers,rssdate,outdir="data",moveto_olddir=False
def makeical_via_rss(nomrss,titretocal,outdir="data", moveto_olddir=False, olddata='data.1',dryrun=False):
"""
Ne telecharge rien.
Cree les calendriers à partir des fichiers rss qui sont dans outdir (data)
"""
url = str(outdir)+"/"+nomrss
rssdate = datetime.datetime.fromtimestamp(os.path.getmtime(url))
......@@ -277,6 +283,7 @@ def makeical_via_rss(nomrss,titretocal,outdir="data", moveto_olddir=False, oldda
def get_nextcloudrss(nomrss,outdir="data",olddata="data.1",dryrun=False):
"""
* Cette fonction n'interroge pas ADE.
* data.1/ doit contenir la version actuellement utilisee du fichier rss que l'on veut
telecharger
comme on n'a pas acces a la date, on telecharge la nouvelle version, et si elle
......@@ -338,7 +345,7 @@ def get_nextcloudrss(nomrss,outdir="data",olddata="data.1",dryrun=False):
def updateall_rss(outdir='data',moveto_olddir=False, olddata='data.1',dryrun=False):
def updateall_rss(outdir='data',moveto_olddir=False, olddata='data.1',dryrun=False,rssdays=56):
"""
Mise à jour des fichiers rss uniquement avec interogation minimale d'ADE:
Pas de rotation des données vers data.1, il reste inchangé.
......@@ -362,7 +369,7 @@ def updateall_rss(outdir='data',moveto_olddir=False, olddata='data.1',dryrun=Fal
for rss in liens_rss:
if tryADErss:
newrss=get_rss(rss,dryrun=dryrun)
newrss=get_rss(rss,dryrun=dryrun,rssdays=rssdays)
datarssfile = "%s/%s"%(outdir,rss)
if newrss != None:
print("success via ADE for %s"%rss)
......@@ -384,7 +391,7 @@ def updateall_rss(outdir='data',moveto_olddir=False, olddata='data.1',dryrun=Fal
#################################################
def main(url_rssfiles=nextcloud_rss,
external='calendars_external.json',
outdir='data', moveto_olddir=False, olddata='data.1',dryrun=False):
outdir='data', moveto_olddir=False, olddata='data.1',dryrun=False,rssdays=56):
"""
* outdir (data): peut etre vide, il recevra les calendriers et les fichiers rss pour archivage.
* data.1 doit contenir une version courante des calendriers pour garder les evenements anterieurs au contenu rss.
......@@ -401,7 +408,7 @@ def main(url_rssfiles=nextcloud_rss,
## les fichiers telecharges depuis ADE
##
updateall_rss(outdir=outdir,olddata=olddata,dryrun=dryrun)
updateall_rss(outdir=outdir,olddata=olddata,dryrun=dryrun,rssdays=rssdays)
makeical_via_rss("rss-l1sdv",titretocal1sdv, outdir=outdir, moveto_olddir=moveto_olddir,dryrun=dryrun)
makeical_via_rss("rss-l1",titretocal1, outdir=outdir, moveto_olddir=moveto_olddir,dryrun=dryrun)
......@@ -422,6 +429,9 @@ parser.add_argument('--external', type=str, default='calendars_external.json',
help='json file listing external (non ADE) ressources')
parser.add_argument('--dryrun', '-n', action='store_true',
help='dry-run, do not write files')
parser.add_argument('--rssdays', type=int, default=56,
help='rssdays: number of days to ask ADE in rss request')
if __name__ == '__main__':
args = parser.parse_args()
......@@ -429,4 +439,9 @@ if __name__ == '__main__':
main(moveto_olddir=args.moveto_olddir,
dryrun=args.dryrun,
outdir=args.outdir,
external=args.external)
external=args.external,
rssdays=args.rssdays)
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment