Merge remote-tracking branch 'upstream/develop' into 1601-dfrn-import
This commit is contained in:
commit
8412eb7066
2
boot.php
2
boot.php
|
@ -36,7 +36,7 @@ define ( 'FRIENDICA_PLATFORM', 'Friendica');
|
||||||
define ( 'FRIENDICA_CODENAME', 'Asparagus');
|
define ( 'FRIENDICA_CODENAME', 'Asparagus');
|
||||||
define ( 'FRIENDICA_VERSION', '3.5-dev' );
|
define ( 'FRIENDICA_VERSION', '3.5-dev' );
|
||||||
define ( 'DFRN_PROTOCOL_VERSION', '2.23' );
|
define ( 'DFRN_PROTOCOL_VERSION', '2.23' );
|
||||||
define ( 'DB_UPDATE_VERSION', 1193 );
|
define ( 'DB_UPDATE_VERSION', 1194 );
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Constant with a HTML line break.
|
* @brief Constant with a HTML line break.
|
||||||
|
|
|
@ -486,21 +486,16 @@ function get_contact($url, $uid = 0) {
|
||||||
|
|
||||||
require_once("Photo.php");
|
require_once("Photo.php");
|
||||||
|
|
||||||
$photos = import_profile_photo($data["photo"],$uid,$contactid);
|
update_contact_avatar($data["photo"],$uid,$contactid);
|
||||||
|
|
||||||
q("UPDATE `contact` SET `photo` = '%s', `thumb` = '%s', `micro` = '%s',
|
q("UPDATE `contact` SET `addr` = '%s', `alias` = '%s', `name` = '%s', `nick` = '%s',
|
||||||
`addr` = '%s', `alias` = '%s', `name` = '%s', `nick` = '%s',
|
`name-date` = '%s', `uri-date` = '%s' WHERE `id` = %d",
|
||||||
`name-date` = '%s', `uri-date` = '%s', `avatar-date` = '%s' WHERE `id` = %d",
|
|
||||||
dbesc($photos[0]),
|
|
||||||
dbesc($photos[1]),
|
|
||||||
dbesc($photos[2]),
|
|
||||||
dbesc($data["addr"]),
|
dbesc($data["addr"]),
|
||||||
dbesc($data["alias"]),
|
dbesc($data["alias"]),
|
||||||
dbesc($data["name"]),
|
dbesc($data["name"]),
|
||||||
dbesc($data["nick"]),
|
dbesc($data["nick"]),
|
||||||
dbesc(datetime_convert()),
|
dbesc(datetime_convert()),
|
||||||
dbesc(datetime_convert()),
|
dbesc(datetime_convert()),
|
||||||
dbesc(datetime_convert()),
|
|
||||||
intval($contactid)
|
intval($contactid)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
|
@ -720,65 +720,100 @@ function guess_image_type($filename, $fromcurl=false) {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function import_profile_photo($photo,$uid,$cid) {
|
/**
|
||||||
|
* @brief Updates the avatar links in a contact only if needed
|
||||||
|
*
|
||||||
|
* @param string $avatar Link to avatar picture
|
||||||
|
* @param int $uid User id of contact owner
|
||||||
|
* @param int $cid Contact id
|
||||||
|
*
|
||||||
|
* @return array Returns array of the different avatar sizes
|
||||||
|
*/
|
||||||
|
function update_contact_avatar($avatar,$uid,$cid) {
|
||||||
|
|
||||||
$a = get_app();
|
$r = q("SELECT `avatar`, `photo`, `thumb`, `micro` FROM `contact` WHERE `id` = %d LIMIT 1", intval($cid));
|
||||||
|
if (!$r)
|
||||||
|
return false;
|
||||||
|
else
|
||||||
|
$data = array($r[0]["photo"], $r[0]["thumb"], $r[0]["micro"]);
|
||||||
|
|
||||||
$r = q("select `resource-id` from photo where `uid` = %d and `contact-id` = %d and `scale` = 4 and `album` = 'Contact Photos' limit 1",
|
if ($r[0]["avatar"] != $avatar) {
|
||||||
intval($uid),
|
$photos = import_profile_photo($avatar,$uid,$cid, true);
|
||||||
intval($cid)
|
|
||||||
);
|
|
||||||
if(count($r) && strlen($r[0]['resource-id'])) {
|
|
||||||
$hash = $r[0]['resource-id'];
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
$hash = photo_new_resource();
|
|
||||||
}
|
|
||||||
|
|
||||||
$photo_failure = false;
|
if ($photos) {
|
||||||
|
q("UPDATE `contact` SET `avatar` = '%s', `photo` = '%s', `thumb` = '%s', `micro` = '%s', `avatar-date` = '%s' WHERE `id` = %d",
|
||||||
|
dbesc($avatar), dbesc($photos[0]), dbesc($photos[1]), dbesc($photos[2]),
|
||||||
|
dbesc(datetime_convert()), intval($cid));
|
||||||
|
return $photos;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
$filename = basename($photo);
|
return $data;
|
||||||
$img_str = fetch_url($photo,true);
|
}
|
||||||
|
|
||||||
$type = guess_image_type($photo,true);
|
function import_profile_photo($photo,$uid,$cid, $quit_on_error = false) {
|
||||||
$img = new Photo($img_str, $type);
|
|
||||||
if($img->is_valid()) {
|
|
||||||
|
|
||||||
$img->scaleImageSquare(175);
|
$a = get_app();
|
||||||
|
|
||||||
$r = $img->store($uid, $cid, $hash, $filename, 'Contact Photos', 4 );
|
$r = q("select `resource-id` from photo where `uid` = %d and `contact-id` = %d and `scale` = 4 and `album` = 'Contact Photos' limit 1",
|
||||||
|
intval($uid),
|
||||||
|
intval($cid)
|
||||||
|
);
|
||||||
|
if(count($r) && strlen($r[0]['resource-id'])) {
|
||||||
|
$hash = $r[0]['resource-id'];
|
||||||
|
} else {
|
||||||
|
$hash = photo_new_resource();
|
||||||
|
}
|
||||||
|
|
||||||
if($r === false)
|
$photo_failure = false;
|
||||||
$photo_failure = true;
|
|
||||||
|
|
||||||
$img->scaleImage(80);
|
$filename = basename($photo);
|
||||||
|
$img_str = fetch_url($photo,true);
|
||||||
|
|
||||||
$r = $img->store($uid, $cid, $hash, $filename, 'Contact Photos', 5 );
|
if ($quit_on_error AND ($img_str == ""))
|
||||||
|
return false;
|
||||||
|
|
||||||
if($r === false)
|
$type = guess_image_type($photo,true);
|
||||||
$photo_failure = true;
|
$img = new Photo($img_str, $type);
|
||||||
|
if($img->is_valid()) {
|
||||||
|
|
||||||
$img->scaleImage(48);
|
$img->scaleImageSquare(175);
|
||||||
|
|
||||||
$r = $img->store($uid, $cid, $hash, $filename, 'Contact Photos', 6 );
|
$r = $img->store($uid, $cid, $hash, $filename, 'Contact Photos', 4 );
|
||||||
|
|
||||||
if($r === false)
|
if($r === false)
|
||||||
$photo_failure = true;
|
$photo_failure = true;
|
||||||
|
|
||||||
$photo = $a->get_baseurl() . '/photo/' . $hash . '-4.' . $img->getExt();
|
$img->scaleImage(80);
|
||||||
$thumb = $a->get_baseurl() . '/photo/' . $hash . '-5.' . $img->getExt();
|
|
||||||
$micro = $a->get_baseurl() . '/photo/' . $hash . '-6.' . $img->getExt();
|
|
||||||
}
|
|
||||||
else
|
|
||||||
$photo_failure = true;
|
|
||||||
|
|
||||||
if($photo_failure) {
|
$r = $img->store($uid, $cid, $hash, $filename, 'Contact Photos', 5 );
|
||||||
$photo = $a->get_baseurl() . '/images/person-175.jpg';
|
|
||||||
$thumb = $a->get_baseurl() . '/images/person-80.jpg';
|
|
||||||
$micro = $a->get_baseurl() . '/images/person-48.jpg';
|
|
||||||
}
|
|
||||||
|
|
||||||
return(array($photo,$thumb,$micro));
|
if($r === false)
|
||||||
|
$photo_failure = true;
|
||||||
|
|
||||||
|
$img->scaleImage(48);
|
||||||
|
|
||||||
|
$r = $img->store($uid, $cid, $hash, $filename, 'Contact Photos', 6 );
|
||||||
|
|
||||||
|
if($r === false)
|
||||||
|
$photo_failure = true;
|
||||||
|
|
||||||
|
$photo = $a->get_baseurl() . '/photo/' . $hash . '-4.' . $img->getExt();
|
||||||
|
$thumb = $a->get_baseurl() . '/photo/' . $hash . '-5.' . $img->getExt();
|
||||||
|
$micro = $a->get_baseurl() . '/photo/' . $hash . '-6.' . $img->getExt();
|
||||||
|
} else
|
||||||
|
$photo_failure = true;
|
||||||
|
|
||||||
|
if($photo_failure AND $quit_on_error)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
if($photo_failure) {
|
||||||
|
$photo = $a->get_baseurl() . '/images/person-175.jpg';
|
||||||
|
$thumb = $a->get_baseurl() . '/images/person-80.jpg';
|
||||||
|
$micro = $a->get_baseurl() . '/images/person-48.jpg';
|
||||||
|
}
|
||||||
|
|
||||||
|
return(array($photo,$thumb,$micro));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -453,6 +453,7 @@ function db_definition() {
|
||||||
"keywords" => array("type" => "text", "not null" => "1"),
|
"keywords" => array("type" => "text", "not null" => "1"),
|
||||||
"gender" => array("type" => "varchar(32)", "not null" => "1", "default" => ""),
|
"gender" => array("type" => "varchar(32)", "not null" => "1", "default" => ""),
|
||||||
"attag" => array("type" => "varchar(255)", "not null" => "1", "default" => ""),
|
"attag" => array("type" => "varchar(255)", "not null" => "1", "default" => ""),
|
||||||
|
"avatar" => array("type" => "varchar(255)", "not null" => "1", "default" => ""),
|
||||||
"photo" => array("type" => "text", "not null" => "1"),
|
"photo" => array("type" => "text", "not null" => "1"),
|
||||||
"thumb" => array("type" => "text", "not null" => "1"),
|
"thumb" => array("type" => "text", "not null" => "1"),
|
||||||
"micro" => array("type" => "text", "not null" => "1"),
|
"micro" => array("type" => "text", "not null" => "1"),
|
||||||
|
|
|
@ -14,6 +14,7 @@ require_once('include/queue_fn.php');
|
||||||
require_once('include/lock.php');
|
require_once('include/lock.php');
|
||||||
require_once('include/threads.php');
|
require_once('include/threads.php');
|
||||||
require_once('mod/share.php');
|
require_once('mod/share.php');
|
||||||
|
require_once('include/enotify.php');
|
||||||
|
|
||||||
function diaspora_dispatch_public($msg) {
|
function diaspora_dispatch_public($msg) {
|
||||||
|
|
||||||
|
@ -728,7 +729,7 @@ function diaspora_request($importer,$xml) {
|
||||||
|
|
||||||
require_once('include/Photo.php');
|
require_once('include/Photo.php');
|
||||||
|
|
||||||
$photos = import_profile_photo($contact_record['photo'],$importer['uid'],$contact_record['id']);
|
update_contact_avatar($contact_record['photo'],$importer['uid'],$contact_record['id']);
|
||||||
|
|
||||||
// technically they are sharing with us (CONTACT_IS_SHARING),
|
// technically they are sharing with us (CONTACT_IS_SHARING),
|
||||||
// but if our page-type is PAGE_COMMUNITY or PAGE_SOAPBOX
|
// but if our page-type is PAGE_COMMUNITY or PAGE_SOAPBOX
|
||||||
|
@ -739,26 +740,17 @@ function diaspora_request($importer,$xml) {
|
||||||
else
|
else
|
||||||
$new_relation = CONTACT_IS_FOLLOWER;
|
$new_relation = CONTACT_IS_FOLLOWER;
|
||||||
|
|
||||||
$r = q("UPDATE `contact` SET
|
$r = q("UPDATE `contact` SET `rel` = %d,
|
||||||
`photo` = '%s',
|
|
||||||
`thumb` = '%s',
|
|
||||||
`micro` = '%s',
|
|
||||||
`rel` = %d,
|
|
||||||
`name-date` = '%s',
|
`name-date` = '%s',
|
||||||
`uri-date` = '%s',
|
`uri-date` = '%s',
|
||||||
`avatar-date` = '%s',
|
|
||||||
`blocked` = 0,
|
`blocked` = 0,
|
||||||
`pending` = 0,
|
`pending` = 0,
|
||||||
`writable` = 1
|
`writable` = 1
|
||||||
WHERE `id` = %d
|
WHERE `id` = %d
|
||||||
",
|
",
|
||||||
dbesc($photos[0]),
|
|
||||||
dbesc($photos[1]),
|
|
||||||
dbesc($photos[2]),
|
|
||||||
intval($new_relation),
|
intval($new_relation),
|
||||||
dbesc(datetime_convert()),
|
dbesc(datetime_convert()),
|
||||||
dbesc(datetime_convert()),
|
dbesc(datetime_convert()),
|
||||||
dbesc(datetime_convert()),
|
|
||||||
intval($contact_record['id'])
|
intval($contact_record['id'])
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@ -1598,47 +1590,6 @@ function diaspora_comment($importer,$xml,$msg) {
|
||||||
proc_run('php','include/notifier.php','comment-import',$message_id);
|
proc_run('php','include/notifier.php','comment-import',$message_id);
|
||||||
}
|
}
|
||||||
|
|
||||||
$myconv = q("SELECT `author-link`, `author-avatar`, `parent` FROM `item` WHERE `parent-uri` = '%s' AND `uid` = %d AND `parent` != 0 AND `deleted` = 0 ",
|
|
||||||
dbesc($parent_item['uri']),
|
|
||||||
intval($importer['uid'])
|
|
||||||
);
|
|
||||||
|
|
||||||
if(count($myconv)) {
|
|
||||||
$importer_url = $a->get_baseurl() . '/profile/' . $importer['nickname'];
|
|
||||||
|
|
||||||
foreach($myconv as $conv) {
|
|
||||||
|
|
||||||
// now if we find a match, it means we're in this conversation
|
|
||||||
|
|
||||||
if(! link_compare($conv['author-link'],$importer_url))
|
|
||||||
continue;
|
|
||||||
|
|
||||||
require_once('include/enotify.php');
|
|
||||||
|
|
||||||
$conv_parent = $conv['parent'];
|
|
||||||
|
|
||||||
notification(array(
|
|
||||||
'type' => NOTIFY_COMMENT,
|
|
||||||
'notify_flags' => $importer['notify-flags'],
|
|
||||||
'language' => $importer['language'],
|
|
||||||
'to_name' => $importer['username'],
|
|
||||||
'to_email' => $importer['email'],
|
|
||||||
'uid' => $importer['uid'],
|
|
||||||
'item' => $datarray,
|
|
||||||
'link' => $a->get_baseurl().'/display/'.urlencode($datarray['guid']),
|
|
||||||
'source_name' => $datarray['author-name'],
|
|
||||||
'source_link' => $datarray['author-link'],
|
|
||||||
'source_photo' => $datarray['author-avatar'],
|
|
||||||
'verb' => ACTIVITY_POST,
|
|
||||||
'otype' => 'item',
|
|
||||||
'parent' => $conv_parent,
|
|
||||||
'parent_uri' => $parent_uri
|
|
||||||
));
|
|
||||||
|
|
||||||
// only send one notification
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1793,7 +1744,6 @@ function diaspora_conversation($importer,$xml,$msg) {
|
||||||
intval($conversation['id'])
|
intval($conversation['id'])
|
||||||
);
|
);
|
||||||
|
|
||||||
require_once('include/enotify.php');
|
|
||||||
notification(array(
|
notification(array(
|
||||||
'type' => NOTIFY_MAIL,
|
'type' => NOTIFY_MAIL,
|
||||||
'notify_flags' => $importer['notify-flags'],
|
'notify_flags' => $importer['notify-flags'],
|
||||||
|
@ -2473,7 +2423,7 @@ function diaspora_profile($importer,$xml,$msg) {
|
||||||
|
|
||||||
require_once('include/Photo.php');
|
require_once('include/Photo.php');
|
||||||
|
|
||||||
$images = import_profile_photo($image_url,$importer['uid'],$contact['id']);
|
update_contact_avatar($image_url,$importer['uid'],$contact['id']);
|
||||||
|
|
||||||
// Generic birthday. We don't know the timezone. The year is irrelevant.
|
// Generic birthday. We don't know the timezone. The year is irrelevant.
|
||||||
|
|
||||||
|
@ -2491,15 +2441,12 @@ function diaspora_profile($importer,$xml,$msg) {
|
||||||
/// @TODO Update name on item['author-name'] if the name changed. See consume_feed()
|
/// @TODO Update name on item['author-name'] if the name changed. See consume_feed()
|
||||||
/// (Not doing this currently because D* protocol is scheduled for revision soon).
|
/// (Not doing this currently because D* protocol is scheduled for revision soon).
|
||||||
|
|
||||||
$r = q("UPDATE `contact` SET `name` = '%s', `nick` = '%s', `addr` = '%s', `name-date` = '%s', `photo` = '%s', `thumb` = '%s', `micro` = '%s', `avatar-date` = '%s' , `bd` = '%s', `location` = '%s', `about` = '%s', `keywords` = '%s', `gender` = '%s' WHERE `id` = %d AND `uid` = %d",
|
$r = q("UPDATE `contact` SET `name` = '%s', `nick` = '%s', `addr` = '%s', `name-date` = '%s', `bd` = '%s',
|
||||||
|
`location` = '%s', `about` = '%s', `keywords` = '%s', `gender` = '%s' WHERE `id` = %d AND `uid` = %d",
|
||||||
dbesc($name),
|
dbesc($name),
|
||||||
dbesc($nick),
|
dbesc($nick),
|
||||||
dbesc($diaspora_handle),
|
dbesc($diaspora_handle),
|
||||||
dbesc(datetime_convert()),
|
dbesc(datetime_convert()),
|
||||||
dbesc($image_url),
|
|
||||||
dbesc($images[1]),
|
|
||||||
dbesc($images[2]),
|
|
||||||
dbesc(datetime_convert()),
|
|
||||||
dbesc($birthday),
|
dbesc($birthday),
|
||||||
dbesc($location),
|
dbesc($location),
|
||||||
dbesc($about),
|
dbesc($about),
|
||||||
|
|
|
@ -633,4 +633,129 @@ function notification($params) {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Checks for item related notifications and sends them
|
||||||
|
*
|
||||||
|
* @param int $itemid ID of the item for which the check should be done
|
||||||
|
* @param int $uid User ID
|
||||||
|
* @param str $defaulttype (Optional) Forces a notification with this type.
|
||||||
|
*/
|
||||||
|
function check_item_notification($itemid, $uid, $defaulttype = "") {
|
||||||
|
|
||||||
|
$notification_data = array("uid" => $uid, "profiles" => array());
|
||||||
|
call_hooks('check_item_notification', $notification_data);
|
||||||
|
|
||||||
|
$profiles = $notification_data["profiles"];
|
||||||
|
|
||||||
|
$user = q("SELECT `notify-flags`, `language`, `username`, `email` FROM `user` WHERE `uid` = %d", intval($uid));
|
||||||
|
if (!$user)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
$owner = q("SELECT `id`, `url` FROM `contact` WHERE `self` AND `uid` = %d LIMIT 1", intval($uid));
|
||||||
|
if (!$owner)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
$profiles[] = $owner[0]["url"];
|
||||||
|
|
||||||
|
$profiles2 = array();
|
||||||
|
|
||||||
|
foreach ($profiles AS $profile) {
|
||||||
|
$profiles2[] = normalise_link($profile);
|
||||||
|
$profiles2[] = str_replace("http://", "https://", normalise_link($profile));
|
||||||
|
}
|
||||||
|
|
||||||
|
$profiles = $profiles2;
|
||||||
|
|
||||||
|
$profile_list = "";
|
||||||
|
|
||||||
|
foreach ($profiles AS $profile) {
|
||||||
|
if ($profile_list != "")
|
||||||
|
$profile_list .= "', '";
|
||||||
|
|
||||||
|
$profile_list .= dbesc($profile);
|
||||||
|
}
|
||||||
|
|
||||||
|
$profile_list = "'".$profile_list."'";
|
||||||
|
|
||||||
|
// Only act if it is a "real" post
|
||||||
|
// We need the additional check for the "local_profile" because of mixed situations on connector networks
|
||||||
|
$item = q("SELECT `id`, `mention`, `tag`,`parent`, `title`, `body`, `author-name`, `author-link`, `author-avatar`, `guid`,
|
||||||
|
`parent-uri`, `uri`, `contact-id`
|
||||||
|
FROM `item` WHERE `id` = %d AND `verb` IN ('%s', '') AND `type` != 'activity' AND
|
||||||
|
NOT (`author-link` IN ($profile_list)) LIMIT 1",
|
||||||
|
intval($itemid), dbesc(ACTIVITY_POST));
|
||||||
|
if (!$item)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
// Generate the notification array
|
||||||
|
$params = array();
|
||||||
|
$params["uid"] = $uid;
|
||||||
|
$params["notify_flags"] = $user[0]["notify-flags"];
|
||||||
|
$params["language"] = $user[0]["language"];
|
||||||
|
$params["to_name"] = $user[0]["username"];
|
||||||
|
$params["to_email"] = $user[0]["email"];
|
||||||
|
$params["item"] = $item[0];
|
||||||
|
$params["parent"] = $item[0]["parent"];
|
||||||
|
$params["link"] = App::get_baseurl().'/display/'.urlencode($item[0]["guid"]);
|
||||||
|
$params["otype"] = 'item';
|
||||||
|
$params["source_name"] = $item[0]["author-name"];
|
||||||
|
$params["source_link"] = $item[0]["author-link"];
|
||||||
|
$params["source_photo"] = $item[0]["author-avatar"];
|
||||||
|
|
||||||
|
if ($item[0]["parent-uri"] === $item[0]["uri"]) {
|
||||||
|
// Send a notification for every new post?
|
||||||
|
$r = q("SELECT `notify_new_posts` FROM `contact` WHERE `id` = %d AND `uid` = %d AND `notify_new_posts` LIMIT 1",
|
||||||
|
intval($item[0]['contact-id']),
|
||||||
|
intval($uid)
|
||||||
|
);
|
||||||
|
$send_notification = count($r);
|
||||||
|
|
||||||
|
if (!$send_notification) {
|
||||||
|
$tags = q("SELECT `url` FROM `term` WHERE `otype` = %d AND `oid` = %d AND `type` = %d AND `uid` = %d",
|
||||||
|
intval(TERM_OBJ_POST), intval($itemid), intval(TERM_MENTION), intval($uid));
|
||||||
|
|
||||||
|
if (count($tags)) {
|
||||||
|
foreach ($tags AS $tag) {
|
||||||
|
$r = q("SELECT `id` FROM `contact` WHERE `nurl` = '%s' AND `uid` = %d AND `notify_new_posts`",
|
||||||
|
normalise_link($tag["url"]), intval($uid));
|
||||||
|
if (count($r))
|
||||||
|
$send_notification = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($send_notification) {
|
||||||
|
$params["type"] = NOTIFY_SHARE;
|
||||||
|
$params["verb"] = ACTIVITY_TAG;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Is the user mentioned in this post?
|
||||||
|
$tagged = false;
|
||||||
|
|
||||||
|
foreach ($profiles AS $profile) {
|
||||||
|
if (strpos($item[0]["tag"], "=".$profile."]") OR strpos($item[0]["body"], "=".$profile."]"))
|
||||||
|
$tagged = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($item[0]["mention"] OR $tagged OR ($defaulttype == NOTIFY_TAGSELF)) {
|
||||||
|
$params["type"] = NOTIFY_TAGSELF;
|
||||||
|
$params["verb"] = ACTIVITY_TAG;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Is it a post that the user had started or where he interacted?
|
||||||
|
$parent = q("SELECT `thread`.`iid` FROM `thread` INNER JOIN `item` ON `item`.`parent` = `thread`.`iid`
|
||||||
|
WHERE `thread`.`iid` = %d AND `thread`.`uid` = %d AND NOT `thread`.`ignored` AND
|
||||||
|
(`thread`.`mention` OR `item`.`author-link` IN ($profile_list))
|
||||||
|
LIMIT 1",
|
||||||
|
intval($item[0]["parent"]), intval($uid));
|
||||||
|
|
||||||
|
if ($parent AND !isset($params["type"])) {
|
||||||
|
$params["type"] = NOTIFY_COMMENT;
|
||||||
|
$params["verb"] = ACTIVITY_POST;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (isset($params["type"]))
|
||||||
|
notification($params);
|
||||||
|
}
|
||||||
?>
|
?>
|
||||||
|
|
|
@ -264,24 +264,8 @@ function new_contact($uid,$url,$interactive = false) {
|
||||||
|
|
||||||
require_once("include/Photo.php");
|
require_once("include/Photo.php");
|
||||||
|
|
||||||
$photos = import_profile_photo($ret['photo'],$uid,$contact_id);
|
// Update the avatar
|
||||||
|
update_contact_avatar($ret['photo'],$uid,$contact_id);
|
||||||
$r = q("UPDATE `contact` SET `photo` = '%s',
|
|
||||||
`thumb` = '%s',
|
|
||||||
`micro` = '%s',
|
|
||||||
`name-date` = '%s',
|
|
||||||
`uri-date` = '%s',
|
|
||||||
`avatar-date` = '%s'
|
|
||||||
WHERE `id` = %d",
|
|
||||||
dbesc($photos[0]),
|
|
||||||
dbesc($photos[1]),
|
|
||||||
dbesc($photos[2]),
|
|
||||||
dbesc(datetime_convert()),
|
|
||||||
dbesc(datetime_convert()),
|
|
||||||
dbesc(datetime_convert()),
|
|
||||||
intval($contact_id)
|
|
||||||
);
|
|
||||||
|
|
||||||
|
|
||||||
// pull feed and consume it, which should subscribe to the hub.
|
// pull feed and consume it, which should subscribe to the hub.
|
||||||
|
|
||||||
|
|
|
@ -16,6 +16,7 @@ require_once('include/ostatus.php');
|
||||||
require_once('include/feed.php');
|
require_once('include/feed.php');
|
||||||
require_once('include/Contact.php');
|
require_once('include/Contact.php');
|
||||||
require_once('mod/share.php');
|
require_once('mod/share.php');
|
||||||
|
require_once('include/enotify.php');
|
||||||
|
|
||||||
require_once('library/defuse/php-encryption-1.2.1/Crypto.php');
|
require_once('library/defuse/php-encryption-1.2.1/Crypto.php');
|
||||||
|
|
||||||
|
@ -971,7 +972,9 @@ function item_store($arr,$force_parent = false, $notify = false, $dontcache = fa
|
||||||
// The contact-id should be set before "item_store" was called - but there seems to be some issues
|
// The contact-id should be set before "item_store" was called - but there seems to be some issues
|
||||||
if ($arr["contact-id"] == 0) {
|
if ($arr["contact-id"] == 0) {
|
||||||
// First we are looking for a suitable contact that matches with the author of the post
|
// First we are looking for a suitable contact that matches with the author of the post
|
||||||
$arr["contact-id"] = get_contact($arr['author-link'], $uid);
|
// This is done only for comments (See below explanation at "gcontact-id")
|
||||||
|
if($arr['parent-uri'] != $arr['uri'])
|
||||||
|
$arr["contact-id"] = get_contact($arr['author-link'], $uid);
|
||||||
|
|
||||||
// If not present then maybe the owner was found
|
// If not present then maybe the owner was found
|
||||||
if ($arr["contact-id"] == 0)
|
if ($arr["contact-id"] == 0)
|
||||||
|
@ -983,12 +986,20 @@ function item_store($arr,$force_parent = false, $notify = false, $dontcache = fa
|
||||||
if ($r)
|
if ($r)
|
||||||
$arr["contact-id"] = $r[0]["id"];
|
$arr["contact-id"] = $r[0]["id"];
|
||||||
}
|
}
|
||||||
logger("Contact-id was missing for post ".$arr["guid"]." - now set to ".$arr["contact-id"], LOGGER_DEBUG);
|
logger("Contact-id was missing for post ".$arr["guid"]." from user id ".$uid." - now set to ".$arr["contact-id"], LOGGER_DEBUG);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($arr["gcontact-id"] == 0)
|
if ($arr["gcontact-id"] == 0) {
|
||||||
$arr["gcontact-id"] = get_gcontact_id(array("url" => $arr['author-link'], "network" => $arr['network'],
|
// The gcontact should mostly behave like the contact. But is is supposed to be global for the system.
|
||||||
"photo" => $arr['author-avatar'], "name" => $arr['author-name']));
|
// This means that wall posts, repeated posts, etc. should have the gcontact id of the owner.
|
||||||
|
// On comments the author is the better choice.
|
||||||
|
if($arr['parent-uri'] === $arr['uri'])
|
||||||
|
$arr["gcontact-id"] = get_gcontact_id(array("url" => $arr['owner-link'], "network" => $arr['network'],
|
||||||
|
"photo" => $arr['owner-avatar'], "name" => $arr['owner-name']));
|
||||||
|
else
|
||||||
|
$arr["gcontact-id"] = get_gcontact_id(array("url" => $arr['author-link'], "network" => $arr['network'],
|
||||||
|
"photo" => $arr['author-avatar'], "name" => $arr['author-name']));
|
||||||
|
}
|
||||||
|
|
||||||
if ($arr['guid'] != "") {
|
if ($arr['guid'] != "") {
|
||||||
// Checking if there is already an item with the same guid
|
// Checking if there is already an item with the same guid
|
||||||
|
@ -1313,67 +1324,15 @@ function item_store($arr,$force_parent = false, $notify = false, $dontcache = fa
|
||||||
create_files_from_item($current_post);
|
create_files_from_item($current_post);
|
||||||
|
|
||||||
// Only check for notifications on start posts
|
// Only check for notifications on start posts
|
||||||
if ($arr['parent-uri'] === $arr['uri']) {
|
if ($arr['parent-uri'] === $arr['uri'])
|
||||||
add_thread($current_post);
|
add_thread($current_post);
|
||||||
logger('item_store: Check notification for contact '.$arr['contact-id'].' and post '.$current_post, LOGGER_DEBUG);
|
else {
|
||||||
|
|
||||||
// Send a notification for every new post?
|
|
||||||
$r = q("SELECT `notify_new_posts` FROM `contact` WHERE `id` = %d AND `uid` = %d AND `notify_new_posts` LIMIT 1",
|
|
||||||
intval($arr['contact-id']),
|
|
||||||
intval($arr['uid'])
|
|
||||||
);
|
|
||||||
$send_notification = count($r);
|
|
||||||
|
|
||||||
if (!$send_notification) {
|
|
||||||
$tags = q("SELECT `url` FROM `term` WHERE `otype` = %d AND `oid` = %d AND `type` = %d AND `uid` = %d",
|
|
||||||
intval(TERM_OBJ_POST), intval($current_post), intval(TERM_MENTION), intval($arr['uid']));
|
|
||||||
|
|
||||||
if (count($tags)) {
|
|
||||||
foreach ($tags AS $tag) {
|
|
||||||
$r = q("SELECT `id` FROM `contact` WHERE `nurl` = '%s' AND `uid` = %d AND `notify_new_posts`",
|
|
||||||
normalise_link($tag["url"]), intval($arr['uid']));
|
|
||||||
if (count($r))
|
|
||||||
$send_notification = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($send_notification) {
|
|
||||||
logger('item_store: Send notification for contact '.$arr['contact-id'].' and post '.$current_post, LOGGER_DEBUG);
|
|
||||||
$u = q("SELECT * FROM user WHERE uid = %d LIMIT 1",
|
|
||||||
intval($arr['uid']));
|
|
||||||
|
|
||||||
$item = q("SELECT * FROM `item` WHERE `id` = %d AND `uid` = %d",
|
|
||||||
intval($current_post),
|
|
||||||
intval($arr['uid'])
|
|
||||||
);
|
|
||||||
|
|
||||||
$a = get_app();
|
|
||||||
|
|
||||||
require_once('include/enotify.php');
|
|
||||||
notification(array(
|
|
||||||
'type' => NOTIFY_SHARE,
|
|
||||||
'notify_flags' => $u[0]['notify-flags'],
|
|
||||||
'language' => $u[0]['language'],
|
|
||||||
'to_name' => $u[0]['username'],
|
|
||||||
'to_email' => $u[0]['email'],
|
|
||||||
'uid' => $u[0]['uid'],
|
|
||||||
'item' => $item[0],
|
|
||||||
'link' => $a->get_baseurl().'/display/'.urlencode($arr['guid']),
|
|
||||||
'source_name' => $item[0]['author-name'],
|
|
||||||
'source_link' => $item[0]['author-link'],
|
|
||||||
'source_photo' => $item[0]['author-avatar'],
|
|
||||||
'verb' => ACTIVITY_TAG,
|
|
||||||
'otype' => 'item',
|
|
||||||
'parent' => $arr['parent']
|
|
||||||
));
|
|
||||||
logger('item_store: Notification sent for contact '.$arr['contact-id'].' and post '.$current_post, LOGGER_DEBUG);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
update_thread($parent_id);
|
update_thread($parent_id);
|
||||||
add_shadow_entry($arr);
|
add_shadow_entry($arr);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
check_item_notification($current_post, $uid);
|
||||||
|
|
||||||
if ($notify)
|
if ($notify)
|
||||||
proc_run('php', "include/notifier.php", $notify_type, $current_post);
|
proc_run('php', "include/notifier.php", $notify_type, $current_post);
|
||||||
|
|
||||||
|
@ -1569,37 +1528,6 @@ function tag_deliver($uid,$item_id) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// send a notification
|
|
||||||
|
|
||||||
// use a local photo if we have one
|
|
||||||
|
|
||||||
$r = q("select * from contact where uid = %d and nurl = '%s' limit 1",
|
|
||||||
intval($u[0]['uid']),
|
|
||||||
dbesc(normalise_link($item['author-link']))
|
|
||||||
);
|
|
||||||
$photo = (($r && count($r)) ? $r[0]['thumb'] : $item['author-avatar']);
|
|
||||||
|
|
||||||
|
|
||||||
require_once('include/enotify.php');
|
|
||||||
notification(array(
|
|
||||||
'type' => NOTIFY_TAGSELF,
|
|
||||||
'notify_flags' => $u[0]['notify-flags'],
|
|
||||||
'language' => $u[0]['language'],
|
|
||||||
'to_name' => $u[0]['username'],
|
|
||||||
'to_email' => $u[0]['email'],
|
|
||||||
'uid' => $u[0]['uid'],
|
|
||||||
'item' => $item,
|
|
||||||
'link' => $a->get_baseurl() . '/display/'.urlencode(get_item_guid($item['id'])),
|
|
||||||
'source_name' => $item['author-name'],
|
|
||||||
'source_link' => $item['author-link'],
|
|
||||||
'source_photo' => $photo,
|
|
||||||
'verb' => ACTIVITY_TAG,
|
|
||||||
'otype' => 'item',
|
|
||||||
'parent' => $item['parent']
|
|
||||||
));
|
|
||||||
|
|
||||||
|
|
||||||
$arr = array('item' => $item, 'user' => $u[0], 'contact' => $r[0]);
|
$arr = array('item' => $item, 'user' => $u[0], 'contact' => $r[0]);
|
||||||
|
|
||||||
call_hooks('tagged', $arr);
|
call_hooks('tagged', $arr);
|
||||||
|
@ -3254,33 +3182,7 @@ function local_delivery($importer,$data) {
|
||||||
}
|
}
|
||||||
|
|
||||||
if($posted_id && $parent) {
|
if($posted_id && $parent) {
|
||||||
|
|
||||||
proc_run('php',"include/notifier.php","comment-import","$posted_id");
|
proc_run('php',"include/notifier.php","comment-import","$posted_id");
|
||||||
|
|
||||||
if((! $is_like) && (! $importer['self'])) {
|
|
||||||
|
|
||||||
require_once('include/enotify.php');
|
|
||||||
|
|
||||||
notification(array(
|
|
||||||
'type' => NOTIFY_COMMENT,
|
|
||||||
'notify_flags' => $importer['notify-flags'],
|
|
||||||
'language' => $importer['language'],
|
|
||||||
'to_name' => $importer['username'],
|
|
||||||
'to_email' => $importer['email'],
|
|
||||||
'uid' => $importer['importer_uid'],
|
|
||||||
'item' => $datarray,
|
|
||||||
'link' => $a->get_baseurl().'/display/'.urlencode(get_item_guid($posted_id)),
|
|
||||||
'source_name' => stripslashes($datarray['author-name']),
|
|
||||||
'source_link' => $datarray['author-link'],
|
|
||||||
'source_photo' => ((link_compare($datarray['author-link'],$importer['url']))
|
|
||||||
? $importer['thumb'] : $datarray['author-avatar']),
|
|
||||||
'verb' => ACTIVITY_POST,
|
|
||||||
'otype' => 'item',
|
|
||||||
'parent' => $parent,
|
|
||||||
'parent_uri' => $parent_uri,
|
|
||||||
));
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -3402,59 +3304,6 @@ function local_delivery($importer,$data) {
|
||||||
|
|
||||||
$posted_id = item_store($datarray);
|
$posted_id = item_store($datarray);
|
||||||
|
|
||||||
// find out if our user is involved in this conversation and wants to be notified.
|
|
||||||
|
|
||||||
if(!x($datarray['type']) || $datarray['type'] != 'activity') {
|
|
||||||
|
|
||||||
$myconv = q("SELECT `author-link`, `author-avatar`, `parent` FROM `item` WHERE `parent-uri` = '%s' AND `uid` = %d AND `parent` != 0 AND `deleted` = 0",
|
|
||||||
dbesc($top_uri),
|
|
||||||
intval($importer['importer_uid'])
|
|
||||||
);
|
|
||||||
|
|
||||||
if(count($myconv)) {
|
|
||||||
$importer_url = $a->get_baseurl() . '/profile/' . $importer['nickname'];
|
|
||||||
|
|
||||||
// first make sure this isn't our own post coming back to us from a wall-to-wall event
|
|
||||||
if(! link_compare($datarray['author-link'],$importer_url)) {
|
|
||||||
|
|
||||||
|
|
||||||
foreach($myconv as $conv) {
|
|
||||||
|
|
||||||
// now if we find a match, it means we're in this conversation
|
|
||||||
|
|
||||||
if(! link_compare($conv['author-link'],$importer_url))
|
|
||||||
continue;
|
|
||||||
|
|
||||||
require_once('include/enotify.php');
|
|
||||||
|
|
||||||
$conv_parent = $conv['parent'];
|
|
||||||
|
|
||||||
notification(array(
|
|
||||||
'type' => NOTIFY_COMMENT,
|
|
||||||
'notify_flags' => $importer['notify-flags'],
|
|
||||||
'language' => $importer['language'],
|
|
||||||
'to_name' => $importer['username'],
|
|
||||||
'to_email' => $importer['email'],
|
|
||||||
'uid' => $importer['importer_uid'],
|
|
||||||
'item' => $datarray,
|
|
||||||
'link' => $a->get_baseurl().'/display/'.urlencode(get_item_guid($posted_id)),
|
|
||||||
'source_name' => stripslashes($datarray['author-name']),
|
|
||||||
'source_link' => $datarray['author-link'],
|
|
||||||
'source_photo' => ((link_compare($datarray['author-link'],$importer['url']))
|
|
||||||
? $importer['thumb'] : $datarray['author-avatar']),
|
|
||||||
'verb' => ACTIVITY_POST,
|
|
||||||
'otype' => 'item',
|
|
||||||
'parent' => $conv_parent,
|
|
||||||
'parent_uri' => $parent_uri
|
|
||||||
|
|
||||||
));
|
|
||||||
|
|
||||||
// only send one notification
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -127,7 +127,8 @@ function ostatus_fetchauthor($xpath, $context, $importer, &$contact, $onlyfetch)
|
||||||
$author["owner-link"] = $author["author-link"];
|
$author["owner-link"] = $author["author-link"];
|
||||||
$author["owner-avatar"] = $author["author-avatar"];
|
$author["owner-avatar"] = $author["author-avatar"];
|
||||||
|
|
||||||
if ($r AND !$onlyfetch) {
|
// Only update the contacts if it is an OStatus contact
|
||||||
|
if ($r AND !$onlyfetch AND ($contact["network"] == NETWORK_OSTATUS)) {
|
||||||
// Update contact data
|
// Update contact data
|
||||||
|
|
||||||
$value = $xpath->query("atom:link[@rel='salmon']", $context)->item(0)->nodeValue;
|
$value = $xpath->query("atom:link[@rel='salmon']", $context)->item(0)->nodeValue;
|
||||||
|
@ -158,31 +159,25 @@ function ostatus_fetchauthor($xpath, $context, $importer, &$contact, $onlyfetch)
|
||||||
|
|
||||||
logger("Update contact data for contact ".$contact["id"], LOGGER_DEBUG);
|
logger("Update contact data for contact ".$contact["id"], LOGGER_DEBUG);
|
||||||
|
|
||||||
q("UPDATE `contact` SET `name` = '%s', `nick` = '%s', `about` = '%s', `location` = '%s', `name-date` = '%s' WHERE `id` = %d AND `network` = '%s'",
|
q("UPDATE `contact` SET `name` = '%s', `nick` = '%s', `about` = '%s', `location` = '%s', `name-date` = '%s' WHERE `id` = %d",
|
||||||
dbesc($contact["name"]), dbesc($contact["nick"]), dbesc($contact["about"]), dbesc($contact["location"]),
|
dbesc($contact["name"]), dbesc($contact["nick"]), dbesc($contact["about"]), dbesc($contact["location"]),
|
||||||
dbesc(datetime_convert()), intval($contact["id"]), dbesc(NETWORK_OSTATUS));
|
dbesc(datetime_convert()), intval($contact["id"]));
|
||||||
|
|
||||||
poco_check($contact["url"], $contact["name"], $contact["network"], $author["author-avatar"], $contact["about"], $contact["location"],
|
poco_check($contact["url"], $contact["name"], $contact["network"], $author["author-avatar"], $contact["about"], $contact["location"],
|
||||||
"", "", "", datetime_convert(), 2, $contact["id"], $contact["uid"]);
|
"", "", "", datetime_convert(), 2, $contact["id"], $contact["uid"]);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (isset($author["author-avatar"]) AND ($author["author-avatar"] != $r[0]['photo'])) {
|
if (isset($author["author-avatar"]) AND ($author["author-avatar"] != $r[0]['avatar'])) {
|
||||||
logger("Update profile picture for contact ".$contact["id"], LOGGER_DEBUG);
|
logger("Update profile picture for contact ".$contact["id"], LOGGER_DEBUG);
|
||||||
|
|
||||||
$photos = import_profile_photo($author["author-avatar"], $importer["uid"], $contact["id"]);
|
update_contact_avatar($author["author-avatar"], $importer["uid"], $contact["id"]);
|
||||||
|
|
||||||
q("UPDATE `contact` SET `photo` = '%s', `thumb` = '%s', `micro` = '%s', `avatar-date` = '%s' WHERE `id` = %d AND `network` = '%s'",
|
|
||||||
dbesc($author["author-avatar"]), dbesc($photos[1]), dbesc($photos[2]),
|
|
||||||
dbesc(datetime_convert()), intval($contact["id"]), dbesc(NETWORK_OSTATUS));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Only update the global contact if it is an OStatus contact
|
|
||||||
if ($contact["network"] == NETWORK_OSTATUS) {
|
/// @todo Add the "addr" field
|
||||||
/// @todo Add the "addr" field
|
$contact["generation"] = 2;
|
||||||
$contact["generation"] = 2;
|
$contact["photo"] = $author["author-avatar"];
|
||||||
$contact["photo"] = $author["author-avatar"];
|
update_gcontact($contact);
|
||||||
update_gcontact($contact);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return($author);
|
return($author);
|
||||||
|
@ -561,29 +556,6 @@ function ostatus_import($xml,$importer,&$contact, &$hub) {
|
||||||
}
|
}
|
||||||
|
|
||||||
logger("Item was stored with id ".$item_id, LOGGER_DEBUG);
|
logger("Item was stored with id ".$item_id, LOGGER_DEBUG);
|
||||||
$item["id"] = $item_id;
|
|
||||||
|
|
||||||
if ($mention AND in_array($item["verb"], array(ACTIVITY_POST, ACTIVITY_SHARE))) {
|
|
||||||
$u = q("SELECT `notify-flags`, `language`, `username`, `email` FROM user WHERE uid = %d LIMIT 1", intval($item['uid']));
|
|
||||||
$r = q("SELECT `parent` FROM `item` WHERE `id` = %d", intval($item_id));
|
|
||||||
|
|
||||||
notification(array(
|
|
||||||
'type' => NOTIFY_TAGSELF,
|
|
||||||
'notify_flags' => $u[0]["notify-flags"],
|
|
||||||
'language' => $u[0]["language"],
|
|
||||||
'to_name' => $u[0]["username"],
|
|
||||||
'to_email' => $u[0]["email"],
|
|
||||||
'uid' => $item["uid"],
|
|
||||||
'item' => $item,
|
|
||||||
'link' => $a->get_baseurl().'/display/'.urlencode(get_item_guid($item_id)),
|
|
||||||
'source_name' => $item["author-name"],
|
|
||||||
'source_link' => $item["author-link"],
|
|
||||||
'source_photo' => $item["author-avatar"],
|
|
||||||
'verb' => ACTIVITY_TAG,
|
|
||||||
'otype' => 'item',
|
|
||||||
'parent' => $r[0]["parent"]
|
|
||||||
));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1028,28 +1000,6 @@ function ostatus_completion($conversation_url, $uid, $item = array()) {
|
||||||
// Add the conversation entry (but don't fetch the whole conversation)
|
// Add the conversation entry (but don't fetch the whole conversation)
|
||||||
ostatus_store_conversation($newitem, $conversation_url);
|
ostatus_store_conversation($newitem, $conversation_url);
|
||||||
|
|
||||||
if ($mention) {
|
|
||||||
$u = q("SELECT `notify-flags`, `language`, `username`, `email` FROM user WHERE uid = %d LIMIT 1", intval($uid));
|
|
||||||
$r = q("SELECT `parent` FROM `item` WHERE `id` = %d", intval($newitem));
|
|
||||||
|
|
||||||
notification(array(
|
|
||||||
'type' => NOTIFY_TAGSELF,
|
|
||||||
'notify_flags' => $u[0]["notify-flags"],
|
|
||||||
'language' => $u[0]["language"],
|
|
||||||
'to_name' => $u[0]["username"],
|
|
||||||
'to_email' => $u[0]["email"],
|
|
||||||
'uid' => $uid,
|
|
||||||
'item' => $arr,
|
|
||||||
'link' => $a->get_baseurl().'/display/'.urlencode(get_item_guid($newitem)),
|
|
||||||
'source_name' => $arr["author-name"],
|
|
||||||
'source_link' => $arr["author-link"],
|
|
||||||
'source_photo' => $arr["author-avatar"],
|
|
||||||
'verb' => ACTIVITY_TAG,
|
|
||||||
'otype' => 'item',
|
|
||||||
'parent' => $r[0]["parent"]
|
|
||||||
));
|
|
||||||
}
|
|
||||||
|
|
||||||
// If the newly created item is the top item then change the parent settings of the thread
|
// If the newly created item is the top item then change the parent settings of the thread
|
||||||
// This shouldn't happen anymore. This is supposed to be absolote.
|
// This shouldn't happen anymore. This is supposed to be absolote.
|
||||||
if ($arr["uri"] == $first_id) {
|
if ($arr["uri"] == $first_id) {
|
||||||
|
|
|
@ -293,23 +293,8 @@ function _contact_update_profile($contact_id) {
|
||||||
intval(local_user())
|
intval(local_user())
|
||||||
);
|
);
|
||||||
|
|
||||||
$photos = import_profile_photo($data['photo'], local_user(), $contact_id);
|
// Update the entry in the contact table
|
||||||
|
update_contact_avatar($data['photo'], local_user(), $contact_id);
|
||||||
$r = q("UPDATE `contact` SET `photo` = '%s',
|
|
||||||
`thumb` = '%s',
|
|
||||||
`micro` = '%s',
|
|
||||||
`name-date` = '%s',
|
|
||||||
`uri-date` = '%s',
|
|
||||||
`avatar-date` = '%s'
|
|
||||||
WHERE `id` = %d",
|
|
||||||
dbesc($data["photo"]),
|
|
||||||
dbesc($photos[1]),
|
|
||||||
dbesc($photos[2]),
|
|
||||||
dbesc(datetime_convert()),
|
|
||||||
dbesc(datetime_convert()),
|
|
||||||
dbesc(datetime_convert()),
|
|
||||||
intval($contact_id)
|
|
||||||
);
|
|
||||||
|
|
||||||
// Update the entry in the gcontact table
|
// Update the entry in the gcontact table
|
||||||
update_gcontact_from_probe($data["url"]);
|
update_gcontact_from_probe($data["url"]);
|
||||||
|
|
|
@ -80,24 +80,7 @@ function crepair_post(&$a) {
|
||||||
logger('mod-crepair: updating photo from ' . $photo);
|
logger('mod-crepair: updating photo from ' . $photo);
|
||||||
require_once("include/Photo.php");
|
require_once("include/Photo.php");
|
||||||
|
|
||||||
$photos = import_profile_photo($photo,local_user(),$contact['id']);
|
update_contact_avatar($photo,local_user(),$contact['id']);
|
||||||
|
|
||||||
$x = q("UPDATE `contact` SET `photo` = '%s',
|
|
||||||
`thumb` = '%s',
|
|
||||||
`micro` = '%s',
|
|
||||||
`name-date` = '%s',
|
|
||||||
`uri-date` = '%s',
|
|
||||||
`avatar-date` = '%s'
|
|
||||||
WHERE `id` = %d
|
|
||||||
",
|
|
||||||
dbesc($photos[0]),
|
|
||||||
dbesc($photos[1]),
|
|
||||||
dbesc($photos[2]),
|
|
||||||
dbesc(datetime_convert()),
|
|
||||||
dbesc(datetime_convert()),
|
|
||||||
dbesc(datetime_convert()),
|
|
||||||
intval($contact['id'])
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if($r)
|
if($r)
|
||||||
|
|
|
@ -315,7 +315,7 @@ function dfrn_confirm_post(&$a,$handsfree = null) {
|
||||||
|
|
||||||
require_once('include/Photo.php');
|
require_once('include/Photo.php');
|
||||||
|
|
||||||
$photos = import_profile_photo($contact['photo'],$uid,$contact_id);
|
update_contact_avatar($contact['photo'],$uid,$contact_id);
|
||||||
|
|
||||||
logger('dfrn_confirm: confirm - imported photos');
|
logger('dfrn_confirm: confirm - imported photos');
|
||||||
|
|
||||||
|
@ -328,27 +328,18 @@ function dfrn_confirm_post(&$a,$handsfree = null) {
|
||||||
if(($relation == CONTACT_IS_SHARING) && ($duplex))
|
if(($relation == CONTACT_IS_SHARING) && ($duplex))
|
||||||
$duplex = 0;
|
$duplex = 0;
|
||||||
|
|
||||||
$r = q("UPDATE `contact` SET
|
$r = q("UPDATE `contact` SET `rel` = %d,
|
||||||
`photo` = '%s',
|
|
||||||
`thumb` = '%s',
|
|
||||||
`micro` = '%s',
|
|
||||||
`rel` = %d,
|
|
||||||
`name-date` = '%s',
|
`name-date` = '%s',
|
||||||
`uri-date` = '%s',
|
`uri-date` = '%s',
|
||||||
`avatar-date` = '%s',
|
|
||||||
`blocked` = 0,
|
`blocked` = 0,
|
||||||
`pending` = 0,
|
`pending` = 0,
|
||||||
`duplex` = %d,
|
`duplex` = %d,
|
||||||
`hidden` = %d,
|
`hidden` = %d,
|
||||||
`network` = '%s' WHERE `id` = %d
|
`network` = '%s' WHERE `id` = %d
|
||||||
",
|
",
|
||||||
dbesc($photos[0]),
|
|
||||||
dbesc($photos[1]),
|
|
||||||
dbesc($photos[2]),
|
|
||||||
intval($new_relation),
|
intval($new_relation),
|
||||||
dbesc(datetime_convert()),
|
dbesc(datetime_convert()),
|
||||||
dbesc(datetime_convert()),
|
dbesc(datetime_convert()),
|
||||||
dbesc(datetime_convert()),
|
|
||||||
intval($duplex),
|
intval($duplex),
|
||||||
intval($hidden),
|
intval($hidden),
|
||||||
dbesc(NETWORK_DFRN),
|
dbesc(NETWORK_DFRN),
|
||||||
|
@ -394,12 +385,8 @@ function dfrn_confirm_post(&$a,$handsfree = null) {
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
$r = q("UPDATE `contact` SET `photo` = '%s',
|
$r = q("UPDATE `contact` SET `name-date` = '%s',
|
||||||
`thumb` = '%s',
|
|
||||||
`micro` = '%s',
|
|
||||||
`name-date` = '%s',
|
|
||||||
`uri-date` = '%s',
|
`uri-date` = '%s',
|
||||||
`avatar-date` = '%s',
|
|
||||||
`notify` = '%s',
|
`notify` = '%s',
|
||||||
`poll` = '%s',
|
`poll` = '%s',
|
||||||
`blocked` = 0,
|
`blocked` = 0,
|
||||||
|
@ -410,10 +397,6 @@ function dfrn_confirm_post(&$a,$handsfree = null) {
|
||||||
`rel` = %d
|
`rel` = %d
|
||||||
WHERE `id` = %d
|
WHERE `id` = %d
|
||||||
",
|
",
|
||||||
dbesc($photos[0]),
|
|
||||||
dbesc($photos[1]),
|
|
||||||
dbesc($photos[2]),
|
|
||||||
dbesc(datetime_convert()),
|
|
||||||
dbesc(datetime_convert()),
|
dbesc(datetime_convert()),
|
||||||
dbesc(datetime_convert()),
|
dbesc(datetime_convert()),
|
||||||
dbesc($notify),
|
dbesc($notify),
|
||||||
|
@ -683,7 +666,7 @@ function dfrn_confirm_post(&$a,$handsfree = null) {
|
||||||
|
|
||||||
require_once("include/Photo.php");
|
require_once("include/Photo.php");
|
||||||
|
|
||||||
$photos = import_profile_photo($photo,$local_uid,$dfrn_record);
|
update_contact_avatar($photo,$local_uid,$dfrn_record);
|
||||||
|
|
||||||
logger('dfrn_confirm: request - photos imported');
|
logger('dfrn_confirm: request - photos imported');
|
||||||
|
|
||||||
|
@ -695,13 +678,9 @@ function dfrn_confirm_post(&$a,$handsfree = null) {
|
||||||
$duplex = 0;
|
$duplex = 0;
|
||||||
|
|
||||||
$r = q("UPDATE `contact` SET
|
$r = q("UPDATE `contact` SET
|
||||||
`photo` = '%s',
|
|
||||||
`thumb` = '%s',
|
|
||||||
`micro` = '%s',
|
|
||||||
`rel` = %d,
|
`rel` = %d,
|
||||||
`name-date` = '%s',
|
`name-date` = '%s',
|
||||||
`uri-date` = '%s',
|
`uri-date` = '%s',
|
||||||
`avatar-date` = '%s',
|
|
||||||
`blocked` = 0,
|
`blocked` = 0,
|
||||||
`pending` = 0,
|
`pending` = 0,
|
||||||
`duplex` = %d,
|
`duplex` = %d,
|
||||||
|
@ -709,13 +688,9 @@ function dfrn_confirm_post(&$a,$handsfree = null) {
|
||||||
`prv` = %d,
|
`prv` = %d,
|
||||||
`network` = '%s' WHERE `id` = %d
|
`network` = '%s' WHERE `id` = %d
|
||||||
",
|
",
|
||||||
dbesc($photos[0]),
|
|
||||||
dbesc($photos[1]),
|
|
||||||
dbesc($photos[2]),
|
|
||||||
intval($new_relation),
|
intval($new_relation),
|
||||||
dbesc(datetime_convert()),
|
dbesc(datetime_convert()),
|
||||||
dbesc(datetime_convert()),
|
dbesc(datetime_convert()),
|
||||||
dbesc(datetime_convert()),
|
|
||||||
intval($duplex),
|
intval($duplex),
|
||||||
intval($forum),
|
intval($forum),
|
||||||
intval($prv),
|
intval($prv),
|
||||||
|
|
|
@ -158,13 +158,18 @@ function wall_upload_post(&$a, $desktopmode = true) {
|
||||||
killme();
|
killme();
|
||||||
}
|
}
|
||||||
|
|
||||||
$r = q("select sum(octet_length(data)) as total from photo where uid = %d and scale = 0 and album != 'Contact Photos' ",
|
|
||||||
intval($page_owner_uid)
|
|
||||||
);
|
|
||||||
|
|
||||||
$limit = service_class_fetch($page_owner_uid,'photo_upload_limit');
|
$limit = service_class_fetch($page_owner_uid,'photo_upload_limit');
|
||||||
|
|
||||||
if(($limit !== false) && (($r[0]['total'] + strlen($imagedata)) > $limit)) {
|
if ($limit) {
|
||||||
|
$r = q("select sum(octet_length(data)) as total from photo where uid = %d and scale = 0 and album != 'Contact Photos' ",
|
||||||
|
intval($page_owner_uid)
|
||||||
|
);
|
||||||
|
$size = $r[0]['total'];
|
||||||
|
} else
|
||||||
|
$size = 0;
|
||||||
|
|
||||||
|
if(($limit !== false) && (($size + strlen($imagedata)) > $limit)) {
|
||||||
$msg = upgrade_message(true);
|
$msg = upgrade_message(true);
|
||||||
if ($r_json) {
|
if ($r_json) {
|
||||||
echo json_encode(array('error'=>$msg));
|
echo json_encode(array('error'=>$msg));
|
||||||
|
@ -266,6 +271,7 @@ function wall_upload_post(&$a, $desktopmode = true) {
|
||||||
return $picture;
|
return $picture;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if ($r_json) {
|
if ($r_json) {
|
||||||
echo json_encode(array('ok'=>true));
|
echo json_encode(array('ok'=>true));
|
||||||
killme();
|
killme();
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
define( 'UPDATE_VERSION' , 1193 );
|
define( 'UPDATE_VERSION' , 1194 );
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
|
|
Loading…
Reference in a new issue