diff --git a/infoZettelOrg/2023-11-08-schwimmen.md b/infoZettelOrg/2023-11-08-schwimmen.md new file mode 100644 index 0000000..77d1554 --- /dev/null +++ b/infoZettelOrg/2023-11-08-schwimmen.md @@ -0,0 +1,27 @@ +--- +title: Schwimmen und Sommerlager +--- + +# Schwimmtraining am Sonntag + +Nachdem die Sportabzeichenprüfung geschafft ist, ist der Sonntag wieder frei für das Schwimmtraining: + +- Datum: 2023-11-12 +- Uhrzeit: 10:00--12:00 Uhr +- Mitbringen: Badesachen, Schülerausweis (vor allem die älteren) +- Ort: [Stadtbad Chemnitz, Mühlenstraße 27, 09111 Chemnitz][1] + +Das Schwimmtraining soll über die kalten Jahreszeiten wieder regelmäßig stattfinden. Ort und Zeit gebe ich frei zur Diskussion. + +# Sommerlager 20.6.- 25.6.2024 + +Auch im nächstes Jahr wollen wir wieder ins Sommerlager fahren. Dieses Mal geht es vom 20.6.- 25.6.2024 ins Schullandheim Bautzen-Burk. + +Adresse: +- Nimschützer Str. 10 +- 02625 Bautzen +- https://www.schullandheime.de/bautzen + +Die Kosten werden sich diesmal auf 250,00 € belaufen. Die Plätze werden wieder auf 10 begrenzt sein. + +MsG marko \ No newline at end of file diff --git a/infoZettelOrg/2023-11-10-schwimmen.md b/infoZettelOrg/2023-11-10-schwimmen.md new file mode 100644 index 0000000..da6632b --- /dev/null +++ b/infoZettelOrg/2023-11-10-schwimmen.md @@ -0,0 +1,19 @@ +--- +title: Schwimmen und Sommerlager +--- + +# Schwimmtraining am Sonntag + +Nachdem die Sportabzeichenprüfung geschafft ist, ist der Sonntag wieder frei für das Schwimmtraining: + +- Datum: 2023-11-12 +- Uhrzeit: 10:00--12:00 Uhr +- Mitbringen: Badesachen, Schülerausweis (vor allem die älteren) +- Ort: [Stadtbad Chemnitz, Mühlenstraße 27, 09111 Chemnitz][1] + +Das Schwimmtraining soll über die kalten Jahreszeiten wieder regelmäßig stattfinden. Ort und Zeit gebe ich frei zur Diskussion. + + +MsG marko + +[1]: https://osm.org/go/0MIY_~XdV- diff --git a/infoZettelOrg/2023-11-22-RKP+WK.md b/infoZettelOrg/2023-11-22-RKP+WK.md new file mode 100644 index 0000000..40dde95 --- /dev/null +++ b/infoZettelOrg/2023-11-22-RKP+WK.md @@ -0,0 +1,32 @@ +--- +title: Kein Bus zum Räucherkerzenpokal +--- + +# Kein Bus zum RKP + +Leider werden wir für den Räucherkerzenpokal am 25.11.2023 nicht den Bus zur Verfügung haben! Deshalb bräuchte ich von allen Teilnehmern die kurze Rückmeldung: + +- Wer benötigt wieviele Mitfahrgelegenheiten? +- Wer kann Mitfahrgelegenheiten anbieten? + +Bitte gebt mir so schnell wie möglich einen Rückmeldung, damit ich nötigenfalls noch einen Ersatz organisieren kann. + +# Wettkampfdaten + +- Altersklassen: U7/U9/U11 +- Datum: 25.11.2023 +- Ort: 09487 Schlettau, Lindenhofturnhalle, Elterleiner Straße (am Sportplatz) +- Wiegen: 8:30--9:30 Uhr +- Wettkampfbeginn: ca. 9:45 Uhr + + +# Spaßturnier für die Älteren + +Für die Älteren ab U18 und älter (Jahrgang <=2009) bin ich auf dieses [kleine Bodenturnier][kuscheln] gestoßen. Meiner Meinung nach die ideale Gelegenheit für Spät- oder Wiedereinsteiger an einem Wettkampf teilzunehmen. Es wäre schön, wen mich jemand zu dem Turnier begleiten würde. + + +MsG marko + + +[wk198]: http://cwsvjudo.bplaced.net/participo/events#198 +[kuscheln]: https://www.judoclub-halle.de/app/download/13255120199/Bodenturnier_2023.pdf \ No newline at end of file diff --git a/infoZettelOrg/2023-11-27-restWkJahr.md b/infoZettelOrg/2023-11-27-restWkJahr.md new file mode 100644 index 0000000..cb90261 --- /dev/null +++ b/infoZettelOrg/2023-11-27-restWkJahr.md @@ -0,0 +1,40 @@ +--- +title: Restliches Wettkampfjahr +--- + +Leider ist die Wettkampfplanung zum Ende des Jahres etwas hektisch geworden. Entschuldigung dafür! + +Bereits dieses Wochenende geht es weiter. Bitte geht einmal auf den Meldelink und gebt Teilnahme-/Nichtteilnahme an. + +# Nikolaus-Turnier Werdau + +- 2023-12-02 +- Altersklassen: U9, U11 +- Ort: Mehrzweckhalle Langenhessen, Seelingstädter Str. 7, 08412 Werdau OT Langenhessen +- [MeldeLink][wk204] + +# Lions-Cup Leipzig + +- 2023-12-17 (*Sonntag!*) +- Altersklassen: U9, U11, U13 +- Ort: Sporthalle Brüderstraße, Brüderstraße 15. 04103 Leipzig +- [Meldelink][wk205] + +*Achtung*: Die U11 benötigt hier zwingend den weiß-gelben Gürtel (in einem aktuellen Judo-Pass)! In der U9 ist auch weiß startberechtigt. + +# Weihnachtskuscheln Halle + +- 2023-12-16 +- Altersklassen: U18, U30, Ü30, Ü50 +- Ort: Sporthalle (hintere) BBS III, 06120 Halle, Grasnelkenweg 16 +- [Meldelink][wk211] + +Eher ein Spaßturnier, aber auch die Gelegenheit nach langer Pause oder zum erstem Mal überhaupt Wettkampfluft zu schnuppern. + + +MsG marko + + +[wk204]: http://cwsvjudo.bplaced.net/participo/events#204 +[wk205]: http://cwsvjudo.bplaced.net/participo/events#205 +[wk211]: http://cwsvjudo.bplaced.net/participo/events#211 \ No newline at end of file diff --git a/infoZettelOrg/2023-12-04-Trainingsverlegung.md b/infoZettelOrg/2023-12-04-Trainingsverlegung.md new file mode 100644 index 0000000..124006c --- /dev/null +++ b/infoZettelOrg/2023-12-04-Trainingsverlegung.md @@ -0,0 +1,49 @@ +--- +title: Trainingsverlegung am 8.12. +--- + +# Verlegung des Trainingsortes am Freitag (08.12.2023) + +Am Freitag, dem 08.12.2023, werden wir unser Dojo den Karateka überlassen. Stattdessen weichen wir wieder mal in den [Gymnastikraum der Sachsenhalle][mapSachsenhalle] (Str. Usti nad Labem 275, 09119 Chemnitz) aus: + +- Datum: 08.12.2023 +- Zeit: + - 16:00-17:45 Uhr die Anfänger/Kinder, + - 17:30-19:15+x Uhr Fortgeschrittene/Jugend/Erwachsene + - bei den Großen bitte Tischtennisschläger mitbringen +- Ort: [Gymnastikraum der Sachsenhalle][mapSachsenhalle] + + +# Wettkämpfe + +Die beiden letzten Wettkämpfe des Jahres warten immer noch auf Teilnehmer. Bitte über den Meldelink im Planer eine (Nicht-)Teilnahme eintragen: + +## Lions-Cup Leipzig + +- 2023-12-17 (*Sonntag!*) +- Altersklassen: U9, U11, U13 +- Ort: Sporthalle Brüderstraße, Brüderstraße 15. 04103 Leipzig +- [Meldelink][wk205] + +*Achtung*: Die U11 benötigt hier zwingend den weiß-gelben Gürtel (in einem aktuellen Judo-Pass)! In der U9 ist auch weiß startberechtigt. + +## Weihnachtskuscheln Halle + +- 2023-12-16 +- Altersklassen: U18, U30, Ü30, Ü50 +- Ort: Sporthalle (hintere) BBS III, 06120 Halle, Grasnelkenweg 16 +- [Meldelink][wk211] + +Eher ein Spaßturnier, aber auch die Gelegenheit nach langer Pause oder zum erstem Mal überhaupt Wettkampfluft zu schnuppern. + + +# Bugfixes am Planer + +Das Problem, das im Planer nur die Teilnahme (und nicht die Nicht-Teilnahme) ausgewählt werden konnte ist behoben worden. + +MsG marko + + +[wk205]: http://cwsvjudo.bplaced.net/participo/events#205 +[wk211]: http://cwsvjudo.bplaced.net/participo/events#211 +[mapSachsenhalle]: https://osm.org/go/0MIYhooV9-- diff --git a/infoZettelOrg/2023-12-10-Schwimmrunde.md b/infoZettelOrg/2023-12-10-Schwimmrunde.md new file mode 100644 index 0000000..5b26142 --- /dev/null +++ b/infoZettelOrg/2023-12-10-Schwimmrunde.md @@ -0,0 +1,14 @@ +--- +title: Schwimmen am Sonntag +--- + +Nachdem ich die letzten Wochen ja ein wenig angeschlagen war, werde ich morgen mal wieder Schwimmen gehen. Wer mag kann gerne mitkommen: + +- Sonntag, 10.12.2023 +- 10--12:00 Uhr +- [Stadtbad Chemnitz][stadtbad] +- [Anmeldelink][wk212] + + +[wk212]: http://cwsvjudo.bplaced.net/participo/events#212 +[stadtbad]: https://osm.org/go/0MIY_~XdV- diff --git a/infoZettelOrg/aushang/2023-12-08_Trainingsverlegung-Aushang.md b/infoZettelOrg/aushang/2023-12-08_Trainingsverlegung-Aushang.md new file mode 100644 index 0000000..7622437 --- /dev/null +++ b/infoZettelOrg/aushang/2023-12-08_Trainingsverlegung-Aushang.md @@ -0,0 +1,12 @@ +# Achtung: Geänderter Trainingsort für die Judoka des Chemnitzer WSV + +Am + +- Freitag, dem 08.12.2023 + +wird der Trainingsort der Judoka des CWSV in den Gymnastikraum der Sachsenhalle verlegt. Die "Großen" können Tischtennisschläger und -bälle mitbringen. + +![Sportplatz -> Sachsenhalle](./ustifield-sachsenhalle_cropped.png) + + +MsG marko diff --git a/infoZettelOrg/config.apiKey.yaml b/infoZettelOrg/config.apiKey.yaml new file mode 100644 index 0000000..766b085 --- /dev/null +++ b/infoZettelOrg/config.apiKey.yaml @@ -0,0 +1,2 @@ +apiKey: + createApiKey: "5fPsXG1JsAj" diff --git a/infoZettelOrg/config.arcorMail.yaml b/infoZettelOrg/config.arcorMail.yaml new file mode 100644 index 0000000..0c74a5c --- /dev/null +++ b/infoZettelOrg/config.arcorMail.yaml @@ -0,0 +1,6 @@ +smtp: + serverAddress: "mail.arcor.de" + serverPort: 465 + login: "cwsvjudo" + password: "kodokan" +senderEmailAddress: "cwsvjudo@arcor.de" diff --git a/infoZettelOrg/config.telekomMail.yaml b/infoZettelOrg/config.telekomMail.yaml new file mode 100644 index 0000000..75ece11 --- /dev/null +++ b/infoZettelOrg/config.telekomMail.yaml @@ -0,0 +1,6 @@ +smtp: + serverAddress: "securesmtp.t-online.de" + serverPort: 465 + login: "judo.cwsv@t-online.de" + password: "k0-d0-k4n" +senderEmailAddress: "cwsvjudo@arcor.de" diff --git a/infoZettelOrg/eMailReceiverLists/active.json b/infoZettelOrg/eMailReceiverLists/active.json index 98bb391..8e609e4 100644 --- a/infoZettelOrg/eMailReceiverLists/active.json +++ b/infoZettelOrg/eMailReceiverLists/active.json @@ -13,6 +13,13 @@ "nick.weidensager@web.de" ] }, + { + "id": "6", + "loginName": "AlexanderDumler", + "eMail": [ + "alled82@gmx.de" + ] + }, { "id": "15", "loginName": "nSchmidl", @@ -53,7 +60,8 @@ "id": "85", "loginName": "elternGerlach", "eMail": [ - "manja.bunzel@gmx.de" + "manja.bunzel@gmx.de", + "michael_gerlach@gmx.net" ] }, { diff --git a/infoZettelOrg/eMailReceiverLists/ogl2023-4.json b/infoZettelOrg/eMailReceiverLists/ogl2023-4.json new file mode 100644 index 0000000..a323fff --- /dev/null +++ b/infoZettelOrg/eMailReceiverLists/ogl2023-4.json @@ -0,0 +1,44 @@ +[ + { + "id": "1", + "loginName": "marko", + "eMail": [ + "cwsvjudo@arcor.de" + ] + }, + { + "id": "85", + "loginName": "elternGerlach", + "eMail": [ + "manja.bunzel@gmx.de" + ] + }, + { + "id": "103", + "loginName": "elternBoehme", + "eMail": [ + "jeannette.boehme@mail.de" + ] + }, + { + "id": "113", + "loginName": "ElternEberlein", + "eMail": [ + "jana.eberlein@yahoo.de" + ] + }, + { + "id": "115", + "loginName": "elternKutschmann", + "eMail": [ + "uwe.schwerdtfeger@uni-dortmund.de" + ] + }, + { + "id": "119", + "loginName": "elternBondar", + "eMail": [ + "bondar.mata@gmail.com" + ] + } +] \ No newline at end of file diff --git a/infoZettelOrg/eMailReceiverLists/rkp2023.json b/infoZettelOrg/eMailReceiverLists/rkp2023.json new file mode 100644 index 0000000..3275263 --- /dev/null +++ b/infoZettelOrg/eMailReceiverLists/rkp2023.json @@ -0,0 +1,37 @@ +[ + { + "id": "1", + "loginName": "marko", + "eMail": [ + "cwsvjudo@arcor.de" + ] + }, + { + "id": "85", + "loginName": "elternGerlach", + "eMail": [ + "manja.bunzel@gmx.de" + ] + }, + { + "id": "103", + "loginName": "elternBoehme", + "eMail": [ + "jeannette.boehme@mail.de" + ] + }, + { + "id": "113", + "loginName": "ElternEberlein", + "eMail": [ + "jana.eberlein@yahoo.de" + ] + }, + { + "id": "115", + "loginName": "elternKutschmann", + "eMail": [ + "uwe.schwerdtfeger@uni-dortmund.de" + ] + } +] \ No newline at end of file diff --git a/infoZettelOrg/tools/sendNewsletter.py b/infoZettelOrg/tools/sendNewsletter.py index 28df8fa..4d4d266 100755 --- a/infoZettelOrg/tools/sendNewsletter.py +++ b/infoZettelOrg/tools/sendNewsletter.py @@ -7,15 +7,17 @@ from email import utils from email.mime.text import MIMEText from email.mime.multipart import MIMEMultipart import pypandoc -import yaml import argparse import certifi import os import requests import re import datetime +import time +import logging -# only for developing + +# only for develop endDate = (datetime.datetime.now() + datetime.timedelta(days=7)).strftime("%Y-%m-%d") @@ -36,10 +38,12 @@ class Email: @staticmethod def loadFromMdFile(path): + from yaml import safe_load + # read markdownfile as header and text mdHeader = None with open(argv.mdFilePath) as f: - mdHeader = yaml.safe_load(get_yaml(f)) + mdHeader = safe_load(get_yaml(f)) title = mdHeader['title'] if checkHeader( mdHeader) else "cwsvJudo newsLetter" @@ -79,11 +83,11 @@ def checkHeader(header): """ retVal = True if not 'title' in header: - print("Header has no 'title' attribute") + logging.info("Header has no 'title' attribute!") retVal = False else: if header['title'] is False: - print("Empty title!") + logging.info("Empty title!") retVal = False return retVal @@ -98,6 +102,15 @@ def getArguments(): ) 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)" + ) return argParser.parse_args() @@ -110,12 +123,11 @@ def loadFromJson(path): return jsonDict -def loadFromYaml(path): - yamlDict = None - with open(path, "r") as yamlFile: - yamlDict = yaml.safe_load(yamlFile) - - return yamlDict +def loadFromYamlFile(yamlFile): + from yaml import safe_load + + with yamlFile as f: + return safe_load(yamlFile) def createApiKey(allowKey, userId, rights, endDate): @@ -143,9 +155,23 @@ def createApiKey(allowKey, userId, rights, endDate): return jsonResponse['apiKey'] if 'apiKey' else None +def randomSleep(min=60, max=600): + from random import randint + from time import sleep + + sleepTime = randint(60, 600) + logging.info(f"sleeping for {sleepTime} s") + sleep(sleepTime) + + if __name__ == "__main__": + logging.basicConfig(level=logging.DEBUG) argv = getArguments() - config = loadFromYaml("./config.yaml") + + config = {} + for yamlFile in argv.config: + config |= loadFromYamlFile(yamlFile=yamlFile) + receivers = loadFromJson(argv.receiver) emailTemplate = Email.loadFromMdFile(argv.mdFilePath) @@ -157,7 +183,7 @@ if __name__ == "__main__": apiKey = createApiKey( config['apiKey']['createApiKey'], user['id'], "login", endDate) if apiKey is None: - print(f"Couldn't get apiKey") + logging.info(f"Couldn't get apiKey for apiKey creation! Ok if no apiKey needs to be created.") continue email = Email.loadFromMdFile(argv.mdFilePath) # emailTemplate @@ -205,9 +231,23 @@ if __name__ == "__main__": context.check_hostname = False context.verify_mode = ssl.CERT_NONE - with smtplib.SMTP_SSL(config['smtp']['serverAddress'], config['smtp']['serverPort'], context=context) as server: - server.login(config['smtp']['login'], config['smtp']['password']) - for message in messageQueue: - print(f"sending to {message['To']}") - server.sendmail(config['senderEmailAddress'], - message["To"], message.as_string()) + + 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']) + if not argv.dontSend: + logging.info(f"sending to {message['To']}") + server.sendmail( + from_addr=config['senderEmailAddress'], + to_addrs=message["To"], + msg=message.as_string() + ) + # except smtplib.SMTPSenderRefused as exception: + # if exception.smtp_code == 450: + # logging.warning(f"Daily Quota exceded. Try again in 1h.") + # 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/2023-11-07-OGL+RKP.md b/infoZettelOrg/wkZettel/2023-11-07-OGL+RKP.md index 53a2d36..38c9e95 100644 --- a/infoZettelOrg/wkZettel/2023-11-07-OGL+RKP.md +++ b/infoZettelOrg/wkZettel/2023-11-07-OGL+RKP.md @@ -2,11 +2,11 @@ title: OGL + RKP --- -*Bitte Rückmeldung im Wettkampfplaner bis 10.11.2023* +*Unbedingt Rückmeldung bis 10.11.2023* -# The Little-Otto-Goshi-Liga 2023-4 +Für die Otto-Goshi-Liga werde ich wieder den Bus zur Verfügung haben. Für genügend Mitfahrgelegenheiten sollte also gesorgt sein. -[OGL 2023-4 im Wettkampfplaner][wk186] +# [The Little-Otto-Goshi-Liga 2023-4][wk186] ## Wettkampfdaten @@ -16,20 +16,22 @@ title: OGL + RKP - Wiegen: 09:30--10:15 - Wettkampfbeginn: 10:30 Uhr (bzw. nach Erstellung der Listen) -# 24. Räucherkerzenpokal +## Treffpunkt -[24. Räucherkerzenpokal im Wettkampfplaner][wk198] +- Ort: Dojo Str. Usti nad Labem 42 +- Treff: 7:15 Uhr +- *Kindersitz nicht vergessen!* (insbesondere die Mitfahrer) -## Wettkampfdaten -- Altersklassen: U7 (2017 und jünger), U9 (2015 und 2016), U11 (2014 und 2013) -- Datum: 25.11.2023 -- Ort: Lindenhofturnhalle, Schützenhausstraße, 09487 Schlettau -- Wiegen: 08:30--9:30 -- Wettkampfbeginn: 9:45 Uhr (bzw. nach Erstellung der Listen) +## Nicht vergessen + +- Judopass (wenn nicht schon beim Trainer) +- Judogi (d. h. Jacke, Hose und Gürtel) +- *Hallenschuhe* +- Essen/Trinken +- Warme Socken und Pullover MsG marko [wk186]: http://cwsvjudo.bplaced.net/participo/events#186 -[wk198]: http://cwsvjudo.bplaced.net/participo/events#198 diff --git a/infoZettelOrg/wkZettel/2023-11-23-ogl4-mediasharing.md b/infoZettelOrg/wkZettel/2023-11-23-ogl4-mediasharing.md new file mode 100644 index 0000000..0a57d4f --- /dev/null +++ b/infoZettelOrg/wkZettel/2023-11-23-ogl4-mediasharing.md @@ -0,0 +1,12 @@ +--- +title: Otto Goshi Liga - Mediasharing +--- + +Hier der Link zu den Videos und Bildern der Otto Goshi Liga: + +- Link: https://magentacloud.de/s/sJ46KxoDJw2iK7N +- Passwort: BqG9ALna + +Wie immer würde ich mich freuen, wenn auch alle anderen ihre gemachten Bilder und Videos mit hochladen. + +MsG marko \ No newline at end of file diff --git a/infoZettelOrg/wkZettel/2023-11-26-rkp-mediasharing.md b/infoZettelOrg/wkZettel/2023-11-26-rkp-mediasharing.md new file mode 100644 index 0000000..a67ed6e --- /dev/null +++ b/infoZettelOrg/wkZettel/2023-11-26-rkp-mediasharing.md @@ -0,0 +1,13 @@ +--- +title: Räucherkerzenpokal - Mediasharing +--- + +Hier der Link zu den Videos und Bildern des Räucherkerzenpokales: + +- Link: qHgxfAkP +- Passwort: https://magentacloud.de/s/jwNeoRTwsWLdnQs + +Wie immer würde ich mich freuen, wenn auch alle anderen ihre gemachten Bilder und Videos mit hochladen. + + +MsG marko \ No newline at end of file