Merge branch 'dev' into release

This commit is contained in:
nobody 2022-04-06 03:20:58 -07:00
commit 97468acd02
8 changed files with 104 additions and 75 deletions

View file

@ -316,6 +316,7 @@ class Notifier
}
$thread_is_public = false;
$question = false;
if ($target_item['mid'] === $target_item['parent_mid']) {
$parent_item = $target_item;
@ -337,6 +338,7 @@ class Notifier
$parent_item = array_shift($r);
$top_level_post = false;
$thread_is_public = ((intval($parent_item['item_private'])) ? false : true) ;
$question = ($parent_item['verb'] === 'Question') ? true : false;
}
// avoid looping of discover items 12/4/2014
@ -423,7 +425,7 @@ class Notifier
$upstream = true;
self::$packet_type = 'response';
$is_moderated = their_perms_contains($parent_item['uid'], $sendto, 'moderated');
if ($relay_to_owner && $thread_is_public && (! $is_moderated) && (! Channel::is_group($parent_item['uid']))) {
if ($relay_to_owner && $thread_is_public && (! $is_moderated) && (! $question) && (! Channel::is_group($parent_item['uid']))) {
if (get_pconfig($target_item['uid'], 'system', 'hyperdrive', true)) {
Run::Summon([ 'Notifier' , 'hyper', $item_id ]);
}

View file

@ -2319,12 +2319,28 @@ class Libzot
$arr['author_xchan'] = $r['hubloc_hash'];
}
if ($signer) {
$arr['owner_xchan'] = $signer[0]['hubloc_hash'];
} else {
$arr['owner_xchan'] = $a['signature']['signer'];
}
// The default condition for owner_xchan is a top level post
// which is not being relayed. Wall-to-wall posts should get
// set correctly because they will have 'replyto'.
$arr['owner_xchan'] = $arr['author_xchan'];
// replyTo trumps everything.
if ($arr['replyto']) {
$arr['owner_xchan'] = $arr['replyto'];
}
elseif ($arr['mid'] !== $arr['parent_mid']) {
// Inherit owner and replyto from the parent.
$r = q("select * from item where mid = '%s' and uid = %d",
dbesc($arr['parent_mid']),
intval($channel['channel_id'])
);
if ($r) {
$arr['owner_xchan'] = $r[0]['owner_xchan'];
$arr['replyto'] = $r[0]['replyto'];
}
}
if ($AS->meta['hubloc'] || $arr['author_xchan'] === $arr['owner_xchan']) {
$arr['item_verified'] = true;
}

View file

@ -34,6 +34,7 @@ class ThreadItem
private $owner_url = '';
private $owner_photo = '';
private $owner_name = '';
private $owner_addr = '';
private $owner_censored = false;
private $wall_to_wall = false;
private $threaded = false;
@ -408,7 +409,7 @@ class ThreadItem
'conlabels' => '',
'canvote' => $canvote,
'linktitle' => sprintf(t('View %s\'s profile - %s'), $profile_name, (($item['author']['xchan_addr']) ? $item['author']['xchan_addr'] : $item['author']['xchan_url'])),
'olinktitle' => sprintf(t('View %s\'s profile - %s'), $this->get_owner_name(), (($item['owner']['xchan_addr']) ? $item['owner']['xchan_addr'] : $item['owner']['xchan_url'])),
'olinktitle' => sprintf(t('View %s\'s profile - %s'), $this->get_owner_name(), (($this->get_owner_addr()) ? $this->get_owner_addr() : $this->get_owner_url)),
'llink' => $item['llink'],
'viewthread' => $viewthread,
'to' => t('to'),
@ -454,6 +455,7 @@ class ThreadItem
'owner_url' => $this->get_owner_url(),
'owner_photo' => $this->get_owner_photo(),
'owner_name' => $this->get_owner_name(),
'owner_addr' => $this->get_owner_addr(),
'photo' => $body['photo'],
'event' => $body['event'],
'has_tags' => $has_tags,
@ -1009,6 +1011,7 @@ class ThreadItem
$this->owner_url = chanlink_hash($this->data['owner']['xchan_hash']);
$this->owner_photo = $this->data['owner']['xchan_photo_m'];
$this->owner_name = $this->data['owner']['xchan_name'];
$this->owner_addr = $this->data['owner']['xchan_addr'];
$this->wall_to_wall = true;
}
@ -1022,6 +1025,7 @@ class ThreadItem
$this->owner_url = $friend['url'];
$this->owner_photo = $friend['photo'];
$this->owner_name = $friend['name'];
$this->owner_addr = $friend['addr'];
$this->owner_censored = $friend['censored'];
$this->wall_to_wall = true;
}
@ -1039,6 +1043,7 @@ class ThreadItem
'url' => chanlink_hash($child['author']['xchan_hash']),
'photo' => $child['author']['xchan_photo_m'],
'name' => $child['author']['xchan_name'],
'addr' => $child['author']['xchan_addr'],
'censored' => (($child['author']['xchan_censored'] || $child['author']['abook_censor']) ? true : false)
];
if ($child['children']) {
@ -1074,6 +1079,11 @@ class ThreadItem
return $this->owner_name;
}
private function get_owner_addr()
{
return $this->owner_addr;
}
private function is_visiting()
{
return $this->visiting;

View file

@ -35,7 +35,7 @@ class Site_projects
'$title' => t('Community Types'),
'$desc' => '',
'$all' => t('All community types'),
'base' => z_root() . '/sites',
'base' => z_root() . '/communities',
'$sel_all' => (($_REQUEST['project']) ? false : true),
'$terms' => $results
]);

View file

@ -14,6 +14,7 @@ If public access is allowed to the content search interface (a site security set
The URL endpoints are:
https://example.com/search?search=banana
https://example.com/search?tag=banana
Direct Messages

View file

@ -1,9 +1,9 @@
Streams
=======
So what is this space? It is sort of a personal software repository where I explore the bounds of contemporary decentralised social communications technology. It will install as a fediverse server using the LAMP stack. It is regularly maintained and updated and you are welcome to help - if you want. The commit log chronicles a dozen years of fediverse evolution from an alternative point of view - centered around the concepts of personal privacy, permissions, relative freedom from general spam and abuse, autonomy, resilience, and self-determination; which I've found are mostly lacking or completely inadequate in many of the popular/mainstream projects.
So what is this space? It is sort of a personal software repository where I explore the bounds of contemporary decentralised social communications technology. It will install as a fediverse server using the LAMP stack. It is regularly maintained and updated and you are welcome to help - if you want. The commit log chronicles a dozen years of fediverse evolution from an alternative point of view - centered around the concepts of personal privacy, permissions, relative freedom from spam and abuse, autonomy, resilience, and self-determination; which I've found are mostly lacking or completely inadequate in many of the popular/mainstream fediverse projects.
This work is dedicated and released to the public domain with no strings attached. Be advised that many others have contributed code to this repository under a number of different OSI-approved software licenses during its existence. This has no effect on any of your fundamental software freedoms; although corporate legal consultants who wish to re-appropriate our work for their profit will find this lack of license clarity "troublesome". This is intentional.
This work is dedicated and released to the public domain with no strings attached. Be advised that many others have contributed code to this repository under a number of different OSI-approved software licenses during its existence. This has no effect on any of your fundamental software freedoms; although corporate legal consultants who wish to re-appropriate our work for their employer's profit will likely find this lack of license clarity "troublesome". This is intentional.
The current name of this repository implies fluidity. This code does not represent any specific product or brand or organisation. It represents an idea. The name of the software may change at any time for any reason. As a brand or product it technically does not exist. This is also intentional.

View file

@ -1727,7 +1727,7 @@ function get_repository_version($branch = 'release')
{
if (PLATFORM_NAME === 'streams') {
$path = "https://raw.codeberg.page/streams/" . PLATFORM_NAME . "/raw/@$branch/boot.php";
$path = "https://raw.codeberg.page/streams/" . PLATFORM_NAME . "/@$branch/version.php";
}
else {
$path = "https://raw.codeberg.page/zot/" . ((PLATFORM_NAME === 'mistpark') ? 'misty' : PLATFORM_NAME) . "/@$branch/version.php";

View file

@ -1,2 +1,2 @@
<?php
define ( 'STD_VERSION', '22.04.01' );
define ( 'STD_VERSION', '22.04.05' );