microsub icon indicating copy to clipboard operation
microsub copied to clipboard

Proposal: channel method to include all sources

Open swentel opened this issue 5 years ago • 5 comments

Request: ?action=channels&method=tree

The response includes all sources in a channel, order is defined by the server.

Response:

{
  "channels": [
    {
      "uid": "31eccfe322d6c48c50dea2c84efc74ff",
      "name": "IndieWeb",
      "unread": 9,
      "sources": [
        {
          "uid": "sourceId1",
          "url": "https://source.url",
          "name": "Source name",
          "unread": 3, 
          "last_update": "2020-05-11T17:00:00",
          "total": 23,
        },
        {
          "uid": "sourceId2",
          "url": "https://source-2.url",
          "name": "Source name 2",
          "unread": 6, 
          "last_update": "2020-05-11T17:00:00"
          "total": 12,
        }
      ],
    }
  ]
}

Use cases:

  • 'reader' mode, view the sources in a channel immediately so you can click on them.
  • 'admin' mode: ability to have an overview of all channels and sources in one screen instead of having to click individually per channel.

This came out of suggestions of people who are currently testing the Indigenous desktop application and are coming from Feedly. As far as they are concerned, that is a very handy feature (yet, not blocking). Example screenshot at https://s5.feedly.com/images/fx/landing/[email protected]

Properties of sources:

  • url: url of the source/feed
  • name: name of the source/feed
  • unread: unread items per source (using the same setting as the channel)
  • last_update (optional): this would indicate the last time an item was fetched from the source. This is sometimes interesting to know to figure out if a feed is still alive, or possibly even offline.
  • total (optional): number of items in the source

Last update and total can be calculated in the Drupal Microsub server.

swentel avatar May 11 '20 17:05 swentel

Added this to the Drupal Microsub server. It doesn't include 'total' yet as I'm not sure myself how useful it is. Now on to Indigenous.

swentel avatar May 12 '20 20:05 swentel

Available now in indigenous - the start screen is able to hide unread channels/sources. The user can decide to list the sources and directly click on it to view items in that source alone.

Screenshot_20200613-142332_Indigenous

swentel avatar Jun 13 '20 12:06 swentel

  • Still need to bikeshed the name of the action
  • Should also add channel to be able to retrieve the sources for a single channel
  • Some servers don't have a concept of a source in a channel (e.g. micro.blog "Discover") so have no reason to return source information, so this should be optional
  • Source should have _id instead of uid since _id is an internal server-specific identifier for a source. See also #13.

aaronpk avatar Jul 24 '21 19:07 aaronpk

I am planning to implement a feature on my Microsub server that supports reading from all feeds at once.

This is something I have felt lacking in Microsub so far, coming from feed readers and social networks where all of my content is aggregated for me.

While segmenting posts by topic is helpful if you want to browse content my topic, one of the main features in social feeds is being able to see all content in chronological order.

I'll experiment and report back on my implementation. In the interim, have there been more discussions about this topic since the last comment on this ticket?

capjamesg avatar Oct 16 '21 19:10 capjamesg

I have implemented a channel=all exception that returns all timeline items stored on my server.

I think tree might be appropriate for nesting categories -- a feature I have seen in RSS readers. But I get an "all" reserved name was easier to implement and met my needs.

I am open to exploring new ways of aggregating the content of channels and would love feedback on a channel=all concept.

capjamesg avatar Oct 21 '21 19:10 capjamesg