Add parameter to `unfollow` to delete entries from source
- Dominant language
- No language data
- Stars
- 23
- Forks
- 1
- PR merge metrics
- No merged PRs in 30d
Description
Spec section on unfollowing (https://indieweb.org/Microsub-spec#Unfollowing) says:
> The Microsub server may remove all of this feed's items from the channel, or may leave them in place, at its discretion. If you are used to treating these channels as an IRC or Slack timeline, it would be more appropriate to leave the old items in the channel, just stop delivering new ones. However if you are more used to treating these channels as a Twitter or Facebook feed, then you may want the server to remove them from the channel.
>
> TODO: Should there be another parameter for the client to specify whether to remove previous entries or leave them?
By way of example, Aperture's implementation of unfollow [removes the source without removing its entries](https://github.com/aaronpk/Aperture/blob/c56e8e3e2604d3948eca274bfcdc8b726b1d19d5/aperture/app/Http/Controllers/MicrosubController.php#L603). But the [`remove_source` method it call supports a flag to delete the entries](https://github.com/aaronpk/Aperture/blob/c56e8e3e2604d3948eca274bfcdc8b726b1d19d5/aperture/app/Channel.php#L55).
I'm not sure what this parameter should actually be. Thumbing through the spec I see mentions of actions like `channels` and `timeline` using a `method` parameter. Examples include:
- `action=channels` supports `method` values of `order` and `delete`
- `delete` is used to delete the whole channel
- `action=timeline` supports `method` values of `mark_read`, `mark_unread`, and `remove`
- `remove` is used to remove one or more specified entries from a channel's timeline.
Given these examples, I propose that an unfollow request could have an extra `method` parameter with a value `remove` to both unfollow the source _and_ remove the associated entries.
Contributor guide
No contributing guide indexed for this repository
Research direction
Start with the Microsub specification's unfollowing section and compare its proposed behavior with the existing channels and timeline method parameters. Resolve the parameter name and semantics for optionally removing associated entries, then update the specification so the unfollow behavior is unambiguous.
Written by the indexing model from the issue text.
Assessment
- Domain
- documentation
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100