add rating support to poco

This commit is contained in:
friendica 2013-02-15 22:34:01 -08:00
parent ace1104d08
commit e754845c80
5 changed files with 29 additions and 13 deletions

View File

@ -16,7 +16,7 @@ require_once('include/features.php');
define ( 'FRIENDICA_PLATFORM', 'Friendica Red');
define ( 'FRIENDICA_VERSION', trim(file_get_contents('version.inc')) . 'R');
define ( 'ZOT_REVISION', 1 );
define ( 'DB_UPDATE_VERSION', 1028 );
define ( 'DB_UPDATE_VERSION', 1029 );
define ( 'EOL', '<br />' . "\r\n" );
define ( 'ATOM_TIME', 'Y-m-d\TH:i:s\Z' );

View File

@ -37,13 +37,12 @@ function poco_load($xchan = null,$url = null) {
}
$url = $url . '?f=&fields=displayName,hash,urls,photos' ;
$url = $url . '?f=&fields=displayName,hash,urls,photos,rating' ;
logger('poco_load: ' . $url, LOGGER_DEBUG);
$s = z_fetch_url($url);
if(! $s['success']) {
logger('poco_load: returns ' . print_r($s,true));
return;
@ -67,9 +66,11 @@ function poco_load($xchan = null,$url = null) {
$address = '';
$name = '';
$hash = '';
$rating = 0;
$name = $entry['displayName'];
$hash = $entry['hash'];
$name = $entry['displayName'];
$hash = $entry['hash'];
$rating = ((array_key_exists('rating',$entry)) ? intval($entry['rating']) : 0);
if(x($entry,'urls') && is_array($entry['urls'])) {
foreach($entry['urls'] as $url) {
@ -121,15 +122,17 @@ function poco_load($xchan = null,$url = null) {
dbesc($hash)
);
if(! $r) {
q("insert into xlink ( xlink_xchan, xlink_link, xlink_updated ) values ( '%s', '%s', '%s' ) ",
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' where xlink_id = %d limit 1",
q("update xlink set xlink_updated = '%s', rating = %d where xlink_id = %d limit 1",
dbesc(datetime_convert()),
intval($rating),
intval($r[0]['xlink_id'])
);
}

View File

@ -892,11 +892,13 @@ CREATE TABLE IF NOT EXISTS `xlink` (
`xlink_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`xlink_xchan` char(255) NOT NULL DEFAULT '',
`xlink_link` char(255) NOT NULL DEFAULT '',
`xlink_rating` int(11) NOT NULL DEFAULT '0',
`xlink_updated` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
PRIMARY KEY (`xlink_id`),
KEY `xlink_xchan` (`xlink_xchan`),
KEY `xlink_link` (`xlink_link`),
KEY `xlink_updated` (`xlink_updated`)
KEY `xlink_updated` (`xlink_updated`),
KEY `xlink_rating` (`xlink_rating`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
CREATE TABLE IF NOT EXISTS `xprof` (

View File

@ -1,6 +1,6 @@
<?php
define( 'UPDATE_VERSION' , 1028 );
define( 'UPDATE_VERSION' , 1029 );
/**
*
@ -350,3 +350,10 @@ ADD INDEX ( `abook_rating` )");
return UPDATE_FAILED;
}
function update_r1028() {
$r = q"ALTER TABLE `xlink` ADD `xlink_rating` INT NOT NULL DEFAULT '0' AFTER `xlink_link` ,
ADD INDEX ( `xlink_rating` ) ");
if($r)
return UPDATE_SUCCESS;
return UPDATE_FAILED;
}

View File

@ -126,10 +126,8 @@ function poco_init(&$a) {
'displayName' => false,
'urls' => false,
'preferredUsername' => false,
'photos' => false
'photos' => false,
'rating' => false
);
if((! x($_GET,'fields')) || ($_GET['fields'] === '@all'))
@ -165,6 +163,12 @@ function poco_init(&$a) {
$entry['preferredUsername'] = substr($rr['xchan_addr'],0,strpos($rr['xchan_addr'],'@'));
if($fields_ret['photos'])
$entry['photos'] = array(array('value' => $rr['xchan_photo_l'], 'mimetype' => $rr['xchan_photo_mimetype'], 'type' => 'profile'));
if($fields_ret['rating']) {
$entry['rating'] = ((array_key_exists('abook_rating',$rr)) ? array(intval($rr['abook_rating'])) : 0);
// maybe this should be a composite calculated rating in $system_mode
if($system_mode)
$entry['rating'] = 0;
}
$ret['entry'][] = $entry;
}
}