|
|
|
@ -1395,56 +1395,12 @@ function item_store($arr,$force_parent = false, $notify = false, $dontcache = fa
|
|
|
|
|
dbesc($arr['received']), |
|
|
|
|
intval($arr['contact-id']) |
|
|
|
|
); |
|
|
|
|
|
|
|
|
|
// Only check for notifications on start posts |
|
|
|
|
if ($arr['parent-uri'] === $arr['uri']) { |
|
|
|
|
add_thread($r[0]['id']); |
|
|
|
|
logger('item_store: Check notification for contact '.$arr['contact-id'].' and post '.$current_post, LOGGER_DEBUG); |
|
|
|
|
|
|
|
|
|
// 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']) |
|
|
|
|
); |
|
|
|
|
|
|
|
|
|
if(count($r)) { |
|
|
|
|
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' |
|
|
|
|
)); |
|
|
|
|
logger('item_store: Notification sent for contact '.$arr['contact-id'].' and post '.$current_post, LOGGER_DEBUG); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
} else { |
|
|
|
|
logger('item_store: could not locate created item'); |
|
|
|
|
return 0; |
|
|
|
|
} |
|
|
|
|
if(count($r) > 1) { |
|
|
|
|
logger('item_store: duplicated post occurred. Removing duplicates.'); |
|
|
|
|
logger('item_store: duplicated post occurred. Removing duplicates. uri = '.$arr['uri'].' uid = '.$arr['uid']); |
|
|
|
|
q("DELETE FROM `item` WHERE `uri` = '%s' AND `uid` = %d AND `id` != %d ", |
|
|
|
|
dbesc($arr['uri']), |
|
|
|
|
intval($arr['uid']), |
|
|
|
@ -1494,7 +1450,6 @@ function item_store($arr,$force_parent = false, $notify = false, $dontcache = fa
|
|
|
|
|
dbesc(datetime_convert()), |
|
|
|
|
intval($parent_id) |
|
|
|
|
); |
|
|
|
|
update_thread($parent_id); |
|
|
|
|
|
|
|
|
|
if($dsprsig) { |
|
|
|
|
q("insert into sign (`iid`,`signed_text`,`signature`,`signer`) values (%d,'%s','%s','%s') ", |
|
|
|
@ -1525,16 +1480,7 @@ function item_store($arr,$force_parent = false, $notify = false, $dontcache = fa
|
|
|
|
|
if (!$deleted AND !$dontcache) { |
|
|
|
|
|
|
|
|
|
// Store the fresh generated item into the cache |
|
|
|
|
$cachefile = get_cachefile(urlencode($arr["guid"])."-".hash("md5", $arr['body'])); |
|
|
|
|
|
|
|
|
|
if (($cachefile != '') AND !file_exists($cachefile)) { |
|
|
|
|
$s = prepare_text($arr['body']); |
|
|
|
|
$a = get_app(); |
|
|
|
|
$stamp1 = microtime(true); |
|
|
|
|
file_put_contents($cachefile, $s); |
|
|
|
|
$a->save_timestamp($stamp1, "file"); |
|
|
|
|
logger('item_store: put item '.$current_post.' into cachefile '.$cachefile); |
|
|
|
|
} |
|
|
|
|
put_item_in_cache($arr); |
|
|
|
|
|
|
|
|
|
$r = q('SELECT * FROM `item` WHERE id = %d', intval($current_post)); |
|
|
|
|
if (count($r) == 1) { |
|
|
|
@ -1544,9 +1490,68 @@ function item_store($arr,$force_parent = false, $notify = false, $dontcache = fa
|
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
create_tags_from_item($current_post, $dontcache); |
|
|
|
|
create_tags_from_item($current_post); |
|
|
|
|
create_files_from_item($current_post); |
|
|
|
|
|
|
|
|
|
// Only check for notifications on start posts |
|
|
|
|
if ($arr['parent-uri'] === $arr['uri']) { |
|
|
|
|
add_thread($current_post); |
|
|
|
|
logger('item_store: Check notification for contact '.$arr['contact-id'].' and post '.$current_post, LOGGER_DEBUG); |
|
|
|
|
|
|
|
|
|
// 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' |
|
|
|
|
)); |
|
|
|
|
logger('item_store: Notification sent for contact '.$arr['contact-id'].' and post '.$current_post, LOGGER_DEBUG); |
|
|
|
|
} |
|
|
|
|
} else |
|
|
|
|
update_thread($parent_id); |
|
|
|
|
|
|
|
|
|
if ($notify) |
|
|
|
|
proc_run('php', "include/notifier.php", $notify_type, $current_post); |
|
|
|
|
|
|
|
|
@ -4669,8 +4674,8 @@ function drop_item($id,$interactive = true) {
|
|
|
|
|
dbesc($item['parent-uri']), |
|
|
|
|
intval($item['uid']) |
|
|
|
|
); |
|
|
|
|
create_tags_from_item($item['parent-uri'], $item['uid']); |
|
|
|
|
create_files_from_item($item['parent-uri'], $item['uid']); |
|
|
|
|
create_tags_from_itemuri($item['parent-uri'], $item['uid']); |
|
|
|
|
create_files_from_itemuri($item['parent-uri'], $item['uid']); |
|
|
|
|
delete_thread_uri($item['parent-uri'], $item['uid']); |
|
|
|
|
// ignore the result |
|
|
|
|
} |
|
|
|
|