aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Zotlabs/Lib/ActivityStreams2.php2
-rw-r--r--Zotlabs/Module/Ap_probe.php33
-rw-r--r--include/feedutils.php40
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;
}