]> git.mxchange.org Git - friendica.git/commitdiff
Profile update is now working with the new function as well
authorMichael Vogel <icarus@dabo.de>
Mon, 14 Mar 2016 21:10:26 +0000 (22:10 +0100)
committerMichael Vogel <icarus@dabo.de>
Mon, 14 Mar 2016 21:10:26 +0000 (22:10 +0100)
include/diaspora2.php
include/profile_update.php

index 1a354e9cf2504a7c0ad02da1369d229a94d82a5e..75cedeccd1b3254a91b4221702539c755a745050 100644 (file)
@@ -2058,7 +2058,7 @@ class diaspora {
        }
 
 
-       private function build_and_transmit($owner, $contact, $type, $message, $public_batch = false, $guid = "") {
+       private function build_and_transmit($owner, $contact, $type, $message, $public_batch = false, $guid = "", $spool = false) {
 
                $data = array("XML" => array("post" => array($type => $message)));
 
@@ -2069,7 +2069,11 @@ class diaspora {
 
                $slap = self::build_message($msg, $owner, $contact, $owner['uprvkey'], $contact['pubkey'], $public_batch);
 
-               $return_code = self::transmit($owner, $contact, $slap, $public_batch, false, $guid);
+               if ($spool) {
+                       add_to_queue($contact['id'], NETWORK_DIASPORA, $slap, $public_batch);
+                       return true;
+               } else
+                       $return_code = self::transmit($owner, $contact, $slap, $public_batch, false, $guid);
 
                logger("guid: ".$item["guid"]." result ".$return_code, LOGGER_DEBUG);
 
@@ -2467,5 +2471,83 @@ class diaspora {
 
                return self::build_and_transmit($owner, $contact, $type, $message, false, $item["guid"]);
        }
+
+       public static function send_profile($uid) {
+
+               if (!$uid)
+                       return;
+
+               $recips = q("SELECT `id`,`name`,`network`,`pubkey`,`notify` FROM `contact` WHERE `network` = '%s'
+                       AND `uid` = %d AND `rel` != %d",
+                       dbesc(NETWORK_DIASPORA),
+                       intval($uid),
+                       intval(CONTACT_IS_SHARING)
+               );
+               if (!$recips)
+                       return;
+
+               $r = q("SELECT `profile`.`uid` AS `profile_uid`, `profile`.* , `user`.*, `user`.`prvkey` AS `uprvkey`, `contact`.`addr`
+                       FROM `profile`
+                       INNER JOIN `user` ON `profile`.`uid` = `user`.`uid`
+                       INNER JOIN `contact` ON `profile`.`uid` = `contact`.`uid`
+                       WHERE `user`.`uid` = %d AND `profile`.`is-default` AND `contact`.`self` LIMIT 1",
+                       intval($uid)
+               );
+
+               if (!$r)
+                       return;
+
+               $profile = $r[0];
+
+               $handle = $profile["addr"];
+               $first = ((strpos($profile['name'],' ')
+                       ? trim(substr($profile['name'],0,strpos($profile['name'],' '))) : $profile['name']));
+               $last = (($first === $profile['name']) ? '' : trim(substr($profile['name'], strlen($first))));
+               $large = App::get_baseurl().'/photo/custom/300/'.$profile['uid'].'.jpg';
+               $medium = App::get_baseurl().'/photo/custom/100/'.$profile['uid'].'.jpg';
+               $small = App::get_baseurl().'/photo/custom/50/'  .$profile['uid'].'.jpg';
+               $searchable = (($profile['publish'] && $profile['net-publish']) ? 'true' : 'false');
+
+               if ($searchable === 'true') {
+                       $dob = '1000-00-00';
+
+                       if (($profile['dob']) && ($profile['dob'] != '0000-00-00'))
+                               $dob = ((intval($profile['dob'])) ? intval($profile['dob']) : '1000') .'-'. datetime_convert('UTC','UTC',$profile['dob'],'m-d');
+
+                       $about = $profile['about'];
+                       $about = strip_tags(bbcode($about));
+
+                       $location = formatted_location($profile);
+                       $tags = '';
+                       if ($profile['pub_keywords']) {
+                               $kw = str_replace(',',' ',$profile['pub_keywords']);
+                               $kw = str_replace('  ',' ',$kw);
+                               $arr = explode(' ',$profile['pub_keywords']);
+                               if (count($arr)) {
+                                       for($x = 0; $x < 5; $x ++) {
+                                               if (trim($arr[$x]))
+                                                       $tags .= '#'. trim($arr[$x]) .' ';
+                                       }
+                               }
+                       }
+                       $tags = trim($tags);
+               }
+
+               $message = array("diaspora_handle" => $handle,
+                               "first_name" => $first,
+                               "last_name" => $last,
+                               "image_url" => $large,
+                               "image_url_medium" => $medium,
+                               "image_url_small" => $small,
+                               "birthday" => $dob,
+                               "gender" => $profile['gender'],
+                               "bio" => $about,
+                               "location" => $location,
+                               "searchable" => $searchable,
+                               "tag_string" => $tags);
+
+               foreach($recips as $recip)
+                       self::build_and_transmit($profile, $recip, "profile", $message, false, "", true);
+       }
 }
 ?>
index 7cc72cc86604d801d08bdbbc88532b1055393b2f..399150f21cb8f8d763840a9dfdd74a98d5892b61 100644 (file)
@@ -1,96 +1,6 @@
 <?php
-
-require_once('include/datetime.php');
 require_once('include/diaspora.php');
-require_once('include/queue_fn.php');
-require_once('include/Contact.php');
 
 function profile_change() {
-
-       $a = get_app();
-
-       if(! local_user())
-               return;
-
-//   $url = $a->get_baseurl() . '/profile/' . $a->user['nickname'];
-//   if($url && strlen(get_config('system','directory')))
-//      proc_run('php',"include/directory.php","$url");
-
-       $recips = q("SELECT `id`,`name`,`network`,`pubkey`,`notify` FROM `contact` WHERE `network` = '%s'
-               AND `uid` = %d AND `rel` != %d ",
-               dbesc(NETWORK_DIASPORA),
-               intval(local_user()),
-               intval(CONTACT_IS_SHARING)
-       );
-       if(! count($recips))
-               return;
-
-       $r = q("SELECT `profile`.`uid` AS `profile_uid`, `profile`.* , `user`.* FROM `profile`
-               INNER JOIN `user` ON `profile`.`uid` = `user`.`uid`
-               WHERE `user`.`uid` = %d AND `profile`.`is-default` = 1 LIMIT 1",
-               intval(local_user())
-       );
-
-       if(! count($r))
-               return;
-       $profile = $r[0];
-
-       $handle = xmlify($a->user['nickname'] . '@' . substr($a->get_baseurl(), strpos($a->get_baseurl(),'://') + 3));
-       $first = xmlify(((strpos($profile['name'],' '))
-               ? trim(substr($profile['name'],0,strpos($profile['name'],' '))) : $profile['name']));
-       $last = xmlify((($first === $profile['name']) ? '' : trim(substr($profile['name'],strlen($first)))));
-       $large = xmlify($a->get_baseurl() . '/photo/custom/300/' . $profile['uid'] . '.jpg');
-       $medium = xmlify($a->get_baseurl() . '/photo/custom/100/' . $profile['uid'] . '.jpg');
-       $small = xmlify($a->get_baseurl() . '/photo/custom/50/'  . $profile['uid'] . '.jpg');
-       $searchable = xmlify((($profile['publish'] && $profile['net-publish']) ? 'true' : 'false' ));
-//     $searchable = 'true';
-
-       if($searchable === 'true') {
-               $dob = '1000-00-00';
-
-               if(($profile['dob']) && ($profile['dob'] != '0000-00-00'))
-                       $dob = ((intval($profile['dob'])) ? intval($profile['dob']) : '1000') . '-' . datetime_convert('UTC','UTC',$profile['dob'],'m-d');
-               $gender = xmlify($profile['gender']);
-               $about = xmlify($profile['about']);
-               require_once('include/bbcode.php');
-               $about = xmlify(strip_tags(bbcode($about)));
-               $location = formatted_location($profile);
-               $location = xmlify($location);
-               $tags = '';
-               if($profile['pub_keywords']) {
-                       $kw = str_replace(',',' ',$profile['pub_keywords']);
-                       $kw = str_replace('  ',' ',$kw);
-                       $arr = explode(' ',$profile['pub_keywords']);
-                       if(count($arr)) {
-                               for($x = 0; $x < 5; $x ++) {
-                                       if(trim($arr[$x]))
-                                               $tags .= '#' . trim($arr[$x]) . ' ';
-                               }
-                       }
-               }
-               $tags = xmlify(trim($tags));
-       }
-
-       $tpl = get_markup_template('diaspora_profile.tpl');
-
-       $msg = replace_macros($tpl,array(
-               '$handle' => $handle,
-               '$first' => $first,
-               '$last' => $last,
-               '$large' => $large,
-               '$medium' => $medium,
-               '$small' => $small,
-               '$dob' => $dob,
-               '$gender' => $gender,
-               '$about' => $about,
-               '$location' => $location,
-               '$searchable' => $searchable,
-               '$tags' => $tags
-       ));
-       logger('profile_change: ' . $msg, LOGGER_ALL);
-
-       foreach($recips as $recip) {
-               $msgtosend = 'xml=' . urlencode(urlencode(diaspora_msg_build($msg,$a->user,$recip,$a->user['prvkey'],$recip['pubkey'],false)));
-               add_to_queue($recip['id'],NETWORK_DIASPORA,$msgtosend,false);
-       }
+       diaspora::send_profile(local_user());
 }