forked from GNUsocial/gnu-social
fall back to summary or title if content not available
This commit is contained in:
parent
2fc0f0433e
commit
515acb8513
@ -481,10 +481,14 @@ class Ostatus_profile extends Memcached_DataObject
|
|||||||
$oprofile = $this;
|
$oprofile = $this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// It's not always an ActivityObject::NOTE, but... let's just say it is.
|
||||||
|
|
||||||
|
$note = $activity->object;
|
||||||
|
|
||||||
// The id URI will be used as a unique identifier for for the notice,
|
// The id URI will be used as a unique identifier for for the notice,
|
||||||
// protecting against duplicate saves. It isn't required to be a URL;
|
// protecting against duplicate saves. It isn't required to be a URL;
|
||||||
// tag: URIs for instance are found in Google Buzz feeds.
|
// tag: URIs for instance are found in Google Buzz feeds.
|
||||||
$sourceUri = $activity->object->id;
|
$sourceUri = $note->id;
|
||||||
$dupe = Notice::staticGet('uri', $sourceUri);
|
$dupe = Notice::staticGet('uri', $sourceUri);
|
||||||
if ($dupe) {
|
if ($dupe) {
|
||||||
common_log(LOG_INFO, "OStatus: ignoring duplicate post: $sourceUri");
|
common_log(LOG_INFO, "OStatus: ignoring duplicate post: $sourceUri");
|
||||||
@ -493,16 +497,30 @@ class Ostatus_profile extends Memcached_DataObject
|
|||||||
|
|
||||||
// We'll also want to save a web link to the original notice, if provided.
|
// We'll also want to save a web link to the original notice, if provided.
|
||||||
$sourceUrl = null;
|
$sourceUrl = null;
|
||||||
if ($activity->object->link) {
|
if ($note->link) {
|
||||||
$sourceUrl = $activity->object->link;
|
$sourceUrl = $note->link;
|
||||||
} else if ($activity->link) {
|
} else if ($activity->link) {
|
||||||
$sourceUrl = $activity->link;
|
$sourceUrl = $activity->link;
|
||||||
} else if (preg_match('!^https?://!', $activity->object->id)) {
|
} else if (preg_match('!^https?://!', $note->id)) {
|
||||||
$sourceUrl = $activity->object->id;
|
$sourceUrl = $note->id;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Use summary as fallback for content
|
||||||
|
|
||||||
|
if (!empty($note->content)) {
|
||||||
|
$sourceContent = $note->content;
|
||||||
|
} else if (!empty($note->summary)) {
|
||||||
|
$sourceContent = $note->summary;
|
||||||
|
} else if (!empty($note->title)) {
|
||||||
|
$sourceContent = $note->title;
|
||||||
|
} else {
|
||||||
|
// @fixme fetch from $sourceUrl?
|
||||||
|
throw new ClientException("No content for notice {$sourceUri}");
|
||||||
}
|
}
|
||||||
|
|
||||||
// Get (safe!) HTML and text versions of the content
|
// Get (safe!) HTML and text versions of the content
|
||||||
$rendered = $this->purify($activity->object->content);
|
|
||||||
|
$rendered = $this->purify($sourceContent);
|
||||||
$content = html_entity_decode(strip_tags($rendered));
|
$content = html_entity_decode(strip_tags($rendered));
|
||||||
|
|
||||||
$shortened = common_shorten_links($content);
|
$shortened = common_shorten_links($content);
|
||||||
@ -513,8 +531,8 @@ class Ostatus_profile extends Memcached_DataObject
|
|||||||
$attachment = null;
|
$attachment = null;
|
||||||
|
|
||||||
if (Notice::contentTooLong($shortened)) {
|
if (Notice::contentTooLong($shortened)) {
|
||||||
$attachment = $this->saveHTMLFile($activity->object->title, $rendered);
|
$attachment = $this->saveHTMLFile($note->title, $rendered);
|
||||||
$summary = $activity->object->summary;
|
$summary = html_entity_decode(strip_tags($note->summary));
|
||||||
if (empty($summary)) {
|
if (empty($summary)) {
|
||||||
$summary = $content;
|
$summary = $content;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user