Metadata-Version: 2.1
Name: rsstt
Version: 2.2.1
Summary: A Telegram RSS bot that cares about your reading experience
Home-page: https://github.com/Rongronggg9/RSS-to-Telegram-Bot
Author: Rongrong
Author-email: Rongronggg9@outlook.com
License: AGPLv3+
Project-URL: Bug Tracker, https://github.com/Rongronggg9/RSS-to-Telegram-Bot/issues
Project-URL: Documentation, https://github.com/Rongronggg9/RSS-to-Telegram-Bot/blob/dev/docs/README.md
Project-URL: Source Code, https://github.com/Rongronggg9/RSS-to-Telegram-Bot
Project-URL: Changelog, https://github.com/Rongronggg9/RSS-to-Telegram-Bot/blob/dev/docs/CHANGELOG.md
Platform: Linux
Platform: Windows
Platform: MacOS
Classifier: Development Status :: 5 - Production/Stable
Classifier: Environment :: Console
Classifier: Framework :: AsyncIO
Classifier: Framework :: aiohttp
Classifier: License :: OSI Approved :: GNU Affero General Public License v3 or later (AGPLv3+)
Classifier: Operating System :: POSIX :: Linux
Classifier: Operating System :: Microsoft :: Windows
Classifier: Operating System :: MacOS
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Topic :: Communications :: Chat
Classifier: Topic :: Internet
Classifier: Topic :: Multimedia
Requires-Python: >=3.7
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: cryptg (==0.2.post4)
Requires-Dist: telethon[cryptg] (==1.24.0)
Requires-Dist: aiographfix (==0.2.2)
Requires-Dist: feedparser (==6.0.8)
Requires-Dist: listparser (==0.18)
Requires-Dist: pillow (==9.1.0)
Requires-Dist: beautifulsoup4 (==4.10.0)
Requires-Dist: lxml (==4.8.0)
Requires-Dist: fuzzywuzzy (==0.18.0)
Requires-Dist: emoji (==1.7.0)
Requires-Dist: minify-html (<=0.8.0,>=0.6.10)
Requires-Dist: matplotlib (==3.5.1)
Requires-Dist: asyncpg (==0.25.0)
Requires-Dist: tortoise-orm[accel] (==0.19.0)
Requires-Dist: aerich (==0.6.2)
Requires-Dist: aiohttp[speedups] (==3.8.1)
Requires-Dist: aiohttp-socks (==0.7.1)
Requires-Dist: aiohttp-retry (==2.4.6)
Requires-Dist: python-socks[asyncio] (==2.0.3)
Requires-Dist: dnspython[idna] (==2.2.1)
Requires-Dist: url-normalize (==1.4.3)
Requires-Dist: colorlog (==6.6.0)
Requires-Dist: APScheduler (==3.9.1)
Requires-Dist: python-dotenv (==0.20.0)
Requires-Dist: multidict (==6.0.2)
Requires-Dist: attrs (==21.4.0)
Requires-Dist: asyncstdlib (==3.10.4)
Requires-Dist: cachetools (==5.0.0)
Requires-Dist: CJKwrap (==2.2)
Requires-Dist: typing-extensions (==4.1.1)
Requires-Dist: uvloop (==0.16.0) ; python_version >= "3.7" and sys_platform != "win32" and sys_platform != "cygwin" and sys_platform != "cli"

# [RSS to Telegram Bot](https://t.me/RSStT_Bot)

**A Telegram RSS bot that cares about your reading experience**

[简体中文 README](README.zh.md)

[![GitHub commit activity](https://img.shields.io/github/commit-activity/m/Rongronggg9/RSS-to-Telegram-Bot?logo=git&label=commit)](https://github.com/Rongronggg9/RSS-to-Telegram-Bot/commits)
[![Translating status](https://img.shields.io/weblate/progress/rss-to-telegram-bot?logo=weblate&color=informational)](https://hosted.weblate.org/engage/rss-to-telegram-bot/)
[![Code quality](https://img.shields.io/codefactor/grade/github/Rongronggg9/RSS-to-Telegram-Bot?logo=codefactor)](https://www.codefactor.io/repository/github/rongronggg9/rss-to-telegram-bot)
[![GitHub stars](https://img.shields.io/github/stars/Rongronggg9/Rss-to-Telegram-Bot?style=social)](https://github.com/Rongronggg9/RSS-to-Telegram-Bot/stargazers)
[![GitHub forks](https://img.shields.io/github/forks/Rongronggg9/RSS-to-Telegram-Bot?style=social)](https://github.com/Rongronggg9/RSS-to-Telegram-Bot/fork)

[![PyPI](https://img.shields.io/pypi/v/rsstt?logo=pypi&logoColor=white)](https://pypi.org/project/rsstt/)
[![PyPI publish status](https://img.shields.io/github/workflow/status/Rongronggg9/RSS-to-Telegram-Bot/Publish%20to%20PyPI?label=publish&logo=pypi&logoColor=white)](https://github.com/Rongronggg9/RSS-to-Telegram-Bot/actions/workflows/publish-to-pypi.yml)
[![PyPI - Downloads](https://img.shields.io/pypi/dm/rsstt?logo=pypi&logoColor=white)](https://pypi.org/project/rsstt/)
[![PyPI - Python Version](https://img.shields.io/pypi/pyversions/rsstt?logo=python&label=&labelColor=white)](https://www.python.org)

[![Docker Image Size (tag)](https://img.shields.io/docker/image-size/rongronggg9/rss-to-telegram/latest?logo=docker)](https://hub.docker.com/r/rongronggg9/rss-to-telegram)
[![Build status (master)](https://img.shields.io/github/workflow/status/Rongronggg9/RSS-to-Telegram-Bot/Publish%20Docker%20image/master?label=build&logo=docker)](https://github.com/Rongronggg9/RSS-to-Telegram-Bot/actions/workflows/publish-docker-image.yml?query=branch%3Amaster)
[![Build status (dev)](https://img.shields.io/github/workflow/status/Rongronggg9/RSS-to-Telegram-Bot/Publish%20Docker%20image/dev?label=build%20%28dev%29&logo=docker)](https://github.com/Rongronggg9/RSS-to-Telegram-Bot/actions/workflows/publish-docker-image.yml?query=branch%3Adev)
[![Docker pulls](https://img.shields.io/docker/pulls/rongronggg9/rss-to-telegram?label=pulls&logo=docker&color=informational)](https://hub.docker.com/r/rongronggg9/rss-to-telegram)

<a href="https://t.me/RSStT_Bot"><img src="docs/resources/RSStT_icon.svg" width = "256" height = "256" alt="RSStT_icon"/><a/>

[![Telegram bot](https://img.shields.io/badge/bot-%40RSStT__Bot-229ed9?logo=telegram&style=for-the-badge)](https://t.me/RSStT_Bot)
[![Telegram group](https://img.shields.io/badge/chat-%40RSStT__Group-229ed9?logo=telegram&style=for-the-badge)](https://t.me/RSStT_Group)
[![Telegram channel](https://img.shields.io/badge/channel-%40RSStT__Channel-229ed9?logo=telegram&style=for-the-badge)](https://t.me/RSStT_Channel)

| [CHANGELOG] | [Documentation] | [Channels Using RSStT] |
|:-----------:|:---------------:|:----------------------:|

[CHANGELOG]: docs/CHANGELOG.md

[Documentation]: docs

[Channels Using RSStT]: docs/channels-using-rsstt.md

| [![Deploy on Railway][railway_button]][railway_guide] | [![Deploy to Heroku][heroku_button]][heroku_guide] |
|:-----------------------------------------------------:|:--------------------------------------------------:|

[railway_button]: https://railway.app/button.svg

[heroku_button]: https://www.herokucdn.com/deploy/button.svg

[railway_guide]: docs/deployment-guide.md#option-2-railwayapp

[heroku_guide]: docs/deployment-guide.md#option-3-heroku


**Important**: If you have your own RSStT bot (v1), please read the [migration guide](docs/migration-guide-v2.md) to learn how to migrate to v2.

## Highlights

- Multi-user
- I18n
    - English, Chinese, Cantonese, Italian, and [more](docs/translation-guide.md)!
- The content of the posts of an RSS feed will be sent to Telegram
    - Keep rich-text format
    - Keep media (customizable)
        - Images, Videos, and Audio both in the post content and enclosure; Documents in the post enclosure
        - Long images will be sent as files to prevent Telegram from compressing the image and making it unreadable
        - Drop annoying icons, they break the reading experience
    - Automatically replace emoji shortcodes with emoji
    - Automatically replace emoji images with emoji or its description text
    - Automatically determine whether the title of the RSS feed is auto-filled, if so, omit the title (customizable)
    - Automatically show the author-name (customizable)
    - Automatically split too-long messages
        - If configured Telegraph, the message will be sent via Telegraph (customizable)
- [Various customizable formatting settings](docs/formatting-settings.md)
    - Hashtags, custom title, etc.
- Individual proxy settings for Telegram and RSS feeds
- OPML importing and exporting (keep custom title)
- Optimized performance (see also the [FAQ](docs/FAQ.md#q-how-is-the-performance-of-the-bot-it-appears-to-have-a-slight-memory-leak-problem))
- User-friendly
- HTTP Caching

<img src="docs/resources/example1.png" width = "300" alt=""/><img src="docs/resources/example3.png" width = "300" alt=""/><img src="docs/resources/example4.png" width = "300" alt=""/>

## Deployment

Read the deployment guide [here](docs/deployment-guide.md).

## FAQ

Read the FAQ [here](docs/FAQ.md).

## Translation

Read the translation guide [here](docs/translation-guide.md).

You can help to translate the bot using [Hosted Weblate](https://hosted.weblate.org/projects/rss-to-telegram-bot/). Special thanks to their free hosting service for libre projects!

<a href="https://hosted.weblate.org/engage/rss-to-telegram-bot/"><img src="https://hosted.weblate.org/widgets/rss-to-telegram-bot/-/open-graph.png" width = "500" alt="" /></a>

## Using the public bot

The [public bot](https://t.me/RSStT_Bot) comes with absolutely no warranty. I will try my best to maintain it, but I cannot guarantee that it will always work perfectly. Meanwhile, you should "fair use" the bot, avoid subscribing to too many RSS feeds.  
If you use the [public bot](https://t.me/RSStT_Bot) in your Channel, consider mentioning the bot (or this project) in your channel description (or pinned message) to let more people know about it. That's not a compulsion.

## Known channels using RSStT

Want to preview what the messages sent by RSStT look like? Here is a [list of channels using RSStT](docs/channels-using-rsstt.md).

## License

This project is licensed under the [AGPLv3 license](LICENSE). Closed-source distribution or bot-hosting are strictly prohibited. If you modify the code and distribute or host it, make sure any users who can use your bot can get the source code (by editing the repo URL in [`src/i18n/__init__.py`](src/i18n/__init__.py)).


