Merge remote-tracking branch 'upstream/develop' into 1502-poco-generation-counter
This commit is contained in:
commit
2dafc9eac1
|
@ -1431,56 +1431,12 @@ function item_store($arr,$force_parent = false, $notify = false, $dontcache = fa
|
||||||
dbesc($arr['received']),
|
dbesc($arr['received']),
|
||||||
intval($arr['contact-id'])
|
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 {
|
} else {
|
||||||
logger('item_store: could not locate created item');
|
logger('item_store: could not locate created item');
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
if(count($r) > 1) {
|
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 ",
|
q("DELETE FROM `item` WHERE `uri` = '%s' AND `uid` = %d AND `id` != %d ",
|
||||||
dbesc($arr['uri']),
|
dbesc($arr['uri']),
|
||||||
intval($arr['uid']),
|
intval($arr['uid']),
|
||||||
|
@ -1530,7 +1486,6 @@ function item_store($arr,$force_parent = false, $notify = false, $dontcache = fa
|
||||||
dbesc(datetime_convert()),
|
dbesc(datetime_convert()),
|
||||||
intval($parent_id)
|
intval($parent_id)
|
||||||
);
|
);
|
||||||
update_thread($parent_id);
|
|
||||||
|
|
||||||
if($dsprsig) {
|
if($dsprsig) {
|
||||||
q("insert into sign (`iid`,`signed_text`,`signature`,`signer`) values (%d,'%s','%s','%s') ",
|
q("insert into sign (`iid`,`signed_text`,`signature`,`signer`) values (%d,'%s','%s','%s') ",
|
||||||
|
@ -1561,16 +1516,7 @@ function item_store($arr,$force_parent = false, $notify = false, $dontcache = fa
|
||||||
if (!$deleted AND !$dontcache) {
|
if (!$deleted AND !$dontcache) {
|
||||||
|
|
||||||
// Store the fresh generated item into the cache
|
// Store the fresh generated item into the cache
|
||||||
$cachefile = get_cachefile(urlencode($arr["guid"])."-".hash("md5", $arr['body']));
|
put_item_in_cache($arr);
|
||||||
|
|
||||||
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);
|
|
||||||
}
|
|
||||||
|
|
||||||
$r = q('SELECT * FROM `item` WHERE id = %d', intval($current_post));
|
$r = q('SELECT * FROM `item` WHERE id = %d', intval($current_post));
|
||||||
if (count($r) == 1) {
|
if (count($r) == 1) {
|
||||||
|
@ -1580,9 +1526,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);
|
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)
|
if ($notify)
|
||||||
proc_run('php', "include/notifier.php", $notify_type, $current_post);
|
proc_run('php', "include/notifier.php", $notify_type, $current_post);
|
||||||
|
|
||||||
|
@ -4722,8 +4727,8 @@ function drop_item($id,$interactive = true) {
|
||||||
dbesc($item['parent-uri']),
|
dbesc($item['parent-uri']),
|
||||||
intval($item['uid'])
|
intval($item['uid'])
|
||||||
);
|
);
|
||||||
create_tags_from_item($item['parent-uri'], $item['uid']);
|
create_tags_from_itemuri($item['parent-uri'], $item['uid']);
|
||||||
create_files_from_item($item['parent-uri'], $item['uid']);
|
create_files_from_itemuri($item['parent-uri'], $item['uid']);
|
||||||
delete_thread_uri($item['parent-uri'], $item['uid']);
|
delete_thread_uri($item['parent-uri'], $item['uid']);
|
||||||
// ignore the result
|
// ignore the result
|
||||||
}
|
}
|
||||||
|
|
|
@ -284,13 +284,13 @@ function onepoll_run(&$argv, &$argc){
|
||||||
}
|
}
|
||||||
elseif($contact['network'] === NETWORK_MAIL || $contact['network'] === NETWORK_MAIL2) {
|
elseif($contact['network'] === NETWORK_MAIL || $contact['network'] === NETWORK_MAIL2) {
|
||||||
|
|
||||||
logger("onepoll: mail: Fetching", LOGGER_DEBUG);
|
logger("Mail: Fetching", LOGGER_DEBUG);
|
||||||
|
|
||||||
$mail_disabled = ((function_exists('imap_open') && (! get_config('system','imap_disabled'))) ? 0 : 1);
|
$mail_disabled = ((function_exists('imap_open') && (! get_config('system','imap_disabled'))) ? 0 : 1);
|
||||||
if($mail_disabled)
|
if($mail_disabled)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
logger("onepoll: Mail: Enabled", LOGGER_DEBUG);
|
logger("Mail: Enabled", LOGGER_DEBUG);
|
||||||
|
|
||||||
$mbox = null;
|
$mbox = null;
|
||||||
$x = q("SELECT `prvkey` FROM `user` WHERE `uid` = %d LIMIT 1",
|
$x = q("SELECT `prvkey` FROM `user` WHERE `uid` = %d LIMIT 1",
|
||||||
|
@ -312,7 +312,9 @@ function onepoll_run(&$argv, &$argc){
|
||||||
intval($mailconf[0]['id']),
|
intval($mailconf[0]['id']),
|
||||||
intval($importer_uid)
|
intval($importer_uid)
|
||||||
);
|
);
|
||||||
}
|
logger("Mail: Connected to " . $mailconf[0]['user']);
|
||||||
|
} else
|
||||||
|
logger("Mail: Connection error ".$mailconf[0]['user']." ".print_r(imap_errors()));
|
||||||
}
|
}
|
||||||
if($mbox) {
|
if($mbox) {
|
||||||
|
|
||||||
|
@ -523,7 +525,10 @@ function onepoll_run(&$argv, &$argc){
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
} else
|
||||||
|
logger("Mail: no mails for ".$mailconf[0]['user']);
|
||||||
|
|
||||||
|
logger("Mail: closing connection for ".$mailconf[0]['user']);
|
||||||
imap_close($mbox);
|
imap_close($mbox);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<?php
|
<?php
|
||||||
function create_tags_from_item($itemid, $dontcache = false) {
|
function create_tags_from_item($itemid) {
|
||||||
global $a;
|
global $a;
|
||||||
|
|
||||||
$profile_base = $a->get_baseurl();
|
$profile_base = $a->get_baseurl();
|
||||||
|
@ -26,18 +26,6 @@ function create_tags_from_item($itemid, $dontcache = false) {
|
||||||
if ($message["deleted"])
|
if ($message["deleted"])
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (!$dontcache) {
|
|
||||||
$cachefile = get_cachefile(urlencode($message["guid"])."-".hash("md5", $message['body']));
|
|
||||||
|
|
||||||
if (($cachefile != '') AND !file_exists($cachefile)) {
|
|
||||||
$s = prepare_text($message['body']);
|
|
||||||
$stamp1 = microtime(true);
|
|
||||||
file_put_contents($cachefile, $s);
|
|
||||||
$a->save_timestamp($stamp1, "file");
|
|
||||||
logger('create_tags_from_item: put item '.$message["id"].' into cachefile '.$cachefile);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
$taglist = explode(",", $message["tag"]);
|
$taglist = explode(",", $message["tag"]);
|
||||||
|
|
||||||
$tags = "";
|
$tags = "";
|
||||||
|
|
|
@ -1293,6 +1293,18 @@ function redir_private_images($a, &$item) {
|
||||||
|
|
||||||
}}
|
}}
|
||||||
|
|
||||||
|
function put_item_in_cache($item) {
|
||||||
|
$cachefile = get_cachefile(urlencode($item["guid"])."-".hash("md5", $item['body']));
|
||||||
|
|
||||||
|
if (($cachefile != '') AND !file_exists($cachefile)) {
|
||||||
|
$s = prepare_text($item['body']);
|
||||||
|
$a = get_app();
|
||||||
|
$stamp1 = microtime(true);
|
||||||
|
file_put_contents($cachefile, $s);
|
||||||
|
$a->save_timestamp($stamp1, "file");
|
||||||
|
logger('put item '.$item["guid"].' into cachefile '.$cachefile);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Given an item array, convert the body element from bbcode to html and add smilie icons.
|
// Given an item array, convert the body element from bbcode to html and add smilie icons.
|
||||||
// If attach is true, also add icons for item attachments
|
// If attach is true, also add icons for item attachments
|
||||||
|
|
19
mod/item.php
19
mod/item.php
|
@ -22,6 +22,7 @@ require_once('library/langdet/Text/LanguageDetect.php');
|
||||||
require_once('include/tags.php');
|
require_once('include/tags.php');
|
||||||
require_once('include/files.php');
|
require_once('include/files.php');
|
||||||
require_once('include/threads.php');
|
require_once('include/threads.php');
|
||||||
|
require_once('include/text.php');
|
||||||
|
|
||||||
function item_post(&$a) {
|
function item_post(&$a) {
|
||||||
|
|
||||||
|
@ -824,21 +825,12 @@ function item_post(&$a) {
|
||||||
if(count($r)) {
|
if(count($r)) {
|
||||||
$post_id = $r[0]['id'];
|
$post_id = $r[0]['id'];
|
||||||
logger('mod_item: saved item ' . $post_id);
|
logger('mod_item: saved item ' . $post_id);
|
||||||
add_thread($post_id);
|
|
||||||
|
|
||||||
// update filetags in pconfig
|
// update filetags in pconfig
|
||||||
file_tag_update_pconfig($uid,$categories_old,$categories_new,'category');
|
file_tag_update_pconfig($uid,$categories_old,$categories_new,'category');
|
||||||
|
|
||||||
// Store the fresh generated item into the cache
|
// Store the fresh generated item into the cache
|
||||||
$cachefile = get_cachefile(urlencode($datarray["guid"])."-".hash("md5", $datarray['body']));
|
put_item_in_cache($datarray);
|
||||||
|
|
||||||
if (($cachefile != '') AND !file_exists($cachefile)) {
|
|
||||||
$s = prepare_text($datarray['body']);
|
|
||||||
$stamp1 = microtime(true);
|
|
||||||
file_put_contents($cachefile, $s);
|
|
||||||
$a->save_timestamp($stamp1, "file");
|
|
||||||
logger('mod_item: put item '.$r[0]['id'].' into cachefile '.$cachefile);
|
|
||||||
}
|
|
||||||
|
|
||||||
if($parent) {
|
if($parent) {
|
||||||
|
|
||||||
|
@ -947,7 +939,8 @@ function item_post(&$a) {
|
||||||
dbesc(datetime_convert()),
|
dbesc(datetime_convert()),
|
||||||
intval($parent)
|
intval($parent)
|
||||||
);
|
);
|
||||||
update_thread($parent);
|
if ($post_id != $parent)
|
||||||
|
update_thread($parent);
|
||||||
|
|
||||||
$datarray['id'] = $post_id;
|
$datarray['id'] = $post_id;
|
||||||
$datarray['plink'] = $a->get_baseurl().'/display/'.urlencode($datarray['guid']);
|
$datarray['plink'] = $a->get_baseurl().'/display/'.urlencode($datarray['guid']);
|
||||||
|
@ -990,7 +983,9 @@ function item_post(&$a) {
|
||||||
|
|
||||||
create_tags_from_item($post_id);
|
create_tags_from_item($post_id);
|
||||||
create_files_from_item($post_id);
|
create_files_from_item($post_id);
|
||||||
update_thread($post_id);
|
|
||||||
|
if ($post_id == $parent)
|
||||||
|
add_thread($post_id);
|
||||||
|
|
||||||
// This is a real juggling act on shared hosting services which kill your processes
|
// This is a real juggling act on shared hosting services which kill your processes
|
||||||
// e.g. dreamhost. We used to start delivery to our native delivery agents in the background
|
// e.g. dreamhost. We used to start delivery to our native delivery agents in the background
|
||||||
|
|
Loading…
Reference in a new issue