Merge pull request #2860 from annando/1610-duplicate-check
Check for duplicated postings from connectors
This commit is contained in:
commit
cfea3cce77
60
mod/item.php
60
mod/item.php
|
@ -130,7 +130,7 @@ function item_post(&$a) {
|
||||||
intval($parent_item['contact-id']),
|
intval($parent_item['contact-id']),
|
||||||
intval($uid)
|
intval($uid)
|
||||||
);
|
);
|
||||||
if(count($r))
|
if (dbm::is_result($r))
|
||||||
$parent_contact = $r[0];
|
$parent_contact = $r[0];
|
||||||
|
|
||||||
// If the contact id doesn't fit with the contact, then set the contact to null
|
// If the contact id doesn't fit with the contact, then set the contact to null
|
||||||
|
@ -175,6 +175,19 @@ function item_post(&$a) {
|
||||||
$app = ((x($_REQUEST,'source')) ? strip_tags($_REQUEST['source']) : '');
|
$app = ((x($_REQUEST,'source')) ? strip_tags($_REQUEST['source']) : '');
|
||||||
$extid = ((x($_REQUEST,'extid')) ? strip_tags($_REQUEST['extid']) : '');
|
$extid = ((x($_REQUEST,'extid')) ? strip_tags($_REQUEST['extid']) : '');
|
||||||
|
|
||||||
|
// Check for multiple posts with the same message id (when the post was created via API)
|
||||||
|
if (($message_id != '') AND ($profile_uid != 0)) {
|
||||||
|
$r = q("SELECT * FROM `item` WHERE `uri` = '%s' AND `uid` = %d LIMIT 1",
|
||||||
|
dbesc($message_id),
|
||||||
|
intval($profile_uid)
|
||||||
|
);
|
||||||
|
|
||||||
|
if (dbm::is_result($r)) {
|
||||||
|
logger("Message with URI ".$message_id." already exists for user ".$profile_uid, LOGGER_DEBUG);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
$allow_moderated = false;
|
$allow_moderated = false;
|
||||||
|
|
||||||
// here is where we are going to check for permission to post a moderated comment.
|
// here is where we are going to check for permission to post a moderated comment.
|
||||||
|
@ -220,7 +233,7 @@ function item_post(&$a) {
|
||||||
$r = q("SELECT * FROM `user` WHERE `uid` = %d LIMIT 1",
|
$r = q("SELECT * FROM `user` WHERE `uid` = %d LIMIT 1",
|
||||||
intval($profile_uid)
|
intval($profile_uid)
|
||||||
);
|
);
|
||||||
if(count($r))
|
if (dbm::is_result($r))
|
||||||
$user = $r[0];
|
$user = $r[0];
|
||||||
|
|
||||||
if($orig_post) {
|
if($orig_post) {
|
||||||
|
@ -385,7 +398,7 @@ function item_post(&$a) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if(count($r)) {
|
if (dbm::is_result($r)) {
|
||||||
$author = $r[0];
|
$author = $r[0];
|
||||||
$contact_id = $author['id'];
|
$contact_id = $author['id'];
|
||||||
}
|
}
|
||||||
|
@ -399,7 +412,7 @@ function item_post(&$a) {
|
||||||
$r = q("SELECT * FROM `contact` WHERE `uid` = %d AND `self` = 1 LIMIT 1",
|
$r = q("SELECT * FROM `contact` WHERE `uid` = %d AND `self` = 1 LIMIT 1",
|
||||||
intval($profile_uid)
|
intval($profile_uid)
|
||||||
);
|
);
|
||||||
if(count($r))
|
if (dbm::is_result($r))
|
||||||
$contact_record = $r[0];
|
$contact_record = $r[0];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -482,7 +495,7 @@ function item_post(&$a) {
|
||||||
intval($profile_uid),
|
intval($profile_uid),
|
||||||
intval($attach)
|
intval($attach)
|
||||||
);
|
);
|
||||||
if(count($r)) {
|
if (dbm::is_result($r)) {
|
||||||
$r = q("UPDATE `attach` SET `allow_cid` = '%s', `allow_gid` = '%s', `deny_cid` = '%s', `deny_gid` = '%s'
|
$r = q("UPDATE `attach` SET `allow_cid` = '%s', `allow_gid` = '%s', `deny_cid` = '%s', `deny_gid` = '%s'
|
||||||
WHERE `uid` = %d AND `id` = %d",
|
WHERE `uid` = %d AND `id` = %d",
|
||||||
dbesc($str_contact_allow),
|
dbesc($str_contact_allow),
|
||||||
|
@ -623,7 +636,7 @@ function item_post(&$a) {
|
||||||
intval($profile_uid),
|
intval($profile_uid),
|
||||||
intval($mtch)
|
intval($mtch)
|
||||||
);
|
);
|
||||||
if(count($r)) {
|
if (dbm::is_result($r)) {
|
||||||
if(strlen($attachments))
|
if(strlen($attachments))
|
||||||
$attachments .= ',';
|
$attachments .= ',';
|
||||||
$attachments .= '[attach]href="' . $a->get_baseurl() . '/attach/' . $r[0]['id'] . '" length="' . $r[0]['filesize'] . '" type="' . $r[0]['filetype'] . '" title="' . (($r[0]['filename']) ? $r[0]['filename'] : '') . '"[/attach]';
|
$attachments .= '[attach]href="' . $a->get_baseurl() . '/attach/' . $r[0]['id'] . '" length="' . $r[0]['filesize'] . '" type="' . $r[0]['filetype'] . '" title="' . (($r[0]['filename']) ? $r[0]['filename'] : '') . '"[/attach]';
|
||||||
|
@ -992,16 +1005,35 @@ function item_post(&$a) {
|
||||||
// Insert an item entry for UID=0 for global entries
|
// Insert an item entry for UID=0 for global entries
|
||||||
// We have to remove or change some data before that,
|
// We have to remove or change some data before that,
|
||||||
// so that the post appear like a regular received post.
|
// so that the post appear like a regular received post.
|
||||||
unset($datarray['self']);
|
// Additionally there is some data that isn't a database field.
|
||||||
unset($datarray['wall']);
|
$arr = $datarray;
|
||||||
unset($datarray['origin']);
|
|
||||||
|
|
||||||
if (in_array($datarray['type'], array("net-comment", "wall-comment")))
|
$arr['app'] = $arr['source'];
|
||||||
$datarray['type'] = 'remote-comment';
|
unset($arr['source']);
|
||||||
elseif ($datarray['type'] == 'wall')
|
|
||||||
$datarray['type'] = 'remote';
|
|
||||||
|
|
||||||
add_shadow_entry($datarray);
|
unset($arr['self']);
|
||||||
|
unset($arr['wall']);
|
||||||
|
unset($arr['origin']);
|
||||||
|
unset($arr['api_source']);
|
||||||
|
unset($arr['message_id']);
|
||||||
|
unset($arr['profile_uid']);
|
||||||
|
unset($arr['post_id']);
|
||||||
|
unset($arr['dropitems']);
|
||||||
|
unset($arr['commenter']);
|
||||||
|
unset($arr['return']);
|
||||||
|
unset($arr['preview']);
|
||||||
|
unset($arr['post_id_random']);
|
||||||
|
unset($arr['emailcc']);
|
||||||
|
unset($arr['pubmail_enable']);
|
||||||
|
unset($arr['category']);
|
||||||
|
unset($arr['jsreload']);
|
||||||
|
|
||||||
|
if (in_array($arr['type'], array("net-comment", "wall-comment"))) {
|
||||||
|
$arr['type'] = 'remote-comment';
|
||||||
|
} elseif ($arr['type'] == 'wall') {
|
||||||
|
$arr['type'] = 'remote';
|
||||||
|
}
|
||||||
|
add_shadow_entry($arr);
|
||||||
}
|
}
|
||||||
|
|
||||||
// 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
|
||||||
|
|
Loading…
Reference in a new issue