duplicate supression SQL query was horribly inefficient and could cause issues in resource deprived environments.
This commit is contained in:
parent
9f413ed174
commit
eef40cb3fd
@ -93,7 +93,7 @@ class Item extends \Zotlabs\Web\Controller {
|
|||||||
|
|
||||||
$origin = (($api_source && array_key_exists('origin',$_REQUEST)) ? intval($_REQUEST['origin']) : 1);
|
$origin = (($api_source && array_key_exists('origin',$_REQUEST)) ? intval($_REQUEST['origin']) : 1);
|
||||||
|
|
||||||
// To represent message-ids on other networks - this will create an item_id record
|
// To represent message-ids on other networks - this will create an iconfig record
|
||||||
|
|
||||||
$namespace = (($api_source && array_key_exists('namespace',$_REQUEST)) ? strip_tags($_REQUEST['namespace']) : '');
|
$namespace = (($api_source && array_key_exists('namespace',$_REQUEST)) ? strip_tags($_REQUEST['namespace']) : '');
|
||||||
$remote_id = (($api_source && array_key_exists('remote_id',$_REQUEST)) ? strip_tags($_REQUEST['remote_id']) : '');
|
$remote_id = (($api_source && array_key_exists('remote_id',$_REQUEST)) ? strip_tags($_REQUEST['remote_id']) : '');
|
||||||
@ -535,7 +535,7 @@ class Item extends \Zotlabs\Web\Controller {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* fix naked links by passing through a callback to see if this is a red site
|
* fix naked links by passing through a callback to see if this is a hubzilla site
|
||||||
* (already known to us) which will get a zrl, otherwise link with url, add bookmark tag to both.
|
* (already known to us) which will get a zrl, otherwise link with url, add bookmark tag to both.
|
||||||
* First protect any url inside certain bbcode tags so we don't double link it.
|
* First protect any url inside certain bbcode tags so we don't double link it.
|
||||||
*/
|
*/
|
||||||
@ -834,21 +834,23 @@ class Item extends \Zotlabs\Web\Controller {
|
|||||||
if($orig_post)
|
if($orig_post)
|
||||||
$datarray['edit'] = true;
|
$datarray['edit'] = true;
|
||||||
|
|
||||||
|
// suppress duplicates, *unless* you're editing an existing post. This could get picked up
|
||||||
|
// as a duplicate if you're editing it very soon after posting it initially and you edited
|
||||||
|
// some attribute besides the content, such as title or categories.
|
||||||
|
|
||||||
if(feature_enabled($profile_uid,'suppress_duplicates') && (! $orig_post)) {
|
if(feature_enabled($profile_uid,'suppress_duplicates') && (! $orig_post)) {
|
||||||
|
|
||||||
$z = q("select created from item where uid = %d and body = '%s'",
|
$z = q("select created from item where uid = %d and created > %s - INTERVAL %s and body = '%s' limit 1",
|
||||||
intval($profile_uid),
|
intval($profile_uid),
|
||||||
dbesc($body)
|
dbutcnow(),
|
||||||
|
db_quoteinterval('2 MINUTE'),
|
||||||
|
dbesc($body),
|
||||||
);
|
);
|
||||||
|
|
||||||
if($z) {
|
if($z) {
|
||||||
foreach($z as $zz) {
|
$datarray['cancel'] = 1;
|
||||||
if($zz['created'] > datetime_convert('UTC','UTC', 'now - 2 minutes')) {
|
notice( t('Duplicate post suppressed.') . EOL);
|
||||||
$datarray['cancel'] = 1;
|
logger('Duplicate post. Faking plugin cancel.');
|
||||||
notice( t('Duplicate post suppressed.') . EOL);
|
|
||||||
logger('Duplicate post. Faking plugin cancel.');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user