mirror of
https://codeberg.org/streams/streams.git
synced 2024-09-20 03:55:18 +00:00
better handling of tombstones, schema changes from upstream
This commit is contained in:
parent
c9bcde817a
commit
84552ef9d5
4 changed files with 52 additions and 4 deletions
|
@ -401,10 +401,35 @@ class Activity {
|
|||
$reply = false;
|
||||
|
||||
if(intval($i['item_deleted'])) {
|
||||
$ret['type'] = 'Tombstone';
|
||||
$ret['formerType'] = self::activity_obj_mapper($i['obj_type']);
|
||||
$ret['id'] = $i['mid'];
|
||||
$ret['type'] = 'Delete';
|
||||
$ret['id'] = str_replace('/item/','/activity/',$i['mid']) . '#delete';
|
||||
$actor = self::encode_person($i['author'],false);
|
||||
if($actor)
|
||||
$ret['actor'] = $actor;
|
||||
else
|
||||
return [];
|
||||
|
||||
if($i['obj']) {
|
||||
if(! is_array($i['obj'])) {
|
||||
$i['obj'] = json_decode($i['obj'],true);
|
||||
}
|
||||
$obj = self::encode_object($i['obj']);
|
||||
if($obj)
|
||||
$ret['object'] = $obj;
|
||||
else
|
||||
return [];
|
||||
}
|
||||
else {
|
||||
$obj = self::encode_item($i,$activitypub);
|
||||
if($obj)
|
||||
$ret['object'] = $obj;
|
||||
else
|
||||
return [];
|
||||
}
|
||||
|
||||
$ret['to'] = [ ACTIVITY_PUBLIC_INBOX ];
|
||||
return $ret;
|
||||
|
||||
}
|
||||
|
||||
$ret['type'] = self::activity_mapper($i['verb']);
|
||||
|
@ -1201,6 +1226,25 @@ class Activity {
|
|||
|
||||
}
|
||||
|
||||
static function drop($channel,$observer,$act) {
|
||||
$r = q("select * from item where mid = '%s' and uid = %d limit 1",
|
||||
$act->obj['id'],
|
||||
$channel['channel_id']
|
||||
);
|
||||
|
||||
if(! $r) {
|
||||
return;
|
||||
}
|
||||
|
||||
if(in_array($observer,[ $r[0]['author_xchan'], $r[0]['owner_xchan'] ])) {
|
||||
drop_item($r[0]['id'],false);
|
||||
}
|
||||
elseif(in_array($act->actor['id'],[ $r[0]['author_xchan'], $r[0]['owner_xchan'] ])) {
|
||||
drop_item($r[0]['id'],false);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
static function create_action($channel,$observer_hash,$act) {
|
||||
|
||||
|
|
|
@ -195,6 +195,8 @@ class Inbox extends Controller {
|
|||
break;
|
||||
}
|
||||
case 'Delete':
|
||||
Activity::drop($channel,$observer_hash,$AS);
|
||||
break;
|
||||
case 'Add':
|
||||
case 'Remove':
|
||||
default:
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
.dropdown-header.text-white-50,
|
||||
.navbar-dark .navbar-toggler,
|
||||
.navbar-dark .nav-link.active {
|
||||
color: rgba(0,0,0,0.7) !important;
|
||||
|
|
|
@ -152,6 +152,7 @@ option {
|
|||
background-color: #111;
|
||||
}
|
||||
|
||||
.dropdown-header.text-black-50,
|
||||
.nav-link.active {
|
||||
color:#fff !important;
|
||||
}
|
||||
|
@ -373,7 +374,7 @@ pre {
|
|||
}
|
||||
|
||||
.dropdown-menu >li > a {
|
||||
color: #ccc;
|
||||
color: #ccc !important;
|
||||
}
|
||||
|
||||
.dropdown-menu > li > a:hover, .dropdown-menu > li > a:focus {
|
||||
|
|
Loading…
Reference in a new issue