-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
retrieve feeds individually #21
Comments
I can see the benefit to this as well. While not used by every reader, I can definitely see a category of readers that would appreciate the ability to use it in this way. |
I'm getting this use case more and more myself, usually in two situations:
There's some brainstorming at https://indieweb.org/Microsub-spec#Searching_for_Content - if the value of 'query' would be a full url, the backend could decide to only match on that. However, that's a bit tricky IMO, so I like the idea of action=timeline, adding 'url' as another param where the value is the feed url: so action=timeline&url=https://aaronparecki.com/primary - Not sure if channel should still be passed on here. I'm going to test this out with the Drupal IndieWeb module and Indigenous, making it optional in Indigenous via Settings. |
I implemented this in Drupal and Indigenous. It's a setting in Indigenous to enable it. From a spec perspective:
Feedback welcome! I'm going to add a (global) search too, but that belongs into another issue. |
That's awesome, I've been wanting this too. How are you handling this in the UI? |
Right now he added where when you tap on a user’s avatar, it takes you to a view that shows the posts from their feed |
Does it show what feed you're looking at somehow? what is it labeled? How do you get out of this view? |
Ohhhh, I see. Haha! Good question. @swentel? 🙂 |
Here's a quick (pixelated) video :)
|
I am looking at implementing this in Aperture+Monocle now. I have a few multi-author feeds in my account, such as my Micro.blog timeline, Instagram timeline, and some Twitter searches. For those cases, the "source" feed is always the same. This implementation of using a "source" ID will end up treating these as a single source, which I suspect is not the end experience I'd expect. I think I'm going to implement this anyway to try it out, but that's something to keep in mind. |
Since Monocle is completely stateless, I needed to add some information about the source into the response in order for Monocle to be able to display that. Here's a sample of my request and response now:
{
"source": {
"name": "Name Here"
},
"items": [
...
],
"paging": {
...
}
} (In the case of Aperture, the source name is actually a version of the URL, since I don't actually store any data about the names of sources right now. Eventually I'd like to have a better display name and also probably an icon.) |
I also have a twitter feed where indeed the source id is the same. Indigenous/drupal can search as well, so instead of triggering individual feed, it could trigger a search on the author name. However, not sure if I can pass on that into the feed response to distinct between the 2 cases unless we introduce a new property on source level here, or let clients configure this. I would opt for the first option though. |
This adds a new property to the data returned per entry, `_source`, which can be used to request a timeline limited to entries from that source. more discussion: indieweb/microsub#21
This is live in Monocle now! I ran into a few edge cases that I'm not clear on how I want to solve. Mainly around reposts and likes. Also when there is no author info, currently Monocle doesn't show anything in the space the author normally appears, so there's nothing to link to the source there. (This has been an annoyance with Monocle for a while but I'm still not sure how I want to solve it). |
I'd be interested in trying this out with my own server, @aaronpk does Aperture trigger something in Monocle to display extra UI for this? Also @swentel I would be happy to test Indigenous for Android with my server but I can't log in to the app... got any error logs on your end that could help? I get told it doesn't find the required endpoints when given https://unicyclic.com/mal |
@mblaney I have not pushed a release yet with these changes, will be for the weekend, I'll ping you here again when that is done, and have a quick look why it might not find the endpoints. |
@mblaney yes, Monocle looks for the |
cool, so is |
if there is only one feed in a channel, might want to disable this as it is a bit confusing |
@mblaney right now Combining both proposals would basically mean the entry would look like this: {
"type": "entry",
"published": "2019-04-16T22:57:03-04:00",
...
"_id": "1111111",
"_source": {
"_id": "2222222",
"type": "feed",
"url": "https://example.com/feed",
"author": {
"type": "card",
"url": "https://example.com/",
"name": "Example Feed",
"photo": "https://example.com/photo.jpg"
}
}
} To keep things in the spirit of Microsub, I wouldn't want to have But also I don't want to require all the rich feed info in the response, so I think that means either What do you think @swentel? |
I still like the idea I mentioned in #13 about fetching the feed information separately. that way you could keep |
@aaronpk I like the idea of 13, however I currently do not store that information at server level when subscribing to a feed, only the URL. I have the advantage in android I can pass on info between screens (even though it's just the name/url at the moment) so the current implementation is enough for me. However, it's clear I need start storing additional info so my server can work with monocle too for individual feeds because it's stateless. I do prefer just sending only _source id at the moment in the individual source item though as usually you have info already from the author as well (except that the feed url might be different than the homepage url). Sending the full h-card in the individual response probably makes more sense as (especially stateless) clients can show even more information directly about the author. That's my current feeling, back at the keyboard this weekend, so I'll ping back to confirm :) |
Pushed a new release of Indigenous. The Drupal microsub server now also returns the 'source' property with a 'name' property in the individual response, works great with monocle now too. I'm going to start working on storing feed information on the microsub server so I can start send a better title as I'm now also sending a URL there. Reading my previous comment again: I like the current implementation at the moment. But as already said previously, it probably makes sense to send more info in the individual response so clients have more freedom in the presentation: e.g. drop all the author avatar/links in every post item for and have a dedicated single widget that shows the author/feed information. @mblaney indigenous needs a couple of endpoints which it can't find on https://unicyclic.com/mal/
|
thanks @swentel all the endpoints are there, I'm wondering if you have more details in your logs about the problem? |
@mblaney Oh I see why, the endpoints are in the header response, Indigenous doesn't recognize those yet, my bad. Opened an issue at IndiePass/indiepass-android#221, will fix that this week! Apart from that, there are two meta tags before the HTML tag in the response - doesn't affect this bug though, just wanted to let you know :)
|
oops didn't realise they need a parent tag! thanks :-) |
I have implemented this in together now as well, using the same idea as everyone else: click on the author and see posts from that source. Again though I run into the problem of multi author feeds and that interaction just not quite feeling right. There's 2 ways I can see that potentially being fixed:
There are definitely a lot of negatives and positives with both of those potential options though. |
Experimented with Indigenous a bit. When the source url of the post contains twitter.com it now triggers a search, which works great (together with the Drupal microsub server). However, it's only a stopgap, I can't really do anything when a post comes from news.indieweb.org for instance. More properties in _source is probably the easiest option, with gives the responsibility to clients. The second suggestion sounds way more harder to manage for the server imo. |
Some more thoughts: more properties in _source might not be even ideal either. The url for a source might be feedburner.com for instance, so doing a comparison between the post url and source url might trigger false positives. Which then leads me to a third suggestion: allowing the user to toggle a checkbox which indicates that this is an aggregated feed, and then adding _aggregated: true|false. Ideal? Probably not, but failproof I guess. |
I've fixed the 'aggregated feeds' problem by created a compound variable on the drupal side. This works beautifully now in combination with Indigenous which doesn't have any idea about this, woohoow! |
Enough implementations to add to spec. |
In my traditional reader, I regularly access individual feeds in folders ("channels").
API-wise, this could be implementing by giving feeds a UID as well and allowing those as parameters in the
action=timeline
requests (and potentially others where it makes sense).The text was updated successfully, but these errors were encountered: