Skip to main content

A package to monitor court RSS feeds for keywords.

Project description

CourtRSS 📡

Most federal district courts have RSS feeds with updates on their latest docket entries. CourtRSS makes it easy to stay informed in real-time by polling these and searching for keywords that interest you. If a match is found, CourtRSS displays an alert window or sends a message through Discord webhooks.

Features 🚀

  • Monitor multiple RSS feeds: Add as many RSS feeds as you like and track them all.
  • Customizable keyword search: Define keywords to trigger notifications based on the feed content.
  • Multiple notification methods:
    • A full-screen green window with a clickable link.
    • Discord webhook notifications.
  • Retry logic for failed feed fetches (with configurable retry attempts and intervals).
  • Easy configuration through a YAML file or CLI arguments.

How It Works 👇

You can install CourtRSS directly from PyPI:

pip install courtrss

Usage 🎯

Once installed, you can run CourtRSS in two ways:

1. Using a YAML Configuration File

This is the easiest and most flexible option. Here's how you can set it up:

rss_urls:
  - https://example.com/rss_feed_1
  - https://example.com/rss_feed_2

keywords:
  - "Neonode"
  - "Tapestry"

interval: 60  # Time interval between feed checks in seconds
retries: 3    # How many times to retry fetching a failed feed
retry_interval: 20  # How long to wait between retries in seconds

notifications:
  - type: window_notification
  - type: discord_webhook
    webhook_url: https://discord.com/api/webhooks/your_webhook_url_here

To run CourtRSS with this config, just call it with the --config argument:

courtrss --config /path/to/config.yaml

2. Using CLI Arguments

If you prefer the command line, you can directly pass RSS URLs and keywords as comma-separated arguments. Like this:

courtrss --rss_urls "https://example.com/rss1,https://example.com/rss2" --keywords "Neonode,Tapestry" --interval 60 --retries 3 --retry_interval 20

This will check the provided feeds every 60 seconds, retry up to 3 times on failure, and notify you about matching entries.

Examples 🎉

Example 1: Court RSS Monitoring with Green Window Notification

Let’s say you want to monitor a couple of court RSS feeds for the keywords "Apple" and "Cisco", and get notified via the full-screen green window:

rss_urls:
  - https://court.example.com/rss_feed_1
  - https://court.example.com/rss_feed_2

keywords:
  - "Apple"
  - "Cisco"

interval: 60

notifications:
  - type: window_notification

Run it like this:

courtrss --config court_monitor.yaml

Every time a keyword match is found, you’ll get a big, green window notifying you about it!

Example 2: Monitoring with Discord Webhook Notifications

You can send the notifications straight to your Discord server. Set up your config.yaml like this:

rss_urls:
  - https://court.example.com/rss_feed_1
  - https://court.example.com/rss_feed_2

keywords:
  - "Verdict"
  - "Sentencing"

interval: 120  # Every 2 minutes

notifications:
  - type: discord_webhook
    webhook_url: https://discord.com/api/webhooks/your_webhook_url_here

Now, CourtRSS will send you messages in your Discord channel whenever a match occurs.

Configuration Options 🔧

  • rss_urls: List of RSS feed URLs you want to monitor.
  • keywords: Keywords that will trigger notifications if found in the feed title or summary.
  • interval: Time interval (in seconds) between checks. Default is 60 seconds.
  • retries: Number of retries if fetching the feed fails (e.g., server issues). Default is 3 retries.
  • retry_interval: Time (in seconds) between retries. Default is 60 seconds.
  • notifications: List of notification methods:
    • type: Notification type, either window_notification or discord_webhook.
    • webhook_url: (Only for Discord) The URL of the Discord webhook.

Why CourtRSS? 🤷

  • Real-time notifications: Stay updated as soon as new information comes in.
  • Customizable alerts: Choose between a big, eye-catching green window or a subtle Discord message.
  • Reliable: Built-in retry mechanism ensures you’re not missing anything if a feed is temporarily down.

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

courtrss-0.1.1.tar.gz (3.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

courtrss-0.1.1-py3-none-any.whl (3.9 kB view details)

Uploaded Python 3

File details

Details for the file courtrss-0.1.1.tar.gz.

File metadata

  • Download URL: courtrss-0.1.1.tar.gz
  • Upload date:
  • Size: 3.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.3

File hashes

Hashes for courtrss-0.1.1.tar.gz
Algorithm Hash digest
SHA256 32a186f51362dab52bc94e6b4a747f6847ca55910adbd9cc011891d8aa3f5587
MD5 8236d9070e5f3d83477d99594877a892
BLAKE2b-256 c95ed322934c0c1dd5fd27a4c8a7c6f4b3db6bfddc319f55dd75386075134aa3

See more details on using hashes here.

File details

Details for the file courtrss-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: courtrss-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 3.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.3

File hashes

Hashes for courtrss-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 1662d32a9af02da4cfbed6800314dd12f7979867cc924ac50688dff504657f6e
MD5 f2f7518456f1166e454993baa014aa80
BLAKE2b-256 ca578ddc0d41411d15a9cff6c7b48ce1c6ccb6eb99bcede67c34f59297161669

See more details on using hashes here.

Supported by

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