handle diaspora profile update message
This commit is contained in:
parent
89c771a26e
commit
05e26e4895
1 changed files with 78 additions and 0 deletions
|
@ -38,6 +38,9 @@ function diaspora_dispatch($importer,$msg) {
|
||||||
elseif($xmlbase->status_message) {
|
elseif($xmlbase->status_message) {
|
||||||
$ret = diaspora_post($importer,$xmlbase->status_message);
|
$ret = diaspora_post($importer,$xmlbase->status_message);
|
||||||
}
|
}
|
||||||
|
elseif($xmlbase->profile) {
|
||||||
|
$ret = diaspora_profile($importer,$xmlbase->profile);
|
||||||
|
}
|
||||||
elseif($xmlbase->comment) {
|
elseif($xmlbase->comment) {
|
||||||
$ret = diaspora_comment($importer,$xmlbase->comment,$msg);
|
$ret = diaspora_comment($importer,$xmlbase->comment,$msg);
|
||||||
}
|
}
|
||||||
|
@ -994,6 +997,81 @@ function diaspora_retraction($importer,$xml) {
|
||||||
return 202;
|
return 202;
|
||||||
// NOTREACHED
|
// NOTREACHED
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function diaspora_profile($importer,$xml) {
|
||||||
|
|
||||||
|
$a = get_app();
|
||||||
|
$diaspora_handle = notags(unxmlify($xml->diaspora_handle));
|
||||||
|
|
||||||
|
$contact = diaspora_get_contact_by_handle($importer['uid'],$diaspora_handle);
|
||||||
|
if(! $contact)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if($contact['blocked']) {
|
||||||
|
logger('diaspora_post: Ignoring this author.');
|
||||||
|
return 202;
|
||||||
|
}
|
||||||
|
|
||||||
|
$name = unxmlify($xml->first_name) . ((strlen($xml->last_name)) ? ' ' . unxmlify($xml->last_name) : '');
|
||||||
|
$image_url = unxmlify($xml->image_url);
|
||||||
|
$birthday = unxmlify($xml->birthday);
|
||||||
|
|
||||||
|
$r = q("SELECT DISTINCT ( `resource-id` ) FROM `photo` WHERE `uid` = %d AND `contact-id` = %d AND `album` = 'Contact Photos' ",
|
||||||
|
intval($importer['uid']),
|
||||||
|
intval($contact['id'])
|
||||||
|
);
|
||||||
|
$oldphotos = ((count($r)) ? $r : null);
|
||||||
|
|
||||||
|
$images = import_profile_photo($image_url,$importer['uid'],$contact['id']);
|
||||||
|
|
||||||
|
// TODO handle birthdays - even though we don't know the original timezone (grrr.)
|
||||||
|
|
||||||
|
$r = q("UPDATE `contact` SET `name` = '%s', `name-date` = '%s', `photo` = '%s', `thumb` = '%s', `micro` = '%s', `avatar-date` = '%s' WHERE `id` = %d AND `uid` = %d LIMIT 1",
|
||||||
|
dbesc($name),
|
||||||
|
dbesc(datetime_convert()),
|
||||||
|
dbesc($images[0]),
|
||||||
|
dbesc($images[1]),
|
||||||
|
dbesc($images[2]),
|
||||||
|
dbesc(datetime_convert()),
|
||||||
|
intval($contact['id']),
|
||||||
|
intval($importer['uid'])
|
||||||
|
);
|
||||||
|
if($r) {
|
||||||
|
if($oldphotos) {
|
||||||
|
foreach($oldphotos as $ph) {
|
||||||
|
q("DELETE FROM `photo` WHERE `uid` = %d AND `contact-id` = %d AND `album` = 'Contact Photos' AND `resource-id` = '%s' ",
|
||||||
|
intval($importer['uid']),
|
||||||
|
intval($contact['id']),
|
||||||
|
dbesc($ph['resource-id'])
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
function diaspora_share($me,$contact) {
|
function diaspora_share($me,$contact) {
|
||||||
$a = get_app();
|
$a = get_app();
|
||||||
|
|
Loading…
Reference in a new issue