couple of issues w/ profile photo update propogation

This commit is contained in:
Friendika 2010-11-09 18:24:35 -08:00
parent 70bcf000e3
commit f4fd679928
7 changed files with 70 additions and 50 deletions

View File

@ -954,6 +954,7 @@ function webfinger_dfrn($s) {
return $s; return $s;
} }
$links = webfinger($s); $links = webfinger($s);
logger('webfinger_dfrn: ' . $s . ':' . print_r($links,true), LOGGER_DATA);
if(count($links)) { if(count($links)) {
foreach($links as $link) foreach($links as $link)
if($link['@attributes']['rel'] === NAMESPACE_DFRN) if($link['@attributes']['rel'] === NAMESPACE_DFRN)
@ -978,6 +979,7 @@ function webfinger($s) {
} }
if(strlen($host)) { if(strlen($host)) {
$tpl = fetch_lrdd_template($host); $tpl = fetch_lrdd_template($host);
logger('webfinger: lrdd template: ' . $tpl);
if(strlen($tpl)) { if(strlen($tpl)) {
$pxrd = str_replace('{uri}', urlencode('acct:'.$s), $tpl); $pxrd = str_replace('{uri}', urlencode('acct:'.$s), $tpl);
$links = fetch_xrd_links($pxrd); $links = fetch_xrd_links($pxrd);
@ -1066,9 +1068,12 @@ function fetch_lrdd_template($host) {
if(! function_exists('fetch_xrd_links')) { if(! function_exists('fetch_xrd_links')) {
function fetch_xrd_links($url) { function fetch_xrd_links($url) {
$xml = fetch_url($url); $xml = fetch_url($url);
if (! $xml) if (! $xml)
return array(); return array();
logger('fetch_xrd_links: ' . $xml, LOGGER_DATA);
$h = simplexml_load_string($xml); $h = simplexml_load_string($xml);
$arr = convert_xml_element_to_array($h); $arr = convert_xml_element_to_array($h);

View File

@ -175,8 +175,7 @@ class Photo {
public function store($uid, $cid, $rid, $filename, $album, $scale, public function store($uid, $cid, $rid, $filename, $album, $scale, $profile = 0, $allow_cid = '', $allow_gid = '', $deny_cid = '', $deny_gid = '') {
$profile = 0, $allow_cid = '', $allow_gid = '', $deny_cid = '', $deny_gid = '') {
$r = q("INSERT INTO `photo` $r = q("INSERT INTO `photo`
( `uid`, `contact-id`, `resource-id`, `created`, `edited`, `filename`, `album`, `height`, `width`, `data`, `scale`, `profile`, `allow_cid`, `allow_gid`, `deny_cid`, `deny_gid` ) ( `uid`, `contact-id`, `resource-id`, `created`, `edited`, `filename`, `album`, `height`, `width`, `data`, `scale`, `profile`, `allow_cid`, `allow_gid`, `deny_cid`, `deny_gid` )
@ -188,9 +187,9 @@ class Photo {
dbesc(datetime_convert()), dbesc(datetime_convert()),
dbesc(basename($filename)), dbesc(basename($filename)),
dbesc($album), dbesc($album),
intval($this->height), intval($this->height),
intval($this->width), intval($this->width),
dbesc($this->imageString()), dbesc($this->imageString()),
intval($scale), intval($scale),
intval($profile), intval($profile),
dbesc($allow_cid), dbesc($allow_cid),

View File

@ -37,7 +37,7 @@ class dba {
$mesg = ''; $mesg = '';
if($this->db->errno) if($this->db->errno)
$debug_text .= $this->db->error . EOL; logger('dba: ' . $this->db->error);
if($result === false) if($result === false)
$mesg = 'false'; $mesg = 'false';
@ -48,14 +48,7 @@ class dba {
$str = 'SQL = ' . printable($sql) . EOL . 'SQL returned ' . $mesg . EOL; $str = 'SQL = ' . printable($sql) . EOL . 'SQL returned ' . $mesg . EOL;
switch($this->debug) { logger('dba: ' . $str );
case 3:
echo $str;
break;
default:
$debug_text .= $str;
break;
}
} }
else { else {
if($result === false) { if($result === false) {
@ -75,11 +68,8 @@ class dba {
$result->free_result(); $result->free_result();
} }
if($this->debug == 2) if($this->debug)
$debug_text .= printable(print_r($r, true). EOL); logger('dba: ' . printable(print_r($r, true)), LOGGER_DATA);
elseif($this->debug == 3)
echo printable(print_r($r, true) . EOL) ;
return($r); return($r);
} }

View File

@ -761,17 +761,12 @@ function consume_feed($xml,$importer,$contact, &$hub, $datedir = 0) {
$photo_url = $elems['link'][0]['attribs']['']['href']; $photo_url = $elems['link'][0]['attribs']['']['href'];
} }
} }
if(! $photo_timestamp) {
$photo_rawupdate = $feed->get_feed_tags(NAMESPACE_DFRN,'icon-updated');
if($photo_rawupdate) {
$photo_timestamp = datetime_convert('UTC','UTC',$photo_rawupdate[0]['data']);
$photo_url = $feed->get_image_url();
}
}
if((is_array($contact)) && ($photo_timestamp) && (strlen($photo_url)) && ($photo_timestamp > $contact['avatar-date'])) {
if((is_array($contact)) && ($photo_timestamp) && (strlen($photo_url)) && ($photo_timestamp > $contact['avatar-date'])) {
logger('Consume feed: Updating photo for ' . $contact['name']);
require_once("Photo.php"); require_once("Photo.php");
$photo_failure = false; $photo_failure = false;
$have_photo = false;
$r = q("SELECT `resource-id` FROM `photo` WHERE `contact-id` = %d AND `uid` = %d LIMIT 1", $r = q("SELECT `resource-id` FROM `photo` WHERE `contact-id` = %d AND `uid` = %d LIMIT 1",
intval($contact['id']), intval($contact['id']),
@ -779,33 +774,45 @@ function consume_feed($xml,$importer,$contact, &$hub, $datedir = 0) {
); );
if(count($r)) { if(count($r)) {
$resource_id = $r[0]['resource-id']; $resource_id = $r[0]['resource-id'];
$img_str = fetch_url($photo_url,true); $have_photo = true;
$img = new Photo($img_str); }
if($img->is_valid()) { else {
q("DELETE FROM `photo` WHERE `resource-id` = '%s' AND contact-id` = %d AND `uid` = %d", $resource_id = photo_new_resource();
}
$img_str = fetch_url($photo_url,true);
$img = new Photo($img_str);
if($img->is_valid()) {
if($have_photo) {
q("DELETE FROM `photo` WHERE `resource-id` = '%s' AND `contact-id` = %d AND `uid` = %d",
dbesc($resource_id), dbesc($resource_id),
intval($contact['id']), intval($contact['id']),
intval($contact['uid']) intval($contact['uid'])
); );
$img->scaleImageSquare(175);
$hash = $resource_id;
$r = $img->store($contact['uid'], $contact['id'], $hash, basename($photo_url), t('Contact Photos') , 4);
$img->scaleImage(80);
$r = $img->store($contact['uid'], $contact['id'], $hash, basename($photo_url), t('Contact Photos') , 5);
$img->scaleImage(48);
$r = $img->store($contact['uid'], $contact['id'], $hash, basename($photo_url), t('Contact Photos') , 6);
if($r)
q("UPDATE `contact` SET `avatar-date` = '%s' WHERE `uid` = %d AND `id` = %d LIMIT 1",
dbesc(datetime_convert()),
intval($contact['uid']),
intval($contact['id'])
);
} }
$img->scaleImageSquare(175);
$hash = $resource_id;
$r = $img->store($contact['uid'], $contact['id'], $hash, basename($photo_url), t('Contact Photos') , 4);
$img->scaleImage(80);
$r = $img->store($contact['uid'], $contact['id'], $hash, basename($photo_url), t('Contact Photos') , 5);
$img->scaleImage(48);
$r = $img->store($contact['uid'], $contact['id'], $hash, basename($photo_url), t('Contact Photos') , 6);
$a = get_app();
q("UPDATE `contact` SET `avatar-date` = '%s', `photo` = '%s', `thumb` = '%s', `micro` = '%s'
WHERE `uid` = %d AND `id` = %d LIMIT 1",
dbesc(datetime_convert()),
dbesc($a->get_baseurl() . '/photo/' . $hash . '-4.jpg'),
dbesc($a->get_baseurl() . '/photo/' . $hash . '-5.jpg'),
dbesc($a->get_baseurl() . '/photo/' . $hash . '-6.jpg'),
intval($contact['uid']),
intval($contact['id'])
);
} }
} }

View File

@ -192,6 +192,8 @@ function dfrn_request_post(&$a) {
$network = 'dfrn'; $network = 'dfrn';
} }
logger('dfrn_request: url: ' . $url);
if(! strlen($url)) { if(! strlen($url)) {
notice( t("Unable to resolve your name at the provided location.") . EOL); notice( t("Unable to resolve your name at the provided location.") . EOL);
return; return;

View File

@ -453,6 +453,14 @@ function photos_post(&$a) {
$filename = basename($_FILES['userfile']['name']); $filename = basename($_FILES['userfile']['name']);
$filesize = intval($_FILES['userfile']['size']); $filesize = intval($_FILES['userfile']['size']);
$maximagesize = get_config('system','maximagesize');
if(($maximagesize) && ($filesize > $maximagesize)) {
notice( t('Image exceeds size limit of ') . $maximagesize . EOL);
@unlink($src);
return;
}
$imagedata = @file_get_contents($src); $imagedata = @file_get_contents($src);
$ph = new Photo($imagedata); $ph = new Photo($imagedata);

View File

@ -42,7 +42,7 @@ function profile_photo_post(&$a) {
$srcY = $_POST['ystart']; $srcY = $_POST['ystart'];
$srcW = $_POST['xfinal'] - $srcX; $srcW = $_POST['xfinal'] - $srcX;
$srcH = $_POST['yfinal'] - $srcY; $srcH = $_POST['yfinal'] - $srcY;
//dbg(3);
$r = q("SELECT * FROM `photo` WHERE `resource-id` = '%s' AND `uid` = %d AND `scale` = %d LIMIT 1", $r = q("SELECT * FROM `photo` WHERE `resource-id` = '%s' AND `uid` = %d AND `scale` = %d LIMIT 1",
dbesc($image_id), dbesc($image_id),
dbesc(local_user()), dbesc(local_user()),
@ -97,6 +97,7 @@ function profile_photo_post(&$a) {
else else
notice( t('Unable to process image') . EOL); notice( t('Unable to process image') . EOL);
} }
goaway($a->get_baseurl() . '/profiles'); goaway($a->get_baseurl() . '/profiles');
return; // NOTREACHED return; // NOTREACHED
} }
@ -105,6 +106,14 @@ function profile_photo_post(&$a) {
$filename = basename($_FILES['userfile']['name']); $filename = basename($_FILES['userfile']['name']);
$filesize = intval($_FILES['userfile']['size']); $filesize = intval($_FILES['userfile']['size']);
$maximagesize = get_config('system','maximagesize');
if(($maximagesize) && ($filesize > $maximagesize)) {
notice( t('Image exceeds size limit of ') . $maximagesize . EOL);
@unlink($src);
return;
}
$imagedata = @file_get_contents($src); $imagedata = @file_get_contents($src);
$ph = new Photo($imagedata); $ph = new Photo($imagedata);