Open scripting opened 1 year ago
BTW, I will move this very soon to a more public place.
Ok, <title>
and <description>
are now taken from profile for single-user-based rss search feeds
In the docs for the Source namespace it will be in XML.
can you paste the xml version in here? i can guess from the json, but would rather have it from the source
Thanks! This is great. Now I know what to propose to the Mastodon people. Do you know them?
Back in a minute with the XML stuff.
Okay since this is still very much an RFC, I am going to push back on my own design.
Action items.
source:socialMediaContext is not needed, as specified. The first two elements are just a repeat of what the source:account element already does.
In the current feed, the source:account element is repeated in each item, but it is specifically a channel-level element, per the spec. So the item-level source:account elements should be removed and a channel-level element with the same info added.
To figure out what's going on with lists, I need to find out what the intent of this element was. Is this (see below) the only list that might contain this feed, or do you want to include N lists?
<atom:link href="https://firesky.tv/lists/andy.baio.net/follows.opml" rel="follows-list" type="application/opml+xml"/>
atom:link is a bad idea here. This is a very fundamental concept, a list that contains a feed, it should be given proper docs and placement. source namespace is the right place for it now, in 2023.
BTW, having the title and description as the user entered it made it possible to straighten this out.
or do you want to include N lists?
Right - high level, it's for discovering related lists from the user feed. The follows list is one, but one of many possible - could generate a few more (like followers, follows+2, mutuals), but eventually other user-managed lists (like Twitter lists)
Good. That's what I thought. It's also the connection between RSS and OPML, two great formats that belong together.
Are these all lists that contain this feed?
no, even our first guy doesn't : )
unless you follow yourself
So I'm not sure what this is about?
Are you including all the lists that are available from this user?
Maybe we should talk about this in our voice chat.
i'm not including anything other than follows at the moment, but just helping you think through the design of whatever "related lists" tag or structure you want to come up with - it should keep more than one named list in mind
Okay here's the idea --
<source:subscriptionList url="https:\//firesky.tv/lists/andy.baio.net/follows.opml">follows </source>
The rationale for this is that at this time what's really going on is the developer wants to include an OPML subscription list with the feed and leave open the option of including others in the future.
It seems to me this is the most straightforward way to do so.
You are entitled to disagree btw @johnspurlock -- that's what the RFC process is for.
I think we'll need a way to distinguish lists in a coherent way
let's do:
<source:subscriptionList url="https://firesky.tv/lists/andy.baio.net/follows.opml" rel="follows">List of feeds for accounts @andy.baio.net follows</source:subscriptionList>
rel
would be for software - similar to html rel
, known values could be reasoned about in the reader app
>tag value<
is for humans
Deployed
e.g. https://rss.firesky.tv/?filter=from%3Awashingtonpost.com
<rss version="2.0" xmlns:source="http://source.scripting.com/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>The Washington Post</title>
<link>https://firesky.tv/?filter=from%3Awashingtonpost.com</link>
<description>Democracy Skys in Blueness</description>
<language>en-us</language>
<generator>https://firesky.tv</generator>
<docs>http://cyber.law.harvard.edu/rss/rss.html</docs>
<lastBuildDate>Mon, 22 May 2023 19:40:04 GMT</lastBuildDate>
<atom:link href="https://rss.firesky.tv/?filter=from%3Awashingtonpost.com" rel="self" type="application/rss+xml" />
<source:subscriptionList url="https://firesky.tv/lists/washingtonpost.com/follows.opml" rel="follows">Everyone The Washington Post follows on Bluesky</source:subscriptionList>
<cloud domain="firesky-prod.sw.workers.dev" port="80" path="/rss-cloud-notify" registerProcedure="" protocol="http-post" />
<item>
<description>The federal government has concluded that a Georgia school district’s removal of titles with Black and LGBTQ characters may have created a “hostile environment” for students, potentially violating their civil rights. <a href="https://wapo.st/3BNHWS0">https://wapo.st/3BNHWS0</a></description>
<pubDate>Mon, 22 May 2023 17:38:21 GMT</pubDate>
<link>https://bsky.app/profile/washingtonpost.com/post/3jwdiyed2pk2w</link>
<guid isPermaLink="false">firesky:23052217382100060001</guid>
<enclosure type="image/jpeg" length="45037" url="https://firesky.tv/b/230522173821000600010.jpg?did=did%3Aplc%3Ak5nskatzhyxersjilvtnz4lh&cid=bafkreibt7eckteoqlxpdxx3fe2gjgdchhtcmmhdqx4qgatmzgbk6ut2uwq"/>
<source:markdown>The federal government has concluded that a Georgia school district’s removal of titles with Black and LGBTQ characters may have created a “hostile environment” for students, potentially violating their civil rights. [https://wapo.st/3BNHWS0](https://wapo.st/3BNHWS0)</source:markdown>
<source:account service="bluesky">washingtonpost.com</source:account>
<dc:creator>washingtonpost.com</dc:creator>
</item>
...
</channel>
</rss>
I'm feeling pretty peppy now -- just got off a 40 minute Peloton.
If you want to know my opinion, and I assume you do because this is still an RFC thread, the "rel" attribute is terrible! It's an anti-interop concept along with the link element in HTML. It says (to me at least) "we don't want to work with each other to find something we all can use, so we're just going to punt and leave it up to each programmer to decide what they want to do."
I also asked ChatGPT what "rel" means in HTML and if RSS 2.0 ever uses that particular attribute.
http://ai.scripting.com/2023/05/22/html-link-rel-attribute.html
The answer is "rel" means "relationship" but you should read the rest of it. This isn't even an accurate use of the rel attribute.
And there is no element in RSS 2.0 that uses this attribute. So, let's put a little more into this and decide if this is really necessary, and if it is, figure out what's actually going on here, best as we can tell considering neither of us has built an application that uses this. (an important consideration, btw, in my experience)
With the change in how <title> works, this is what my feed list looks like now. Beautiful!
This is how I'm going to document source:subscriptionList
<source:subscriptionList url="https:\//firesky.tv/lists/washingtonpost.com/follows.opml">follows </source:subscriptionList>
Alright, new version deployed!
e.g. https://rss.firesky.tv/?filter=from%3Awashingtonpost.com
Here are the docs for the new source:subscriptionList element.
http://source.scripting.com/#1684876699000
If I had it to do over, I'd call it source:subList. But I can live with the longer name.
This is an RFC.
These are some proposed changes for the RSS feed generated by rss.firesky.tv.
An example of such a feed.
Proposed change
Values of the channel-level title and description elements are the title and description the user entered in the UI of the social media site.
Here's a screen shot of the dialog in Bluesky.
We let the author decide how their feed will appear in a feed reader.
Proposed addition
We add to the source namespace a way for the generator of the feed to provide metadata about it.
This is in addition to the already-existing source:account element.
A new channel-level element, source:socialMediaContext.
This is what it looks in JSON syntax.
In the docs for the Source namespace it will be in XML.