Open scripting opened 1 year ago
@johnspurlock -- here's a change that's worth making when you get a chance, no rush.
In an OPML subscription list, change the category attribute on each <outline> to "all,bluesky".
That will make it possible to have a tab on the news page in FeedLand just for Bluesky feeds.
<outline type="rss" text="@kimkelly.bsky.social on Bluesky" xmlUrl="https:\//rss.firesky.tv?filter=from%3Akimkelly.bsky.social" htmlUrl="https:\//firesky.tv?filter=from%3Akimkelly.bsky.social" category="all,bluesky"/>
@johnspurlock -- another thing I'd like to see in the RSS feed for each user is their avatar.
Assuming you can get this info via the API.
Mastodon's RSS feeds have this feature. An example.
How they do it, using the RSS 2.0 image element.
<image>
<url>https://files.mastodon.social/accounts/avatars/000/040/242/original/de91b33cdcab3ac2.png/url>
<title>Dave Winer ☕️/title>
<link>https://mastodon.social/@davew/link>
</image>
alright, back in the saddle
both of these should be doable with minimal effort, which is the best kind of effort
@johnspurlock -- great! another thing we could use is the user's name and description on the OPML outline element for the user. Saves us from having to read the RSS feed to get that info.
Alright, just deployed some changes to the https://firesky.tv generator:
title
and description
included in outline, if present (some profiles have no defined displayName or description)category="all,bluesky"
image
element, if present (some profiles have no defined avatar)Hope that helps!
@johnspurlock -- first thanks for picking up the ball here.
A concern -- even though the spec calls for text being the text that's displayed for the outline element, it's common for people to use title in its place. But we stick to the spec, of course. :-)
Here's an example to work with --
<outline type="rss" text="@anamariecox.bsky.social on Bluesky" title="Ana Marie Cox" description="Troublemaker"/>
I omitted the other fields for brevity.
I think that we should shuffle things a little.
So we end up with something like this:
<outline type="rss" id="anamariecox.bsky.social" text="Ana Marie Cox" description="Troublemaker"/>
I updated the reader app to use the new atts in the OPML files. Here's a screen shot.
btw -- the more i think about it, the more i'm sure that the use of "title" as the attribute is a mistake. i probably have the best view of how OPML is used, and this is going to cause problems if it's used (obviously if it's not used, no problem).
i'm pretty sure the changes i asked for above are as easy as changing a couple of strings in the code. it's worth doing. i give you my word on that.
Sounds good to me - those new tweaks are now live!
@johnspurlock -- thanks for making this change. I had just started working on "real" code based on the OPML files, and could clearly foresee problems when we ask other people to do this. This is all part of the process..
I have updated the blueskyreader demo app, and uploaded the new source.
@johnspurlock and anyone who is listening -- I want to tell the story of how I'm using this wonderful new facility in Bluesky in FeedLand. This is production code, not test code.
FeedLand has the concept of a user feed list. All feed lists are public. I can see your feed list, you can see mine.
There's a checkbox next to every feed, if you're subscribed to it, it's checked.
So if I'm looking at your list and see a feed that's interesting I can subscribe to it right there, by just clicking the checkbox.
There's also a wedge next to every feed, if I click the wedge I see the five most recent items in the feed.
Now we have a new idea, browsing a feed list that comes from outside of FeedLand.
It works the same way as above.
But the feeds do not have to already be in the database.
When you click the checkbox for a feed that isn't in the database, we add it, and you are subscribed to it. This is exactly the process of subscribing to a new feed. Something FeedLand does every day.
If you click the wedge next to a feed that we don't have in the database, we read the feed and otherwise everything works exactly the same.
What's absolutely beautiful about this is the we have a great source of new subscription lists and feeds, coming from Bluesky. We've completely bridged the world of Bluesky to the world of FeedLand.
It should work FeedLand's competitors too. They all know how to read OPML subscription lists, it's a standard, and of course they all read RSS 2.0 feeds as well.
Feed readers are envelopes for the social media world. Right now only Bluesky has the necessary interfaces, but it didn't take long for @johnspurlock to implement the lists and feeds, it won't be a lot of work for the others. From here's it's a matter of finishing development, exciting users, and having them request the feature of the platforms. No small task of course. :-)
BTW, the screen shot suggests the title could be shorter and the description should explain.
This way we can flow the title and description right into the UI, pretty sure this is how all feed readers will do it.
I have all this running on a test server locally, next I'll deploy it to blue.feedland.org so we can begin using it immediately.
I want to see if it works! At a technical level it appears to, but I want to see if it's useful in any way.
@johnspurlock and anyone who is listening -- I want to tell the story of how I'm using this wonderful new facility in Bluesky in FeedLand. This is production code, not test code.
I'm not on Bluesky yet, but the idea of browsing outside feed lists in FeedLand sounds exciting. This should also work between instances of FeedLand, so I could use my own instance as my main reader and get suggestions from feed lists feedland.org.
Maybe I could maybe keep my feed list synchronized on both instances to make my feeds easier to find.
Milestone -- blue.feedland.org, a server I deployed just for this project, has the new version of feedlanddatabase that supports viewing social media subscription lists in OPML like the ones we get for Bluesky.
I've subscribed to all the feeds I follow on Bluesky. This is my feed list.
This is my timeline, with no special provisions for Bluesky content. I can see some things aren't working, like interpreting double-linefeeds.
If you want go ahead and create an account on blue.feedland.org, and start subscribing and reading.
That's the normal stuff. Here's the new thing:
That opens a page entitled Everyone Daniel Jalkut follows on Bluesky.
If you're logged in, you can subscribe to any of those feeds by clicking the checkbox. Unsub by clicking again.
I chose his feed at random but he's an interesting guy, he makes a popular text editing tool that works with social media apps and blogging tools. It builds on something I created a long time ago, the Metaweblog API, so it's dear to my heart. ;-)
Also I consider many of the people he follows influential and know a few of them. So I've been using his subscription list as a test case as I developed this stuff.
BTW, it went in really easily. The code is well-structured for exactly this kind of adaptation.
Anyway, so the next step in the grand experiment is to make a very simple app that just works with Bluesky stuff, but of course is a front-end for the full FeedLand. I have a developer API I've been working on and this will be the second app I've built for it. In theory it should just snap together. But you never know until it's working. :smile:
PS: Screen shot of the page.
Interesting! Noticed that if you expand the wedge for some of the accounts, it will show no items.
like on: https://blue.feedland.org/?subscriptionlist=https://firesky.tv/lists/@pfrazee/follows.opml
I tried expanding a few of the names (like "Solana legend") and there were no items - is that because the underlying rss feed doesn't have items? Info sometimes reports "The feed is not in the database."
@johnspurlock -- glad you find it interesting.
this is new territory. first time we've hooked up feedland to a social network (or been able to) thanks to your work!
How it should work...
if you click on a wedge for a feed with no items it should say "This feed has no items" where the items would go.
Anything else is an error, so please report as a bug, with reproducible steps. ;-)
A feed with no items behaving correctly.
If you have any questions about the RSS format we're using for Bluesky, I opened this thread for questions and hopefully answers.
Pointers