{"id":13512354,"url":"https://github.com/iovxw/rssbot","last_synced_at":"2025-12-24T16:34:18.558Z","repository":{"id":38206455,"uuid":"82375787","full_name":"iovxw/rssbot","owner":"iovxw","description":"Lightweight Telegram RSS notification bot. 用于消息通知的轻量级 Telegram RSS 机器人","archived":false,"fork":false,"pushed_at":"2024-12-19T06:00:41.000Z","size":764,"stargazers_count":1583,"open_issues_count":11,"forks_count":191,"subscribers_count":24,"default_branch":"2.x","last_synced_at":"2024-12-19T06:29:24.988Z","etag":null,"topics":["bot","chinese","feed","rss","rssbot","telegram","telegram-bot","telegram-rss"],"latest_commit_sha":null,"homepage":"http://t.me/RustRssBot","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"unlicense","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/iovxw.png","metadata":{"files":{"readme":"README.en.md","changelog":null,"contributing":null,"funding":null,"license":null,"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}},"created_at":"2017-02-18T09:25:04.000Z","updated_at":"2024-12-19T05:53:37.000Z","dependencies_parsed_at":"2024-11-01T14:31:19.376Z","dependency_job_id":"9bb063a5-7d00-49e7-87a2-a0228576f925","html_url":"https://github.com/iovxw/rssbot","commit_stats":null,"previous_names":[],"tags_count":22,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iovxw%2Frssbot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iovxw%2Frssbot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iovxw%2Frssbot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iovxw%2Frssbot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/iovxw","download_url":"https://codeload.github.com/iovxw/rssbot/tar.gz/refs/heads/2.x","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246390880,"owners_count":20769476,"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","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":["bot","chinese","feed","rss","rssbot","telegram","telegram-bot","telegram-rss"],"created_at":"2024-08-01T03:01:46.426Z","updated_at":"2025-12-24T16:34:18.550Z","avatar_url":"https://github.com/iovxw.png","language":"Rust","funding_links":[],"categories":["Rust","Rust (42)","OpenSource"],"sub_categories":["OpenSource Bots"],"readme":"# rssbot [![Build Status](https://github.com/iovxw/rssbot/workflows/Rust/badge.svg)](https://github.com/iovxw/rssbot/actions?query=workflow%3ARust) [![Github All Releases](https://img.shields.io/github/downloads/iovxw/rssbot/total.svg)](https://github.com/iovxw/rssbot/releases)\n\n**Other Languages:** [Chinese](README.md)\n\nTelegram RSS bot [@RustRssBot](http://t.me/RustRssBot)\n\n**Supports:**\n - [x] RSS 0.9\n - [x] RSS 0.91\n - [x] RSS 0.92\n - [x] RSS 0.93\n - [x] RSS 0.94\n - [x] RSS 1.0\n - [x] RSS 2.0\n - [x] Atom 0.3\n - [x] Atom 1.0\n - [x] JSON Feed 1\n\n## Usage\n\n    /rss       - Display a list of currently subscribed RSS feeds\n    /sub       - Subscribe to an RSS: /sub http://example.com/feed.xml\n    /unsub     - Unsubscribe from an RSS: /unsub http://example.com/feed.xml\n    /export    - Export to OPML\n\n## Download\n\nThe pre-compiled binaries can be downloaded directly from [Releases](https://github.com/iovxw/rssbot/releases). Make sure to use the english binary (`rssbot-en-amd64-linux`). The Linux version is statically linked to *musl*, no other dependencies required.\n\n## Compile\n\n**Please try to download from the Link above, if that's not feasible or you have other requirements you should compile manually**\n\nInstall *Rust Nightly* and *Cargo* ([`rustup` recommended](https://www.rustup.rs/)) first, then:\n\n```\nLOCALE=en cargo build --release\n```\n\nThe compiled files are available at: `./target/release/rssbot`\n\n## Run\n\n```\nA simple Telegram RSS bot.\n\nUSAGE:\n    rssbot [FLAGS] [OPTIONS] \u003ctoken\u003e\n\nFLAGS:\n    -h, --help          Prints help information\n        --insecure      DANGER: Insecure mode, accept invalid TLS certificates\n        --restricted    Make bot commands only accessible for group admins\n    -V, --version       Prints version information\n\nOPTIONS:\n        --admin \u003cuser id\u003e...        Private mode, only specified user can use this bot. This argument can be passed\n                                    multiple times to allow multiple admins\n        --api-uri \u003ctgapi-uri\u003e       Custom telegram api URI [default: https://api.telegram.org/]\n    -d, --database \u003cpath\u003e           Path to database [default: ./rssbot.json]\n        --max-feed-size \u003cbytes\u003e     Maximum feed size, 0 is unlimited [default: 2097152]\n        --max-interval \u003cseconds\u003e    Maximum fetch interval [default: 43200]\n        --min-interval \u003cseconds\u003e    Minimum fetch interval [default: 300]\n\nARGS:\n    \u003ctoken\u003e    Telegram bot token\n\nNOTE: You can get \u003cuser id\u003e using bots like @userinfobot @getidsbot\n```\n\nPlease read the [official docs](https://core.telegram.org/bots#3-how-do-i-create-a-bot) to create a token.\n\n## Environment variables\n\n- `HTTP_PROXY`: Proxy for HTTP\n- `HTTPS_PROXY`: Proxy for HTTPS\n- `RSSBOT_DONT_PROXY_FEEDS`: Set to `1` to limit the proxy to Telegram requests\n- `NO_PROXY`: Not supported yet, wait for [reqwest#877](https://github.com/seanmonstar/reqwest/pull/877)\n\n## Migrating from the old RSSBot\n\nFor the [original version of Clojure Bot ](https://github.com/iovxw/tg-rss-bot), you can use the following script to convert the database:\n\n```bash\n#!/bin/bash\n\nDATABASE=$1\nTARGET=$2\n\nDATA=$(echo \"SELECT url, title FROM rss;\" | sqlite3 $DATABASE)\nIFS=$'\\n'\n\necho -e \"[\\c\" \u003e $TARGET\nfor line in ${DATA[@]}\ndo\n    IFS='|'\n    r=($line)\n    link=${r[0]}\n    title=${r[1]}\n\n    echo -e \"{\\\"link\\\":\\\"$link\\\",\" \\\n            \"\\\"title\\\":\\\"$title\\\",\" \\\n            \"\\\"error_count\\\":0,\" \\\n            \"\\\"hash_list\\\":[],\" \\\n            \"\\\"subscribers\\\":[\\c\" \u003e\u003e $TARGET\n\n    subscribers=$(echo \"SELECT subscriber FROM subscribers WHERE rss='$link';\" | sqlite3 $DATABASE)\n    IFS=$'\\n'\n    for subscriber in ${subscribers[@]}\n    do\n        echo -e \"$subscriber,\\c\" \u003e\u003e $TARGET\n    done\n\n    echo -e \"]},\\c\" \u003e\u003e $TARGET\ndone\necho \"]\" \u003e\u003e $TARGET\nsed -i \"s/,]/]/g\" $TARGET\n```\n\nParameter 1 is the old database path, parameter 2 is the resulting output JSON path.\n\nIt should be noted that the RSS records that have been pushed will not be marked. If the converted database is used directly, the old RSS will be pushed repeatedly when the script is called again.\n\n## License\n\nThis is free and unencumbered software released into the public domain.\n\nAnyone is free to copy, modify, publish, use, compile, sell, or distribute this software, either in source code form or as a compiled binary, for any purpose, commercial or non-commercial, and by any means.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fiovxw%2Frssbot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fiovxw%2Frssbot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fiovxw%2Frssbot/lists"}