Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save atrull/f88aceb502158e77199f011d6948924f to your computer and use it in GitHub Desktop.
Save atrull/f88aceb502158e77199f011d6948924f to your computer and use it in GitHub Desktop.
# Read more about setting it up
# https://medium.com/@ljmocic/make-telegram-bot-for-notifying-about-new-rss-feed-items-4cfbcc37f4fd
from datetime import timedelta, datetime
from dateutil import parser
from pprint import pprint
from time import sleep
import requests
import feedparser
BOT_TOKEN = ''
CHANNEL_ID = '' # @bot_channel_name
FEED_URL = '' # https://something.com/feeds/rss.xml
def send_message(message):
requests.get(f'https://api.telegram.org/bot{BOT_TOKEN}/sendMessage?chat_id={CHANNEL_ID}&text={message}')
def main():
rss_feed = feedparser.parse(FEED_URL)
for entry in rss_feed.entries:
parsed_date = parser.parse(entry.published)
parsed_date = (parsed_date - timedelta(hours=8)).replace(tzinfo=None) # remove timezone offset
now_date = datetime.utcnow()
published_20_minutes_ago = now_date - parsed_date < timedelta(minutes=20)
if published_20_minutes_ago:
send_message(entry.links[0].href)
print(entry.links[0].href)
if __name__ == "__main__":
while(True):
main()
sleep(20 * 60)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment