Code Monkey home page Code Monkey logo

rss-to-telegram-bot's Introduction

RSS to Telegram Bot

RSS to Telegram Bot

A Telegram RSS bot that cares about your reading experience

GitHub commit activity Translating status Code quality GitHub stars GitHub forks

Telegram bot Telegram group Telegram channel

简体中文 README CHANGELOG FAQ Documentation Channels Using RSStT
Screenshot Screenshot Screenshot
Screenshot

Highlights

  • Multi-user
  • I18n
    • English, Chinese, Cantonese, Italian, and more!
  • 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
    • Messages can be sent as Telegraph posts (customizable)
      • Most images and videos will be uploaded to Telegraph, so that Instant View will load rapidly
  • Various customizable formatting settings
    • 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)
  • User-friendly
  • HTTP Caching

Deployment

dockeri.co
Build status (master) Build status (dev)

PyPI TestPyPI PyPI - Python Version
PyPI publish status TestPyPI publish status PyPI - Downloads

It is quite easy to deploy your RSStT instance. The most recommended way to deploy RSStT is Docker Compose: it is suitable for virtually all VPS. Railway.app (a PaaS platform) is also officially supported. You may also install RSStT from PyPI (tracking master branch) or TestPyPI (tracking dev branch, which is always up-to-date) using pip. For developers or experienced users, dirty run from source is also an option.

Deploy on Railway

For more details, refer to the deployment guide.

Translation

Read the translation guide here.

You can help to translate the bot using Hosted Weblate. Special thanks to their free hosting service for libre projects!

Using the public bot

The public 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 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.

Licensing

AGPLv3 logo

This project is licensed under AGPLv3+. Closed-source distribution or bot-hosting are strictly prohibited. If you distribute or host it with code modifications, make sure the source code is available to anyone who can use the bot (by editing the repo URL in src/i18n/__init__.py).

RSS to Telegram Bot
Copyright (C) 2020-2024  Rongrong <[email protected]>

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as
published by the Free Software Foundation, either version 3 of the
License, or (at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU Affero General Public License for more details.

You should have received a copy of the GNU Affero General Public License
along with this program.  If not, see <https://www.gnu.org/licenses/>.

The repository was forked from BoKKeR/RSS-to-Telegram-Bot in 2020. Since some time in 2021, they share no common codebase and should be considered as completely different projects.

rss-to-telegram-bot's People

Contributors

ahohnmyc avatar aisuneko avatar anorprogrammer avatar antoxic303 avatar bamboozul avatar bokker avatar daneoshiga avatar deadem avatar dependabot[bot] avatar fitrah17 avatar hellodword avatar ionlizarazu avatar ippocratis avatar jbecker-it avatar lgtm-com[bot] avatar liimee avatar lowprize avatar luchezi avatar maooyer avatar marcin93 avatar misaka13514 avatar mytelegrambot avatar nekoaria avatar oscarcmd avatar palente avatar rezaalmanda avatar rminfx avatar rongronggg9 avatar weblate avatar wiseweb-works avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

rss-to-telegram-bot's Issues

自定义脚注 / Custom footer

因为用于自己博客的RSS推送,所以想在结尾添加一些额外的备注。

请求新增 "附加自定义结尾" 的功能,比如:

RSS Bot推送消息:
Slack is increasing its prices and making big changes to its free plan
#TheVerge

via The Verge - All Posts () (author: Tom Warren)

''新功能附加处"
频道: @xxxx
群组: @xxxx

I want to add some extra notes at the end because it's for my blog RSS feed.

Request the "attach custom sign-off" feature, for example:

RSS bot push messages:
Slack is increasing its prices and making big changes to its free plan
#TheVerge

via The Verge - All Posts () (author: Tom Warren)

"New Features added area"
Channel: @ XXXX
Groups: @ XXXX

Deploy on Railway from the fork dev branch, and hit NeedMemberInvalidError: The provided member is invalid or does not exist

Deploy on Railway from the fork dev branch, and hit an error
2022-12-28-03:15:21:WARNING:telethon.client.users - Telegram is having internal issues NeedMemberInvalidError: The provided member is invalid or does not exist (for example a thumb size) (caused by SetBotCommandsRequest)

To Reproduce
Steps to reproduce the behavior:
Follow the instruction on this link:
https://github.com/ftx-class-action/RSS-to-Telegram-Bot/blob/dev/docs/deployment-guide.md

got the token (##9:A##)from @Botfather
got the user id (mine -> 1##2) from @userinfobot
got the api token (access_token: 67***12) from the url
Fork the repo
Deploy on Railway (dev branch)
when done, go the following error:
telethon.errors.rpcerrorlist.NeedMemberInvalidError: The provided member is invalid or does not exist (for example a thumb size) (caused by SetBotCommandsRequest)

I got the user Id from @userinfobot, and confirm my account info is correct, not sure why complained about member is invalid. Should I turn off multiuser mode?

The fork was off the latest dev branch.

Expected behavior
no error, deployment successful

Important log
MANAGER: 1##2
T_PROXY (for Telegram): not set
R_PROXY (for RSS): not set
DATABASE: postgres
TELEGRAPH: Enable (1 accounts)
UVLOOP: Enable
MULTIUSER: Enable
CPU: 1 (usable) / 32 (available) / 32 (total)
2022-12-28-03:15:21:WARNING:telethon.client.users - Telegram is having internal issues NeedMemberInvalidError: The provided member is invalid or does not exist (for example a thumb size) (caused by SetBotCommandsRequest)
2022-12-28-03:15:23:WARNING:telethon.client.users - Telegram is having internal issues NeedMemberInvalidError: The provided member is invalid or does not exist (for example a thumb size) (caused by SetBotCommandsRequest)
2022-12-28-03:15:25:WARNING:telethon.client.users - Telegram is having internal issues NeedMemberInvalidError: The provided member is invalid or does not exist (for example a thumb size) (caused by SetBotCommandsRequest)
2022-12-28-03:15:27:WARNING:RSStT - Set command error:
Traceback (most recent call last):
File "/app/src/init.py", line 256, in lazy
await asyncio.gather(*set_bot_commands_tasks)
File "/app/src/command/utils.py", line 661, in set_bot_commands
await env.bot(
File "/opt/venv/lib/python3.11/site-packages/telethon/client/users.py", line 30, in call
return await self._call(self._sender, request, ordered=ordered)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/venv/lib/python3.11/site-packages/telethon/client/users.py", line 129, in _call
raise last_error
File "/opt/venv/lib/python3.11/site-packages/telethon/client/users.py", line 84, in _call
result = await future
^^^^^^^^^^^^
telethon.errors.rpcerrorlist.NeedMemberInvalidError: The provided member is invalid or does not exist (for example a thumb size) (caused by SetBotCommandsRequest)

Showing 31 logs

Thank you in advance for your help!

Webp 图片导致文本内容消失

Describe the bug
多数 Telegram 客户端会把 webp 图片当作贴纸看待,而贴纸是没有文本内容的(实际用API可提取文本内容)

To Reproduce
Steps to reproduce the behavior:

  1. 找一个能提供(内容中包含)webp图片的rss源
  2. 机器人上点订阅
  3. 然后看推送就会发现文本内容消失了

Expected behavior
将webp图片转换成其他任意格式

Important log
这应该属于Telegram客户端渲染的问题,服务端应该不会收到任意错误信息,因此也无法提供有意义的日志

Problem when installing on k3s

Hello,

I run your nice application for quite a while now. Past week inwas migrating my cluster and i keep getting this error

2022-10-06-16:58:31:INFO:RSStT - API_ID and/or API_HASH not set, use sample APIs instead. API_ID_PUBLISHED_FLOOD_ERROR may occur.
Traceback (most recent call last):
  File "/app/telegramRSSbot.py", line 1, in <module>
    import src
  File "/app/src/__init__.py", line 46, in <module>
    bot = TelegramClient(path.join(env.config_folder_path, 'bot'),
  File "/opt/venv/lib/python3.10/site-packages/telethon/client/auth.py", line 133, in start
    else self.loop.run_until_complete(coro)
  File "uvloop/loop.pyx", line 1501, in uvloop.loop.Loop.run_until_complete
  File "/opt/venv/lib/python3.10/site-packages/telethon/client/auth.py", line 182, in _start
    await self.sign_in(bot_token=bot_token)
  File "/opt/venv/lib/python3.10/site-packages/telethon/client/auth.py", line 368, in sign_in
    result = await self(request)
  File "/opt/venv/lib/python3.10/site-packages/telethon/client/users.py", line 30, in __call__
    return await self._call(self._sender, request, ordered=ordered)
  File "/opt/venv/lib/python3.10/site-packages/telethon/client/users.py", line 84, in _call
    result = await future
telethon.errors.rpcerrorlist.FloodWaitError: A wait of 73382 seconds is required (caused by ImportBotAuthorizationRequest)```

Can please give me some guidance?
Kind regards

Not sending the post or updating

2022-10-13-17:37:00:INFO:RSStT.monitor - Monitoring tasks summary in last 10 minutes: updated(0), not updated(5, including 0 cached and 0 empty), fetch failed(0), skipped(5), timeout(0)

I dont know why, but for example, im using a rss feed to get new videos from a youtube channel, even the someone posts a video, the rss feed do not send to the channels, and i already set /sub xml to youtube channel, but even this, do not work. please someone help me.

discontinuing heroku

hello
since heroku closing can make it run on github action?
i am not program just asking

Bug Report: 图片反代地址无法正确解析

带图片反代的地址在rsstt中无法正确解析,导致展示为invalid image
例如:
image
中的图片地址被解析为:
http://反代服务器/imgproxy/plain/https:/gd-hbimg.huaban.com/851fe532c64071d617b54f0f5fe1a52cc7dfdcad1cb39b-BvTi90

其中/plain/https:/ 应为 /plain/https://

http://反代服务器/imgproxy/plain/https://gd-hbimg.huaban.com/851fe532c64071d617b54f0f5fe1a52cc7dfdcad1cb39b-BvTi90
这个问题导致图片无法正确解析,希望能解决,非常感谢!!!

Telegra.ph preview

v2.2.1-334-g3263852@dev
build@2023-01-07T23:35:49+00:00

/set_default :
Interval=1h
Notifications=normal
Send mode=force telegraph
Length limit =unlimited
Media =enable
Post title =enable
Author=enable
Style=rsstt

When I tap on instant view there is a "more" and a "source" link

Whichever I select I am first redirected to the original site and only the second time the telegraph.ph generated page is opening

Is there a way to really "force" to first display the telegraph generated page?

Import opml leads to "Reply with file" being presented

Describe the bug
Once used bulk subscription upload I'm getteing "Reply with file..." being presented on mobile and desktop client. Did that with 2 instances: Heroku & VM + docker - same effect. That lead to situation when once going to chat I'm being moved to bottom of chat instead of head of "Unread".

To Reproduce
Steps to reproduce the behavior:

  1. launch dockerized instance
  2. use /import
  3. upload *.opml
  4. See error: now and then, you will see on all devices message "Reply with file..." on client which initiated action and other (desktop/mobile)

Expected behavior
Once replied with file, message to reply don't appear any more.

Template feature request

Please could you advice on how can I modify the default template to achieve this kind of design:

Title
full link (https://.....)

For examle, I like to use this style:
image

I tried several parameters and this is the closest thing that I was able to get:
image

Missing features

Please advice, I installed the script and got my private bot working, but I noticed that if I use the /set parameter inside the Telegram app in order to modify the feed, then many features are missing compared to the public bot.

Private bot:
image

Public bot:
image

机器人无法启动

你好我参考了readme在群晖的docker上部署了但是从telegram的机器人输入command没有响应,部署 BoKKeR 的原版功能正常,以下是运行日志,想了解一下哪里操作上出现问题,非常感谢!

date stream content
2021-02-08 07:17:59 stdout TypeError: can only concatenate str (not "NoneType") to str
2021-02-08 07:17:59 stdout name = chat.first_name + ' ' + chat.last_name
2021-02-08 07:17:59 stdout File "telegramRSSbot.py", line 40, in is_manager
2021-02-08 07:17:59 stdout is_manager(update)
2021-02-08 07:17:59 stdout File "telegramRSSbot.py", line 144, in cmd_help
2021-02-08 07:17:59 stdout return self.callback(update, context)
2021-02-08 07:17:59 stdout File "/usr/local/lib/python3.7/site-packages/telegram/ext/handler.py", line 119, in handle_update
2021-02-08 07:17:59 stdout handler.handle_update(update, self, check, context)
2021-02-08 07:17:59 stdout File "/usr/local/lib/python3.7/site-packages/telegram/ext/dispatcher.py", line 340, in process_update
2021-02-08 07:17:59 stdout Traceback (most recent call last):
2021-02-08 07:17:59 stdout 2021-02-08 07:17:59,227 - telegram.ext.dispatcher - ERROR - No error handlers are registered, logging exception.
2021-02-08 07:17:38 stdout  
2021-02-08 07:17:38 stdout DELAY: 300s
2021-02-08 07:17:38 stdout MANAGER: 547306955
2021-02-08 07:17:38 stdout CHATID: 547306955
2021-02-08 05:13:17 stdout 2021-02-08 05:13:17,768 - telegram.ext.updater - INFO - Received signal 15 (SIGTERM), stopping...
2021-02-08 05:11:29 stdout telegram.error.NetworkError: urllib3 HTTPError ('Connection aborted.', OSError(0, 'Error'))
2021-02-08 05:11:29 stdout raise NetworkError('urllib3 HTTPError {}'.format(error))
2021-02-08 05:11:29 stdout File "/usr/local/lib/python3.7/site-packages/telegram/utils/request.py", line 230, in _request_wrapper
2021-02-08 05:11:29 stdout **urlopen_kwargs)
2021-02-08 05:11:29 stdout File "/usr/local/lib/python3.7/site-packages/telegram/utils/request.py", line 333, in post
2021-02-08 05:11:29 stdout result = self._request.post(url, data, timeout=float(read_latency) + float(timeout))
2021-02-08 05:11:29 stdout File "/usr/local/lib/python3.7/site-packages/telegram/bot.py", line 2138, in get_updates
2021-02-08 05:11:29 stdout result = func(*args, **kwargs)
2021-02-08 05:11:29 stdout File "/usr/local/lib/python3.7/site-packages/telegram/bot.py", line 67, in decorator
2021-02-08 05:11:29 stdout File "", line 2, in get_updates
2021-02-08 05:11:29 stdout allowed_updates=allowed_updates)
2021-02-08 05:11:29 stdout File "/usr/local/lib/python3.7/site-packages/telegram/ext/updater.py", line 340, in polling_action_cb
2021-02-08 05:11:29 stdout if not action_cb():
2021-02-08 05:11:29 stdout File "/usr/local/lib/python3.7/site-packages/telegram/ext/updater.py", line 379, in _network_loop_retry
2021-02-08 05:11:29 stdout Traceback (most recent call last):
2021-02-08 05:11:29 stdout  
2021-02-08 05:11:29 stdout During handling of the above exception, another exception occurred:
2021-02-08 05:11:29 stdout  
2021-02-08 05:11:29 stdout telegram.vendor.ptb_urllib3.urllib3.exceptions.ProtocolError: ('Connection aborted.', OSError(0, 'Error'))
2021-02-08 05:11:29 stdout self._sslobj.do_handshake()
2021-02-08 05:11:29 stdout File "/usr/local/lib/python3.7/ssl.py", line 1139, in do_handshake
2021-02-08 05:11:29 stdout self.do_handshake()
2021-02-08 05:11:29 stdout File "/usr/local/lib/python3.7/ssl.py", line 870, in _create
2021-02-08 05:11:29 stdout session=session
2021-02-08 05:11:29 stdout File "/usr/local/lib/python3.7/ssl.py", line 423, in wrap_socket
2021-02-08 05:11:29 stdout return context.wrap_socket(sock, server_hostname=server_hostname)
2021-02-08 05:11:29 stdout File "/usr/local/lib/python3.7/site-packages/telegram/vendor/ptb_urllib3/urllib3/util/ssl_.py", line 324, in ssl_wrap_socket
2021-02-08 05:11:29 stdout ssl_context=context)
2021-02-08 05:11:29 stdout File "/usr/local/lib/python3.7/site-packages/telegram/vendor/ptb_urllib3/urllib3/connection.py", line 326, in connect
2021-02-08 05:11:29 stdout conn.connect()
2021-02-08 05:11:29 stdout File "/usr/local/lib/python3.7/site-packages/telegram/vendor/ptb_urllib3/urllib3/connectionpool.py", line 289, in _validate_conn
2021-02-08 05:11:29 stdout super(HTTPSConnectionPool, self)._validate_conn(conn)
2021-02-08 05:11:29 stdout File "/usr/local/lib/python3.7/site-packages/telegram/vendor/ptb_urllib3/urllib3/connectionpool.py", line 857, in _validate_conn
2021-02-08 05:11:29 stdout self._validate_conn(conn)
2021-02-08 05:11:29 stdout File "/usr/local/lib/python3.7/site-packages/telegram/vendor/ptb_urllib3/urllib3/connectionpool.py", line 360, in _make_request
2021-02-08 05:11:29 stdout chunked=chunked)
2021-02-08 05:11:29 stdout File "/usr/local/lib/python3.7/site-packages/telegram/vendor/ptb_urllib3/urllib3/connectionpool.py", line 617, in urlopen
2021-02-08 05:11:29 stdout raise value.with_traceback(tb)
2021-02-08 05:11:29 stdout File "/usr/local/lib/python3.7/site-packages/telegram/vendor/ptb_urllib3/urllib3/packages/six.py", line 685, in reraise
2021-02-08 05:11:29 stdout raise six.reraise(type(error), error, _stacktrace)
2021-02-08 05:11:29 stdout File "/usr/local/lib/python3.7/site-packages/telegram/vendor/ptb_urllib3/urllib3/util/retry.py", line 347, in increment
2021-02-08 05:11:29 stdout _stacktrace=sys.exc_info()[2])
2021-02-08 05:11:29 stdout File "/usr/local/lib/python3.7/site-packages/telegram/vendor/ptb_urllib3/urllib3/connectionpool.py", line 666, in urlopen
2021-02-08 05:11:29 stdout response = conn.urlopen(method, u.request_uri, **kw)
2021-02-08 05:11:29 stdout File "/usr/local/lib/python3.7/site-packages/telegram/vendor/ptb_urllib3/urllib3/poolmanager.py", line 244, in urlopen
2021-02-08 05:11:29 stdout return self.urlopen(method, url, **extra_kw)
2021-02-08 05:11:29 stdout File "/usr/local/lib/python3.7/site-packages/telegram/vendor/ptb_urllib3/urllib3/request.py", line 148, in request_encode_body
2021-02-08 05:11:29 stdout **urlopen_kw)
2021-02-08 05:11:29 stdout File "/usr/local/lib/python3.7/site-packages/telegram/vendor/ptb_urllib3/urllib3/request.py", line 70, in request
2021-02-08 05:11:29 stdout resp = self._con_pool.request(*args, **kwargs)
2021-02-08 05:11:29 stdout File "/usr/local/lib/python3.7/site-packages/telegram/utils/request.py", line 224, in _request_wrapper
2021-02-08 05:11:29 stdout Traceback (most recent call last):
2021-02-08 05:11:29 stdout  
2021-02-08 05:11:29 stdout During handling of the above exception, another exception occurred:
2021-02-08 05:11:29 stdout  
2021-02-08 05:11:29 stdout OSError: [Errno 0] Error
2021-02-08 05:11:29 stdout self._sslobj.do_handshake()
2021-02-08 05:11:29 stdout File "/usr/local/lib/python3.7/ssl.py", line 1139, in do_handshake
2021-02-08 05:11:29 stdout self.do_handshake()
2021-02-08 05:11:29 stdout File "/usr/local/lib/python3.7/ssl.py", line 870, in _create
2021-02-08 05:11:29 stdout session=session
2021-02-08 05:11:29 stdout File "/usr/local/lib/python3.7/ssl.py", line 423, in wrap_socket
2021-02-08 05:11:29 stdout return context.wrap_socket(sock, server_hostname=server_hostname)
2021-02-08 05:11:29 stdout File "/usr/local/lib/python3.7/site-packages/telegram/vendor/ptb_urllib3/urllib3/util/ssl_.py", line 324, in ssl_wrap_socket
2021-02-08 05:11:29 stdout ssl_context=context)
2021-02-08 05:11:29 stdout File "/usr/local/lib/python3.7/site-packages/telegram/vendor/ptb_urllib3/urllib3/connection.py", line 326, in connect
2021-02-08 05:11:29 stdout conn.connect()
2021-02-08 05:11:29 stdout File "/usr/local/lib/python3.7/site-packages/telegram/vendor/ptb_urllib3/urllib3/connectionpool.py", line 289, in _validate_conn
2021-02-08 05:11:29 stdout super(HTTPSConnectionPool, self)._validate_conn(conn)
2021-02-08 05:11:29 stdout File "/usr/local/lib/python3.7/site-packages/telegram/vendor/ptb_urllib3/urllib3/connectionpool.py", line 857, in _validate_conn
2021-02-08 05:11:29 stdout self._validate_conn(conn)
2021-02-08 05:11:29 stdout File "/usr/local/lib/python3.7/site-packages/telegram/vendor/ptb_urllib3/urllib3/connectionpool.py", line 360, in _make_request
2021-02-08 05:11:29 stdout chunked=chunked)
2021-02-08 05:11:29 stdout File "/usr/local/lib/python3.7/site-packages/telegram/vendor/ptb_urllib3/urllib3/connectionpool.py", line 617, in urlopen
2021-02-08 05:11:29 stdout Traceback (most recent call last):
2021-02-08 05:11:29 stdout 2021-02-08 05:11:29,084 - telegram.ext.dispatcher - ERROR - No error handlers are registered, logging exception.
2021-02-08 05:11:29 stdout 2021-02-08 05:11:29,083 - telegram.ext.updater - ERROR - Error while getting Updates: urllib3 HTTPError ('Connection aborted.', OSError(0, 'Error'))
2021-02-08 05:11:24 stdout telegram.error.NetworkError: urllib3 HTTPError ('Connection aborted.', OSError(0, 'Error'))
2021-02-08 05:11:24 stdout raise NetworkError('urllib3 HTTPError {}'.format(error))
2021-02-08 05:11:24 stdout File "/usr/local/lib/python3.7/site-packages/telegram/utils/request.py", line 230, in _request_wrapper
2021-02-08 05:11:24 stdout **urlopen_kwargs)
2021-02-08 05:11:24 stdout File "/usr/local/lib/python3.7/site-packages/telegram/utils/request.py", line 333, in post
2021-02-08 05:11:24 stdout result = self._request.post(url, data, timeout=float(read_latency) + float(timeout))
2021-02-08 05:11:24 stdout File "/usr/local/lib/python3.7/site-packages/telegram/bot.py", line 2138, in get_updates
2021-02-08 05:11:24 stdout result = func(*args, **kwargs)
2021-02-08 05:11:24 stdout File "/usr/local/lib/python3.7/site-packages/telegram/bot.py", line 67, in decorator
2021-02-08 05:11:24 stdout File "", line 2, in get_updates
2021-02-08 05:11:24 stdout allowed_updates=allowed_updates)
2021-02-08 05:11:24 stdout File "/usr/local/lib/python3.7/site-packages/telegram/ext/updater.py", line 340, in polling_action_cb
2021-02-08 05:11:24 stdout if not action_cb():
2021-02-08 05:11:24 stdout File "/usr/local/lib/python3.7/site-packages/telegram/ext/updater.py", line 379, in _network_loop_retry
2021-02-08 05:11:24 stdout Traceback (most recent call last):
2021-02-08 05:11:24 stdout  
2021-02-08 05:11:24 stdout During handling of the above exception, another exception occurred:
2021-02-08 05:11:24 stdout  
2021-02-08 05:11:24 stdout telegram.vendor.ptb_urllib3.urllib3.exceptions.ProtocolError: ('Connection aborted.', OSError(0, 'Error'))
2021-02-08 05:11:24 stdout self._sslobj.do_handshake()
2021-02-08 05:11:24 stdout File "/usr/local/lib/python3.7/ssl.py", line 1139, in do_handshake
2021-02-08 05:11:24 stdout self.do_handshake()
2021-02-08 05:11:24 stdout File "/usr/local/lib/python3.7/ssl.py", line 870, in _create
2021-02-08 05:11:24 stdout session=session
2021-02-08 05:11:24 stdout File "/usr/local/lib/python3.7/ssl.py", line 423, in wrap_socket
2021-02-08 05:11:24 stdout return context.wrap_socket(sock, server_hostname=server_hostname)
2021-02-08 05:11:24 stdout File "/usr/local/lib/python3.7/site-packages/telegram/vendor/ptb_urllib3/urllib3/util/ssl_.py", line 324, in ssl_wrap_socket
2021-02-08 05:11:24 stdout ssl_context=context)
2021-02-08 05:11:24 stdout File "/usr/local/lib/python3.7/site-packages/telegram/vendor/ptb_urllib3/urllib3/connection.py", line 326, in connect
2021-02-08 05:11:24 stdout conn.connect()
2021-02-08 05:11:24 stdout File "/usr/local/lib/python3.7/site-packages/telegram/vendor/ptb_urllib3/urllib3/connectionpool.py", line 289, in _validate_conn
2021-02-08 05:11:24 stdout super(HTTPSConnectionPool, self)._validate_conn(conn)
2021-02-08 05:11:24 stdout File "/usr/local/lib/python3.7/site-packages/telegram/vendor/ptb_urllib3/urllib3/connectionpool.py", line 857, in _validate_conn
2021-02-08 05:11:24 stdout self._validate_conn(conn)
2021-02-08 05:11:24 stdout File "/usr/local/lib/python3.7/site-packages/telegram/vendor/ptb_urllib3/urllib3/connectionpool.py", line 360, in _make_request
2021-02-08 05:11:24 stdout chunked=chunked)
2021-02-08 05:11:24 stdout File "/usr/local/lib/python3.7/site-packages/telegram/vendor/ptb_urllib3/urllib3/connectionpool.py", line 617, in urlopen
2021-02-08 05:11:24 stdout raise value.with_traceback(tb)
2021-02-08 05:11:24 stdout File "/usr/local/lib/python3.7/site-packages/telegram/vendor/ptb_urllib3/urllib3/packages/six.py", line 685, in reraise
2021-02-08 05:11:24 stdout raise six.reraise(type(error), error, _stacktrace)
2021-02-08 05:11:24 stdout File "/usr/local/lib/python3.7/site-packages/telegram/vendor/ptb_urllib3/urllib3/util/retry.py", line 347, in increment
2021-02-08 05:11:24 stdout _stacktrace=sys.exc_info()[2])
2021-02-08 05:11:24 stdout File "/usr/local/lib/python3.7/site-packages/telegram/vendor/ptb_urllib3/urllib3/connectionpool.py", line 666, in urlopen
2021-02-08 05:11:24 stdout **response_kw)
2021-02-08 05:11:24 stdout File "/usr/local/lib/python3.7/site-packages/telegram/vendor/ptb_urllib3/urllib3/connectionpool.py", line 695, in urlopen
2021-02-08 05:11:24 stdout response = conn.urlopen(method, u.request_uri, **kw)
2021-02-08 05:11:24 stdout File "/usr/local/lib/python3.7/site-packages/telegram/vendor/ptb_urllib3/urllib3/poolmanager.py", line 244, in urlopen
2021-02-08 05:11:24 stdout return self.urlopen(method, url, **extra_kw)
2021-02-08 05:11:24 stdout File "/usr/local/lib/python3.7/site-packages/telegram/vendor/ptb_urllib3/urllib3/request.py", line 148, in request_encode_body
2021-02-08 05:11:24 stdout **urlopen_kw)
2021-02-08 05:11:24 stdout File "/usr/local/lib/python3.7/site-packages/telegram/vendor/ptb_urllib3/urllib3/request.py", line 70, in request
2021-02-08 05:11:24 stdout resp = self._con_pool.request(*args, **kwargs)
2021-02-08 05:11:24 stdout File "/usr/local/lib/python3.7/site-packages/telegram/utils/request.py", line 224, in _request_wrapper
2021-02-08 05:11:24 stdout Traceback (most recent call last):
2021-02-08 05:11:24 stdout  
2021-02-08 05:11:24 stdout During handling of the above exception, another exception occurred:
2021-02-08 05:11:24 stdout  
2021-02-08 05:11:24 stdout OSError: [Errno 0] Error
2021-02-08 05:11:24 stdout self._sslobj.do_handshake()
2021-02-08 05:11:24 stdout File "/usr/local/lib/python3.7/ssl.py", line 1139, in do_handshake
2021-02-08 05:11:24 stdout self.do_handshake()
2021-02-08 05:11:24 stdout File "/usr/local/lib/python3.7/ssl.py", line 870, in _create
2021-02-08 05:11:24 stdout session=session
2021-02-08 05:11:24 stdout File "/usr/local/lib/python3.7/ssl.py", line 423, in wrap_socket
2021-02-08 05:11:24 stdout return context.wrap_socket(sock, server_hostname=server_hostname)
2021-02-08 05:11:24 stdout File "/usr/local/lib/python3.7/site-packages/telegram/vendor/ptb_urllib3/urllib3/util/ssl_.py", line 324, in ssl_wrap_socket
2021-02-08 05:11:24 stdout ssl_context=context)
2021-02-08 05:11:24 stdout File "/usr/local/lib/python3.7/site-packages/telegram/vendor/ptb_urllib3/urllib3/connection.py", line 326, in connect
2021-02-08 05:11:24 stdout conn.connect()
2021-02-08 05:11:24 stdout File "/usr/local/lib/python3.7/site-packages/telegram/vendor/ptb_urllib3/urllib3/connectionpool.py", line 289, in _validate_conn
2021-02-08 05:11:24 stdout super(HTTPSConnectionPool, self)._validate_conn(conn)
2021-02-08 05:11:24 stdout File "/usr/local/lib/python3.7/site-packages/telegram/vendor/ptb_urllib3/urllib3/connectionpool.py", line 857, in _validate_conn
2021-02-08 05:11:24 stdout self._validate_conn(conn)
2021-02-08 05:11:24 stdout File "/usr/local/lib/python3.7/site-packages/telegram/vendor/ptb_urllib3/urllib3/connectionpool.py", line 360, in _make_request
2021-02-08 05:11:24 stdout chunked=chunked)
2021-02-08 05:11:24 stdout File "/usr/local/lib/python3.7/site-packages/telegram/vendor/ptb_urllib3/urllib3/connectionpool.py", line 617, in urlopen
2021-02-08 05:11:24 stdout Traceback (most recent call last):
2021-02-08 05:11:24 stdout 2021-02-08 05:11:24,540 - telegram.ext.dispatcher - ERROR - No error handlers are registered, logging exception.
2021-02-08 05:11:24 stdout 2021-02-08 05:11:24,540 - telegram.ext.updater - ERROR - Error while getting Updates: urllib3 HTTPError ('Connection aborted.', OSError(0, 'Error'))
2021-02-08 05:11:21 stdout 2021-02-08 05:11:21,499 - telegram.vendor.ptb_urllib3.urllib3.connectionpool - WARNING - Retrying (Retry(total=2, connect=None, read=None, redirect=None)) after connection broken by 'ConnectTimeoutError(<telegram.vendor.ptb_urllib3.urllib3.connectionpool.HTTPSConnectionPool object at 0x7f409816b990>, 'Connect timed out. (connect timeout=5.0)')': /bot1684341136:AAGaup6kcF3Po1AfX81E7iLGR4ZyzdpVFZ0/getUpdates
2021-02-08 05:11:15 stdout telegram.error.NetworkError: urllib3 HTTPError ('Connection aborted.', OSError(0, 'Error'))
2021-02-08 05:11:15 stdout raise NetworkError('urllib3 HTTPError {}'.format(error))
2021-02-08 05:11:15 stdout File "/usr/local/lib/python3.7/site-packages/telegram/utils/request.py", line 230, in _request_wrapper
2021-02-08 05:11:15 stdout **urlopen_kwargs)
2021-02-08 05:11:15 stdout File "/usr/local/lib/python3.7/site-packages/telegram/utils/request.py", line 333, in post
2021-02-08 05:11:15 stdout result = self._request.post(url, data, timeout=float(read_latency) + float(timeout))
2021-02-08 05:11:15 stdout File "/usr/local/lib/python3.7/site-packages/telegram/bot.py", line 2138, in get_updates
2021-02-08 05:11:15 stdout result = func(*args, **kwargs)
2021-02-08 05:11:15 stdout File "/usr/local/lib/python3.7/site-packages/telegram/bot.py", line 67, in decorator
2021-02-08 05:11:15 stdout File "", line 2, in get_updates
2021-02-08 05:11:15 stdout allowed_updates=allowed_updates)
2021-02-08 05:11:15 stdout File "/usr/local/lib/python3.7/site-packages/telegram/ext/updater.py", line 340, in polling_action_cb
2021-02-08 05:11:15 stdout if not action_cb():
2021-02-08 05:11:15 stdout File "/usr/local/lib/python3.7/site-packages/telegram/ext/updater.py", line 379, in _network_loop_retry
2021-02-08 05:11:15 stdout Traceback (most recent call last):
2021-02-08 05:11:15 stdout  
2021-02-08 05:11:15 stdout During handling of the above exception, another exception occurred:
2021-02-08 05:11:15 stdout  
2021-02-08 05:11:15 stdout telegram.vendor.ptb_urllib3.urllib3.exceptions.ProtocolError: ('Connection aborted.', OSError(0, 'Error'))
2021-02-08 05:11:15 stdout self._sslobj.do_handshake()
2021-02-08 05:11:15 stdout File "/usr/local/lib/python3.7/ssl.py", line 1139, in do_handshake
2021-02-08 05:11:15 stdout self.do_handshake()
2021-02-08 05:11:15 stdout File "/usr/local/lib/python3.7/ssl.py", line 870, in _create
2021-02-08 05:11:15 stdout session=session
2021-02-08 05:11:15 stdout File "/usr/local/lib/python3.7/ssl.py", line 423, in wrap_socket
2021-02-08 05:11:15 stdout return context.wrap_socket(sock, server_hostname=server_hostname)
2021-02-08 05:11:15 stdout File "/usr/local/lib/python3.7/site-packages/telegram/vendor/ptb_urllib3/urllib3/util/ssl_.py", line 324, in ssl_wrap_socket
2021-02-08 05:11:15 stdout ssl_context=context)
2021-02-08 05:11:15 stdout File "/usr/local/lib/python3.7/site-packages/telegram/vendor/ptb_urllib3/urllib3/connection.py", line 326, in connect
2021-02-08 05:11:15 stdout conn.connect()
2021-02-08 05:11:15 stdout File "/usr/local/lib/python3.7/site-packages/telegram/vendor/ptb_urllib3/urllib3/connectionpool.py", line 289, in _validate_conn
2021-02-08 05:11:15 stdout super(HTTPSConnectionPool, self)._validate_conn(conn)
2021-02-08 05:11:15 stdout File "/usr/local/lib/python3.7/site-packages/telegram/vendor/ptb_urllib3/urllib3/connectionpool.py", line 857, in _validate_conn
2021-02-08 05:11:15 stdout self._validate_conn(conn)
2021-02-08 05:11:15 stdout File "/usr/local/lib/python3.7/site-packages/telegram/vendor/ptb_urllib3/urllib3/connectionpool.py", line 360, in _make_request
2021-02-08 05:11:15 stdout chunked=chunked)
2021-02-08 05:11:15 stdout File "/usr/local/lib/python3.7/site-packages/telegram/vendor/ptb_urllib3/urllib3/connectionpool.py", line 617, in urlopen
2021-02-08 05:11:15 stdout raise value.with_traceback(tb)
2021-02-08 05:11:15 stdout File "/usr/local/lib/python3.7/site-packages/telegram/vendor/ptb_urllib3/urllib3/packages/six.py", line 685, in reraise
2021-02-08 05:11:15 stdout raise six.reraise(type(error), error, _stacktrace)
2021-02-08 05:11:15 stdout File "/usr/local/lib/python3.7/site-packages/telegram/vendor/ptb_urllib3/urllib3/util/retry.py", line 347, in increment
2021-02-08 05:11:15 stdout _stacktrace=sys.exc_info()[2])
2021-02-08 05:11:15 stdout File "/usr/local/lib/python3.7/site-packages/telegram/vendor/ptb_urllib3/urllib3/connectionpool.py", line 666, in urlopen
2021-02-08 05:11:15 stdout response = conn.urlopen(method, u.request_uri, **kw)
2021-02-08 05:11:15 stdout File "/usr/local/lib/python3.7/site-packages/telegram/vendor/ptb_urllib3/urllib3/poolmanager.py", line 244, in urlopen
2021-02-08 05:11:15 stdout return self.urlopen(method, url, **extra_kw)
2021-02-08 05:11:15 stdout File "/usr/local/lib/python3.7/site-packages/telegram/vendor/ptb_urllib3/urllib3/request.py", line 148, in request_encode_body
2021-02-08 05:11:15 stdout **urlopen_kw)
2021-02-08 05:11:15 stdout File "/usr/local/lib/python3.7/site-packages/telegram/vendor/ptb_urllib3/urllib3/request.py", line 70, in request
2021-02-08 05:11:15 stdout resp = self._con_pool.request(*args, **kwargs)
2021-02-08 05:11:15 stdout File "/usr/local/lib/python3.7/site-packages/telegram/utils/request.py", line 224, in _request_wrapper
2021-02-08 05:11:15 stdout Traceback (most recent call last):
2021-02-08 05:11:15 stdout  
2021-02-08 05:11:15 stdout During handling of the above exception, another exception occurred:
2021-02-08 05:11:15 stdout  
2021-02-08 05:11:15 stdout OSError: [Errno 0] Error
2021-02-08 05:11:15 stdout self._sslobj.do_handshake()
2021-02-08 05:11:15 stdout File "/usr/local/lib/python3.7/ssl.py", line 1139, in do_handshake
2021-02-08 05:11:15 stdout self.do_handshake()
2021-02-08 05:11:15 stdout File "/usr/local/lib/python3.7/ssl.py", line 870, in _create
2021-02-08 05:11:15 stdout session=session
2021-02-08 05:11:15 stdout File "/usr/local/lib/python3.7/ssl.py", line 423, in wrap_socket
2021-02-08 05:11:15 stdout return context.wrap_socket(sock, server_hostname=server_hostname)
2021-02-08 05:11:15 stdout File "/usr/local/lib/python3.7/site-packages/telegram/vendor/ptb_urllib3/urllib3/util/ssl_.py", line 324, in ssl_wrap_socket
2021-02-08 05:11:15 stdout ssl_context=context)
2021-02-08 05:11:15 stdout File "/usr/local/lib/python3.7/site-packages/telegram/vendor/ptb_urllib3/urllib3/connection.py", line 326, in connect
2021-02-08 05:11:15 stdout conn.connect()
2021-02-08 05:11:15 stdout File "/usr/local/lib/python3.7/site-packages/telegram/vendor/ptb_urllib3/urllib3/connectionpool.py", line 289, in _validate_conn
2021-02-08 05:11:15 stdout super(HTTPSConnectionPool, self)._validate_conn(conn)
2021-02-08 05:11:15 stdout File "/usr/local/lib/python3.7/site-packages/telegram/vendor/ptb_urllib3/urllib3/connectionpool.py", line 857, in _validate_conn
2021-02-08 05:11:15 stdout self._validate_conn(conn)
2021-02-08 05:11:15 stdout File "/usr/local/lib/python3.7/site-packages/telegram/vendor/ptb_urllib3/urllib3/connectionpool.py", line 360, in _make_request
2021-02-08 05:11:15 stdout chunked=chunked)
2021-02-08 05:11:15 stdout File "/usr/local/lib/python3.7/site-packages/telegram/vendor/ptb_urllib3/urllib3/connectionpool.py", line 617, in urlopen
2021-02-08 05:11:15 stdout Traceback (most recent call last):
2021-02-08 05:11:15 stdout 2021-02-08 05:11:15,485 - telegram.ext.dispatcher - ERROR - No error handlers are registered, logging exception.
2021-02-08 05:11:15 stdout 2021-02-08 05:11:15,484 - telegram.ext.updater - ERROR - Error while getting Updates: urllib3 HTTPError ('Connection aborted.', OSError(0, 'Error'))
2021-02-08 05:06:25 stdout TypeError: can only concatenate str (not "NoneType") to str
2021-02-08 05:06:25 stdout name = chat.first_name + ' ' + chat.last_name
2021-02-08 05:06:25 stdout File "telegramRSSbot.py", line 40, in is_manager
2021-02-08 05:06:25 stdout is_manager(update)
2021-02-08 05:06:25 stdout File "telegramRSSbot.py", line 144, in cmd_help
2021-02-08 05:06:25 stdout return self.callback(update, context)
2021-02-08 05:06:25 stdout File "/usr/local/lib/python3.7/site-packages/telegram/ext/handler.py", line 119, in handle_update
2021-02-08 05:06:25 stdout handler.handle_update(update, self, check, context)
2021-02-08 05:06:25 stdout File "/usr/local/lib/python3.7/site-packages/telegram/ext/dispatcher.py", line 340, in process_update
2021-02-08 05:06:25 stdout Traceback (most recent call last):
2021-02-08 05:06:25 stdout 2021-02-08 05:06:25,138 - telegram.ext.dispatcher - ERROR - No error handlers are registered, logging exception.
2021-02-08 05:06:00 stdout  
2021-02-08 05:06:00 stdout DELAY: 300s
2021-02-08 05:06:00 stdout MANAGER: 547306955
2021-02-08 05:06:00 stdout CHATID: 547306955

[FR] Various content filtering options

hello
can you add some sort of filtering?
example i want it post when content include certain word
or forward post contain certain word to another chat.
or after posting in telegram delete post that not contain defined word

thanks

docker error on some accounts

docker

rsstt   | 2022-12-13-01:51:11:WARNING:telethon.client.users - Telegram is having internal issues NeedMemberInvalidError: The provided member is invalid or does not exist (for example a thumb size) (caused by SetBotCommandsRequest)
rsstt   | 2022-12-13-01:51:14:WARNING:telethon.client.users - Telegram is having internal issues NeedMemberInvalidError: The provided member is invalid or does not exist (for example a thumb size) (caused by SetBotCommandsRequest)
rsstt   | 2022-12-13-01:51:16:WARNING:telethon.client.users - Telegram is having internal issues NeedMemberInvalidError: The provided member is invalid or does not exist (for example a thumb size) (caused by SetBotCommandsRequest)
rsstt   | 2022-12-13-01:51:18:WARNING:RSStT - Set command error: 
rsstt   | Traceback (most recent call last):
rsstt   |   File "/app/src/__init__.py", line 249, in lazy
rsstt   |     await asyncio.gather(*set_bot_commands_tasks)
rsstt   |   File "/app/src/command/utils.py", line 657, in set_bot_commands
rsstt   |     await env.bot(
rsstt   |   File "/opt/venv/lib/python3.11/site-packages/telethon/client/users.py", line 30, in __call__
rsstt   |     return await self._call(self._sender, request, ordered=ordered)
rsstt   |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
rsstt   |   File "/opt/venv/lib/python3.11/site-packages/telethon/client/users.py", line 129, in _call
rsstt   |     raise last_error
rsstt   |   File "/opt/venv/lib/python3.11/site-packages/telethon/client/users.py", line 84, in _call
rsstt   |     result = await future
rsstt   |              ^^^^^^^^^^^^
rsstt   | telethon.errors.rpcerrorlist.NeedMemberInvalidError: The provided member is invalid or does not exist (for example a thumb size) (caused by SetBotCommandsRequest)

Feature request: URL replacement

Hey, I'm using the bot to read Twitter via nitter RSS. And sometimes nitter is rate limited and links to tweets don't work.
Is it possible to get a custom URL replacement in output, for example, change nitter.net for twitter.com in all URLs, including the source link.
Thanks.

Getting 403 on certain feeds that work on desktop.

Hello,

This feed, which works in the browser, will not work in the script.

Failed to subscribe
https://www.rt.com/rss/ (ERROR: HTTP status code error (403 Forbidden))

When I curl the feed URL, I see that I'm getting a security screen of code for DDoS-Guard that has a five-second delay before being forwarded to the RSS Feed data. Once a cookie is set, the next visit is not bothered by DDoS-Guard.

What do you recommend in this situation where a delay, cookie, and redirect need to be followed to obtain a feed?

Some posts missing links

Describe the bug
I've monitoring this subreddit with your bot, and some posts are missing links ([link] and [comments])

How i see it in bot:
изображение

How i see it with feed preview firefox addon:
изображение

To Reproduce
Steps to reproduce the behavior:

  1. Subscribe to https://www.reddit.com/r/FreeGameFindings/.rss in bot
  2. Wait for posts
  3. Most posts will be missing [link] and [comments] links

Expected behavior
Have the [link] and [comments] links, as expected

Important log
You may execute docker logs [container name] to get log.
Choose that is important and paste it here.

Requesting new features / 请求新增功能

因为用于自己博客的RSS推送,所以想在结尾添加一些额外的备注。

请求新增 "附加自定义结尾" 的功能,比如:

RSS Bot推送消息:
Slack is increasing its prices and making big changes to its free plan
#TheVerge

via The Verge - All Posts () (author: Tom Warren)

''新功能附加处"
频道: @xxxx
群组: @xxxx

I want to add some extra notes at the end because it's for my blog RSS feed.

Request the "attach custom sign-off" feature, for example:

RSS bot push messages:
Slack is increasing its prices and making big changes to its free plan
#TheVerge

via The Verge - All Posts () (author: Tom Warren)

"New Features added area"
Channel: @ XXXX
Groups: @ XXXX

/test 出现 403 forbidden

Something went wrong while sending this message. Please check:  
  
Traceback (most recent call last):  
File "/app/message.py", line 18, in send  
send_message(chatid, xml, feed_title, url, context)  
File "/app/message.py", line 30, in send_message  
video = validate_medium(getVideo.findall(xml)[0], 20971520)  
File "/app/message.py", line 78, in validate_medium  
size, width, height = get_pic_info(url)  
File "/app/message.py", line 54, in get_pic_info  
urlopen = request.urlopen(url)  
File "/usr/local/lib/python3.7/urllib/request.py", line 222, in urlopen  
return opener.open(url, data, timeout)  
File "/usr/local/lib/python3.7/urllib/request.py", line 531, in open  
response = meth(req, response)  
File "/usr/local/lib/python3.7/urllib/request.py", line 641, in http_response  
'http', request, response, code, msg, hdrs)  
File "/usr/local/lib/python3.7/urllib/request.py", line 569, in error  
return self._call_chain(*args)  
File "/usr/local/lib/python3.7/urllib/request.py", line 503, in _call_chain  
result = func(*args)  
File "/usr/local/lib/python3.7/urllib/request.py", line 649, in http_error_default  
raise HTTPError(req.full_url, code, msg, hdrs, fp)  
urllib.error.HTTPError: HTTP Error 403: Forbidden

Atom support

Would it be possible to add support for Atom feeds along with RSS ones? That would be extremely useful, and it shouldn't be that much harder, hopefully.

Title does not support emojis

Describe the bug
When using RSS with emojis in title, it does not correctly post the same emoji as the title in the Telegram message. It looks like:

๐ŸŒŠ๐Ÿ„ Amoogust Update 2022 - The Nightly Build Switch Update (Revision B) | Changes

See:
image

To Reproduce
Steps to reproduce the behavior:

  1. Let the feed post it as Telegram message
  2. Use /test https://news.mailcow.email/index.xml

Expected behavior
See emoji.

Important log
n/a

[Feature request] Setting custom style and format using Markdown/HTML

I have several issues with preset styles, the most important ones are:

  • Underlining the title.
  • displaying the word "Source" as hyperlink.

These two easily ruin the appearance of Persian/Arabic feed's posts.

Also, I want to use an emoji before the title and content but it looks like it's not possible.

I think adding the ability to customize the style and format of each feed's posts using Markdown (or HTML) and placeholders would permeantly solve the style issues.

#118 #130

Make the bot "private" [feature request]

Telegram bots are public by default.
Everyone that knows the bot name can contact the bot and start a chat with it.
It would make sense for those self hosting the bot for personal use to have a feature that makes the bot respond only to it's "creator"

Btw
Thanks for the great project and keep up

how unsub in chat?

how unsub from feed?
i put bellow command
/unsub @username
in private chat that i am in with bot only
return this
This command can only be used in a private chat.

how solve this?

Since december 16 posts from reddit rss have wrong links

Describe the bug
Since december 16 posts from reddit rss have wrong links, all /u/, [link] and [comments] links are wrong, they all point to https://www.reddit.com/r/<subreddit>/.rss
изображение

To Reproduce
Steps to reproduce the behavior:

  1. Subscribe to https://www.reddit.com/r/FreeGameFindings/.rss in bot
  2. Wait for posts.
  3. Links will be wrong.

Expected behavior
Have correct links.

Important log
You may execute docker logs [container name] to get log.
Choose that is important and paste it here.

Feedback: Disable link preview on help text

Just a quick feedback: IMHO I think it would be neat to disable the link preview when /help is being used.

Reasons:

  1. It makes the output so large. On smaller windows (e.g. having client on portion of the screen) it makes it a bit difficult to read at once or needs to scroll.
  2. Above is especially annoying, when bot is being set-up the first time and often scrolling for commands is required.
  3. During night time and using dark mode, the link preview screenshot with the bright white background makes you almost blind.

Just as an example:
image

微博视频无法正确展示

image

你好,使用最新版的rsshub生成的微博源无法正确展示视频,显示为invalid video,在境内自建freshrss阅读器中展示正常,希望修复该问题,非常感谢!

频繁遇到错误: telegram.error.BadRequest: Can't parse entities: character '-' is reserved and must be escaped with the preceding '\'

rsstotg_1 | Updating ??????
rsstotg_1 | - Pushing https://meta.appinn.net/t/topic/18946
rsstotg_1 | - Push https://meta.appinn.net/t/topic/18946 failed!
rsstotg_1 | Traceback (most recent call last):
rsstotg_1 | File "/app/message.py", line 17, in send
rsstotg_1 | send_message(chatid, xml, feed_title, url, context)
rsstotg_1 | File "/app/message.py", line 36, in send_message
rsstotg_1 | send_media_message(chatid, xml, feed_title, url, pics, context)
rsstotg_1 | File "/app/message.py", line 121, in send_media_message
rsstotg_1 | context.bot.send_media_group(chatid, pic_objs)
rsstotg_1 | File "", line 2, in send_media_group
rsstotg_1 | File "/usr/local/lib/python3.7/site-packages/telegram/bot.py", line 67, in decorator
rsstotg_1 | result = func(*args, **kwargs)
rsstotg_1 | File "/usr/local/lib/python3.7/site-packages/telegram/bot.py", line 1105, in send_media_group
rsstotg_1 | result = self._request.post(url, data, timeout=timeout)
rsstotg_1 | File "/usr/local/lib/python3.7/site-packages/telegram/utils/request.py", line 328, in post
rsstotg_1 | result = self._request_wrapper('POST', url, fields=data, **urlopen_kwargs)
rsstotg_1 | File "/usr/local/lib/python3.7/site-packages/telegram/utils/request.py", line 244, in _request_wrapper
rsstotg_1 | raise BadRequest(message)
rsstotg_1 | telegram.error.BadRequest: Can't parse inputmedia: can't parse entities: character '-' is reserved and must be escaped with the preceding ''
rsstotg_1 | 2020-09-10 09:30:04,789 - JobQueue - ERROR - An uncaught error was raised while executing job rss_monitor
rsstotg_1 | Traceback (most recent call last):
rsstotg_1 | File "/app/message.py", line 17, in send
rsstotg_1 | send_message(chatid, xml, feed_title, url, context)
rsstotg_1 | File "/app/message.py", line 36, in send_message
rsstotg_1 | send_media_message(chatid, xml, feed_title, url, pics, context)
rsstotg_1 | File "/app/message.py", line 121, in send_media_message
rsstotg_1 | context.bot.send_media_group(chatid, pic_objs)
rsstotg_1 | File "", line 2, in send_media_group
rsstotg_1 | File "/usr/local/lib/python3.7/site-packages/telegram/bot.py", line 67, in decorator
rsstotg_1 | result = func(*args, **kwargs)
rsstotg_1 | File "/usr/local/lib/python3.7/site-packages/telegram/bot.py", line 1105, in send_media_group
rsstotg_1 | result = self._request.post(url, data, timeout=timeout)
rsstotg_1 | File "/usr/local/lib/python3.7/site-packages/telegram/utils/request.py", line 328, in post
rsstotg_1 | result = self._request_wrapper('POST', url, fields=data, **urlopen_kwargs)
rsstotg_1 | File "/usr/local/lib/python3.7/site-packages/telegram/utils/request.py", line 244, in _request_wrapper
rsstotg_1 | raise BadRequest(message)
rsstotg_1 | telegram.error.BadRequest: Can't parse inputmedia: can't parse entities: character '-' is reserved and must be escaped with the preceding ''
rsstotg_1 |
rsstotg_1 | During handling of the above exception, another exception occurred:
rsstotg_1 |
rsstotg_1 | Traceback (most recent call last):
rsstotg_1 | File "/usr/local/lib/python3.7/site-packages/telegram/ext/jobqueue.py", line 418, in tick
rsstotg_1 | job.run(self._dispatcher)
rsstotg_1 | File "/usr/local/lib/python3.7/site-packages/telegram/ext/jobqueue.py", line 574, in run
rsstotg_1 | self.callback(CallbackContext.from_job(self, dispatcher))
rsstotg_1 | File "telegramRSSbot.py", line 157, in rss_monitor
rsstotg_1 | message.send(chatid, entry['summary'], rss_d.feed.title, entry['link'], context)
rsstotg_1 | File "/app/message.py", line 23, in send
rsstotg_1 | traceback.format_exc().replace('\n', '
'), feed_title, url, context)
rsstotg_1 | File "/app/message.py", line 39, in send_message
rsstotg_1 | send_text_message(chatid, xml, feed_title, url, False, context)
rsstotg_1 | File "/app/message.py", line 103, in send_text_message
rsstotg_1 | context.bot.send_message(chatid, head + text_list[i], parse_mode='MarkdownV2', disable_web_page_preview=True)
rsstotg_1 | File "", line 2, in send_message
rsstotg_1 | File "/usr/local/lib/python3.7/site-packages/telegram/bot.py", line 67, in decorator
rsstotg_1 | result = func(*args, **kwargs)
rsstotg_1 | File "/usr/local/lib/python3.7/site-packages/telegram/bot.py", line 348, in send_message
rsstotg_1 | timeout=timeout, **kwargs)
rsstotg_1 | File "/usr/local/lib/python3.7/site-packages/telegram/bot.py", line 175, in _message
rsstotg_1 | result = self._request.post(url, data, timeout=timeout)
rsstotg_1 | File "/usr/local/lib/python3.7/site-packages/telegram/utils/request.py", line 333, in post
rsstotg_1 | **urlopen_kwargs)
rsstotg_1 | File "/usr/local/lib/python3.7/site-packages/telegram/utils/request.py", line 244, in _request_wrapper
rsstotg_1 | raise BadRequest(message)
rsstotg_1 | telegram.error.BadRequest: Can't parse entities: character '-' is reserved and must be escaped with the preceding ''

通过 Docker 安装。

部署在vultr docker出错

根据readme部署完,机器人没有反应,日志如下,麻烦帮忙看看是什么问题

2021-02-18 14:36:37,172 - telegram.ext.dispatcher - ERROR - No error handlers are registered, logging exception.

Traceback (most recent call last):

File "/usr/local/lib/python3.7/site-packages/telegram/ext/dispatcher.py", line 425, in process_update

handler.handle_update(update, self, check, context)

File "/usr/local/lib/python3.7/site-packages/telegram/ext/handler.py", line 145, in handle_update

return self.callback(update, context)

File "telegramRSSbot.py", line 145, in cmd_help

is_manager(update)

File "telegramRSSbot.py", line 41, in is_manager

name = chat.first_name + ' ' + chat.last_name

TypeError: can only concatenate str (not "NoneType") to str

2021-02-18 14:36:40,833 - telegram.ext.dispatcher - ERROR - No error handlers are registered, logging exception.

Traceback (most recent call last):

File "/usr/local/lib/python3.7/site-packages/telegram/ext/dispatcher.py", line 425, in process_update

handler.handle_update(update, self, check, context)

File "/usr/local/lib/python3.7/site-packages/telegram/ext/handler.py", line 145, in handle_update

return self.callback(update, context)

File "telegramRSSbot.py", line 145, in cmd_help

is_manager(update)

File "telegramRSSbot.py", line 41, in is_manager

name = chat.first_name + ' ' + chat.last_name

TypeError: can only concatenate str (not "NoneType") to str

2021-02-18 14:36:53,525 - telegram.ext.dispatcher - ERROR - No error handlers are registered, logging exception.

Traceback (most recent call last):

File "/usr/local/lib/python3.7/site-packages/telegram/ext/dispatcher.py", line 425, in process_update

handler.handle_update(update, self, check, context)

File "/usr/local/lib/python3.7/site-packages/telegram/ext/handler.py", line 145, in handle_update

return self.callback(update, context)

File "telegramRSSbot.py", line 145, in cmd_help

is_manager(update)

File "telegramRSSbot.py", line 41, in is_manager

name = chat.first_name + ' ' + chat.last_name

TypeError: can only concatenate str (not "NoneType") to str

2021-02-18 14:37:05,205 - telegram.ext.dispatcher - ERROR - No error handlers are registered, logging exception.

Traceback (most recent call last):

File "/usr/local/lib/python3.7/site-packages/telegram/ext/dispatcher.py", line 425, in process_update

handler.handle_update(update, self, check, context)

File "/usr/local/lib/python3.7/site-packages/telegram/ext/handler.py", line 145, in handle_update

return self.callback(update, context)

File "telegramRSSbot.py", line 104, in cmd_rss_add

is_manager(update)

File "telegramRSSbot.py", line 41, in is_manager

name = chat.first_name + ' ' + chat.last_name

TypeError: can only concatenate str (not "NoneType") to str

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.