diff options
-rw-r--r-- | Zotlabs/Lib/ActivityStreams2.php | 2 | ||||
-rw-r--r-- | Zotlabs/Module/Ap_probe.php | 33 | ||||
-rw-r--r-- | include/feedutils.php | 40 |
3 files changed, 60 insertions, 15 deletions
diff --git a/Zotlabs/Lib/ActivityStreams2.php b/Zotlabs/Lib/ActivityStreams2.php index 46852886b..904782bf7 100644 --- a/Zotlabs/Lib/ActivityStreams2.php +++ b/Zotlabs/Lib/ActivityStreams2.php @@ -43,7 +43,7 @@ class ActivityStreams2 { function fetch_property($url) { $redirects = 0; $x = z_fetch_url($url,true,$redirects, - ['headers' => [ 'Accept' => 'application/ld+json; profile="https://www.w3.org/ns/activitystreams"']]); + ['headers' => [ 'Accept: application/ld+json; profile="https://www.w3.org/ns/activitystreams"']]); if($x['success']) return json_decode($x['body'],true); return null; diff --git a/Zotlabs/Module/Ap_probe.php b/Zotlabs/Module/Ap_probe.php new file mode 100644 index 000000000..4649914d5 --- /dev/null +++ b/Zotlabs/Module/Ap_probe.php @@ -0,0 +1,33 @@ +<?php +namespace Zotlabs\Module; + +require_once('include/zot.php'); + + +class Ap_probe extends \Zotlabs\Web\Controller { + + function get() { + + $o .= '<h3>ActivityPub Probe Diagnostic</h3>'; + + $o .= '<form action="ap_probe" method="get">'; + $o .= 'Lookup URI: <input type="text" style="width: 250px;" name="addr" value="' . $_GET['addr'] .'" />'; + $o .= '<input type="submit" name="submit" value="Submit" /></form>'; + + $o .= '<br /><br />'; + + if(x($_GET,'addr')) { + $addr = $_GET['addr']; + + $redirects = 0; + $x = z_fetch_url($addr,true,$redirects, + [ 'headers' => [ 'Accept: application/ld+json; profile="https://www.w3.org/ns/activitystreams"']]); +logger('fetch: ' . print_r($x,true)); + + if($x['success']) + $o .= '<pre>' . str_replace('\\','',jindent($x['body'])) . '</pre>'; + } + return $o; + } + +} diff --git a/include/feedutils.php b/include/feedutils.php index 5f2a06029..b31448d81 100644 --- a/include/feedutils.php +++ b/include/feedutils.php @@ -1937,22 +1937,34 @@ function asencode_note($i) { function asencode_person($p) { - $ret = array(); - $ret['type'] = 'Person'; - $ret['id'] = $p['xchan_url']; - $ret['name'] = $p['xchan_name']; - $ret['image'] = array( - 'type' => 'Link', + $ret = []; + $ret['type'] = 'Person'; + $ret['id'] = $p['xchan_url']; + $ret['name'] = $p['xchan_name']; + $ret['icon'] = [ $p['xchan_photo_l'] ]; + $ret['image'] = [ + 'type' => 'Link', 'mediaType' => $p['xchan_photo_mimetype'], - 'href' => $p['xchan_photo_l'], - 'height' => 300, - 'width' => 300 - ); - $ret['url'] = array( - 'type' => 'Link', + 'href' => $p['xchan_photo_l'], + 'height' => 300, + 'width' => 300 + ]; + $ret['url'] = [ + 'type' => 'Link', 'mediaType' => 'text/html', - 'href' => $p['xchan_url'] - ); + 'href' => $p['xchan_url'] + ]; + + if(array_key_exists('channel_id',$p)) { + $ret['inbox'] = z_root() . '/inbox/' . $p['channel_address']; + $ret['outbox'] = z_root() . '/outbox/' . $p['channel_address']; + } + else { + $collections = get_xconfig($p['xchan_hash'],'activitystreams','collections',[]); + if($collections) { + $ret = array_merge($ret,$collections); + } + } return $ret; } |