diff --git a/README.md b/README.md
index 5a85240e..ab6e9e10 100644
--- a/README.md
+++ b/README.md
@@ -14,8 +14,7 @@ Automatisierte Impfterminbuchung auf [www.impfterminservice.de](https://www.impf
* Automatisches Suchen und Buchen von Impfterminen
* Suche bei mehreren Impfzentren gleichzeitig
* Warteschlange umgehen
-* Dauerhaft Impf-Code's generieren - egal wo, egal für wen!
-* [BETA Branch (neue, aber noch nicht final getestete Features)](https://github.com/iamnotturner/vaccipy/tree/beta)
+* Dauerhaft Impf-Codes generieren - egal wo, egal für wen!
**[Wusstest du: Du kannst mit einem Impf-Code in mehreren Impfzentren gleichzeitig nach freien Terminen suchen!](https://github.com/iamnotturner/vaccipy/wiki/Ein-Code-fuer-mehrere-Impfzentren)**
@@ -26,21 +25,26 @@ Automatisierte Impfterminbuchung auf [www.impfterminservice.de](https://www.impf
Download neuste Version:
-
+
-
+
+
+#### Probleme beim Ausführen des Windows-Installers?
+[Hier kannst du dir das Projekt komprimiert als `.zip` herunterladen.](https://github.com/iamnotturner/vaccipy/releases/latest/download/vaccipy-windows.zip)
+
+#### Releases
+
+[Hier findest du den neusten Release.](https://github.com/iamnotturner/vaccipy/releases/latest)
+Mehr Informationen, wie die Releases funktionieren findest du [hier](https://github.com/iamnotturner/vaccipy/blob/master/docs/distribution.md).
#### BETA Version
-Der BETA-Branch enthält neue, noch nicht final getestete Features. [Sollten Fehler auftreten könnt ihr hier ein Issue erstellen.](https://github.com/iamnotturner/vaccipy/issues)
+Der [BETA-Branch](https://github.com/iamnotturner/vaccipy/tree/beta) enthält neue, noch nicht final getestete Features. Hierfür gibt es keine Distribution für Windows oder Ubuntu. [Sollten Fehler auftreten könnt ihr hier ein Issue erstellen.](https://github.com/iamnotturner/vaccipy/issues)
-## Releases
-[Link zum neusten Release](https://github.com/iamnotturner/vaccipy/releases/latest)
-Mehr Informationen, wie die Releases funktionieren findest du [hier](https://github.com/iamnotturner/vaccipy/blob/master/docs/distribution.md).
## Ausgangssituation
@@ -55,7 +59,6 @@ Zunächst trägst du deinen "Impf-Code" (*Beispiel: A1B2-C3D4-E5F6*), die PLZ de
und deine Daten (Anschrift, Telefon, Mail) ein, die bei der Terminbuchung angegeben werden sollen.
Du wirst zur Eingabe aufgefordert und deine Daten werden in der Datei `./data/kontaktdaten.json` gespeichert.
-
Nachfolgend werden die zwei Grundfunktionalitäten von `vaccipy` kurz beschrieben.
### [1] Automatisierte Terminbuchung
@@ -81,7 +84,7 @@ Die folgenden Daten werden beim Programmstart benötigt:
`vaccipy` übernimmt für dich die Suche und Buchung eines Impftermin auf [www.impfterminservice.de](https://www.impfterminservice.de/).
Dazu musst du deinen Impf-Code, die PLZ's deiner gewählten Impfzentren und deine Daten beim Start des Tools eintragen. Anschließend beginnt `vaccipy`
-die Suche und frägt in regelmäßigen Abständen (alle 60 Sekunden) verfügbare Termine in den gewählten Impfzentren ab.
+die Suche und fragt in regelmäßigen Abständen (alle 60 Sekunden) verfügbare Termine in den gewählten Impfzentren ab.
Sobald ein Termin verfügbar ist, wird dieser direkt mit den Anfangs eingegeben Daten gebucht und die Suche beendet.
Nach erfolgreicher Buchung erhälst du eine Bestätigungsmail vom Impfterminservice und kannst die Termine auch direkt unter [www.impfterminservice.de](https://www.impfterminservice.de/) einsehen (Bundesland wählen > Impfzentrum wählen > Buchung verwalten).
@@ -103,20 +106,18 @@ Die folgenden Daten werden beim Programmstart benötigt:
#### Ablauf
`vaccipy` kann neben der Terminbuchung dir auch einen Impf-Code generieren - dauerhaft, für jede Person, in jedem Impfzentrum.
-Dazu musst du deine Mailadresse, deine Telefonnummer und die PLZ des gewünschten Impfzentrums eintragen. Anschließend frägt `vaccipy` einen Impf-Code
+Dazu musst du deine Mailadresse, deine Telefonnummer und die PLZ des gewünschten Impfzentrums eintragen. Anschließend fragt `vaccipy` einen Impf-Code
an und du erhälst eine SMS mit einem Bestätigungscode. Diesen Bestätigungscode kannst du anschließend im Tool eintragen. Der Impf-Code wird dir
anschließend per Mail zugesendet.
> Es ist wichtig, dass du den Code entsprechend deiner Altersgruppe auswählst, ansonsten wird dir der Termin vor Ort abgesagt.
> Der Code wird auf [www.impfterminservice.de](https://www.impfterminservice.de/) generiert und ist gültig.
-
## Was passiert mit meinen Daten?
Deine Daten werden **lokal**, also nur bei dir auf dem Computer, in der Datei `./kontaktdaten.json` gespeichert.
Beim nächsten Start kannst du deine Daten direkt laden und musst sie nicht erneut eintragen.
-
## Workflow
@@ -138,9 +139,7 @@ Beim nächsten Start kannst du deine Daten direkt laden und musst sie nicht erne
> Das Einloggen im Script erfolgt lediglich, um eine Übersicht über die zugewiesenen Impfstoffe zu erhalten.
> Sollte der Login mal nicht klappen, ist das nicht weiter tragisch. Die Terminsuche kann fortgesetzt werden.
-
-
-
+>
> Die nachkommenden Schritte erfolgen im Loop. Alle 60 Sekunden werden verfügbare Termine abgerufen und,
> sollten Termine verfügbar sein, ~~der erstbeste~~ ein zufälliger ausgewählt.
>
@@ -161,7 +160,6 @@ Beim nächsten Start kannst du deine Daten direkt laden und musst sie nicht erne
7) Buchen des Impftermins
-
## Termin gebucht, was nun?
Nachdem dein Termin erfolgreich gebucht wurde, erhälst du eine Mail, in der du zunächst deine
@@ -185,6 +183,7 @@ pip3 install -r requirements.txt
```
## Ausführung unter Windows
+
1) [`vaccipy` downloaden](#Downloads)
2) .zip Ordner entpacken
3) Im `windows-terminservice\`-Ordner die `windows-terminservice.exe` ausführen.
@@ -197,7 +196,8 @@ pip3 install -r requirements.txt
>
> "[...] Um das Tool dann zum Laufen zu bringen, könntest du zum Beispiel eine [Ausnahme in den Windows-Sicherheiteinstellungen hinzufügen.](https://support.microsoft.com/de-de/windows/hinzufügen-eines-ausschlusses-zu-windows-sicherheit-811816c0-4dfd-af4a-47e4-c301afe13b26)"
-## Ausführung unter Linux
+## Ausführung unter Linux
+
1) [`vaccipy` downloaden](#Downloads)
2) .zip Ordner entpacken
3) Eventuell notwendig: Die Terminservice- und Driver-Executable ausführbar machen.
@@ -247,11 +247,17 @@ python3 main.py search -f max-mustermann.json
### Optionale Umgebungsvariablen
* `VACCIPY_CHROMEDRIVER`:
- Name oder relativer Pfad der chromedriver Programmdatei, die du verwenden möchtest.
- Dies kann verwendet werden, falls du deine eigene chromedriver-Installation verwenden möchtest
- und wird z. B. auf NixOS benötigt.
- Beispiel: `chromedriver`
-
+ Name oder relativer Pfad der einer alternativen chromedrivers Programmdatei, die du verwenden möchtest.
+
+ Der richtige chromedriver kann durch das setzen der Umgebungsvariable geändert werden (in diesem Fall `chromium.chromedriver`):
+
+ `export VACCIPY_CHROMEDRIVER="chromium.chromedriver"`
+
+ Bei einer nicht aktuellen chromedriver-Version kann es zu folgender Fehlermeldung kommen:
+
+ `[err] [renew_cookies] WebDriverException exception raised - retry 1`
+
+ Dies wird auch z.B. auf NixOS benötigt, um eine eigene chromedriver-Installation zu verwenden.
Für eine bessere Nutzererfahrung erstellen wir verschiedene Distributionen, die ohne Installation von Python direkt ausgeführt werden können.
Die Distributionen können im [neusten Release heruntergeladen werden](https://github.com/iamnotturner/vaccipy/releases/latest).
@@ -260,8 +266,7 @@ Die Distributionen können im [neusten Release heruntergeladen werden](https://g
-
-## [Informationen zu den Distributionen und Shipping findest du hier.](https://github.com/iamnotturner/vaccipy/blob/master/docs/distribution.md)
+## [Informationen zu den Distributionen und Shipping findest du hier](https://github.com/iamnotturner/vaccipy/blob/master/docs/distribution.md)
## Das könnte noch kommen
@@ -279,9 +284,6 @@ werden (von uns oder euch - feel free!) irgendwann hinzukommen:
weshalb folgende Automatisierungen und Erweiterungen **NICHT** kommen werden:
* Möglichkeit zum Eintragen mehrerer Impf-Codes und Kontaktdaten
-* Headless Selenium Support
-
-
## Bedanken?
@@ -312,4 +314,3 @@ save da world. my final message. goodbye.
-
diff --git a/docs/distribution.md b/docs/distribution.md
index 6eba3697..76450399 100644
--- a/docs/distribution.md
+++ b/docs/distribution.md
@@ -36,7 +36,7 @@ Es gibt aktuell zwei aktive Worklflows:
### Wie werden Releases erstellt ?
-Um ein neues Release zu erstellen, muss ein neues Tag (dessen Name mit `v` starten bsp. `v0.1`) zu dem neuesten Stand (Commit) erst hinzugefügt und dann gepushed werden. Das startet den [Deploy Workflow](https://github.com/iamnotturner/vaccipy/actions/workflows/deploy.yaml).
+Um ein neues Release zu erstellen, muss ein neues Tag (dessen Name mit `v` starten und im Format vx.y.z ist bsp. `v1.1.0`) zu dem neuesten Stand (Commit) erst hinzugefügt und dann gepushed werden. Das startet den [Deploy Workflow](https://github.com/iamnotturner/vaccipy/actions/workflows/deploy.yaml).
### Wie werden Distributionen erstellt ?
@@ -75,6 +75,14 @@ Im [Deploy Workflow](https://github.com/iamnotturner/vaccipy/actions/workflows/d
**Tipp:** Zum erstellen und bearbeiten des .iss Scripts empfiehlt sich der `Inno Script Studio script editor` welcher im [QuickStart Pack](https://jrsoftware.org/download.php/ispack.exe) vorhanden ist.
+#### Permissions
+Wenn vaccipy files oder folder bearbeiten können soll, bspw. die `kontaktdaten.json`, müssen die entsprechenden Rechte vergeben werden. Diese werden in der `.iss` file gesetzt.
+
+⚠️ Wichtig:
+>"It is not recommended that you use this parameter if you aren't familiar with ACLs or why you would need to change them, because misusing it could negatively impact system security"
+
+
#### Resources
- [pyinstaller docs](https://pyinstaller.readthedocs.io/en/stable/index.html)
- [Inno Setup](https://jrsoftware.org/isinfo.php)
+- [Inno Setup Permissions](https://jrsoftware.org/ishelp/index.php?topic=dirssection)
diff --git a/main.py b/main.py
index df59b08a..31fafc66 100755
--- a/main.py
+++ b/main.py
@@ -73,7 +73,7 @@ def update_kontaktdaten_interactive(
if "strasse" not in kontaktdaten["kontakt"] and command == "search":
input_kontaktdaten_key(
- kontaktdaten, ["kontakt", "strasse"], "> Strasse: ")
+ kontaktdaten, ["kontakt", "strasse"], "> Strasse (ohne Hausnummer): ")
if "hausnummer" not in kontaktdaten["kontakt"] and command == "search":
input_kontaktdaten_key(