Hi all,
For some time a couple of people have told me they don't use
identi.ca/statusnet because of how replies are handled. They only want
to see resplies where they follow both parties - like on twitter.
I have looked through class Notice and have mostly worked out how to
implement the change. I plan to implement this as a user controlled
preference/option so they can opt out/in of receiving replies where they
don't follow the target of the reply dent.
After looking through the code I can see that things are done the way
they are now for performance reasons. So rather than make statusnet
perform poorly, I'd like some feedback.
The main work will be in Notice::whoGets. It seems easiest to explain
is pseudo code
function whoGets(replyTo=null, groups=null, recipients=null)
[...]
users = this->getSubscribersReplyPref() // modified getSubscribers()
foreach ( users as user ) {
if ( replyTo && user->ignoreReplies ) {
if ( !this->allowReply(replyTo, user->id) ) {
continue
}
}
// continue on with old logic
}
allowReply(replyTo, user) will just check the subscription table to see
if the user follows the user the reply is directed at.
replyTo is determined by just checking the plain version of the message
with preg_match('/^@([A-Za-z0-9]{1,64})/') and the user id will be
passed into whoGets by addToInboxes()
If someone has 10 followers this won't have too much of an impact, but
if they have 100s then this could have a pretty big impact.
The current caching system used in whoGets is going to need some work
too, I haven't got that far yet.
I can see the merits of the feature although I am unlikely to use it
myself. I would also like to give FLOSS friendly people one less excuse
to use identi.ca.
So, what do people think? Is it worth me continuing with this? If so am
I on the right track with it. I'm happy to provide a patch if there is
support for it.
Cheers
Dave
_______________________________________________
StatusNet-dev mailing list
[email protected]
http://lists.status.net/mailman/listinfo/statusnet-dev