<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -82,12 +82,16 @@ env:
     - facebook
     - pages
     - flickr
+    - rsscloud
+    - wiki
   
   installed:
-    - password
     - twitter
+    - password
+    - streams
     - translate
     - facebook
+    - pages
     - flickr
     - rsscloud
     - wiki</diff>
      <filename>app/config/config.yml</filename>
    </modified>
    <modified>
      <diff>@@ -253,6 +253,11 @@ exit;
     $m = $this-&gt;base();
     $m-&gt;set_value( 'code', '
 
+    if (!(function_exists(\'rsscloud_schedule_post_notifications\'))) {
+		function rsscloud_schedule_post_notifications() {
+			// prevent Joseph Scott\'s plugin from loading its update feature
+		}}
+		
 		global $blogdata;
 
 		$blogdata[\'rss2_url\'] =$_POST[\'url1\'];
@@ -372,6 +377,11 @@ exit;
     $m = $this-&gt;base();
     $m-&gt;set_value( 'code', '
 
+    if (!(function_exists(\'rsscloud_schedule_post_notifications\'))) {
+		function rsscloud_schedule_post_notifications() {
+			// prevent Joseph Scott\'s plugin from loading its update feature
+		}}
+
 		global $blogdata;
 
 		$blogdata[\'rss2_url\'] = $_POST[\'url\'];</diff>
      <filename>app/omb/models/Method.php</filename>
    </modified>
    <modified>
      <diff>@@ -18,50 +18,63 @@ function post( &amp;$vars ) {
   ini_set('display_startup_errors','1');
   error_reporting (E_ALL &amp; ~E_NOTICE );
   extract( $vars );
-  $buf = file_get_contents($_FILES['opmlfile']['tmp_name']);
-  $xml = new SimpleXmlElement($buf);
   $feeds = array();
   $readinglist_description = '';
   $readinglist_title = '';
-  foreach($xml as $k=&gt;$v){
-	  foreach($v as $a=&gt;$b){
-			if ($a == 'title')
-			  $readinglist_title = (string)$b;
-			if ($a == 'outline'){
-			  foreach($b as $b2){
-				  $thisfeed = array(
-						'xmlUrl'=&gt;'',
-						'htmlUrl'=&gt;'',
-						'text'=&gt;'',
-						'type'=&gt;'',
-				    'description'=&gt;'',
-				    'email'=&gt;''
-					);
-	        foreach($b2-&gt;attributes() as $a3 =&gt; $b3) {
-	          if ($a3 == 'xmlUrl')
-	            $thisfeed['xmlUrl'] = (string)$b3;
-	          if ($a3 == 'htmlUrl')
-	            $thisfeed['htmlUrl'] = (string)$b3;
-	          if ($a3 == 'text')
-	            $thisfeed['text'] = (string)$b3;
-	          if ($a3 == 'type')
-	            $thisfeed['type'] = (string)$b3;
-	      	}
-	        if (!empty($thisfeed['xmlUrl']))
-	  				$feeds[$thisfeed['xmlUrl']] = $thisfeed;
-	        elseif (!empty($thisfeed['text']))
-	          $readinglist_description .= &quot; &quot; . $thisfeed['text'];
+  $list_id = 0;
+  if (isset($_FILES['opmlfile']['tmp_name'])){
+	  $buf = file_get_contents($_FILES['opmlfile']['tmp_name']);
+	  $xml = new SimpleXmlElement($buf);
+	  foreach($xml as $k=&gt;$v){
+		  foreach($v as $a=&gt;$b){
+				if ($a == 'title')
+				  $readinglist_title = (string)$b;
+				if ($a == 'outline'){
+				  foreach($b as $b2){
+					  $thisfeed = array(
+							'xmlUrl'=&gt;'',
+							'htmlUrl'=&gt;'',
+							'text'=&gt;'',
+							'type'=&gt;'',
+					    'description'=&gt;'',
+					    'email'=&gt;''
+						);
+		        foreach($b2-&gt;attributes() as $a3 =&gt; $b3) {
+		          if ($a3 == 'xmlUrl')
+		            $thisfeed['xmlUrl'] = (string)$b3;
+		          if ($a3 == 'htmlUrl')
+		            $thisfeed['htmlUrl'] = (string)$b3;
+		          if ($a3 == 'text')
+		            $thisfeed['text'] = (string)$b3;
+		          if ($a3 == 'type')
+		            $thisfeed['type'] = (string)$b3;
+		      	}
+		        if (!empty($thisfeed['xmlUrl']))
+		  				$feeds[$thisfeed['xmlUrl']] = $thisfeed;
+		        elseif (!empty($thisfeed['text']))
+		          $readinglist_description .= &quot; &quot; . $thisfeed['text'];
+					}
 				}
 			}
-		}
-  }
+	  }
+	  $ReadingList =&amp; $db-&gt;model('ReadingList');
+	  $list = $ReadingList-&gt;base();
+	  $list-&gt;set_value('description',$readinglist_description);
+	  $list-&gt;set_value('title',$readinglist_title);
+	  $list-&gt;save();
+  	$list_id = $list-&gt;id;
+	} elseif (isset($_POST['rss_follow'])) {
+		$thisfeed = array();
+    $thisfeed['xmlUrl'] = $_POST['rss_follow'];
+    $thisfeed['htmlUrl'] = $_POST['rss_link'];
+    $thisfeed['text'] = $_POST['rss_title'];
+    $thisfeed['type'] = 'rss';
+  	$feeds[$thisfeed['xmlUrl']] = $thisfeed;
+	} else{
+		trigger_error('no feeds found', E_USER_ERROR);
+	}
   $Feed =&amp; $db-&gt;model('Feed');
-  $ReadingList =&amp; $db-&gt;model('ReadingList');
   $Subscription =&amp; $db-&gt;model('Subscription');
-  $list = $ReadingList-&gt;base();
-  $list-&gt;set_value('description',$readinglist_description);
-  $list-&gt;set_value('title',$readinglist_title);
-  $list-&gt;save();
 	foreach($feeds as $f){
 		$fd = $Feed-&gt;find_by('xref',$f['xmlUrl']);
     if (!$fd){
@@ -127,7 +140,7 @@ function post( &amp;$vars ) {
 			),true);
 			if ($i){
 				$fd-&gt;set_value('profile_id',$i-&gt;id);
-				$fd-&gt;set_value('reading_list_id',$list-&gt;id);
+				$fd-&gt;set_value('reading_list_id',$list_id);
 	  		$fd-&gt;save_changes();
         $s = $Subscription-&gt;base();
         $s-&gt;set_value( 'subscriber', get_profile_id() );
@@ -136,6 +149,24 @@ function post( &amp;$vars ) {
         $s-&gt;set_etag(get_person_id());
 			}
 		}
+		if (isset($f['domain']) &amp;&amp; !empty($_POST['rss_follow'])){
+			$subscribe_url = &quot;http://&quot; . $f['domain'] . &quot;:&quot; . $f['port'] . &quot;&quot; . $f['path'] . &quot;&quot;;
+			$params = array(
+				'notifyProcedure'=&gt;get_option('cloud_function'),
+				'port'=&gt;get_option('cloud_port'),
+				'path'=&gt;'/api/rsscloud/callback',
+				'protocol'=&gt;get_option('cloud_protocol'),
+				'url1'=&gt;$f['xmlUrl'],
+				'domain'=&gt;get_option('cloud_domain')
+			);
+	    require_once(ABSPATH.WPINC.'/class-snoopy.php');
+			$snoop = new Snoopy;
+				$snoop-&gt;submit(
+					$subscribe_url,
+					$params
+				);
+			admin_alert(&quot;rssCloud follow: &quot; . $f['title']);
+		}
 	}
   //$resource-&gt;insert_from_post( $request );
   header_status( '201 Created' );</diff>
      <filename>app/rsscloud/controllers/feeds.php</filename>
    </modified>
    <modified>
      <diff>@@ -12,18 +12,16 @@ function set_up_cloud_ping(){
 }
 
 function set_up_cloud_toplevel_ping(){
-	$pid = get_profile_id();
-	global $optiondata,$request,$blogdata;
-	$optiondata['cloud_domain'] = get_option('cloud_domain',$pid);
-	$optiondata['cloud_port'] = get_option('cloud_port',$pid);
-	$optiondata['cloud_path'] = get_option('cloud_path',$pid);
-	$optiondata['cloud_function'] = get_option('cloud_function',$pid);
-	$optiondata['cloud_protocol'] = get_option('cloud_protocol',$pid);
-	$blogdata['rss2_url'] = $request-&gt;url_for(array('resource'=&gt;'posts.rss'));
+	global $optiondata;
+	$optiondata['cloud_domain'] = get_option('cloud_domain');
+	$optiondata['cloud_port'] = get_option('cloud_port');
+	$optiondata['cloud_path'] = get_option('cloud_path');
+	$optiondata['cloud_function'] = get_option('cloud_function');
+	$optiondata['cloud_protocol'] = get_option('cloud_protocol');
 }
 
-before_filter( 'set_up_cloud_ping', 'insert_from_post');
-before_filter( 'rss_cloud_ping', 'insert_from_post' );
 before_filter( 'set_up_cloud_toplevel_ping', 'insert_from_post');
 before_filter( 'rss_cloud_ping', 'insert_from_post' );
+before_filter( 'set_up_cloud_ping', 'insert_from_post');
+before_filter( 'rss_cloud_ping', 'insert_from_post' );
 </diff>
      <filename>app/rsscloud/plugins/rsscloud.php</filename>
    </modified>
    <modified>
      <diff>@@ -35,8 +35,14 @@
 	&lt;a href=&quot;JavaScript:show_page('&lt;?php url_for( array( 'resource'=&gt;'admin', 'action'=&gt;'cloud' )); ?&gt;/partial');&quot;&gt;
 	   &lt;h2&gt; Advanced Options...&lt;/h2&gt;
 	  &lt;/a&gt;
-
-
+	
+	&lt;form action=&quot;&lt;?php url_for( array('resource'=&gt;'feeds') ); ?&gt;&quot; method=&quot;post&quot; enctype=&quot;multipart/form-data&quot;&gt;
+	&lt;input name=&quot;method&quot; type=&quot;hidden&quot; value=&quot;post&quot; /&gt;
+	RSS&lt;input name=&quot;rss_follow&quot; value=&quot;&quot;&gt;
+	Title&lt;input name=&quot;rss_title&quot; value=&quot;&quot;&gt;
+	Link&lt;input name=&quot;rss_link&quot; value=&quot;&quot;&gt;
+	&lt;input type=&quot;submit&quot; value=&quot;Follow rssCloud Feed&quot;&gt;
+	&lt;/form&gt;
 
 
 </diff>
      <filename>app/rsscloud/views/feeds/_index.html</filename>
    </modified>
    <modified>
      <diff>@@ -404,6 +404,13 @@ if ($pretty_url_base &amp;&amp; !mu_url() &amp;&amp; !('http://'.$subdomain.&quot;.&quot;.$rest == $pretty
 } elseif (mu_url()) {
   $pattern='/(\?)?twitter\/([a-z]+)(\/?)/';
   if ( 1 &lt;= preg_match_all( $pattern, $request-&gt;uri, $found )) {
+	  if ($pretty_url_base &amp;&amp; environment('subdomains')){
+		  $trail = &quot;/&quot;;
+		  $pattern2='/(\?)?twitter\/([a-z]+)(\/?)(\/.+)/';
+		  if ( 1 &lt;= preg_match_all( $pattern2, $request-&gt;uri, $found2 ))
+        $trail = $found2[4][0];
+      redirect_to('http://'.$found[2][0].&quot;.&quot;.$request-&gt;domain.$trail);
+	  }
     $uri = $request-&gt;uri;
     $tags[] = $found;
     // XXX subdomain upgrade</diff>
      <filename>db/boot.php</filename>
    </modified>
    <modified>
      <diff>@@ -3216,24 +3216,39 @@ function esc_html($text) {
 
 function wp_remote_post( $url, $paramarr ){
 
+	return wp_remote_get( $url, $paramarr, true );
+
+}
+
+function esc_url($url){
+	return urlencode($url);
+}
+
+function wp_remote_get( $url, $paramarr, $post=false ){
+
   $method = $paramarr['method'];
   $timeout = $paramarr['timeout'];
   $agent = $paramarr['user-agent'];
   $port = $paramarr['port'];
 
-  foreach($paramarr['body'] as $url) {
-    // test the callback	
-  }
-
-	//  	'method' =&gt; 'POST', 
-	//	  'timeout' =&gt; RSSCLOUD_HTTP_TIMEOUT, 
-	//	  'user-agent' =&gt; RSSCLOUD_USER_AGENT, 
-	//	  'port' =&gt; $port, 
-	//	  'body' =&gt; array( 
-	//		'url' =&gt; $_POST['url1']
-	
+	$ch = curl_init();
+	curl_setopt ($ch, CURLOPT_URL, $url);
+	curl_setopt ($ch, CURLOPT_HEADER, 0); /// Header control
+	curl_setopt ($ch, CURLOPT_PORT, $port);
+	if ($post){
+	  curl_setopt ($ch, CURLOPT_POST, true);  /// tell it to make a POST, not a GET
+  	curl_setopt ($ch, CURLOPT_POSTFIELDS, $paramarr['body']);
+ 	}
+  curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
+   curl_setopt( $curl, CURLOPT_TIMEOUT, $timeout);
+   curl_setopt($ch, CURLOPT_USERAGENT, $agent);
+	curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
+	$xml_response = curl_exec ($ch);
+	$response = curl_getinfo( $ch );
+  curl_close ( $ch );
   $result = array();
-  $result['response'] = array('code'=&gt;200);
+  $result['response'] = array('code'=&gt;$response['http_code']);
+  $result['body']=$xml_response;
   return $result;
 
 }</diff>
      <filename>db/library/dbscript/_functions.php</filename>
    </modified>
    <modified>
      <diff>@@ -11,8 +11,10 @@ function rsscloud_hub_process_notification_request( ) {
 
 	// Only support http-post
 	$protocol = 'http-post';
-	if ( !empty( $_POST['protocol'] ) &amp;&amp; strtolower( $_POST['protocol'] ) !== 'http-post' )
+	if ( !empty( $_POST['protocol'] ) &amp;&amp; strtolower( $_POST['protocol'] ) !== 'http-post' ) {
+		do_action( 'rsscloud_protocol_not_post' );
 		rsscloud_notify_result( 'false', 'Only http-post notifications are supported at this time.' );
+	}
 
 	// Assume port 80
 	$port = 80;
@@ -27,18 +29,38 @@ function rsscloud_hub_process_notification_request( ) {
 	if ( $path{0} != '/' )
 		$path = '/' . $path;
 
-	// Process each URL request: url1, url2, url3 ... urlN
+	// Figure out what the blog and notification URLs are
 	$rss2_url = get_bloginfo( 'rss2_url' );
+	if ( defined( 'RSSCLOUD_FEED_URL' ) )
+		$rss2_url = RSSCLOUD_FEED_URL;
+
 	$notify_url = $_SERVER['REMOTE_ADDR'] . ':' . $port . $path;
-	if (isset($_POST['domain']) &amp;&amp; !empty($_POST['domain']))
-		$notify_url = $_POST['domain'] . ':' . $port . $path;
 
-	// Attempt a notification to see if it will work
-	$result = wp_remote_post( $notify_url, array( 'method' =&gt; 'POST', 'timeout' =&gt; RSSCLOUD_HTTP_TIMEOUT, 'user-agent' =&gt; RSSCLOUD_USER_AGENT, 'port' =&gt; $port, 'body' =&gt; array( 'url' =&gt; $_POST['url1'] ) ) );
+	if ( !empty( $_POST['domain'] ) ) {
+		$domain = str_replace( '@', '', $_POST['domain'] );
+		$notify_url = $domain . ':' . $port . $path;
+
+		$challenge = rsscloud_generate_challenge( );
+
+		$result = wp_remote_get( $notify_url . '?url=' . esc_url( $_POST['url1'] ) . '&amp;challenge=' . $challenge, array( 'method' =&gt; 'GET', 'timeout' =&gt; RSSCLOUD_HTTP_TIMEOUT, 'user-agent' =&gt; RSSCLOUD_USER_AGENT, 'port' =&gt; $port, ) );
+	} else {
+		$result = wp_remote_post( $notify_url, array( 'method' =&gt; 'POST', 'timeout' =&gt; RSSCLOUD_HTTP_TIMEOUT, 'user-agent' =&gt; RSSCLOUD_USER_AGENT, 'port' =&gt; $port, 'body' =&gt; array( 'url' =&gt; $_POST['url1'] ) ) );
+	}
+
 	if ( isset( $result-&gt;errors['http_request_failed'][0] ) )
 		rsscloud_notify_result( 'false', 'Error testing notification URL : ' . $result-&gt;errors['http_request_failed'][0] );
-	if ( $result['response']['code'] != 200 )
-		rsscloud_notify_result( 'false', 'Error testing notification URL.' );
+
+	$status_code = (int) $result['response']['code'];
+
+	if ( $status_code &lt; 200 || $status_code &gt; 299 )
+		rsscloud_notify_result( 'false', 'Error testing notification URL.  The URL returned HTTP status code: ' . $result['response']['code'] . ' - ' . $result['response']['message'] . '.' );
+
+	// challenge must match for domain requests
+	if ( !empty( $_POST['domain'] ) ) {
+		if ( empty( $result['body'] ) || $result['body'] != $challenge )
+			rsscloud_notify_result( 'false', 'The response body did not match the challenge string' );
+
+	}
 
 	// Passed all the tests, add this to the list of notifications for
 	foreach ( $_POST as $key =&gt; $feed_url ) {
@@ -47,13 +69,15 @@ function rsscloud_hub_process_notification_request( ) {
 
 		// Only allow requests for the RSS2 posts feed
 		if ( $feed_url != $rss2_url )
-			continue;
+			rsscloud_notify_result( 'false', &quot;You can only request updates for {$rss2_url}&quot; );
 
 		$notify[$feed_url][$notify_url]['protocol'] = $protocol;
 		$notify[$feed_url][$notify_url]['status'] = 'active';
 		$notify[$feed_url][$notify_url]['failure_count'] = 0;
 	}
 
+	do_action( 'rsscloud_add_notify_subscription' );
+
 	rsscloud_update_hub_notifications( $notify );
 	rsscloud_notify_result( 'true', 'Registration successful.' );
 } // function rsscloud_hub_notify</diff>
      <filename>db/library/rsscloud/notification-request.php</filename>
    </modified>
    <modified>
      <diff>@@ -3,7 +3,7 @@
 Plugin Name: RSS Cloud
 Plugin URI:
 Description: Ping RSS Cloud servers
-Version: 0.3.2
+Version: 0.4.1
 Author: Joseph Scott
 Author URI: http://josephscott.org/
  */
@@ -12,7 +12,7 @@ Author URI: http://josephscott.org/
 # define( 'RSSCLOUD_NOTIFICATIONS_INSTANT', true );
 
 if ( !defined( 'RSSCLOUD_USER_AGENT' ) )
-	define( 'RSSCLOUD_USER_AGENT', 'WordPress/RSSCloud 0.1' );
+	define( 'RSSCLOUD_USER_AGENT', 'WordPress/RSSCloud 0.4.0' );
 
 if ( !defined( 'RSSCLOUD_MAX_FAILURES' ) )
 	define( 'RSSCLOUD_MAX_FAILURES', 5 );
@@ -26,6 +26,9 @@ if ( !function_exists( 'rsscloud_hub_process_notification_request' ) )
 	require dirname( __FILE__ ) . '/notification-request.php';
 
 if ( !function_exists( 'rsscloud_schedule_post_notifications' ) )
+	require dirname( __FILE__ ) . '/schedule-post-notifications.php';
+
+if ( !function_exists( 'rsscloud_send_post_notifications' ) )
 	require dirname( __FILE__ ) . '/send-post-notifications.php';
 
 add_filter( 'query_vars', 'rsscloud_query_vars' );
@@ -76,3 +79,15 @@ function rsscloud_add_rss_cloud_element( ) {
 	echo &quot; protocol='http-post' /&gt;&quot;;
 	echo &quot;\n&quot;;
 }
+
+function rsscloud_generate_challenge( $length = 30 ) {
+    $chars = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
+    $chars_length = strlen( $chars );
+
+    $string = '';
+    for ( $i = 0; $i &lt; $length; $i++ ) {
+        $string .= $chars{mt_rand( 0, $chars_length )};
+    }
+
+    return $string;
+}</diff>
      <filename>db/library/rsscloud/rsscloud.php</filename>
    </modified>
    <modified>
      <diff>@@ -1,39 +1,50 @@
 &lt;?php
+function rsscloud_send_post_notifications( $rss2_url = false ) {
+	if ( $rss2_url === false ) {
+		$rss2_url = get_bloginfo( 'rss2_url' );
+		if ( defined( 'RSSCLOUD_FEED_URL' ) )
+			$rss2_url = RSSCLOUD_FEED_URL;
 
-add_action( 'publish_post', 'rsscloud_schedule_post_notifications' );
-function rsscloud_schedule_post_notifications( ) {
-	if ( !defined( 'RSSCLOUD_NOTIFICATIONS_INSTANT' ) || !RSSCLOUD_NOTIFICATIONS_INSTANT )
-		wp_schedule_single_event( time( ), 'rsscloud_send_post_notifications_action' );
-	else
-		rsscloud_send_post_notifications( );
+	}
 
-}
+	do_action( 'rsscloud_feed_notifications', $rss2_url );
 
-add_action( 'rsscloud_send_post_notifications_action', 'rsscloud_send_post_notifications' );
-function rsscloud_send_post_notifications( ) {
-	$rss2_url = get_bloginfo( 'rss2_url' );
 	$notify = rsscloud_get_hub_notifications( );
 	if ( !is_array( $notify ) )
 		$notify = array( );
 
+	$need_update = false;
 	foreach ( $notify[$rss2_url] as $notify_url =&gt; $n ) {
-		if ( $n['status'] == 'active' ) {
-			if ( $n['protocol'] == 'http-post' ) {
-				$url = parse_url( $notify_url );
-				$port = 80;
-				if ( !empty( $url['port'] ) )
-					$port = $url['port'];
-
-				$result = wp_remote_post( $notify_url, array( 'method' =&gt; 'POST', 'timeout' =&gt; RSSCLOUD_HTTP_TIMEOUT, 'user-agent' =&gt; RSSCLOUD_USER_AGENT, 'port' =&gt; $port, 'body' =&gt; array( 'url' =&gt; $rss2_url ) ) );
-
-				$need_update = false;
-				if ( $result['response']['code'] != 200 ) {
-					$notify[$rss2_url][$notify_url]['failure_count']++;
-					$need_update = true;
-				} elseif ( $notify[$rss2_url][$notify_url]['failure_count'] &gt; RSSCLOUD_MAX_FAILURES ) {
+		if ( $n['status'] != 'active' )
+			continue;
+
+		if ( $n['protocol'] == 'http-post' ) {
+			$url = parse_url( $notify_url );
+			$port = 80;
+			if ( !empty( $url['port'] ) )
+				$port = $url['port'];
+
+			$result = wp_remote_post( $notify_url, array( 'method' =&gt; 'POST', 'timeout' =&gt; RSSCLOUD_HTTP_TIMEOUT, 'user-agent' =&gt; RSSCLOUD_USER_AGENT, 'port' =&gt; $port, 'body' =&gt; array( 'url' =&gt; $rss2_url ) ) );
+
+			do_action( 'rsscloud_send_notification' );
+
+			if ( !is_wp_error( $result ) )
+				$status_code = (int) $result['response']['code'];
+
+			if ( is_wp_error( $result ) || ( $status_code &lt; 200 || $status_code &gt; 299 ) ) {
+				do_action( 'rsscloud_notify_failure' );
+				$notify[$rss2_url][$notify_url]['failure_count']++;
+
+				if ( $notify[$rss2_url][$notify_url]['failure_count'] &gt; RSSCLOUD_MAX_FAILURES ) {
+					do_action( 'rsscloud_suspend_notification_url' );
 					$notify[$rss2_url][$notify_url]['status'] = 'suspended';
-					$need_update = true;
 				}
+
+				$need_update = true;
+			} elseif ( $notify[$rss2_url][$notify_url]['failure_count'] &gt; 0 ) {
+				do_action( 'rsscloud_reset_failure_count' );
+				$notify[$rss2_url][$notify_url]['failure_count'] = 0;
+				$need_update = true;
 			}
 		}
 	} // foreach</diff>
      <filename>db/library/rsscloud/send-post-notifications.php</filename>
    </modified>
    <modified>
      <diff>@@ -86,7 +86,7 @@
   &lt;?php if (!in_array('settings',$request-&gt;activeroute-&gt;patterns)) { ?&gt;
   &lt;?php if (!isset($request-&gt;params['nickname'])) : ?&gt;
 
-    &lt;img width=&quot;32&quot; height=&quot;32&quot; class=&quot;profile&quot; src=&quot;&lt;?php echo profile_get_avatar($profile); ?&gt;&quot; alt=&quot;&lt;?php echo $profile-&gt;fullname; ?&gt;&quot; /&gt;&lt;a class=&quot;profile-nick&quot; href=&quot;&lt;?php echo $profile-&gt;profile_url; ?&gt;&quot;&gt;&lt;?php echo $profile-&gt;nickname; ?&gt;&lt;/a&gt;
+    &lt;img width=&quot;32&quot; height=&quot;32&quot; class=&quot;profile&quot; src=&quot;&lt;?php echo profile_get_avatar($profile); ?&gt;&quot; alt=&quot;&lt;?php echo $profile-&gt;fullname; ?&gt;&quot; /&gt;&lt;a class=&quot;profile-nick&quot; href=&quot;&lt;?php echo $request-&gt;url_for(array(&quot;resource&quot;=&gt;$profile-&gt;nickname)); ?&gt;&quot;&gt;&lt;?php echo $profile-&gt;nickname; ?&gt;&lt;/a&gt;
     &lt;br /&gt;&lt;br /&gt;
   &lt;?php endif; ?&gt;
   </diff>
      <filename>wp-content/themes/p2/sidebar.php</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>70afecfa3e78152ca6dce676c851f73caa1e8d5a</id>
    </parent>
  </parents>
  <author>
    <name>Brian Hendrickson</name>
    <email>brian@www.apple.com.akadns.net</email>
  </author>
  <url>http://github.com/voitto/openmicroblogger/commit/acf737e86c94f78867347b7b8e55700d84750777</url>
  <id>acf737e86c94f78867347b7b8e55700d84750777</id>
  <committed-date>2009-10-31T02:23:37-07:00</committed-date>
  <authored-date>2009-10-31T02:23:37-07:00</authored-date>
  <message>rsscloud fixes, subdomain url rewrites</message>
  <tree>e817e4034da91e177c92bbde4f2a41dee3b6fd31</tree>
  <committer>
    <name>Brian Hendrickson</name>
    <email>brian@www.apple.com.akadns.net</email>
  </committer>
</commit>
