]> git.mxchange.org Git - friendica.git/commitdiff
add google buzz
authorFriendika <info@friendika.com>
Sun, 21 Nov 2010 23:25:10 +0000 (15:25 -0800)
committerFriendika <info@friendika.com>
Sun, 21 Nov 2010 23:25:10 +0000 (15:25 -0800)
include/acl_selectors.php
include/notifier.php
mod/follow.php

index 9bbd6bcb474d056cf2edb46aafe9ce468c6c620a..d0952421ea3b92aa78d4a9b79f5a0d42f3481034 100644 (file)
@@ -40,7 +40,7 @@ function contact_select($selname, $selclass, $preselected = false, $size = 4, $p
        $sql_extra = '';
 
        if($privmail || $celeb) {
-               $sql_extra = sprintf(" AND `rel` = %d ", intval(REL_BUD));
+               $sql_extra .= sprintf(" AND `rel` = %d ", intval(REL_BUD));
        }
 
        if($privmail)
@@ -49,7 +49,7 @@ function contact_select($selname, $selclass, $preselected = false, $size = 4, $p
                $o .= "<select name=\"{$selname}[]\" id=\"$selclass\" class=\"$selclass\" multiple=\"multiple\" size=\"$size\" >\r\n";
 
        $r = q("SELECT `id`, `name`, `url`, `network` FROM `contact` 
-               WHERE `uid` = %d AND `self` = 0 AND `blocked` = 0 AND `pending` = 0 
+               WHERE `uid` = %d AND `self` = 0 AND `blocked` = 0 AND `pending` = 0 AND `notify` != ''
                $sql_extra
                ORDER BY `name` ASC ",
                intval(local_user())
index 405688ab111c381749030de48737c51de8c49506..f22917e4ffd4d0d56b9a8b91f7fee31f3b913a86 100644 (file)
                                $deliver_status = dfrn_deliver($owner,$contact,$atom);
                                break;
                        default:
-                               if($followup) {
+                               if($followup && $contact['notify']) {
                                        slapper($owner,$contact['notify'],$slap);
                                }
                                else {
                                        if(count($slaps) && $notify_hub) {
                                                logger('notifier: slapdelivery: ' . $contact['name']);
                                                foreach($slaps as $slappy) {
-                                                       slapper($owner,$contact['notify'],$slappy);
+                                                       if($contact['notify']) {
+                                                               slapper($owner,$contact['notify'],$slappy);
+                                                       }
                                                }
                                        }
                                }
                foreach($url_recipients as $url) {
                        logger('notifier: urldelivery: ' . $url);
                        foreach($slaps as $slappy) {
-                               slapper($owner,$url,$slappy);
+                               if($url) {
+                                       slapper($owner,$url,$slappy);
+                               }
                        }
                }
        }
index d839a04d4a5afeeb0c0edf0c8f64b20dabed0125..dfc3945028290399738ce6eb32482f941a69282c 100644 (file)
@@ -50,6 +50,14 @@ function follow_post(&$a) {
 
        if($hcard) {
                $vcard = scrape_vcard($hcard);
+
+               // Google doesn't use absolute url in profile photos
+
+               if((x($vcard,'photo')) && substr($vcard['photo'],0,1) == '/') {
+                       $h = parse_url($hcard);
+                       if($h)
+                               $vcard['photo'] = $h['scheme'] . '://' . $h['host'] . $vcard['photo'];
+               }
        }
 
        if(! $profile)
@@ -61,10 +69,16 @@ function follow_post(&$a) {
                if(x($vcard,'nick'))
                        $vcard['fn'] = $vcard['nick'];
 
-       if(! ((x($vcard['fn'])) && ($poll) && ($notify) && ($profile))) {
+       logger('follow: poll=' . $poll . ' notify=' . $notify . ' profile=' . $profile . ' vcard=' . print_r($vcard,true));
+       
+       if(! ((x($vcard['fn'])) && ($poll) && ($profile))) {
                notice( t('The profile address specified does not provide adequate information.') . EOL);
                goaway($_SESSION['return_url']);
-       } 
+       }
+
+       if(! $notify) {
+               notice( t('Limited profile. This person will be unable to receive direct/personal notifications from you.') . EOL);
+       }
 
        if(! x($vcard,'photo'))
                $vcard['photo'] = $a->get_baseurl() . '/images/default-profile.jpg' ; 
@@ -77,6 +91,7 @@ function follow_post(&$a) {
                intval(local_user()),
                dbesc($poll)
        );                      
+
        if(count($r)) {
                // update contact
                if($r[0]['rel'] == REL_VIP) {
@@ -104,10 +119,12 @@ function follow_post(&$a) {
                        intval(REL_FAN)
                );
        }
+
        $r = q("SELECT * FROM `contact` WHERE `url` = '%s' AND `uid` = %d LIMIT 1",
                dbesc($profile),
                intval(local_user())
        );
+
        if(! count($r)) {
                notice( t('Unable to retrieve contact information.') . EOL);
                goaway($_SESSION['return_url']);