From 0596097f8603d24823ea57a68eaf405c6c0d94ff Mon Sep 17 00:00:00 2001 From: friendica Date: Mon, 26 Jan 2015 19:13:06 -0800 Subject: provide storage for directory based reputation in the xlink table by setting xlink_static = 1, so that xlink_static = 0 is traditional poco linkages --- boot.php | 2 +- include/onepoll.php | 2 +- include/poller.php | 2 +- include/socgraph.php | 14 ++++++++------ install/schema_mysql.sql | 4 +++- install/schema_postgres.sql | 2 ++ install/update.php | 13 ++++++++++++- 7 files changed, 28 insertions(+), 11 deletions(-) diff --git a/boot.php b/boot.php index ee6b7e99b..969a4f578 100755 --- a/boot.php +++ b/boot.php @@ -49,7 +49,7 @@ define ( 'RED_PLATFORM', 'redmatrix' ); define ( 'RED_VERSION', trim(file_get_contents('version.inc')) . 'R'); define ( 'ZOT_REVISION', 1 ); -define ( 'DB_UPDATE_VERSION', 1134 ); +define ( 'DB_UPDATE_VERSION', 1135 ); /** * Constant with a HTML line break. diff --git a/include/onepoll.php b/include/onepoll.php index 095edd095..ee90fbdb1 100644 --- a/include/onepoll.php +++ b/include/onepoll.php @@ -145,7 +145,7 @@ function onepoll_run($argv, $argc){ if($contact['xchan_connurl']) { $r = q("SELECT xlink_id from xlink - where xlink_xchan = '%s' and xlink_updated > %s - INTERVAL %s limit 1", + where xlink_xchan = '%s' and xlink_updated > %s - INTERVAL %s and xlink_static = 0 limit 1", intval($contact['xchan_hash']), db_utcnow(), db_quoteinterval('1 DAY') ); diff --git a/include/poller.php b/include/poller.php index d78355db1..dc310fe16 100644 --- a/include/poller.php +++ b/include/poller.php @@ -160,7 +160,7 @@ function poller_run($argv, $argc){ // get rid of really old poco records - q("delete from xlink where xlink_updated < %s - INTERVAL %s", + q("delete from xlink where xlink_updated < %s - INTERVAL %s and xlink_static = 0 ", db_utcnow(), db_quoteinterval('14 DAY') ); diff --git a/include/socgraph.php b/include/socgraph.php index 8c2056c30..542ec7074 100644 --- a/include/socgraph.php +++ b/include/socgraph.php @@ -186,13 +186,13 @@ function poco_load($xchan = '',$url = null) { $total ++; - $r = q("select * from xlink where xlink_xchan = '%s' and xlink_link = '%s' limit 1", + $r = q("select * from xlink where xlink_xchan = '%s' and xlink_link = '%s' and xlink_static = 0 limit 1", dbesc($xchan), dbesc($hash) ); if(! $r) { - q("insert into xlink ( xlink_xchan, xlink_link, xlink_rating, xlink_rating_text, xlink_updated ) values ( '%s', '%s', %d, '%s', '%s' ) ", + q("insert into xlink ( xlink_xchan, xlink_link, xlink_rating, xlink_rating_text, xlink_updated, xlink_static ) values ( '%s', '%s', %d, '%s', '%s', 0 ) ", dbesc($xchan), dbesc($hash), intval($rating), @@ -211,7 +211,7 @@ function poco_load($xchan = '',$url = null) { } logger("poco_load: loaded $total entries",LOGGER_DEBUG); - q("delete from xlink where xlink_xchan = '%s' and xlink_updated < %s - INTERVAL %s", + q("delete from xlink where xlink_xchan = '%s' and xlink_updated < %s - INTERVAL %s and xlink_static = 0", dbesc($xchan), db_utcnow(), db_quoteinterval('2 DAY') ); @@ -222,7 +222,7 @@ function poco_load($xchan = '',$url = null) { function count_common_friends($uid,$xchan) { - $r = q("SELECT count(xlink_id) as total from xlink where xlink_xchan = '%s' and xlink_link in + $r = q("SELECT count(xlink_id) as total from xlink where xlink_xchan = '%s' and xlink_static = 0 and xlink_link in (select abook_xchan from abook where abook_xchan != '%s' and abook_channel = %d and abook_flags = 0 )", dbesc($xchan), dbesc($xchan), @@ -243,7 +243,7 @@ function common_friends($uid,$xchan,$start = 0,$limit=100000000,$shuffle = false else $sql_extra = " order by xchan_name asc "; - $r = q("SELECT * from xchan left join xlink on xlink_link = xchan_hash where xlink_xchan = '%s' and xlink_link in + $r = q("SELECT * from xchan left join xlink on xlink_link = xchan_hash where xlink_xchan = '%s' and xlink_static = 0 and xlink_link in (select abook_xchan from abook where abook_xchan != '%s' and abook_channel = %d and abook_flags = 0 ) $sql_extra limit %d offset %d", dbesc($xchan), dbesc($xchan), @@ -340,6 +340,7 @@ 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 xlink_static = 0 and not ( xchan_flags & %d )>0 and not ( xchan_flags & %d )>0 group by xchan_hash order by total desc limit %d offset %d ", @@ -360,6 +361,7 @@ 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 xlink_static = 0 and not ( xchan_flags & %d )>0 and not ( xchan_flags & %d )>0 group by xchan_hash order by total desc limit %d offset %d ", @@ -405,7 +407,7 @@ function update_suggestions() { // the targets may have changed their preferences and don't want to be suggested - and they // may have simply gone away. - $r = q("delete from xlink where xlink_xchan = '' and xlink_updated < %s - INTERVAL %s", + $r = q("delete from xlink where xlink_xchan = '' and xlink_updated < %s - INTERVAL %s and xlink_static = 0", db_utcnow(), db_quoteinterval('7 DAY') ); diff --git a/install/schema_mysql.sql b/install/schema_mysql.sql index 226ea2308..ba41073f8 100644 --- a/install/schema_mysql.sql +++ b/install/schema_mysql.sql @@ -1532,11 +1532,13 @@ CREATE TABLE IF NOT EXISTS `xlink` ( `xlink_rating` int(11) NOT NULL DEFAULT '0', `xlink_rating_text` TEXT NOT NULL DEFAULT '', `xlink_updated` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + `xlink_static` tinyint(1) NOT NULL DEFAULT '0', PRIMARY KEY (`xlink_id`), KEY `xlink_xchan` (`xlink_xchan`), KEY `xlink_link` (`xlink_link`), KEY `xlink_updated` (`xlink_updated`), - KEY `xlink_rating` (`xlink_rating`) + KEY `xlink_rating` (`xlink_rating`), + KEY `xlink_static` (`xlink_static`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; -- -------------------------------------------------------- diff --git a/install/schema_postgres.sql b/install/schema_postgres.sql index 8539e672d..2fcc7f9ba 100644 --- a/install/schema_postgres.sql +++ b/install/schema_postgres.sql @@ -1145,12 +1145,14 @@ CREATE TABLE "xlink" ( "xlink_rating" bigint NOT NULL DEFAULT '0', "xlink_rating_text" TEXT NOT NULL DEFAULT '', "xlink_updated" timestamp NOT NULL DEFAULT '0001-01-01 00:00:00', + "xlink_static" numeric(1) NOT NULL DEFAULT '0', PRIMARY KEY ("xlink_id") ); create index "xlink_xchan" on xlink ("xlink_xchan"); create index "xlink_link" on xlink ("xlink_link"); create index "xlink_updated" on xlink ("xlink_updated"); create index "xlink_rating" on xlink ("xlink_rating"); +create index "xlink_static" on xlink ("xlink_static"); CREATE TABLE "xperm" ( "xp_id" serial NOT NULL, "xp_client" varchar( 20 ) NOT NULL DEFAULT '', diff --git a/install/update.php b/install/update.php index 8cd25f1bf..346b2c25a 100644 --- a/install/update.php +++ b/install/update.php @@ -1,6 +1,6 @@