From 8f94c721bffab9f2ee4aeb045fb81a9840013211 Mon Sep 17 00:00:00 2001 From: redmatrix Date: Thu, 19 Nov 2015 16:05:47 -0800 Subject: new feature: 'suppress_duplicates' issue #146 triggered with less than two minutes between posts having identical content. --- mod/item.php | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'mod/item.php') diff --git a/mod/item.php b/mod/item.php index b66d71797..1e39ca9c9 100644 --- a/mod/item.php +++ b/mod/item.php @@ -703,6 +703,10 @@ function item_post(&$a) { $plink = z_root() . '/channel/' . $channel['channel_address'] . '/?f=&mid=' . $mid; } + + + + $datarray['aid'] = $channel['channel_account_id']; $datarray['uid'] = $profile_uid; @@ -781,6 +785,22 @@ function item_post(&$a) { if($orig_post) $datarray['edit'] = true; + + + if(feature_enabled($profile_uid,'suppress_duplicates')) { + + $z = q("select created from item where uid = %d and body = '%s'", + intval($profile_uid), + dbesc($body) + ); + + if($z && $z[0]['created'] > datetime_convert('UTC','UTC', 'now - 2 minutes')) { + $datarray['cancel'] = 1; + notice( t('Duplicate post suppressed.') . EOL); + logger('Duplicate post. Faking plugin cancel.'); + } + } + call_hooks('post_local',$datarray); if(x($datarray,'cancel')) { -- cgit v1.2.3