Commit Graph

2181 Commits

Author SHA1 Message Date
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
1d64ba6602 Unimplement retweeted_by_me API action until we have a more efficient query 2010-01-21 11:38:08 -05:00
Evan Prodromou
e5eb95ab59 retweet API methods are readonly 2010-01-21 11:32:01 -05:00
Evan Prodromou
9e3013c6b6 mark retweet api actions read-only where applicable 2010-01-20 17:00:42 -05:00
Evan Prodromou
28fafe803a remove debugging statement for friends_timeline 2010-01-13 23:28:51 -08:00
Evan Prodromou
30e50439a3 change double quotes to single quotes in numbered format string 2010-01-13 23:17:37 -08:00
Evan Prodromou
601c371332 correct check for error in subscribe and unsubscribe actions 2010-01-13 03:01:22 -08:00
Evan Prodromou
430bd69312 add events for subscribing to people and joining groups 2010-01-13 02:16:13 -08:00
Evan Prodromou
8809e577b2 Merge branch 'sessionidparam' into 0.9.x
Conflicts:
	lib/command.php
2010-01-11 00:45:26 -08:00
Evan Prodromou
5ec25a9691 inject session before redirect for login 2010-01-11 08:40:22 +00:00
Evan Prodromou
54d532e12f remove redirect to OTP on login from login, register 2010-01-10 22:58:33 -08:00
Siebrand Mazeland
4af6b7f5c3 Lots of tiny message changes.
* Mostly punctuation updates so that the same message is used consistently in all of StatusNet.
* Some cases of "Title Case" removed, because that does not appear to be used consistently.
2010-01-10 12:26:24 +01:00
Evan Prodromou
8c6ec0b59e fix check for ssl diff in login 2010-01-10 00:23:26 -08:00
Evan Prodromou
06ed0bc791 correctly check for ssl enabled 2010-01-10 00:19:46 -08:00
Evan Prodromou
304f3b4f18 correctly check for ssl enabled 2010-01-10 00:18:17 -08:00
Siebrand Mazeland
b0aea3f9c1 * L10n updates: consistent puctuation
* i18n updates: number parameters if more than one are being used
2010-01-10 01:45:58 +01:00
Evan Prodromou
6d66a28b35 Use OTP to set cookies from registration action 2010-01-09 16:23:41 -08:00
Evan Prodromou
ed5828f30e Redirect to a one-time-password when ssl and regular server are different 2010-01-09 15:26:06 -08:00
Sarven Capadisli
5d04e45886 Updated markup for versions page 2010-01-08 11:41:12 +00:00
Sarven Capadisli
a7e73d318a Added Brigitte Schuster (http://brigitteschuster.com) as one of the
contributors to StatusNet. She created the identi.ca, laconi.ca, and
status.net logos.
2010-01-08 10:20:51 +00:00
Evan Prodromou
9fc63a56a2 make a list of plugins 2010-01-07 17:28:31 -08:00
Evan Prodromou
4a4ac7a108 add a version action to give credit and list plugins 2010-01-07 17:26:40 -08:00
Evan Prodromou
6ae6fb7a35 clear profile location data if unparseable location string 2010-01-07 15:59:07 -08:00
Ciaran Gultnieks
deeaafe712 Fixes to bugs where non-local messages were being wrong put in the public timeline and public xmpp feed 2010-01-07 20:59:31 +00:00
Zach Copley
a1c3a2d3a1 Fix broken API method /api/statusnet/groups/leave/:id.:format 2010-01-06 16:21:29 -08:00
Zach Copley
013e6dfdd4 Don't output notices from deleted users. 2010-01-06 13:40:28 -08:00
Craig Andrews
250bcfa8dc Require users to login to view attachments on private sites
Thank you jeff-themovie for this implementation!
2010-01-05 17:49:28 -05:00
Evan Prodromou
7aeb11bb07 Merge branch 'master' into 0.9.x
Conflicts:
	actions/publictagcloud.php
	classes/Memcached_DataObject.php
2010-01-04 15:14:54 -10:00
Brion Vibber
af95005bc4 Ticket 2141: bugs with weighted popularity lists across year boundary.
Consolidated several separate implementations of the same weighting algorithm into common_sql_weight() and fixed some bugs...
For MySQL, now using timestampdiff() instead of subtraction for the comparison, so we get sane results when the year doesn't match, and utc_timestamp() rather than now() so we don't get negative ages for recent items with local server timezone.
Unknown whether the same problems affect PostgreSQL, but note that it lacks the timestampdiff() SQL function.
2010-01-04 13:01:17 -08:00
Brion Vibber
6911e1c797 Ticket 2141: bugs with weighted popularity lists across year boundary.
Consolidated several separate implementations of the same weighting algorithm into common_sql_weight() and fixed some bugs...
For MySQL, now using timestampdiff() instead of subtraction for the comparison, so we get sane results when the year doesn't match, and utc_timestamp() rather than now() so we don't get negative ages for recent items with local server timezone.
Unknown whether the same problems affect PostgreSQL, but note that it lacks the timestampdiff() SQL function.
2010-01-04 11:55:27 -08:00
Brion Vibber
11d7365a15 Don't spew notices when building tag cloud if there is no popularity sum to divide by. 2010-01-04 10:39:11 -08:00
Sarven Capadisli
30f58bf15f Updated element id for notice_data-geo 2010-01-04 12:43:56 +00:00
Brion Vibber
96ce2262f8 If we got an identified location at ajax check time, renormalize lat/lon and naming. This'll match other displays of the names more consistently (Opera Plaza, San Francisco, CA, US instead of Opera Plaza, US) 2009-12-29 14:30:15 -08:00
Craig Andrews
98ce7daf56 Implement user interface for user to preview what location they are sharing with a notice 2009-12-29 16:18:52 -05:00
Evan Prodromou
e119362fde Merge branch 'locshunt' into 0.9.x 2009-12-28 15:49:27 -08:00
Evan Prodromou
98a579fedf Merge branch 'master' into 0.9.x 2009-12-28 15:49:14 -08:00
Evan Prodromou
ca6669538a Move location-argument-handling code into a single function
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-28 15:13:15 -08:00
Evan Prodromou
e009f613d3 let users set location prefs from profile form 2009-12-28 14:44:05 -08:00
Evan Prodromou
bb93d6b1c7 remove namespace setting from location; it's unused 2009-12-28 14:21:07 -08:00
Evan Prodromou
2ae04bb6d5 add events for unblocking a profile 2009-12-28 10:50:12 -08:00
Evan Prodromou
c5de326231 events for blocking a user 2009-12-28 10:42:55 -08:00
Zach Copley
1a462b04d7 Paths admin panel should not insist on an ssl server being specified,
ever.
2009-12-24 15:15:37 -08:00
Zach Copley
7f9b07d8c9 Move ssl settings from site admin panel to paths admin panel 2009-12-24 15:15:19 -08:00
Zach Copley
5f6df8c0c4 Paths admin panel should not insist on an ssl server being specified,
ever.
2009-12-24 16:50:28 -06:00
Zach Copley
4ed969a8ac Move ssl settings from site admin panel to paths admin panel 2009-12-24 15:25:59 -06:00
Evan Prodromou
71b7bdbcbe whitespace fixup 2009-12-23 07:38:09 -08:00
Evan Prodromou
185e229f79 Merge branch 'master' into 0.9.x 2009-12-22 22:12:15 -08:00
Evan Prodromou
725b2d0475 save location at notice post time 2009-12-22 21:58:23 -08:00
Siebrand Mazeland
0957c9fa4b Remove pleonasm in UI text 2009-12-20 20:20:35 +01:00
Evan Prodromou
90c378a81f broadcast for repeats 2009-12-15 12:29:37 -05:00