}
// Do we already have this item?
- $fields = ['body', 'tag', 'app', 'created', 'object-type', 'uri', 'guid',
+ $fields = ['body', 'title', 'attach', 'tag', 'app', 'created', 'object-type', 'uri', 'guid',
'author-name', 'author-link', 'author-avatar'];
$condition = ['guid' => $guid, 'visible' => true, 'deleted' => false, 'private' => false];
$item = Item::selectFirst($fields, $condition);
}
if ($stored) {
- $fields = ['body', 'tag', 'app', 'created', 'object-type', 'uri', 'guid',
+ $fields = ['body', 'title', 'attach', 'tag', 'app', 'created', 'object-type', 'uri', 'guid',
'author-name', 'author-link', 'author-avatar'];
$condition = ['guid' => $guid, 'visible' => true, 'deleted' => false, 'private' => false];
$item = Item::selectFirst($fields, $condition);
$original_item["created"],
$orig_url
);
+
+ if (!empty($original_item['title'])) {
+ $prefix .= '[h3]' . $original_item['title'] . "[/h3]\n";
+ }
+
$datarray["body"] = $prefix.$original_item["body"]."[/share]";
$datarray["tag"] = $original_item["tag"];
+ $datarray["attach"] = $original_item["attach"];
$datarray["app"] = $original_item["app"];
$datarray["plink"] = self::plink($author, $guid);
{
$body = trim($body);
- // Skip if it isn't a pure repeated messages
- // Does it start with a share?
- if ((strpos($body, "[share") > 0) && $complete) {
+ $reshared = Item::getShareArray(['body' => $body]);
+ if (empty($reshared)) {
return false;
}
- // Does it end with a share?
- if (strlen($body) > (strrpos($body, "[/share]") + 8)) {
- return false;
- }
-
- $attributes = preg_replace("/\[share(.*?)\]\s?(.*?)\s?\[\/share\]\s?/ism", "$1", $body);
- // Skip if there is no shared message in there
- if ($body == $attributes) {
+ // Skip if it isn't a pure repeated messages
+ // Does it start with a share?
+ if (!empty($reshared['comment']) && $complete) {
return false;
}
- // If we don't do the complete check we quit here
-
- $guid = "";
- preg_match("/guid='(.*?)'/ism", $attributes, $matches);
- if (!empty($matches[1])) {
- $guid = $matches[1];
- }
-
- preg_match('/guid="(.*?)"/ism', $attributes, $matches);
- if (!empty($matches[1])) {
- $guid = $matches[1];
- }
-
- if (($guid != "") && $complete) {
- $condition = ['guid' => $guid, 'network' => [Protocol::DFRN, Protocol::DIASPORA]];
+ if (!empty($reshared['guid']) && $complete) {
+ $condition = ['guid' => $reshared['guid'], 'network' => [Protocol::DFRN, Protocol::DIASPORA]];
$item = Item::selectFirst(['contact-id'], $condition);
if (DBA::isResult($item)) {
- $ret= [];
+ $ret = [];
$ret["root_handle"] = self::handleFromContact($item["contact-id"]);
- $ret["root_guid"] = $guid;
+ $ret["root_guid"] = $reshared['guid'];
return $ret;
} elseif ($complete) {
// We are resharing something that isn't a DFRN or Diaspora post.
// So we have to return "false" on "$complete" to not trigger a reshare.
return false;
}
- } elseif (($guid == "") && $complete) {
+ } elseif (empty($reshared['guid']) && $complete) {
return false;
}
- $ret["root_guid"] = $guid;
-
- $profile = "";
- preg_match("/profile='(.*?)'/ism", $attributes, $matches);
- if (!empty($matches[1])) {
- $profile = $matches[1];
- }
+ $ret = [];
- preg_match('/profile="(.*?)"/ism', $attributes, $matches);
- if (!empty($matches[1])) {
- $profile = $matches[1];
- }
-
- $ret= [];
-
- if ($profile != "") {
- if (Contact::getIdForURL($profile)) {
- $author = Contact::getDetailsByURL($profile);
- $ret["root_handle"] = $author['addr'];
+ if (!empty($reshared['profile']) && ($cid = Contact::getIdForURL($reshared['profile']))) {
+ $contact = DBA::selectFirst('contact', ['addr'], ['id' => $cid]);
+ if (!empty($contact['addr'])) {
+ $ret['root_handle'] = $contact['addr'];
}
}
$myaddr = self::myHandle($owner);
$public = ($item["private"] ? "false" : "true");
-
- $created = DateTimeFormat::utc($item["created"], DateTimeFormat::ATOM);
+ $created = DateTimeFormat::utc($item['received'], DateTimeFormat::ATOM);
$edited = DateTimeFormat::utc($item["edited"] ?? $item["created"], DateTimeFormat::ATOM);
// Detect a share element and do a reshare
$body = $item["body"];
// Fetch the title from an attached link - if there is one
- if (empty($item["title"]) && PConfig::get($owner['uid'], 'system', 'append_title')) {
+ if (empty($item["title"]) && PConfig::get($owner['uid'], 'system', 'attach_link_title')) {
$page_data = BBCode::getAttachmentData($item['body']);
if (!empty($page_data['type']) && !empty($page_data['title']) && ($page_data['type'] == 'link')) {
$title = $page_data['title'];