{"id":35023565,"url":"https://github.com/tassoman/mk-feed-bot","last_synced_at":"2025-12-27T06:07:11.933Z","repository":{"id":75398074,"uuid":"523881650","full_name":"tassoman/mk-feed-bot","owner":"tassoman","description":"RSS Newsfeed reader bot for Misskey","archived":false,"fork":false,"pushed_at":"2025-10-15T11:53:08.000Z","size":63,"stargazers_count":13,"open_issues_count":0,"forks_count":2,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-10-16T05:08:43.853Z","etag":null,"topics":["bot","fediverse-bot","misskey","misskey-bot","newsfeed","python","python3","rss","rss-aggregator","rss-reader"],"latest_commit_sha":null,"homepage":"https://misskey.social/@newsfeed","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tassoman.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,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2022-08-11T22:06:19.000Z","updated_at":"2025-09-13T17:33:49.000Z","dependencies_parsed_at":"2024-01-14T17:35:03.188Z","dependency_job_id":"1e0db4f1-a372-4bf9-8e73-cf67d3bde86e","html_url":"https://github.com/tassoman/mk-feed-bot","commit_stats":null,"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"purl":"pkg:github/tassoman/mk-feed-bot","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tassoman%2Fmk-feed-bot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tassoman%2Fmk-feed-bot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tassoman%2Fmk-feed-bot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tassoman%2Fmk-feed-bot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tassoman","download_url":"https://codeload.github.com/tassoman/mk-feed-bot/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tassoman%2Fmk-feed-bot/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28073828,"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-12-27T02:00:05.897Z","response_time":58,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","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":["bot","fediverse-bot","misskey","misskey-bot","newsfeed","python","python3","rss","rss-aggregator","rss-reader"],"created_at":"2025-12-27T06:07:11.514Z","updated_at":"2025-12-27T06:07:11.926Z","avatar_url":"https://github.com/tassoman.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# RSS Newsfeed reader bot for Misskey 😻\n\nThis Python bot posts RSS news from your chosen feeds. You can choose the frequency of posting (in minutes) and the amount of Notes to post each time.\n\nBefore posting it starts a **sentiment analysis** then flags with CW (Content Warning) and :NSFW: if sentiment is negative. (war, deaths, bad news)\n\nNews and Notes flows are asyncronous, so that it can pick up always the fresher news and Note as soon as possible.\n\nNotes will not bloat your Misskey profile, because get deleted if older than a month.\n\n\u003e[!TIP]\n\u003e Featured on [Misskey Advent Calendar 2025, on December 12th](https://adventar.org/calendars/11291)\n\n![Artificial Image of a Cat Robot reading news](https://repository-images.githubusercontent.com/523881650/a535ab44-0292-4c0b-83c1-a37b05619d10)\n\n## Setup\n\nPlease, follow this instructions once, before starting:\n\n### Create an account on Misskey and get the APIKEY for your bot.\n\n- Get inside your Misskey instance\n- Create a new account\n- Remember to set `isBot = True`\n- Visit the page: `https://your.misskey.instance/settings/api`\n- Create a new API-key having at minimum `notes:write` privilege.\n\n### Prepare a Python virtual environment\n\nPlease use python3. In latest GNU/Linux distros, it's already in as default. Otherwise you'll need `python3-venv` package with dependencies.\n\n1. `git clone` this repository, to get the source code, or download the zip file\n2. `python -m venv .venv` Python sandboxed enviroment creation\n3. `. .venv/bin/activate` Environment activation\n4. `pip install -r requirements.txt` Dependencies installation\n5. `python -m spacy download en_core_web_lg` Gets sentiment analysis data (for NSFW posts)\n\n## Configuration\n\nNow you installed the software, you need a small amount of configuration.\n\n### Fill the bot with RSS feed\n\nFirst of all, put the RSS Feed source URLS into the file `sources.txt`, line by line.\n\n### Environment variables\n\nNow copy `.env-example` in `.env` file to fill in your personal configuration:\n\n- **HOST** your Misskey domain\n- **APIKEY** app's credentials created before\n- **VISIBILITY** choose [in which Timeline to post](https://misskey-hub.net/en/docs/features/timeline.html).\n- **LOCAL** boolean for federated Notes\n- **EVERY_MINUTES** posting frequency\n- **HOW_MANY** posted Notes amount\n\n## Run!\n\nInside your python environment:\n\n`(env) $ python feed_bot.py`\n\nIt will setup if needed. Then will start three scheduled jobs.\n\n### Service daemon configuration\n\nYou probably want to run it detached from the console by using `nohup` or running into a `screen` command. So that you can close the ssh shell without stopping.\n\nThe software has ability to avoid multiple concurrent runs.\n\n## Stop!\n\nTo stop it, just press `CTRL+C` in the console.\n\nTo exit the Python environment type: `deactivate`. You're aware of activation because of your shell starts with: (env)\n\n## Upgrade\n\nIt's super easy, just Stop! Then `git pull` to check for updates. Then `pip-review -a` to update the libraries. Needs a restart to get things done.\n\n## Development\n\nIf you plan to contribute, please run this command, after installation noted before.\n\n```bash\npre-commmit install\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftassoman%2Fmk-feed-bot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftassoman%2Fmk-feed-bot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftassoman%2Fmk-feed-bot/lists"}