mirror of
https://codeberg.org/streams/streams.git
synced 2024-09-19 23:55:19 +00:00
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).
This commit is contained in:
parent
089e915be1
commit
c2f97f7490
6 changed files with 92 additions and 84 deletions
22
include/cli_suggest.php
Normal file
22
include/cli_suggest.php
Normal file
|
@ -0,0 +1,22 @@
|
|||
<?php /** @file */
|
||||
|
||||
require_once('boot.php');
|
||||
require_once('include/cli_startup.php');
|
||||
require_once('include/socgraph.php');
|
||||
|
||||
|
||||
function cli_suggest_run($argv, $argc){
|
||||
|
||||
cli_startup();
|
||||
|
||||
$a = get_app();
|
||||
|
||||
update_suggestions();
|
||||
|
||||
}
|
||||
|
||||
if (array_search(__file__,get_included_files())===0){
|
||||
cli_suggest_run($argv,$argc);
|
||||
killme();
|
||||
}
|
||||
|
|
@ -39,7 +39,7 @@ function directory_run($argv, $argc){
|
|||
$directory = find_upstream_directory($dirmode);
|
||||
|
||||
if($directory) {
|
||||
$url = $directory['url'];
|
||||
$url = $directory['url'] . '/post';
|
||||
}
|
||||
else {
|
||||
$url = DIRECTORY_FALLBACK_MASTER . '/post';
|
||||
|
|
|
@ -82,10 +82,12 @@ function poller_run($argv, $argc){
|
|||
sync_directories($dirmode);
|
||||
}
|
||||
|
||||
// update_suggestions();
|
||||
|
||||
set_config('system','last_expire_day',$d2);
|
||||
proc_run('php','include/expire.php');
|
||||
|
||||
proc_run('php','include/cli_suggest.php');
|
||||
|
||||
}
|
||||
|
||||
// update any photos which didn't get imported properly
|
||||
|
|
|
@ -5,6 +5,12 @@ require_once('include/zot.php');
|
|||
/*
|
||||
* poco_load
|
||||
*
|
||||
* xchan is your connection
|
||||
* We will load their friend list, and store in xlink_xchan your connection hash and xlink_link the hash for each connection
|
||||
* If xchan isn't provided we will load the list of people from url who have indicated they are willing to be friends with
|
||||
* new folks and add them to xlink with no xlink_xchan.
|
||||
*
|
||||
* Old behaviour: (documentation only):
|
||||
* Given a contact-id (minimum), load the PortableContacts friend list for that contact,
|
||||
* and add the entries to the gcontact (Global Contact) table, or update existing entries
|
||||
* if anything (name or photo) has changed.
|
||||
|
@ -19,7 +25,7 @@ require_once('include/zot.php');
|
|||
|
||||
|
||||
|
||||
function poco_load($xchan = null,$url = null) {
|
||||
function poco_load($xchan = '',$url = null) {
|
||||
$a = get_app();
|
||||
|
||||
if($xchan && ! $url) {
|
||||
|
@ -115,27 +121,25 @@ function poco_load($xchan = null,$url = null) {
|
|||
}
|
||||
}
|
||||
|
||||
$r = q("select * from xlink where xlink_xchan = '%s' and xlink_link = '%s' limit 1",
|
||||
dbesc($xchan),
|
||||
dbesc($hash)
|
||||
);
|
||||
|
||||
if($xchan) {
|
||||
$r = q("select * from xlink where xlink_xchan = '%s' and xlink_link = '%s' limit 1",
|
||||
if(! $r) {
|
||||
q("insert into xlink ( xlink_xchan, xlink_link, xlink_rating, xlink_updated ) values ( '%s', '%s', %d, '%s' ) ",
|
||||
dbesc($xchan),
|
||||
dbesc($hash)
|
||||
dbesc($hash),
|
||||
intval($rating),
|
||||
dbesc(datetime_convert())
|
||||
);
|
||||
}
|
||||
else {
|
||||
q("update xlink set xlink_updated = '%s', xlink_rating = %d where xlink_id = %d limit 1",
|
||||
dbesc(datetime_convert()),
|
||||
intval($rating),
|
||||
intval($r[0]['xlink_id'])
|
||||
);
|
||||
if(! $r) {
|
||||
q("insert into xlink ( xlink_xchan, xlink_link, xlink_rating, xlink_updated ) values ( '%s', '%s', %d, '%s' ) ",
|
||||
dbesc($xchan),
|
||||
dbesc($hash),
|
||||
intval($rating),
|
||||
dbesc(datetime_convert())
|
||||
);
|
||||
}
|
||||
else {
|
||||
q("update xlink set xlink_updated = '%s', xlink_rating = %d where xlink_id = %d limit 1",
|
||||
dbesc(datetime_convert()),
|
||||
intval($rating),
|
||||
intval($r[0]['xlink_id'])
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
logger("poco_load: loaded $total entries",LOGGER_DEBUG);
|
||||
|
@ -261,95 +265,75 @@ function suggestion_query($uid, $myxchan, $start = 0, $limit = 80) {
|
|||
|
||||
$r = q("SELECT count(xlink_xchan) as `total`, xchan.* from xchan
|
||||
left join xlink on xlink_link = xchan_hash
|
||||
where not xchan_hash in ( select abook_xchan from abook where abook_channel = %d )
|
||||
and not xchan_hash in ( select xchan from xign where uid = %d )
|
||||
and xchan_hash != '%s'
|
||||
where xlink_xchan in ( select abook_xchan from abook where abook_channel = %d )
|
||||
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 )
|
||||
group by xchan_hash order by total desc limit %d, %d ",
|
||||
intval($uid),
|
||||
intval($uid),
|
||||
dbesc($myxchan),
|
||||
intval($uid),
|
||||
intval(XCHAN_FLAGS_HIDDEN),
|
||||
intval($start),
|
||||
intval($limit)
|
||||
);
|
||||
|
||||
|
||||
/*
|
||||
$r = q("SELECT count(xlink.xchan) as `total`, gcontact.* from gcontact
|
||||
left join glink on glink.gcid = gcontact.id
|
||||
where uid = %d 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 )
|
||||
group by glink.gcid order by total desc limit %d, %d ",
|
||||
intval($uid),
|
||||
intval($uid),
|
||||
intval($uid),
|
||||
intval($uid),
|
||||
intval($start),
|
||||
intval($limit)
|
||||
);
|
||||
*/
|
||||
|
||||
if($r)
|
||||
if($r && count($r) >= ($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();
|
||||
$dirmode = get_config('system','directory_mode');
|
||||
if($dirmode === false)
|
||||
$dirmode = DIRECTORY_MODE_NORMAL;
|
||||
|
||||
// fix this to get a json list from an upstream directory
|
||||
// poco_load(0,0,0,$a->get_baseurl() . '/poco');
|
||||
if(($dirmode == DIRECTORY_MODE_PRIMARY) || ($dirmode == DIRECTORY_MODE_STANDALONE)) {
|
||||
$url = z_root() . '/sitelist';
|
||||
}
|
||||
else {
|
||||
$directory = find_upstream_directory($dirmode);
|
||||
|
||||
// $done[] = $a->get_baseurl() . '/poco';
|
||||
if($directory) {
|
||||
$url = $directory['url'] . '/sitelist';
|
||||
}
|
||||
else {
|
||||
$url = DIRECTORY_FALLBACK_MASTER . '/sitelist';
|
||||
}
|
||||
}
|
||||
if(! $url)
|
||||
return;
|
||||
|
||||
// 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');
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
$ret = z_fetch_url($url);
|
||||
|
||||
$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);
|
||||
if($ret['success']) {
|
||||
$j = json_decode($ret['body'],true);
|
||||
if($j && $j['success']) {
|
||||
foreach($j['entries'] as $host) {
|
||||
poco_load('',$host . '/poco');
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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';
|
||||
|
|
|
@ -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';
|
||||
|
|
Loading…
Reference in a new issue