Skip to content
This repository has been archived by the owner on Jul 9, 2024. It is now read-only.

Commit

Permalink
Merge remote-tracking branch 'upstream/beta' into gui
Browse files Browse the repository at this point in the history
  • Loading branch information
Floskinner committed May 28, 2021
2 parents 711b0b6 + c5b9a23 commit 8a605c4
Show file tree
Hide file tree
Showing 9 changed files with 345 additions and 145 deletions.
1 change: 1 addition & 0 deletions .github/workflows/deploy.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,7 @@ jobs:
- uses: marvinpinto/action-automatic-releases@latest
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
prerelease: false
files: |
vaccipy-windows-installer/vaccipy_installer.exe
vaccipy-windows/vaccipy-windows.zip
Expand Down
59 changes: 30 additions & 29 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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)**

Expand All @@ -26,21 +25,26 @@ Automatisierte Impfterminbuchung auf [www.impfterminservice.de](https://www.impf
Download neuste Version:

<a href="https://cntr.click/rS9Ds4R">
<a href="https://github.com/iamnotturner/vaccipy/releases/latest/download/vaccipy_installer.exe">
<img width="60" height="50" src="https://upload.wikimedia.org/wikipedia/de/thumb/c/c2/Microsoft_Windows_7_logo.svg/2000px-Microsoft_Windows_7_logo.svg.png">
</a>
<a href="https://cntr.click/mN1MPzc">

<a href="https://github.com/iamnotturner/vaccipy/releases/latest/download/vaccipy-ubuntu.zip">
<img width="90" heigth="30" src=https://logos-world.net/wp-content/uploads/2020/11/Ubuntu-Emblem.png>
</a></br></br>

#### 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

Expand All @@ -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
Expand All @@ -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).
Expand All @@ -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

<img src="https://github.com/iamnotturner/vaccipy/blob/master/images/workflow.png">
Expand All @@ -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.
>
Expand All @@ -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
Expand All @@ -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.
Expand All @@ -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.
Expand Down Expand Up @@ -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).
Expand All @@ -260,8 +266,7 @@ Die Distributionen können im [neusten Release heruntergeladen werden](https://g

<img src="https://github.com/iamnotturner/vaccipy/blob/master/images/beispiel_programmdurchlauf.png">


## [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

Expand All @@ -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?

Expand Down Expand Up @@ -312,4 +314,3 @@ save da world. my final message. goodbye.
<a href="https://www1.wdr.de/nachrichten/themen/coronavirus/impftermine-online-buchen-100.html">
<img width=100 src=https://upload.wikimedia.org/wikipedia/commons/thumb/9/9b/WDR_Dachmarke.svg/2000px-WDR_Dachmarke.svg.png>
</a>

10 changes: 9 additions & 1 deletion docs/distribution.md
Original file line number Diff line number Diff line change
Expand Up @@ -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).
</br>

### Wie werden Distributionen erstellt ?
Expand Down Expand Up @@ -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)
Loading

0 comments on commit 8a605c4

Please sign in to comment.