Commit 941db042 authored by Mario's avatar Mario
Browse files

add a uuid version 5 based uuid to imported feeds. if rewrite author for...

add a uuid version 5 based uuid to imported feeds. if rewrite author for sourced items, also rewrite mid to be fetchable
parent 87d7a305
Pipeline #366153 passed with stage
in 4 minutes and 22 seconds
......@@ -13,6 +13,10 @@
* @param array $params associative array which configures the feed
* @return string with an atom feed
*/
use Ramsey\Uuid\Uuid;
use Ramsey\Uuid\Exception\UnsatisfiedDependencyException;
function get_public_feed($channel, $params) {
if(! $params)
......@@ -431,6 +435,13 @@ function get_atom_elements($feed, $item) {
$res['plink'] = unxmlify($item->get_link(0));
$res['item_rss'] = 1;
try {
$uuid = Uuid::uuid5(Uuid::NAMESPACE_URL, $res['plink'])->toString();
} catch (UnsatisfiedDependencyException $e) {
$uuid = md5($res['plink']);
}
$res['uuid'] = $uuid;
$summary = unxmlify($item->get_description(true));
......@@ -1516,6 +1527,7 @@ function consume_feed($xml, $importer, &$contact, $pass = 0) {
continue;
}
}
}
}
......
......@@ -3179,8 +3179,18 @@ function start_delivery_chain($channel, $item, $item_id, $parent, $group = false
if($rewrite_author) {
$item['author_xchan'] = $channel['channel_hash'];
$r = q("update item set author_xchan = '%s' where id = %d",
//if it's a toplevel rss item we will also rewrite the mid to something fetchable
if($item['item_rss'] && $item['item_thread_top']) {
$item['mid'] = z_root() . '/item/' . $item['uuid'];
$item['parent_mid'] = $item['mid'];
$item['thr_parent'] = $item['mid'];
}
$r = q("UPDATE item SET author_xchan = '%s', mid = '%s', parent_mid = '%s', thr_parent = '%s' WHERE id = %d",
dbesc($item['author_xchan']),
dbesc($item['mid']),
dbesc($item['parent_mid']),
dbesc($item['thr_parent']),
intval($item_id)
);
}
......@@ -3235,7 +3245,6 @@ function start_delivery_chain($channel, $item, $item_id, $parent, $group = false
$arr['item_origin'] = 1;
$arr['item_wall'] = 1;
$arr['item_thread_top'] = 1;
if (strpos($item['body'], "[/share]") !== false) {
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment