Skip to main content

Lightweight polling and notification framework

Project description

pypoller

Overview

pypoller is a lightweight and easy-to-use framework for polling a resource at regular intervals and providing notifications on any updates. It is designed to simplify the process of monitoring a remote service for changes and alerting users or systems when relevant updates occur.

Detailed docs available here.

Features

  • Polling: The library allows you to define a polling interval, specifying how frequently the resource should be checked for updates.

  • Notifications: When a change is detected in the service, the library supports customizable notification mechanisms. Currently messaging via Twilio is implemented.

  • Configurability: The library is highly configurable and extensible. Adding support for any notification mechanism or resource should be seamless.

Currently implemented resource checkers:

  • US Visa appointments
  • Parks Canada campsites

Currently implemented notifier:

  • SMS (via Twilio)
  • Rocket.Chat

All submodules can be used independently as well. For example, to check for availability of US Visa appointments:

UGANDA_EMBASSY = "en-ug"
SCHEDULE_ID = "50295138"
FACILITY_ID = "106"
USER_EMAIL = "user_email"
PASSWORD = "password"

# Initialize resource checker for US Visa availability
availability_checker = USVisaResourceChecker(
    UGANDA_EMBASSY, SCHEDULE_ID, FACILITY_ID, USER_EMAIL, PASSWORD
)

date_range_request = DateRangeRequest(
    start_date=dt.datetime(2024, 3, 14),
    end_date=dt.datetime(2025, 7, 1),
)

response = availability_checker.check_resource(date_range_request)

Installation

pip install pypoller

For playwrigt (US Visa):

playwright install chromium

Usage

Refer to examples to learn how to use the library.

To provide twilio / rocketchat credentials for the examples, create a .env file by copying the env.sample file, and replace the placeholder twilio parameters to enable notifications via SMS.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pypoller-0.1.6.tar.gz (12.3 kB view hashes)

Uploaded Source

Built Distribution

pypoller-0.1.6-py3-none-any.whl (20.2 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page