Merge pull request #744 from annando/master

- More visible reshares
- lockfile for onepoll.php
- clear old smarty3 cache files
- rework tag serarch
- add more logs for diaspora messages
This commit is contained in:
fabrixxm 2013-08-06 09:50:51 -07:00
commit 7e61c23994
10 changed files with 130 additions and 13 deletions

View file

@ -262,9 +262,9 @@ function bb_ShareAttributes($match) {
preg_match('/posted="(.*?)"/ism', $attributes, $matches); preg_match('/posted="(.*?)"/ism', $attributes, $matches);
if ($matches[1] != "") if ($matches[1] != "")
$posted = $matches[1]; $posted = $matches[1];
$reldate = (($posted) ? " " . relative_date($posted) : ''); $reldate = (($posted) ? " " . relative_date($posted) : '');
$headline = '<div class="shared_header">'; $headline = '<br /><div class="shared_header">';
if ($avatar != "") if ($avatar != "")
$headline .= '<img src="'.$avatar.'" height="32" width="32" >'; $headline .= '<img src="'.$avatar.'" height="32" width="32" >';
@ -300,10 +300,63 @@ function bb_ShareAttributesSimple($match) {
if ($matches[1] != "") if ($matches[1] != "")
$profile = $matches[1]; $profile = $matches[1];
$text = "<br />".html_entity_decode("&#x2672; ", ENT_QUOTES, 'UTF-8').' <a href="'.$profile.'">'.$author."</a>: <br />»".$match[2]."«"; $userid = GetProfileUsername($profile,$author);
$text = "<br />".html_entity_decode("&#x2672; ", ENT_QUOTES, 'UTF-8').' <a href="'.$profile.'">'.$userid."</a>: <br />»".$match[2]."«";
return($text); return($text);
} }
function bb_ShareAttributesSimple2($match) {
$attributes = $match[1];
$author = "";
preg_match("/author='(.*?)'/ism", $attributes, $matches);
if ($matches[1] != "")
$author = html_entity_decode($matches[1],ENT_QUOTES,'UTF-8');
preg_match('/author="(.*?)"/ism', $attributes, $matches);
if ($matches[1] != "")
$author = $matches[1];
$profile = "";
preg_match("/profile='(.*?)'/ism", $attributes, $matches);
if ($matches[1] != "")
$profile = $matches[1];
preg_match('/profile="(.*?)"/ism', $attributes, $matches);
if ($matches[1] != "")
$profile = $matches[1];
$userid = GetProfileUsername($profile,$author);
$text = "<br />".html_entity_decode("&#x2672; ", ENT_QUOTES, 'UTF-8').' <a href="'.$profile.'">'.$userid."</a>: <br />".$match[2];
return($text);
}
function GetProfileUsername($profile, $username) {
$friendica = preg_replace("=https?://(.*)/profile/(.*)=ism", "$2@$1", $profile);
if ($friendica != $profile)
return($friendica);
$diaspora = preg_replace("=https?://(.*)/u/(.*)=ism", "$2@$1", $profile);
if ($diaspora != $profile)
return($diaspora);
$StatusnetHost = preg_replace("=https?://(.*)/user/(.*)=ism", "$1", $profile);
if ($StatusnetHost != $profile) {
$StatusnetUser = preg_replace("=https?://(.*)/user/(.*)=ism", "$2", $profile);
if ($StatusnetUser != $profile) {
$UserData = fetch_url("http://".$StatusnetHost."/api/users/show.json?user_id=".$StatusnetUser);
$user = json_decode($UserData);
if ($user)
return($user->screen_name."@".$StatusnetHost);
}
}
return($username);
}
// BBcode 2 HTML was written by WAY2WEB.net // BBcode 2 HTML was written by WAY2WEB.net
// extended to work with Mistpark/Friendica - Mike Macgirvin // extended to work with Mistpark/Friendica - Mike Macgirvin
@ -553,8 +606,10 @@ function bbcode($Text,$preserve_nl = false, $tryoembed = true, $simplehtml = fal
// Shared content // Shared content
if (!$simplehtml) if (!$simplehtml)
$Text = preg_replace_callback("/\[share(.*?)\](.*?)\[\/share\]/ism","bb_ShareAttributes",$Text); $Text = preg_replace_callback("/\[share(.*?)\](.*?)\[\/share\]/ism","bb_ShareAttributes",$Text);
else elseif ($simplehtml == 1)
$Text = preg_replace_callback("/\[share(.*?)\](.*?)\[\/share\]/ism","bb_ShareAttributesSimple",$Text); $Text = preg_replace_callback("/\[share(.*?)\](.*?)\[\/share\]/ism","bb_ShareAttributesSimple",$Text);
elseif ($simplehtml == 2)
$Text = preg_replace_callback("/\[share(.*?)\](.*?)\[\/share\]/ism","bb_ShareAttributesSimple2",$Text);
$Text = preg_replace("/\[crypt\](.*?)\[\/crypt\]/ism",'<br/><img src="' .$a->get_baseurl() . '/images/lock_icon.gif" alt="' . t('Encrypted content') . '" title="' . t('Encrypted content') . '" /><br />', $Text); $Text = preg_replace("/\[crypt\](.*?)\[\/crypt\]/ism",'<br/><img src="' .$a->get_baseurl() . '/images/lock_icon.gif" alt="' . t('Encrypted content') . '" title="' . t('Encrypted content') . '" /><br />', $Text);
$Text = preg_replace("/\[crypt=(.*?)\](.*?)\[\/crypt\]/ism",'<br/><img src="' .$a->get_baseurl() . '/images/lock_icon.gif" alt="' . t('Encrypted content') . '" title="' . '$1' . ' ' . t('Encrypted content') . '" /><br />', $Text); $Text = preg_replace("/\[crypt=(.*?)\](.*?)\[\/crypt\]/ism",'<br/><img src="' .$a->get_baseurl() . '/images/lock_icon.gif" alt="' . t('Encrypted content') . '" title="' . '$1' . ' ' . t('Encrypted content') . '" /><br />', $Text);

View file

@ -62,6 +62,15 @@ function get_config($family, $key, $instore = false) {
return $a->config[$family][$key]; return $a->config[$family][$key];
} }
} }
// If APC is enabled then fetch the data from there
if (function_exists("apc_fetch") AND function_exists("apc_exists"))
if (apc_exists($family."|".$key)) {
$val = apc_fetch($family."|".$key);
$a->config[$family][$key] = $val;
return $val;
}
$ret = q("SELECT `v` FROM `config` WHERE `cat` = '%s' AND `k` = '%s' LIMIT 1", $ret = q("SELECT `v` FROM `config` WHERE `cat` = '%s' AND `k` = '%s' LIMIT 1",
dbesc($family), dbesc($family),
dbesc($key) dbesc($key)
@ -117,6 +126,10 @@ function set_config($family,$key,$value) {
$a->config[$family][$key] = $value; $a->config[$family][$key] = $value;
// If APC is enabled then store the data there
if (function_exists("apc_store"))
apc_store($family."|".$key, $value, 600);
if($ret) if($ret)
return $value; return $value;
return $ret; return $ret;
@ -164,6 +177,14 @@ function get_pconfig($uid,$family, $key, $instore = false) {
} }
} }
// If APC is enabled then fetch the data from there
if (function_exists("apc_fetch") AND function_exists("apc_exists"))
if (apc_exists($uid."|".$family."|".$key)) {
$val = apc_fetch($uid."|".$family."|".$key);
$a->config[$uid][$family][$key] = $val;
return $val;
}
$ret = q("SELECT `v` FROM `pconfig` WHERE `uid` = %d AND `cat` = '%s' AND `k` = '%s' LIMIT 1", $ret = q("SELECT `v` FROM `pconfig` WHERE `uid` = %d AND `cat` = '%s' AND `k` = '%s' LIMIT 1",
intval($uid), intval($uid),
dbesc($family), dbesc($family),
@ -191,6 +212,10 @@ function del_config($family,$key) {
dbesc($family), dbesc($family),
dbesc($key) dbesc($key)
); );
// If APC is enabled then store the data there
if (function_exists("apc_delete"))
apc_delete($family."|".$key);
return $ret; return $ret;
}} }}
@ -228,6 +253,11 @@ function set_pconfig($uid,$family,$key,$value) {
$a->config[$uid][$family][$key] = $value; $a->config[$uid][$family][$key] = $value;
// If APC is enabled then store the data there
if (function_exists("apc_store"))
apc_store($uid."|".$family."|".$key, $value, 600);
if($ret) if($ret)
return $value; return $value;
return $ret; return $ret;

View file

@ -220,6 +220,9 @@ function html2plain($html, $wraplength = 75, $compact = false)
//$message .= "\n[".($counter++)."] ".$url; //$message .= "\n[".($counter++)."] ".$url;
} }
$message = str_replace("\n«", "«\n", $message);
$message = str_replace("»\n", "\n»", $message);
do { do {
$oldmessage = $message; $oldmessage = $message;
$message = str_replace("\n\n\n", "\n\n", $message); $message = str_replace("\n\n\n", "\n\n", $message);

View file

@ -42,7 +42,7 @@ function onepoll_run(&$argv, &$argc){
load_hooks(); load_hooks();
logger('onepoll: start'); logger('onepoll: start');
$manual_id = 0; $manual_id = 0;
$generation = 0; $generation = 0;
$hub_update = false; $hub_update = false;
@ -56,7 +56,17 @@ function onepoll_run(&$argv, &$argc){
logger('onepoll: no contact'); logger('onepoll: no contact');
return; return;
} }
// Test
$lockpath = get_config('system','lockpath');
if ($lockpath != '') {
$pidfile = new pidfile($lockpath, 'onepoll'.$contact_id.'.lck');
if($pidfile->is_already_running()) {
logger("onepoll: Already running for contact ".$contact_id);
exit;
}
}
$d = datetime_convert(); $d = datetime_convert();

View file

@ -122,6 +122,9 @@ function poller_run(&$argv, &$argc){
// clear cache for photos // clear cache for photos
clear_cache($a->get_basepath(), $a->get_basepath()."/photo"); clear_cache($a->get_basepath(), $a->get_basepath()."/photo");
// clear smarty cache
clear_cache($a->get_basepath()."/view/smarty3/compiled", $a->get_basepath()."/view/smarty3/compiled");
set_config('system','cache_last_cleared', time()); set_config('system','cache_last_cleared', time());
} }

View file

@ -423,8 +423,11 @@ class OAuthRequest {
/** /**
* builds the data one would send in a POST request * builds the data one would send in a POST request
*/ */
public function to_postdata() { public function to_postdata($raw = false) {
return OAuthUtil::build_http_query($this->parameters); if ($raw)
return($this->parameters);
else
return OAuthUtil::build_http_query($this->parameters);
} }
/** /**

View file

@ -184,6 +184,8 @@ class TwitterOAuth {
switch ($method) { switch ($method) {
case 'GET': case 'GET':
return $this->http($request->to_url(), 'GET'); return $this->http($request->to_url(), 'GET');
case 'UPLOAD':
return $this->http($request->get_normalized_http_url(), 'POST', $request->to_postdata(true));
default: default:
return $this->http($request->get_normalized_http_url(), $method, $request->to_postdata()); return $this->http($request->get_normalized_http_url(), $method, $request->to_postdata());
} }

View file

@ -84,6 +84,8 @@ function community_content(&$a, $update = 0) {
); );
// group by `item`.`uri` // group by `item`.`uri`
// AND `item`.`private` = 0 AND `item`.`wall` = 1 AND `item`.`id` = `item`.`parent`
// AND `contact`.`blocked` = 0 AND `contact`.`pending` = 0 AND `contact`.`self`
if(! count($r)) { if(! count($r)) {
info( t('No results.') . EOL); info( t('No results.') . EOL);

View file

@ -42,6 +42,8 @@ function receive_post(&$a) {
// It is an application/x-www-form-urlencoded // It is an application/x-www-form-urlencoded
logger('mod-diaspora: receiving post', LOGGER_DEBUG);
$xml = urldecode($_POST['xml']); $xml = urldecode($_POST['xml']);
logger('mod-diaspora: new salmon ' . $xml, LOGGER_DATA); logger('mod-diaspora: new salmon ' . $xml, LOGGER_DATA);
@ -49,13 +51,19 @@ function receive_post(&$a) {
if(! $xml) if(! $xml)
http_status_exit(500); http_status_exit(500);
logger('mod-diaspora: message is okay', LOGGER_DEBUG);
$msg = diaspora_decode($importer,$xml); $msg = diaspora_decode($importer,$xml);
logger('mod-diaspora: decoded', LOGGER_DEBUG);
logger('mod-diaspora: decoded msg: ' . print_r($msg,true), LOGGER_DATA); logger('mod-diaspora: decoded msg: ' . print_r($msg,true), LOGGER_DATA);
if(! is_array($msg)) if(! is_array($msg))
http_status_exit(500); http_status_exit(500);
logger('mod-diaspora: dispatching', LOGGER_DEBUG);
$ret = 0; $ret = 0;
if($public) if($public)
diaspora_dispatch_public($msg); diaspora_dispatch_public($msg);

View file

@ -141,12 +141,13 @@ function search_content(&$a) {
if($tag) { if($tag) {
//$sql_extra = sprintf(" AND `term`.`term` = '%s' AND `term`.`otype` = %d AND `term`.`type` = %d", //$sql_extra = sprintf(" AND `term`.`term` = '%s' AND `term`.`otype` = %d AND `term`.`type` = %d",
// dbesc(protect_sprintf($search)), intval(TERM_OBJ_POST), intval(TERM_HASHTAG)); $sql_extra = sprintf(" AND `term`.`term` = '%s' AND `term`.`otype` = %d AND `term`.`type` = %d group by `item`.`uri` ",
//$sql_table = "`term` LEFT JOIN `item` ON `item`.`id` = `term`.`oid` AND `item`.`uid` = `term`.`uid` ";
$sql_extra = sprintf(" AND EXISTS (SELECT * FROM `term` WHERE `item`.`id` = `term`.`oid` AND `item`.`uid` = `term`.`uid` AND `term`.`term` = '%s' AND `term`.`otype` = %d AND `term`.`type` = %d) GROUP BY `item`.`uri` ",
dbesc(protect_sprintf($search)), intval(TERM_OBJ_POST), intval(TERM_HASHTAG)); dbesc(protect_sprintf($search)), intval(TERM_OBJ_POST), intval(TERM_HASHTAG));
$sql_table = "`item` FORCE INDEX (`uri`) "; $sql_table = "`term` LEFT JOIN `item` ON `item`.`id` = `term`.`oid` AND `item`.`uid` = `term`.`uid` ";
//$sql_extra = sprintf(" AND EXISTS (SELECT * FROM `term` WHERE `item`.`id` = `term`.`oid` AND `item`.`uid` = `term`.`uid` AND `term`.`term` = '%s' AND `term`.`otype` = %d AND `term`.`type` = %d) GROUP BY `item`.`uri` ",
// dbesc(protect_sprintf($search)), intval(TERM_OBJ_POST), intval(TERM_HASHTAG));
//$sql_table = "`item` FORCE INDEX (`uri`) ";
} else { } else {
if (get_config('system','use_fulltext_engine')) { if (get_config('system','use_fulltext_engine')) {
$sql_extra = sprintf(" AND MATCH (`item`.`body`, `item`.`title`) AGAINST ('%s' in boolean mode) ", dbesc(protect_sprintf($search))); $sql_extra = sprintf(" AND MATCH (`item`.`body`, `item`.`title`) AGAINST ('%s' in boolean mode) ", dbesc(protect_sprintf($search)));