appdotnet / api-spec

App.net API Documentation is on the web at https://developers.app.net. Source for these docs is in the new-docs branch here. Please use the issue tracker and submit pull requests! Help us build the real-time social service where users and developers come first, not advertisers.
https://developers.app.net
952 stars 99 forks source link

Feature: Subscribe to topics from particular user #123

Open edent opened 11 years ago

edent commented 11 years ago

(This may clash with tagging / annotations - but bear with me)

Problem: I follow @edent. I am interested in his views on technology but not his views on politics. I am interested in his Xbox stats, but not his Wii stats.

If the Xbox and Wii are posting from dedicated apps, I can block myself from seeing those apps (similar to how FaceBook lets me block those wretched Farming games).

But how do I stop seeing posts on a certain topic? How do I see what topics a user talks about?

Solution: As a poster, I can set what topics I regularly post about.
I can direct posts to a specific topic. e.g. "music: The Beatles are pretty great", "politics: Zaphod for president", "tech: My review of the iPhone 5 http://...."

As a follower, I can decide which topics I wish to see from a particular user. As a follower, I can decide which topics I do not wish to see from a particular user.

As a follower, by default, I will see all of the topics of the users I follow.

edent commented 11 years ago

Of course, the real kicker is - would people remember to use it? My main reason for wanting this is so that I can avoid all the posts about Olympics/Twilight/etc that otherwise rational people feel compelled to post about.

It's not as simple as keyword blocking because a post like "Usain Bolt is looking great as he reaches the 50m mark" don't contain any hashtags or other meta data.

Would people be courteous enough to prefix with "sport:" before posting?

stereoket commented 11 years ago

I would prefer a tag engine instead, it could hook into an internal search API and surface/filter posts using those tags, but not related to a single user (like hashtags/lists) but easier to use and more commonly used/invisible to the post as its metadata embedded within the post.

Channels in my mind are akin to "groups" - plus I think there is talk about having channels implemented across ADN in a much more wider scope than this, so it would cause some conflict.

If we were to have group controls, it could work "with" channels :

If I were to set up a public group/list that in your analogy could be subscribed to, a client could implement this feature by showing post to group option, this would bypass the power-user requirement to have to remember the channel name/spelling etc...

These groups would need to be visible to the followers of the user - it could also go one step further and allow a private list setup by the user that would not be visible to the user, but would only be exposed to users selected by the creator of that private group.

this would in effect allow transmission of a post to:

an opt-in group of people (public & private scope) a select group of people selected by the creator (public & private scope) a private group of mutual followers - like a group DM (private scope) opt out of the global stream (private scope) searchers of that group ID (if in public scope)

You're example above sounds like it requires tag filtering, if the user were to "tag" their post "olympics" you could opt to "mute" all posts with that or a group of tags.

User muting is currently active, if tags were introduced, then this would allow filtering by tag names. It would need to be managed so inconsistent tags were not introduced and a common taxonomy to be used (easier said than done). I think if we left it to user management, it would not work across the entire platform as it scaled.

kosso commented 11 years ago

Isn't this what 'filters' will be, if i've read them right in the API docs.

On 22 Aug 2012, at 09:33, Terence Eden notifications@github.com wrote:

(This may clash with tagging / annotations - but bear with me)

Problem: I follow @edent. I am interested in his views on technology but not his views on politics. I am interested in his Xbox stats, but not his Wii stats.

If the Xbox and Wii are posting from dedicated apps, I can block myself from seeing those apps (similar to how FaceBook lets me block those wretched Farming games).

But how do I stop seeing posts on a certain topic? How do I see what topics a user talks about?

Solution: As a poster, I can set what topics I regularly post about.

I can direct posts to a specific topic. e.g. "music: The Beatles are pretty great", "politics: Zaphod for president", "tech: My review of the iPhone 5 http://...."

As a follower, I can decide which topics I wish to see from a particular user. As a follower, I can decide which topics I do not wish to see from a particular user.

As a follower, by default, I will see all of the topics of the users I follow.

— Reply to this email directly or view it on GitHub.

markwilcox commented 11 years ago

Filters are currently missing a mechanism for users to indicate which topics they post about, unless they hashtag everything. I can filter in/out all posts by a specific user but the ways to get a subset of those posts are limited.

I've just commented on the same issues on #120

mattflaschen commented 11 years ago

I don't think this clashes with annotations. But done right, it should be complementary. You should be able to say (through appropriate API calls), "follow @edent's stats.xbox annotations and his Java posts". That would mean his posts containing at least one stats.xbox annotation, or a Java topic would be added to my stream.

Then, the ordinary options for clients processing posts apply to the stream. Some clients will not support machine-only posts at all, or they'll drop annotations from posts with both text and annotations. That's fine. Others will support it.

I agree it would be nice to allow posters to specify topics more flexibly than by hashtag. It would be nice (and relatively simple to implement) to follow "@edent's #java posts"

But a more low-key way of specifying topics when posting would be nice. When watching a sports game, you could set your client to mark every post as sport: (this topic field would probably be a core annotation) until you say otherwise.