mirror of
https://codeberg.org/streams/streams.git
synced 2024-09-20 06:15:11 +00:00
more tweaks
This commit is contained in:
parent
6ef4abacb1
commit
fb068ac9f7
3 changed files with 46 additions and 12 deletions
|
@ -1416,7 +1416,7 @@ class Activity {
|
|||
if(is_array($act->obj)) {
|
||||
$content = self::get_content($act->obj);
|
||||
}
|
||||
|
||||
|
||||
$s['owner_xchan'] = $act->actor['id'];
|
||||
$s['author_xchan'] = $act->actor['id'];
|
||||
|
||||
|
@ -1577,6 +1577,11 @@ class Activity {
|
|||
$item['aid'] = $channel['channel_account_id'];
|
||||
$item['uid'] = $channel['channel_id'];
|
||||
|
||||
if(! ( $item['author_xchan'] && $item['owner_xchan'])) {
|
||||
logger('owner or author missing.');
|
||||
return;
|
||||
}
|
||||
|
||||
if($channel['channel_system']) {
|
||||
if(! \Zotlabs\Lib\MessageFilter::evaluate($item,get_config('system','pubstream_incl'),get_config('system','pubstream_excl'))) {
|
||||
logger('post is filtered');
|
||||
|
@ -1610,8 +1615,16 @@ class Activity {
|
|||
);
|
||||
if(! $p) {
|
||||
$a = (($fetch_parents) ? self::fetch_and_store_parents($channel,$observer_hash,$act,$item) : false);
|
||||
// if no parent was fetched, turn into a top-level post
|
||||
if(! $a) {
|
||||
if($a) {
|
||||
$p = q("select parent_mid from item where mid = '%s' and uid = %d limit 1",
|
||||
dbesc($item['parent_mid']),
|
||||
intval($item['uid'])
|
||||
);
|
||||
}
|
||||
else {
|
||||
|
||||
// if no parent was fetched, turn into a top-level post
|
||||
|
||||
// @TODO we maybe could accept these is we formatted the body correctly with share_bb()
|
||||
// or at least provided a link to the object
|
||||
if(in_array($act->type,[ 'Like','Dislike' ])) {
|
||||
|
|
|
@ -82,23 +82,28 @@ class ActivityStreams {
|
|||
if($this->ldsig) {
|
||||
$this->signer = $this->get_compound_property('creator',$this->ldsig);
|
||||
if($this->signer && $this->signer['publicKey'] && $this->signer['publicKey']['publicKeyPem']) {
|
||||
$this->sigok = \Zotlabs\Lib\LDSignatures::verify($this->data,$this->signer['publicKey']['publicKeyPem']);
|
||||
$this->sigok = LDSignatures::verify($this->data,$this->signer['publicKey']['publicKeyPem']);
|
||||
}
|
||||
}
|
||||
|
||||
if(! $this->obj) {
|
||||
$this->obj = $this->data;
|
||||
$this->type = 'Create';
|
||||
if(! $this->actor) {
|
||||
$this->actor = $this->get_actor('attributedTo',$this->obj);
|
||||
}
|
||||
}
|
||||
|
||||
if($this->obj && $this->obj['actor'])
|
||||
$this->obj['actor'] = $this->get_actor('actor',$this->obj);
|
||||
if($this->tgt && $this->tgt['actor'])
|
||||
$this->tgt['actor'] = $this->get_actor('actor',$this->tgt);
|
||||
|
||||
|
||||
if(! $this->obj) {
|
||||
$this->obj = $this->data;
|
||||
$this->type = 'Create';
|
||||
}
|
||||
|
||||
$this->parent_id = $this->get_property_obj('inReplyTo');
|
||||
if(! $this->parent_id) {
|
||||
$this->parent_id = $this->get_property_obj('inReplyTo',$this->obj);
|
||||
}
|
||||
if(! $this->parent_id) {
|
||||
$this->parent_id = $this->obj['id'];
|
||||
}
|
||||
}
|
||||
|
@ -252,9 +257,11 @@ class ActivityStreams {
|
|||
|
||||
$x = z_fetch_url($url, true, $redirects,
|
||||
[ 'headers' => [ 'Accept: application/activity+json, application/ld+json; profile="https://www.w3.org/ns/activitystreams"' ]]);
|
||||
if($x['success'])
|
||||
if($x['success']) {
|
||||
$y = json_decode($x['body'],true);
|
||||
logger('returned: ' . json_encode($y,JSON_PRETTY_PRINT|JSON_UNESCAPED_SLASHES));
|
||||
return json_decode($x['body'], true);
|
||||
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
|
|
|
@ -67,6 +67,20 @@ class Inbox extends Controller {
|
|||
$channels = q("SELECT * from channel where channel_id in ( SELECT abook_channel from abook left join xchan on abook_xchan = xchan_hash WHERE xchan_network = 'activitypub' and xchan_hash = '%s' ) and channel_removed = 0 ",
|
||||
dbesc($observer_hash)
|
||||
);
|
||||
if(! $channels) {
|
||||
$channels = [];
|
||||
}
|
||||
|
||||
$parent = $AS->parent_id;
|
||||
if($parent) {
|
||||
//this is a comment - deliver to everybody who owns the parent
|
||||
$owners = q("SELECT * from channel where channel_id in ( SELECT uid from item where mid = '%s' ) ",
|
||||
dbesc($parent)
|
||||
);
|
||||
if($owners) {
|
||||
$channels = array_merge($channels,$owners);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if($channels === false)
|
||||
|
|
Loading…
Reference in a new issue