aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMario Vavti <mario@mariovavti.com>2022-04-07 09:20:06 +0200
committerMario <mario@mariovavti.com>2022-04-07 09:27:12 +0200
commitb2fa63f2c8f07f0677e12c655bb39a2c1d6e5444 (patch)
treeee85f235ea1ab79f774c7a3b09f3500b13af5ca1
parent38d977e54612e0cfbe69aae47c656f1cada037c6 (diff)
downloadvolse-hubzilla-b2fa63f2c8f07f0677e12c655bb39a2c1d6e5444.tar.gz
volse-hubzilla-b2fa63f2c8f07f0677e12c655bb39a2c1d6e5444.tar.bz2
volse-hubzilla-b2fa63f2c8f07f0677e12c655bb39a2c1d6e5444.zip
move AP addressing to pubcrawl
(cherry picked from commit 1390e1db399c06cb76e191437eb5be24dd95a5c7)
-rw-r--r--Zotlabs/Lib/Activity.php136
1 files changed, 14 insertions, 122 deletions
diff --git a/Zotlabs/Lib/Activity.php b/Zotlabs/Lib/Activity.php
index 7663131bb..6814c2acd 100644
--- a/Zotlabs/Lib/Activity.php
+++ b/Zotlabs/Lib/Activity.php
@@ -530,71 +530,18 @@ class Activity {
$ret['attachment'] = $a;
}
- $public = (($i['item_private']) ? false : true);
- $top_level = (($i['mid'] === $i['parent_mid']) ? true : false);
-
- if ($public) {
-
+ if (intval($i['item_private']) === 0) {
$ret['to'] = [ACTIVITY_PUBLIC_INBOX];
- $ret['cc'] = [z_root() . '/followers/' . substr($i['author']['xchan_addr'], 0, strpos($i['author']['xchan_addr'], '@'))];
}
- else {
-
- // private activity
- if ($top_level) {
- $ret['to'] = self::map_acl($i);
- }
- else {
- $ret['to'] = [];
- if ($ret['tag']) {
- foreach ($ret['tag'] as $mention) {
- if (is_array($mention) && array_key_exists('href', $mention) && $mention['href']) {
- $h = q("select * from hubloc where hubloc_id_url = '%s' limit 1",
- dbesc($mention['href'])
- );
- if ($h) {
- if ($h[0]['hubloc_network'] === 'activitypub') {
- $addr = $h[0]['hubloc_hash'];
- }
- else {
- $addr = $h[0]['hubloc_id_url'];
- }
- if (!in_array($addr, $ret['to'])) {
- $ret['to'][] = $addr;
- }
- }
- }
- }
- }
- $d = q("select hubloc.* from hubloc left join item on hubloc_hash = owner_xchan where item.id = %d and hubloc_deleted = 0 order by hubloc_id desc limit 1",
- intval($i['parent'])
- );
- if ($d) {
- if ($d[0]['hubloc_network'] === 'activitypub') {
- $addr = $d[0]['hubloc_hash'];
- }
- else {
- $addr = $d[0]['hubloc_id_url'];
- }
- if (!in_array($addr, $ret['to'])) {
- $ret['cc'][] = $addr;
- }
- }
- }
- }
+ $hookinfo = [
+ 'item' => $i,
+ 'encoded' => $ret
+ ];
- $mentions = self::map_mentions($i);
- if (count($mentions) > 0) {
- if (!$ret['to']) {
- $ret['to'] = $mentions;
- }
- else {
- $ret['to'] = array_values(array_unique(array_merge($ret['to'], $mentions)));
- }
- }
+ call_hooks('encode_item', $hookinfo);
- return $ret;
+ return $hookinfo['encoded'];
}
@@ -941,73 +888,18 @@ class Activity {
$ret['attachment'] = $a;
}
- // addressing madness
-
- $public = (($i['item_private']) ? false : true);
- $top_level = (($reply) ? false : true);
-
- if ($public) {
+ if (intval($i['item_private']) === 0) {
$ret['to'] = [ACTIVITY_PUBLIC_INBOX];
- $ret['cc'] = [z_root() . '/followers/' . substr($i['author']['xchan_addr'], 0, strpos($i['author']['xchan_addr'], '@'))];
}
- else {
- // private activity
-
- if ($top_level) {
- $ret['to'] = self::map_acl($i);
- }
- else {
- $ret['to'] = [];
- if ($ret['tag']) {
- foreach ($ret['tag'] as $mention) {
- if (is_array($mention) && array_key_exists('href', $mention) && $mention['href']) {
- $h = q("select * from hubloc where hubloc_id_url = '%s' limit 1",
- dbesc($mention['href'])
- );
- if ($h) {
- if ($h[0]['hubloc_network'] === 'activitypub') {
- $addr = $h[0]['hubloc_hash'];
- }
- else {
- $addr = $h[0]['hubloc_id_url'];
- }
- if (!in_array($addr, $ret['to'])) {
- $ret['to'][] = $addr;
- }
- }
- }
- }
- }
-
- $d = q("select hubloc.* from hubloc left join item on hubloc_hash = owner_xchan where item.id = %d and hubloc_deleted = 0 order by hubloc_id desc limit 1",
- intval($i['parent'])
- );
- if ($d) {
- if ($d[0]['hubloc_network'] === 'activitypub') {
- $addr = $d[0]['hubloc_hash'];
- }
- else {
- $addr = $d[0]['hubloc_id_url'];
- }
- if (!in_array($addr, $ret['to'])) {
- $ret['cc'][] = $addr;
- }
- }
- }
- }
+ $hookinfo = [
+ 'item' => $i,
+ 'encoded' => $ret
+ ];
- $mentions = self::map_mentions($i);
- if (count($mentions) > 0) {
- if (!$ret['to']) {
- $ret['to'] = $mentions;
- }
- else {
- $ret['to'] = array_values(array_unique(array_merge($ret['to'], $mentions)));
- }
- }
+ call_hooks('encode_activity', $hookinfo);
- return $ret;
+ return $hookinfo['encoded'];
}
// Returns an array of URLS for any mention tags found in the item array $i.