From a1944c988597e57f27fa9c6da4e19dc8f4332126 Mon Sep 17 00:00:00 2001 From: marko Date: Wed, 31 Dec 2025 14:08:30 +0100 Subject: [PATCH] moved 2025 to archive --- homepage/cwsvJudo/Makefile.heliohost | 33 ++ .../cwsvJudo/configs/heliohost/config.json | 17 + homepage/cwsvJudo/docker-compose.yaml | 63 ++++ homepage/cwsvJudo/scripts/upload-heliohost | 14 + .../newsletter/KW01-DraußenTraining.md | 0 .../archiv.2025}/newsletter/KW02.md | 0 .../newsletter/KW03-Trainingsverlegung.md | 0 .../newsletter/KW04-NoSwimming.md | 0 .../newsletter/KW05-GebuehrenUpdate.md | 0 .../archiv.2025}/newsletter/KW07-SV.md | 0 .../newsletter/KW11-DigitalerPassDsvgo.md | 0 .../newsletter/KW11-Kyutraining.md | 0 .../newsletter/KW12-Kyutraining.md | 0 .../KW14-Auswärtsspiel-verschoben.md | 0 .../newsletter/KW14-Auswärtsspiel.md | 0 .../newsletter/KW16-Osterferien.md | 0 .../newsletter/KW18-Auswärtsrandori.md | 0 .../newsletter/KW19-2-Sommerlager.md | 0 .../newsletter/KW19-upcomming-events.md | 0 .../archiv.2025}/newsletter/KW20-SV.md | 0 .../newsletter/KW21-Restprogramm.md | 0 .../archiv.2025}/newsletter/KW25-Safari.md | 0 .../newsletter/KW26-JudoSafari-LastInfos.md | 0 .../newsletter/KW27-Sommerferien.md | 0 .../newsletter/KW27-Sommerlager-lastInfos.md | 0 .../newsletter/KW27-SommerlagerFahrten.md | 0 .../newsletter/KW28-JudoSafari-Ergebnisse.md | 0 .../newsletter/KW38-SommerlagerBilder.md | 0 .../newsletter/KW38-Trainingsverlung.md | 0 .../newsletter/KW40-Herbstferien.md | 0 .../KW46-RKP-und-Nikolausrandori.md | 33 ++ .../KW49-NikolausrandoriRochlitz.md | 39 ++ .../newsletter/KW51-JahrendeZettel.md | 38 ++ .../wkZettel/mediasharing-fkr.yaml | 0 .../wkZettel/mediasharing-judo-safari.yaml | 0 .../wkZettel/mediasharing-nikolaus-2025.yaml | 3 + .../wkZettel/mediasharing-rkp-2025.yaml | 3 + .../wkZettel/mediasharing-stiefel-2025.yaml | 0 infoZettelOrg/eMailReceiverLists/active.json | 348 ++++++++++++------ infoZettelOrg/tools/sendNewsletter.py | 123 ++++--- infoZettelOrg/wkZettel/mediasharing-fkr.md | 12 - .../wkZettel/mediasharing-judo-safari.md | 12 - 42 files changed, 542 insertions(+), 196 deletions(-) create mode 100644 homepage/cwsvJudo/configs/heliohost/config.json create mode 100644 homepage/cwsvJudo/docker-compose.yaml create mode 100644 homepage/cwsvJudo/scripts/upload-heliohost rename infoZettelOrg/{ => archiv/archiv.2025}/newsletter/KW01-DraußenTraining.md (100%) rename infoZettelOrg/{ => archiv/archiv.2025}/newsletter/KW02.md (100%) rename infoZettelOrg/{ => archiv/archiv.2025}/newsletter/KW03-Trainingsverlegung.md (100%) rename infoZettelOrg/{ => archiv/archiv.2025}/newsletter/KW04-NoSwimming.md (100%) rename infoZettelOrg/{ => archiv/archiv.2025}/newsletter/KW05-GebuehrenUpdate.md (100%) rename infoZettelOrg/{ => archiv/archiv.2025}/newsletter/KW07-SV.md (100%) rename infoZettelOrg/{ => archiv/archiv.2025}/newsletter/KW11-DigitalerPassDsvgo.md (100%) rename infoZettelOrg/{ => archiv/archiv.2025}/newsletter/KW11-Kyutraining.md (100%) rename infoZettelOrg/{ => archiv/archiv.2025}/newsletter/KW12-Kyutraining.md (100%) rename infoZettelOrg/{ => archiv/archiv.2025}/newsletter/KW14-Auswärtsspiel-verschoben.md (100%) rename infoZettelOrg/{ => archiv/archiv.2025}/newsletter/KW14-Auswärtsspiel.md (100%) rename infoZettelOrg/{ => archiv/archiv.2025}/newsletter/KW16-Osterferien.md (100%) rename infoZettelOrg/{ => archiv/archiv.2025}/newsletter/KW18-Auswärtsrandori.md (100%) rename infoZettelOrg/{ => archiv/archiv.2025}/newsletter/KW19-2-Sommerlager.md (100%) rename infoZettelOrg/{ => archiv/archiv.2025}/newsletter/KW19-upcomming-events.md (100%) rename infoZettelOrg/{ => archiv/archiv.2025}/newsletter/KW20-SV.md (100%) rename infoZettelOrg/{ => archiv/archiv.2025}/newsletter/KW21-Restprogramm.md (100%) rename infoZettelOrg/{ => archiv/archiv.2025}/newsletter/KW25-Safari.md (100%) rename infoZettelOrg/{ => archiv/archiv.2025}/newsletter/KW26-JudoSafari-LastInfos.md (100%) rename infoZettelOrg/{ => archiv/archiv.2025}/newsletter/KW27-Sommerferien.md (100%) rename infoZettelOrg/{ => archiv/archiv.2025}/newsletter/KW27-Sommerlager-lastInfos.md (100%) rename infoZettelOrg/{ => archiv/archiv.2025}/newsletter/KW27-SommerlagerFahrten.md (100%) rename infoZettelOrg/{ => archiv/archiv.2025}/newsletter/KW28-JudoSafari-Ergebnisse.md (100%) rename infoZettelOrg/{ => archiv/archiv.2025}/newsletter/KW38-SommerlagerBilder.md (100%) rename infoZettelOrg/{ => archiv/archiv.2025}/newsletter/KW38-Trainingsverlung.md (100%) rename infoZettelOrg/{ => archiv/archiv.2025}/newsletter/KW40-Herbstferien.md (100%) create mode 100644 infoZettelOrg/archiv/archiv.2025/newsletter/KW46-RKP-und-Nikolausrandori.md create mode 100644 infoZettelOrg/archiv/archiv.2025/newsletter/KW49-NikolausrandoriRochlitz.md create mode 100644 infoZettelOrg/archiv/archiv.2025/newsletter/KW51-JahrendeZettel.md rename infoZettelOrg/{ => archiv/archiv.2025}/wkZettel/mediasharing-fkr.yaml (100%) rename infoZettelOrg/{ => archiv/archiv.2025}/wkZettel/mediasharing-judo-safari.yaml (100%) create mode 100644 infoZettelOrg/archiv/archiv.2025/wkZettel/mediasharing-nikolaus-2025.yaml create mode 100644 infoZettelOrg/archiv/archiv.2025/wkZettel/mediasharing-rkp-2025.yaml rename infoZettelOrg/{ => archiv/archiv.2025}/wkZettel/mediasharing-stiefel-2025.yaml (100%) delete mode 100644 infoZettelOrg/wkZettel/mediasharing-fkr.md delete mode 100644 infoZettelOrg/wkZettel/mediasharing-judo-safari.md diff --git a/homepage/cwsvJudo/Makefile.heliohost b/homepage/cwsvJudo/Makefile.heliohost index 819dd2e..fa68caa 100644 --- a/homepage/cwsvJudo/Makefile.heliohost +++ b/homepage/cwsvJudo/Makefile.heliohost @@ -125,7 +125,40 @@ dist: all mkdir -p $(distDir)/httpdocs/ressourcen/fonts find ./res/fonts -type f -exec $(LN) {} $(distDir)/httpdocs/ressourcen/fonts \; +<<<<<<< Updated upstream # htaccess +======= +# sitemap + $(LN) ./sitemaps/cwsvjudo-de.xml $(distWebRoot)/sitemap.xml + +# @todo shouldn't be used any more + $(LN) configs/local/db.config.php $(distDir)/.local/db.config.php + +# participo + + mkdir -p $(participoTarget) + for dir in api api/inc config css images lib lib/participoLib local shared sidenav; do mkdir $(participoTarget)/$$dir; done; + $(LN) $(participoSource)/.htaccess $(participoTarget) + $(LN) $(participoSource)/api/*.php $(participoTarget)/api/ + $(LN) $(participoSource)/api/inc/*.php $(participoTarget)/api/inc + $(LN) $(participoSource)/*.php $(participoTarget) + $(LN) $(participoSource)/*.js $(participoTarget) + $(LN) $(participoSource)/css/*.css $(participoTarget)/css/ + $(LN) $(participoSource)/images/*.svg $(participoTarget)/images/ + for dir in lib lib/participoLib shared sidenav; do $(LN) $(participoSource)/$$dir/*.php $(participoTarget)/$$dir; done; + # @todo Make bash call work in Makefile + # ./scripts/deep-directory-linking $(participoSource)/markdown $(participoTarget)/markdown + cp -r $(participoSource)/markdown/ $(participoTarget)/ + # @todo check why a linked file isn't validating as php function `is_file` proberly. + cp -r $(participoSource)/videos/ $(participoTarget)/ + + # library + # - games + # - @todo decide about a directory structure (libary of exercices) + mkdir $(distDir)/games + $(LN) ./src/games/*.md $(distDir)/games/ + # htaccess +>>>>>>> Stashed changes $(LN) ./src/htaccess/heliohost/.htaccess $(distDir)/httpdocs/.htaccess $(LN) ./src/htaccess/heliohost/pages/responsive/.htaccess $(distDir)/httpdocs/pages/responsive/.htaccess diff --git a/homepage/cwsvJudo/configs/heliohost/config.json b/homepage/cwsvJudo/configs/heliohost/config.json new file mode 100644 index 0000000..d23eb5f --- /dev/null +++ b/homepage/cwsvJudo/configs/heliohost/config.json @@ -0,0 +1,17 @@ +{ + "cwsvJudo": { + "http": { + "serve_dir": "httpdocs" + }, + "db": { + "host": "localhost", + "name": "cwsvjudo_main", + "user": "cwsvjudo_marko", + "dbCharset": "ISO-8859-1", + "outCharset": "UTF-8" + }, + "paths": { + "wallpapers": "/ressourcen/graphiken/wallpapers" + } + } +} diff --git a/homepage/cwsvJudo/docker-compose.yaml b/homepage/cwsvJudo/docker-compose.yaml new file mode 100644 index 0000000..7cebd43 --- /dev/null +++ b/homepage/cwsvJudo/docker-compose.yaml @@ -0,0 +1,63 @@ +version: "3.3" +services: + web: + # check the php version you need for your project + # image: php:8.2-apache + build: + context: . + dockerfile: PHP.dockerfile + network: host + ports: + # this line maps your pc port to the container port + - "8080:80" + depends_on: + # this line links this container to the db container + - db + volumes: + # this line maps the content of ./html in your pc to the /var/www/html of the container + - ./build/dist/heliohost/httpdocs:/var/www/html + - ./build/dist/heliohost/pages:/var/www/pages + - ./build/dist/heliohost/games:/var/www/games + - ./build/dist/heliohost/shared:/var/www/shared + - ./build/dist/heliohost/libs:/var/www/libs + - ./configs/localDocker/config.json:/var/www/.local/config.json + - ./configs/localDocker/secrets.json:/var/www/.local/secrets.json + db: + # check the mysql version you need for your project + image: mariadb:latest + restart: always + environment: + MARIADB_USER: "cwsvjudo_marko" + MARIADB_DATABASE: "cwsvjudo_main" + MARIADB_ROOT_PASSWORD_FILE: /run/secrets/db_root_password + MARIADB_PASSWORD_FILE: /run/secrets/db_password + MARIADB_TCP_PORT: "3306" + volumes: + # this line maps the content of ./mysql_data in your pc to the /var/lib/mysql of the container + - mysqldata:/var/lib/mysql + - ./cwsvjudo.sql:/docker-entrypoint-initdb.d/cwsvjudo.sql + secrets: + - db_root_password + - db_password + # phpmyadmin + phpmyadmin: + image: phpmyadmin:latest + restart: always + depends_on: + - db + - web + ports: + - 8081:80 + environment: + # name of the host is the name of the db service started above! Why? I don't know! + - PMA_HOST=db + - PMA_PORT=3306 +volumes: + # data storage for the db + mysqldata: {} + +secrets: + db_root_password: + file: db_root_password.txt + db_password: + file: db_password.txt diff --git a/homepage/cwsvJudo/scripts/upload-heliohost b/homepage/cwsvJudo/scripts/upload-heliohost new file mode 100644 index 0000000..966ef04 --- /dev/null +++ b/homepage/cwsvJudo/scripts/upload-heliohost @@ -0,0 +1,14 @@ +#! /usr/bin/env bash + +open cwsvjudo.de +user cwsvjudo CTI/eiT4RYe6?ac5 +# @todo enable ssl check +set ssl:verify-certificate no +set ftp:ssl-allow off +# upload: +mirror --only-newer --ignore-time --verbose --continue --parallel=8 --reverse ./build/dist/heliohost / +put configs/heliohost/config.json -o .local/config.json +put configs/heliohost/secrets.json -o .local/secrets.json +put configs/heliohost/pages.config.inc.php -o httpdocs/pages/responsive/config.php +put configs/heliohost/participo/config.php -o httpdocs/participo/config.php +put configs/heliohost/participo/api/config.php -o httpdocs/participo/api/config.php diff --git a/infoZettelOrg/newsletter/KW01-DraußenTraining.md b/infoZettelOrg/archiv/archiv.2025/newsletter/KW01-DraußenTraining.md similarity index 100% rename from infoZettelOrg/newsletter/KW01-DraußenTraining.md rename to infoZettelOrg/archiv/archiv.2025/newsletter/KW01-DraußenTraining.md diff --git a/infoZettelOrg/newsletter/KW02.md b/infoZettelOrg/archiv/archiv.2025/newsletter/KW02.md similarity index 100% rename from infoZettelOrg/newsletter/KW02.md rename to infoZettelOrg/archiv/archiv.2025/newsletter/KW02.md diff --git a/infoZettelOrg/newsletter/KW03-Trainingsverlegung.md b/infoZettelOrg/archiv/archiv.2025/newsletter/KW03-Trainingsverlegung.md similarity index 100% rename from infoZettelOrg/newsletter/KW03-Trainingsverlegung.md rename to infoZettelOrg/archiv/archiv.2025/newsletter/KW03-Trainingsverlegung.md diff --git a/infoZettelOrg/newsletter/KW04-NoSwimming.md b/infoZettelOrg/archiv/archiv.2025/newsletter/KW04-NoSwimming.md similarity index 100% rename from infoZettelOrg/newsletter/KW04-NoSwimming.md rename to infoZettelOrg/archiv/archiv.2025/newsletter/KW04-NoSwimming.md diff --git a/infoZettelOrg/newsletter/KW05-GebuehrenUpdate.md b/infoZettelOrg/archiv/archiv.2025/newsletter/KW05-GebuehrenUpdate.md similarity index 100% rename from infoZettelOrg/newsletter/KW05-GebuehrenUpdate.md rename to infoZettelOrg/archiv/archiv.2025/newsletter/KW05-GebuehrenUpdate.md diff --git a/infoZettelOrg/newsletter/KW07-SV.md b/infoZettelOrg/archiv/archiv.2025/newsletter/KW07-SV.md similarity index 100% rename from infoZettelOrg/newsletter/KW07-SV.md rename to infoZettelOrg/archiv/archiv.2025/newsletter/KW07-SV.md diff --git a/infoZettelOrg/newsletter/KW11-DigitalerPassDsvgo.md b/infoZettelOrg/archiv/archiv.2025/newsletter/KW11-DigitalerPassDsvgo.md similarity index 100% rename from infoZettelOrg/newsletter/KW11-DigitalerPassDsvgo.md rename to infoZettelOrg/archiv/archiv.2025/newsletter/KW11-DigitalerPassDsvgo.md diff --git a/infoZettelOrg/newsletter/KW11-Kyutraining.md b/infoZettelOrg/archiv/archiv.2025/newsletter/KW11-Kyutraining.md similarity index 100% rename from infoZettelOrg/newsletter/KW11-Kyutraining.md rename to infoZettelOrg/archiv/archiv.2025/newsletter/KW11-Kyutraining.md diff --git a/infoZettelOrg/newsletter/KW12-Kyutraining.md b/infoZettelOrg/archiv/archiv.2025/newsletter/KW12-Kyutraining.md similarity index 100% rename from infoZettelOrg/newsletter/KW12-Kyutraining.md rename to infoZettelOrg/archiv/archiv.2025/newsletter/KW12-Kyutraining.md diff --git a/infoZettelOrg/newsletter/KW14-Auswärtsspiel-verschoben.md b/infoZettelOrg/archiv/archiv.2025/newsletter/KW14-Auswärtsspiel-verschoben.md similarity index 100% rename from infoZettelOrg/newsletter/KW14-Auswärtsspiel-verschoben.md rename to infoZettelOrg/archiv/archiv.2025/newsletter/KW14-Auswärtsspiel-verschoben.md diff --git a/infoZettelOrg/newsletter/KW14-Auswärtsspiel.md b/infoZettelOrg/archiv/archiv.2025/newsletter/KW14-Auswärtsspiel.md similarity index 100% rename from infoZettelOrg/newsletter/KW14-Auswärtsspiel.md rename to infoZettelOrg/archiv/archiv.2025/newsletter/KW14-Auswärtsspiel.md diff --git a/infoZettelOrg/newsletter/KW16-Osterferien.md b/infoZettelOrg/archiv/archiv.2025/newsletter/KW16-Osterferien.md similarity index 100% rename from infoZettelOrg/newsletter/KW16-Osterferien.md rename to infoZettelOrg/archiv/archiv.2025/newsletter/KW16-Osterferien.md diff --git a/infoZettelOrg/newsletter/KW18-Auswärtsrandori.md b/infoZettelOrg/archiv/archiv.2025/newsletter/KW18-Auswärtsrandori.md similarity index 100% rename from infoZettelOrg/newsletter/KW18-Auswärtsrandori.md rename to infoZettelOrg/archiv/archiv.2025/newsletter/KW18-Auswärtsrandori.md diff --git a/infoZettelOrg/newsletter/KW19-2-Sommerlager.md b/infoZettelOrg/archiv/archiv.2025/newsletter/KW19-2-Sommerlager.md similarity index 100% rename from infoZettelOrg/newsletter/KW19-2-Sommerlager.md rename to infoZettelOrg/archiv/archiv.2025/newsletter/KW19-2-Sommerlager.md diff --git a/infoZettelOrg/newsletter/KW19-upcomming-events.md b/infoZettelOrg/archiv/archiv.2025/newsletter/KW19-upcomming-events.md similarity index 100% rename from infoZettelOrg/newsletter/KW19-upcomming-events.md rename to infoZettelOrg/archiv/archiv.2025/newsletter/KW19-upcomming-events.md diff --git a/infoZettelOrg/newsletter/KW20-SV.md b/infoZettelOrg/archiv/archiv.2025/newsletter/KW20-SV.md similarity index 100% rename from infoZettelOrg/newsletter/KW20-SV.md rename to infoZettelOrg/archiv/archiv.2025/newsletter/KW20-SV.md diff --git a/infoZettelOrg/newsletter/KW21-Restprogramm.md b/infoZettelOrg/archiv/archiv.2025/newsletter/KW21-Restprogramm.md similarity index 100% rename from infoZettelOrg/newsletter/KW21-Restprogramm.md rename to infoZettelOrg/archiv/archiv.2025/newsletter/KW21-Restprogramm.md diff --git a/infoZettelOrg/newsletter/KW25-Safari.md b/infoZettelOrg/archiv/archiv.2025/newsletter/KW25-Safari.md similarity index 100% rename from infoZettelOrg/newsletter/KW25-Safari.md rename to infoZettelOrg/archiv/archiv.2025/newsletter/KW25-Safari.md diff --git a/infoZettelOrg/newsletter/KW26-JudoSafari-LastInfos.md b/infoZettelOrg/archiv/archiv.2025/newsletter/KW26-JudoSafari-LastInfos.md similarity index 100% rename from infoZettelOrg/newsletter/KW26-JudoSafari-LastInfos.md rename to infoZettelOrg/archiv/archiv.2025/newsletter/KW26-JudoSafari-LastInfos.md diff --git a/infoZettelOrg/newsletter/KW27-Sommerferien.md b/infoZettelOrg/archiv/archiv.2025/newsletter/KW27-Sommerferien.md similarity index 100% rename from infoZettelOrg/newsletter/KW27-Sommerferien.md rename to infoZettelOrg/archiv/archiv.2025/newsletter/KW27-Sommerferien.md diff --git a/infoZettelOrg/newsletter/KW27-Sommerlager-lastInfos.md b/infoZettelOrg/archiv/archiv.2025/newsletter/KW27-Sommerlager-lastInfos.md similarity index 100% rename from infoZettelOrg/newsletter/KW27-Sommerlager-lastInfos.md rename to infoZettelOrg/archiv/archiv.2025/newsletter/KW27-Sommerlager-lastInfos.md diff --git a/infoZettelOrg/newsletter/KW27-SommerlagerFahrten.md b/infoZettelOrg/archiv/archiv.2025/newsletter/KW27-SommerlagerFahrten.md similarity index 100% rename from infoZettelOrg/newsletter/KW27-SommerlagerFahrten.md rename to infoZettelOrg/archiv/archiv.2025/newsletter/KW27-SommerlagerFahrten.md diff --git a/infoZettelOrg/newsletter/KW28-JudoSafari-Ergebnisse.md b/infoZettelOrg/archiv/archiv.2025/newsletter/KW28-JudoSafari-Ergebnisse.md similarity index 100% rename from infoZettelOrg/newsletter/KW28-JudoSafari-Ergebnisse.md rename to infoZettelOrg/archiv/archiv.2025/newsletter/KW28-JudoSafari-Ergebnisse.md diff --git a/infoZettelOrg/newsletter/KW38-SommerlagerBilder.md b/infoZettelOrg/archiv/archiv.2025/newsletter/KW38-SommerlagerBilder.md similarity index 100% rename from infoZettelOrg/newsletter/KW38-SommerlagerBilder.md rename to infoZettelOrg/archiv/archiv.2025/newsletter/KW38-SommerlagerBilder.md diff --git a/infoZettelOrg/newsletter/KW38-Trainingsverlung.md b/infoZettelOrg/archiv/archiv.2025/newsletter/KW38-Trainingsverlung.md similarity index 100% rename from infoZettelOrg/newsletter/KW38-Trainingsverlung.md rename to infoZettelOrg/archiv/archiv.2025/newsletter/KW38-Trainingsverlung.md diff --git a/infoZettelOrg/newsletter/KW40-Herbstferien.md b/infoZettelOrg/archiv/archiv.2025/newsletter/KW40-Herbstferien.md similarity index 100% rename from infoZettelOrg/newsletter/KW40-Herbstferien.md rename to infoZettelOrg/archiv/archiv.2025/newsletter/KW40-Herbstferien.md diff --git a/infoZettelOrg/archiv/archiv.2025/newsletter/KW46-RKP-und-Nikolausrandori.md b/infoZettelOrg/archiv/archiv.2025/newsletter/KW46-RKP-und-Nikolausrandori.md new file mode 100644 index 0000000..12757ca --- /dev/null +++ b/infoZettelOrg/archiv/archiv.2025/newsletter/KW46-RKP-und-Nikolausrandori.md @@ -0,0 +1,33 @@ +--- +title: (Korrektur) Räucherkerzenpokal und Nikolausrandori +--- + +*In der letzten Mail haben leider die Links nicht richtig funktioniert! Deshalb hier dieselbe Mail nochmal mit funktionierenden Links* + +Hallo liebe Judoka, +hallo liebe Eltern! + +Die Adventszeit hat es in sich: + +## [Räucherkerzenpokal 2025-11-22][RKP] + +Die Teilnehmer für den Räucherkerzenpokal geben mir bitte Bescheid, ob für die Anreise noch Mitfahrplätze gebraucht werden, oder auch zur Verfügung gestellt werden können. Vielleicht können wir ein wenig Carpooling betreiben, damit nicht jeder in einem einzelnen Auto fahren muss. + +## [Nikolausrandori][Nikolausrandori] + +Für den 5.12. (Freitag!) sind wir nach Rochlitz zu einem kleinem gemeinsamen Randori eingeladen worden. Das ganze wird anstelle des üblichen Trainings in Rochlitz stattfinden. Neben den [Teilnehmern][Nikolausrandori] suche ich hier dann auch nach Unterstützung in Form von Fahrern, die helfen könnten uns alle nach Rochlitz zu bringen. Bitte gebt mir Bescheid, ob ihr helfen könnt. + +## [Nikolausturnier 2025-12-06][Nikolausturnier] + +Am 06.12. danach gibt es dann auch gleich das Nikolausturnier für die U9/U11. Bitte [tragt euch dafür ein][Nikolausturnier]. + +## [LionsCup 2025-11-30][LionsCup] + +Am 30.11. (Sonntag!) wäre dann für die U13 die Gelegenheit mal gemeinsam mit der U11 und U9 in Leipzig anzutreten. Auch hier [schreibt euch bitte im Planer][LionsCup] ein. + +MsG marko + +[Nikolausrandori]: https://cwsvjudo.de/participo/event?eventId=257 +[RKP]: https://cwsvjudo.de/participo/event?eventId=254 +[LionsCup]: https://cwsvjudo.de/participo/event?eventId=256 +[Nikolausturnier]: https://cwsvjudo.de/participo/event?eventId=245 diff --git a/infoZettelOrg/archiv/archiv.2025/newsletter/KW49-NikolausrandoriRochlitz.md b/infoZettelOrg/archiv/archiv.2025/newsletter/KW49-NikolausrandoriRochlitz.md new file mode 100644 index 0000000..65b4d38 --- /dev/null +++ b/infoZettelOrg/archiv/archiv.2025/newsletter/KW49-NikolausrandoriRochlitz.md @@ -0,0 +1,39 @@ +--- +title: Nikolausrandori und Nikolausturnier +--- + +Hallo liebe Judoka, +hallo liebe Eltern! + +## [Nikolausrandori][Nikolausrandori] + +Da ich immer wieder nachgefragt habe, weiß ich, dass sehr viele zum Nikolausrandori kommen wollen. Allerdings hat sich kaum jemand [im Planer eingetragen gehabt][Nikolausturnier]. Ich habe jetzt mal aus dem Kopf alle eingetragen, mit denen ich rechnen würde. Bitte schaut nach, ob ich jemanden zuviel eingetragen habe oder noch jemand fehlt. + +### Zeitplan + +- Zeit: 16:30 Uhr +- Ort: [Sporthalle "Ziegeleiweg", Am Regenbogen 1, 09306 Rochlitz][Ziegeleiweg] + - *Achtung, Verwechslungsgefahr*: Es gibt fast nebenan noch die Turnhalle "Am Regenbogen". Die ist es nicht. Nehmt, wenn ihr in die Straße Am Regenbogen einbiegt, gleich den Parkplatz und lauft rechts den Ziegeleiweg hoch (und nicht links Am Regenbogen). + +Das gemeinsame Training soll am 16:30 Uhr starten. Da wir mit Freitag-Feierabend-Verkehr rechnen müssen, würde ich gerne bereits 15:30 in Chemnitz losfahren. Ich rechne aber damit, dass einige erst 16:00 am Dojo seien können. Deshalb würde ich am liebsten einen Teil bereits 15:30 Uhr nach Rochlitz schicken und ich würde dann in einer zweiten Welle hinterherkommen. + +Ich habe für die, wo ich es wusste, bereits Mitfahrgelegenheiten organisiert. Insgesamt sollten wir trotzdem mehr Mitfahrgelegenheiten als Sportler haben. Es würde mich freuen, wenn wir die Mitfahrer schön verteilen könnten. + +## [Nikolausturnier 2025-12-06][Nikolausturnier] + +Auch für das [Nikolausturnier in Werdeau][Nikolausturnier] hatten sich zwar Interessenten gemeldet, aber tatsächlich eingetragen hatten sich dann doch sehr viel weniger. Bitte kontrolliert noch mal. + +## [Dojoübernachtung 28./29.12.2025][Dojoübernachtung] + +Nach langer Zeit würde ich auch gerne wieder mal eine Übernachtung Dojo durchführen. Beginn soll am 28.12. 16:00 Uhr sein. Danach wird es ein ausgedehntes Spiele-Training geben, danach ein gemeinsames Abendessen und anschließend wird auf der Matte der Schlafsack ausgebreitet. Am 29.12. gibt es noch ein gemeinsames Frühstück und zwischen 10 und 11 Uhr können dann die Kinder wieder abgeholt werden. + +Ich bitte wieder mal darum, dass sich [im Planer eingetragen wird][Dojoübernachtung]. + +Auch suche ich Unterstützung in Form von Nahrung: Kann jemand leckere, selbstgemachte Sachen (Salate, Obstteller, Brot, ....) beisteuern? + +MsG marko + +[Nikolausrandori]: https://cwsvjudo.de/participo/event?eventId=257 +[Ziegeleiweg]: https://osm.org/go/0MJDxHvCt +[Nikolausturnier]: https://cwsvjudo.de/participo/event?eventId=245 +[Dojoübernachtung]: https://cwsvjudo.de/participo/event?eventId=258 \ No newline at end of file diff --git a/infoZettelOrg/archiv/archiv.2025/newsletter/KW51-JahrendeZettel.md b/infoZettelOrg/archiv/archiv.2025/newsletter/KW51-JahrendeZettel.md new file mode 100644 index 0000000..9148953 --- /dev/null +++ b/infoZettelOrg/archiv/archiv.2025/newsletter/KW51-JahrendeZettel.md @@ -0,0 +1,38 @@ +--- +title: Newsletter Jahreswechsel 2025/26 +--- + +Hallo liebe Eltern, +Hallo liebe Judoka! + +## [Dojoübernachtung 28./29.12.2025][Dojoübernachtung] + +Nach langer Zeit würde ich auch gerne wieder mal eine Übernachtung Dojo durchführen. Beginn soll am 28.12. 16:00 Uhr sein. Danach wird es ein ausgedehntes Spiele-Training geben, danach ein gemeinsames Abendessen und anschließend wird auf der Matte der Schlafsack ausgebreitet. + +Am 29.12. ist der Zeitplan etwas enger geworden. Bis 9:30 Uhr müssen wir das Dojo ausgeräumt und den Beratungsraum gesäubert haben. + +Bisher haben erst recht wenige [im Planer signalisiert][Dojoübernachtung], ob sie teilnehmen oder nicht. Bitte holt das noch nach. Und zwar sowohl wer teilnimmt als auch wer nicht. Einfach nur [hier klicken][Dojoübernachtung]. + +### Mitbringliste + +Mitgebracht nicht vergessen werden sollte: + +- Essgeschirr +- Schlafsack +- Luftmatratze + +Auch suche ich immer noch Unterstützung in Form von Nahrung: Kann jemand leckere, selbstgemachte Sachen (Salate, Obstteller, Brot, ....) beisteuern? + +### Letzter Trainingstag 2025 + +- Freitag, 19.12.2024 + - 16:00-17:45 Uhr Kinder/Jugend + - 17:30-19:15 Uhr Jugend/Erwachsene + +### Erster Trainingstag 2025 + +- Freitag, 02.01.2026 + - 16:00-17:45 Uhr Kinder/Jugend + - 17:30-19:15 Uhr Jugend/Erwachsene + +[Dojoübernachtung]: https://cwsvjudo.de/participo/event?eventId=258 \ No newline at end of file diff --git a/infoZettelOrg/wkZettel/mediasharing-fkr.yaml b/infoZettelOrg/archiv/archiv.2025/wkZettel/mediasharing-fkr.yaml similarity index 100% rename from infoZettelOrg/wkZettel/mediasharing-fkr.yaml rename to infoZettelOrg/archiv/archiv.2025/wkZettel/mediasharing-fkr.yaml diff --git a/infoZettelOrg/wkZettel/mediasharing-judo-safari.yaml b/infoZettelOrg/archiv/archiv.2025/wkZettel/mediasharing-judo-safari.yaml similarity index 100% rename from infoZettelOrg/wkZettel/mediasharing-judo-safari.yaml rename to infoZettelOrg/archiv/archiv.2025/wkZettel/mediasharing-judo-safari.yaml diff --git a/infoZettelOrg/archiv/archiv.2025/wkZettel/mediasharing-nikolaus-2025.yaml b/infoZettelOrg/archiv/archiv.2025/wkZettel/mediasharing-nikolaus-2025.yaml new file mode 100644 index 0000000..c933c40 --- /dev/null +++ b/infoZettelOrg/archiv/archiv.2025/wkZettel/mediasharing-nikolaus-2025.yaml @@ -0,0 +1,3 @@ +shiaiName: 44. Nikolausturnier Werdau +cloudPassword: Wt8tZzHG +cloudLink: https://magentacloud.de/s/t2jEsN63e4F7LmL diff --git a/infoZettelOrg/archiv/archiv.2025/wkZettel/mediasharing-rkp-2025.yaml b/infoZettelOrg/archiv/archiv.2025/wkZettel/mediasharing-rkp-2025.yaml new file mode 100644 index 0000000..b7de6d2 --- /dev/null +++ b/infoZettelOrg/archiv/archiv.2025/wkZettel/mediasharing-rkp-2025.yaml @@ -0,0 +1,3 @@ +shiaiName: 26. Räucherkerzenpokal +cloudPassword: tztoK3ns +cloudLink: https://magentacloud.de/s/K2XLBCMN8a47Zgd diff --git a/infoZettelOrg/wkZettel/mediasharing-stiefel-2025.yaml b/infoZettelOrg/archiv/archiv.2025/wkZettel/mediasharing-stiefel-2025.yaml similarity index 100% rename from infoZettelOrg/wkZettel/mediasharing-stiefel-2025.yaml rename to infoZettelOrg/archiv/archiv.2025/wkZettel/mediasharing-stiefel-2025.yaml diff --git a/infoZettelOrg/eMailReceiverLists/active.json b/infoZettelOrg/eMailReceiverLists/active.json index 4a0aa5a..cbcbfd4 100644 --- a/infoZettelOrg/eMailReceiverLists/active.json +++ b/infoZettelOrg/eMailReceiverLists/active.json @@ -1,6 +1,6 @@ [ { - "id": "1", + "id": "2", "loginName": "marko", "pwHash": "$2y$10$Dw0HYuSGqU58lpRp0Em46.b.X0KYTrUNtgdkIH6lWVWOnD.lMvuJS", "pwAlg": "", @@ -8,7 +8,7 @@ "vorname": "Marko", "gebDatum": "1982-05-22", "kinder": "1,2,13,30,40,45,49,80,82,83,84,89,93,95,97,98,99,100", - "eltern": "", + "eltern": null, "eMail": ["cwsvjudo@arcor.de"], "attribute": "wantsNewsletter=true", "config": "{\"colors\":{\"backgroundColor\":\"#7f7f7f\",\"highlightColor\":\"#3f3f3f\",\"buttonColor\":\"#1f1f1f\"}}", @@ -16,10 +16,12 @@ "corona_telephon": "015901631103", "corona_PLZ": "09117", "machsUploadUrl": "https://www.magentacloud.de/share/itaja0u0ho", - "machsUploadPw": "dohk3Ei0" + "machsUploadPw": "dohk3Ei0", + "userId": "1", + "attributeId": "2" }, { - "id": "2", + "id": "3", "loginName": "NickW", "pwHash": "$2y$10$I9KY//8lSiOVhN.MTqQk0.G4PejVSa82yoGjFhBTaU7fYQ3AuY5de", "pwAlg": "", @@ -27,18 +29,20 @@ "vorname": "Nick", "gebDatum": "1997-05-02", "kinder": "2", - "eltern": "", + "eltern": null, "eMail": ["nick.weidensager@web.de"], "attribute": "wantsNewsletter=true", - "config": "", - "corona_eMail": "", - "corona_telephon": "", - "corona_PLZ": "", + "config": null, + "corona_eMail": null, + "corona_telephon": null, + "corona_PLZ": null, "machsUploadUrl": "https://www.magentacloud.de/share/jnz7kxem1p", - "machsUploadPw": "ooz6va0E" + "machsUploadPw": "ooz6va0E", + "userId": "2", + "attributeId": "2" }, { - "id": "6", + "id": "167", "loginName": "AlexanderDumler", "pwHash": "", "pwAlg": "", @@ -46,15 +50,17 @@ "vorname": "Alexander", "gebDatum": "0000-00-00", "kinder": "7", - "eltern": "", + "eltern": null, "eMail": ["alled82@gmx.de"], "attribute": "wantsNewsletter=true", - "config": "", - "corona_eMail": "", - "corona_telephon": "", - "corona_PLZ": "", - "machsUploadUrl": "", - "machsUploadPw": "" + "config": null, + "corona_eMail": null, + "corona_telephon": null, + "corona_PLZ": null, + "machsUploadUrl": null, + "machsUploadPw": null, + "userId": "6", + "attributeId": "2" }, { "id": "7", @@ -64,19 +70,42 @@ "name": "Dumler", "vorname": "Arthur", "gebDatum": "2007-12-24", - "kinder": "", + "kinder": null, "eltern": "6", "eMail": ["dumlerarthur2412@gmail.com"], - "attribute": "", - "config": "", - "corona_eMail": "", - "corona_telephon": "", - "corona_PLZ": "", + "attribute": null, + "config": null, + "corona_eMail": null, + "corona_telephon": null, + "corona_PLZ": null, "machsUploadUrl": "https://www.magentacloud.de/share/9h8jg3qojw", - "machsUploadPw": "ne4Meit4" + "machsUploadPw": "ne4Meit4", + "userId": "7", + "attributeId": "2" }, { - "id": "20", + "id": "7", + "loginName": "nSchmidl", + "pwHash": "$2y$10$6HSKdKlTn1OLebrKQdohreAfPlz.BD.FrOBWnkr8yfWI/ImG0Osn.", + "pwAlg": "", + "name": "Schmidl", + "vorname": "Norman", + "gebDatum": "0000-00-00", + "kinder": "13", + "eltern": null, + "eMail": ["post@was7.de"], + "attribute": "wantsNewsletter=true", + "config": null, + "corona_eMail": null, + "corona_telephon": null, + "corona_PLZ": null, + "machsUploadUrl": null, + "machsUploadPw": null, + "userId": "15", + "attributeId": "2" + }, + { + "id": "8", "loginName": "elternBrittnacher", "pwHash": "$2y$10$HBejDZ.Ke7bYoaRZcATwAeTb.qqb1WjdzWho.aI987sOVFtMDlc62", "pwAlg": "", @@ -84,18 +113,20 @@ "vorname": "Eltern", "gebDatum": "0000-00-00", "kinder": "19", - "eltern": "", + "eltern": null, "eMail": ["stephanie.brittnacher@gmail.com"], "attribute": "wantsNewsletter=true", - "config": "", - "corona_eMail": "", - "corona_telephon": "", - "corona_PLZ": "", - "machsUploadUrl": "", - "machsUploadPw": "" + "config": null, + "corona_eMail": null, + "corona_telephon": null, + "corona_PLZ": null, + "machsUploadUrl": null, + "machsUploadPw": null, + "userId": "20", + "attributeId": "2" }, { - "id": "59", + "id": "76", "loginName": "fuchshund", "pwHash": "$2y$10$5d8bWf/xSktW/QNDDsdeC.tm1gJok7FGCpBcauUuiFg3ezWWcyoHu", "pwAlg": "", @@ -103,18 +134,41 @@ "vorname": "Thomas", "gebDatum": "0000-00-00", "kinder": "19", - "eltern": "", + "eltern": null, "eMail": ["thomas@blankfuchs.de"], "attribute": "wantsNewsletter=true", - "config": "", - "corona_eMail": "", - "corona_telephon": "", - "corona_PLZ": "", - "machsUploadUrl": "", - "machsUploadPw": "" + "config": null, + "corona_eMail": null, + "corona_telephon": null, + "corona_PLZ": null, + "machsUploadUrl": null, + "machsUploadPw": null, + "userId": "59", + "attributeId": "2" }, { - "id": "85", + "id": "81", + "loginName": "mohamadZahra", + "pwHash": "", + "pwAlg": "", + "name": "Zahra", + "vorname": "Mohamad", + "gebDatum": "0000-00-00", + "kinder": null, + "eltern": null, + "eMail": ["mohamad.zahra1986@gmail.com"], + "attribute": null, + "config": null, + "corona_eMail": ["mohamad.zahra1986@gmail.com"], + "corona_telephon": "+4917657906737", + "corona_PLZ": "09111", + "machsUploadUrl": null, + "machsUploadPw": null, + "userId": "81", + "attributeId": "2" + }, + { + "id": "169", "loginName": "elternGerlach", "pwHash": "$2y$10$WfSIntzXxRbfmFXi7fFV4ehHXyOdBwPArWYl1tzu6VWcDQBfeI1b2", "pwAlg": "", @@ -122,37 +176,41 @@ "vorname": "Eltern", "gebDatum": "0000-00-00", "kinder": "82,83,84", - "eltern": "", + "eltern": null, "eMail": ["manja.bunzel@gmx.de", "michael_gerlach@gmx.net"], - "attribute": "", - "config": "", + "attribute": null, + "config": null, "corona_eMail": "manja.bunzel@gmx.de", "corona_telephon": "01637529146", "corona_PLZ": "09224", - "machsUploadUrl": "", - "machsUploadPw": "" + "machsUploadUrl": null, + "machsUploadPw": null, + "userId": "85", + "attributeId": "2" }, { - "id": "103", + "id": "172", "loginName": "elternBoehme", "pwHash": "$2y$10$wvmShRitXx12hKy8uGogQemifFPOJ1O0/g5Ne5.ht672BJPE51CYK", "pwAlg": "", - "name": "B\u00f6hme", + "name": "Böhme", "vorname": "Eltern", "gebDatum": "0000-00-00", "kinder": "102", - "eltern": "", + "eltern": null, "eMail": ["jeannette.boehme@mail.de", "marcus.boehme@mail.de"], - "attribute": "", - "config": "", - "corona_eMail": "", - "corona_telephon": "", - "corona_PLZ": "", - "machsUploadUrl": "", - "machsUploadPw": "" + "attribute": null, + "config": null, + "corona_eMail": null, + "corona_telephon": null, + "corona_PLZ": null, + "machsUploadUrl": null, + "machsUploadPw": null, + "userId": "103", + "attributeId": "2" }, { - "id": "108", + "id": "173", "loginName": "elternRichter", "pwHash": "", "pwAlg": "", @@ -160,18 +218,20 @@ "vorname": "Eltern", "gebDatum": "0000-00-00", "kinder": "106,107", - "eltern": "", + "eltern": null, "eMail": ["grericht@gmail.com"], - "attribute": "", + "attribute": null, "config": "", - "corona_eMail": "", - "corona_telephon": "", - "corona_PLZ": "", - "machsUploadUrl": "", - "machsUploadPw": "" + "corona_eMail": null, + "corona_telephon": null, + "corona_PLZ": null, + "machsUploadUrl": null, + "machsUploadPw": null, + "userId": "108", + "attributeId": "2" }, { - "id": "110", + "id": "174", "loginName": "elternOrtmans", "pwHash": "", "pwAlg": "", @@ -179,18 +239,20 @@ "vorname": "Eltern", "gebDatum": "0000-00-00", "kinder": "109", - "eltern": "", + "eltern": null, "eMail": ["jortmans@gmx.de"], - "attribute": "", + "attribute": null, "config": "", - "corona_eMail": "", - "corona_telephon": "", - "corona_PLZ": "", - "machsUploadUrl": "", - "machsUploadPw": "" + "corona_eMail": null, + "corona_telephon": null, + "corona_PLZ": null, + "machsUploadUrl": null, + "machsUploadPw": null, + "userId": "110", + "attributeId": "2" }, { - "id": "113", + "id": "175", "loginName": "ElternEberlein", "pwHash": "", "pwAlg": "", @@ -198,18 +260,20 @@ "vorname": "Eltern", "gebDatum": "0000-00-00", "kinder": "111,112", - "eltern": "", + "eltern": null, "eMail": ["jana.eberlein@yahoo.de"], - "attribute": "", + "attribute": null, "config": "", - "corona_eMail": "", - "corona_telephon": "", - "corona_PLZ": "", - "machsUploadUrl": "", - "machsUploadPw": "" + "corona_eMail": null, + "corona_telephon": null, + "corona_PLZ": null, + "machsUploadUrl": null, + "machsUploadPw": null, + "userId": "113", + "attributeId": "2" }, { - "id": "115", + "id": "176", "loginName": "elternKutschmann", "pwHash": "", "pwAlg": "", @@ -217,21 +281,23 @@ "vorname": "Eltern", "gebDatum": "0000-00-00", "kinder": "114", - "eltern": "", + "eltern": null, "eMail": [ "uwe.schwerdtfeger@uni-dortmund.de", "pia.kutschmann@uni-dortmund.de" ], - "attribute": "", + "attribute": null, "config": "", - "corona_eMail": "", - "corona_telephon": "", - "corona_PLZ": "", - "machsUploadUrl": "", - "machsUploadPw": "" + "corona_eMail": null, + "corona_telephon": null, + "corona_PLZ": null, + "machsUploadUrl": null, + "machsUploadPw": null, + "userId": "115", + "attributeId": "2" }, { - "id": "117", + "id": "177", "loginName": "elternLafdhal", "pwHash": "", "pwAlg": "", @@ -239,18 +305,20 @@ "vorname": "Eltern", "gebDatum": "0000-00-00", "kinder": "116", - "eltern": "", + "eltern": null, "eMail": ["Saddam20@outlook.it"], - "attribute": "", - "config": "", - "corona_eMail": "", - "corona_telephon": "", - "corona_PLZ": "", - "machsUploadUrl": "", - "machsUploadPw": "" + "attribute": null, + "config": null, + "corona_eMail": null, + "corona_telephon": null, + "corona_PLZ": null, + "machsUploadUrl": null, + "machsUploadPw": null, + "userId": "117", + "attributeId": "2" }, { - "id": "127", + "id": "209", "loginName": "elternWolf", "pwHash": "", "pwAlg": "", @@ -258,33 +326,79 @@ "vorname": "Eltern", "gebDatum": "0000-00-00", "kinder": "126", - "eltern": "", + "eltern": null, "eMail": ["mail_markus@web.de"], - "attribute": "", - "config": "", - "corona_eMail": "", - "corona_telephon": "", - "corona_PLZ": "", - "machsUploadUrl": "", - "machsUploadPw": "" + "attribute": null, + "config": null, + "corona_eMail": null, + "corona_telephon": null, + "corona_PLZ": null, + "machsUploadUrl": null, + "machsUploadPw": null, + "userId": "127", + "attributeId": "2" }, { - "id": "131", + "id": "221", "loginName": "elternMeyerhoff", "pwHash": "", "pwAlg": "", "name": "Meyerhoff", "vorname": "Eltern", "gebDatum": "0000-00-00", - "kinder": "", - "eltern": "", + "kinder": null, + "eltern": null, "eMail": ["marina.parschina@gmail.com"], - "attribute": "", - "config": "", - "corona_eMail": "", - "corona_telephon": "", - "corona_PLZ": "", - "machsUploadUrl": "", - "machsUploadPw": "" + "attribute": null, + "config": null, + "corona_eMail": null, + "corona_telephon": null, + "corona_PLZ": null, + "machsUploadUrl": null, + "machsUploadPw": null, + "userId": "131", + "attributeId": "2" + }, + { + "id": "220", + "loginName": "elternUrlass", + "pwHash": null, + "pwAlg": "", + "name": "Urlaß", + "vorname": "Eltern", + "gebDatum": null, + "kinder": null, + "eltern": null, + "eMail": ["winklerurlass@hotmail.de"], + "attribute": null, + "config": null, + "corona_eMail": null, + "corona_telephon": null, + "corona_PLZ": null, + "machsUploadUrl": null, + "machsUploadPw": null, + "userId": "133", + "attributeId": "2" + }, + { + "id": "219", + "loginName": "martinaGerlach", + "pwHash": null, + "pwAlg": "", + "name": "Gerlach", + "vorname": "Martina", + "gebDatum": null, + "kinder": null, + "eltern": null, + "eMail": ["martinajoel@gmail.com"], + "attribute": null, + "config": null, + "corona_eMail": null, + "corona_telephon": null, + "corona_PLZ": null, + "machsUploadUrl": null, + "machsUploadPw": null, + "userId": "135", + "attributeId": "2" } ] diff --git a/infoZettelOrg/tools/sendNewsletter.py b/infoZettelOrg/tools/sendNewsletter.py index 4d4d266..330bbaa 100755 --- a/infoZettelOrg/tools/sendNewsletter.py +++ b/infoZettelOrg/tools/sendNewsletter.py @@ -18,10 +18,9 @@ import logging # only for develop -endDate = (datetime.datetime.now() + - datetime.timedelta(days=7)).strftime("%Y-%m-%d") +endDate = (datetime.datetime.now() + datetime.timedelta(days=7)).strftime("%Y-%m-%d") -participoUrl = "http://cwsvjudo.bplaced.net/participo" +PARTICIPO_URL = "https://cwsvjudo.de/participo" class Email: @@ -32,21 +31,21 @@ class Email: self.title = title self.mdText = mdText - def addApiKeyToUrls(self, apiKey, url=participoUrl): - self.mdText = re.sub(url+"([^#,\n]*)", url + "\\1" + - "?apiKey="+apiKey, self.mdText) + def addApiKeyToUrls(self, apiKey, url=PARTICIPO_URL): + self.mdText = re.sub( + url + "([^#,\n]*)", url + "\\1" + "&apiKey=" + apiKey, self.mdText + ) @staticmethod def loadFromMdFile(path): from yaml import safe_load - + # read markdownfile as header and text mdHeader = None with open(argv.mdFilePath) as f: mdHeader = safe_load(get_yaml(f)) - title = mdHeader['title'] if checkHeader( - mdHeader) else "cwsvJudo newsLetter" + title = mdHeader["title"] if checkHeader(mdHeader) else "cwsvJudo newsLetter" mdText = None with open(argv.mdFilePath) as f: @@ -56,16 +55,16 @@ class Email: def get_yaml(f): - '''Extracts the yamlHeader from a Markdown file''' + """Extracts the yamlHeader from a Markdown file""" yamlHeader = None pointer = f.tell() - if f.readline() != '---\n': + if f.readline() != "---\n": f.seek(pointer) - return '' - readline = iter(f.readline, '') - readline = iter(readline.__next__, '---\n') + return "" + readline = iter(f.readline, "") + readline = iter(readline.__next__, "---\n") - yamlHeader = ''.join(readline) + yamlHeader = "".join(readline) return yamlHeader @@ -82,34 +81,33 @@ def checkHeader(header): bool: true if header is alright, false if an error was detected """ retVal = True - if not 'title' in header: + if not "title" in header: logging.info("Header has no 'title' attribute!") retVal = False else: - if header['title'] is False: + if header["title"] is False: logging.info("Empty title!") retVal = False return retVal def getArguments(): - argParser = argparse.ArgumentParser( - description="Send an Markdown-File as eMail" + argParser = argparse.ArgumentParser(description="Send an Markdown-File as eMail") + argParser.add_argument("mdFilePath", help="Path to MarkdownFile to send") + argParser.add_argument("-r", "--receiver", help="json file with the receiver") + argParser.add_argument("--dontSend", action="store_true") + argParser.add_argument( + "-c", + "--config", + nargs="+", + type=argparse.FileType("r"), + help="yaml formatted config file(s)", ) argParser.add_argument( - "mdFilePath", - help="Path to MarkdownFile to send" - ) - argParser.add_argument( - "-r", "--receiver", help="json file with the receiver") - argParser.add_argument( - "--dontSend", - action="store_true" - ) - argParser.add_argument( - "-c", "--config", - nargs="+", type=argparse.FileType("r"), - help="yaml formatted config file(s)" + "-p", + "--participoUrl", + help="url for the participo app (e.g. indicator for appending the personal apiKey to the event url)", + default=PARTICIPO_URL, ) return argParser.parse_args() @@ -125,7 +123,7 @@ def loadFromJson(path): def loadFromYamlFile(yamlFile): from yaml import safe_load - + with yamlFile as f: return safe_load(yamlFile) @@ -142,17 +140,16 @@ def createApiKey(allowKey, userId, rights, endDate): return: new api key or none on failure """ postData = { - 'apiKey': allowKey, - 'userId': userId, - 'rights': rights, - 'endDate': endDate + "apiKey": allowKey, + "userId": userId, + "rights": rights, + "endDate": endDate, } - response = requests.post( - participoUrl+"/api.apiKeys.add", json=postData) + response = requests.post(argv.participoUrl + "/api.apiKeys.add", json=postData) jsonResponse = response.json() - return jsonResponse['apiKey'] if 'apiKey' else None + return jsonResponse["apiKey"] if "apiKey" else None def randomSleep(min=60, max=600): @@ -181,9 +178,15 @@ if __name__ == "__main__": for user in receivers: apiKey = createApiKey( - config['apiKey']['createApiKey'], user['id'], "login", endDate) + config["apiKey"]["createApiKey"], + user.get("userId", user.get("id")), + "login", + endDate, + ) if apiKey is None: - logging.info(f"Couldn't get apiKey for apiKey creation! Ok if no apiKey needs to be created.") + logging.error( + f"Failed to create apiKey for user {user['id']} ({user['loginName']})" + ) continue email = Email.loadFromMdFile(argv.mdFilePath) # emailTemplate @@ -193,23 +196,31 @@ if __name__ == "__main__": # text = pypandoc.convert_text(email.mdText, "plain", format='md', extra_args=[ # "--self-contained", "--resource-path=../aufgaben"]) # plain text did swallow the Url. As workaround we are trying markdown for the plain text - text = pypandoc.convert_text(email.mdText, "markdown", format='md', extra_args=[ - "--self-contained", "--resource-path=../aufgaben"]) - html = pypandoc.convert_text(email.mdText, "html", format='md', extra_args=[ - "--self-contained", "--resource-path=../aufgaben"]) + text = pypandoc.convert_text( + email.mdText, + "markdown", + format="md", + extra_args=["--self-contained", "--resource-path=../aufgaben"], + ) + html = pypandoc.convert_text( + email.mdText, + "html", + format="md", + extra_args=["--self-contained", "--resource-path=../aufgaben"], + ) # Turn these into plain/html MIMEText objects txtMimeText = MIMEText(text, "plain") htmlMimeText = MIMEText(html, "html") # @todo the message has to be recreated for every email address since it seems to be added by reference to the queue. meaning changing the emailAddress changes it in the previously added also - for toAddress in user['eMail']: + for toAddress in user["eMail"]: # create the mail message = MIMEMultipart("alternative") # Setting header data message["Subject"] = email.title - message["From"] = config['senderEmailAddress'] - message["Reply-To"] = config['senderEmailAddress'] + message["From"] = config["senderEmailAddress"] + message["Reply-To"] = config["senderEmailAddress"] message["Date"] = str(utils.formatdate(localtime=True)) # only set the to-header one time: setting it multiple @@ -231,18 +242,21 @@ if __name__ == "__main__": context.check_hostname = False context.verify_mode = ssl.CERT_NONE - for message in messageQueue: # randomSleep(min=10, max=20) - with smtplib.SMTP_SSL(config['smtp']['serverAddress'], config['smtp']['serverPort'], context=context) as server: - server.login(config['smtp']['login'], config['smtp']['password']) + with smtplib.SMTP_SSL( + config["smtp"]["serverAddress"], + config["smtp"]["serverPort"], + context=context, + ) as server: + server.login(config["smtp"]["login"], config["smtp"]["password"]) if not argv.dontSend: logging.info(f"sending to {message['To']}") server.sendmail( - from_addr=config['senderEmailAddress'], + from_addr=config["senderEmailAddress"], to_addrs=message["To"], - msg=message.as_string() + msg=message.as_string(), ) # except smtplib.SMTPSenderRefused as exception: # if exception.smtp_code == 450: @@ -250,4 +264,3 @@ if __name__ == "__main__": # time.sleep(60 * 60) # server.login(config['smtp']['login'], config['smtp']['password']) # logging.error(f"Unexpected SMTPSenderRefused exception: {exception} - {repr(exception)}") - \ No newline at end of file diff --git a/infoZettelOrg/wkZettel/mediasharing-fkr.md b/infoZettelOrg/wkZettel/mediasharing-fkr.md deleted file mode 100644 index 073c5be..0000000 --- a/infoZettelOrg/wkZettel/mediasharing-fkr.md +++ /dev/null @@ -1,12 +0,0 @@ ---- -title: 28. Frühjahrskrümelrandori - Mediasharing ---- - -Hier der Link zu den Videos und Bildern des 28. Frühjahrskrümelrandori: - -- Passwort: xkw762YL -- Link: https://magentacloud.de/s/akRTozY5MrKTxQF - -Wie immer würde ich mich freuen, wenn auch alle anderen ihre gemachten Bilder und Videos mit hochladen. - -MsG marko diff --git a/infoZettelOrg/wkZettel/mediasharing-judo-safari.md b/infoZettelOrg/wkZettel/mediasharing-judo-safari.md deleted file mode 100644 index 0b0dc74..0000000 --- a/infoZettelOrg/wkZettel/mediasharing-judo-safari.md +++ /dev/null @@ -1,12 +0,0 @@ ---- -title: Judo Safari - Mediasharing ---- - -Hier der Link zu den Videos und Bildern der Judo Safari: - -- Passwort: smTS39WK -- Link: https://magentacloud.de/s/4qyJCxHyD2aspkq - -Wie immer würde ich mich freuen, wenn auch alle anderen ihre gemachten Bilder und Videos mit hochladen. - -MsG marko