use Friendica\Model\User;
use Friendica\Network\Probe;
use Friendica\Object\Image;
-use Friendica\Protocol\Activity\ANamespace;
+use Friendica\Protocol\ActivityNamespace;
use Friendica\Util\DateTimeFormat;
+use Friendica\Util\Images;
use Friendica\Util\Network;
use Friendica\Util\Proxy as ProxyUtils;
use Friendica\Util\Strings;
@$doc->loadXML($xml);
$xpath = new DOMXPath($doc);
- $xpath->registerNamespace('atom', ANamespace::ATOM1);
- $xpath->registerNamespace('thr', ANamespace::THREAD);
- $xpath->registerNamespace('georss', ANamespace::GEORSS);
- $xpath->registerNamespace('activity', ANamespace::ACTIVITY);
- $xpath->registerNamespace('media', ANamespace::MEDIA);
- $xpath->registerNamespace('poco', ANamespace::POCO);
- $xpath->registerNamespace('ostatus', ANamespace::OSTATUS);
- $xpath->registerNamespace('statusnet', ANamespace::STATUSNET);
+ $xpath->registerNamespace('atom', ActivityNamespace::ATOM1);
+ $xpath->registerNamespace('thr', ActivityNamespace::THREAD);
+ $xpath->registerNamespace('georss', ActivityNamespace::GEORSS);
+ $xpath->registerNamespace('activity', ActivityNamespace::ACTIVITY);
+ $xpath->registerNamespace('media', ActivityNamespace::MEDIA);
+ $xpath->registerNamespace('poco', ActivityNamespace::POCO);
+ $xpath->registerNamespace('ostatus', ActivityNamespace::OSTATUS);
+ $xpath->registerNamespace('statusnet', ActivityNamespace::STATUSNET);
$contact = ["id" => 0];
@$doc->loadXML($xml);
$xpath = new DOMXPath($doc);
- $xpath->registerNamespace('atom', ANamespace::ATOM1);
- $xpath->registerNamespace('thr', ANamespace::THREAD);
- $xpath->registerNamespace('georss', ANamespace::GEORSS);
- $xpath->registerNamespace('activity', ANamespace::ACTIVITY);
- $xpath->registerNamespace('media', ANamespace::MEDIA);
- $xpath->registerNamespace('poco', ANamespace::POCO);
- $xpath->registerNamespace('ostatus', ANamespace::OSTATUS);
- $xpath->registerNamespace('statusnet', ANamespace::STATUSNET);
+ $xpath->registerNamespace('atom', ActivityNamespace::ATOM1);
+ $xpath->registerNamespace('thr', ActivityNamespace::THREAD);
+ $xpath->registerNamespace('georss', ActivityNamespace::GEORSS);
+ $xpath->registerNamespace('activity', ActivityNamespace::ACTIVITY);
+ $xpath->registerNamespace('media', ActivityNamespace::MEDIA);
+ $xpath->registerNamespace('poco', ActivityNamespace::POCO);
+ $xpath->registerNamespace('ostatus', ActivityNamespace::OSTATUS);
+ $xpath->registerNamespace('statusnet', ActivityNamespace::STATUSNET);
$hub = "";
$hub_items = $xpath->query("/atom:feed/atom:link[@rel='hub']")->item(0);
@$doc->loadXML($xml);
$xpath = new DOMXPath($doc);
- $xpath->registerNamespace('atom', ANamespace::ATOM1);
- $xpath->registerNamespace('thr', ANamespace::THREAD);
- $xpath->registerNamespace('ostatus', ANamespace::OSTATUS);
+ $xpath->registerNamespace('atom', ActivityNamespace::ATOM1);
+ $xpath->registerNamespace('thr', ActivityNamespace::THREAD);
+ $xpath->registerNamespace('ostatus', ActivityNamespace::OSTATUS);
$entries = $xpath->query('/atom:feed/atom:entry');
*/
private static function getResharedGuid(array $item)
{
- $body = trim($item["body"]);
-
- // Skip if it isn't a pure repeated messages
- // Does it start with a share?
- if (strpos($body, "[share") > 0) {
- return "";
- }
-
- // Does it end with a share?
- if (strlen($body) > (strrpos($body, "[/share]") + 8)) {
- return "";
- }
-
- $attributes = preg_replace("/\[share(.*?)\]\s?(.*?)\s?\[\/share\]\s?/ism", "$1", $body);
- // Skip if there is no shared message in there
- if ($body == $attributes) {
- return false;
- }
-
- $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];
+ $reshared = Item::getShareArray($item);
+ if (empty($reshared['guid']) || !empty($reshared['comment'])) {
+ return '';
}
- return $guid;
+ return $reshared['guid'];
}
/**
*/
private static function addHeader(DOMDocument $doc, array $owner, $filter, $feed_mode = false)
{
- $root = $doc->createElementNS(ANamespace::ATOM1, 'feed');
+ $root = $doc->createElementNS(ActivityNamespace::ATOM1, 'feed');
$doc->appendChild($root);
- $root->setAttribute("xmlns:thr", ANamespace::THREAD);
- $root->setAttribute("xmlns:georss", ANamespace::GEORSS);
- $root->setAttribute("xmlns:activity", ANamespace::ACTIVITY);
- $root->setAttribute("xmlns:media", ANamespace::MEDIA);
- $root->setAttribute("xmlns:poco", ANamespace::POCO);
- $root->setAttribute("xmlns:ostatus", ANamespace::OSTATUS);
- $root->setAttribute("xmlns:statusnet", ANamespace::STATUSNET);
- $root->setAttribute("xmlns:mastodon", ANamespace::MASTODON);
+ $root->setAttribute("xmlns:thr", ActivityNamespace::THREAD);
+ $root->setAttribute("xmlns:georss", ActivityNamespace::GEORSS);
+ $root->setAttribute("xmlns:activity", ActivityNamespace::ACTIVITY);
+ $root->setAttribute("xmlns:media", ActivityNamespace::MEDIA);
+ $root->setAttribute("xmlns:poco", ActivityNamespace::POCO);
+ $root->setAttribute("xmlns:ostatus", ActivityNamespace::OSTATUS);
+ $root->setAttribute("xmlns:statusnet", ActivityNamespace::STATUSNET);
+ $root->setAttribute("xmlns:mastodon", ActivityNamespace::MASTODON);
$title = '';
$selfUri = '/feed/' . $owner["nick"] . '/';
switch ($siteinfo["type"]) {
case 'photo':
if (!empty($siteinfo["image"])) {
- $imgdata = Image::getInfoFromURL($siteinfo["image"]);
+ $imgdata = Images::getInfoFromURLCached($siteinfo["image"]);
if ($imgdata) {
$attributes = ["rel" => "enclosure",
"href" => $siteinfo["image"],
}
if (!Config::get('system', 'ostatus_not_attach_preview') && ($siteinfo["type"] != "photo") && isset($siteinfo["image"])) {
- $imgdata = Image::getInfoFromURL($siteinfo["image"]);
+ $imgdata = Images::getInfoFromURLCached($siteinfo["image"]);
if ($imgdata) {
$attributes = ["rel" => "enclosure",
"href" => $siteinfo["image"],
$as_object = $doc->createElement("activity:object");
- XML::addElement($doc, $as_object, "activity:object-type", ANamespace::ACTIVITY_SCHEMA . "activity");
+ XML::addElement($doc, $as_object, "activity:object-type", ActivityNamespace::ACTIVITY_SCHEMA . "activity");
self::entryContent($doc, $as_object, $repeated_item, $owner, "", "", false);
$entry = self::entryHeader($doc, $owner, $item, $toplevel);
- $verb = Activity\ANamespace::ACTIVITY_SCHEMA . "favorite";
+ $verb = ActivityNamespace::ACTIVITY_SCHEMA . "favorite";
self::entryContent($doc, $entry, $item, $owner, "Favorite", $verb, false);
$parent = Item::selectFirst([], ['uri' => $item["thr-parent"], 'uid' => $item["uid"]]);
$entry->appendChild($author);
}
} else {
- $entry = $doc->createElementNS(ANamespace::ATOM1, "entry");
-
- $entry->setAttribute("xmlns:thr", ANamespace::THREAD);
- $entry->setAttribute("xmlns:georss", ANamespace::GEORSS);
- $entry->setAttribute("xmlns:activity", ANamespace::ACTIVITY);
- $entry->setAttribute("xmlns:media", ANamespace::MEDIA);
- $entry->setAttribute("xmlns:poco", ANamespace::POCO);
- $entry->setAttribute("xmlns:ostatus", ANamespace::OSTATUS);
- $entry->setAttribute("xmlns:statusnet", ANamespace::STATUSNET);
- $entry->setAttribute("xmlns:mastodon", ANamespace::MASTODON);
+ $entry = $doc->createElementNS(ActivityNamespace::ATOM1, "entry");
+
+ $entry->setAttribute("xmlns:thr", ActivityNamespace::THREAD);
+ $entry->setAttribute("xmlns:georss", ActivityNamespace::GEORSS);
+ $entry->setAttribute("xmlns:activity", ActivityNamespace::ACTIVITY);
+ $entry->setAttribute("xmlns:media", ActivityNamespace::MEDIA);
+ $entry->setAttribute("xmlns:poco", ActivityNamespace::POCO);
+ $entry->setAttribute("xmlns:ostatus", ActivityNamespace::OSTATUS);
+ $entry->setAttribute("xmlns:statusnet", ActivityNamespace::STATUSNET);
+ $entry->setAttribute("xmlns:mastodon", ActivityNamespace::MASTODON);
$author = self::addAuthor($doc, $owner);
$entry->appendChild($author);