summaryrefslogtreecommitdiff
path: root/plugins/TwitterBridge
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-13Merge branch '0.9.x' of git@gitorious.org:statusnet/mainline into 0.9.xZach Copley
2010-01-13When Twitter bridge encounters a 403 (rate limit) err, drop the noticeZach Copley
instead of requeuing.
2010-01-12Merge branch '0.9.x' into inblobEvan Prodromou
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-09use Inbox in twitterstatusfetcherEvan Prodromou
2010-01-08Add version info for Facebook, TwitterBridge and RSSCloud pluginsZach Copley
2009-12-18Followup fix for ticket 1672: Twitter bridge !group->#hash conversion will ↵Brion Vibber
now happen regardless of whether account was configured with oauth or basic auth (previously applied only on the oauth path)
2009-12-14Fix Twitter bridge so it responds reasonably to authorization errors.Zach Copley
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-04Don't try to broadcast the notice if something went wrong.Zach Copley
2009-12-04Make imported Twitter notices show up via real time plugins.Zach Copley
2009-12-02Remove useless debugging statementZach Copley
2009-11-25Catch uncaught exceptionZach Copley
2009-11-24Fix SSL options for Twitter bridge HTTP requestsZach Copley
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-11-02Rebuilt HTTPClient class as an extension of PEAR HTTP_Request2 package, ↵Brion Vibber
adding redirect handling and convenience functions. Caching support will be added in future work after unit tests have been added. * extlib: add PEAR HTTP_Request2 0.4.1 alpha * extlib: update PEAR Net_URL2 to 0.3.0 beta for HTTP_Request2 compatibility * moved direct usage of CURL and file_get_contents to HTTPClient class, excluding external-sourced libraries * adapted GeonamesPlugin for new HTTPResponse interface Note some plugins haven't been fully tested yet.
2009-11-02Revert "Rebuilt HTTPClient class as an extension of PEAR HTTP_Request2 ↵Brion Vibber
package, adding redirect handling and convenience functions." Going to restructure a little more before finalizing this... This reverts commit fa37967858c3c29000797e510e5f98aca8ab558f.
2009-11-02Rebuilt HTTPClient class as an extension of PEAR HTTP_Request2 package, ↵Brion Vibber
adding redirect handling and convenience functions. Caching support will be added in future work after unit tests have been added. * extlib: add PEAR HTTP_Request2 0.4.1 alpha * extlib: update PEAR Net_URL2 to 0.3.0 beta for HTTP_Request2 compatibility * moved direct usage of CURL and file_get_contents to HTTPClient class, excluding external-sourced libraries Note some plugins haven't been tested yet.
2009-10-29use addPlugin() in the README setup exampleBrion Vibber
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-23Move Twitter and Facebook-specific mail notifications to their respective ↵Zach Copley
plugins
2009-10-20- Make Twitter bridge work with unqueuemanagerZach Copley
- Add README
2009-10-17Changed config flag for importing friends' timeline and added some commentsZach Copley
2009-10-14Make queuing and daemons work via eventsZach Copley
2009-10-13Merge branch '0.9.x' into pluginize-twitter-bridgeZach Copley
* 0.9.x: (247 commits) Added in credits. Use site's name for basic auth realm Make apigroupcreate.php pass phpcs Took out some unnecessary intializations Implemented create group api CamelCase all function names in the API code These same params are used in most API actions; moved to base API class Missed some of the references to the old TwitterApiAction - removed Remove more redundant $formats Remove dead code Move all basic auth output and processing to base classes $format is used by every API action. Set it in the base class. Delete action/api.php and rename lib/twitterapi.php to lib/api.php New actions for blocks via API fix FBConnect so it doesn't muffle EndPrimaryNav don't write session if it's unchanged Fixed facebook connect primary nav to hide search option when site is private and user is not logged in Fixed facebook connect primary nav to obey sms/twitter/openid settings Fixed facebook connect login nav to obey openid settings Fixed facebook connect nav to obey sms/twitter disabled ...
2009-09-08Moved basic auth client into plugin dirZach Copley
2009-09-08Merge branch '0.9.x' into pluginize-twitter-bridgeZach Copley
Conflicts: plugins/TwitterBridge/twitterauthorization.php
2009-08-26Moved the rest of the Twitter stuff into the TwitterBridge pluginZach Copley
2009-08-25Pluginized Twitter settings stuffZach Copley