Profilbild von Johannes Wehden mit einem Leuchtturm im Hintergrund

Moin! Ich bin Johannes

  • Softwareentwickler
  • Ausbilder
  • Teamleiter

Hier erfährst du mehr über mich und meine Projekte.

Email

info@johanneswehden.de

Social

Zurück

Secret Santa

Ein Skripts für das Weihnachtswichteln

Alle Jahre wieder wird im Freundeskreis und in der Familie zur Weihnachtszeit gewichtelt. Doch wo früher noch zufällig Namenszettel gezogen wurden, hat auch bei dieser Tradition die Digitalisierung Einzug gehalten. Seit einigen Jahren verwenden wir ein kleines Python-Skript, das jeden Teilnehmer per E-Mail darüber informiert, wen er dieses Jahr beschenken darf.

Weihnachtsman mit Tablet in der Hand

#Die Entstehungsgeschichte

In der Vergangenheit haben wir unsere Wichtelpartner immer mit Hilfe von zufällig gezogenen Namenszettel aus einer Schüssel bestimmt. Wer wen beschenken musste, wurde jedoch bis zur Bescherung einige Wochen später geheim gehalten. Dank des 2. Corona Lockdowns im Jahr 2020 war dieses Vorgehen aber nicht möglich, so dass wir eine andere Lösung finden mussten, für jeden Teilnehmer einen Wichtelpartner zu bestimmen, ohne dass eine Person über alles bescheid wusste.

Da wir keine außenstehenden Personen einbeziehen wollten, entschied ich mich, ein Python-Skript zu schreiben, das sowohl die Wichtelpartner zufällig bestimmt als auch per E-Mail benachrichtigt, so dass ich selbst überrascht werden konnte. Bei der Zuordnung der zu beschenkenden Person sollte auch darauf geachtet werden, dass sich Paare oder Personen eines Haushaltes nicht gegenseitig beschenken und dass jeder eine andere Person als im Vorjahr beschenkt.

#Ergebnis

Das Skript funktioniert wie folgt. Über eine CSV-Datei werden die Teilnehmer inkl. E-Mail und auszuschließender Wichtelpartner eingelesen. Sofern es die Konstellation der Ausschlüsse zulässt, wird für jede Person (Wichtel) ein zufälliger Partner (Match) ermittelt. Anschließend wird für jeden Wichtel eine HTML-Mail generiert und über Gmail an die entsprechende E-Mail-Adresse versendet.

Wenn du am Skript selbst interessiert bist, findest du den Code in meinem Repository auf GitHub.