Brion Vibber [Wed, 2 Mar 2011 01:09:41 +0000 (17:09 -0800)]
More fixes for 'fav' IM command: don't die with a fatal error if the notice has already been favored, and don't spew a warning when checking for user ID match.
Brion Vibber [Wed, 2 Mar 2011 01:01:35 +0000 (17:01 -0800)]
Workaround for bug causing fatal error during favoriting; Profile::getCurrentNotice() was returning an ArrayList instead of a Notice directly due to pulling through Profile::getNotices(). This caused failure in Fave::addNew() which specifies it wants a Notice. Caused failure of the 'fav' IM command.
Brion Vibber [Tue, 1 Mar 2011 23:45:44 +0000 (15:45 -0800)]
Partial update of Realtime for threaded view; can now place replies into the proper subtimeline if it's already present, but not if it wasn't shown yet.
Brion Vibber [Tue, 1 Mar 2011 23:16:39 +0000 (15:16 -0800)]
Alternate Inbox streaming function optimized for threaded paging (for /all stream, while things using the existing API inbox methods won't be affected)
Brion Vibber [Tue, 1 Mar 2011 21:30:38 +0000 (13:30 -0800)]
Hide context entries in threaded lists; it's redundant (and if there's more than a few messages, we have the context link still :D)
Also hides them via CSS for new ajax additions
Brion Vibber [Fri, 25 Feb 2011 21:22:13 +0000 (13:22 -0800)]
Workaround for reply timeline since_id issue: save the notice.created value into reply.modified, so we can key off it as expected.
As a hack this removes the mysql_timestamp bit from the field settings on reply.modified so that our value actually gets saved. This *should* work ok as long as system timezone is set correctly, which we now set to UTC to match when connecting.
Brion Vibber [Fri, 25 Feb 2011 19:04:57 +0000 (11:04 -0800)]
Scalability work on user backup stream generation.
UserActivityStream -- used to create a full activity stream including subscriptions, favorites, notices, etc -- normally buffers everything into memory at once. This is infeasible for accounts with long histories of serious usage; it can take tens of seconds just to pull all records from the database, and working with them all in memory is very likely to hit resource limits.
This commit adds an alternate mode for this class which avoids pulling notices until during the actual output. Instead of pre-sorting and buffering all the notices, empty spaces between the other activities are filled in with notices as we're making output. This means more smaller queries spread out during operations, and less stuff kept in memory.
Callers (backupaccount action, and backupuser.php) which can stream their output pass an $outputMode param of UserActivityStream::OUTPUT_RAW, and during getString() it'll send straight to output as well as slurping the notices in this extra funky fashion.
Other callers will let it default to the OUTPUT_STRING mode, which keeps the previous behavior.
There should be a better way to do this, swapping out the stringer output for raw output more consitently.
Brion Vibber [Thu, 24 Feb 2011 00:37:55 +0000 (16:37 -0800)]
Unicodize a couple regexes for tags: fixes linking & detection of non-ASCII tags that match the current regexes.
(Checks for 'letter' and 'number' characters, underscore, dash, and period.)
Brion Vibber [Tue, 22 Feb 2011 00:18:45 +0000 (16:18 -0800)]
Fix ticket #3057: apply HTML escaping on special characters in Twitter import
Changes the replacement of Twitter "entities" from in-place reverse ordering ('to preserve indices') to a forward-facing append-in-chunks that pulls in both the text and link portions, and escapes them all.
This unfortunately means first *de*-escaping the < and > that Twitter helpfully adds for us.... and any literal &blah;s that get written. This seems to match Twitter's web UI, however horrid it is.
Brion Vibber [Tue, 22 Feb 2011 00:10:07 +0000 (16:10 -0800)]
Partial implementation for ticket #2442: MobileProfile plugin should allow manual switching between regular and mobile rendering modes
http://status.net/open-source/issues/2442
Notes:
* Mapstraction causes JavaScript errors in XHTML mode, breaking our code if we're run later so the link doesn't work to get back to Desktop.
* not 100% sure how safe feature detection is here?
* Currently will be useless but visible links if no JS available; need to fall back to server-side for limited browsers