Commit Graph

1040 Commits

Author SHA1 Message Date
Brion Vibber 8e6b52e899 OStatus: renamed feedinfo table to ostatus_profile -- will cover remote ostatus people and groups whether a subscription's active or not (maintains identity over unsub/resub, and between subscribers and subscribees) 2010-02-12 00:22:16 +00:00
Brion Vibber e08657d56c OStatus: correct parsing of georss:point for max interop (commas allowed, whitespace not strictly defined) 2010-02-11 22:42:36 +00:00
Brion Vibber 1773d12a24 OStatus: save Salmon postback URI in feed subscription info, if provided. Will need it for sub/unsub postbacks and other notifications. 2010-02-11 20:12:48 +00:00
Brion Vibber 21bfbc43ad OStatus: fix salmon link on Atom feeds; add a url spec for group feeds as well (endpoint needs impl) 2010-02-11 20:02:17 +00:00
Brion Vibber 20714d1f35 OStatus fix: include feed profile at notice text processing time, fixes replies 2010-02-11 19:44:03 +00:00
Brion Vibber 71151b2583 OStatus: garbage collect unused PuSH subscriptions when the last local subscriber unsubs 2010-02-11 00:09:20 +00:00
Brion Vibber 4ae760cb62 OStatus PuSH fixes:
* HMAC now calculated correctly - confirmed interop with Google's public hub
* Can optionally use an external PuSH hub, set URL in $config['ostatus']['hub']
  (may have issues in replication environment, and will ping the hub for every
  update rather than just those with subscribers) Internal hub will still function
  when this is set, but won't be advertised. Warning: setting this, then turning
  it off later will break subscriptions as that hub will no longer receive pings.
2010-02-10 22:58:39 +00:00
Brion Vibber 162868afdb OStatus update: now using standard save/delivery for incoming ostatus messages -- they get reflected to realtime and everything! woooo
Group delivery may still need some munging
2010-02-10 21:18:53 +00:00
Brion Vibber 7752612ef6 fix hubdistrib 2010-02-10 20:47:42 +00:00
Brion Vibber 045797331c fix up hub queueing to work w/ stomp queues 2010-02-10 12:27:41 -08:00
Brion Vibber f37063cd63 Filename case fix 2010-02-10 10:18:47 -08:00
Sarven Capadisli 3d0bc1a3dd Merge branch '0.9.x' of git@gitorious.org:statusnet/mainline into 0.9.x 2010-02-10 11:09:03 +00:00
Sarven Capadisli f3c2dfacf4 Fix to Realtime's repeat notice form legend and notice id 2010-02-10 10:48:55 +00:00
Sarven Capadisli 6b10c269b5 Fix to Realtime's repeat notice form legend and notice id 2010-02-10 10:47:46 +00:00
James Walker f4ebac5036 removing the webfinger hack for Notice::asAtomEntry since salmon can use a profile URL 2010-02-09 21:50:51 -05:00
James Walker 46f90f7b08 moving salmon endpoint under 'main/' 2010-02-09 21:43:37 -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
James Walker c2475f8853 in progress Salmon responses 2010-02-09 15:37:37 -05:00
James Walker 841981a381 discovery piece - hand merged :P 2010-02-09 01:37:45 -05: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 b9b0f0410a Pull GeoRSS locations over OStatus feeds 2010-02-08 15:46:38 -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
Zach Copley c83d0b5e98 Delete old Twitter user record when user changes screen name instead of updating. Simpler. 2010-02-08 12:16:55 -08:00
Zach Copley 21c0e75a2e Store Twitter screen_name, not name, for foreign_user.nickname when saving Twitter user. 2010-02-08 12:16:43 -08:00
Brion Vibber dc09453a77 First steps on converting FeedSub into the pub/sub basis for OStatus communications:
* renamed FeedSub plugin to OStatus
* now setting avatar on subscriptions
* general fixes for subscription
* integrated PuSH hub to handle only user timelines on canonical ID url; sends updates directly
* set $config['feedsub']['nohub'] = true to test w/ foreign feeds that don't have hubs (won't actually receive updates though)
* a few bits of code documentation
* HMAC support for verified distributions (safest if sub setup is on HTTPS)

And a couple core changes:
* minimizing HTML output for exceptions in API requests to aid in debugging
* fix for rel=self link in apitimelineuser when id given

This does not not yet include any of the individual subscription management (Salmon notifications for sub/unsub, etc) nor a nice UI for user subscriptions.
Needs some further cleanup to treat posts as status updates instead of link references.
2010-02-08 11:15:29 -08:00
Zach Copley fc226a6ad5 Merge branch 'testing' of git@gitorious.org:statusnet/mainline into testing 2010-02-06 06:48:41 +00:00
Zach Copley 70abea3ac4 Delete old Twitter user record when user changes screen name instead of updating. Simpler. 2010-02-06 06:48:19 +00:00
Zach Copley 558934d1dd Store Twitter screen_name, not name, for foreign_user.nickname when saving Twitter user. 2010-02-06 06:48:07 +00:00
Zach Copley cfe4e460ca Delete old Twitter user record when user changes screen name instead of updating. Simpler. 2010-02-06 06:46:00 +00:00
Zach Copley a5f03484da Store Twitter screen_name, not name, for foreign_user.nickname when saving Twitter user. 2010-02-05 21:39:29 -08: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 af9f23c2d9 - Fix cache handling in TwitterStatusFetcher
- Other stability fixes
2010-02-05 03:18:45 +00:00
Sarven Capadisli 5bdc6fa5d4 Moved hardcoded identica theme out of MobileProfile. In this case, it
will use whichever theme is loaded as its base and then add its own
mobile styles. Of course, if a theme comes with its own mobile styles,
it will use that instead as an addition to its own base.
2010-02-04 19:42:33 +00:00
Sarven Capadisli e891075494 Moved hardcoded identica theme out of MobileProfile. In this case, it
will use whichever theme is loaded as its base and then add its own
mobile styles. Of course, if a theme comes with its own mobile styles,
it will use that instead as an addition to its own base.
2010-02-04 19:39:46 +00:00
Sarven Capadisli 7ebd13fa69 Merge branch '0.9.x' of git@gitorious.org:statusnet/mainline into 0.9.x 2010-02-04 16:56:34 +00:00
Zach Copley feaf938ffd Make Twitter bridge truncate and add a link back to the original notice when notice content is > 140c 2010-02-04 03:17:48 +00:00
Zach Copley 9ca4fd69b3 - Fix cache handling in TwitterStatusFetcher
- Other stability fixes
2010-02-04 01:59:28 +00:00
Zach Copley 72f72d17db - Fix cache handling in TwitterStatusFetcher
- Other stability fixes
2010-02-04 01:53:08 +00: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
Sarven Capadisli 245610d2e1 Removed entity flag stylesheet and icons from plugin to core. 2010-02-02 16:27:58 +01:00
Sarven Capadisli 65c5d7813b Added icon to Clear label for UserFlag plugin 2010-02-02 16:06:22 +01: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
Sarven Capadisli 0c838f82b0 Added missing concat of </li> in Realtime response 2010-01-31 23:57:35 +01:00
Sarven Capadisli 9f36c10001 Updated XHR binded events to work better in jQuery 1.4.1. Using
.live() for event delegation instead of jQuery.data() and checking to
see if an element was previously binded.
2010-01-31 22:37:22 +00: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 ebf4e497f6 Merge branch 'testing' of git@gitorious.org:statusnet/mainline into testing 2010-01-31 15:20:57 -05:00
Sarven Capadisli 339eb1adad Merge branch '0.9.x' of git@gitorious.org:statusnet/mainline into 0.9.x 2010-01-31 19:25:49 +00:00
Evan Prodromou a1c9874a61 better handling of null responses from geonames.org 2010-01-30 12:40:11 -05:00
Craig Andrews 61d4709eb8 Pass username and nickname to autoregister so auth plugins can set the nickname correct when creating a new user.
Continues fixing what Eric Helgeson pointed out in 01eb4e8f00
2010-01-29 20:43:16 -05:00
Evan Prodromou 8318f195a2 plugin to limit number of registered users 2010-01-29 18:29:51 -05:00
Sarven Capadisli edf99dc45b Adds notice author's name to @title in Realtime response 2010-01-29 15:44:59 +00:00
Sarven Capadisli b68a21d4f7 Adds notice author's name to @title in Realtime response 2010-01-29 15:43:37 +00:00
Craig Andrews d14651706c Merge branch '0.9.x' into 1.0.x 2010-01-28 16:13:06 -05:00
Zach Copley 558bf0f489 'Sign in with Twitter' button img 2010-01-28 18:15:45 +00:00
Zach Copley 664a82e836 'Sign in with Twitter' button img 2010-01-28 18:11:44 +00:00
Zach Copley b6dea910fc Move faceboookapp.js to the Facebook plugin 2010-01-28 04:50:54 +00:00
Zach Copley 794fe16d69 Merge branch 'facebook-js-fix' into testing 2010-01-28 04:47:21 +00:00
Zach Copley c2c262e4b4 Move faceboookapp.js to the Facebook plugin 2010-01-28 04:46:10 +00:00
Brion Vibber f026ecec32 fix for fix for bad realtime JS load 2010-01-27 19:50:52 -08:00
Brion Vibber 5c0560a7fc fix for fix for bad realtime JS load 2010-01-27 19:50:08 -08:00
Brion Vibber 84e7c7783c Merge branch 'testing' of git@gitorious.org:statusnet/mainline into testing 2010-01-27 19:49:26 -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
Evan Prodromou dd413ff4fa move script into OpenXPlugin::showAd() so it works 2010-01-27 18:44:46 -05:00
Evan Prodromou 97a1ef14d2 using an action for output in OpenX plugin 2010-01-27 18:39:55 -05:00
Evan Prodromou 0373ab6fa4 Plugin to enable OpenX ads 2010-01-27 18:35:02 -05:00
Evan Prodromou 2aba2eeeaf width and height should be integers in AdsensePlugin 2010-01-27 17:55:33 -05:00
Evan Prodromou 00d9b215f4 Plugin to support Google Adsense
A plugin to easily add Google Adsense blocks to a StatusNet site.
2010-01-27 17:29:36 -05: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
Evan Prodromou f650b40706 Merge branch 'testing' of git@gitorious.org:statusnet/mainline into testing 2010-01-27 16:37:43 -05:00
Evan Prodromou 4ad931ad38 wrong height for rectangle in BlankAd 2010-01-27 16:34:17 -05:00
Evan Prodromou e4393ee6db Add the moved BlankAdPlugin 2010-01-27 16:34:17 -05:00
Evan Prodromou b2b95bd21f make BlankAd dir and change to use a 1x1 image 2010-01-27 16:34:17 -05:00
Evan Prodromou b412ebab11 move BlankAdPlugin to its own dir 2010-01-27 16:34:17 -05:00
Evan Prodromou 9decd9806c Add BlankAdPlugin to test ad layout in different themes 2010-01-27 16:34:17 -05:00
Evan Prodromou 1758ed453b move UAP plugin to core 2010-01-27 16:34:17 -05:00
Sarven Capadisli 58fde0dcb5 Lowercased switch cases in UAP Plugin 2010-01-27 16:34:17 -05:00
Sarven Capadisli 61a7a7b36b Plugin for Universal Ad Package. Outputs four most widely used ad types. 2010-01-27 16:34:17 -05:00
Craig Andrews e9995b0f6a Create IM plugin, Pluginize XMPP, Create AIM plugin 2010-01-27 13:48:35 -05:00
Brion Vibber b1402896e7 Set default 24-hour expiry on Memcached objects where not specified. 2010-01-27 09:13:21 -08:00
Brion Vibber 7aeb03f727 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) 2010-01-27 08:53:55 -08:00
Evan Prodromou c52951cef5 Optionally set a separate Javascript server and path
We have about 10-12 JavaScript pages per Web page. They usually
are based on the same server as the Web pages, but since they're
static files, it makes sense to offload them to a lite server that
handles static files well.

This commit lets you set a separate Javascript server and path for the
default Javascript code in StatusNet.

Squashed commit of the following:

commit 139d1622fdafe5ad00c820224416d9021efc3234
Author: Evan Prodromou <evan@status.net>
Date:   Wed Jan 27 11:30:24 2010 -0500

    modules that call htmloutputter::script() don't prescribe js/ path

commit c6ca3174af73efed55eaed5ff1e2a3bdc77d2d87
Author: Evan Prodromou <evan@status.net>
Date:   Wed Jan 27 11:28:07 2010 -0500

    configurable server and path for javascript files
2010-01-27 11:37:22 -05:00
Sarven Capadisli 7695daebb7 Updated geolocation sharing in notice form for Realtime pop 2010-01-26 19:15:33 +01:00
Sarven Capadisli e05c325722 Updated geolocation sharing in notice form for Realtime pop 2010-01-26 19:13:05 +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
Zach Copley 02957d2854 Add Julien C to author comments 2010-01-26 00:19:46 -08:00
Zach Copley f7450d2ca8 - Remove redundant function
- clean up log msgs
2010-01-26 00:19:20 -08:00
Zach Copley ce44008d13 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:19:09 -08:00
Zach Copley 1c1abfc284 Ask the user to set a password before disconnecting from Twitter 2010-01-26 00:18:55 -08:00
Zach Copley 2d97e15cd6 - Twitter username wasn't getting stored in Foreign_user when linking Twitter account (fixed)
- Updates to comments
2010-01-26 00:18:42 -08:00
Julien C 7fc5588c5d Allow logging in using Twitter
Signed-off-by: Julien C <chaumond@gmail.com>
2010-01-26 00:18:11 -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
Brion Vibber c10d5320dd Disable PubSubHubBub hub pings automatically on private site (hub wouldn't be able to read feeds anyway)
[Might be good to think of a core way to mark a plugin as disabled when it initializes.]
2010-01-25 09:07:24 -08: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
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
Sarven Capadisli 38fe4ad958 Added version info for MobileProfile plugin 2010-01-24 15:34:40 +01:00
Sarven Capadisli 51775e38ba Better alignment for notice options in MobileProfile 2010-01-24 00:23:14 +01:00
Sarven Capadisli e3ee5663ab Updated notice item view where a) notice text no longer wraps around
(under author's photo) b) supplemental notice content and options will
start right under notice text.
2010-01-24 00:23:01 +01:00
Sarven Capadisli 2742494fe8 Updated UI for notice aside content and notice options in MobileProfile 2010-01-24 00:20:36 +01:00
Sarven Capadisli 37e642bece Inline script for maxlength is deprecated 2010-01-24 00:20:11 +01:00
Craig Andrews 8c54151dbd Use StartQueueDaemonIoManagers instead of removed StartIoManagerClasses event 2010-01-23 13:08:59 -05:00
Brion Vibber a4d733b68d 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-22 15:04:53 -08:00
Brion Vibber b157fcbba3 Merge branch 'testing' into 0.9.x 2010-01-22 14:07:40 -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 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 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
Brion Vibber 0e852def6a 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.
2010-01-21 22:40:35 -08:00
Evan Prodromou 10f21e1f41 add class and function doc comments to PuSH plugin 2010-01-20 16:37:41 -05:00
Evan Prodromou 0167ff6d27 whitespace changes to make phpcs happy for PuSH plugin 2010-01-20 16:29:11 -05:00
Evan Prodromou 1d37a6c428 correctly get replies for a notice in PuSH plugin 2010-01-20 16:16:22 -05:00
Evan Prodromou 365b0b1e14 use standard plugin configuration for PubSubHubBub 2010-01-20 16:13:52 -05:00
Evan Prodromou dbccebb14b update friends, not user, timeline for recipients of notice in PuSH plugin 2010-01-20 15:43:24 -05:00
Sarven Capadisli 6815ddafe0 Better alignment for notice options in MobileProfile 2010-01-20 18:50:48 +01:00
Sarven Capadisli b87c80e0a9 Updated notice item view where a) notice text no longer wraps around
(under author's photo) b) supplemental notice content and options will
start right under notice text.
2010-01-20 18:32:24 +01:00
Eric Helgeson 0ddfcc5521 Added Plugin Version info to recaptcha plugin 2010-01-18 18:33:09 -05:00
Brion Vibber ae9f2bf187 add a quickie plugins/ dir readme mentioning how to add plugins, plus ref to wiki pages 2010-01-18 09:37:42 -08:00
Sarven Capadisli 3f589da243 Updated UI for notice aside content and notice options in MobileProfile 2010-01-17 19:45:35 +00:00
Sarven Capadisli 07de97a103 Inline script for maxlength is deprecated 2010-01-17 14:04:47 +00:00
Brion Vibber 9dc9c404cf Merge branch 'master' into 0.9.x 2010-01-16 13:40:49 -08:00
Brion Vibber 775c63b654 Cleanup for memcached host/port split -- apparently we use ';' on purpose, restoring. Keeping fix for the notices spewing into the log. 2010-01-16 13:39:05 -08:00
Craig Andrews a27aef9206 Add nickname suggestion capability for use during autoregistration. 2010-01-14 19:52:11 -05:00
Brion Vibber 5783874cc2 Clean up host/port separation in memcached plugin -- use : not ; as separator and clean up some warnings 2010-01-14 14:14:32 -08:00
Brion Vibber 532a174fc0 Clean up host/port separation in memcached plugin -- use : not ; as separator and clean up some warnings 2010-01-14 14:14:22 -08:00
Brion Vibber b25deaacea queue daemon fixes: path fix for xmpp, suppress warning in memcached init 2010-01-13 21:24:36 -08:00
Brion Vibber cb962ed475 queue daemon fixes: path fix for xmpp, suppress warning in memcached init 2010-01-13 21:24:02 -08:00
Craig Andrews 681065d734 Made the IMAP plugin work in the style of the new queue/iomanagers 2010-01-13 15:35:53 -05:00
Zach Copley c3188fd1fe Merge branch '0.9.x' of git@gitorious.org:statusnet/mainline into 0.9.x 2010-01-13 19:17:49 +00:00
Zach Copley 43170b3d18 When Twitter bridge encounters a 403 (rate limit) err, drop the notice
instead of requeuing.
2010-01-13 19:17:40 +00:00
Evan Prodromou f2e9469e16 throttle subscriptions 2010-01-13 03:11:31 -08:00
Evan Prodromou 436b8c845e Merge branch '0.9.x' into inblob 2010-01-12 23:53:52 -08:00
Evan Prodromou e34ece8b06 Merge branch '0.9.x' of git@gitorious.org:statusnet/mainline into 0.9.x 2010-01-12 23:25:25 -08:00
Brion Vibber ec145b73fc Major refactoring of queue handlers to support running multiple sites in one 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-12 20:45:09 -08:00
Brion Vibber 9c34d5c107 Actually skip the pingback if XML-RPC extension is missing, instead of considering it then trying anyway and dying of a fatal error. :) 2010-01-12 12:12:31 -08:00
Evan Prodromou ecb3abf84c Merge branch '0.9.x' into inblob 2010-01-11 16:28:27 -08:00
Evan Prodromou 7e5c15fa80 Merge branch '0.9.x' of git@gitorious.org:statusnet/mainline into 0.9.x 2010-01-11 16:23:48 -08:00
Evan Prodromou 04c76fc4e5 safer storage for diskcacheplugin 2010-01-11 16:23:34 -08:00
Brion Vibber 116c5f6839 dos -> unix line endings on CasAuthentication's CAS library 2010-01-11 15:42:17 -08:00
Evan Prodromou bd6571c2e1 Merge branch 'diskcache' into 0.9.x 2010-01-11 15:34:27 -08:00
Sarven Capadisli aaea2b1a96 Apparently, I can't spell my family name. 2010-01-11 13:02:04 +01: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 92deb35bc4 inject session before redirect for openid finish login 2010-01-11 08:40:41 +00:00
Craig Andrews a07d8dab25 i18n in the imap plugin 2010-01-09 19:04:53 -05:00
Craig Andrews c758b1b1d4 Add version information to a bunch of plugins 2010-01-09 19:04:53 -05:00
Evan Prodromou 2db840b2f5 use Inbox in twitterstatusfetcher 2010-01-09 14:02:01 -08:00
Evan Prodromou d902de139c change PuSH plugin to use whoGets() 2010-01-09 13:59:39 -08:00
Evan Prodromou 9cfea6d051 use whoGets() for realtime plugin 2010-01-09 13:56:54 -08:00
Craig Andrews 055f3fdddb Add an IMAP daemon so StatusNet can process incoming user posts via catch-all mailbox (in addition to the pre-existing script alias method) 2010-01-08 18:52:43 -05:00
Evan Prodromou e22af049a8 persistent connection flag, default false on cli 2010-01-08 13:21:29 -08:00
Sarven Capadisli 647bbb916c Updated RealtimePlugin to use core json2.js 2010-01-08 13:36:31 +00:00
Sarven Capadisli ce761c7142 Updated plugin info for PoweredByStatusNet 2010-01-08 11:42:03 +00:00
Evan Prodromou 4f62d685d0 Mapstraction PluginVersion 2010-01-08 00:38:20 -08:00
Evan Prodromou c57fe7fbf5 PluginVersion for WikiHashtags 2010-01-08 00:29:09 -08:00
Evan Prodromou 87043797bf Merge branch '0.9.x' of git@gitorious.org:statusnet/mainline into 0.9.x 2010-01-08 00:21:58 -08:00
Evan Prodromou 054aaa40bf add versions for url-shortener plugins 2010-01-08 00:20:38 -08:00
Zach Copley 20af83d316 Add version info for Facebook, TwitterBridge and RSSCloud plugins 2010-01-08 00:09:23 -08:00
Evan Prodromou 11b19788f5 add version information to GeoURL 2010-01-07 17:58:48 -08:00
Evan Prodromou fe01a7d183 add version information to Linkback 2010-01-07 17:58:38 -08:00
Evan Prodromou 87c181b4e3 add version information to GoogleAnalytics 2010-01-07 17:51:57 -08:00
Evan Prodromou ca3b2d614a add version information to MemcachePlugin 2010-01-07 17:49:39 -08:00
Evan Prodromou 6395ac71b8 add version information to PiwikAnalyticsPlugin 2010-01-07 17:47:23 -08:00
Evan Prodromou afaefa6942 add version info to the Template plugin 2010-01-07 17:43:56 -08:00
Evan Prodromou 0587dcc045 add version info to OpenID plugin 2010-01-07 17:41:55 -08:00
Evan Prodromou 1c824a52ec Add version info to the CacheLog plugin 2010-01-07 17:39:15 -08:00
Evan Prodromou 42834944e0 add version info to SamplePlugin 2010-01-07 17:37:44 -08:00
Evan Prodromou ff930d2555 add version information to Geonames plugin 2010-01-07 17:27:01 -08:00
Evan Prodromou a55939f3b1 Merge branch '0.9.x' of git@gitorious.org:statusnet/mainline into 0.9.x 2010-01-06 23:23:30 -08:00
Evan Prodromou e1c7851a06 pass through keys() as keyTypes() for UserFlag 2010-01-06 23:22:49 -08:00
Brion Vibber 4e2acd153b ...and drop the unnecessary &reference from child class pkeyGet() overrides. 2010-01-06 14:28:40 -08:00
Craig Andrews 20144285ca The structure return by parse_url is an associative array, not an object. 2010-01-06 17:13:09 -05:00
Craig Andrews 208bab32b7 Remove erroneous call to parent::onInitializePlugin() 2010-01-06 16:48:52 -05:00
Brion Vibber b93244395f Fix for broken profile flag admin UI: delete stray flag entries when users are deleted so broken entries don't litter the lookups.
* added ProfileDeleteRelated event to match UserDeleteRelated, to allow plugins to add extra related tables on profile deletion
* UserFlagPlugin: deleting flags when target profile is deleted
* UserFlagPlugin: deleting flags when flagging user is deleted
* UserFlagPlugin: fix for autoloader -- class names are case-insensitive. We may get lowercase class names coming in at times, such as when creating DB objects programatically from a table name.

Note that any already-existing bogus entries need to be removed from the database:
select * from user_flag_profile where (select id from profile where id=profile_id) is null;
select * from user_flag_profile where (select id from user where id=user_id) is null;
2010-01-06 11:10:33 -08:00
Sarven Capadisli d7e2a29498 Removed unnecessary internal style 2010-01-06 11:31:06 +01:00
Zach Copley c95114ea02 Some better log msgs 2010-01-06 07:44:34 +00:00
Zach Copley fd33865258 Fix subscription path in link element 2010-01-05 23:21:57 -08:00
Zach Copley 3e6b80d3e9 Some phpcs cleanup 2010-01-05 23:21:57 -08:00
Zach Copley 655dbcedb3 Comment out the LoggingAggregator business 2010-01-05 23:21:57 -08:00
Zach Copley aad54af448 Reject subscription requests for handlers that don't support http-post 2010-01-05 23:21:46 -08:00
Zach Copley 48af79dbb4 Added a bunch of function commment blocks 2010-01-05 23:19:13 -08:00
Zach Copley c571c1323f Added intial README 2010-01-05 23:19:13 -08:00
Zach Copley ff26b8d88b Add an RSSCloud queue handler daemon 2010-01-05 23:19:13 -08:00
Zach Copley d091d06115 Notifier works, and bad subscriptions are deleted properly now. 2010-01-05 23:19:13 -08:00
Zach Copley 61804bb7bb Plugin now checks notify handlers before registering subscriptions 2010-01-05 23:19:13 -08:00
Zach Copley 4e07d9eeec Better .ini info for RSSCloud subscription 2010-01-05 23:18:58 -08:00
Zach Copley 6b28fbe7b6 Make dummy aggregator handle RSSCloud challenge/response with domain parameter 2010-01-05 23:17:35 -08:00
Zach Copley 7638e2713d Set modified column correctly. 2010-01-05 23:17:35 -08:00
Zach Copley 3209544b30 Fixed DB_DataObject to return the right keys info for a compound
key & fix ini output
2010-01-05 23:16:58 -08:00
Zach Copley 8980bebcb3 Add a table and DB_DataObject class for storing cloud subscriptions 2010-01-05 22:59:42 -08:00
Zach Copley aa9f81193e Queue notices for rssCloud 2010-01-05 22:59:42 -08:00
Zach Copley 46ac99cf4d Only add rssCloud link to user timeline 2010-01-05 22:59:42 -08:00
Zach Copley 51ac7439e1 /rsscloud/request_notify should work now 2010-01-05 22:59:42 -08:00
Zach Copley 391003c3c6 Some foundational work. Not much to see here. Move along. 2010-01-05 22:59:42 -08:00
Zach Copley 4e033138b3 Test action to simulate an aggregator. Useful for checking that the cloud hub is sending notifications. 2010-01-05 22:59:42 -08:00
Zach Copley 07f71a66f5 Extremely nascent RSSCloud plugin 2010-01-05 22:59:42 -08:00
Craig Andrews 0f6ccee6d3 remove invalid calls to AuthenticationPlugin::onAutoload 2010-01-06 00:22:19 -05:00
Craig Andrews 3b5299b5ca Use plugin configuration instead of common_config() 2010-01-06 00:20:15 -05:00
Craig Andrews 76cc791642 Use common_{log,debug} instead of error_log for logging 2010-01-06 00:09:07 -05:00
Craig Andrews fffd66bf83 Add shiny's mollom plugin 2010-01-06 00:06:43 -05:00
Craig Andrews 9e2e0605ed Move Authorization and Authentication plugin structures into core, instead of as plugins.
This move makes sense as you can addPlugin('Authentication') for example - these are abstract classes designed to be implemented, not used directly.
2010-01-05 13:56:22 -05:00
Craig Andrews f3a76bbcb7 Fix auth plugin autoregistration issue. 2010-01-05 13:42:15 -05:00
Evan Prodromou f13cad656e remove logging stuff from DiskCache 2010-01-04 22:48:48 -10:00
Evan Prodromou cde1f99838 Disk cache plugin 2010-01-04 15:16:28 -10:00
Evan Prodromou 6add2693b0 Merge branch '0.9.x' of git@gitorious.org:statusnet/mainline into 0.9.x 2010-01-04 10:55:21 -10:00
Evan Prodromou 96480aa6c1 XCachePlugin returns false value for cache miss 2010-01-04 10:12:19 -10:00
Evan Prodromou 928b5f8f2b Differentiate between empty values and cache misses in CacheLogPlugin 2010-01-04 09:57:48 -10:00
Craig Andrews c0e4d7bfa2 Add 'takeOverLogin' parameter for a real SSO feel 2010-01-04 14:43:31 -05:00
Evan Prodromou bcddcb38ce make compression threshold and min savings config attrs for MemcachePlugin 2010-01-04 09:09:59 -10:00
Craig Andrews e440b69e1a Allow an authentication plugin with the same provider_name other than the one that actually checked the password to autoregister a user
Allows for SSO-type plugins that don't have any information about the user other than their username to do autoregistration
2010-01-04 13:35:11 -05:00
Brion Vibber 783a2e249b Fix for auto_increment parameter in auto-created tables via checkschema.
Update FeedSub plugin for non-Plugin_DataObject setup and working checkschema updates.
2010-01-04 10:30:58 -08:00
Craig Andrews 7a2d72fe28 Enable memcache automatic compression, starting at 20k and only if compression gain is greater than 20%.
Allows storage of larger objects (over 1mb in size uncompressed), such as huge LDAP schemas.
Should also improve cache efficiency (allows more stuff to be stored in same memory) and reduce network latency (less data transfer)

(redo commit 1e9c03e199 which was apparently lost during pluginization)
2010-01-04 12:49:25 -05:00
Evan Prodromou 1053abd2e8 Debug utility to log cache access 2010-01-03 11:28:00 -10:00
Evan Prodromou 07236058f4 don't try to set an expiry for XCache 2010-01-03 11:27:36 -10:00
Evan Prodromou eebc5d0d59 add keyTypes() for User_greeting_count 2010-01-03 11:27:09 -10:00
Evan Prodromou e940790241 update SamplePlugin.php also 2010-01-03 11:18:26 -10:00
Evan Prodromou 1348c6e819 Expand SamplePlugin to show other best practices
I modified the SamplePlugin to show how to do some real processing,
adding a data class and an action class and modifying the main
menu to link to the new action. I added documentation comments to
all the methods and made sure the modules were PHPCS-clean.
2010-01-03 11:02:36 -10:00
Evan Prodromou 249b2632f2 First version of cache plugin for XCache variable cache 2010-01-03 06:38:15 -10:00
Evan Prodromou d7436c10d0 Add a caching plugin for APC variable cache 2010-01-02 21:34:15 -10:00
Evan Prodromou cc5534d180 First version of Memcache plugin 2010-01-02 21:16:59 -10:00
Zach Copley e6c8f6a8f8 Removed crazy redundant broadcasting of notices by the FB app 2009-12-31 22:53:46 +00:00
Zach Copley 962eed904c - Use a stripped down new notice form for FB app because FB canvas apps
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-31 22:39:01 +00:00
Zach Copley 5621f85835 Change inline CSS stylesheet to be on a single line so it doens't blow out syntax highlighting in my editor 2009-12-31 22:39:01 +00:00
Zach Copley 450cd6774a Update to external Facebook libs 2009-12-31 22:39:01 +00:00
Evan Prodromou 053b8c600d Merge branch '0.9.x' of git@gitorious.org:statusnet/mainline into 0.9.x 2009-12-31 09:14:55 -10:00
Craig Andrews 176e0fdab7 Add missing required line so this plugin works if it's the first (or only) Authentication Plugin in use 2009-12-30 19:18:06 -05:00
Evan Prodromou 05e2b4d92d Merge branch 'master' into 0.9.x 2009-12-29 12:09:17 -08:00
Evan Prodromou 1e3fea17af don't add flag if it's already there at block time 2009-12-28 16:35:29 -08:00
Evan Prodromou 98a579fedf Merge branch 'master' into 0.9.x 2009-12-28 15:49:14 -08:00
Evan Prodromou dd0aaac70e First version of blacklist plugin
First version of blacklist plugin. Replaces custom code in identi.ca's
config.php, which was getting scary and long. Also correctly handles
changed nicknames or URLs in profile settings and using 'forbidden'
URLs in notice text.
2009-12-28 12:42:22 -08:00
Evan Prodromou d9efeb6ac3 optionally flag a profile for review when blocked 2009-12-28 11:02:44 -08:00
Evan Prodromou 6d3e6b4284 move flag creation to a method of data object 2009-12-28 10:58:49 -08:00
Evan Prodromou a80fa17872 phpcs-clean User_flag_profile as best as possible 2009-12-28 09:15:07 -08:00
Evan Prodromou 4a5bac43c3 phpcs-clean flagprofile.php 2009-12-28 09:08:28 -08:00
Evan Prodromou df98ddff0c phpcs-clean clearflag.php 2009-12-28 09:06:38 -08:00
Evan Prodromou c8fd5403e5 PHPCS-clean adminprofileflags.php 2009-12-28 08:45:21 -08:00
Evan Prodromou ea23111a56 PHPCS-clean UserFlagPlugin 2009-12-28 08:37:30 -08:00
Evan Prodromou 85b8b35f53 clear flags and show flaggers in adminflagprofile 2009-12-28 08:19:56 -08:00
Evan Prodromou 2c2a82fda0 add stuff for clearing flags to UserFlagPlugin 2009-12-28 08:19:22 -08:00
Evan Prodromou 75fbec2fa3 Add tools to clear flags
Added a form to clear all flags for a profile, when showed on
adminprofileflags list. Add an action to handle the form, and a right
for the action.
2009-12-28 07:58:33 -08:00