summaryrefslogtreecommitdiff
path: root/classes/Notice.php
AgeCommit message (Collapse)Author
2010-02-27fix call of common_find_mentions() in Notice::saveReplies()Evan Prodromou
2010-02-27Use notice for context when deciding who @nickname refers toEvan Prodromou
In a federated system, "@nickname" is insufficient to uniquely identify a user. However, it's a very convenient idiom. We need to guess from context who 'nickname' refers to. Previously, we were using the sender's profile (or what we knew about them) as the only context. So, we assumed that they'd be mentioning to someone they followed, or someone who followed them, or someone on their own server. Now, we include the notice information for context. We check to see if the notice is a reply to another notice, and if the author of the original notice has the nickname 'nickname', then the mention is probably for them. Alternately, if the original notice mentions someone with nickname 'nickname', then this notice is probably referring to _them_. Doing this kind of context sleuthing means we have to render the content very late in the notice-saving process.
2010-02-26blow cache on known repliesEvan Prodromou
2010-02-25Add lots of fun avatars to our Atom outputZach Copley
2010-02-25OStatus: save categories from the Atom entry as hashtags.Brion Vibber
2010-02-22Add PoCo namespace to optional ns output in Notice::asAtomEntry()Zach Copley
2010-02-22Merge branch 'rationalize-activity' into testingZach Copley
* rationalize-activity: Move ActivityObject and related stuff to core Add PoCo bits, avatar link, geo point, etc. to person activity obj output
2010-02-22Move ActivityObject and related stuff to coreZach Copley
2010-02-23OStatus group delivery initial implementation.Brion Vibber
- added rel="ostatus:attention" links for group delivery - added events for plugins to override group profile/permalink pages - pulled Notice::saveGroups up to save-time so we can override; it's relatively cheap and gives us a clean list of target groups for distrib time even with customized delivery. - fixed notice::getGroups to return group objects as expected - added some doc on new parameters to Notice::saveNew - 'groups' list of group IDs to push to in place of parsing - messages that come in via PuSH and contain local group targets are delivered to local group members - messages that come in via PuSH and contain remote group targets are delivered to local members of the remote group Todo: - handle group posts that only come through Salmon - handle conflicts in case something comes in both through Salmon and PuSH - better source verification - need a cleaner interface to look up groups by URI - need a way to handle remote groups with conflicting names
2010-02-21don't calculate replies for remote noticesEvan Prodromou
2010-02-21Combine code that finds mentions into one place and add hook pointsEvan Prodromou
Combined the code that finds mentions of other profiles into one place. common_find_mentions() finds mentions and calls hooks to allow supplemental syntax for mentions (like OStatus). common_linkify_mentions() links mentions. common_linkify_mention() links a mention. Notice::saveReplies() now uses common_find_mentions() instead of trying to parse everything again.
2010-02-21permalink on a note represented by rel=alternateEvan Prodromou
2010-02-21Notice::saveNew() accepts url and rendered optionsEvan Prodromou
2010-02-20OStatus: send favorite/unfavorite notifications to remote authorsBrion Vibber
2010-02-18add type='text/html' to alternate link in Notice AtomEvan Prodromou
2010-02-18always distribute to inbox of author immediatelyEvan Prodromou
2010-02-17- Set the root of a new local conversation to a new conversation.idZach Copley
- Output conversation URIs from conversation.uri
2010-02-16Take remote profiles into account when looking up canonical profile URIsZach Copley
2010-02-12fix for Atom notice output: correct check against conversation & current idBrion Vibber
2010-02-11Fix retarded spelling mistakeZach Copley
2010-02-11ostatus:attention links in Notice Atom outputZach Copley
2010-02-11Some upgrades to Atom output for OStatusZach Copley
2010-02-09OStatus partial support for group subscriptions:Brion Vibber
* detection of group feeds is currently a nasty hack based on presence of '/groups/' in URL -- should use some property on the feed? * listing for the remote group is kinda cruddy; needs to be named more cleanly * still need to establish per-author profiles (easier once we have the updated Atom code in) * group delivery probably not right yet * saving of group messages still triggering some weird behavior Added support for since_id and max_id on group timeline feeds as a free extra. Enjoy!
2010-02-08OStatus cleanup...Brion Vibber
* Treat linkless feed posts as status updates; drop the "New post:" prefix and quotes on them. * Use stable user IDs for atom/rss2 feed links instead of unstable nicknames * Pull Atom feed preferentially when subscribing -- can now put the remote user's profile page straight into the feed subscription form and get to the right place. * Clean up naming for push endpoints
2010-02-03clear cache for Profile::hasRepeated() at Notice::insert() timeEvan Prodromou
2010-01-30error clearing tags for profiles from memcachedEvan Prodromou
2010-01-28Last-chance distribution if enqueueing failsEvan Prodromou
2010-01-27fix notice -- drop unused return value of variable that isn't initialized :) ↵Brion Vibber
thx @ g0 for the catch
2010-01-27Adds an emergency switch so we can run inbox distribution at save time ↵Brion Vibber
(bypassing 'distrib' queue) Set $config['queue']['inboxes'] = false to do so
2010-01-25Offload inbox updates to a queue handler to speed up posting onlineEvan Prodromou
Moved much of the writing that happens when posting a notice to a new queuehandler, distribqueuehandler. This updates tags, groups, replies and inboxes at queue time (or at Web time, if queues are disabled). To make this work well, I had to break up the monolithic Notice::blowCaches() and make cache blowing happen closer to where data is updated. Squashed commit of the following: commit 5257626c62750ac4ac1db0ce2b71410c5711cfa3 Author: Evan Prodromou <evan@status.net> Date: Mon Jan 25 14:56:41 2010 -0500 slightly better handling of blowing tag memory cache commit 8a22a3cdf6ec28685da129a0313e7b2a0837c9ef Author: Evan Prodromou <evan@status.net> Date: Mon Jan 25 01:42:56 2010 -0500 change 'distribute' to 'distrib' so not too long for dbqueue commit 7a063315b0f7fad27cb6fbd2bdd74e253af83e4f Author: Evan Prodromou <evan@status.net> Date: Mon Jan 25 01:39:15 2010 -0500 change handle_notice() to handle() in distributqueuehandler commit 1a39ccd28b9994137d7bfd21bb4f230546938e77 Author: Evan Prodromou <evan@status.net> Date: Mon Jan 25 16:05:25 2010 -0500 error with queuemanager commit e6b3bb93f305cfd2de71a6340b8aa6fb890049b7 Author: Evan Prodromou <evan@status.net> Date: Mon Jan 25 01:11:34 2010 -0500 Blow memcache at different point rather than one big function for Notice class commit 94d557cdc016187d1d0647ae1794cd94d6fb8ac8 Author: Evan Prodromou <evan@status.net> Date: Mon Jan 25 00:48:44 2010 -0500 Blow memcache at different point rather than one big function for Notice class commit 1c781dd08c88a35dafc5c01230b4872fd6b95182 Author: Evan Prodromou <evan@status.net> Date: Wed Jan 20 08:54:18 2010 -0500 move broadcasting and distributing to new queuehandler commit da3e46d26b84e4f028f34a13fd2ee373e4c1b954 Author: Evan Prodromou <evan@status.net> Date: Wed Jan 20 08:53:12 2010 -0500 Move distribution of notices to new distribute queue handler
2010-01-15Fix for background recalculation of groups; needs to get Group objects not ↵Brion Vibber
IDs; also don't list any groups for repeats to match saveGroups behavior todo: merge calculation portion with saveGroups so they don't get out of sync
2010-01-13make sure whoGets() doesn't write anythingEvan Prodromou
2010-01-13Don't save reply info for repeatsEvan Prodromou
2010-01-13repeats don't get posted to groupsEvan Prodromou
2010-01-13remove vestiges of Notice_inbox from cache clearing code in NoticeEvan Prodromou
2010-01-13memoize Notice::whoGets()Evan Prodromou
2010-01-12remove transaction for Notice save; causes deadlocksEvan Prodromou
2010-01-09whoGets() method for NoticeEvan Prodromou
2010-01-09Use inbox instead of notice_inboxEvan Prodromou
2010-01-07Fixes to bugs where non-local messages were being wrong put in the public ↵Ciaran Gultnieks
timeline and public xmpp feed
2010-01-05Fix for overlong RT trimming: don't trim if textlimit is 0 (unlimited)Brion Vibber
2010-01-05Ticket 2135: trim overlong repeats with ellipsis rather than failing.Brion Vibber
In web interface and retweet/repeat API we show the original untrimmed text, but some back-compat API messages will still show the trimmed 'RT' version. This matches Twitter's behavior on overlong retweets, though we're outputting the RT version in more API results than they do.
2010-01-04cached id streams can be empty, compare against falseEvan Prodromou
2010-01-02Merge branch 'master' into 0.9.xEvan Prodromou
Conflicts: classes/Memcached_DataObject.php
2010-01-02incorrectly used empty() instead of isset() for a variable that could be 0Evan Prodromou
2009-12-29Merge branch 'master' into 0.9.xEvan Prodromou
2009-12-28notices are immutable, use created date for updatedEvan Prodromou
2009-12-28Move location-argument-handling code into a single functionEvan Prodromou
Moved the important parts of the location-argument-handling stuff to a single function. Handles defaults and overrides correctly, and easy to use. Changed Web and API channels to use it.
2009-12-16Add doc comments listing the array parameters for User::register() and ↵Brion Vibber
Notice::saveNew()
2009-12-16Cleanup undefined variable notice: set a couple more null defaults for new ↵Brion Vibber
params in Notice::saveNew(). Fixes this notice seen while using AJAX repeat button: Notice: Undefined variable: uri in classes/Notice.php on line 243