All Projects → sibalzer → impfbot

sibalzer / impfbot

Licence: GPL-3.0 license
Benachrichtigungs-Bot für das niedersächische Impfportal / Notification bot for the lower saxony vaccination portal https://impfportal-niedersachsen.de

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to impfbot

vaccipy
Automatische Impfterminbuchung für www.impfterminservice.de
Stars: ✭ 548 (+1381.08%)
Mutual labels:  corona, vaccination, covid-19, impftermin
impf-botpy
Impf Bot.py 🐍⚡ – Automatisierung für den Corona ImpfterminService Bot
Stars: ✭ 254 (+586.49%)
Mutual labels:  vaccination, covid-19, impftermin
coronainfobd
Real-time corona-virus tracker of Bangladesh 🇧🇩 which includes latest updates, data visualization, public awareness from WHO and some advice to aware people. 🥰❤
Stars: ✭ 46 (+24.32%)
Mutual labels:  corona, covid-19
Corona Cli
🦠 Track the Coronavirus disease (COVID-19) in the command line. Worldwide for all countries, for one country, and the US States. Fast response time (< 100ms). To chat: https://twitter.com/MrAhmadAwais/
Stars: ✭ 1,812 (+4797.3%)
Mutual labels:  corona, covid-19
CovidVaccineNotifier
Get notified with available vaccination centres via SMS
Stars: ✭ 21 (-43.24%)
Mutual labels:  vaccination, covid-19
berlin corona cases
Scraper for the official dashboard with current Corona case numbers, traffic light indicators ("Corona-Ampel") and vaccination situation for Berlin.
Stars: ✭ 19 (-48.65%)
Mutual labels:  corona, vaccination
COVID-19-AI
Collection of AI resources to fight against Coronavirus (COVID-19)
Stars: ✭ 25 (-32.43%)
Mutual labels:  corona, covid-19
COVID-19-DETECTION
Detect Covid-19 with Chest X-Ray Data
Stars: ✭ 43 (+16.22%)
Mutual labels:  corona, covid-19
CoronaVirusOutbreakAPI
A tiny and small program to crawler and analyze outbreak of COVID-19 in world and every country using PHP.
Stars: ✭ 20 (-45.95%)
Mutual labels:  corona, covid-19
corona cases
🦠 Coronavirus Information on Telegram Chatbot
Stars: ✭ 19 (-48.65%)
Mutual labels:  corona, covid-19
cwa-qr
Python Implementation of the CoronaWarnApp (CWA) Event Registration
Stars: ✭ 17 (-54.05%)
Mutual labels:  corona, covid-19
covid19-timeseries
Covid19 timeseries data store
Stars: ✭ 38 (+2.7%)
Mutual labels:  corona, covid-19
covid
COVID-19 cases around the world.
Stars: ✭ 14 (-62.16%)
Mutual labels:  corona, covid-19
cli-corona
📈 Track COVID-19 (2019 novel Coronavirus) statistics via the command line.
Stars: ✭ 14 (-62.16%)
Mutual labels:  corona, covid-19
Cwa Server
Backend implementation for the Apple/Google exposure notification API.
Stars: ✭ 1,776 (+4700%)
Mutual labels:  corona, covid-19
COVID-19-STAT
A web application to keep track of COVID-19 numbers & growth across the world
Stars: ✭ 19 (-48.65%)
Mutual labels:  corona, covid-19
Api
API for Current cases and more stuff about COVID-19 and Influenza
Stars: ✭ 2,323 (+6178.38%)
Mutual labels:  corona, covid-19
covid-19-image-repository
Anonymized dataset of COVID-19 cases with a focus on radiological imaging. This includes images (x-ray / ct) with extensive metadata, such as admission-, ICU-, laboratory-, and patient master-data.
Stars: ✭ 42 (+13.51%)
Mutual labels:  corona, covid-19
rcvr-app
recover provides localities a privacy-compliant, safe, and easy way for their guests to check in. See https://www.recoverapp.de/ for more details.
Stars: ✭ 43 (+16.22%)
Mutual labels:  corona, covid-19
covid-br
COVID dashboard status from Brazil.
Stars: ✭ 28 (-24.32%)
Mutual labels:  corona, covid-19

Benachrichtigungs-Bot für das niedersächische Impfportal 🐴

GitHub tag (latest by date) codecov Python GitHub license

English version here.

Ein kleines Wochenend-Projekt von mir. Der Bot überwacht die REST-API des niedersächsischen Impfportals (https://impfportal-niedersachsen.de) auf freie Impfslots und sendet eine Benachrichtigung mit deinem bevorzugtem Service. Ab da gilt leider: der Schnellste gewinnt. Bitte missbraucht den Bot nicht und verwendet moderate Intervalle.

🤖 Features

  • Automatisches Suchen von kurzfristigen Impfterminen
  • Benachrichtigungen über E-Mail, Telegram und vielen anderen Services
  • Öffnet deinen Browser automatisch wenn ein Termin gefunden wurde. Du musst nur noch deine Daten eingeben!
  • Einfaches Einrichten mit GUI-Interface

Was der impfbot nicht macht: Den Termin für dich reservieren und/oder deine Daten automatisch eingeben.

⚠️ Achtung

Die Nutzung des Bots garantiert nicht, einen Impftermin zu bekommen. Bitte nutze zusätzlich auch die Warteliste deines zuständigen Impfzentrums und deines Hausarztes!

⚙️ Setup

Voraussetzungen

📝 Anleitung - Schritt für Schritt

Am Beispiel von Windows:

  1. Python von hier runderladen und installieren: https://www.python.org/downloads/
  2. Den Bot runterladen (Rechts bei den Releases oder hier)
  3. Das Archiv (Die Zip-Datei) entpacken
  4. config.example.ini nach config.ini umbennen und deine Daten eintragen (PLZ, Geburtstag, Email-Server-Daten
  5. Doppelklick auf windows_validate.bat, um die Einstellungen zu prüfen
  6. Doppelklick auf windows_start.bat

Wer den Impfbot auf seinem Android-Smartphone laufen lassen möchte, liest hier weiter.

Für Fortgeschrittene steht alternativ auch ein Docker-Container zur Verfügung. Siehe dazu docker. Das Validieren der Config funktioniert über den Befehl docker exec impfbot python src/validate_config.py -a.

📣 Einrichten von Telegram

  1. https://t.me/BotFather anschreiben und Bot erstellen. Den Token dann in die config.ini kopieren.

Folgende Schritte muss für jeden ausgeführt werden, der Nachrichten empfangen will

  1. https://t.me/userinfobot anschreiben und "Id"-Nummer in die config.ini kopieren (mehrere Nummern mit , getrennt).
  2. Mit dem eigenen Bot muss vorher eine Konversation begonnen werden! (URL steht in der Botfather-Nachricht, dort /start drücken)
  3. Validieren, dass auch alles funktioniert: Doppelklick auf windows_validate.bat

🛠️ config.ini Parameter

Deine Daten werden nur lokal gespeichert!

  • [COMMON]: Allgemeine Einstellungen
    • birthdate - Dein Geburtstag - Da die Verteilung vom Alter abhängig ist, ist dieser zwingend notwendig. Beispiel: 23.06.1912
    • group_size - Gruppengröße - Wenn du lieber einen Gruppentermin suchen möchtest musst du birthdate auskommentieren und eine Gruppengröße angeben (zwischen 2 und 15). Es darf nur eins von beiden in der Config sein! Beispiel: 5
    • zip_code - Fünfstellige PLZ für das Impfzentrum, das der Bot überwachen soll. Beispiel: 49123
    • with_vector - Für die unter 60-Jährigen: Soll auch nach Vector-Impfstoffen gesucht werden? Beispiel: true
  • [EMAIL]: E-Mail-Einstellungen. Bei manchen Anbietern müssen vorher bestimmte Einstellungen gemacht werden, eine Sammlung von Anleitungen findet ihr hier.
    • enable - Legt fest, ob E-Mails versendet werden sollen. true wenn ja, sonst false.
    • sender - Die E-Mail-Adresse, von der die Benachrichtigungen versendet werden sollen. Beispiel: [email protected]
    • user - Login Name für den SMTP-Server (in den meisten Fällen identisch mit der Absender Adresse)
    • password - Das Passwort für die Absender-E-Mail-Adresse.
    • server - Der SMTP-Server. Beispiel: smtp.server.tld
    • port - Der Port für den SMTP-Server. Beispiel: 465
    • receivers - E-Mail Empfänger Liste - Trag hier auch deine Absender-Adresse ein, wenn du selber Mails empfangen möchtest (Mit Kommata getrennt). Beispiel: [email protected],[email protected],[email protected] oder (nur an sich selbst) [email protected]
  • [TELEGRAM]:Telegram-Einstellungen
    • enable - Legt fest, ob Telegram-Nachrichten versendet werden sollen. true wenn ja, sonst false.
    • token - Bot-Token - Dieser zunächst beim BotFather generiert werden: https://t.me/BotFather
    • chat_ids - User-IDs der Empfänger - Die bekommst du am einfachsten wenn du den User-Info-Bot anschreibst https://t.me/userinfobot. Da bekommst du eine Id, die hier eingetragen werden muss. Mehrere Id's durch Kommata trennen.
  • [WEBBROWSER]: Webbrowser-Einstellungen
    • enable - Legt fest, ob der Browser automatisch geöffnet werden soll. (Nur auf Desktop-Systemen) true wenn ja, sonst false.
  • [APPRISE] Verschiedene Benachrichtigungsservices (So ziemlich alles was man sich vorstellen kann).
    • enable - 'true' wenn Apprise verwendet werden soll, sonst 'false'
    • service_uris - Service URIs. Für mehr Informationen: Apprise Documentation (Mehrere URIs durch Kommata trennen)
  • [ADVANCED]: Einstellungen für Fortgeschrittene, hier wird's experimentell
    • cooldown_between_requests - Wartezeit zwischen den Abfragen; Eine zu kleine Wartezeit führt zu einem IP-Ban (Default: 1 min, kann aber empirisch verkleinert werden)
    • cooldown_between_failed_requests - Wartezeit zwischen fehlgeschlagenen Versuchen. Bei jedem weiteren wird die Wartezeit nochmal hinzuaddiert, um einen IP Ban zu verhindern. D.h. fünf Fehlschläge = Wartezeit von 5*15s bis zum nächsen Aufruf
    • cooldown_after_ip_ban - Wenn eine Abfrage 10x fehlschlaegt, ist die IP vermutlich gebannt. Standardmaeßig wird dann 3 h gewartet.
    • cooldown_after_success - Cooldown, nachdem ein Impftermin gefunden wurde. Standardmaeßig wird dann 15 min gewartet (in Sekunden)
    • jitter - Zufällige Zeitspanne von 0-jtter Sekunden, die auf die Wartezeiten addiert wird (Default: 5)
    • sleep_at_night - Legt fest, ob der Bot nachts schlafen soll (Default: true, da eh keine Termine veröffentlicht werden)
    • user_agent- Der User Agent, der im Header übermittelt wird (Default: impfbot)

Beispiel Config:

[COMMON]
zip_code=42042
birthdate=23.06.1912
with_vector=true

[EMAIL]
enable=true
sender[email protected]
user=username
password=xxxxxx
server=smtp.server.de
port=465
receivers[email protected],[email protected],[email protected]

[TELEGRAM]
enable=true
token=TOKEN
chat_ids=123456789,987654321

[WEBBROWSER]
enable=true

[APPRISE]
enable=false
service_uris=discord://webhook_id/webhook_token,matrix://hostname

[ADVANCED]
cooldown_between_requests=60
cooldown_between_failed_requests=10
cooldown_after_ip_ban=10800
cooldown_after_success=900
jitter=5
sleep_at_night=true
user_agent=impfbot

Sonstiges

🙋 Feedback & Probleme beim Einrichten

Schreib hier oder twitter mich an.

Sponsoring

Dir hat der impfbot geholfen und du möchtest monetär etwas beitragen? Dann spende doch unter dieser Spendenaktion an Ärzte ohne Grenzen. (Ja, etwas abgekupfert von vaccipy. Aber ich fand die Idee gut.)

🙏 Vielen Dank an:

  • paulypeter - Telegram Integration, Config-GUI & mehr
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].