Burgeramt-appointments-websockets - Fetch Bürgeramt appointments and broadcast them via websockets

Overview

Bürgeramt appointment finder

This server looks for Bürgeramt appointment every few seconds, and broadcasts the results via websockets. This is the code behind https://allaboutberlin.com/appointments

Setup

Standalone

pip install -r requirements.txt
python3 appointments.py

Docker

A Dockerfile is supplied with the repository.

Comments
  • Question to change the service

    Question to change the service

    Hey,

    I have a question related to this tool. is it possible to search for appointments for a specific service I am looking for? I am looking to book an appointment to change my passport info on the blue card. Thanks in advance

    https://service.berlin.de/dienstleistung/326798/en/

    opened by rockey5520 3
  • Not an issue, but I must say a thousand thanks

    Not an issue, but I must say a thousand thanks

    As a young software developer new in Berlin I had to accept a job offer but the next appointment for anmeldung was in 8 weeks, thanks to your tool I got one the same day. For you it must be insignificant and you will have received thousands of similar messages but for me it means the world. Thanks ❤️

    opened by gerardmarquinarubio 1
  • Send last message on client connect rather than broadcast

    Send last message on client connect rather than broadcast

    When a client joins the server, only that client needs the last_message and a broadcast to all is not really needed.

    This avoid processing in the server side + makes the response frequency/events more expectable if that makes sense.

    opened by JavierLuna 1
  • Duplicate Dates in the appointmentDates Array

    Duplicate Dates in the appointmentDates Array

    Description

    Sometimes in the Output results, there are duplicate dates in the appointmentDates array. I suppose from the web requests its happening and needs to be handled accordingly.

    Actual Result

    The following values are repeated {'time':` '2022-02-01T14:01:50Z', 'status': 200, 'message': None, 'appointmentDates': ['2022-02-01T00:00:00Z', '2022-03-01T00:00:00Z', '2022-03-01T00:00:00Z', '2022-03-09T00:00:00Z', '2022-03-09T00:00:00Z', '2022-03-28T00:00:00Z', '2022-03-28T00:00:00Z', '2022-03-29T00:00:00Z', '2022-03-29T00:00:00Z', '2022-03-31T00:00:00Z', '2022-03-31T00:00:00Z'], 'connectedClients': `0}

    Expected Result

    Duplicate Values should be removed.

    Recommendation

    For Example:

    # using naive method
    # to remove duplicated 
    # from list 
    res = []
    for i in test_list:
        if i not in res:
            res.append(i)
    
    opened by 0xSh1v4 1
  • Raise exception when required env vars are not present

    Raise exception when required env vars are not present

    Raising an exception when the required environment variables are not present will prevent the server from running either way and sending None as the email and tool id.

    Additonally, when the server starts running, an info message is emited for better debugging.

    opened by JavierLuna 0
  • Replace requests lib with aiohttp for non-blocking appointment fetching

    Replace requests lib with aiohttp for non-blocking appointment fetching

    The function that fetches appointments was blocking the main thread, mainly because it was using the requests library that does not support async/await.

    That meant that during the get_appointment duration (which was ~ the latency of 2 requests + 1 second of sleep) the websocket server was not able to attend new connections and clients would need to wait until the thread was freed to establish connection.

    Moving to the aiohttp library constantly frees the main thread so it is able to attend new incoming connections, thus making the experience more responsive for clients

    opened by JavierLuna 0
  • Telegram Notification Functionality Added

    Telegram Notification Functionality Added

    Description

    The telegram notification functionality is added to the existing application. Therefore, one can setup his telegram bot and receive the message every 30 seconds regarding the status. If the appointment dates are available, then the person will receive the message along with the available dates and appointment URL.

    Screenshot

    telegram

    Output

    The next appointment for flat registration is available on the following dates 29-Mar-2022 Please use this URL to book the appointment faster: (https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&anliegen[]=120686&dienstleisterlist=122210,122217,327316,122219,327312,122227,327314,122231,122243,327348,122252,329742,122260,329745,122262,329748,122254,329751,122271,327278,122273,327274,122277,327276,330436,122280,327294,122282,327290,122284,327292,327539,122291,327270,122285,327266,122286,327264,122296,327268,150230,329760,122301,327282,122297,327286,122294,327284,122312,329763,122314,329775,122304,327330,122311,327334,122309,327332,122281,327352,122279,329772,122276,327324,122274,327326,122267,329766,122246,327318,122251,327320,122257,327322,122208,327298,122226,327300&herkunft=http%3A%2F%2Fservice.berlin.de%2Fdienstleistung%2F120686%2F)

    opened by 0xSh1v4 3
Owner
null
An IPC based on Websockets, fast, stable, and reliable

winerp An IPC based on Websockets. Fast, Stable, and easy-to-use, for inter-communication between your processes or discord.py bots. Key Features Fast

Black Thunder 5 Aug 9, 2022
Elegant WebSockets for your Flask apps.

Flask-Sockets Elegant WebSockets for your Flask apps. Simple usage of route decorator: from flask import Flask from flask_sockets import Sockets app

Heroku Python Team 1.7k Dec 26, 2022
Chat app for Django, powered by Django Channels, Websockets & Asyncio

Django Private Chat2 New and improved https://github.com/Bearle/django-private-chat Chat app for Django, powered by Django Channels, Websockets & Asyn

Bearle 205 Dec 30, 2022
WebSocket implementation in Python built on top of websockets python library. Similar to Node.js's ws.

ws WebSocket implementation in Python built on top of websockets python library. Similar to Node.js's ws. Basic usage. server.py import ws server = w

AceExpert 7 Jun 27, 2022
Connects microservices through a mesh of websockets

WebMesh WebMesh is a WebSocket based communication library for microservices. It uses a WebSocket server based on wsproto that distributes clients on

Charles Smith 9 Apr 29, 2022
A Security Tool for Enumerating WebSockets

STEWS: Security Testing and Enumeration of WebSockets STEWS is a tool suite for security testing of WebSockets This research was first presented at OW

null 175 Jan 1, 2023
WebSocket and WAMP in Python for Twisted and asyncio

Autobahn|Python WebSocket & WAMP for Python on Twisted and asyncio. Quick Links: Source Code - Documentation - WebSocket Examples - WAMP Examples Comm

Crossbar.io 2.4k Jan 4, 2023
Library for building WebSocket servers and clients in Python

What is websockets? websockets is a library for building WebSocket servers and clients in Python with a focus on correctness and simplicity. Built on

Aymeric Augustin 4.3k Jan 4, 2023
Python Socket.IO server and client

python-socketio Python implementation of the Socket.IO realtime client and server. Version compatibility The Socket.IO protocol has been through a num

Miguel Grinberg 3.2k Dec 31, 2022
Websockify is a WebSocket to TCP proxy/bridge. This allows a browser to connect to any application/server/service. Implementations in Python, C, Node.js and Ruby.

websockify: WebSockets support for any application/server websockify was formerly named wsproxy and was part of the noVNC project. At the most basic l

noVNC 3.3k Jan 3, 2023
This websocket program is for data transmission between server and client. Data transmission is for Federated Learning in Edge computing environment.

websocket-for-data-transmission This websocket program is for data transmission between server and client. Data transmission is for Federated Learning

null 9 Jul 19, 2022
Whatsapp Clone using django, django-channels and websocket

whatsapp-clone Whatsapp Clone using django, django-channels and websocket Features : Signup/Login One on One personal chat with other user Some screen

Anshu Pal 14 Dec 25, 2022
A simple texts communication platform using pygame and sockets.

Python Tchat A simple texts communication platform using pygame and sockets. How to install ? You need a python 3.8.6 server with at least one opened

Yohann Boniface 7 Jan 23, 2022
Get realtime updates in your mobile/web app from frappe and erpnext

Fsocket Extend frappe's websocket server using socket.io and redis Installation Use frappe bench to add fsocket in your project $ bench get-app https:

null 21 Sep 25, 2022
A websocket client for Source Filmmaker intended to trasmit scene and frame data to other applications.

SFM SOCK A websocket client for Source Filmmaker intended to trasmit scene and frame data to other applications. This software can be used to transmit

KiwifruitDev 2 Jan 8, 2022
Simplest way to find Appointments in Bürgeramt Berlin, Not over engineered.

Simplest way to find Appointments in Bürgeramt Berlin, Not over engineered. Der einfachste Weg, Termine im Bürgeramt Berlin zu finden, ohne viel Schnickschnack.

Jannis 8 Nov 25, 2022
One version package to rule them all, One version package to find them, One version package to bring them all, and in the darkness bind them.

AwesomeVersion One version package to rule them all, One version package to find them, One version package to bring them all, and in the darkness bind

Joakim Sørensen 39 Dec 31, 2022
A fast and durable Pub/Sub channel over Websockets. FastAPI + WebSockets + PubSub == ⚡ 💪 ❤️

⚡ ??️ FastAPI Websocket Pub/Sub A fast and durable Pub/Sub channel over Websockets. The easiest way to create a live publish / subscribe multi-cast ov

null 8 Dec 6, 2022
This Tool can help enginners and biggener in network, the tool help you to find of any ip with subnet mask that can calucate them and show you ( Availble IP's , Subnet Mask, Network-ID, Broadcast-ID )

This Tool can help enginners and biggener in network, the tool help you to find of any ip with subnet mask that can calucate them and show you ( Availble IP's , Subnet Mask, Network-ID, Broadcast-ID )

null 12 Dec 13, 2022
This script fully automates of downloading tiktok videos, editing them,compiling them and finally uploading them to youtube.

This script fully automates of downloading tiktok videos, editing them,compiling them and finally uploading them to youtube. If you wanted to create a tiktok video compiilation youtubbe channel this script is here to help you :D

Supriyo Sarkar 32 Dec 16, 2022