courtrss


Namecourtrss JSON
Version 0.1.4 PyPI version JSON
download
home_pagehttps://github.com/jonmest/CourtRSS
SummaryA package to monitor court RSS feeds for keywords.
upload_time2024-10-10 10:53:15
maintainerNone
docs_urlNone
authorJon Cavallie Mester
requires_python>=3.6
licenseNone
keywords
VCS
bugtrack_url
requirements feedparser PyYAML Requests
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # 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"
}
        
Elapsed time: 0.35017s