From bd3d32384956f8c5c7ca2624c96f47bb66d8958c Mon Sep 17 00:00:00 2001 From: redmatrix Date: Wed, 11 Nov 2015 15:09:22 -0800 Subject: run markdown through html purifier for those who insist on mixing html with markdown. --- mod/item.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'mod/item.php') diff --git a/mod/item.php b/mod/item.php index 5f45a248b..5bf59de26 100644 --- a/mod/item.php +++ b/mod/item.php @@ -473,8 +473,9 @@ function item_post(&$a) { require_once('include/text.php'); if($uid && $uid == $profile_uid && feature_enabled($uid,'markdown')) { require_once('include/bb2diaspora.php'); - $body = escape_tags($body); $body = str_replace("\n",'
', $body); + $body = purify_html($body); + $body = preg_replace_callback('/\[share(.*?)\]/ism','share_shield',$body); $body = diaspora2bb($body,true); $body = preg_replace_callback('/\[share(.*?)\]/ism','share_unshield',$body); -- cgit v1.2.3 From 3d80073a0e1e0847cad2e2fbe86aa66a1fbec983 Mon Sep 17 00:00:00 2001 From: redmatrix Date: Sun, 15 Nov 2015 18:03:37 -0800 Subject: revert html in markdown for posts, but trim the input before processing the markdown --- mod/item.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'mod/item.php') diff --git a/mod/item.php b/mod/item.php index 5bf59de26..b66d71797 100644 --- a/mod/item.php +++ b/mod/item.php @@ -473,8 +473,8 @@ function item_post(&$a) { require_once('include/text.php'); if($uid && $uid == $profile_uid && feature_enabled($uid,'markdown')) { require_once('include/bb2diaspora.php'); + $body = escape_tags(trim($body)); $body = str_replace("\n",'
', $body); - $body = purify_html($body); $body = preg_replace_callback('/\[share(.*?)\]/ism','share_shield',$body); $body = diaspora2bb($body,true); -- cgit v1.2.3 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 From 301072a86cacd2620a08cf07f2cef55dffac3c2f Mon Sep 17 00:00:00 2001 From: redmatrix Date: Fri, 20 Nov 2015 00:15:48 -0800 Subject: issue #85, community tags and file tags lost during edits. This required splitting off communitytags as a separate tag type and is not backward compatible. Community tags on older posts or those federated from redmatrix clones will not be preserved during edits. --- mod/item.php | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to 'mod/item.php') diff --git a/mod/item.php b/mod/item.php index 1e39ca9c9..34484eff7 100644 --- a/mod/item.php +++ b/mod/item.php @@ -651,6 +651,29 @@ function item_post(&$a) { } } + if($orig_post) { + // preserve original tags + $t = q("select * from term where oid = %d and otype = %d and uid = %d and type in ( %d, %d, %d )", + intval($orig_post['id']), + intval(TERM_OBJ_POST), + intval($profile_uid), + intval(TERM_UNKNOWN), + intval(TERM_FILE), + intval(TERM_COMMUNITYTAG) + ); + if($t) { + foreach($t as $t1) { + $post_tags[] = array( + 'uid' => $profile_uid, + 'type' => $t1['type'], + 'otype' => TERM_OBJ_POST, + 'term' => $t1['term'], + 'url' => $t1['url'], + ); + } + } + } + $item_unseen = ((local_channel() != $profile_uid) ? 1 : 0); $item_wall = (($post_type === 'wall' || $post_type === 'wall-comment') ? 1 : 0); -- cgit v1.2.3 From dfaf1a1075acdeccea5c730611c13db3d61d6277 Mon Sep 17 00:00:00 2001 From: redmatrix Date: Mon, 23 Nov 2015 15:27:57 -0800 Subject: issue #183 --- mod/item.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'mod/item.php') diff --git a/mod/item.php b/mod/item.php index 34484eff7..f32ff8844 100644 --- a/mod/item.php +++ b/mod/item.php @@ -810,7 +810,7 @@ function item_post(&$a) { - if(feature_enabled($profile_uid,'suppress_duplicates')) { + if(feature_enabled($profile_uid,'suppress_duplicates') && (! $orig_post)) { $z = q("select created from item where uid = %d and body = '%s'", intval($profile_uid), -- cgit v1.2.3