From da416e0181663b33304eadc0b1db228e6f1f5b7d Mon Sep 17 00:00:00 2001 From: Friendika Date: Thu, 20 Oct 2011 05:43:33 -0700 Subject: bug in diaspora_reshare --- include/diaspora.php | 2 - include/profile_update.php | 113 +++++++++++++++++++++++++++++++++++++++++++++ mod/profile_photo.php | 3 ++ mod/profiles.php | 3 ++ mod/settings.php | 6 +-- 5 files changed, 122 insertions(+), 5 deletions(-) create mode 100644 include/profile_update.php diff --git a/include/diaspora.php b/include/diaspora.php index 0528c5575..89707967f 100644 --- a/include/diaspora.php +++ b/include/diaspora.php @@ -673,8 +673,6 @@ function diaspora_reshare($importer,$xml) { $created = unxmlify($xml->created_at); $private = ((unxmlify($xml->public) == 'false') ? 1 : 0); - $body = diaspora2bb($xml->raw_message); - $datarray = array(); $str_tags = ''; diff --git a/include/profile_update.php b/include/profile_update.php new file mode 100644 index 000000000..1a2d9d3b5 --- /dev/null +++ b/include/profile_update.php @@ -0,0 +1,113 @@ +get_baseurl() . '/profile/' . $a->user['nickname']; + // if($url && strlen(get_config('system','directory_submit_url'))) + // proc_run('php',"include/directory.php","$url"); + + $recips = q("SELECT DISTINCT(`batch`), `id`, `name`,`network` FROM `contact` WHERE `network` = '%s' + AND `uid` = %d AND `rel` != %d ORDER BY rand() ", + 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` + LEFT 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 = $a->user['nickname'] . '@' . substr($a->get_baseurl(), strpos($a->get_baseurl(),'://') + 3); + $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 = $a->get_baseurl() . '/photo/custom/300/' . $profile['uid'] . '.jpg'; + $medium = $a->get_baseurl() . '/photo/custom/100/' . $profile['uid'] . '.jpg'; + $small = $a->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'); + $gender = $profile['gender']; + $about = $profile['about']; + require_once('include/bbcode.php'); + $about = strip_tags(bbcode($about)); + $location = ''; + if($profile['locality']) + $location .= $profile['locality']; + if($profile['region']) { + if($location) + $location .= ', '; + $location .= $profile['region']; + } + if($profile['country-name']) { + if($location) + $location .= ', '; + $location .= $profile['country-name']; + } + $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); + } + + $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); + + $msgtosend = diaspora_msg_build($msg,$a->user,null,$a->user['prvkey'],null,true); + foreach($recips as $recip) { + q("insert into queue (`cid`,`network`,`created`,`last`,`content`,`batch`) + values(%d,'%s','%s','%s','%s',%d)", + intval($recip['id']), + dbesc(NETWORK_DIASPORA), + dbesc(datetime_convert()), + dbesc(datetime_convert()), + dbesc($msgtosend), + intval(1) + ); + } +} \ No newline at end of file diff --git a/mod/profile_photo.php b/mod/profile_photo.php index 4de3aaa3e..47f0f8d8e 100644 --- a/mod/profile_photo.php +++ b/mod/profile_photo.php @@ -90,6 +90,9 @@ function profile_photo_post(&$a) { $url = $a->get_baseurl() . '/profile/' . $a->user['nickname']; if($url && strlen(get_config('system','directory_submit_url'))) proc_run('php',"include/directory.php","$url"); + + require_once('include/profile_update.php'); + profile_change(); } else notice( t('Unable to process image') . EOL); diff --git a/mod/profiles.php b/mod/profiles.php index f5f335c7e..a5096a984 100644 --- a/mod/profiles.php +++ b/mod/profiles.php @@ -210,6 +210,9 @@ function profiles_post(&$a) { $url = $_SESSION['my_url']; if($url && strlen(get_config('system','directory_submit_url'))) proc_run('php',"include/directory.php","$url"); + + require_once('include/profile_update.php'); + profile_change(); } } } diff --git a/mod/settings.php b/mod/settings.php index 84f66d263..8ed03dba5 100644 --- a/mod/settings.php +++ b/mod/settings.php @@ -296,9 +296,9 @@ function settings_post(&$a) { } -// not yet ready for prime time -// require_once('include/profile_update.php'); -// profile_change(); + + require_once('include/profile_update.php'); + profile_change(); $_SESSION['theme'] = $theme; if($email_changed && $a->config['register_policy'] == REGISTER_VERIFY) { -- cgit v1.2.3