mirror of
https://codeberg.org/streams/streams.git
synced 2024-09-19 23:55:19 +00:00
move 'replyto' from initial concept to experimental stage
This commit is contained in:
parent
87de776a43
commit
1f2981418e
4 changed files with 65 additions and 14 deletions
|
@ -400,7 +400,31 @@ class Notifier {
|
||||||
if (($relay_to_owner || $uplink) && ($cmd !== 'relay')) {
|
if (($relay_to_owner || $uplink) && ($cmd !== 'relay')) {
|
||||||
logger('followup relay (upstream delivery)', LOGGER_DEBUG);
|
logger('followup relay (upstream delivery)', LOGGER_DEBUG);
|
||||||
$sendto = ($uplink) ? $parent_item['source_xchan'] : $parent_item['owner_xchan'];
|
$sendto = ($uplink) ? $parent_item['source_xchan'] : $parent_item['owner_xchan'];
|
||||||
|
if (defined('X-REPLY-TO')) {
|
||||||
|
// experimental until debugging is completed
|
||||||
|
if ($parent_item['replyto']) {
|
||||||
|
$ptr = unserialise($parent_item['replyto']);
|
||||||
|
if (is_string($ptr)) {
|
||||||
|
$sendto = $ptr;
|
||||||
|
self::$recipients = [ $sendto ];
|
||||||
|
}
|
||||||
|
elseif (is_array($tr)) {
|
||||||
|
$sendto = [];
|
||||||
|
foreach ($ptr as $rto) {
|
||||||
|
if (is_string($rto)) {
|
||||||
|
$sendto[] = $rto;
|
||||||
|
}
|
||||||
|
elseif (is_array($rto) && isset($rto['id'])) {
|
||||||
|
$sendto[] = $rto['id'];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
self::$recipients = $sendto;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else // X-REPLY-TO
|
||||||
self::$recipients = [ $sendto ];
|
self::$recipients = [ $sendto ];
|
||||||
|
}
|
||||||
|
// END X-REPLY-TO
|
||||||
self::$private = true;
|
self::$private = true;
|
||||||
$upstream = true;
|
$upstream = true;
|
||||||
self::$packet_type = 'response';
|
self::$packet_type = 'response';
|
||||||
|
|
|
@ -782,10 +782,11 @@ class Activity {
|
||||||
else
|
else
|
||||||
return [];
|
return [];
|
||||||
|
|
||||||
$replyto = self::encode_person($i['owner'],false);
|
|
||||||
// if ($replyto) {
|
$replyto = unserialise($i['replyto']);
|
||||||
// $ret['replyTo'] = $replyto;
|
if ($replyto) {
|
||||||
// }
|
$ret['replyTo'] = $replyto;
|
||||||
|
}
|
||||||
|
|
||||||
if (! isset($ret['url'])) {
|
if (! isset($ret['url'])) {
|
||||||
$urls = [];
|
$urls = [];
|
||||||
|
@ -1166,10 +1167,10 @@ class Activity {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$replyto = self::encode_person($i['owner'],false);
|
$replyto = unserialise($i['replyto']);
|
||||||
// if ($replyto) {
|
if ($replyto) {
|
||||||
// $ret['replyTo'] = $replyto;
|
$ret['replyTo'] = $replyto;
|
||||||
// }
|
}
|
||||||
|
|
||||||
if (! isset($ret['url'])) {
|
if (! isset($ret['url'])) {
|
||||||
$urls = [];
|
$urls = [];
|
||||||
|
@ -2515,6 +2516,15 @@ class Activity {
|
||||||
$s['mid'] = $s['parent_mid'] = $act->id;
|
$s['mid'] = $s['parent_mid'] = $act->id;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (isset($act->replyto) && ! empty($act->replyto)) {
|
||||||
|
if (is_array($act->replyto) && isset($act->replyto['id'])) {
|
||||||
|
$s['replyto'] = $act->replyto['id'];
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$s['replyto'] = $act->replyto;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (ActivityStreams::is_response_activity($act->type)) {
|
if (ActivityStreams::is_response_activity($act->type)) {
|
||||||
|
|
||||||
$response_activity = true;
|
$response_activity = true;
|
||||||
|
@ -2522,9 +2532,6 @@ class Activity {
|
||||||
$s['mid'] = $act->id;
|
$s['mid'] = $act->id;
|
||||||
$s['parent_mid'] = $act->obj['id'];
|
$s['parent_mid'] = $act->obj['id'];
|
||||||
|
|
||||||
// if (isset($act->replyto) && ! empty($act->replyto)) {
|
|
||||||
// $s['replyto'] = $act->replyto;
|
|
||||||
// }
|
|
||||||
|
|
||||||
// over-ride the object timestamp with the activity
|
// over-ride the object timestamp with the activity
|
||||||
|
|
||||||
|
|
|
@ -533,6 +533,10 @@ class Item extends Controller {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ($parent_item && isset($parent_item['replyto']) && $parent_item['replyto']) {
|
||||||
|
$replyto = unserialise($parent_item['replyto']);
|
||||||
|
}
|
||||||
|
|
||||||
$moderated = false;
|
$moderated = false;
|
||||||
|
|
||||||
if (! $observer) {
|
if (! $observer) {
|
||||||
|
@ -696,7 +700,17 @@ class Item extends Controller {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (! isset($replyto)) {
|
||||||
|
if (strpos($owner_xchan['xchan_hash'],'http') === 0) {
|
||||||
|
$replyto = $owner_xchan['xchan_hash'];
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$replyto = $owner_xchan['xchan_url'];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
$acl = new AccessControl($channel);
|
$acl = new AccessControl($channel);
|
||||||
|
|
||||||
$view_policy = PermissionLimits::Get($channel['channel_id'],'view_stream');
|
$view_policy = PermissionLimits::Get($channel['channel_id'],'view_stream');
|
||||||
|
@ -1340,7 +1354,7 @@ class Item extends Controller {
|
||||||
$datarray['term'] = $post_tags;
|
$datarray['term'] = $post_tags;
|
||||||
$datarray['plink'] = $plink;
|
$datarray['plink'] = $plink;
|
||||||
$datarray['route'] = $route;
|
$datarray['route'] = $route;
|
||||||
|
$datarray['replyto'] = $replyto;
|
||||||
|
|
||||||
// A specific ACL over-rides public_policy completely
|
// A specific ACL over-rides public_policy completely
|
||||||
|
|
||||||
|
|
|
@ -724,6 +724,7 @@ function get_item_elements($x,$allow_code = false) {
|
||||||
}
|
}
|
||||||
|
|
||||||
$arr['attach'] = activity_sanitise($x['attach']);
|
$arr['attach'] = activity_sanitise($x['attach']);
|
||||||
|
$arr['replyto'] = activity_sanitise($c['replyto']);
|
||||||
$arr['term'] = decode_tags($x['tags']);
|
$arr['term'] = decode_tags($x['tags']);
|
||||||
$arr['iconfig'] = decode_item_meta($x['meta']);
|
$arr['iconfig'] = decode_item_meta($x['meta']);
|
||||||
|
|
||||||
|
@ -1115,6 +1116,7 @@ function encode_item($item,$mirror = false) {
|
||||||
$x['longlat'] = $item['coord'];
|
$x['longlat'] = $item['coord'];
|
||||||
$x['signature'] = $item['sig'];
|
$x['signature'] = $item['sig'];
|
||||||
$x['route'] = $item['route'];
|
$x['route'] = $item['route'];
|
||||||
|
$x['replyto'] = $item['replyto'];
|
||||||
$x['owner'] = encode_item_xchan($item['owner']);
|
$x['owner'] = encode_item_xchan($item['owner']);
|
||||||
$x['author'] = encode_item_xchan($item['author']);
|
$x['author'] = encode_item_xchan($item['author']);
|
||||||
|
|
||||||
|
@ -3058,6 +3060,9 @@ function start_delivery_chain($channel, $item, $item_id, $parent, $group = false
|
||||||
$arr['deny_gid'] = $channel['channel_deny_gid'];
|
$arr['deny_gid'] = $channel['channel_deny_gid'];
|
||||||
$arr['comment_policy'] = map_scope(PermissionLimits::Get($channel['channel_id'],'post_comments'));
|
$arr['comment_policy'] = map_scope(PermissionLimits::Get($channel['channel_id'],'post_comments'));
|
||||||
|
|
||||||
|
$arr['replyto'] = z_root() . '/channel/' . $channel['channel_address'];
|
||||||
|
|
||||||
|
|
||||||
if ($arr['id']) {
|
if ($arr['id']) {
|
||||||
$post = item_store_update($arr);
|
$post = item_store_update($arr);
|
||||||
}
|
}
|
||||||
|
@ -3117,12 +3122,13 @@ function start_delivery_chain($channel, $item, $item_id, $parent, $group = false
|
||||||
$title = $item['title'];
|
$title = $item['title'];
|
||||||
$body = $item['body'];
|
$body = $item['body'];
|
||||||
|
|
||||||
$r = q("update item set item_uplink = %d, item_nocomment = %d, item_flags = %d, owner_xchan = '%s', allow_cid = '%s', allow_gid = '%s',
|
$r = q("update item set item_uplink = %d, item_nocomment = %d, item_flags = %d, owner_xchan = '%s', replyto = '%s', allow_cid = '%s', allow_gid = '%s',
|
||||||
deny_cid = '%s', deny_gid = '%s', item_private = %d, comment_policy = '%s', title = '%s', body = '%s', item_wall = %d, item_origin = %d where id = %d",
|
deny_cid = '%s', deny_gid = '%s', item_private = %d, comment_policy = '%s', title = '%s', body = '%s', item_wall = %d, item_origin = %d where id = %d",
|
||||||
intval($item_uplink),
|
intval($item_uplink),
|
||||||
intval($item_nocomment),
|
intval($item_nocomment),
|
||||||
intval($flag_bits),
|
intval($flag_bits),
|
||||||
dbesc($channel['channel_hash']),
|
dbesc($channel['channel_hash']),
|
||||||
|
dbesc(channel_url($channel)),
|
||||||
dbesc($channel['channel_allow_cid']),
|
dbesc($channel['channel_allow_cid']),
|
||||||
dbesc($channel['channel_allow_gid']),
|
dbesc($channel['channel_allow_gid']),
|
||||||
dbesc($channel['channel_deny_cid']),
|
dbesc($channel['channel_deny_cid']),
|
||||||
|
|
Loading…
Reference in a new issue