working through the xchan table to remove bitfields, mostly complete except for updating the updater
This commit is contained in:
@@ -276,8 +276,7 @@ function channel_remove($channel_id, $local = true, $unset_session=true) {
|
||||
);
|
||||
|
||||
|
||||
$r = q("update xchan set xchan_flags = (xchan_flags | %d) where xchan_hash = '%s'",
|
||||
intval(XCHAN_FLAGS_DELETED),
|
||||
$r = q("update xchan set xchan_deleted = 1 where xchan_hash = '%s'",
|
||||
dbesc($channel['channel_hash'])
|
||||
);
|
||||
|
||||
@@ -326,8 +325,7 @@ function channel_remove($channel_id, $local = true, $unset_session=true) {
|
||||
$hublocs = count($r);
|
||||
|
||||
if(! $hublocs) {
|
||||
$r = q("update xchan set xchan_flags = (xchan_flags | %d) where xchan_hash = '%s' ",
|
||||
intval(XCHAN_FLAGS_DELETED),
|
||||
$r = q("update xchan set xchan_deleted = 1 where xchan_hash = '%s' ",
|
||||
dbesc($channel['channel_hash'])
|
||||
);
|
||||
}
|
||||
@@ -402,9 +400,7 @@ function mark_orphan_hubsxchans() {
|
||||
|
||||
// yes - if the xchan was marked as an orphan, undo it
|
||||
|
||||
$y = q("update xchan set xchan_flags = (xchan_flags & ~%d) where (xchan_flags & %d)>0 and xchan_hash = '%s'",
|
||||
intval(XCHAN_FLAGS_ORPHAN),
|
||||
intval(XCHAN_FLAGS_ORPHAN),
|
||||
$y = q("update xchan set xchan_orphan = 0 where xchan_orphan = 1 and xchan_hash = '%s'",
|
||||
dbesc($rr['hubloc_hash'])
|
||||
);
|
||||
|
||||
@@ -413,8 +409,7 @@ function mark_orphan_hubsxchans() {
|
||||
|
||||
// nope - mark the xchan as an orphan
|
||||
|
||||
$y = q("update xchan set xchan_flags = (xchan_flags | %d) where xchan_hash = '%s'",
|
||||
intval(XCHAN_FLAGS_ORPHAN),
|
||||
$y = q("update xchan set xchan_orphan = 1 where xchan_hash = '%s'",
|
||||
dbesc($rr['hubloc_hash'])
|
||||
);
|
||||
}
|
||||
@@ -494,8 +489,7 @@ function remove_all_xchan_resources($xchan, $channel_id = 0) {
|
||||
dbesc($xchan)
|
||||
);
|
||||
|
||||
$r = q("update xchan set xchan_flags = (xchan_flags | %d) where xchan_hash = '%s'",
|
||||
intval(XCHAN_FLAGS_DELETED),
|
||||
$r = q("update xchan set xchan_deleted = 1 where xchan_hash = '%s'",
|
||||
dbesc($xchan)
|
||||
);
|
||||
}
|
||||
|
||||
@@ -295,23 +295,15 @@ function local_dir_update($uid,$force) {
|
||||
|
||||
logger('hidden: ' . $hidden);
|
||||
|
||||
$r = q("select xchan_flags from xchan where xchan_hash = '%s' limit 1",
|
||||
$r = q("select xchan_hidden from xchan where xchan_hash = '%s' limit 1",
|
||||
dbesc($p[0]['channel_hash'])
|
||||
);
|
||||
|
||||
// Be careful - XCHAN_FLAGS_HIDDEN should evaluate to 1
|
||||
if(($r[0]['xchan_flags'] & XCHAN_FLAGS_HIDDEN) != $hidden)
|
||||
$new_flags = $r[0]['xchan_flags'] ^ XCHAN_FLAGS_HIDDEN;
|
||||
else
|
||||
$new_flags = $r[0]['xchan_flags'];
|
||||
|
||||
if($new_flags != $r[0]['xchan_flags']) {
|
||||
|
||||
$r = q("update xchan set xchan_flags = %d where xchan_hash = '%s'",
|
||||
intval($new_flags),
|
||||
if(intval($r[0]['xchan_hidden']) != $hidden) {
|
||||
$r = q("update xchan set xchan_hidden = %d where xchan_hash = '%s'",
|
||||
intval($hidden),
|
||||
dbesc($p[0]['channel_hash'])
|
||||
);
|
||||
|
||||
}
|
||||
|
||||
$address = $p[0]['channel_address'] . '@' . get_app()->get_hostname();
|
||||
|
||||
@@ -200,11 +200,10 @@ function group_get_members($gid) {
|
||||
if(intval($gid)) {
|
||||
$r = q("SELECT * FROM `group_member`
|
||||
LEFT JOIN abook ON abook_xchan = `group_member`.`xchan` left join xchan on xchan_hash = abook_xchan
|
||||
WHERE `gid` = %d AND abook_channel = %d and `group_member`.`uid` = %d and not ( xchan_flags & %d )>0 and not ( abook_flags & %d )>0 and not ( abook_flags & %d )>0 ORDER BY xchan_name ASC ",
|
||||
WHERE `gid` = %d AND abook_channel = %d and `group_member`.`uid` = %d and xchan_deleted = 0 and not ( abook_flags & %d )>0 and not ( abook_flags & %d )>0 ORDER BY xchan_name ASC ",
|
||||
intval($gid),
|
||||
intval(local_user()),
|
||||
intval(local_user()),
|
||||
intval(XCHAN_FLAGS_DELETED),
|
||||
intval(ABOOK_FLAG_BLOCKED),
|
||||
intval(ABOOK_FLAG_PENDING)
|
||||
);
|
||||
|
||||
@@ -193,7 +193,7 @@ function xchan_store($arr) {
|
||||
if(! $arr['photo'])
|
||||
$arr['photo'] = get_default_profile_photo();
|
||||
|
||||
$r = q("insert into xchan ( xchan_hash, xchan_guid, xchan_guid_sig, xchan_pubkey, xchan_addr, xchan_url, xchan_connurl, xchan_follow, xchan_connpage, xchan_name, xchan_network, xchan_instance_url, xchan_flags, xchan_name_date ) values ('%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s','%s','%s','%s',%d,'%s') ",
|
||||
$r = q("insert into xchan ( xchan_hash, xchan_guid, xchan_guid_sig, xchan_pubkey, xchan_addr, xchan_url, xchan_connurl, xchan_follow, xchan_connpage, xchan_name, xchan_network, xchan_instance_url, xchan_hidden, xchan_orphan, xchan_censored, xchan_selfcensored, xchan_system, xchan_pubforum, xchan_deleted, xchan_name_date ) values ('%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s','%s','%s','%s',%d, %d, %d, %d, %d, %d, %d, '%s') ",
|
||||
dbesc($arr['hash']),
|
||||
dbesc($arr['guid']),
|
||||
dbesc($arr['guid_sig']),
|
||||
@@ -206,7 +206,13 @@ function xchan_store($arr) {
|
||||
dbesc($arr['name']),
|
||||
dbesc($arr['network']),
|
||||
dbesc($arr['instance_url']),
|
||||
intval($arr['flags']),
|
||||
intval($arr['hidden']),
|
||||
intval($arr['orphan']),
|
||||
intval($arr['censored']),
|
||||
intval($arr['selfcensored']),
|
||||
intval($arr['system']),
|
||||
intval($arr['pubforum']),
|
||||
intval($arr['deleted']),
|
||||
dbesc(datetime_convert())
|
||||
);
|
||||
if(! $r)
|
||||
|
||||
@@ -99,7 +99,7 @@ function create_sys_channel() {
|
||||
'name' => 'System',
|
||||
'pageflags' => PAGE_SYSTEM,
|
||||
'publish' => 0,
|
||||
'xchanflags' => XCHAN_FLAGS_SYSTEM
|
||||
'system' => 1
|
||||
));
|
||||
}
|
||||
|
||||
@@ -185,7 +185,7 @@ function create_identity($arr) {
|
||||
|
||||
$name = escape_tags($arr['name']);
|
||||
$pageflags = ((x($arr,'pageflags')) ? intval($arr['pageflags']) : PAGE_NORMAL);
|
||||
$xchanflags = ((x($arr,'xchanflags')) ? intval($arr['xchanflags']) : XCHAN_FLAGS_NORMAL);
|
||||
$system = ((x($arr,'system')) ? intval($arr['system']) : 0);
|
||||
$name_error = validate_channelname($arr['name']);
|
||||
if($name_error) {
|
||||
$ret['message'] = $name_error;
|
||||
@@ -312,7 +312,7 @@ function create_identity($arr) {
|
||||
|
||||
$newuid = $ret['channel']['channel_id'];
|
||||
|
||||
$r = q("insert into xchan ( xchan_hash, xchan_guid, xchan_guid_sig, xchan_pubkey, xchan_photo_l, xchan_photo_m, xchan_photo_s, xchan_addr, xchan_url, xchan_follow, xchan_connurl, xchan_name, xchan_network, xchan_photo_date, xchan_name_date, xchan_flags ) values ('%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', %d)",
|
||||
$r = q("insert into xchan ( xchan_hash, xchan_guid, xchan_guid_sig, xchan_pubkey, xchan_photo_l, xchan_photo_m, xchan_photo_s, xchan_addr, xchan_url, xchan_follow, xchan_connurl, xchan_name, xchan_network, xchan_photo_date, xchan_name_date, xchan_system ) values ('%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', %d)",
|
||||
dbesc($hash),
|
||||
dbesc($guid),
|
||||
dbesc($sig),
|
||||
@@ -328,7 +328,7 @@ function create_identity($arr) {
|
||||
dbesc('zot'),
|
||||
dbesc(datetime_convert()),
|
||||
dbesc(datetime_convert()),
|
||||
intval($xchanflags)
|
||||
intval($system)
|
||||
);
|
||||
|
||||
// Not checking return value.
|
||||
|
||||
@@ -340,14 +340,12 @@ function suggestion_query($uid, $myxchan, $start = 0, $limit = 80) {
|
||||
and not xlink_link in ( select abook_xchan from abook where abook_channel = %d )
|
||||
and not xlink_link in ( select xchan from xign where uid = %d )
|
||||
and xlink_xchan != ''
|
||||
and not ( xchan_flags & %d )>0
|
||||
and not ( xchan_flags & %d )>0
|
||||
and xchan_hidden = 0
|
||||
and xchan_deleted = 0
|
||||
group by xchan_hash order by total desc limit %d offset %d ",
|
||||
intval($uid),
|
||||
intval($uid),
|
||||
intval($uid),
|
||||
intval(XCHAN_FLAGS_HIDDEN),
|
||||
intval(XCHAN_FLAGS_DELETED),
|
||||
intval($limit),
|
||||
intval($start)
|
||||
);
|
||||
@@ -360,13 +358,11 @@ function suggestion_query($uid, $myxchan, $start = 0, $limit = 80) {
|
||||
where xlink_xchan = ''
|
||||
and not xlink_link in ( select abook_xchan from abook where abook_channel = %d )
|
||||
and not xlink_link in ( select xchan from xign where uid = %d )
|
||||
and not ( xchan_flags & %d )>0
|
||||
and not ( xchan_flags & %d )>0
|
||||
and xchan_hidden = 0
|
||||
and xchan_deleted = 0
|
||||
group by xchan_hash order by total desc limit %d offset %d ",
|
||||
intval($uid),
|
||||
intval($uid),
|
||||
intval(XCHAN_FLAGS_HIDDEN),
|
||||
intval(XCHAN_FLAGS_DELETED),
|
||||
intval($limit),
|
||||
intval($start)
|
||||
);
|
||||
|
||||
@@ -728,20 +728,20 @@ function contact_block() {
|
||||
return;
|
||||
|
||||
$is_owner = ((local_user() && local_user() == $a->profile['uid']) ? true : false);
|
||||
$sql_extra = '';
|
||||
|
||||
$abook_flags = ABOOK_FLAG_PENDING|ABOOK_FLAG_SELF;
|
||||
$xchan_flags = XCHAN_FLAGS_ORPHAN|XCHAN_FLAGS_DELETED;
|
||||
|
||||
if(! $is_owner) {
|
||||
$abook_flags = $abook_flags | ABOOK_FLAG_HIDDEN;
|
||||
$xchan_flags = $xchan_flags | XCHAN_FLAGS_HIDDEN;
|
||||
$sql_extra = " and xchan_hidden = 0 ";
|
||||
}
|
||||
|
||||
if((! is_array($a->profile)) || ($a->profile['hide_friends']))
|
||||
return $o;
|
||||
$r = q("SELECT COUNT(abook_id) AS total FROM abook left join xchan on abook_xchan = xchan_hash WHERE abook_channel = %d and not ( abook_flags & %d )>0 and not (xchan_flags & %d)>0",
|
||||
$r = q("SELECT COUNT(abook_id) AS total FROM abook left join xchan on abook_xchan = xchan_hash WHERE abook_channel = %d and not ( abook_flags & %d )>0 and xchan_orphan = 0 and xchan_deleted = 0 $sql_extra",
|
||||
intval($a->profile['uid']),
|
||||
intval($abook_flags),
|
||||
intval($xchan_flags)
|
||||
intval($abook_flags)
|
||||
);
|
||||
if(count($r)) {
|
||||
$total = intval($r[0]['total']);
|
||||
@@ -755,10 +755,9 @@ function contact_block() {
|
||||
} else {
|
||||
$randfunc = 'RAND()';
|
||||
}
|
||||
$r = q("SELECT abook.*, xchan.* FROM abook left join xchan on abook.abook_xchan = xchan.xchan_hash WHERE abook_channel = %d AND not ( abook_flags & %d)>0 and not (xchan_flags & %d )>0 ORDER BY $randfunc LIMIT %d",
|
||||
$r = q("SELECT abook.*, xchan.* FROM abook left join xchan on abook.abook_xchan = xchan.xchan_hash WHERE abook_channel = %d AND not ( abook_flags & %d)>0 and xchan_orphan = 0 and xchan_deleted = 0 $sql_extra ORDER BY $randfunc LIMIT %d",
|
||||
intval($a->profile['uid']),
|
||||
intval($abook_flags|ABOOK_FLAG_ARCHIVED),
|
||||
intval($xchan_flags),
|
||||
intval($shown)
|
||||
);
|
||||
|
||||
|
||||
@@ -705,43 +705,36 @@ function import_xchan($arr,$ud_flags = UPDATE_FLAGS_UPDATED, $ud_arr = null) {
|
||||
|
||||
$hidden = (1 - intval($arr['searchable']));
|
||||
|
||||
// Be careful - XCHAN_FLAGS_HIDDEN should evaluate to 1
|
||||
if(($r[0]['xchan_flags'] & XCHAN_FLAGS_HIDDEN) != $hidden)
|
||||
$new_flags = $r[0]['xchan_flags'] ^ XCHAN_FLAGS_HIDDEN;
|
||||
else
|
||||
$new_flags = $r[0]['xchan_flags'];
|
||||
$hidden_changed = $adult_changed = $deleted_changed = $pubforum_changed = 0;
|
||||
|
||||
$adult = (($r[0]['xchan_flags'] & XCHAN_FLAGS_SELFCENSORED) ? true : false);
|
||||
$adult_changed = ((intval($adult) != intval($arr['adult_content'])) ? true : false);
|
||||
if($adult_changed)
|
||||
$new_flags = $new_flags ^ XCHAN_FLAGS_SELFCENSORED;
|
||||
|
||||
$deleted = (($r[0]['xchan_flags'] & XCHAN_FLAGS_DELETED) ? true : false);
|
||||
$deleted_changed = ((intval($deleted) != intval($arr['deleted'])) ? true : false);
|
||||
if($deleted_changed)
|
||||
$new_flags = $new_flags ^ XCHAN_FLAGS_DELETED;
|
||||
|
||||
$public_forum = (($r[0]['xchan_flags'] & XCHAN_FLAGS_PUBFORUM) ? true : false);
|
||||
$pubforum_changed = ((intval($public_forum) != intval($arr['public_forum'])) ? true : false);
|
||||
if($pubforum_changed)
|
||||
$new_flags = $r[0]['xchan_flags'] ^ XCHAN_FLAGS_PUBFORUM;
|
||||
if(intval($r[0]['xchan_hidden']) != (1 - intval($arr['searchable'])))
|
||||
$hidden_changed = 1;
|
||||
if(intval($r[0]['xchan_selfcensored']) != intval($arr['adult_content']))
|
||||
$adult_changed = 1;
|
||||
if(intval($r[0]['xchan_deleted']) != intval($arr['deleted']))
|
||||
$deleted_changed = 1;
|
||||
if(intval($r[0]['xchan_pubforum']) != intval($arr['public_forum']))
|
||||
$pubforum_changed = 1;
|
||||
|
||||
if(($r[0]['xchan_name_date'] != $arr['name_updated'])
|
||||
|| ($r[0]['xchan_connurl'] != $arr['connections_url'])
|
||||
|| ($r[0]['xchan_flags'] != $new_flags)
|
||||
|| ($r[0]['xchan_addr'] != $arr['address'])
|
||||
|| ($r[0]['xchan_follow'] != $arr['follow_url'])
|
||||
|| ($r[0]['xchan_connpage'] != $arr['connect_url'])
|
||||
|| ($r[0]['xchan_url'] != $arr['url'])) {
|
||||
|| ($r[0]['xchan_url'] != $arr['url'])
|
||||
|| $hidden_changed || adult_changed || deleted_changed || $pubforum_changed ) {
|
||||
$r = q("update xchan set xchan_name = '%s', xchan_name_date = '%s', xchan_connurl = '%s', xchan_follow = '%s',
|
||||
xchan_connpage = '%s', xchan_flags = %d,
|
||||
xchan_connpage = '%s', xchan_hidden = %d, xchan_selfcensored = %d, xchan_deleted = %d, xchan_pubforum = %d,
|
||||
xchan_addr = '%s', xchan_url = '%s' where xchan_hash = '%s'",
|
||||
dbesc(($arr['name']) ? $arr['name'] : '-'),
|
||||
dbesc($arr['name_updated']),
|
||||
dbesc($arr['connections_url']),
|
||||
dbesc($arr['follow_url']),
|
||||
dbesc($arr['connect_url']),
|
||||
intval($new_flags),
|
||||
intval(1 - intval($arr['searchable'])),
|
||||
intval($arr['adult_content']),
|
||||
intval($arr['deleted']),
|
||||
intval($arr['public_forum']),
|
||||
dbesc($arr['address']),
|
||||
dbesc($arr['url']),
|
||||
dbesc($xchan_hash)
|
||||
@@ -761,20 +754,9 @@ function import_xchan($arr,$ud_flags = UPDATE_FLAGS_UPDATED, $ud_arr = null) {
|
||||
&& ($arr['site']['url'] != z_root()))
|
||||
$arr['searchable'] = false;
|
||||
|
||||
$hidden = (1 - intval($arr['searchable']));
|
||||
|
||||
if($hidden)
|
||||
$new_flags = XCHAN_FLAGS_HIDDEN;
|
||||
else
|
||||
$new_flags = 0;
|
||||
if($arr['adult_content'])
|
||||
$new_flags |= XCHAN_FLAGS_SELFCENSORED;
|
||||
if(array_key_exists('deleted',$arr) && $arr['deleted'])
|
||||
$new_flags |= XCHAN_FLAGS_DELETED;
|
||||
|
||||
$x = q("insert into xchan ( xchan_hash, xchan_guid, xchan_guid_sig, xchan_pubkey, xchan_photo_mimetype,
|
||||
xchan_photo_l, xchan_addr, xchan_url, xchan_connurl, xchan_follow, xchan_connpage, xchan_name, xchan_network, xchan_photo_date, xchan_name_date, xchan_flags)
|
||||
values ( '%s', '%s', '%s', '%s' , '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', %d) ",
|
||||
xchan_photo_l, xchan_addr, xchan_url, xchan_connurl, xchan_follow, xchan_connpage, xchan_name, xchan_network, xchan_photo_date, xchan_name_date, xchan_hidden, xchan_selfcensored, xchan_deleted, xchan_pubforum, )
|
||||
values ( '%s', '%s', '%s', '%s' , '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', %d, %d, %d, %d) ",
|
||||
dbesc($xchan_hash),
|
||||
dbesc($arr['guid']),
|
||||
dbesc($arr['guid_sig']),
|
||||
@@ -790,7 +772,10 @@ function import_xchan($arr,$ud_flags = UPDATE_FLAGS_UPDATED, $ud_arr = null) {
|
||||
dbesc('zot'),
|
||||
dbescdate($arr['photo_updated']),
|
||||
dbescdate($arr['name_updated']),
|
||||
intval($new_flags)
|
||||
intval(1 - intval($arr['searchable'])),
|
||||
intval($arr['adult_content']),
|
||||
intval($arr['deleted']),
|
||||
intval($arr['public_forum'])
|
||||
);
|
||||
|
||||
$what .= 'new_xchan';
|
||||
@@ -1433,11 +1418,11 @@ function process_delivery($sender,$arr,$deliveries,$relay,$public = false,$reque
|
||||
if(($channel['channel_pageflags'] & PAGE_SYSTEM) && (! $arr['item_private'])) {
|
||||
$local_public = true;
|
||||
|
||||
$r = q("select xchan_flags from xchan where xchan_hash = '%s' limit 1",
|
||||
$r = q("select xchan_selfcensored from xchan where xchan_hash = '%s' limit 1",
|
||||
dbesc($sender['hash'])
|
||||
);
|
||||
// don't import sys channel posts from selfcensored authors
|
||||
if($r && ($r[0]['xchan_flags'] & XCHAN_FLAGS_SELFCENSORED)) {
|
||||
if($r && (intval($r[0]['xchan_selfcensored']))) {
|
||||
$local_public = false;
|
||||
continue;
|
||||
}
|
||||
@@ -1890,9 +1875,7 @@ function sync_locations($sender,$arr,$absolute = false) {
|
||||
intval($r[0]['hubloc_id'])
|
||||
);
|
||||
}
|
||||
q("update xchan set xchan_flags = (xchan_flags & ~%d) where (xchan_flags & %d)>0 and xchan_hash = '%s'",
|
||||
intval(XCHAN_FLAGS_ORPHAN),
|
||||
intval(XCHAN_FLAGS_ORPHAN),
|
||||
q("update xchan set xchan_orphan = 0 where xchan_orphan = 1 and xchan_hash = '%s'",
|
||||
dbesc($sender['hash'])
|
||||
);
|
||||
}
|
||||
@@ -2078,8 +2061,7 @@ function import_directory_profile($hash,$profile,$addr,$ud_flags = UPDATE_FLAGS_
|
||||
|
||||
|
||||
if(in_arrayi('nsfw',$clean) || in_arrayi('adult',$clean)) {
|
||||
q("update xchan set xchan_flags = (xchan_flags | %d) where xchan_hash = '%s'",
|
||||
intval(XCHAN_FLAGS_SELFCENSORED),
|
||||
q("update xchan set xchan_selfcensored = 1 where xchan_hash = '%s'",
|
||||
dbesc($hash)
|
||||
);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user