X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=include%2Ffollow.php;h=285f864b94d1424257c9bf8c044bb1a676d8237f;hb=2e75e37c932266f71c515839d1044e4677760c1f;hp=22288a0daf64b1d01ed134de487f494852012187;hpb=645c2f90928bc5a29548001f9600ca3807b8c149;p=friendica.git diff --git a/include/follow.php b/include/follow.php index 22288a0daf..285f864b94 100644 --- a/include/follow.php +++ b/include/follow.php @@ -48,9 +48,9 @@ function new_contact($uid,$url,$interactive = false) { $myaddr = bin2hex($a->get_baseurl() . '/profile/' . $a->user['nickname']); else $myaddr = bin2hex($a->user['nickname'] . '@' . $a->get_hostname()); - + goaway($ret['request'] . "&addr=$myaddr"); - + // NOTREACHED } } @@ -61,7 +61,12 @@ function new_contact($uid,$url,$interactive = false) { return $result; } } - + + + + + + // This extra param just confuses things, remove it if($ret['network'] === NETWORK_DIASPORA) $ret['url'] = str_replace('?absolute=true','',$ret['url']); @@ -89,6 +94,11 @@ function new_contact($uid,$url,$interactive = false) { $ret['notify'] = ''; } + + + + + if(! $ret['notify']) { $result['message'] .= t('Limited profile. This person will be unable to receive direct/personal notifications from you.') . EOL; } @@ -101,7 +111,7 @@ function new_contact($uid,$url,$interactive = false) { if($ret['network'] === NETWORK_MAIL) { $writeable = 1; - + } if($ret['network'] === NETWORK_DIASPORA) $writeable = 1; @@ -113,13 +123,13 @@ function new_contact($uid,$url,$interactive = false) { $r = q("SELECT * FROM `contact` WHERE `uid` = %d AND `poll` = '%s' LIMIT 1", intval($uid), dbesc($ret['poll']) - ); + ); if(count($r)) { // update contact if($r[0]['rel'] == CONTACT_IS_FOLLOWER || ($network === NETWORK_DIASPORA && $r[0]['rel'] == CONTACT_IS_SHARING)) { - q("UPDATE `contact` SET `rel` = %d , `subhub` = %d, `readonly` = 0 WHERE `id` = %d AND `uid` = %d LIMIT 1", + q("UPDATE `contact` SET `rel` = %d , `subhub` = %d, `readonly` = 0 WHERE `id` = %d AND `uid` = %d", intval(CONTACT_IS_FRIEND), intval($subhub), intval($r[0]['id']), @@ -129,6 +139,32 @@ function new_contact($uid,$url,$interactive = false) { } else { + + // check service class limits + + $r = q("select count(*) as total from contact where uid = %d and pending = 0 and self = 0", + intval($uid) + ); + if(count($r)) + $total_contacts = $r[0]['total']; + + if(! service_class_allows($uid,'total_contacts',$total_contacts)) { + $result['message'] .= upgrade_message(); + return $result; + } + + $r = q("select count(network) as total from contact where uid = %d and network = '%s' and pending = 0 and self = 0", + intval($uid), + dbesc($network) + ); + if(count($r)) + $total_network = $r[0]['total']; + + if(! service_class_allows($uid,'total_contacts_' . $network,$total_network)) { + $result['message'] .= upgrade_message(); + return $result; + } + $new_relation = (($ret['network'] === NETWORK_MAIL) ? CONTACT_IS_FRIEND : CONTACT_IS_SHARING); if($ret['network'] === NETWORK_DIASPORA) $new_relation = CONTACT_IS_FOLLOWER; @@ -182,17 +218,17 @@ function new_contact($uid,$url,$interactive = false) { group_add_member($uid,'',$contact_id,$g[0]['def_gid']); } - require_once("Photo.php"); + require_once("include/Photo.php"); $photos = import_profile_photo($ret['photo'],$uid,$contact_id); - $r = q("UPDATE `contact` SET `photo` = '%s', + $r = q("UPDATE `contact` SET `photo` = '%s', `thumb` = '%s', - `micro` = '%s', - `name-date` = '%s', - `uri-date` = '%s', + `micro` = '%s', + `name-date` = '%s', + `uri-date` = '%s', `avatar-date` = '%s' - WHERE `id` = %d LIMIT 1 + WHERE `id` = %d ", dbesc($photos[0]), dbesc($photos[1]), @@ -201,7 +237,7 @@ function new_contact($uid,$url,$interactive = false) { dbesc(datetime_convert()), dbesc(datetime_convert()), intval($contact_id) - ); + ); // pull feed and consume it, which should subscribe to the hub. @@ -226,7 +262,7 @@ function new_contact($uid,$url,$interactive = false) { '$ostat_follow' => '' )); - $r = q("SELECT `contact`.*, `user`.* FROM `contact` LEFT JOIN `user` ON `contact`.`uid` = `user`.`uid` + $r = q("SELECT `contact`.*, `user`.* FROM `contact` INNER JOIN `user` ON `contact`.`uid` = `user`.`uid` WHERE `user`.`uid` = %d AND `contact`.`self` = 1 LIMIT 1", intval($uid) );