run ratingsearch on the server

This commit is contained in:
friendica 2015-02-03 15:06:16 -08:00
parent 448af7458f
commit df632c4232
5 changed files with 88 additions and 36 deletions

View File

@ -1,7 +1,14 @@
<?php
require_once('include/dir_fns.php');
function prep_init(&$a) {
function ratings_init(&$a) {
$dirmode = intval(get_config('system','directory_mode'));
$x = find_upstream_directory($dirmode);
if($x)
$url = $x['url'];
$poco_rating = get_config('system','poco_rating_enable');
// if unset default to enabled
@ -19,29 +26,36 @@ function prep_init(&$a) {
return;
}
if(strpos($hash,'@')) {
$r = q("select * from hubloc where hubloc_addr = '%s' limit 1",
dbesc($hash)
);
if($r)
$hash = $r[0]['hubloc_hash'];
$results = false;
$x = z_fetch_url($url . '/ratingsearch/' . $hash);
if($x['success'])
$results = json_decode($x['body'],true);
if((! $results) || (! $results['success'])) {
notice('No results.');
return;
}
$p = q("select * from xchan where xchan_hash like '%s'",
dbesc($hash . '%')
);
$a->poi = $results['target'];
$a->data = $results['ratings'];
if($p)
$a->poi = $p[0];
if(! $a->data) {
notice( t('No ratings') . EOL);
}
return;
}
function prep_content(&$a) {
function ratings_content(&$a) {
$poco_rating = get_config('system','poco_rating_enable');
// if unset default to enabled
@ -51,22 +65,11 @@ function prep_content(&$a) {
if(! $poco_rating)
return;
if(! $a->poi)
return;
$r = q("select * from xlink left join xchan on xlink_xchan = xchan_hash where xlink_link like '%s' and xlink_rating != 0 and xlink_static = 1",
dbesc(($a->poi) ? $a->poi['xchan_hash'] : argv(1))
);
if(! $r)
notice( t('No ratings available') . EOL);
$o = replace_macros(get_markup_template('prep.tpl'),array(
'$header' => t('Ratings'),
'$rating_lbl' => t('Rating: ' ),
'$rating_text_lbl' => t('Description: '),
'$raters' => $r
'$raters' => $a->data
));
return $o;

58
mod/ratingsearch.php Normal file
View File

@ -0,0 +1,58 @@
<?php
function ratingsearch_init(&$a) {
$ret = array('success' => false);
$dirmode = intval(get_config('system','directory_mode'));
if($dirmode == DIRECTORY_MODE_NORMAL) {
$ret['message'] = 'This site is not a directory server.';
json_return_and_die($ret);
}
if(argc() > 1)
$hash = argv(1);
if(! $hash) {
$ret['message'] = 'No channel identifier';
json_return_and_die($ret);
}
if(strpos($hash,'@')) {
$r = q("select * from hubloc where hubloc_addr = '%s' limit 1",
dbesc($hash)
);
if($r)
$hash = $r[0]['hubloc_hash'];
}
$p = q("select * from xchan where xchan_hash like '%s'",
dbesc($hash . '%')
);
if($p)
$ret['target'] = $p[0];
else {
$ret['message'] = 'channel not found';
json_return_and_die($ret);
}
$ret['success'] = true;
$r = q("select * from xlink left join xchan on xlink_xchan = xchan_hash
where xlink_link = '%s' and xlink_rating != 0 and xlink_static = 1",
dbesc($p[0]['xchan_hash'])
);
if($r) {
$ret['ratings'] = $r;
}
else
$ret['ratings'] = array();
json_return_and_die($ret);
}

View File

@ -5,16 +5,7 @@
{{if $mode != 'mail'}}
<div id="profile-extra-links">
<ul>
{{if $connect}}
<li><a id="follow-link" href="follow?f=&url={{$follow}}">{{$connect}}</a></li>
<a href="follow?f=&url={{$follow}}" class="rconnect"><i class="icon-plus connect-icon"></i> {{$connect}}</a>
{{/if}}
{{if $newwin}}
<li><a id="visit-chan-link" href="{{$url}}" title="{{$newtit}}" target="_blank" >{{$newwin}}</a></li>
{{/if}}
</ul>
</div>
{{/if}}