Commit Graph

1445 Commits

Author SHA1 Message Date
Brion Vibber fa282823d9 Merge branch '0.9.x' of gitorious.org:statusnet/mainline into 1.0.x 2010-06-26 15:10:47 -04:00
Brion Vibber c6b1e25d17 Merge branch 'testing' of gitorious.org:statusnet/mainline into 0.9.x 2010-06-26 15:09:30 -04:00
Brion Vibber ef7e85c0ab Merge branch 'master' of gitorious.org:statusnet/mainline into testing 2010-06-26 15:09:08 -04:00
Brion Vibber f0c5e7eca3 Fix for bug #2382: releasing claim on failed queue item works again with DB-based queues.
Warning: DB-based queue doesn't currently implement discarding of items after a retry limit. Failed items will be retried until they succeed.
2010-06-26 15:07:32 -04:00
Brion Vibber 00e129b013 Merge branch '0.9.x' of gitorious.org:statusnet/mainline into 1.0.x 2010-06-26 10:18:03 -04:00
Brion Vibber 696e4ba393 Merge branch 'testing' of gitorious.org:statusnet/mainline into 0.9.x
Conflicts:
	plugins/OpenID/openidserver.php (cleaned up mismatched comment)
2010-06-26 10:17:36 -04:00
Brion Vibber d9e56e15cc Merge branch 'master' into testing 2010-06-26 10:16:27 -04:00
Zach Copley 1eec7f779f - Add profile_info tag to Atom author
- Normalize xmlns:statusnet links in the API
2010-06-22 16:28:06 -07:00
Zach Copley 105c1a22d6 Include source client's related URL (if any) in source attribution for
Atom notice feeds
2010-06-17 23:08:40 +00:00
James Walker b667092153 adding a Status_network::updateKeys() method, since DB_DataObject update doesn't do keys. 2010-06-17 13:44:17 -04:00
Zach Copley d3d499879c - More useful group info from api/statusnet/group/show
- Add statusnet:group_info tag to group Atom feeds
2010-06-16 14:29:24 -07:00
Brion Vibber 004200f958 Merge branch '0.9.x' of gitorious.org:statusnet/mainline into 1.0.x 2010-06-11 12:09:55 -07:00
Brion Vibber 7f3b3620af Merge branch 'testing' of gitorious.org:statusnet/mainline into 0.9.x 2010-06-11 12:05:53 -07:00
Brion Vibber b1a68e15b7 Merge branch '0.9.x' of gitorious.org:statusnet/mainline into 1.0.x
Conflicts:
	lib/default.php
	lib/util.php
	plugins/UrlShortener/UrlShortenerPlugin.php (has been removed?)
2010-06-10 15:37:06 -07:00
Brion Vibber 5a96b9e805 Merge branch 'master' of gitorious.org:statusnet/mainline into testing 2010-06-07 10:34:00 -07:00
Brion Vibber d88b208edc Merge branch 'testing' of gitorious.org:statusnet/mainline into 0.9.x
Conflicts:
	plugins/OpenID/openid.php
2010-06-07 10:19:40 -07:00
Evan Prodromou 6d39a75137 use DB_DataObject_Cast objects in a couple of different places in the code 2010-06-04 15:29:38 -04:00
Evan Prodromou cbdeb6fb8f Merge branch 'master' of gitorious.org:statusnet/mainline 2010-06-04 13:26:25 -04:00
Evan Prodromou f1ea678aae memcache_dataobject supports some DB_DataObject_Cast objects as values 2010-06-04 12:52:05 -04:00
Brion Vibber 8b9436e8ae Option to divert PuSH items directly to the target site's queue when local 2010-06-03 18:06:55 -07:00
Brion Vibber 5f4c6ec626 Skip enqueueing to outgoing bridges on incoming remote messages. Twitter, Facebook, RSSCloud, and OStatus checks were enqueued on these when they'd never do anything but churn the queue servers.
Notice::isLocal() can replace a number of manual checks for $notice->is_local being LOCAL_PUBLIC or LOCAL_NONPUBLIC.
2010-06-03 16:58:45 -07:00
Zach Copley 1a44d4272f Add repeated attr to Atom notices_info element 2010-06-03 22:24:55 +00:00
Brion Vibber 17ab15a3d0 Fix memory leak in Inbox::addToInbox() (usage of raw DB_DataObject::staticGet, which leaks memory into a process-global cache).
On my test setup, this fixes inbox delivery to 10,000 local recipients from background queuedaemon running with a 32mb memory limit, completes the job within a minute from start.
2010-06-01 13:53:44 -07:00
Craig Andrews 6317f7d92b Assigning my copyrights to the Free Software Foundation 2010-05-27 18:27:33 -04:00
Brion Vibber 696aeea113 Merge branch 'testing' of gitorious.org:statusnet/mainline into 0.9.x
Conflicts:
	lib/language.php
	plugins/OpenID/finishaddopenid.php
2010-05-27 14:57:32 -07:00
Zach Copley 80d1e86a7c Add repeat info to statusnet:notice_info Atom element 2010-05-26 00:39:44 +00:00
Brion Vibber e68d2c9015 Merge branch 'master' of gitorious.org:statusnet/mainline 2010-05-25 13:11:36 -07:00
Brion Vibber 95159112b2 Hotpatch for infinite redirection-following loop seen processing URLs to http://clojure.org/ -- if we end up with an unstable redirect target (final item in a redirect chain ends up redirecting us somewhere else when we visit it again), just save the last version we saw instead of trying to start over.
Pretty much everything in File and File_redirection initial processing needs to be rewritten to be non-awful; this code is very hard to follow and very easy to make huge bugs. A fair amount of the complication is probably obsoleted by the redirection following being built into HTTPClient now.
2010-05-25 13:09:21 -07:00
Brion Vibber f7add6f25f Handle funky notice deletion cases more gracefully: if we already have a deleted_notice entry, don't freak out when we try to save it again on the second try. 2010-05-24 07:47:15 -07:00
Zach Copley 114df39822 Need to always emit statusnet:notice_info so it's available in profile feeds 2010-05-18 15:17:05 -07:00
Zach Copley 5ea019c41a Remove errant double HTML entity encoding in API source attribution 2010-05-18 15:16:23 -07:00
Zach Copley 68634f0496 Add source link attr to statusnet:notice_info element in Atom output for notices 2010-05-18 15:15:41 -07:00
Zach Copley c78f67aa73 Refactor and centralize notice source link calculation 2010-05-18 15:15:27 -07:00
Zach Copley d9fddff539 Add xmlns:statusnet and statusnet:notice_info element to Atom entries for notices 2010-05-18 15:15:14 -07:00
Brion Vibber 91367dbc21 Merge branch '0.9.x' into 1.0.x 2010-05-14 12:15:13 -07:00
Zach Copley df034f0a1e Need to always emit statusnet:notice_info so it's available in profile feeds 2010-05-12 15:08:01 -07:00
Brion Vibber d9c1ac9053 Merge branch '0.9.x' into 1.0.x 2010-05-06 18:49:01 -07:00
Zach Copley 869bc32d0d Remove errant double HTML entity encoding in API source attribution 2010-05-06 21:48:12 +00:00
Zach Copley 292ea33dbd Add source link attr to statusnet:notice_info element in Atom output for notices 2010-05-06 21:48:11 +00:00
Zach Copley 22fde00def Refactor and centralize notice source link calculation 2010-05-06 21:48:11 +00:00
Zach Copley b547079b28 Add xmlns:statusnet and statusnet:notice_info element to Atom entries for notices 2010-05-06 21:48:11 +00:00
Brion Vibber 173778eab1 Merge branch '0.9.x' of gitorious.org:statusnet/mainline into 1.0.x
Conflicts:
	lib/xmppmanager.php (resolved: code has moved to XmppPlugin.php)
2010-05-05 17:11:23 -07:00
Brion Vibber e05415f621 Merge branch 'testing' of gitorious.org:statusnet/mainline into 0.9.x
Conflicts:
	locale/ca/LC_MESSAGES/statusnet.po
	locale/de/LC_MESSAGES/statusnet.po
	locale/statusnet.pot
2010-05-05 17:07:50 -07:00
Zach Copley b50f300566 Implement since_id and max_id param handling for /api/favorites 2010-05-05 14:46:36 -07:00
Brion Vibber 5414396a2e IM cleanup on 1.0.x branch:
* Fake_XMPP back to Queued_XMPP, refactor how we use it and don't create objects and load classes until we need them.
* fix fatal error in IM settings while waiting for a Jabber confirmation.
* Caching fix for user_im_prefs
* fix for saving multiple transport settings
* some fixes for AIM & using normalized addresses for lookups
2010-04-30 15:29:05 -07:00
Brion Vibber cae1329f3b Merge branch '0.9.x' into 1.0.x
Conflicts:
	lib/util.php
2010-04-30 13:16:13 -07:00
Brion Vibber 2260d6ec7c Merge branch 'testing' into 0.9.x
Conflicts:
	index.php
2010-04-29 15:14:51 -07:00
Evan Prodromou 5c05cd2b1a Merge branch '1.0.x' of gitorious.org:statusnet/mainline into 1.0.x 2010-04-26 02:43:33 -04:00
Evan Prodromou 14adb7cc41 Give users more control over URL shortening
Users and administrators can set how long an URL can be before it's
shortened, and how long a notice can be before all its URLs are
shortened. They can also turn off shortening altogether.

Squashed commit of the following:

commit d136b39011
Author: Evan Prodromou <evan@status.net>
Date:   Mon Apr 26 02:39:00 2010 -0400

    use site and user settings to determine when to shorten URLs

commit 1e1c851ff3
Author: Evan Prodromou <evan@status.net>
Date:   Mon Apr 26 02:38:40 2010 -0400

    add a method to force shortening URLs

commit 4d29ca0b91
Author: Evan Prodromou <evan@status.net>
Date:   Mon Apr 26 02:37:41 2010 -0400

    static method for getting best URL shortening service

commit a9c6a3bace
Author: Evan Prodromou <evan@status.net>
Date:   Mon Apr 26 02:37:11 2010 -0400

    allow 0 in numeric entries in othersettings

commit 767ff2f7ec
Author: Evan Prodromou <evan@status.net>
Date:   Mon Apr 26 02:36:46 2010 -0400

    allow 0 or blank string in inputs

commit 1e21af42a6
Author: Evan Prodromou <evan@status.net>
Date:   Mon Apr 26 02:01:11 2010 -0400

    add more URL-shortening options to othersettings

commit 869a6be0f5
Author: Evan Prodromou <evan@status.net>
Date:   Sat Apr 24 14:22:51 2010 -0400

    move url shortener superclass to lib from plugin

commit 9c0c9863d5
Author: Evan Prodromou <evan@status.net>
Date:   Sat Apr 24 14:20:28 2010 -0400

    documentation and whitespace on UrlShortenerPlugin

commit 7a1dd5798f
Author: Evan Prodromou <evan@status.net>
Date:   Sat Apr 24 14:05:46 2010 -0400

    add defaults for URL shortening

commit d259c37ad2
Author: Evan Prodromou <evan@status.net>
Date:   Sat Apr 24 13:40:10 2010 -0400

    Add User_urlshortener_prefs

    Add a table for URL shortener prefs, a corresponding class, and the
    correct mumbo-jumbo in statusnet.ini to make everything work.
2010-04-26 02:40:36 -04:00
Brion Vibber dd7b95c2cf Merge branch 'master' into testing 2010-04-23 14:26:57 -07:00
Brion Vibber 7bdea95ccb Fix to make blowing of replies stream cache more consistent when receiving replies. (Was being done at mail notify time instead of at save time for local replies; now moved to reply save time internally so it can't get forgotten) 2010-04-23 06:55:46 -07:00
Brion Vibber df41287226 Merge branch 'testing' of gitorious.org:statusnet/mainline into 0.9.x 2010-04-20 13:52:58 +02:00
Brion Vibber 61098faf5d Merge branch 'master' of gitorious.org:statusnet/mainline into testing 2010-04-20 13:52:18 +02:00
Brion Vibber c48caa85e1 Fix email notifications for @-replies that come via OStatus.
* Moved notification sending from Notice::saveReplies to distrib queue handler, so it'll pull from the reply set we've saved regardless of how we got it.
* Set up gettext infrastructure for command-line scripts; gets localization mail notifications etc working from background queues.
* Adjusted locale switching: common_switch_locale() works at runtime for bg scripts, forces a message catalog update
2010-04-20 13:49:29 +02:00
Craig Andrews 39392e03a7 Merge branch '0.9.x' into 1.0.x
Conflicts:
	actions/confirmaddress.php
	actions/imsettings.php
2010-04-18 19:21:15 -04:00
Brion Vibber f789928942 Merge branch 'testing' into 0.9.x 2010-04-14 11:15:48 +02:00
Brion Vibber 3da50c19df Merge branch 'master' into testing 2010-04-14 11:15:21 +02:00
Brion Vibber a21a172639 Fix for "#foo !foo" in same notice failing during save, causing failout before distribution. Move saveGroups after saveTags when saving notices; groups may save additional tags, so need to be moved after so the check for duplicates actually works. 2010-04-14 11:11:02 +02:00
Brion Vibber d445b977fc move comment to correct place 2010-04-14 11:09:54 +02:00
Brion Vibber 1eeb23e1e3 Merge branch 'testing' of gitorious.org:statusnet/mainline into 0.9.x
Conflicts:
	actions/confirmaddress.php
2010-04-10 17:56:11 -07:00
Brion Vibber edd883d3b0 Merge branch 'master' of gitorious.org:statusnet/mainline into testing 2010-04-10 17:54:37 -07:00
Brion Vibber 71c828de89 Allow blocking someone who's not currently subscribed to you (prevents seeing @-replies from them, or them subbing to you in future) 2010-04-10 17:52:40 -07:00
Siebrand Mazeland af06c554a0 * DB -> Database in message
* some translator documentation added
2010-04-11 01:08:51 +02:00
Brion Vibber 6fb60fb57f Fix for conversation check in @-reply notification email; i18n cleanup on mail messages: fixed some bad gettext usage, added trans doc comments. 2010-04-09 12:02:11 -07:00
Brion Vibber d00942cce1 Fix for conversation check in @-reply notification email; i18n cleanup on mail messages: fixed some bad gettext usage, added trans doc comments. 2010-04-09 11:56:27 -07:00
Evan Prodromou ce40425533 Merge branch 'master' of gitorious.org:statusnet/mainline 2010-04-09 14:06:24 -04:00
Brion Vibber 9cb0dab270 Run block checks on remote OStatus replies 2010-04-09 10:48:18 -07:00
Brion Vibber f5b00404d8 Merge branch 'testing' of git@gitorious.org:statusnet/mainline into 0.9.x 2010-04-09 10:47:45 -07:00
Brion Vibber 80bd77ced3 Run block checks on remote OStatus replies 2010-04-09 10:46:18 -07:00
Evan Prodromou 727ea5a516 Merge branch '0.9.x' into 1.0.x 2010-04-07 10:47:29 -04:00
Evan Prodromou 76cce8a3c5 Merge branch 'master' into 0.9.x 2010-04-07 10:46:23 -04:00
Evan Prodromou 08745e4eac Merge branch 'master' into testing 2010-04-07 10:45:44 -04:00
Evan Prodromou 82326a3b69 show PEAR_Error message, not the object 2010-04-07 10:43:14 -04:00
Brion Vibber 2f4438fe24 Merge branch '0.9.x' into 1.0.x
Conflicts:
	actions/imsettings.php
	lib/jabber.php

Made a quick attempt to merge the new JID validation into the XmppPlugin, have not had a chance to test that version live yet.
Should also move over the test cases.
2010-04-02 15:56:25 -07:00
Brion Vibber e4d934827b Merge branch 'testing' into 0.9.x 2010-04-02 15:48:39 -07:00
Brion Vibber ec24f283dd Don't save duplicate messages into a user's packed inbox. We've already got the packed box loaded at insert time, so we can simply unpack it and check before doing the update query.
Should help with dupes that come in when inbox distrib jobs die and get restarted, etc.

Conflicts:

	classes/Inbox.php

Looks like this was implemented on master recently and not copied up to testing. Merging to my version on testing as I've added some doc comments and extracted a couple functions for future ease of use.
2010-04-02 15:45:03 -07:00
Brion Vibber 61394aa8ac Don't save duplicate messages into a user's packed inbox. We've already got the packed box loaded at insert time, so we can simply unpack it and check before doing the update query.
Should help with dupes that come in when inbox distrib jobs die and get restarted, etc.
2010-04-02 15:43:30 -07:00
Brion Vibber d844e6bde5 Merge branch 'testing' of git@gitorious.org:statusnet/mainline into 0.9.x 2010-04-01 11:09:45 -07:00
Brion Vibber f1c01f9ead Temporary hack until notice_profile_id_idx is updated
to (profile_id, id) instead of (profile_id, created, id).
It's been falling back to PRIMARY instead, which is really
very inefficient for a profile that hasn't posted in a few
months. Even though forcing the index will cause a filesort,
it's usually going to be better. Even for large profiles it
seems much faster than the badly-indexed query.
2010-04-01 10:17:17 -07:00
Brion Vibber 9f2cfd20f8 Temporary hack until notice_profile_id_idx is updated
to (profile_id, id) instead of (profile_id, created, id).
It's been falling back to PRIMARY instead, which is really
very inefficient for a profile that hasn't posted in a few
months. Even though forcing the index will cause a filesort,
it's usually going to be better. Even for large profiles it
seems much faster than the badly-indexed query.
2010-04-01 10:15:40 -07:00
Evan Prodromou 9efe5393ff Revert "Revert "don't insert the same notice twice into an inbox""
This reverts commit a09b27ff41.
2010-04-01 12:57:52 -04:00
Evan Prodromou a09b27ff41 Revert "don't insert the same notice twice into an inbox"
This reverts commit 650074c648.
2010-04-01 12:52:26 -04:00
Evan Prodromou 650074c648 don't insert the same notice twice into an inbox 2010-03-31 15:54:35 -04:00
Brion Vibber df9eb4164a Merge branch 'testing' of git@gitorious.org:statusnet/mainline into 0.9.x 2010-03-31 12:48:24 -07:00
Brion Vibber 3ed88938b9 Merge branch 'master' of git@gitorious.org:statusnet/mainline into testing 2010-03-31 12:47:42 -07:00
Evan Prodromou d3f995846b use Subscription::cancel() to cancel all subscriptions on block 2010-03-31 15:20:16 -04:00
Evan Prodromou c1c7feedbd do complete unsubscribe process when deleting a user 2010-03-31 15:02:19 -04:00
Brion Vibber 01a03e34c8 Merge branch '0.9.x' into 1.0.x 2010-03-29 15:15:51 -07:00
Brion Vibber cfeb1bfa41 Merge branch 'testing' into 0.9.x 2010-03-29 15:15:11 -07:00
Brion Vibber 873b832827 Merge branch 'master' into testing
Conflicts:
	plugins/Blacklist/BlacklistPlugin.php
2010-03-29 15:14:25 -07:00
Brion Vibber d44e5ac935 Add $config['db']['annotate_queries'] option to include caller ID comments into queries. Comment can then be seen in process list, slow query logs on the server, aiding in tracking down unexpected slow queries.
SELECT /* queuedaemon.php Ostatus_profile->processPost */ * FROM notice WHERE ( notice.uri = 'http://stormcloud.local/mublog2/notice/479' )
INSERT /* POST Notice::saveNew */ INTO notice (profile_id , content ....
2010-03-29 13:14:11 -07:00
Evan Prodromou f0d905112e Merge branch 'master' into 0.9.x
Conflicts:
	lib/attachmentlist.php
2010-03-28 15:25:02 -04:00
Evan Prodromou 65766a0ebe continue deleting even if user profile record is missing 2010-03-28 11:58:16 -04:00
Nick Holliday 92ded7c6cb Fixes problem with IRC URLs showing as attachments 2010-03-26 18:16:44 -04:00
Brion Vibber abf2ce873b Avoid notice when reporting DB errors for objects that don't have an 'id' field 2010-03-24 14:18:25 -07:00
Brion Vibber c3ceaa893f Merge branch '0.9.x' of git@gitorious.org:statusnet/mainline into 1.0.x 2010-03-24 14:11:01 -07:00
Brion Vibber ecb009bcf5 Merge branch 'testing' of git@gitorious.org:statusnet/mainline into 0.9.x 2010-03-24 13:57:20 -07:00
Brion Vibber 13d59e0c76 fixup_deletions.php script to look for notices posted by now-deleted profiles and remove them. 2010-03-23 17:24:01 -07:00
Brion Vibber 7277b59734 Merge branch 'master' of git@gitorious.org:statusnet/mainline into testing 2010-03-23 12:13:32 -07:00
Brion Vibber 44caa3a93f Consistently send Profiles into Fave::addNew() 2010-03-23 11:08:30 -07:00
Brion Vibber 533a3bf6a3 Consistently send Profiles into Fave::addNew() 2010-03-23 11:06:37 -07:00
Brion Vibber 80b16c8499 Don't add PHPSESSID parameter onto notice and conversation URIs if we save a notice during a session override.
This was being triggered by welcomebot messages created at account creation time, then propagated through replies.
2010-03-23 09:56:05 -07:00
Brion Vibber 2d79455a1f Don't add PHPSESSID parameter onto notice and conversation URIs if we save a notice during a session override.
This was being triggered by welcomebot messages created at account creation time, then propagated through replies.
2010-03-23 09:54:24 -07:00
Brion Vibber e89908f261 Merge branch '0.9.x' of git@gitorious.org:statusnet/mainline into 1.0.x
Conflicts:
	lib/channel.php
	scripts/imdaemon.php
2010-03-22 13:56:16 -07:00
Craig Andrews c85228eadc blowSubscriberCount and blowSubscriptionCount - no 's' 2010-03-22 14:22:18 -04:00
Brion Vibber 5e54e7b55d Throw an exception when an undefined method is called on one of our DB_DataObjects, instead of failing silently.
The magic __call() method is used to implement a getter and setter interface, and simply didn't bother to throw an error for things it didn't recognize.

This may expose a number of existing errors where mistyped method names are called and we're not noticing that they're failing.
2010-03-19 12:38:14 -07:00
Brion Vibber 5c314c2288 Drop result ID from data objects on clone(). This keeps the original object working if it was in the middle of a query loop, even if the cloned object falls out of scope and triggers its destructor.
This bug was hitting a number of places where we had the pattern:

$db->find();
while($dbo->fetch()) {
  $x = clone($dbo);
  // do anything with $x other than storing it in an array
}

The cloned object's destructor would trigger on the second run through the loop, freeing the database result set -- not really what we wanted.
(Loops that stored the clones into an array were fine, since the clones stay in scope in the array longer than the original does.)

Detaching the database result from the clone lets us work with its data without interfering with the rest of the query.
In the unlikely even that somebody is making clones in the middle of a query, then trying to continue the query with the clone instead of the original object, well they're gonna be broken now.
2010-03-19 11:18:27 -07:00
Brion Vibber 1301877dfe OStatus discover fixes:
* Subscription::start was sometimes passing users instead of profiles to hooks, which broke OStatus subscription notifications; now normalizing to profiles for processing.
* H-card parsing would trigger a lot of PHP warnings and notices in hKit. Now suppressing warnings and notices for the duration of the call to keep them out of output when display_errors is on.
* H-card parsing would trigger a PHP fatal error if the source page was not well-formed XML and Tidy was not present on the system. Switched normalization to use the PHP DOM module which is always present, as we have no need for Tidy's extra features here.
* Trying to fetch avatars from Google profiles failed and triggered a PHP warning due to the relative URL not being resolved during h-card parsing. Now passing profile page URL into hKit by sneaking a <base> tag in while we normalize the HTML source.
* Profile pages without a "Link" header could trigger PHP notices due to a bad NULL -> array(NULL) conversion in LinkHeader::getLink(). Now checking that there was a return value before converting single return value into array.
2010-03-18 17:08:19 -07:00
Brion Vibber cac9d23498 Fix for xmpp/sms notification options appearing to be disabled on new subscriptions.
Base problem is that our caching-on-insert interferes with relying on column default values; the cached object is missing those fields, so they appear to be empty (null) when the object is retrieved from cache.
Now explicitly setting them when inserting subscriptions, and cleaned up some code that had alternate code paths.

May also have made auto-subscription work for remote OStatus subscribers, but can't test until magic sigs are working again.
2010-03-18 14:26:32 -07:00
Brion Vibber 1de7badd78 Merge branch 'master' of git@gitorious.org:statusnet/mainline into testing 2010-03-18 10:55:20 -07:00
Brion Vibber 515cdf28a8 Ensure that DB connection is active at start of User::updateKeys() and Foreign_user::updateKeys(); calls to $this->_quote() require a live connection object and don't lazy-initialize themselves.
May fix WSOD when changing incoming email address.
2010-03-18 09:24:55 -07:00
Evan Prodromou 425ddcaa26 add exception on inconsistent db to User::getProfile() 2010-03-18 08:35:10 -05:00
Brion Vibber ca5612c451 Merge branch 'master' into testing 2010-03-17 12:15:12 -07:00
Brion Vibber dacd0f3e6d Fix to regression for auto-subscribe - was backwards. 2010-03-17 12:14:19 -07:00
Brion Vibber 441e52718e Background deletion of user accounts. Notices are deleted in chunks, then the user itself when they're all gone.
While deletion is in progress, the account is locked with the 'deleted' role, which disables all actions with rights control.

Todo:
* Pretty up the notice on the profile page about the pending delete. Show status?
* Possibly more thorough account disabling, such as disallowing all use for login and access.
* Improve error recovery; worst case is that an account gets left locked in 'deleted' state but the queue jobs have gotten dropped out. This would leave the username in use and any undeleted notices in place.
2010-03-15 16:08:00 -07:00
Brion Vibber 9ec24f59ca Drop result ID from data objects on clone(). This keeps the original object working if it was in the middle of a query loop, even if the cloned object falls out of scope and triggers its destructor.
This bug was hitting a number of places where we had the pattern:

$db->find();
while($dbo->fetch()) {
  $x = clone($dbo);
  // do anything with $x other than storing it in an array
}

The cloned object's destructor would trigger on the second run through the loop, freeing the database result set -- not really what we wanted.
(Loops that stored the clones into an array were fine, since the clones stay in scope in the array longer than the original does.)

Detaching the database result from the clone lets us work with its data without interfering with the rest of the query.
In the unlikely even that somebody is making clones in the middle of a query, then trying to continue the query with the clone instead of the original object, well they're gonna be broken now.
2010-03-15 15:58:55 -07:00
Brion Vibber cb471e0c96 Blow more timeline caches on notice delete. Fixes paging on public and profile timelines after deleting something from the first page. 2010-03-15 14:19:22 -07:00
Brion Vibber f72eb17304 Merge commit 'origin/testing' into 0.9.x 2010-03-12 09:41:49 -08:00
Zach Copley 78f0d6bbd2 Scrub all atom output with common_xml_safe_str() 2010-03-12 01:12:30 +00:00
Zach Copley 7cdcb89dc9 Add id and updated elements to atom source 2010-03-12 00:36:26 +00:00
Craig Andrews 74fd755556 A null mimetype is not an enclosure (more likely than not means there was an error) 2010-03-11 17:27:25 -05:00
Sarven Capadisli 4c320872d9 Merge branch 'testing' of git@gitorious.org:statusnet/mainline into 0.9.x 2010-03-11 16:39:07 -05:00
Brion Vibber ce92bc7143 Drop timestamp cutoff parameter from User::getCurrentNotice() and Profile::getCurrentNotice().
It's not currently used, and won't be efficient when we update the notice.profile_id_idx index to optimize for our id-based sorting when pulling user post lists for profile pages, feeds etc.
2010-03-11 11:01:01 -08:00
Brion Vibber c6f09306b1 Merge branch 'testing' of git@gitorious.org:statusnet/mainline into 0.9.x 2010-03-10 17:04:51 -08:00
Brion Vibber 294b290dd9 Fixup script for files w/ bogus data saved into file record ('h bug') 2010-03-10 15:13:16 -08:00
Brion Vibber f02cb7c718 Fix for attachment "h bug": posting a shortened link to an oembed-able resource that has been previously used in the system would incorrectly save "h" as the item's type and title. 2010-03-10 15:13:16 -08:00
Craig Andrews 714d920fae Merge branch '0.9.x' into 1.0.x
Conflicts:
	classes/statusnet.ini
	db/statusnet.sql
	lib/jabber.php
	lib/xmppmanager.php
2010-03-08 17:22:23 -05:00
Jeffery To ef3991dbbe Fixed warning messages when auto-registering a new LDAP user.
On my test system (without memcache), while testing the LDAP
authentication plugin, when I sign in for the first time, triggering
auto-registration, I get these messages in the output page:

Warning: ksort() expects parameter 1 to be array, null given in /home/jeff/Documents/code/statusnet/classes/Memcached_DataObject.php  on line 219

Warning: Invalid argument supplied for foreach() in /home/jeff/Documents/code/statusnet/classes/Memcached_DataObject.php on line 224

Warning: assert() [function.assert]: Assertion failed in /home/jeff/Documents/code/statusnet/classes/Memcached_DataObject.php on line 241

(plus two "Cannot modify header information..." messages as a result of
the above warnings)

This change appears to fix this (although I can't really explain exactly
why).
2010-03-08 13:15:49 -05:00
Ciaran Gultnieks 8029faadae Fixed problem causing 500 error on notices containing a non-existent group 2010-03-06 00:30:15 +00:00
Zach Copley b8001ea107 Merge branch '0.9.x' of git@gitorious.org:statusnet/mainline into 0.9.x 2010-03-05 03:56:04 +00:00
Zach Copley e3c4b0c85d A better way to safely delete Foreign_links 2010-03-05 03:55:56 +00:00
Zach Copley 6a377a4ba4 A better way to safely delete Foreign_links 2010-03-05 03:14:40 +00:00
Brion Vibber b218aee94e Merge commit 'origin/testing' into 0.9.x
Conflicts:
	lib/action.php
	lib/adminpanelaction.php
2010-03-04 06:07:28 -08:00
Zach Copley f210cadfec Revert "Revert "Show <activity:subject> and no activity actors for user feed""
This reverts commit e2578cfad6.
2010-03-03 20:58:34 -08:00
Brion Vibber 4a2511139e Initial user role controls on profile pages, for owner to add/remove administrator and moderator options.
Buttons need to be themed.
2010-03-03 15:43:49 -08:00
Brion Vibber 7e5bf39f76 Avoid notice on local group creation when uri isn't passed in at create time (needs to be generated) 2010-03-03 12:57:40 -08:00
Brion Vibber 3bb42d1170 Use poster's subscribed groups to disambiguate group linking when a remote group and a local group exist with the same name. (If you're a member of two groups with the same name though, there's not a defined winner.) 2010-03-03 19:00:02 +00:00
Brion Vibber 79ffebb51b OStatus: save file records for enclosures
Also stripping id from foreign HTML messages (could interfere with UI) and disabled failing attachment popup for a.attachment links that don't have a proper id, so you can click through instead of getting an error.

Issues:
* any other links aren't marked and saved
* inconsistent behavior between local and remote attachments (local displays in lightbox, remote doesn't)
* if the enclosure'd object isn't referenced in the content, you won't be offered a link to it in our UI
2010-03-02 16:36:08 -08:00
Craig Andrews c30f95c55c Updated some references to the long gnone "isEnclosure" function to the new "getEnclosure" 2010-03-02 14:25:06 -08:00
Brion Vibber ddf3614c84 Merge branch 'testing' of git@gitorious.org:statusnet/mainline into 0.9.x 2010-03-02 13:38:10 -08:00
Brion Vibber 72460091dd Merge branch 'master' of git@gitorious.org:statusnet/mainline into testing 2010-03-02 12:21:48 -08:00
Brion Vibber 6b134ae4c7 Dropped deprecated timestamp-based 'since' parameter for all API methods. When it sneaks in it can cause some very slow queries due to mismatches with the indexing.
Twitter removed 'since' support some time ago, and we've already removed it from the public timeline, so it shouldn't be missed.
2010-03-02 11:54:02 -08:00
Evan Prodromou e2578cfad6 Revert "Show <activity:subject> and no activity actors for user feed"
This reverts commit c25fc8a4b5.
2010-03-02 03:40:43 -05:00
Evan Prodromou 40ac724797 don't duplicate title in summary in Atom output per RFC4287 4.2.13 2010-03-02 03:13:05 -05:00
Evan Prodromou c25fc8a4b5 Show <activity:subject> and no activity actors for user feed
We only need one author for user feeds: the user themselves. So, show
the user as the activity:subject, and don't repeat the same
activity:actor for every notice unnecessarily.
2010-03-02 02:54:52 -05:00
Craig Andrews a0114f2006 Correctly handle the case when MIME/Type doesn't know what file extension a mime type maps to 2010-03-01 21:44:42 -05:00
Evan Prodromou 17c2c793a5 Remove check for secret in token deletion on Subscription::cancel() 2010-03-01 18:03:17 -05:00
Evan Prodromou 48ce511f94 Better logging on bad token in subscription 2010-03-01 18:03:17 -05:00
Evan Prodromou 320036dbfb drop tokens for OMB on unsubscribe 2010-03-01 18:03:17 -05:00
Evan Prodromou f00e8bbf47 Merge branch 'testing' into 0.9.x 2010-02-27 17:07:57 -05:00
Evan Prodromou 04c4facba9 fix call of common_find_mentions() in Notice::saveReplies() 2010-02-27 16:30:38 -05:00
Evan Prodromou 4d9daf2149 Use notice for context when deciding who @nickname refers to
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-27 16:06:46 -05:00
Siebrand Mazeland b701f5648d uri -> URI in interface text 2010-02-27 18:51:49 +01:00
Evan Prodromou a5cfda8505 blow cache on known replies 2010-02-26 17:47:39 -05:00
Craig Andrews 410cd52434 bail out if the requested nickname is illegal 2010-02-26 15:51:25 -05:00
Brion Vibber 8dfc8f1635 Merge branch 'testing' into 0.9.x 2010-02-26 09:35:28 -08:00
Brion Vibber 3aee8e0448 Fix a few keys that got dropped from statusnet.ini by mistake 2010-02-25 21:46:53 -08:00
Zach Copley 7922edb5b6 Add lots of fun avatars to our Atom output 2010-02-25 16:06:49 -08:00
Zach Copley e61edb55d9 Rationalize group activity stuff 2010-02-25 13:34:43 -08:00
Brion Vibber fb8b8615b0 Merge branch 'testing' of gitorious.org:statusnet/mainline into testing 2010-02-25 11:27:21 -08:00
Brion Vibber 79c0d52daa OStatus: save categories from the Atom entry as hashtags. 2010-02-25 11:26:33 -08:00
Evan Prodromou 2f03b2cc45 method for getting a group's URI 2010-02-25 12:15:26 -05:00
Evan Prodromou d53b4b9b84 save mainpage element for groups 2010-02-25 12:05:22 -05:00
Evan Prodromou 8f42d37593 Add 'mainpage' to User_group
Add the mainpage attribute to user_group objects.
2010-02-25 09:24:29 -05:00
Evan Prodromou e6858d7203 modify group actions so they use Local_group to look up by nickname 2010-02-25 08:44:15 -05:00
Evan Prodromou ddc3671b6a recover user_openid tables, which got lost in generation 2010-02-24 23:32:20 -05:00
Evan Prodromou 68a10970f9 fixup exe bits 2010-02-24 23:30:14 -05:00
Evan Prodromou bd68154772 Make user_group able to handle remote groups
We add a local_group table to store data about local groups. It has
the unique key for nickname, so /group/<nickname> looks up here.

Updated DB data object classes and data files.
2010-02-24 23:28:41 -05:00
Craig Andrews c187bf5597 Merge branch '0.9.x' into 1.0.x
Conflicts:
	EVENTS.txt
	db/statusnet.sql
	lib/queuemanager.php
2010-02-24 20:52:45 -05:00
Brion Vibber 59be4b8cae Merge branch 'testing' of gitorious.org:statusnet/mainline into 0.9.x 2010-02-24 15:47:51 -08:00
Brion Vibber 2aaf8d4e30 Add class and (if present) id to DB_DataObject error exceptions; often they're VERRRRRY vague, and it helps to know what type of item is failing! 2010-02-24 01:09:12 +00:00
Zach Copley 89dc6dee01 Add PoCo namespace to optional ns output in Notice::asAtomEntry() 2010-02-22 17:56:43 -08:00
Zach Copley cbf6ebae01 Merge branch 'rationalize-activity' into testing
* rationalize-activity:
  Move ActivityObject and related stuff to core
  Add PoCo bits, avatar link, geo point, etc. to person activity obj output
2010-02-22 17:12:33 -08:00
Zach Copley 6a711c6cdc Move ActivityObject and related stuff to core 2010-02-22 17:10:50 -08:00
Brion Vibber d410df0406 OStatus group delivery initial implementation.
- 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-23 00:44:45 +00:00
Evan Prodromou b79d4ed6a1 add PoCo preferredUsername for nickname in Profile::asActivityNoun() 2010-02-22 07:43:12 -05:00
Evan Prodromou fae5a15a88 add strongly-suggested link to Profile::asActivityNoun() 2010-02-22 07:40:20 -05:00
Zach Copley 35be39e30e Merge branch 'testing' of git@gitorious.org:statusnet/mainline into testing 2010-02-22 01:23:24 -08:00
Zach Copley 47300a2ae9 Upgrade profile-based activity noun to have more complete set of
profile fields
2010-02-22 01:21:34 -08:00
Evan Prodromou 891e002883 don't calculate replies for remote notices 2010-02-21 23:56:48 -05:00
Evan Prodromou a745d38d6d slight rearrangement of getting profile URIs 2010-02-21 22:52:27 -05:00
Evan Prodromou ab3db8c899 Combine code that finds mentions into one place and add hook points
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-21 16:20:30 -05:00
Brion Vibber 85528ccb1f Merge branch 'testing' of gitorious.org:statusnet/mainline into 0.9.x 2010-02-21 11:12:56 -08:00
Evan Prodromou e9d22138ef permalink on a note represented by rel=alternate 2010-02-21 09:23:51 -05:00
Evan Prodromou 9498a16480 Notice::saveNew() accepts url and rendered options 2010-02-21 09:17:00 -05:00
Brion Vibber 9c2fe8492f OStatus: send favorite/unfavorite notifications to remote authors 2010-02-20 15:56:36 -08:00
Evan Prodromou 36d21fa716 Add events for favor and disfavor
Added events to core code for when someone favors or disfavors a
notice.
2010-02-20 12:03:32 -05:00
Evan Prodromou 52e8aa798a Refactor subs_* functions for remote use
The subs_* functions in subs.php have made a lot of assumptions
about users versus profiles. I've refactored the functions to
be methods of the Subscription class instead, and to use Profile
objects throughout.

Some of the checks for blocks or existing subscriptions depended
on users or profiles, so I've moved those methods around a bit.

I've left stubs for the subs_* functions until we get time to replace
them.
2010-02-19 08:16:45 -05:00
Evan Prodromou 3d665f82d1 add type='text/html' to alternate link in Notice Atom 2010-02-18 22:13:47 -05:00
Evan Prodromou c2ba764535 always distribute to inbox of author immediately 2010-02-18 07:11:20 -05:00
Brion Vibber 5a6cbb248f Merge branch 'testing' into 0.9.x 2010-02-17 10:14:08 -08:00
Zach Copley 198c046c89 - Set the root of a new local conversation to a new conversation.id
- Output conversation URIs from conversation.uri
2010-02-17 01:12:13 -08:00
Zach Copley ed46a38ecf - conversation.uri needs to be nullable
- factory method for creating new local conversations
2010-02-17 01:11:14 -08:00
Zach Copley a2f8c5da17 New Conversation DO to handle remote notices as conversation roots 2010-02-16 23:30:08 -08:00
Zach Copley 2cb243808c More sensical profile::getUri() 2010-02-16 20:13:39 -08:00
Zach Copley c892726c80 Take remote profiles into account when looking up canonical profile URIs 2010-02-16 16:22:58 -08:00
Zach Copley eea52c708b Add rel="avatar" to img links in <activity:actor> stanzas 2010-02-16 11:32:10 -08:00
Craig Andrews 20d6a7caed Merge branch '0.9.x' into 1.0.x
Conflicts:
	lib/queuemanager.php
	lib/xmppmanager.php
	plugins/Xmpp/Fake_XMPP.php
	scripts/imdaemon.php
2010-02-16 13:15:09 -05:00
Evan Prodromou 3d170bfa30 Merge branch 'testing' of git@gitorious.org:statusnet/mainline into testing 2010-02-16 12:46:02 -05:00
Evan Prodromou 71ecd68901 add a FIXME to Profile 2010-02-16 12:45:00 -05:00
Brion Vibber d5cbfe8071 Merge branch 'testing' into 0.9.x
Conflicts:
	lib/iomaster.php
2010-02-16 09:25:09 -08:00
Brion Vibber 81b6b58e33 Merge branch 'master' into testing
Conflicts:
	lib/stompqueuemanager.php
2010-02-16 09:22:02 -08:00
Brion Vibber c74aea589d Stomp queue restructuring for mass scalability:
- Multiplexing queues into groups and for multiple sites.
- Sharing vs breakout configurable per site and per queue via $config['queue']['breakout']
- Detect how many times a message is redelivered, discard if it's killed too many daemons
 - count configurable with $config['queue']['max_retries']
 - can dump the items to files in $config['queue']['dead_letter_dir']

Queue daemon memory & resource leak fixes:
- avoid unnecessary reconnections to memcached server (switch persistent connections back in on second initialization, assuming it's child process)
- monkey-patch for leaky .ini loads in DB_DataObject::databaseStructure() - was leaking 200k per active switch
- applied leak fixes to Status_network as well, using intermediate base Safe_DataObject for both it and Memcache_DataObject

Misc queue fixes:
- correct handling of child processes exiting due to signal termination instead of regular exit
- shutdown instead of infinite respawn loop if we're already past the soft memory limit at startup
- Added --all option for xmppdaemon... still opens one xmpp connection per site that has xmpp active

Cache updates:
- add Cache::increment() method with native support for memcached atomic increment
2010-02-16 09:16:51 -08:00
Craig Andrews 32084e33a2 Merge branch '0.9.x' into 1.0.x
Conflicts:
	lib/queuemanager.php
2010-02-16 10:25:57 -05:00
Evan Prodromou 269b4711eb Merge branch 'ssleverything' into testing 2010-02-13 12:39:15 -05:00
Brion Vibber f8a459a88a Merge branch 'testing' of git@gitorious.org:statusnet/mainline into 0.9.x 2010-02-12 15:32:12 -08:00
Brion Vibber d6f1df8b76 fix for Atom notice output: correct check against conversation & current id 2010-02-12 15:30:23 -08:00
Zach Copley 506c2d7491 Initial upgraded Atom output for group timelines 2010-02-12 12:24:29 -08:00
Brion Vibber 122c8677b7 Merge branch 'testing' of gitorious.org:statusnet/mainline into 0.9.x 2010-02-12 11:18:35 -08:00
Brion Vibber fd3c9334bf PHP 5.3 compatibility hack for DB_DataObject
statusnet.links.ini file could not be read anymore due to the entry for nonce containing a comma in its key value.
PHP's parse_ini_file() function no longer allows commas in keys, and rejects the *ENTIRE FILE* if it's present, breaking various automatic joins.
2010-02-12 11:15:12 -08:00
Brion Vibber b39047d95b OStatus: prep work for sending notifications on sub/unsub/join/leave/favorite/unfavorite via Salmon; needs to be completed and hooked up once feed gen is fixed. 2010-02-12 18:54:48 +00:00
Zach Copley 525358fa10 Fix retarded spelling mistake 2010-02-11 17:08:50 -08:00
Zach Copley 3beddffc39 ostatus:attention links in Notice Atom output 2010-02-11 16:29:27 -08:00
Evan Prodromou 31461e120f let files go to SSL dir too 2010-02-11 17:06:57 -05:00
Evan Prodromou 3018683718 let backgrounds be put under SSL 2010-02-11 17:03:31 -05:00
Zach Copley e2c0f59414 Some upgrades to Atom output for OStatus 2010-02-11 13:56:05 -08:00
Evan Prodromou d6869cde7b let avatars be served over SSL 2010-02-11 16:51:15 -05:00
Brion Vibber 8449256817 OStatus partial support for group subscriptions:
* 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-09 18:32:52 -08:00
Brion Vibber b2e8d8407c Merge branch 'testing' of git@gitorious.org:statusnet/mainline into 0.9.x 2010-02-08 15:48:52 -08:00
Brion Vibber 384387c9b0 OStatus cleanup...
* 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-08 14:58:12 -08:00
Evan Prodromou 5fdcd88176 Moderator can make users admins of a group 2010-02-06 11:36:59 +01:00
Brion Vibber 875e1a70ce Don't spew warnings on usage of MEMCACHE_COMPRESSED constant when memcache PHP extension is not present.
Switched to a locally-defined Cache::COMPRESSED, translating that to MEMCACHE_COMPRESSED in the plugin.
2010-02-05 09:47:56 -08:00
Zach Copley 23802e58d6 Merge branch 'temp' 2010-02-05 03:19:12 +00:00
Zach Copley 208eec6511 OAuth app name should not be null 2010-02-05 03:18:45 +00:00
Zach Copley e495ac356c Allow developers to delete OAuth applications 2010-02-05 03:18:43 +00:00
Zach Copley dc183f23cf OAuth app names should be unique. 2010-02-05 03:18:43 +00:00
Zach Copley 03fefb86bd Merge branch '0.9.x' of git@gitorious.org:statusnet/mainline into 0.9.x 2010-02-05 02:10:35 +00:00
Zach Copley 4180ab74d9 OAuth app name should not be null 2010-02-05 02:09:58 +00:00
Zach Copley 8d320d7cc2 Merge branch 'testing' of git@gitorious.org:statusnet/mainline into testing 2010-02-05 02:08:37 +00:00
Zach Copley 82f1119073 OAuth app name should not be null 2010-02-05 01:24:21 +00:00
Brion Vibber 941d0433cf Merge branch 'testing' of gitorious.org:statusnet/mainline into 0.9.x 2010-02-04 15:20:17 -08:00
Brion Vibber 509c8fc515 Merge branch 'master' into testing - drop debug statements 2010-02-04 15:19:09 -08:00
Brion Vibber 4502bea9a8 drop debug messages from inbox deletion fix 2010-02-04 15:16:27 -08:00
Brion Vibber bb16898b1c Inbox::streamNotices() with deletion compensation: inbox paging should more or less work with deleted items now.
No change in efficiency for the common case where nothing's deleted: does the same bulk fetch of just the notices we think we'll need as before, then if we turned up short keeps checking one by one until we've filled up to our $limit.

This can leave us with overlap between pages, but we already have that when new messages come in between clicks; seems to be the lesser of evils versus not getting a 'before' button.
More permanent fix for that will be to switch timeline paging in the UI to use notice IDs.
2010-02-04 15:15:42 -08:00
Brion Vibber 9554b4ccbf Inbox::streamNotices() with deletion compensation: inbox paging should more or less work with deleted items now.
No change in efficiency for the common case where nothing's deleted: does the same bulk fetch of just the notices we think we'll need as before, then if we turned up short keeps checking one by one until we've filled up to our $limit.

This can leave us with overlap between pages, but we already have that when new messages come in between clicks; seems to be the lesser of evils versus not getting a 'before' button.
More permanent fix for that will be to switch timeline paging in the UI to use notice IDs.
2010-02-04 15:09:04 -08:00
Brion Vibber c59eee72a8 Merge branch 'testing' of gitorious.org:statusnet/mainline into 0.9.x 2010-02-04 12:23:56 -08:00
Brion Vibber a020e23086 Merge branch 'master' of gitorious.org:statusnet/mainline into testing 2010-02-04 11:56:07 -08:00
Evan Prodromou dbeb388ade clear cache for Profile::hasRepeated() at Notice::insert() time 2010-02-03 12:31:25 -05:00
Evan Prodromou 20953ea3de Merge branch 'master' of git@gitorious.org:statusnet/mainline 2010-02-03 11:53:54 -05:00
Evan Prodromou 6215b9788c add nickname as unique key for user_group table 2010-02-03 11:53:31 -05:00
Craig Andrews 057ec1fcea Merge branch '0.9.x' into 1.0.x
Conflicts:
	EVENTS.txt
	lib/imqueuehandler.php
	lib/jabber.php
	lib/util.php
	plugins/Xmpp/Sharing_XMPP.php
2010-02-02 17:00:10 -05:00
Brion Vibber f4c81fa1e1 Merge branch 'testing' of git@gitorious.org:statusnet/mainline into 0.9.x 2010-02-02 09:57:50 -08:00
Brion Vibber 51c3606715 Fix regression breaking file attachments. This is what I get for rushing fixes and not properly testing them. :P 2010-02-02 09:32:28 -08:00
Brion Vibber 027c7e61fd Fix regression breaking file attachments. This is what I get for rushing fixes and not properly testing them. :P 2010-02-02 09:30:15 -08:00
Zach Copley f0875ceea1 Allow developers to delete OAuth applications 2010-02-02 08:50:18 +00:00
Zach Copley df2a081265 OAuth app names should be unique. 2010-02-02 08:50:01 +00:00
Zach Copley 38bebb4c0d Allow developers to delete OAuth applications 2010-02-02 06:26:03 +00:00
Zach Copley 59d16cf16a OAuth app names should be unique. 2010-02-01 20:58:30 +00:00
Brion Vibber c14ac57b19 Merge branch 'testing' of git@gitorious.org:statusnet/mainline into 0.9.x 2010-02-01 10:30:45 -08:00
Brion Vibber 6159edcebb Improve name validation checks on local File references 2010-02-01 08:49:59 -08:00
Brion Vibber 84ab0156b4 Improve name validation checks on local File references 2010-02-01 08:48:31 -08:00
Evan Prodromou f9cb1c3265 restructuring of User::registerNew() lost password munging 2010-02-01 00:47:50 -05:00
Evan Prodromou fb36094eb1 buggy fetch for site owner 2010-01-31 22:55:07 -05:00
Evan Prodromou 779204b194 Merge branch 'testing' into 0.9.x
Conflicts:
	actions/apioauthauthorize.php
2010-01-31 15:27:58 -05:00
Evan Prodromou fec8066bf7 error clearing tags for profiles from memcached 2010-01-30 14:37:39 -05:00
Evan Prodromou 8cb8b357a4 add hooks for user registration 2010-01-29 17:54:54 -05:00
Evan Prodromou 70a4f8c0e2 method to get the site owner 2010-01-29 15:15:23 -05:00
Evan Prodromou d437b76ed1 define a constant for the 'owner' role of a site 2010-01-29 15:15:04 -05:00
Evan Prodromou f6eecf02fc add simple cache getter/setter static functions to Memcached_DataObject 2010-01-29 15:01:21 -05:00
Brion Vibber 864ce8e276 Fixes for status_network db object .ini and tag setter script 2010-01-28 20:09:17 -08:00
Evan Prodromou d13d73c563 Last-chance distribution if enqueueing fails 2010-01-28 16:53:37 -08:00
Evan Prodromou 513f8be07a hide most DB_DataObject errors 2010-01-28 16:26:55 -05:00
Evan Prodromou d5f86f7a8a Merge branch 'master' of git@gitorious.org:statusnet/mainline 2010-01-28 13:54:19 -05:00
Evan Prodromou 84b5480007 update mysqltimestamps on insert and update 2010-01-28 13:54:01 -05:00
Evan Prodromou c81318d3ca additional debugging data for Sessions 2010-01-28 13:53:28 -05:00
Brion Vibber ffaaf9de4a Don't preemptively close existing DB connections for web views (needed to keep # of conns from going insane on multi-site queue daemons, so just doing for CLI)
May, or may not, help with mystery session problems
2010-01-27 23:51:22 -08:00
Brion Vibber 644c319f5a fix notice -- drop unused return value of variable that isn't initialized :) thx @ g0 for the catch 2010-01-27 19:59:25 -08:00
Craig Andrews 914bc9f9c5 Merge branch '0.9.x' into 1.0.x
Conflicts:
	lib/queuemanager.php
2010-01-27 22:07:04 -05:00
Brion Vibber 3abfb454a3 Adds an emergency switch so we can run inbox distribution at save time (bypassing 'distrib' queue)
Set $config['queue']['inboxes'] = false to do so
2010-01-27 18:39:17 -08:00
Zach Copley 78079f34e2 Merge branch 'testing' into -1.9.x
* testing: (130 commits)
  HTTP auth provided is evaluated even if it's not required
  Rename rc3to09.sql to rc3torc4.sql to avoid confusion if we add a last-minute change after this!
  Add new oauth tables and modifications to 'consumer' table for rc4
  Centred leaderboard ad
  camelcase the uap param names
  move leaderboard to after the header
  Moved rectangle ad into aside and leaderboard to the right in header.
  Aligning wide skyscraper to the right instead of left
  CSS ids and classes fixed in UAPPlugin
  wrong height for rectangle in BlankAd
  Add the moved BlankAdPlugin
  make BlankAd dir and change to use a 1x1 image
  move BlankAdPlugin to its own dir
  Add BlankAdPlugin to test ad layout in different themes
  make uapplugin an abstract class
  move UAP plugin to core
  Lowercased switch cases in UAP Plugin
  Plugin for Universal Ad Package. Outputs four most widely used ad types.
  Add persistent:true property to Stomp messages so ActiveMQ doesn't decide to discard them even though persistence is enabled on the broker. :) (Thanks Aric!)
  quick fix: use common_path() on realtime update JS so it works with the new JS path code (will pull from main server for now)
  ...

Conflicts:
	actions/apioauthaccesstoken.php
	actions/apioauthauthorize.php
	actions/apioauthrequesttoken.php
	actions/editapplication.php
	actions/newapplication.php
	lib/apiauth.php
	lib/queuemanager.php
	lib/router.php
2010-01-27 14:27:22 -08:00
Craig Andrews e9995b0f6a Create IM plugin, Pluginize XMPP, Create AIM plugin 2010-01-27 13:48:35 -05:00
Brion Vibber 58be61b641 Control channel for queue daemons to request graceful shutdown, restart, or update to listen to a newly added or reconfigured site.
queuectl.php --update -s<site>
  queuectl.php --stop
  queuectl.php --restart

Default control channel is /topic/statusnet-control. For external utilities to send a site update ping direct to the queue server, connect via Stomp and send a message formatted thus:

  update:<nickname>

(Nickname here, *not* server hostname! The rest of the queues will be updated to use nicknames later.)

Note that all currently-connected queue daemons will get these notifications, including both queuedaemon.php and xmppdaemon.php. (XMPP will ignore site update requests for sites that it's not handling.)

Limitations:
* only implemented for stomp queue manager so far
* --update may not yet handle a changed server name properly
* --restart won't reload PHP code files that were already loaded at startup. Still need to stop and restart the daemons from 'outside' when updating code base.
2010-01-26 11:49:49 -08:00
Brion Vibber ad6f0501ff Site metadata tags in status_network: single 'tags' field, pipe-separated.
$sn->tags() returns tag list as array; $sn->hasTag('blah') to check for a particular tag only

Could be used to control things in config file:

  $sn = Status_network::setupSite($_server, $_path, $_wildcard);
  if (!$sn) { die("No such site"); }
  if ($sn->hasTag('individual')) { /* blah */ }

Note memcached keys are unchanged; if tags are changed from an external tool clear:
  statusnet:<dbname>:status_network:<key>:<val>
  for <key>s 'nickname', 'hostname', and 'pathname'
2010-01-26 10:33:20 -08:00
Evan Prodromou 663e4e02a1 Merge branch 'master' into testing
Conflicts:
	lib/queuemanager.php
2010-01-25 18:13:09 -05:00
Evan Prodromou b6aa1511eb Merge branch 'master' into 0.9.x 2010-01-25 18:10:59 -05:00
Evan Prodromou e26a843caf Offload inbox updates to a queue handler to speed up posting online
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-25 18:08:21 -05:00
Evan Prodromou 536170d788 Merge branch 'testing' of git@gitorious.org:statusnet/mainline into testing 2010-01-24 22:42:29 -05:00
Evan Prodromou e6cf293db8 Recover caching logic lost in bad merge
I made a bad merge on Jan 10th from master to 0.9.x. This lost a number
of memcache enhancements made on the 0.9.x branch. I've been able to
re-do the manual merge, and this represents the changes. Most of them
are related to caching on insert.
2010-01-24 22:39:32 -05:00
Zach Copley 6efbf2777a Add verifier and verified callback to token for OAuth 1.0a 2010-01-24 16:36:05 -08:00
Zach Copley d33040089d Remove verifier from Oauth_application_user (not needed there) 2010-01-24 16:36:05 -08:00
Zach Copley 9e7f47652d Revoke access token UI 2010-01-24 16:36:05 -08:00
Zach Copley adfca01808 Can now edit/change application icon 2010-01-24 16:36:04 -08:00
Zach Copley c78937537e Better detial in connected OAuth applications list 2010-01-24 16:36:03 -08:00
Zach Copley c2337ab47c Decided we didn't need to keep the token secret in the
Oauth_application_user record
2010-01-24 16:36:02 -08:00
Zach Copley a0b8438773 Exchanging authorized request tokens for access tokens working 2010-01-24 16:36:02 -08:00
Zach Copley c473a39a7d Associate request tokens with OAuth apps and app users 2010-01-24 16:36:02 -08:00
Zach Copley 48e5f2b3c5 Add icons/icon upload to Oauth apps 2010-01-24 16:36:02 -08:00
Zach Copley 3c2b05d222 Workflow for registering new OAuth apps pretty much done. 2010-01-24 16:36:02 -08:00
Zach Copley 035c475b45 It might help if I checkd in statusnet.ini. 2010-01-24 16:36:02 -08:00
Zach Copley ae46bc5fff Started work on interface for displaying connected OAuth apps 2010-01-24 16:36:01 -08:00
Zach Copley efd84cadc0 Changed the OAuth app tables to refer to profiles instead of users.
Added an owner column to oauth_application.
2010-01-24 16:36:01 -08:00
Zach Copley c0b832d19f Add new OAuth application tables and DataObjects. Also add a new
column for consumer secret to consumer table.
2010-01-24 16:36:01 -08:00
Evan Prodromou 8dce24c82c save nickname and wildcard when setting up status network 2010-01-24 16:01:00 -08:00
Evan Prodromou 238998eca0 save nickname and wildcard when setting up status network 2010-01-24 18:18:24 -05:00
Brion Vibber c7507e7e9d XMPP queued output & initial retooling of DB queue manager to support non-Notice objects.
Queue handlers for XMPP individual & firehose output now send their XML stanzas
to another output queue instead of connecting directly to the chat server. This
lets us have as many general processing threads as we need, while all actual
XMPP input and output go through a single daemon with a single connection open.

This avoids problems with multiple connected resources:
* multiple windows shown in some chat clients (psi, gajim, kopete)
* extra load on server
* incoming message delivery forwarding issues

Database changes:
* queue_item drops 'notice_id' in favor of a 'frame' blob.
  This is based on Craig Andrews' work branch to generalize queues to take any
  object, but conservatively leaving out the serialization for now.
  Table updater (preserves any existing queued items) in db/rc3to09.sql

Code changes to watch out for:
* Queue handlers should now define a handle() method instead of handle_notice()
* QueueDaemon and XmppDaemon now share common i/o (IoMaster) and respawning
  thread management (RespawningDaemon) infrastructure.
* The polling XmppConfirmManager has been dropped, as the message is queued
  directly when saving IM settings.
* Enable $config['queue']['debug_memory'] to output current memory usage at
  each run through the event loop to watch for memory leaks

To do:
* Adapt XMPP i/o to component connection mode for multi-site support.
* XMPP input can also be broken out to a queue, which would allow the actual
  notice save etc to be handled by general queue threads.
* Make sure there are no problems with simply pushing serialized Notice objects
  to queues.
* Find a way to improve interactive performance of the database-backed queue
  handler; polling is pretty painful to XMPP.
* Possibly redo the way QueueHandlers are injected into a QueueManager. The
  grouping used to split out the XMPP output queue is a bit awkward.

Conflicts:

	scripts/xmppdaemon.php
2010-01-22 12:52:36 -08:00
Evan Prodromou d25bd9b292 Merge branch '0.9.x' of git@gitorious.org:statusnet/mainline into 0.9.x 2010-01-22 14:19:08 -05:00
Evan Prodromou c8bc598cfd Merge branch 'testing' into 0.9.x 2010-01-22 14:18:43 -05:00
Evan Prodromou e666433eb4 Merge branch 'master' into 0.9.x 2010-01-22 14:18:40 -05:00
Evan Prodromou 29d83c8ca9 Merge branch 'testing' of git@gitorious.org:statusnet/mainline into testing 2010-01-22 14:18:21 -05:00
Evan Prodromou a3e484a0e8 Memcached_DataObject unnecessarily require_once'd itself 2010-01-22 10:46:11 -05:00