X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=mod%2Fdfrn_request.php;h=7fe2527f3d73c9401654243c4bcaa1b2cf29d757;hb=0c9cc29a51941eb572bf16fd5489d0947d47d033;hp=32e835b71557450863c161e5eed197dd02e09bb9;hpb=0a3cd33cb0532e91b525c9975d1c245136d61cbc;p=friendica.git diff --git a/mod/dfrn_request.php b/mod/dfrn_request.php index 32e835b715..7fe2527f3d 100644 --- a/mod/dfrn_request.php +++ b/mod/dfrn_request.php @@ -11,6 +11,7 @@ require_once('include/enotify.php'); require_once('include/Scrape.php'); +require_once('include/Probe.php'); require_once('include/group.php'); if(! function_exists('dfrn_request_init')) { @@ -116,7 +117,7 @@ function dfrn_request_post(&$a) { * Scrape the other site's profile page to pick up the dfrn links, key, fn, and photo */ - $parms = scrape_dfrn($dfrn_url); + $parms = Probe::profile($dfrn_url); if(! count($parms)) { notice( t('Profile location is not valid or does not contain profile information.') . EOL ); @@ -127,7 +128,7 @@ function dfrn_request_post(&$a) { notice( t('Warning: profile location has no identifiable owner name.') . EOL ); if(! x($parms,'photo')) notice( t('Warning: profile location has no profile photo.') . EOL ); - $invalid = validate_dfrn($parms); + $invalid = Probe::valid_dfrn($parms); if($invalid) { notice( sprintf( tt("%d required parameter was not found at the given location", "%d required parameters were not found at the given location", @@ -138,6 +139,8 @@ function dfrn_request_post(&$a) { $dfrn_request = $parms['dfrn-request']; + $photo = $parms["photo"]; + /********* Escape the entire array ********/ dbesc_array($parms); @@ -185,6 +188,9 @@ function dfrn_request_post(&$a) { if(intval($def_gid)) group_add_member(local_user(), '', $r[0]['id'], $def_gid); + if (isset($photo)) + update_contact_avatar($photo, local_user(), $r[0]["id"], true); + $forwardurl = $a->get_baseurl()."/contacts/".$r[0]['id']; } else $forwardurl = $a->get_baseurl()."/contacts"; @@ -442,7 +448,7 @@ function dfrn_request_post(&$a) { $network = $data["network"]; // Canonicalise email-style profile locator - $url = webfinger_dfrn($url,$hcard); + $url = Probe::webfinger_dfrn($url,$hcard); if (substr($url,0,5) === 'stat:') { @@ -506,7 +512,7 @@ function dfrn_request_post(&$a) { require_once('include/Scrape.php'); - $parms = scrape_dfrn(($hcard) ? $hcard : $url); + $parms = Probe::profile(($hcard) ? $hcard : $url); if(! count($parms)) { notice( t('Profile location is not valid or does not contain profile information.') . EOL ); @@ -517,7 +523,7 @@ function dfrn_request_post(&$a) { notice( t('Warning: profile location has no identifiable owner name.') . EOL ); if(! x($parms,'photo')) notice( t('Warning: profile location has no profile photo.') . EOL ); - $invalid = validate_dfrn($parms); + $invalid = Probe::valid_dfrn($parms); if($invalid) { notice( sprintf( tt("%d required parameter was not found at the given location", "%d required parameters were not found at the given location", @@ -530,7 +536,7 @@ function dfrn_request_post(&$a) { $parms['url'] = $url; $parms['issued-id'] = $issued_id; - + $photo = $parms["photo"]; dbesc_array($parms); $r = q("INSERT INTO `contact` ( `uid`, `created`, `url`, `nurl`, `addr`, `name`, `nick`, `issued-id`, `photo`, `site-pubkey`, @@ -539,7 +545,7 @@ function dfrn_request_post(&$a) { intval($uid), dbesc(datetime_convert()), $parms['url'], - dbesc(normalise_link($parms['url'])), + dbesc(normalise_link($url)), $parms['addr'], $parms['fn'], $parms['nick'], @@ -562,8 +568,10 @@ function dfrn_request_post(&$a) { $parms['url'], $parms['issued-id'] ); - if(count($r)) + if(count($r)) { $contact_record = $r[0]; + update_contact_avatar($photo, $uid, $contact_record["id"], true); + } } }