Merge branch 'master' into infoZettel
This commit is contained in:
4
.gitmodules
vendored
4
.gitmodules
vendored
@@ -13,7 +13,3 @@
|
||||
[submodule "submodules/materialize"]
|
||||
path = submodules/materialize
|
||||
url = https://github.com/materializecss/materialize.git
|
||||
|
||||
[submodule "submodules/video.js"]
|
||||
path = submodules/video.js
|
||||
url = https://github.com/videojs/video.js.git
|
||||
|
||||
3
homepage/cwsvJudo/.gitignore
vendored
3
homepage/cwsvJudo/.gitignore
vendored
@@ -1,2 +1,5 @@
|
||||
build/*
|
||||
temp/*
|
||||
|
||||
# don't commit any secrets
|
||||
Makefile.local
|
||||
@@ -1,3 +1,7 @@
|
||||
include Makefile.local
|
||||
|
||||
CSSO = node_modules/csso-cli/bin/csso
|
||||
|
||||
RES_LIST = 64 128 256 512
|
||||
|
||||
cssFiles = $(wildcard src/css/*.css)
|
||||
@@ -46,7 +50,7 @@ build/css/cwsvJudo.css: $(cssFiles)
|
||||
# cat $^ > $@
|
||||
# cat $(cssFiles) | cleancss -o $@
|
||||
# cat $^ | ./node_modules/.bin/csso -o $@
|
||||
cat $^ | csso -o $@
|
||||
cat $^ | $(CSSO) -o $@
|
||||
|
||||
build/%.php: src/md/%.md build/yaml/%.yaml pandocTemplate/cwsvJudo.html5.pandocTemplate
|
||||
mkdir -p build
|
||||
@@ -84,7 +88,7 @@ build/.uploadMarker/%.php: build/%.php
|
||||
mkdir -p build/.uploadMarker
|
||||
curl \
|
||||
--upload-file $^ \
|
||||
--user cwsvjudo:kodokan \
|
||||
--user $(ftpUser):$(ftpPassword) \
|
||||
ftp://cwsvjudo.bplaced.net/www/pages/responsive/$(patsubst build/%.php,%.php,$^) \
|
||||
--ftp-create-dirs
|
||||
touch $@
|
||||
@@ -94,7 +98,7 @@ build/.uploadMarker/amp/%.php: build/amp/%.php
|
||||
mkdir -p build/.uploadMarker/amp
|
||||
curl \
|
||||
--upload-file $^ \
|
||||
--user cwsvjudo:kodokan \
|
||||
--user $(ftpUser):$(ftpPassword) \
|
||||
ftp://cwsvjudo.bplaced.net/www/pages/$(patsubst build/amp/%.php,amp/%.php,$^) \
|
||||
--ftp-create-dirs
|
||||
touch $@
|
||||
@@ -105,7 +109,7 @@ build/.uploadMarker/phpLib/%.php: phpLib/%.php
|
||||
mkdir -p build/.uploadMarker/phpLib/phpcount
|
||||
curl \
|
||||
--upload-file $^ \
|
||||
--user cwsvjudo:kodokan \
|
||||
--user $(ftpUser):$(ftpPassword) \
|
||||
ftp://cwsvjudo.bplaced.net/www/ressourcen/$(patsubst build/%.php,%.php,$^) \
|
||||
--ftp-create-dirs
|
||||
touch $@
|
||||
@@ -114,15 +118,7 @@ build/.uploadMarker/css/%.css: build/css/%.css
|
||||
mkdir -p build/.uploadMarker/css
|
||||
curl \
|
||||
--upload-file $^ \
|
||||
<<<<<<< HEAD
|
||||
--user cwsvjudo:kodokan \
|
||||
=======
|
||||
<<<<<<< HEAD
|
||||
--user cwsvjudo:***REMOVED*** \
|
||||
=======
|
||||
--user cwsvjudo:kodokan \
|
||||
>>>>>>> master
|
||||
>>>>>>> master
|
||||
--user $(ftpUser):$(ftpPassword) \
|
||||
ftp://cwsvjudo.bplaced.net/www/ressourcen/$(patsubst build/%,%,$^) \
|
||||
--ftp-create-dirs
|
||||
touch $@
|
||||
@@ -132,15 +128,7 @@ build/.uploadMarker/config/%: config/%
|
||||
mkdir -p build/.uploadMarker/config
|
||||
curl \
|
||||
--upload-file $^ \
|
||||
<<<<<<< HEAD
|
||||
--user cwsvjudo:kodokan \
|
||||
=======
|
||||
<<<<<<< HEAD
|
||||
--user cwsvjudo:***REMOVED*** \
|
||||
=======
|
||||
--user cwsvjudo:kodokan \
|
||||
>>>>>>> master
|
||||
>>>>>>> master
|
||||
--user $(ftpUser):$(ftpPassword) \
|
||||
ftp://cwsvjudo.bplaced.net/www/$(patsubst build/%,%,$^) \
|
||||
--ftp-create-dirs
|
||||
touch $@
|
||||
|
||||
2
homepage/cwsvJudo/Makefile.local.template
Normal file
2
homepage/cwsvJudo/Makefile.local.template
Normal file
@@ -0,0 +1,2 @@
|
||||
ftpUser = cwsvjudo
|
||||
ftpPassword = ***
|
||||
@@ -1,74 +1,79 @@
|
||||
.newsArtikel{
|
||||
width: 100%;
|
||||
background-color: #FFAE00;
|
||||
box-shadow: 0 1px 2px 0 rgba(0,0,0,.5);
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
.newsArtikel {
|
||||
width: 100%;
|
||||
background-color: #ffae00;
|
||||
box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.5);
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
.newsHeader{
|
||||
display: flex;
|
||||
align-items: stretch;
|
||||
justify-content: space-between;
|
||||
background-color: #FF8100;
|
||||
.newsHeader {
|
||||
display: flex;
|
||||
align-items: stretch;
|
||||
justify-content: space-between;
|
||||
background-color: #ff8100;
|
||||
}
|
||||
.newsDatum{
|
||||
white-space: nowrap;
|
||||
align-self: center;
|
||||
.newsDatum {
|
||||
white-space: nowrap;
|
||||
align-self: center;
|
||||
}
|
||||
.newsBetreff{
|
||||
margin: auto;
|
||||
margin: auto;
|
||||
margin-left: 1vw;
|
||||
margin-right: 1vw;
|
||||
text-align: end;
|
||||
flex-grow: 1;
|
||||
.newsBetreff {
|
||||
margin: auto;
|
||||
margin: auto;
|
||||
margin-left: 1vw;
|
||||
margin-right: 1vw;
|
||||
text-align: end;
|
||||
flex-grow: 1;
|
||||
}
|
||||
|
||||
.newsBody{
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
.newsBody {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.newsBody > img{
|
||||
flex: 1;
|
||||
.newsBody > img {
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
@media (min-width: 1280px) {
|
||||
.newsBody{
|
||||
flex-direction: row;
|
||||
}
|
||||
.newsBody {
|
||||
flex-direction: row;
|
||||
}
|
||||
}
|
||||
|
||||
.newsPromoImage{
|
||||
/*
|
||||
.newsPromoImage {
|
||||
width: 33%;
|
||||
/*
|
||||
* float: left;
|
||||
*/
|
||||
}
|
||||
|
||||
.newsText{
|
||||
flex: 3;
|
||||
margin: 1vw;
|
||||
.newsText {
|
||||
flex: 3;
|
||||
margin: 1vw;
|
||||
}
|
||||
.newsText a {
|
||||
float: none;
|
||||
float: none;
|
||||
}
|
||||
.newsText amp-img,
|
||||
.newsText img{
|
||||
max-width: 100%;
|
||||
height: auto;
|
||||
display: block;
|
||||
margin: auto;
|
||||
box-shadow: 0 1px 2px 0 rgba(0,0,0,.5);
|
||||
.newsText img {
|
||||
max-width: 100%;
|
||||
height: auto;
|
||||
display: block;
|
||||
margin: auto;
|
||||
box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.5);
|
||||
}
|
||||
.newsText video {
|
||||
width: 100%;
|
||||
height: auto;
|
||||
}
|
||||
|
||||
.newsText video,
|
||||
.newsText amp-video{
|
||||
max-width: 100%;
|
||||
.newsText amp-video {
|
||||
max-width: 100%;
|
||||
}
|
||||
.newsFooter{
|
||||
background-color: #FF8100;
|
||||
.newsFooter {
|
||||
background-color: #ff8100;
|
||||
}
|
||||
.newsAutor::before{
|
||||
content: "Msg\0000a0";
|
||||
.newsAutor::before {
|
||||
content: "Msg\0000a0";
|
||||
}
|
||||
|
||||
6
mitglieder/pässe.2023/bestellungen-2023.md
Normal file
6
mitglieder/pässe.2023/bestellungen-2023.md
Normal file
@@ -0,0 +1,6 @@
|
||||
| Name | Vorname | Geb.dat. | Geb.ort | Nat. | Passbild | bestellt am | Passnummer |
|
||||
| :------- | :------ | :--------- | :---------- | :--------- | :------- | ----------: | ---------: |
|
||||
| Maiatska | Mariia | 2015-02-24 | Tschernihiw | ukrainisch | [x] | | |
|
||||
| Kraft | Nataly | 2013-10-11 | Chemnitz | deutsch | [x] | | |
|
||||
| Kraft | Alesya | 2015-03-14 | Chemnitz | deutsch | [x] | | |
|
||||
| Böhme | Hanna | 2016-01-26 | Chemnitz | deutsch | [x] | | |
|
||||
BIN
mitglieder/pässe.2023/bilder/Alesya-Kraft-2015-03-14-DEU.jpg
Normal file
BIN
mitglieder/pässe.2023/bilder/Alesya-Kraft-2015-03-14-DEU.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 55 KiB |
BIN
mitglieder/pässe.2023/bilder/Hanna- Boehme-2016-01-26-DEU.jpg
Normal file
BIN
mitglieder/pässe.2023/bilder/Hanna- Boehme-2016-01-26-DEU.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 101 KiB |
BIN
mitglieder/pässe.2023/bilder/Mariia-Maiatska-2015-02-24-UKR.jpg
Normal file
BIN
mitglieder/pässe.2023/bilder/Mariia-Maiatska-2015-02-24-UKR.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 19 KiB |
BIN
mitglieder/pässe.2023/bilder/Nataly-Kraft-2013-10-11-DEU.jpg
Normal file
BIN
mitglieder/pässe.2023/bilder/Nataly-Kraft-2013-10-11-DEU.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 54 KiB |
@@ -1,14 +1,17 @@
|
||||
include passwords
|
||||
|
||||
.PHONY: updateSubmodules
|
||||
updateSubmodules:
|
||||
updateSubmodules: checkoutSubmodulesDefaultBranches
|
||||
git submodule foreach git pull
|
||||
|
||||
.PHONY:
|
||||
checkoutSubmodulesDefaultBranches:
|
||||
git -C lite-youtube-embed checkout master
|
||||
git -C materialize checkout main
|
||||
git -C parsedown checkout master
|
||||
git -C spyc checkout master
|
||||
git -C zopfli checkout master
|
||||
|
||||
git submodule foreach git pull
|
||||
|
||||
.PHONY: buildMaterialize
|
||||
buildMaterialize: updateSubmodules
|
||||
|
||||
Submodule submodules/video.js deleted from 53cbfc6222
1
submodules/wkOrg
Submodule
1
submodules/wkOrg
Submodule
Submodule submodules/wkOrg added at 41fe0c5a45
14
wkOrg/Makefile
Executable file
14
wkOrg/Makefile
Executable file
@@ -0,0 +1,14 @@
|
||||
.PHONY: all
|
||||
all: dlCheck
|
||||
|
||||
# Download der Ausschreibungen und ablegen im Downloadordner
|
||||
.PHONY: download
|
||||
download:
|
||||
python wkScraper-JvsCal.py
|
||||
|
||||
.PHONY: dlCheck
|
||||
dlCheck: download
|
||||
./newNoticeCheck.py
|
||||
|
||||
.PHONY: clean
|
||||
clean:
|
||||
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()
|
||||
55
wkOrg/getCSV.py
Executable file
55
wkOrg/getCSV.py
Executable file
@@ -0,0 +1,55 @@
|
||||
#! /usr/bin/env python3
|
||||
|
||||
# Python Script zum exportieren der anstehenden Wettkämpfe als cvs
|
||||
# und Kopieren der Ausschreibungen in das zugehörige Verzeichnis zur
|
||||
# Synchro mit dem online download ordner
|
||||
|
||||
# Name und Pfad der Datenbank als Variablen
|
||||
import wkOrgConfig
|
||||
import wkOrgAssis
|
||||
|
||||
import os
|
||||
import os.path
|
||||
import sqlite3
|
||||
import time
|
||||
import shutil
|
||||
import dateutil.parser
|
||||
import sys
|
||||
|
||||
# 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)
|
||||
|
||||
# Abfrage aller anstehenden Wettkämpfe
|
||||
dbCur.execute('SELECT id FROM wk WHERE datum>=?', (time.strftime("%Y-%m-%d"), ) )
|
||||
wkIds = dbCur.fetchall()
|
||||
|
||||
for wkId in wkIds:
|
||||
dbCur.execute('SELECT name, datum, ak, adrID, dlID FROM wk WHERE id=?', (wkId[0], ) )
|
||||
wkInfos = dbCur.fetchall()
|
||||
dbCur.execute('SELECT dateiname FROM downloads WHERE id=?', (wkInfos[0][4], ))
|
||||
ausschr = dbCur.fetchall()
|
||||
dbCur.execute('SELECT ort, lat, lon FROM adressen WHERE id=?', (wkInfos[0][3], ))
|
||||
addr = dbCur.fetchall()
|
||||
if not addr:
|
||||
addr = [["","",""]]
|
||||
|
||||
|
||||
|
||||
# Schreibweisen korrigieren
|
||||
ausschrFilename = ausschr[0][0]
|
||||
ausschrFilename = ausschrFilename.replace(" ", "%20")
|
||||
|
||||
sys.stderr.write("wkInfos: "+str(wkInfos)+"\n")
|
||||
# Reihenfolge der Spalten auf dem Server:
|
||||
# lfdeNr Datum Veranstaltung Altersklassen Ort Ausschreibung Routenplaner
|
||||
|
||||
print ("0," + wkInfos[0][1] + "," + wkInfos[0][0] + "," + wkInfos[0][2] + "," + addr[0][0] + "," + "/downloads/Ausschreibungen/Ausschreibungen." + str(dateutil.parser.parse(wkInfos[0][1]).year) + "/" + ausschrFilename + "," + "http://www.openstreetmap.org/directions?&route=50.80722%2C12.88236%3B" + addr[0][1] + "%2C" + addr[0][2] + ",," )
|
||||
if not os.path.exists('Ausschreibungen/Ausschreibungen.'+str(dateutil.parser.parse(wkInfos[0][1]).year)):
|
||||
os.makedirs('Ausschreibungen/Ausschreibungen.'+str(dateutil.parser.parse(wkInfos[0][1]).year))
|
||||
shutil.copyfile('download/'+ausschr[0][0], 'Ausschreibungen/Ausschreibungen.'+str(dateutil.parser.parse(wkInfos[0][1]).year)+'/'+ausschr[0][0])
|
||||
41
wkOrg/newNoticeCheck.py
Executable file
41
wkOrg/newNoticeCheck.py
Executable file
@@ -0,0 +1,41 @@
|
||||
#! /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 == []:
|
||||
print("Neue Auschreibung: {}".format(filename))
|
||||
# Sonst:
|
||||
else:
|
||||
continue
|
||||
|
||||
# Aufräumen
|
||||
dbConn.commit()
|
||||
dbConn.close()
|
||||
40
wkOrg/readMe.md
Executable file
40
wkOrg/readMe.md
Executable file
@@ -0,0 +1,40 @@
|
||||
Python Scripts zur Verwaltung von Wettkampfterminen in einer SQLite Datenbank
|
||||
|
||||
Die einzelnen "Programme"
|
||||
- download.sh
|
||||
- Skript zum Herunterladen der Ausschreibungen
|
||||
- checkDownloads.py
|
||||
- sucht, welche Downloaddateien noch nicht in der Datenbank erfasst sind, und lässt sie den Benutzer hinzufügen (oder zum ignorieren vormerken)
|
||||
- getCVS.py
|
||||
- gibt die kommenden Wettkämpfe als csv aus zum Import in die Onlinedatenbank
|
||||
- die offline Datenbank kennt nicht:
|
||||
- die laufenden Nummern der Wettkämpfe in der Onlinedatenbank
|
||||
- den Inhalt der Onlinedatenbank
|
||||
Deshalb müssen:
|
||||
- die Reihenfolge der Spaltennamen muss beim Import in phpmyadmin manuell mit angegeben werden (Datum, Veranstaltung, Altersklassen, Ort, Ausschreibung, Routenplaner)
|
||||
- schon in der Onlinedatenbank vorhandene Wettkämpfe entfernt werden (wird auch so bleiben müssen, bis ich eine 'Synchronisation' der beiden Datenbanken hinbekomme)
|
||||
|
||||
Datenbankstruktur:
|
||||
|
||||
Tabellen:
|
||||
- downloads (Tabelle für alle Ausschreibungen im Downloadverzeichnis
|
||||
- id INTEGER PRIMARY KEY ASC
|
||||
- dateiname TEXT
|
||||
- sha256 TEXT
|
||||
- wkID TEXT (die IDs der Wettkämpfe dieser Ausschreibung per Whitespace getrennt)
|
||||
- adressen (Tabelle für die Addressen der Wettkampforte)
|
||||
- id INTEGER PRIMARY KEY ASC
|
||||
- verein TEXT
|
||||
- ort TEXT
|
||||
- plz TEXT
|
||||
- straße TEXT
|
||||
- hausnr TEXT
|
||||
- lat TEXT
|
||||
- lon TEXT
|
||||
- wk (Tabelle für die Wettkämpfe)
|
||||
- id INTEGER PRIMARY KEY ASC
|
||||
- name TEXT
|
||||
- datum TEXT
|
||||
- ak TEXT
|
||||
- adrID TEXT
|
||||
- ausschrID TEXT (id der ausschreibung in der downloadliste zum Wettkampf)
|
||||
1
wkOrg/wkScraper-JvsCal.py
Symbolic link
1
wkOrg/wkScraper-JvsCal.py
Symbolic link
@@ -0,0 +1 @@
|
||||
../submodules/wkOrg/src/wkScraper/wkScraper-JvsCal.py
|
||||
Reference in New Issue
Block a user