Commit Graph

11742 Commits

Author SHA1 Message Date
Brion Vibber
3eb900e31f 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. 2011-03-01 17:09:41 -08:00
Brion Vibber
4c09c1dc47 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. 2011-03-01 17:04:05 -08:00
Brion Vibber
6a6584741f Fix for ticket #2248: flickr etc URLs that contain @ in the paths etc no longer accidentally trip the mailto: thingy 2011-02-25 15:46:35 -08:00
Brion Vibber
e00483d703 Test case for ticket #2248: flickr URLs with @ in the path get misinterpreted as mailto 2011-02-25 15:38:24 -08:00
Brion Vibber
9ec395b07a 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.
2011-02-25 13:22:13 -08:00
Brion Vibber
55b1f3d84c 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.
2011-02-25 12:15:38 -08:00
Zach Copley
77c280a48b Revert "FacebookBridge - Add lots of debug output (revert me)"
This reverts commit c44a622449.
2011-02-24 14:21:50 -08:00
Zach Copley
7d50189ec2 FacebookBridge - Don't hinder autoloading if the Facebook ID and secret aren't set 2011-02-24 13:57:21 -08:00
Zach Copley
de6d46ea4b FacebookBridge - dequeue messages that aren't bound for Facebook 2011-02-24 13:29:56 -08:00
Zach Copley
c44a622449 FacebookBridge - Add lots of debug output (revert me) 2011-02-24 12:59:37 -08:00
Zach Copley
65dbf485e4 FacebookBridge - make a huge fuss if we can't create a valid Facebookclient 2011-02-24 12:52:31 -08:00
Brion Vibber
8eca1b8dac 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.
2011-02-21 16:36:39 -08:00
Brion Vibber
2a42dac72a 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
2011-02-21 16:10:07 -08:00
Brion Vibber
f3c822cc15 Ticket #3011: Add attachments/uploads and attachments/file_quota to api/statusnet/config.(xml|json)
file_quota is adjusted from the defined value to take into account the maximum upload size limits in PHP, or cropped to 0 if uploads are disabled.
This can be used by client apps to determine maximum size for an attachment.
2011-02-21 15:52:12 -08:00
Brion Vibber
3fb4b92cd6 Fix ticket #3001: Twitter bridge was replacing original form of @-mentions with canonical form unexpectedly
Now using the original text form of @-mentions and #-tags, as in Twitter's own HTMLification.
Canonical forms are still used in generating links, where it's polite to match the canonical form.
2011-02-21 15:01:57 -08:00
Brion Vibber
8e7c279c9e Fix issue #3035: search highlighting broke URLs in some imported messages (Twitter)
Search highlighting was being done with a regex on raw HTML text, followed by a second regex undoing replacements within double-quoted attribute values.
This broke on imported Twitter messages, as the way we generate the markup uses single quotes on the attributes, which didn't get matched by the second regex.
I've replaced this do-then-undo cycle by dividing up the import HTML into freetext spans and tags; the freetext gets replaced, while the tags are left untouched.
2011-02-21 14:14:32 -08:00
Brion Vibber
eb7e3ee528 Fixes for ticket #3052: some commands started triggering when extra text is supposed to suppress them
Regressions caused by bad refactoring in commit 21feac3bea.
Test cases in tests/CommandInterpreterTest.php were made against the pre-refactoring code, and now check out with the fixed code.
Failures were caused by not changing logic structure when moving from multiple exit points (each if point would return directly with a null or an object) to setting a result variable and then falling through to a common exit point. Without the if statements being restructured, the result variable would just get overridden by the next case.
2011-02-21 12:12:10 -08:00
Brion Vibber
11e033f05c CommandInterpreter test cases to guard against regressions 2011-02-21 12:12:10 -08:00
Brion Vibber
6b18f86e01 Issue #3049 - resync doc/im with the help command text (various additions since doc was last edited) 2011-02-21 11:23:07 -08:00
Brion Vibber
98b1fe07c6 Blow user:site_owner cache when granting/revoking 'owner' role 2011-02-17 16:46:08 -08:00
Evan Prodromou
ccdd47bdb4 use fallback URIs for groups when filling in attention in Notice::asActivity() 2011-02-17 10:51:00 -05:00
Evan Prodromou
39c6e34098 add path separators for Plugin::path() 2011-02-16 13:56:30 -05:00
Evan Prodromou
2b869fa23f Merge remote branch 'origin/master' 2011-02-14 12:41:52 -05:00
Evan Prodromou
40533ee851 backup action is read-only 2011-02-14 12:41:20 -05:00
Zach Copley
7de1aaf86d Atom - output nickname for atom:name in atom:author 2011-02-13 00:40:28 +00:00
Brion Vibber
30eddaf168 Update translator comment for the url shortener "free service" marker: free as in open 2011-02-11 14:11:37 -08:00
Brion Vibber
454a980bd4 Fix for failure/exception on subscription/subscriber lists when deleted profiles are stuck in cached list.
Workaround for deleted profiles still appearing in cached subscriptions/subscribers lists: if we couldn't fetch them, don't include them in the ArrayWrapper.
ArrayWrapper doesn't deal well with null entries, which aren't meant to happen in how it works. This code has recently changed from dying directly with a PHP fatal error in that case to throwing an exception, which allows tracking down the caller.

It looks like there might be some cases where profiles and their matching subscriptions get deleted, but the subscription entries don't get properly cleared from cache... that still bears further investigation. The regular code path looks ok; calls Subscription::cancel() from code called in Profile::delete(); but if they're batch-deleted instead of one row at a time, that could fail to trigger.
2011-02-11 13:21:53 -08:00
Evan Prodromou
ffe2da4c80 Merge branch 'master' of gitorious.org:statusnet/mainline 2011-02-11 16:01:57 -05:00
Evan Prodromou
f6e614b894 add plugins/sslpath setting, default to site path/plugins 2011-02-11 15:58:47 -05:00
Brion Vibber
c92358fa7b add --all and --suspicious options for update-profile-data.php 2011-02-11 12:23:03 -08:00
Brion Vibber
f30744c7c5 refactor for multi.... 2011-02-11 12:13:33 -08:00
Brion Vibber
f7b431d60b woops 2011-02-11 12:08:35 -08:00
Brion Vibber
91535365b3 Work in progress: update-profile-data.php to update ostatus profile info from the current feed 2011-02-11 11:55:23 -08:00
Evan Prodromou
dc424ab63a Merge branch 'master' of gitorious.org:statusnet/mainline 2011-02-10 22:23:06 -05:00
Evan Prodromou
d876418acd Merge remote branch 'dev/master' 2011-02-10 22:21:56 -05:00
Evan Prodromou
ff2553b9c7 get the subject first if you go to the feed 2011-02-11 03:01:24 +00:00
Evan Prodromou
fc317f8b72 check legacy <actor> and <subject> first from feed 2011-02-11 02:59:18 +00:00
Brion Vibber
b09276635c Merge branch 'master' into 0.9.x 2011-02-10 12:04:13 -08:00
Brion Vibber
2bf8a68908 Fix for ticket #3039: TwitterBridge was incorrectly sending repeats of Twitter-bound messages if the repeater has sending of things to Twitter disabled.
A repeat/retweet is roughly equivalent to an active direct post, so should follow the posting rules, rather than always sending over as we do for fave notifications.
2011-02-10 10:53:24 -08:00
Zach Copley
857e35c175 Merge branch 'master' of gitorious.org:statusnet/mainline
* 'master' of gitorious.org:statusnet/mainline:
  Show aside primary on settings pages for all themes.
  correct error in README on default for deletion
2011-02-10 10:26:36 -08:00
Zach Copley
d9ace57625 FacebookBridge - remove unnecessary warning and noisy debugging statement 2011-02-10 10:24:38 -08:00
Samantha Doherty
8a87e9869f Show aside primary on settings pages for all themes. 2011-02-10 13:23:20 -05:00
Evan Prodromou
523e8c86e9 correct error in README on default for deletion 2011-02-10 10:11:30 -05:00
Evan Prodromou
8fa44e58f9 Try not to wipe out good data with empty values in Ostatus_profile::updateProfile()
Output from 0.9.6 PuSH feeds seems to have a rump <author> but no
<activity:actor>. It was overwriting valid and useful data set up at
subscribe time.

This fix tries to avoid overwriting data. However, it may prevent
updates that delete data.

Bug: 3028
2011-02-10 09:39:40 -05:00
Zach Copley
df19e88323 Atom output - Reinstate activity:actor and activity:subject
w/deprecation warnings. Also add statusnet:profile_info back into
author/actor.
2011-02-09 23:18:14 -08:00
Brion Vibber
a0c669808e Merge branch 'master' of gitorious.org:statusnet/mainline 2011-02-09 13:50:31 -08:00
Brion Vibber
a76f067631 Partial revert of 073f3e99: restores the original non-hashbang URLs for twitter users as the remote profile.
Should fix issue #3027: twitter user avatars not getting imported.

Due to the change in URI, all twitter users that had been previously seen were getting new profile entries, which tried to save the same avatar. This would fail as Avatar.url has a unique index.
Note: now anything new seen in the last couple days in production will still potentially conflict.
2011-02-09 13:46:48 -08:00
Evan Prodromou
bfa053ef17 Remove executable bits from Auth_SASL files 2011-02-09 11:04:52 -05:00
Evan Prodromou
9c4294fb50 include Auth_SASL from PEAR in extlib 2011-02-09 11:03:44 -05:00
Brion Vibber
956b3ef4d1 Merge branch 'ssltweak' 2011-02-09 00:11:28 -08:00