use Friendica\Database\DBA;
use Friendica\DI;
use Friendica\Model\Contact;
+use Friendica\Model\Conversation;
use Friendica\Model\Item;
use Friendica\Model\Post;
use Friendica\Model\Tag;
if ($dryRun) {
Logger::info("Test Atom/RSS feed");
} else {
- Logger::info("Import Atom/RSS feed '" . $contact['name'] . "' (Contact " . $contact['id'] . ") for user " . $importer['uid']);
+ Logger::info('Import Atom/RSS feed "' . $contact['name'] . '" (Contact ' . $contact['id'] . ') for user ' . $importer['uid']);
}
$xml = trim($xml);
$author = [];
$entries = null;
+ $protocol = Conversation::PARCEL_UNKNOWN;
// Is it RDF?
if ($xpath->query('/rdf:RDF/rss:channel')->length > 0) {
+ $protocol = Conversation::PARCEL_RDF;
$author['author-link'] = XML::getFirstNodeValue($xpath, '/rdf:RDF/rss:channel/rss:link/text()');
$author['author-name'] = XML::getFirstNodeValue($xpath, '/rdf:RDF/rss:channel/rss:title/text()');
// Is it Atom?
if ($xpath->query('/atom:feed')->length > 0) {
+ $protocol = Conversation::PARCEL_ATOM;
$alternate = XML::getFirstAttributes($xpath, "atom:link[@rel='alternate']");
if (is_object($alternate)) {
foreach ($alternate as $attribute) {
// Is it RSS?
if ($xpath->query('/rss/channel')->length > 0) {
+ $protocol = Conversation::PARCEL_RSS;
$author['author-link'] = XML::getFirstNodeValue($xpath, '/rss/channel/link/text()');
$author['author-name'] = XML::getFirstNodeValue($xpath, '/rss/channel/title/text()');
$header = [];
$header['uid'] = $importer['uid'] ?? 0;
$header['network'] = Protocol::FEED;
+ $datarray['protocol'] = $protocol;
+ $datarray['direction'] = Conversation::PULL;
$header['wall'] = 0;
$header['origin'] = 0;
$header['gravity'] = GRAVITY_PARENT;
$item['uri'] = $guid;
// Don't use the GUID value directly but instead use it as a basis for the GUID
- $item['guid'] = Item::guidFromUri($guid, parse_url($guid, PHP_URL_HOST) ?? parse_url($item['plink'], PHP_URL_HOST) ?? '');
+ $item['guid'] = Item::guidFromUri($guid, parse_url($guid, PHP_URL_HOST) ?? parse_url($item['plink'], PHP_URL_HOST));
}
if (empty($item['uri'])) {
if (DBA::isResult($previous)) {
// Use the creation date when the post had been stored. It can happen this date changes in the feed.
$creation_dates[] = $previous['created'];
- Logger::info("Item with uri " . $item['uri'] . " for user " . $importer['uid'] . " already existed under id " . $previous['id']);
+ Logger::info('Item with URI ' . $item['uri'] . ' for user ' . $importer['uid'] . ' already existed under id ' . $previous['id']);
continue;
}
$creation_dates[] = DateTimeFormat::utc($item['created']);
// Additionally we have to avoid conflicts with identical URI between imported feeds and these items.
if ($notify) {
$item['guid'] = Item::guidFromUri($orig_plink, DI::baseUrl()->getHostname());
- $item['uri'] = Item::newURI($item['uid'], $item['guid']);
+ $item['uri'] = Item::newURI($item['guid']);
unset($item['thr-parent']);
unset($item['parent-uri']);