mirror of
https://github.com/tomru/wichteln.git
synced 2026-03-02 22:17:15 +01:00
further work
This commit is contained in:
20
README.md
20
README.md
@@ -1,19 +1,19 @@
|
||||
# Stupides Wichtel Skript
|
||||
|
||||
Zieht einen Wichtel für ein Liste von Leuten und sendet eine E-Mail an den
|
||||
Beschenker.
|
||||
Beschenker. Zusätzlich wird die ganze Ziehung in `./picks.txt` abgelegt.
|
||||
|
||||
# Usage
|
||||
# Verwendung
|
||||
|
||||
Die Liste der Teilnehmer wird aus `./people.txt` eingelesen und erwartet folgendes Format pro Zeile.
|
||||
Die Liste der Teilnehmer wird von `stdin` eingelesen und erwartet folgendes
|
||||
Format pro Zeile.
|
||||
|
||||
`<Name> <Email> <GroupId>`
|
||||
|
||||
`GroupId` ist optional, falls angegeben wird nur unterschiedlichen GroupIds
|
||||
gezogen (z.B. Fred aus Familie A soll nur aus Familie B, C, ... ziehen können).
|
||||
|
||||
Die Ziehung erfolgt per Zufall reihum. Falls für einen Teilnehmer kein Los
|
||||
mehr zu ziehen gibt, wird ein Fehler geworfen.
|
||||
|
||||
|
||||
`GroupId` ist optional (z.B. Fred aus Familie A soll nur aus Familie B, C, ...
|
||||
ziehen können).
|
||||
|
||||
Gezogen wird in der Reihenfolge der Input Liste. Wird `GroupId` verwendet, kann
|
||||
es sein, dass für einen Teilnehmer kein _gültigen_ Wichtel mehr gibt. In diesem
|
||||
Fall wirft das Skript einfach einen Fehler. Versucht es einfach noch einmal, bis
|
||||
ein gültige Ziehung gefunden wurde.
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
Name1 email1@example.com GroupA
|
||||
Name2 email2@example.com GroupB
|
||||
Name3 email3@example.com GroupB
|
||||
Name4 email4@example.com GroupA
|
||||
Bob bob@example.com A
|
||||
Alice alice@example.com A
|
||||
Fred fred@example.com B
|
||||
Gustav gustav@example.com B
|
||||
|
||||
@@ -11,8 +11,9 @@ const mailer = nodemailer.createTransport({
|
||||
});
|
||||
|
||||
function mail(email, name, pick) {
|
||||
mailer.sendMail({
|
||||
from: 'ido@cassiopeia.uberspace.com',
|
||||
mailer.sendMail(
|
||||
{
|
||||
from: "tomru@uber.space",
|
||||
to: email,
|
||||
subject: `Dein Wichtel ${name} ist ...`,
|
||||
text: `Hey ${name},
|
||||
@@ -85,6 +86,10 @@ const run = async () => {
|
||||
people.map(({ name, pick }) => `${name} picked ${pick}`).join("\n")
|
||||
);
|
||||
|
||||
if (dryRun) {
|
||||
console.log("DryRun: did not send emails");
|
||||
return;
|
||||
}
|
||||
people.forEach(p => mail(p.email, p.name, p.pick));
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user