Skip to content

pentatester/telegram-rss

Repository files navigation

Telegram RSS

PyPi Package Version Supported Python versions LICENSE Wiki Page pre-commit Mypy

Fetch rss and send the latest update to telegram. This project is still in active development

Usage

Setup

  • Make sure you have python installed.
  • Open command line.
  • Install pip install --upgrade telegram-rss
  • Run python -m telegram_rss
  • Add bot token, feeds, user's id, and/or channel's id inside telegram-rss/config.toml
  • Run python -m telegram_rss update to send initial update (use personal id to send initial update)

If your system support entry_points, you can execute python -m telegram_rss with telegram-rss.

Checking update

Run python -m telegram_rss update to check and send the latest feeds

Example config

bot_token = "987654321:ASDASDASD-1sda2eas3asd-91sdajh28j"
env_token = "TOKEN"
users = [ 123456789,]
channels = [ -123456789,]
groups = [ 1234567890,]
web_page_preview = true
message_delay = 0.05
read_more_button = "Read more"

[[feeds]]
name = "Feed example online"
source = "http://feedparser.org/docs/examples/atom10.xml"
footer_link = "http://feedparser.org/docs/"
channels = [ -123456789,]
only_today = true

[[feeds]]
name = "Feed example local"
source = "c:\\incoming\\atom10.xml"
save_bandwith = false
only_today = false
users = [ 987654321,]
groups = [ 111111111,]
footer = false

[template_data]
author = "Author"
source = "Source"
  • Send feed if published today (when we checked) only_today = true.
  • Disable web preview in chat by web_page_preview = false.
  • If you don't want read_more_button under the message, set read_more_button = "".
  • Don't set message_delay too low, it can be detected as spam.

Template

template.html is loaded using jinja2, Learn more. Default template is

<a href="{{ entry.link }}">{{ entry.safe_title }}</a>
<i>{{ author }}</i>: <b>{{ entry.author }}</b>
{{ entry.safe_description }}
<i>{{ source }}</i>: <a href="{{ channel.link }}">{{ channel.safe_title }}</a>

More about objects in template

How to get token

Just create a new bot account using @BotFather. Don't forget to add the bot as channel's admin

How to get ids

Send / forward a message (user or channel) to @JsonDumpBot

Template objects

entry

class Entry:
    title: str
    link: str
    description: str
    author: str
    published: Optional[str]
    time: Optional[datetime]
    safe_title: str
    safe_description: str

channel

class Channel:
    title: str
    link: str
    description: str
    safe_title: str
    safe_description: str