Override the "from ActivityPub" and Profile URI for remote profiles.
This commit is contained in:
parent
b693dab832
commit
2d0f3de52a
@ -411,6 +411,63 @@ class ActivityPubPlugin extends Plugin
|
|||||||
$postman->create ($notice);
|
$postman->create ($notice);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Override the "from ActivityPub" bit in notice lists to link to the
|
||||||
|
* original post and show the domain it came from.
|
||||||
|
*
|
||||||
|
* @param Notice in $notice
|
||||||
|
* @param string out &$name
|
||||||
|
* @param string out &$url
|
||||||
|
* @param string out &$title
|
||||||
|
* @return mixed hook return code
|
||||||
|
*/
|
||||||
|
function onStartNoticeSourceLink ($notice, &$name, &$url, &$title)
|
||||||
|
{
|
||||||
|
// If we don't handle this, keep the event handler going
|
||||||
|
if (!in_array ($notice->source, array('ActivityPub', 'share'))) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
$url = $notice->getUrl();
|
||||||
|
// If getUrl() throws exception, $url is never set
|
||||||
|
|
||||||
|
$bits = parse_url($url);
|
||||||
|
$domain = $bits['host'];
|
||||||
|
if (substr($domain, 0, 4) == 'www.') {
|
||||||
|
$name = substr($domain, 4);
|
||||||
|
} else {
|
||||||
|
$name = $domain;
|
||||||
|
}
|
||||||
|
|
||||||
|
// TRANS: Title. %s is a domain name.
|
||||||
|
$title = sprintf(_m('Sent from %s via ActivityPub'), $domain);
|
||||||
|
|
||||||
|
// Abort event handler, we have a name and URL!
|
||||||
|
return false;
|
||||||
|
} catch (InvalidUrlException $e) {
|
||||||
|
// This just means we don't have the notice source data
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Profile URI for remote profiles.
|
||||||
|
*
|
||||||
|
* @param Profile $profile
|
||||||
|
* @param string $uri in/out
|
||||||
|
* @return mixed hook return code
|
||||||
|
*/
|
||||||
|
function onStartGetProfileUri ($profile, &$uri)
|
||||||
|
{
|
||||||
|
$aprofile = Activitypub_profile::getKV ('profile_id', $profile->id);
|
||||||
|
if ($aprofile instanceof Activitypub_profile) {
|
||||||
|
$uri = $aprofile->uri;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Reference in New Issue
Block a user