aboutsummaryrefslogtreecommitdiffstats
path: root/Zotlabs
diff options
context:
space:
mode:
Diffstat (limited to 'Zotlabs')
-rw-r--r--Zotlabs/Lib/Activity.php13
-rw-r--r--Zotlabs/Lib/ActivityStreams.php7
2 files changed, 19 insertions, 1 deletions
diff --git a/Zotlabs/Lib/Activity.php b/Zotlabs/Lib/Activity.php
index caeb1db4b..b400ffd61 100644
--- a/Zotlabs/Lib/Activity.php
+++ b/Zotlabs/Lib/Activity.php
@@ -3874,6 +3874,19 @@ class Activity {
return $hookdata['actor'];
}
+ static function get_unknown_actor($act) {
+
+ // try other get_actor providers (e.g. diaspora)
+ $hookdata = [
+ 'activity' => $act,
+ 'actor' => null
+ ];
+
+ call_hooks('get_actor_provider', $hookdata);
+
+ return $hookdata['actor'];
+ }
+
static function get_actor_hublocs($url, $options = 'all') {
switch ($options) {
diff --git a/Zotlabs/Lib/ActivityStreams.php b/Zotlabs/Lib/ActivityStreams.php
index e77b501b3..c0b07bfb5 100644
--- a/Zotlabs/Lib/ActivityStreams.php
+++ b/Zotlabs/Lib/ActivityStreams.php
@@ -308,20 +308,25 @@ class ActivityStreams {
function get_actor($property, $base = '', $namespace = '') {
$x = $this->get_property_obj($property, $base, $namespace);
+
if ($this->is_url($x)) {
$y = Activity::get_cached_actor($x);
if ($y) {
return $y;
}
}
+
$actor = $this->get_compound_property($property, $base, $namespace, true);
+
if (is_array($actor) && self::is_an_actor($actor['type'])) {
if (array_key_exists('id', $actor) && (!array_key_exists('inbox', $actor))) {
$actor = $this->fetch_property($actor['id']);
}
return $actor;
}
- return null;
+
+ return Activity::get_unknown_actor($this->data);
+
}