summaryrefslogtreecommitdiff
path: root/plugins/Facebook
AgeCommit message (Collapse)Author
2010-01-21XMPP queued output & initial retooling of DB queue manager to support ↵Brion Vibber
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.
2010-01-12Major refactoring of queue handlers to support running multiple sites in one ↵Brion Vibber
daemon. Key changes: * Initialization code moved from common.php to StatusNet class; can now switch configurations during runtime. * As a consequence, configuration files must now be idempotent... Be careful with constant, function or class definitions. * Control structure for daemons/QueueManager/QueueHandler has been refactored; the run loop is now managed by IoMaster run via scripts/queuedaemon.php IoManager subclasses are woken to handle socket input or polling, and may cover multiple sites. * Plugins can implement notice queue handlers more easily by registering a QueueHandler class; no more need to add a daemon. The new QueueDaemon runs from scripts/queuedaemon.php: * This replaces most of the old *handler.php scripts; they've been refactored to the bare handler classes. * Spawns multiple child processes to spread load; defaults to CPU count on Linux and Mac OS X systems, or override with --threads=N * When multithreaded, child processes are automatically respawned on failure. * Threads gracefully shut down and restart when passing a soft memory limit (defaults to 90% of memory_limit), limiting damage from memory leaks. * Support for UDP-based monitoring: http://www.gitorious.org/snqmon Rough control flow diagram: QueueDaemon -> IoMaster -> IoManager QueueManager [listen or poll] -> QueueHandler XmppManager [ping & keepalive] XmppConfirmManager [poll updates] Todo: * Respawning features not currently available running single-threaded. * When running single-site, configuration changes aren't picked up. * New sites or config changes affecting queue subscriptions are not yet handled without a daemon restart. * SNMP monitoring output to integrate with general tools (nagios, ganglia) * Convert XMPP confirmation message sends to use stomp queue instead of polling * Convert xmppdaemon.php to IoManager? * Convert Twitter status, friends import polling daemons to IoManager * Clean up some error reporting and failure modes * May need to adjust queue priorities for best perf in backlog/flood cases Detailed code history available in my daemon-work branch: http://www.gitorious.org/~brion/statusnet/brion-fixes/commits/daemon-work
2010-01-08Add version info for Facebook, TwitterBridge and RSSCloud pluginsZach Copley
2009-12-31Removed crazy redundant broadcasting of notices by the FB appZach Copley
2009-12-31- Use a stripped down new notice form for FB app because FB canvas appsZach Copley
can't support image upload via multipart/form-data (and location sharing is iffy). - Deal with new error code 100 from Facebook, which seem to be for inactive accounts.
2009-12-31Change inline CSS stylesheet to be on a single line so it doens't blow out ↵Zach Copley
syntax highlighting in my editor
2009-12-31Update to external Facebook libsZach Copley
2009-12-11change Notice::saveNew() to use named arguments for little-used optionsEvan Prodromou
2009-12-08New _m() gettext wrapper with smart detection of plugin domains. Plugin base ↵Brion Vibber
class registers your gettext files if present at initialization. update_pot.sh replaced with update_po_templates.php which can do core, plugins, or all (default). Top-level Makefile added to build .mo files for plugins as well as core. As described on list: http://lists.status.net/pipermail/statusnet-dev/2009-December/002869.html
2009-12-05Add configuration option to toggle the indenting of the output HTML. ↵Craig Andrews
Defaults to indent enabled.
2009-12-04Use inlineScript() everywhere inline scripts are writtenCraig Andrews
2009-11-25Fixed bug where reply-sync bit wasn't getting savedZach Copley
2009-11-25Forgot to render the nav menu when on FB Connect login tabZach Copley
2009-11-25Facebook plugin no longer takes over Login and Connect settings nav menusZach Copley
2009-11-20Add routing rules for FB app in front of other rulesZach Copley
2009-11-13Moved class="pagination" to child element and removed elementSarven Capadisli
2009-11-09Revert "Remove more contractions"Brion Vibber
This reverts commit 5ab709b73977131813884558bf56d97172a7aa26. Missed this one yesterday...
2009-11-08Merge branch '0.9.x' of git://gitorious.org/statusnet/mainline into 0.9.xSiebrand Mazeland
2009-11-08Remove more contractionsSiebrand Mazeland
* doesn't * won't * isn't * don't
2009-11-08Revert "* [Cc]an't -> [Cc]annot"Brion Vibber
This reverts commit 0ab17f382b9993ada3d12d4cdace72cca53fb545.
2009-11-08* [Cc]an't -> [Cc]annotSiebrand Mazeland
* [Cc]ould't -> [Cc]ould not
2009-10-29Warning cleanup: drop reference on router parameter to RouterInitialized ↵Brion Vibber
event handlers. We don't (and don't need to) pass a reference here, and the mix can trigger warnings.
2009-10-27Specify the number of cols for the Facebook app's multi-friend inviterZach Copley
widget so it fits better into Facebook's new layout.
2009-10-27Forgot to move the facebookapp.css file into the new Facebook pluginZach Copley
2009-10-23Move Twitter and Facebook-specific mail notifications to their respective ↵Zach Copley
plugins
2009-10-23Some phpcs cleanupZach Copley
2009-10-21Removed Facebook stuff from the StatusNet README and wrote a new READMEZach Copley
for the Facebook plugin.
2009-10-21Make paths and class loading work rightZach Copley
2009-10-21Fix referencesZach Copley
2009-10-21Combine Facebook and Facebook Connect plugins into one big pluginZach Copley
2009-10-21Gather all the Facebook stuff together in one placeZach Copley
2009-10-20Extract out Facebook app stuff into a pluginZach Copley