https://github.com/nealrs/bluefeed
convert bluesky feeds into RSS feeds hosted in s3, with some optional keyword filtering
https://github.com/nealrs/bluefeed
bluesky bluesky-api python rss sqllite
Last synced: 2 months ago
JSON representation
convert bluesky feeds into RSS feeds hosted in s3, with some optional keyword filtering
- Host: GitHub
- URL: https://github.com/nealrs/bluefeed
- Owner: nealrs
- Created: 2025-02-04T19:43:55.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-03-02T17:01:10.000Z (over 1 year ago)
- Last Synced: 2025-03-31T18:48:00.237Z (over 1 year ago)
- Topics: bluesky, bluesky-api, python, rss, sqllite
- Language: Python
- Homepage: http://nealshyam.com/rss
- Size: 34.2 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Bluefeed
# What is this?
- This is a dockerized python script.
- It polls a Bluesky feed, like [this feed of article gift links](https://bsky.app/profile/davidsacerdote.bsky.social/feed/aaaixbb5liqbu), and persists title, link, description, pubDate, and social mention count to a sqllite database.
- It generates _two RSS feeds:
- [`all.rss`](https://nealshyam.com/rss/all.rss) (`blacklistSources.txt` excludes sources you don't want. This is particuarly useful for sources that _appear_ to be in English, but are not.)
- [`filtered.rss`](https://nealshyam.com/rss/filtered.rss) (reads from `blacklistWords.txt` to exclude specific keywords)
- Feeds are saved to an s3 bucket.
- Both feeds exclude items with 0 social mentions. I might change this in the future, but also probably not.
- Script runs every 20 minutes.
- Also generates a nice index page with links & blacklist terms. <- this could be done better / more programmatically
- Bluesky & AWS credentials are stored in `.env`.
- You'll need to create a Bluesky app password -- because 2fa.
## Why did you make this?
- 🤷🏽♂️ I'm in between jobs and I get bored easily.
- Bluesky added RSS feeds recently, but only for _profiles_.
- I wanted to test drive Copilot and check how much Python I remembered.
- FWIW, Copilot did help me with things I wasn't sure of & didn't want to spend tons of time figuring out. I guess that's the whole point.
- Yes, my code is a bit sloppy, but it gets the job done.
- Yes, the filtered feed is aggressively anti-politics/government/world news. Frankly, I just want one feed _without_ that stuff.
## Todo
- figure out why the stylesheet isn't working, because RSS is ugly
© [Neal Shyam](https://nealshyam.com) · @nealrs