@ -52,7 +52,7 @@ function poco_load($cid,$uid = 0,$zcid = 0,$url = null) {
if ( ! $url )
return ;
$url = $url . (( $uid ) ? '/@me/@all?fields=displayName,urls,photos,updated,network,aboutMe,currentLocation,tags,gender,generation' : '?fields=displayName,urls,photos,updated,network,aboutMe,currentLocation,tags,gender,generation' ) ;
$url = $url . (( $uid ) ? '/@me/@all?fields=displayName,urls,photos,updated,network,aboutMe,currentLocation,tags,gender,contactType, generation' : '?fields=displayName,urls,photos,updated,network,aboutMe,currentLocation,tags,gender,contactType ,generation' ) ;
logger ( 'poco_load: ' . $url , LOGGER_DEBUG );
@ -86,6 +86,7 @@ function poco_load($cid,$uid = 0,$zcid = 0,$url = null) {
$about = '' ;
$keywords = '' ;
$gender = '' ;
$contact_type = - 1 ;
$generation = 0 ;
$name = $entry -> displayName ;
@ -133,6 +134,9 @@ function poco_load($cid,$uid = 0,$zcid = 0,$url = null) {
foreach ( $entry -> tags as $tag )
$keywords = implode ( " , " , $tag );
if ( isset ( $entry -> contactType ) AND ( $entry -> contactType >= 0 ))
$contact_type = $entry -> contactType ;
// If you query a Friendica server for its profiles, the network has to be Friendica
/// TODO It could also be a Redmatrix server
//if ($uid == 0)
@ -140,6 +144,9 @@ function poco_load($cid,$uid = 0,$zcid = 0,$url = null) {
poco_check ( $profile_url , $name , $network , $profile_photo , $about , $location , $gender , $keywords , $connect_url , $updated , $generation , $cid , $uid , $zcid );
$gcontact = array ( " url " => $profile_url , " contact-type " => $contact_type , " generation " => $generation );
update_gcontact ( $gcontact );
// Update the Friendica contacts. Diaspora is doing it via a message. (See include/diaspora.php)
// Deactivated because we now update Friendica contacts in dfrn.php
//if (($location != "") OR ($about != "") OR ($keywords != "") OR ($gender != ""))
@ -1236,7 +1243,7 @@ function poco_discover($complete = false) {
}
// Fetch all users from the other server
$url = $server [ " poco " ] . " /?fields=displayName,urls,photos,updated,network,aboutMe,currentLocation,tags,gender,generation " ;
$url = $server [ " poco " ] . " /?fields=displayName,urls,photos,updated,network,aboutMe,currentLocation,tags,gender,contactType, generation " ;
logger ( " Fetch all users from the server " . $server [ " nurl " ], LOGGER_DEBUG );
@ -1255,7 +1262,7 @@ function poco_discover($complete = false) {
$updatedSince = date ( " Y-m-d H:i:s " , time () - $timeframe * 86400 );
// Fetch all global contacts from the other server (Not working with Redmatrix and Friendica versions before 3.3)
$url = $server [ " poco " ] . " /@global?updatedSince= " . $updatedSince . " &fields=displayName,urls,photos,updated,network,aboutMe,currentLocation,tags,gender,generation " ;
$url = $server [ " poco " ] . " /@global?updatedSince= " . $updatedSince . " &fields=displayName,urls,photos,updated,network,aboutMe,currentLocation,tags,gender,contactType, generation " ;
$success = false ;
@ -1303,7 +1310,7 @@ function poco_discover_server_users($data, $server) {
logger ( " Fetch contacts for the user " . $username . " from the server " . $server [ " nurl " ], LOGGER_DEBUG );
// Fetch all contacts from a given user from the other server
$url = $server [ " poco " ] . " / " . $username . " /?fields=displayName,urls,photos,updated,network,aboutMe,currentLocation,tags,gender,generation " ;
$url = $server [ " poco " ] . " / " . $username . " /?fields=displayName,urls,photos,updated,network,aboutMe,currentLocation,tags,gender,contactType, generation " ;
$retdata = z_fetch_url ( $url );
if ( $retdata [ " success " ])
@ -1330,6 +1337,7 @@ function poco_discover_server($data, $default_generation = 0) {
$about = '' ;
$keywords = '' ;
$gender = '' ;
$contact_type = - 1 ;
$generation = $default_generation ;
$name = $entry -> displayName ;
@ -1374,6 +1382,9 @@ function poco_discover_server($data, $default_generation = 0) {
if ( isset ( $entry -> generation ) AND ( $entry -> generation > 0 ))
$generation = ++ $entry -> generation ;
if ( isset ( $entry -> contactType ) AND ( $entry -> contactType >= 0 ))
$contact_type = $entry -> contactType ;
if ( isset ( $entry -> tags ))
foreach ( $entry -> tags as $tag )
$keywords = implode ( " , " , $tag );
@ -1383,6 +1394,10 @@ function poco_discover_server($data, $default_generation = 0) {
logger ( " Store profile " . $profile_url , LOGGER_DEBUG );
poco_check ( $profile_url , $name , $network , $profile_photo , $about , $location , $gender , $keywords , $connect_url , $updated , $generation , 0 , 0 , 0 );
$gcontact = array ( " url " => $profile_url , " contact-type " => $contact_type , " generation " => $generation );
update_gcontact ( $gcontact );
logger ( " Done for profile " . $profile_url , LOGGER_DEBUG );
}
}
@ -1534,7 +1549,7 @@ function update_gcontact($contact) {
return false ;
$r = q ( " SELECT `name`, `nick`, `photo`, `location`, `about`, `addr`, `generation`, `birthday`, `gender`, `keywords`,
`hide` , `nsfw` , `network` , `alias` , `notify` , `server_url` , `connect` , `updated` , `url`
`contact-type` , ` hide` , `nsfw` , `network` , `alias` , `notify` , `server_url` , `connect` , `updated` , `url`
FROM `gcontact` WHERE `id` = % d LIMIT 1 " ,
intval ( $gcontact_id ));
@ -1614,20 +1629,20 @@ function update_gcontact($contact) {
}
if ( $update ) {
logger ( " Update gcontact for " . $contact [ " url " ] . " Callstack: " . App :: callstack () , LOGGER_DEBUG );
logger ( " Update gcontact for " . $contact [ " url " ], LOGGER_DEBUG );
q ( " UPDATE `gcontact` SET `photo` = '%s', `name` = '%s', `nick` = '%s', `addr` = '%s', `network` = '%s',
`birthday` = '%s' , `gender` = '%s' , `keywords` = '%s' , `hide` = % d , `nsfw` = % d ,
`alias` = '%s' , `notify` = '%s' , `url` = '%s' ,
`contact-type` = % d , ` alias` = '%s' , `notify` = '%s' , `url` = '%s' ,
`location` = '%s' , `about` = '%s' , `generation` = % d , `updated` = '%s' ,
`server_url` = '%s' , `connect` = '%s'
WHERE `nurl` = '%s' AND ( `generation` = 0 OR `generation` >= % d ) " ,
dbesc ( $contact [ " photo " ]), dbesc ( $contact [ " name " ]), dbesc ( $contact [ " nick " ]),
dbesc ( $contact [ " addr " ]), dbesc ( $contact [ " network " ]), dbesc ( $contact [ " birthday " ]),
dbesc ( $contact [ " gender " ]), dbesc ( $contact [ " keywords " ]), intval ( $contact [ " hide " ]),
intval ( $contact [ " nsfw " ]), dbesc ( $contact [ " alias " ]), dbesc ( $contact [ " notify " ]),
dbesc ( $contact [ " url " ]), dbesc ( $contact [ " location " ]), dbesc ( $contact [ " about " ]),
intval ( $contact [ " generation " ]), dbesc ( $contact [ " updated " ]),
intval ( $contact [ " nsfw " ]), intval ( $contact [ " contact-type " ]), dbesc ( $contact [ " alias " ]),
dbesc ( $contact [ " notify " ]), dbesc ( $contact [ " url" ]), dbesc ( $contact [ " location " ]),
dbesc ( $contact [ " about " ]), intval ( $contact [ " generation " ]), dbesc ( $contact [ " updated " ]),
dbesc ( $contact [ " server_url " ]), dbesc ( $contact [ " connect " ]),
dbesc ( normalise_link ( $contact [ " url " ])), intval ( $contact [ " generation " ]));
@ -1644,13 +1659,14 @@ function update_gcontact($contact) {
q ( " UPDATE `contact` SET `name` = '%s', `nick` = '%s', `addr` = '%s',
`network` = '%s' , `bd` = '%s' , `gender` = '%s' ,
`keywords` = '%s' , `alias` = '%s' , `url` = '%s' ,
`location` = '%s' , `about` = '%s'
`keywords` = '%s' , `alias` = '%s' , `contact-type` = % d ,
`url` = '%s' , ` location` = '%s' , `about` = '%s'
WHERE `id` = % d " ,
dbesc ( $contact [ " name " ]), dbesc ( $contact [ " nick " ]), dbesc ( $contact [ " addr " ]),
dbesc ( $contact [ " network " ]), dbesc ( $contact [ " birthday " ]), dbesc ( $contact [ " gender " ]),
dbesc ( $contact [ " keywords " ]), dbesc ( $contact [ " alias " ]), dbesc ( $contact [ " url " ]),
dbesc ( $contact [ " location " ]), dbesc ( $contact [ " about " ]), intval ( $r [ 0 ][ " id " ]));
dbesc ( $contact [ " keywords " ]), dbesc ( $contact [ " alias " ]), intval ( $contact [ " contact-type " ]),
dbesc ( $contact [ " url " ]), dbesc ( $contact [ " location " ]), dbesc ( $contact [ " about " ]),
intval ( $r [ 0 ][ " id " ]));
}
}