# 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:
```bash
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:
```yaml
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:
```bash
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:
```bash
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:
```yaml
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:
```bash
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:
```yaml
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.
Raw data
{
"_id": null,
"home_page": "https://github.com/jonmest/CourtRSS",
"name": "courtrss",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.6",
"maintainer_email": null,
"keywords": null,
"author": "Jon Cavallie Mester",
"author_email": null,
"download_url": "https://files.pythonhosted.org/packages/35/19/1f97a10407560d2b68e2620b7c8f03b2510ddfbb8bdd893e2d93101eceb8/courtrss-0.1.4.tar.gz",
"platform": null,
"description": "# CourtRSS \ud83d\udce1\nMost 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.\n\n## Features \ud83d\ude80\n- **Monitor multiple RSS feeds**: Add as many RSS feeds as you like and track them all.\n- **Customizable keyword search**: Define keywords to trigger notifications based on the feed content.\n- **Multiple notification methods**:\n - A full-screen green window with a clickable link.\n - Discord webhook notifications.\n- **Retry logic** for failed feed fetches (with configurable retry attempts and intervals).\n- **Easy configuration** through a YAML file or CLI arguments.\n\n## How It Works \ud83d\udc47\nYou can install CourtRSS directly from PyPI:\n\n```bash\npip install courtrss\n```\n\n## Usage \ud83c\udfaf\nOnce installed, you can run CourtRSS in two ways:\n### 1. Using a YAML Configuration File\nThis is the easiest and most flexible option. Here's how you can set it up:\n```yaml\nrss_urls:\n - https://example.com/rss_feed_1\n - https://example.com/rss_feed_2\n\nkeywords:\n - \"Neonode\"\n - \"Tapestry\"\n\ninterval: 60 # Time interval between feed checks in seconds\nretries: 3 # How many times to retry fetching a failed feed\nretry_interval: 20 # How long to wait between retries in seconds\n\nnotifications:\n - type: window_notification\n - type: discord_webhook\n webhook_url: https://discord.com/api/webhooks/your_webhook_url_here\n```\n\nTo run CourtRSS with this config, just call it with the `--config` argument:\n\n```bash\ncourtrss --config /path/to/config.yaml\n```\n\n### 2. Using CLI Arguments\nIf you prefer the command line, you can directly pass RSS URLs and keywords as comma-separated arguments. Like this:\n\n```bash\ncourtrss --rss_urls \"https://example.com/rss1,https://example.com/rss2\" --keywords \"Neonode,Tapestry\" --interval 60 --retries 3 --retry_interval 20\n```\nThis will check the provided feeds every 60 seconds, retry up to 3 times on failure, and notify you about matching entries.\n\n## Examples \ud83c\udf89\n### Example 1: Court RSS Monitoring with Green Window Notification\n\nLet\u2019s 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:\n\n```yaml\nrss_urls:\n - https://court.example.com/rss_feed_1\n - https://court.example.com/rss_feed_2\n\nkeywords:\n - \"Apple\"\n - \"Cisco\"\n\ninterval: 60\n\nnotifications:\n - type: window_notification\n```\nRun it like this:\n\n```bash\ncourtrss --config court_monitor.yaml\n```\n\nEvery time a keyword match is found, you\u2019ll get a big, green window notifying you about it!\n\n### Example 2: Monitoring with Discord Webhook Notifications\n\nYou can send the notifications straight to your Discord server. Set up your config.yaml like this:\n\n```yaml\nrss_urls:\n - https://court.example.com/rss_feed_1\n - https://court.example.com/rss_feed_2\n\nkeywords:\n - \"Verdict\"\n - \"Sentencing\"\n\ninterval: 120 # Every 2 minutes\n\nnotifications:\n - type: discord_webhook\n webhook_url: https://discord.com/api/webhooks/your_webhook_url_here\n```\n\nNow, CourtRSS will send you messages in your Discord channel whenever a match occurs.\n\n## Configuration Options \ud83d\udd27\n\n- rss_urls: List of RSS feed URLs you want to monitor.\n- keywords: Keywords that will trigger notifications if found in the feed title or summary.\n- interval: Time interval (in seconds) between checks. Default is 60 seconds.\n- retries: Number of retries if fetching the feed fails (e.g., server issues). Default is 3 retries.\n- retry_interval: Time (in seconds) between retries. Default is 60 seconds.\n- notifications: List of notification methods:\n - type: Notification type, either window_notification or discord_webhook.\n - webhook_url: (Only for Discord) The URL of the Discord webhook.\n\n## Why CourtRSS? \ud83e\udd37\n\n- Real-time notifications: Stay updated as soon as new information comes in.\n- Customizable alerts: Choose between a big, eye-catching green window or a subtle Discord message.\n- Reliable: Built-in retry mechanism ensures you\u2019re not missing anything if a feed is temporarily down.\n",
"bugtrack_url": null,
"license": null,
"summary": "A package to monitor court RSS feeds for keywords.",
"version": "0.1.4",
"project_urls": {
"Homepage": "https://github.com/jonmest/CourtRSS"
},
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "21e850154a334b6039a478577b3cd669bc925475ccf81b35f03650b1629f7b95",
"md5": "0d0572c20bfbd12f627f59e3f7de8b20",
"sha256": "542ca8811a7df3dc9aef26dbfdc4af17fc18c221d4252ebb9b962a076ec0052e"
},
"downloads": -1,
"filename": "courtrss-0.1.4-py3-none-any.whl",
"has_sig": false,
"md5_digest": "0d0572c20bfbd12f627f59e3f7de8b20",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.6",
"size": 6383,
"upload_time": "2024-10-10T10:53:13",
"upload_time_iso_8601": "2024-10-10T10:53:13.862695Z",
"url": "https://files.pythonhosted.org/packages/21/e8/50154a334b6039a478577b3cd669bc925475ccf81b35f03650b1629f7b95/courtrss-0.1.4-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "35191f97a10407560d2b68e2620b7c8f03b2510ddfbb8bdd893e2d93101eceb8",
"md5": "f9bf58f2858a1e3ecf983896712eb9ea",
"sha256": "534f6e0a712ff7932d94bd763e4ba44bb02c50f786f0d521f4f459ff93ab4cbf"
},
"downloads": -1,
"filename": "courtrss-0.1.4.tar.gz",
"has_sig": false,
"md5_digest": "f9bf58f2858a1e3ecf983896712eb9ea",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.6",
"size": 6017,
"upload_time": "2024-10-10T10:53:15",
"upload_time_iso_8601": "2024-10-10T10:53:15.472416Z",
"url": "https://files.pythonhosted.org/packages/35/19/1f97a10407560d2b68e2620b7c8f03b2510ddfbb8bdd893e2d93101eceb8/courtrss-0.1.4.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-10-10 10:53:15",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "jonmest",
"github_project": "CourtRSS",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"requirements": [
{
"name": "feedparser",
"specs": [
[
"==",
"6.0.10"
]
]
},
{
"name": "PyYAML",
"specs": [
[
"==",
"6.0.1"
]
]
},
{
"name": "Requests",
"specs": [
[
"==",
"2.32.3"
]
]
}
],
"lcname": "courtrss"
}