Create a (meaningful) title
This commit is contained in:
parent
c47931172d
commit
0b93bcbbf9
1 changed files with 35 additions and 12 deletions
|
@ -870,11 +870,7 @@ class Feed
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
$contact = Contact::getByURL($repeated_item['author-link']) ?: $owner;
|
self::entryContent($doc, $entry, $item, self::getTitle($repeated_item), Activity::SHARE, false);
|
||||||
|
|
||||||
$title = $owner["nick"]." repeated a notice by ".$contact["nick"];
|
|
||||||
|
|
||||||
self::entryContent($doc, $entry, $item, $owner, $title, Activity::SHARE, false);
|
|
||||||
|
|
||||||
self::entryFooter($doc, $entry, $item, $owner);
|
self::entryFooter($doc, $entry, $item, $owner);
|
||||||
|
|
||||||
|
@ -899,15 +895,9 @@ class Feed
|
||||||
Logger::info('Feed entry author does not match feed owner', ['owner' => $owner["url"], 'author' => $item["author-link"]]);
|
Logger::info('Feed entry author does not match feed owner', ['owner' => $owner["url"], 'author' => $item["author-link"]]);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!empty($item['title'])) {
|
|
||||||
$title = BBCode::convert($item['title'], false, BBCode::OSTATUS);
|
|
||||||
} else {
|
|
||||||
$title = sprintf("New note by %s", $owner["nick"]);
|
|
||||||
}
|
|
||||||
|
|
||||||
$entry = OStatus::entryHeader($doc, $owner, $item, false);
|
$entry = OStatus::entryHeader($doc, $owner, $item, false);
|
||||||
|
|
||||||
self::entryContent($doc, $entry, $item, $title, '', true);
|
self::entryContent($doc, $entry, $item, self::getTitle($item), '', true);
|
||||||
|
|
||||||
self::entryFooter($doc, $entry, $item, $owner);
|
self::entryFooter($doc, $entry, $item, $owner);
|
||||||
|
|
||||||
|
@ -1007,4 +997,37 @@ class Feed
|
||||||
|
|
||||||
OStatus::getAttachment($doc, $entry, $item);
|
OStatus::getAttachment($doc, $entry, $item);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Fetch or create title for feed entry
|
||||||
|
*
|
||||||
|
* @param array $item
|
||||||
|
* @return string title
|
||||||
|
*/
|
||||||
|
private static function getTitle(array $item)
|
||||||
|
{
|
||||||
|
if ($item['title'] != '') {
|
||||||
|
return BBCode::convert($item['title'], false, BBCode::OSTATUS);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Fetch information about the post
|
||||||
|
$siteinfo = BBCode::getAttachedData($item["body"]);
|
||||||
|
if (isset($siteinfo["title"])) {
|
||||||
|
return $siteinfo["title"];
|
||||||
|
}
|
||||||
|
|
||||||
|
// If no bookmark is found then take the first line
|
||||||
|
// Remove the share element before fetching the first line
|
||||||
|
$title = trim(preg_replace("/\[share.*?\](.*?)\[\/share\]/ism","\n$1\n",$item['body']));
|
||||||
|
|
||||||
|
$title = HTML::toPlaintext(BBCode::convert($title, false), 0, true)."\n";
|
||||||
|
$pos = strpos($title, "\n");
|
||||||
|
$trailer = "";
|
||||||
|
if (($pos == 0) || ($pos > 100)) {
|
||||||
|
$pos = 100;
|
||||||
|
$trailer = "...";
|
||||||
|
}
|
||||||
|
|
||||||
|
return substr($title, 0, $pos) . $trailer;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue