Commit Graph

7730 Commits

Author SHA1 Message Date
Craig Andrews
e9995b0f6a Create IM plugin, Pluginize XMPP, Create AIM plugin 2010-01-27 13:48:35 -05:00
Craig Andrews
5224c7d6c2 Merge branch '0.9.x' into 1.0.x 2010-01-27 13:41:02 -05:00
Sarven Capadisli
656d95418c Better alignment for notice in shownotice page 2010-01-27 15:08:33 +00:00
Sarven Capadisli
7695daebb7 Updated geolocation sharing in notice form for Realtime pop 2010-01-26 19:15:33 +01:00
Zach Copley
d6a0dec765 Add Julien C to author comments 2010-01-26 00:41:49 -08:00
Zach Copley
7a0a133401 - Remove redundant function
- clean up log msgs
2010-01-26 00:41:49 -08:00
Zach Copley
7064d15e67 Use "Sign in with Twitter" auth pattern and official Twitter button for Twitter-based login.
See: http://apiwiki.twitter.com/Sign-in-with-Twitter
2010-01-26 00:41:49 -08:00
Zach Copley
e5bd707055 Ask the user to set a password before disconnecting from Twitter 2010-01-26 00:41:49 -08:00
Zach Copley
d429710fe1 - Twitter username wasn't getting stored in Foreign_user when linking Twitter account (fixed)
- Updates to comments
2010-01-26 00:41:49 -08:00
Julien C
3fc3a2b326 Allow logging in using Twitter
Signed-off-by: Julien C <chaumond@gmail.com>
2010-01-26 00:41:49 -08:00
Sarven Capadisli
94aca655ef Merge branch '0.9.x' of git@gitorious.org:statusnet/mainline into 0.9.x 2010-01-26 01:59:36 +01:00
Sarven Capadisli
1cc86baba6 Setting the geo location cookie expire date far into the future: 2029 ;) 2010-01-26 01:59:21 +01: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
Sarven Capadisli
b3121d09c9 An update to geolocation cookie to use a single file and set the
expiry date to 30 days from now.
2010-01-25 23:42:40 +01:00
Brion Vibber
f3beed6889 Fix presence notification on XMPP thread (now foreground, not background) 2010-01-25 13:49:02 -08:00
Sarven Capadisli
5c02162080 Updated howto create a theme 2010-01-25 22:44:05 +01:00
Brion Vibber
a5836d33e4 Fix for PoweredByStatusNetPlugin to be localizable (was broken for non-English word order)
(Note the .po files will have to be added manually for now as we haven't set TranslateWiki up for plugins I think)
2010-01-25 13:15:54 +01:00
Brion Vibber
cb07fd29a3 Use new StatusNetwork->serverName() to get full domain for wildcard config until we rebuild queues to be based on nicknames.
Fixes live bug with new *.status.net sites breaking queuedaemon.php
2010-01-24 16:01:19 -08:00
Evan Prodromou
49d500e3e1 defaults for nickname and wildcard 2010-01-24 16:01:08 -08:00
Evan Prodromou
8dce24c82c save nickname and wildcard when setting up status network 2010-01-24 16:01:00 -08:00
Evan Prodromou
4f213f985f Merge branch '0.9.x' of git@gitorious.org:statusnet/mainline into 0.9.x
Conflicts:
	lib/stompqueuemanager.php
2010-01-24 16:12:40 -05:00
Evan Prodromou
54ebb0a2b9 Merge branch 'master' into 0.9.x
Conflicts:
	lib/stompqueuemanager.php
2010-01-24 15:59:57 -05:00
Evan Prodromou
3f5ffe5c5b set correct key types for User_flag_profile 2010-01-24 15:57:56 -05:00
Evan Prodromou
b91a035025 add function doc comment to User_flag_profile::create() 2010-01-24 11:20:08 -05:00
Sarven Capadisli
071f455b87 Merge branch '0.9.x' of git@gitorious.org:statusnet/mainline into 0.9.x 2010-01-24 15:35:36 +01:00
Sarven Capadisli
dd513b3e53 Added version info for MobileProfile plugin 2010-01-24 15:35:22 +01:00
Brenda Wallace
5864905506 Merge commit 'refs/merge-requests/120' of git://gitorious.org/statusnet/mainline into 0.9.x 2010-01-24 15:12:18 +13:00
Craig Andrews
8c54151dbd Use StartQueueDaemonIoManagers instead of removed StartIoManagerClasses event 2010-01-23 13:08:59 -05:00
Craig Andrews
23c0d663d6 Allow for instances as well as class names to be passed as queue handlers and iomanagers. 2010-01-23 01:03:41 -05:00
Craig Andrews
767b77d6c2 Merge branch '0.9.x' into 1.0.x 2010-01-22 18:03:48 -05:00
Craig Andrews
845f051c2f StompQueueManager uses decode() to decode queued frames 2010-01-22 18:02:05 -05:00
Craig Andrews
b34bbb0e80 Store serialized representations of queue items in the queue 2010-01-22 17:55:26 -05:00
Craig Andrews
611924e814 Merge branch '0.9.x' into 1.0.x 2010-01-22 17:20:10 -05:00
Craig Andrews
78eb9c78a7 Will re-enable anything queueing after 0.9.x merge
Revert "Any object (not just Notice's) can be queued"

This reverts commit 77ea02cac3.
2010-01-22 17:19:32 -05:00
Craig Andrews
ef7db60fed Revert "Allow for instances as well as class names to be passed as queue handlers and iomanagers."
Going to use brion's SpawningDaemon instead

This reverts commit bd72e8b96e.
2010-01-22 17:14:41 -05:00
Brion Vibber
b157fcbba3 Merge branch 'testing' into 0.9.x 2010-01-22 14:07:40 -08:00
Brion Vibber
a66181c900 Fix unqueuemanager for updated QueueHandler interface 2010-01-22 14:06:20 -08:00
Brion Vibber
71b3b9ee2b Consolidate PuSH publishing ping into a single POST for all feeds, and fix server response (if any on failure) to go to log instead of stdout. 2010-01-22 14:03:24 -08:00
Brion Vibber
6d055ce09e Fix unqueuemanager for updated QueueHandler interface 2010-01-22 13:49:05 -08:00
Brion Vibber
aa038fa9cb Merge branch 'testing' of gitorious.org:statusnet/mainline into 0.9.x 2010-01-22 12:59:52 -08:00
Brion Vibber
6e4cad71e5 Fix for stuck queue messages: wrap processing in stomp transactions so our lack of an ACK if PHP dies actually triggers redelivery.
Previously, messages once delivered would just get stuck in the queue seemingly forever if they never got ACKed.
Note this could lead to partial duplication, for instance if the OMB or Twitter queue handlers die after 1/2 of the outgoing sends.

Recommendations:
* catch exceptions more aggressively within queue handlers (so only PHP fatal errors are likely to kill in the middle)
* for processing that involves sending to multiple clients, consider a second queue similar to the XMPP output, eg for OMB:
 - first queue gets delivery list and builds message data, enqueueing it for each target address
 - second queue can handle each individual outgoing message (and attempt redelivery etc separately)

This would also protect better against a recurring error preventing delivery in the second part, and could spread out any slow sends over multiple threads.
2010-01-22 12:52:56 -08: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
Brion Vibber
99866a459b Fix for stuck queue messages: wrap processing in stomp transactions so our lack of an ACK if PHP dies actually triggers redelivery.
Previously, messages once delivered would just get stuck in the queue seemingly forever if they never got ACKed.
Note this could lead to partial duplication, for instance if the OMB or Twitter queue handlers die after 1/2 of the outgoing sends.

Recommendations:
* catch exceptions more aggressively within queue handlers (so only PHP fatal errors are likely to kill in the middle)
* for processing that involves sending to multiple clients, consider a second queue similar to the XMPP output, eg for OMB:
 - first queue gets delivery list and builds message data, enqueueing it for each target address
 - second queue can handle each individual outgoing message (and attempt redelivery etc separately)

This would also protect better against a recurring error preventing delivery in the second part, and could spread out any slow sends over multiple threads.
2010-01-22 12:35:05 -08:00
Sarven Capadisli
8bf2a9046b Fixed innerHTML problem in IE7 and 8 for badge script 2010-01-22 21:08:51 +01: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
104d300799 do actual language negotiation for help docs 2010-01-22 14:13:28 -05:00