updated announcement download to new jvs calendar structure
This commit is contained in:
82
wkOrg/checkDownloads.py
Executable file
82
wkOrg/checkDownloads.py
Executable file
@@ -0,0 +1,82 @@
|
||||
#! /usr/bin/env python3
|
||||
|
||||
# Python Script zum testen, ob neue Ausschreibungen hinzugekommen sind, oder bereits vorhandene sich geändert haben (kein herunterladen, es wird im Downloadordner wkOrgConfig.downpath gesucht)
|
||||
|
||||
# Name und Pfad der Datenbank als Variablen
|
||||
import wkOrgConfig
|
||||
import wkOrgAssis
|
||||
|
||||
import os
|
||||
import os.path
|
||||
import sqlite3
|
||||
|
||||
# Init der Datenbankverbindung
|
||||
if os.path.isfile(wkOrgConfig.db['pathname']+wkOrgConfig.db['filename']):
|
||||
dbConn = sqlite3.connect(
|
||||
wkOrgConfig.db['pathname']+wkOrgConfig.db['filename'])
|
||||
dbConn.text_factory = str
|
||||
dbCur = dbConn.cursor()
|
||||
else:
|
||||
print("Keine Datenbank vorhanden!")
|
||||
exit(-1)
|
||||
|
||||
# Hole Liste der Dateinamen im downloadVerzeichnis
|
||||
filenames = os.listdir(wkOrgConfig.downPath)
|
||||
# print filenames
|
||||
|
||||
# Für jeden Dateinamen:
|
||||
for filename in filenames:
|
||||
# Finde alle Einträge (id, dateiname, sha256 , wkID) zu diesen Dateinamen in der downloadTabelle -> dlList
|
||||
dbCur.execute(
|
||||
'SELECT id, dateiname, sha512 , wkID FROM downloads WHERE dateiname=?', (filename, ))
|
||||
ausschr = dbCur.fetchall()
|
||||
|
||||
# Falls dlList leer: (heißt ausschreibung wurde noch nicht zugeordnet)
|
||||
if ausschr == []:
|
||||
# füge Ausschreibung zur downloadTabelle hinzu (merke dir die ID)
|
||||
ausschrID = wkOrgAssis.dbAddDownload(
|
||||
dbCur, filename, wkOrgAssis.aFilesSHA512(wkOrgConfig.downPath+filename))
|
||||
dbConn.commit()
|
||||
# füge Wettkämpfe zur wkTabelle hinzu, merke die wkIDs
|
||||
print("Ausschreibung: "+filename)
|
||||
os.system('mupdf "'+wkOrgConfig.downPath +
|
||||
filename + '" >/dev/null 2>/dev/null &')
|
||||
wkIDs = wkOrgAssis.dbAddWks(dbCur, ausschrID)
|
||||
dbConn.commit()
|
||||
# update die wkIDs in der Ausschreibung in der downloadTabelle
|
||||
dbCur.execute('UPDATE downloads SET wkID=? WHERE id=?',
|
||||
(' '.join(str(wkIDs)), ausschrID))
|
||||
dbConn.commit()
|
||||
# Sonst:
|
||||
else:
|
||||
# (auch wenn mehrere dl mit diesem Dateinamen in der
|
||||
# downloadDatenbank gefunden werden, wir nehmen immer nur den
|
||||
# ersten)
|
||||
# Falls wkID == NULL:
|
||||
if ausschr[0][3] == 'NULL':
|
||||
# füge Wettkämpfe zur wkTabelle hinzu, merke die wkIDs
|
||||
wkIDs = dbAddWks(dbCur, ausschr[0][0])
|
||||
# update die wkIDs dieser Ausschreibung
|
||||
dbCur.execute('UPDATE downloads SET wkIDs=? WHERE id=?',
|
||||
(' '.join(wkIDs), ausschr[0][0]))
|
||||
dbConn.commit()
|
||||
# Sonst:
|
||||
else:
|
||||
# Falls wkID != 0:
|
||||
if ausschr[0][3] != '0':
|
||||
# Falls sich der Hash geändert hat:
|
||||
if ausschr[0][2] != wkOrgAssis.aFilesSHA512(wkOrgConfig.downPath+filename):
|
||||
# Finde alle wkEinträge, die diese AusschreibungsID haben:
|
||||
dbCur.execute(
|
||||
'SELECT (wkId) FROM downloads WHERE dateiname=?', (filename,))
|
||||
wkListList = dbCur.fetchall()
|
||||
# Für jeden diesen Eintrag:
|
||||
for wkList in wkListList:
|
||||
# Berichtige die Wettkampfdaten
|
||||
for wk in wkList:
|
||||
print("Ups: kein dbUpdateWk")
|
||||
# wkOrgAssis.dbUpdateWk(wk)
|
||||
|
||||
# Aufräumen
|
||||
dbConn.commit()
|
||||
dbConn.close()
|
||||
Reference in New Issue
Block a user