{"id":15595093,"url":"https://github.com/simonneutert/telegram-rss-feed","last_synced_at":"2025-07-22T01:06:18.305Z","repository":{"id":82304152,"uuid":"356582252","full_name":"simonneutert/telegram-rss-feed","owner":"simonneutert","description":"Simple one file fits all telegraph RSS feed pushing to telegram.","archived":false,"fork":false,"pushed_at":"2025-06-03T15:43:40.000Z","size":341,"stargazers_count":2,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-06-04T01:09:55.895Z","etag":null,"topics":["docker","javascript","node","nodejs","rss-feed","rss-parser","sqlite3","telegraf","telegram","telegram-bot"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/simonneutert.png","metadata":{"files":{"readme":"Readme.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2021-04-10T12:57:44.000Z","updated_at":"2025-06-03T15:43:42.000Z","dependencies_parsed_at":"2025-05-01T19:34:58.365Z","dependency_job_id":"7336ce1d-8bb8-419d-9e44-25fd8fd77002","html_url":"https://github.com/simonneutert/telegram-rss-feed","commit_stats":null,"previous_names":[],"tags_count":14,"template":false,"template_full_name":null,"purl":"pkg:github/simonneutert/telegram-rss-feed","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/simonneutert%2Ftelegram-rss-feed","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/simonneutert%2Ftelegram-rss-feed/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/simonneutert%2Ftelegram-rss-feed/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/simonneutert%2Ftelegram-rss-feed/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/simonneutert","download_url":"https://codeload.github.com/simonneutert/telegram-rss-feed/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/simonneutert%2Ftelegram-rss-feed/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266405405,"owners_count":23923536,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-07-21T11:47:31.412Z","response_time":64,"last_error":null,"robots_txt_status":null,"robots_txt_updated_at":null,"robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["docker","javascript","node","nodejs","rss-feed","rss-parser","sqlite3","telegraf","telegram","telegram-bot"],"created_at":"2024-10-03T00:42:56.763Z","updated_at":"2025-07-22T01:06:18.244Z","avatar_url":"https://github.com/simonneutert.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# NodeJS Telegram RSS Feed Channel Bot\u003c!-- omit from toc --\u003e\n\nEver wanted to have a bot that posts new RSS feed entries to a channel or group on telegram? Well, here you go.\n\n## How to use\u003c!-- omit from toc --\u003e\n\n1. setup a bot from telegram's @botfather accounts\n2. check the build arguments the Dockerfile accepts and edit to your demands\n3. setup a cronjob on your machine/server to run the docker container every 120 minutes or so\n4. enjoy the news on telegram 🤗\n\n- [Run using Docker](#run-using-docker)\n  - [run (in a cron job maybe?)](#run-in-a-cron-job-maybe)\n  - [Need to build it yourself?](#need-to-build-it-yourself)\n  - [No Docker?](#no-docker)\n- [Concepts / Good to know](#concepts--good-to-know)\n\n\n### Dependencies\n\nlet's go easy on the dependencies, shall we?\n\n- [rss-parser](https://www.npmjs.com/package/rss-parser)\n- [Sequelize](https://sequelize.org/)\n- [sqlite3](https://www.npmjs.com/package/sqlite3)\n- [telegraf](https://www.npmjs.com/package/telegraf)\n\nfor all of the dev dependencies, see the package.json, but the most important ones are:\n\n- [eslint](https://www.npmjs.com/package/eslint)\n- [prettier](https://www.npmjs.com/package/prettier)\n- [mocha](https://www.npmjs.com/package/mocha)\n\n## Run using Docker\n\n### run (in a cron job maybe?)\n\n``` sh\ndocker run --rm \\\n  -v /path/to/telegram-rss-feed/db:/app/db \\\n  -e TELEGRAM_API_KEY=12345666:abcdefg \\\n  -e TELEGRAM_CHANNEL_OR_GROUP=your-channel-or-group \\\n  -e FEED_URL=https://test.test/awesomefeed.rss \\\n  ghcr.io/simonneutert/telegram-rss-feed:main\n```\n\n### Need to build it yourself?\n\n``` sh\n$ docker build . \\\n  -t mytelegramrssbot\n\n$ docker run --rm \\\n  -v /path/to/telegram-rss-feed/db:/app/db \\\n  -e TELEGRAM_API_KEY=THIS123MY:TELEGRAMKEY \\\n  -e TELEGRAM_CHANNEL_OR_GROUP=@channel_or_groupnumber_on_telegram \\\n  -e FEED_URL=https://www.rss-feed.test/feed \\\n  mytelegramrssbot\n```\n\n### No Docker?\n\nMake sure to set the ENV variables just as you need it.\n\n``` sh\n$ mkdir mytelegramrssbot\n$ cd mytelegramrssbot\n$ npm init\n$ npm install telegram-rss-feed --save\n$ touch index.js\n```\n\n```javascript\n// content of index.js\nconst { Db } = require(\"telegram-rss-feed/lib/db\");\nconst { parseFeed } = require(\"telegram-rss-feed/lib/parseFeed\");\nconst { sendMessage } = require(\"telegram-rss-feed/lib/sendMessage\");\n\nDb.sync() // { force: true } will be useful if you need to start from scratch\n  .then(() =\u003e {});\n\n/**\n * this function auto calls itself in an async fashion\n */\n(async () =\u003e {\n  // you can also pass a custom function to handle the message sending\n  await parseFeed(\n    process.env.FEED_URL,\n    sendMessage, {\n      telegramApiKey: \"12345666:abcdefg\",\n      telegramChannelOrGroup: \"@your-channel-or-group\",\n    }\n  );\n})();\n```\n\nThen run it with:\n\n```\n$ node index.js\n```\n\n## Concepts / Good to know\n\n- docker host volume persistant sqlite database that uses a unique constraint, to not send duplicates into the channel.\n- public channel messaging, but your bot needs admin privileges\n- will work out-of-the-box with any standard compliant modern rss feed supported by [rss-parser on npm](https://www.npmjs.com/package/rss-parser)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsimonneutert%2Ftelegram-rss-feed","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsimonneutert%2Ftelegram-rss-feed","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsimonneutert%2Ftelegram-rss-feed/lists"}