rss2discord


Namerss2discord JSON
Version 0.1.2 PyPI version JSON
download
home_pageNone
SummaryA bot for feeding RSS feeds to Discord channels
upload_time2025-07-13 04:29:42
maintainerNone
docs_urlNone
authorfluffy
requires_python>=3.11
licenseNone
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # rss2discord

A simple script for posting RSS feeds to a Discord webhook.

## Installation

You can install this using `pipx` or the like, e.g.

```
pipx install rss2discord
```

## Configuration

First, set up a webhook on Discord; consult the [Discord Intro to Webhooks](https://support.discord.com/hc/en-us/articles/228383668-Intro-to-Webhooks) for more information.

Then, for each webhook, create a `.json` file with the following format:

```json
{
    "webhook": "https://discord.com/api/webhooks/<channel_id>/<token>",
    "database": "feed.db",

    "username": "RSS Bot",
    "avatar_url": "https://example.com/bot.png",
    "include_summary": true,

    "feeds": [{
        "feed_url": "https://example.com/feed",
        "username": "Example Feed",
        "avatar_url": "https://example.com/image.png"
    }, {
        "feed_url": "https://example.com/another_feed",
        "avatar_url": "https://example.com/another_image.png",
        "include_summary": false
    },
    "https://example.com/feed3",
    "https://example.com/feed4"
    ]
}
```

The schema is pretty basic; at the top level, the following keys are supported:

* `webhook`: the webhook URL (i.e. the channel to post to)
* `database`: The path to the file to store the information about already-seen entries
* `username`: The display name to use for the posting bot (will default to the webhook name)
* `avatar_url`: An image to use as the post avatar (will default to the standard app icon)
* `include_summary`: Whether to put the feed's summary text into the Discord post; if the summary is shown, then the OpenGraph card will be suppressed, and vice-versa
* `feeds`: A list of feeds to send to the channel. A feed can be just a URL, or it can be a configuration blob with the following values:
    * `feed_url`: The URL to the feed
    * `username`, `avatar_url`, `include_summary`: Overrides the top-level configuration

Only `webhook` is required, but `database` is *strongly* recommended.

## Running it

You can run `rss2discord config.json` and it will go ahead and post all new items to the Discord channel. `rss2discord --help` will give you more detailed information about how to use it.

When first setting things up, I highly recommend doing:

```
rss2discord config.json -nvv
```

to get an idea of what will happen, and

```
rss2discord config.json -p
```

to pre-populate the database with existing items so that it doesn't spam the channel, unless you like that sort of thing.


            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "rss2discord",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.11",
    "maintainer_email": null,
    "keywords": null,
    "author": "fluffy",
    "author_email": "fluffy@beesbuzz.biz",
    "download_url": "https://files.pythonhosted.org/packages/b6/25/170c30441b06b3fde20e03cdff62830eb24c97b604d886d56830d9394266/rss2discord-0.1.2.tar.gz",
    "platform": null,
    "description": "# rss2discord\n\nA simple script for posting RSS feeds to a Discord webhook.\n\n## Installation\n\nYou can install this using `pipx` or the like, e.g.\n\n```\npipx install rss2discord\n```\n\n## Configuration\n\nFirst, set up a webhook on Discord; consult the [Discord Intro to Webhooks](https://support.discord.com/hc/en-us/articles/228383668-Intro-to-Webhooks) for more information.\n\nThen, for each webhook, create a `.json` file with the following format:\n\n```json\n{\n    \"webhook\": \"https://discord.com/api/webhooks/<channel_id>/<token>\",\n    \"database\": \"feed.db\",\n\n    \"username\": \"RSS Bot\",\n    \"avatar_url\": \"https://example.com/bot.png\",\n    \"include_summary\": true,\n\n    \"feeds\": [{\n        \"feed_url\": \"https://example.com/feed\",\n        \"username\": \"Example Feed\",\n        \"avatar_url\": \"https://example.com/image.png\"\n    }, {\n        \"feed_url\": \"https://example.com/another_feed\",\n        \"avatar_url\": \"https://example.com/another_image.png\",\n        \"include_summary\": false\n    },\n    \"https://example.com/feed3\",\n    \"https://example.com/feed4\"\n    ]\n}\n```\n\nThe schema is pretty basic; at the top level, the following keys are supported:\n\n* `webhook`: the webhook URL (i.e. the channel to post to)\n* `database`: The path to the file to store the information about already-seen entries\n* `username`: The display name to use for the posting bot (will default to the webhook name)\n* `avatar_url`: An image to use as the post avatar (will default to the standard app icon)\n* `include_summary`: Whether to put the feed's summary text into the Discord post; if the summary is shown, then the OpenGraph card will be suppressed, and vice-versa\n* `feeds`: A list of feeds to send to the channel. A feed can be just a URL, or it can be a configuration blob with the following values:\n    * `feed_url`: The URL to the feed\n    * `username`, `avatar_url`, `include_summary`: Overrides the top-level configuration\n\nOnly `webhook` is required, but `database` is *strongly* recommended.\n\n## Running it\n\nYou can run `rss2discord config.json` and it will go ahead and post all new items to the Discord channel. `rss2discord --help` will give you more detailed information about how to use it.\n\nWhen first setting things up, I highly recommend doing:\n\n```\nrss2discord config.json -nvv\n```\n\nto get an idea of what will happen, and\n\n```\nrss2discord config.json -p\n```\n\nto pre-populate the database with existing items so that it doesn't spam the channel, unless you like that sort of thing.\n\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "A bot for feeding RSS feeds to Discord channels",
    "version": "0.1.2",
    "project_urls": null,
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "18ddd6d1182e9f8237a01598b307a67c566d8a718631cb61fcb5ae8d06b23a7d",
                "md5": "c9f55b82f4c0325047df7f76e9e7c975",
                "sha256": "916f840178fbb0b44d8dac461a280be667809161841f38d2d57d3cdb2b6d9744"
            },
            "downloads": -1,
            "filename": "rss2discord-0.1.2-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "c9f55b82f4c0325047df7f76e9e7c975",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.11",
            "size": 5393,
            "upload_time": "2025-07-13T04:29:41",
            "upload_time_iso_8601": "2025-07-13T04:29:41.258698Z",
            "url": "https://files.pythonhosted.org/packages/18/dd/d6d1182e9f8237a01598b307a67c566d8a718631cb61fcb5ae8d06b23a7d/rss2discord-0.1.2-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "b625170c30441b06b3fde20e03cdff62830eb24c97b604d886d56830d9394266",
                "md5": "da3005f677e5ee6fbccdeff53634be84",
                "sha256": "b9e562d22869cdc3311fee6e8b91a325dacb42975774e4343f1cbd95a2eb19bd"
            },
            "downloads": -1,
            "filename": "rss2discord-0.1.2.tar.gz",
            "has_sig": false,
            "md5_digest": "da3005f677e5ee6fbccdeff53634be84",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.11",
            "size": 4477,
            "upload_time": "2025-07-13T04:29:42",
            "upload_time_iso_8601": "2025-07-13T04:29:42.303120Z",
            "url": "https://files.pythonhosted.org/packages/b6/25/170c30441b06b3fde20e03cdff62830eb24c97b604d886d56830d9394266/rss2discord-0.1.2.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-07-13 04:29:42",
    "github": false,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "lcname": "rss2discord"
}
        
Elapsed time: 0.50673s