mirror of
https://github.com/friendica/friendica
synced 2024-12-22 22:00:16 +00:00
couple of issues w/ profile photo update propogation
This commit is contained in:
parent
70bcf000e3
commit
f4fd679928
7 changed files with 70 additions and 50 deletions
5
boot.php
5
boot.php
|
@ -954,6 +954,7 @@ function webfinger_dfrn($s) {
|
|||
return $s;
|
||||
}
|
||||
$links = webfinger($s);
|
||||
logger('webfinger_dfrn: ' . $s . ':' . print_r($links,true), LOGGER_DATA);
|
||||
if(count($links)) {
|
||||
foreach($links as $link)
|
||||
if($link['@attributes']['rel'] === NAMESPACE_DFRN)
|
||||
|
@ -978,6 +979,7 @@ function webfinger($s) {
|
|||
}
|
||||
if(strlen($host)) {
|
||||
$tpl = fetch_lrdd_template($host);
|
||||
logger('webfinger: lrdd template: ' . $tpl);
|
||||
if(strlen($tpl)) {
|
||||
$pxrd = str_replace('{uri}', urlencode('acct:'.$s), $tpl);
|
||||
$links = fetch_xrd_links($pxrd);
|
||||
|
@ -1066,9 +1068,12 @@ function fetch_lrdd_template($host) {
|
|||
if(! function_exists('fetch_xrd_links')) {
|
||||
function fetch_xrd_links($url) {
|
||||
|
||||
|
||||
$xml = fetch_url($url);
|
||||
if (! $xml)
|
||||
return array();
|
||||
|
||||
logger('fetch_xrd_links: ' . $xml, LOGGER_DATA);
|
||||
$h = simplexml_load_string($xml);
|
||||
$arr = convert_xml_element_to_array($h);
|
||||
|
||||
|
|
|
@ -175,8 +175,7 @@ class Photo {
|
|||
|
||||
|
||||
|
||||
public function store($uid, $cid, $rid, $filename, $album, $scale,
|
||||
$profile = 0, $allow_cid = '', $allow_gid = '', $deny_cid = '', $deny_gid = '') {
|
||||
public function store($uid, $cid, $rid, $filename, $album, $scale, $profile = 0, $allow_cid = '', $allow_gid = '', $deny_cid = '', $deny_gid = '') {
|
||||
|
||||
$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` )
|
||||
|
@ -188,9 +187,9 @@ class Photo {
|
|||
dbesc(datetime_convert()),
|
||||
dbesc(basename($filename)),
|
||||
dbesc($album),
|
||||
intval($this->height),
|
||||
intval($this->width),
|
||||
dbesc($this->imageString()),
|
||||
intval($this->height),
|
||||
intval($this->width),
|
||||
dbesc($this->imageString()),
|
||||
intval($scale),
|
||||
intval($profile),
|
||||
dbesc($allow_cid),
|
||||
|
|
|
@ -37,7 +37,7 @@ class dba {
|
|||
$mesg = '';
|
||||
|
||||
if($this->db->errno)
|
||||
$debug_text .= $this->db->error . EOL;
|
||||
logger('dba: ' . $this->db->error);
|
||||
|
||||
if($result === false)
|
||||
$mesg = 'false';
|
||||
|
@ -48,14 +48,7 @@ class dba {
|
|||
|
||||
$str = 'SQL = ' . printable($sql) . EOL . 'SQL returned ' . $mesg . EOL;
|
||||
|
||||
switch($this->debug) {
|
||||
case 3:
|
||||
echo $str;
|
||||
break;
|
||||
default:
|
||||
$debug_text .= $str;
|
||||
break;
|
||||
}
|
||||
logger('dba: ' . $str );
|
||||
}
|
||||
else {
|
||||
if($result === false) {
|
||||
|
@ -75,11 +68,8 @@ class dba {
|
|||
$result->free_result();
|
||||
}
|
||||
|
||||
if($this->debug == 2)
|
||||
$debug_text .= printable(print_r($r, true). EOL);
|
||||
elseif($this->debug == 3)
|
||||
echo printable(print_r($r, true) . EOL) ;
|
||||
|
||||
if($this->debug)
|
||||
logger('dba: ' . printable(print_r($r, true)), LOGGER_DATA);
|
||||
return($r);
|
||||
}
|
||||
|
||||
|
|
|
@ -761,17 +761,12 @@ function consume_feed($xml,$importer,$contact, &$hub, $datedir = 0) {
|
|||
$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");
|
||||
$photo_failure = false;
|
||||
$have_photo = false;
|
||||
|
||||
$r = q("SELECT `resource-id` FROM `photo` WHERE `contact-id` = %d AND `uid` = %d LIMIT 1",
|
||||
intval($contact['id']),
|
||||
|
@ -779,33 +774,45 @@ function consume_feed($xml,$importer,$contact, &$hub, $datedir = 0) {
|
|||
);
|
||||
if(count($r)) {
|
||||
$resource_id = $r[0]['resource-id'];
|
||||
$img_str = fetch_url($photo_url,true);
|
||||
$img = new Photo($img_str);
|
||||
if($img->is_valid()) {
|
||||
q("DELETE FROM `photo` WHERE `resource-id` = '%s' AND contact-id` = %d AND `uid` = %d",
|
||||
$have_photo = true;
|
||||
}
|
||||
else {
|
||||
$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),
|
||||
intval($contact['id']),
|
||||
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'])
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -192,6 +192,8 @@ function dfrn_request_post(&$a) {
|
|||
$network = 'dfrn';
|
||||
}
|
||||
|
||||
logger('dfrn_request: url: ' . $url);
|
||||
|
||||
if(! strlen($url)) {
|
||||
notice( t("Unable to resolve your name at the provided location.") . EOL);
|
||||
return;
|
||||
|
|
|
@ -453,6 +453,14 @@ function photos_post(&$a) {
|
|||
$filename = basename($_FILES['userfile']['name']);
|
||||
$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);
|
||||
$ph = new Photo($imagedata);
|
||||
|
||||
|
|
|
@ -42,7 +42,7 @@ function profile_photo_post(&$a) {
|
|||
$srcY = $_POST['ystart'];
|
||||
$srcW = $_POST['xfinal'] - $srcX;
|
||||
$srcH = $_POST['yfinal'] - $srcY;
|
||||
//dbg(3);
|
||||
|
||||
$r = q("SELECT * FROM `photo` WHERE `resource-id` = '%s' AND `uid` = %d AND `scale` = %d LIMIT 1",
|
||||
dbesc($image_id),
|
||||
dbesc(local_user()),
|
||||
|
@ -97,6 +97,7 @@ function profile_photo_post(&$a) {
|
|||
else
|
||||
notice( t('Unable to process image') . EOL);
|
||||
}
|
||||
|
||||
goaway($a->get_baseurl() . '/profiles');
|
||||
return; // NOTREACHED
|
||||
}
|
||||
|
@ -105,6 +106,14 @@ function profile_photo_post(&$a) {
|
|||
$filename = basename($_FILES['userfile']['name']);
|
||||
$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);
|
||||
$ph = new Photo($imagedata);
|
||||
|
||||
|
|
Loading…
Reference in a new issue