From c2f97f7490cd96e92432ca6c397dce2f6ab80eaa Mon Sep 17 00:00:00 2001 From: friendica Date: Mon, 5 Aug 2013 20:08:35 -0700 Subject: populate initial suggestions (ultimately we want to do this at install time as well as from the poller so that new sites have friend suggestions when they create their first channel). --- include/cli_suggest.php | 22 +++++++ include/directory.php | 2 +- include/poller.php | 4 +- include/socgraph.php | 152 ++++++++++++++++++++++-------------------------- mod/acl.php | 2 +- mod/directory.php | 2 +- 6 files changed, 96 insertions(+), 88 deletions(-) create mode 100644 include/cli_suggest.php diff --git a/include/cli_suggest.php b/include/cli_suggest.php new file mode 100644 index 000000000..321ffd2e0 --- /dev/null +++ b/include/cli_suggest.php @@ -0,0 +1,22 @@ += ($limit -1)) return $r; -/* - if(count($r) && count($r) >= ($limit -1)) - return $r; - - $r2 = q("SELECT gcontact.* from gcontact - left join glink on glink.gcid = gcontact.id - where glink.uid = 0 and glink.cid = 0 and glink.zcid = 0 and not gcontact.nurl in ( select nurl from contact where uid = %d ) - and not gcontact.name in ( select name from contact where uid = %d ) - and not gcontact.id in ( select gcid from gcign where uid = %d ) - order by rand() limit %d, %d ", - intval($uid), + $r2 = q("SELECT count(xlink_link) as `total`, xchan.* from xchan + left join xlink on xlink_link = xchan_hash + 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 ) + group by xchan_hash order by total desc limit %d, %d ", intval($uid), intval($uid), + intval(XCHAN_FLAGS_HIDDEN), intval($start), intval($limit) ); + if(is_array($r) && is_array($r2)) + return array_merge($r,$r2); - return array_merge($r,$r2); -*/ + return array(); } function update_suggestions() { -// FIXME -return; $a = get_app(); - $done = array(); - - // fix this to get a json list from an upstream directory -// poco_load(0,0,0,$a->get_baseurl() . '/poco'); - -// $done[] = $a->get_baseurl() . '/poco'; - -// if(strlen(get_config('system','directory_submit_url'))) { -// $x = fetch_url('http://dir.friendica.com/pubsites'); -// if($x) { -// $j = json_decode($x); -// if($j->entries) { -// foreach($j->entries as $entry) { -// $url = $entry->url . '/poco'; -// if(! in_array($url,$done)) -// poco_load(0,0,0,$entry->url . '/poco'); -// } -// } -// } -// } - - $r = q("select distinct(xchan_connurl) as poco from xchan where xchan_network = 'zot'"); - - if($r) { - foreach($r as $rr) { - $base = substr($rr['poco'],0,strrpos($rr['poco'],'/')); - if(! in_array($base,$done)) - poco_load('',$base); + $dirmode = get_config('system','directory_mode'); + if($dirmode === false) + $dirmode = DIRECTORY_MODE_NORMAL; + + if(($dirmode == DIRECTORY_MODE_PRIMARY) || ($dirmode == DIRECTORY_MODE_STANDALONE)) { + $url = z_root() . '/sitelist'; + } + else { + $directory = find_upstream_directory($dirmode); + + if($directory) { + $url = $directory['url'] . '/sitelist'; + } + else { + $url = DIRECTORY_FALLBACK_MASTER . '/sitelist'; + } + } + if(! $url) + return; + + $ret = z_fetch_url($url); + + if($ret['success']) { + $j = json_decode($ret['body'],true); + if($j && $j['success']) { + foreach($j['entries'] as $host) { + poco_load('',$host . '/poco'); + } } } } diff --git a/mod/acl.php b/mod/acl.php index 48bc1f5fd..143b8098e 100644 --- a/mod/acl.php +++ b/mod/acl.php @@ -258,7 +258,7 @@ function navbar_complete(&$a) { $directory = find_upstream_directory($dirmode); if($directory) { - $url = $directory['url']; + $url = $directory['url'] . '/dirsearch'; } else { $url = DIRECTORY_FALLBACK_MASTER . '/dirsearch'; diff --git a/mod/directory.php b/mod/directory.php index 1b7bc3e4f..b7cdaffe7 100644 --- a/mod/directory.php +++ b/mod/directory.php @@ -45,7 +45,7 @@ function directory_content(&$a) { $directory = find_upstream_directory($dirmode); if($directory) { - $url = $directory['url']; + $url = $directory['url'] . '/dirsearch'; } else { $url = DIRECTORY_FALLBACK_MASTER . '/dirsearch'; -- cgit v1.2.3