Giter Site home page Giter Site logo

jurgispods / 116117bot Goto Github PK

View Code? Open in Web Editor NEW

This project forked from joshuajung/116117bot

0.0 1.0 0.0 126 KB

A proof of concept bot, checking impfterminservice.de for available COVID-19 vaccination appointments.

License: MIT License

TypeScript 97.38% Dockerfile 2.62%

116117bot's Introduction

116117bot

What is this?

The 116117 Impfterminservice provides COVID-19 vaccination appointments for a wide range of German states. Unfortunately, it does not alert registered users when appointments become available, so users are required to manually monitor it. This is a proof of concept for a simple Puppeteer-powered bot that monitors the site and alerts via STDOUT and optionally push notification once appointments are available.

🦠 Please use this responsibly to keep it available and functional.

You may also like…

…my project Impfterminmonitor.de, which provides an easy way to track appointment availability using a clean web interface.

Requirements

  • Node.js (>v14)
  • If you want to receive push notifications for available appointments, a Pushover account.
  • On or multiple URLs to be monitored (see below).

Input URLs

116117bot requires one or multiple URLs to be monitored as its input. Right now, two types of URLs are supported:

  1. URLs like https://123-iz.impfterminservice.de/impftermine/service?plz=12345. You are redirected to these in the browser after you have selected a location for vaccination on impfterminservice.de. You can copy them from the browser address bar.
  2. URLs like https://123-iz.impfterminservice.de/terminservice/suche/XXXX-XXXX-XXXX/12345/. These are provided via e-mail after elegibility for a vaccination has been confirmed.

Configuration

116117bot reads all configuration from environment variables. Only one is actually required:

Variable Required Default Description
URLS The URLs to be monitored (see above). If you provide more than one separated by commas, they will be checked round-robin style.
VACCINATION Specific vaccination name to check for, one of: BioNTech, Moderna, AstraZeneca
PUSHOVER_TOKEN If you want to receive alerts via Pushover, the app token generated there.
PUSHOVER_USER If you want to receive alerts via Pushover, the recipient ID (user or group) generated there.
TIMEOUT_REGULAR 300 The number of seconds 116117bot will wait between polls.
TIMEOUT_ERROR 300 The number of seconds 116117bot will pause in case an error has been encountered during a poll.
NO_PUPPETEER_SANDBOX false Set this to true to run Puppeteer without a sandbox. This is required for some hosting services.
LOG_HTML false Set this to true to log raw HTML from polls (if it has changed).
HEADLESS false Set this to true to run Puppeteer in headless mode.
PORT 3000 The port 116117bot will run on. It is not actively used at this point, but should still be available.

Installing dependencies

$ npm install

Startup

$ npm start

Run inside a docker container

Build the docker container inside the repository folder:

$ docker build -t 116117bot .

Run the docker container:

$ docker run --name 116117bot -e URLS="YourUrlHere" 116117bot

Contributing

While PRs to this repo are very welcome, please treat it more as a template for your own expriments than as a single point of truth. My time with this project is limited, so it may take a few days until I can review and merge changes. Before you open a PR, kindly run npm run prettify once to format your code.

116117bot's People

Contributors

joshuajung avatar sbonfert avatar sanzaru avatar jurgispods avatar

Watchers

Tobias Köck avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.