Merge pull request #932 from annando/master

Preparation for bidirectional statusnet sync, functions moved from addons into the core and some converting stuff
This commit is contained in:
fabrixxm 2014-04-07 09:53:47 +02:00
commit 84189ac775
17 changed files with 298 additions and 192 deletions

View file

@ -1127,7 +1127,7 @@ function handle_tag($a, &$body, &$inform, &$str_tags, $profile_uid, $tag) {
if(count($r)) {
$profile = $r[0]['url'];
//set newname to nick, find alias
if(($r[0]['network'] === NETWORK_OSTATUS) OR ($r[0]['network'] === NETWORK_TWITTER)) {
if(($r[0]['network'] === NETWORK_OSTATUS) OR ($r[0]['network'] === NETWORK_TWITTER) OR ($r[0]['network'] === NETWORK_STATUSNET)) {
$newname = $r[0]['nick'];
$stat = true;
if($r[0]['alias'])

View file

@ -109,14 +109,13 @@ function like_content(&$a) {
$return_path = ((x($_REQUEST,'return')) ? $_REQUEST['return'] : '');
$r = q("SELECT * FROM `item` WHERE `verb` = '%s' AND `deleted` = 0
AND `contact-id` = %d AND ( `parent` = '%s' OR `parent-uri` = '%s' OR `thr-parent` = '%s') LIMIT 1",
dbesc($activity),
intval($contact['id']),
dbesc($item_id),
dbesc($item_id),
dbesc($item['uri'])
$r = q("SELECT `id`, `guid` FROM `item` WHERE `verb` = '%s' AND `deleted` = 0
AND `contact-id` = %d AND `uid` = %d
AND (`parent` = '%s' OR `parent-uri` = '%s' OR `thr-parent` = '%s') LIMIT 1",
dbesc($activity), intval($contact['id']), intval($owner_uid),
dbesc($item_id), dbesc($item_id), dbesc($item['uri'])
);
if(count($r)) {
$like_item = $r[0];

View file

@ -53,6 +53,9 @@ function completeurl($url, $scheme) {
function parseurl_getsiteinfo($url, $no_guessing = false) {
$siteinfo = array();
$url = trim($url, "'");
$url = trim($url, '"');
$siteinfo["url"] = $url;
$siteinfo["type"] = "link";
$ch = curl_init();
@ -69,7 +72,7 @@ function parseurl_getsiteinfo($url, $no_guessing = false) {
$http_code = $curl_info['http_code'];
curl_close($ch);
if ((($curl_info['http_code'] == "301") OR ($curl_info['http_code'] == "302"))
if ((($curl_info['http_code'] == "301") OR ($curl_info['http_code'] == "302") OR ($curl_info['http_code'] == "303") OR ($curl_info['http_code'] == "307"))
AND (($curl_info['redirect_url'] != "") OR ($curl_info['location'] != ""))) {
if ($curl_info['redirect_url'] != "")
$siteinfo = parseurl_getsiteinfo($curl_info['redirect_url']);
@ -85,19 +88,12 @@ function parseurl_getsiteinfo($url, $no_guessing = false) {
if ($oembed_data->type != "error")
$siteinfo["type"] = $oembed_data->type;
if ($oembed_data->type == "link") {
if (isset($oembed_data->title))
$siteinfo["title"] = $oembed_data->title;
if (isset($oembed_data->description))
$siteinfo["text"] = trim($oembed_data->description);
if (isset($oembed_data->thumbnail_url))
$siteinfo["image"] = $oembed_data->thumbnail_url;
}
// Fetch the first mentioned charset. Can be in body or header
$charset = "";
if (preg_match('/charset=(.*?)['."'".'"\s\n]/', $header, $matches))
$charset = trim(array_pop($matches));
else
if ($charset == "")
$charset = "utf-8";
$pos = strpos($header, "\r\n\r\n");
@ -164,33 +160,34 @@ function parseurl_getsiteinfo($url, $no_guessing = false) {
$attr["content"] = trim(html_entity_decode($attr["content"], ENT_QUOTES, "UTF-8"));
switch (strtolower($attr["name"])) {
case "fulltitle":
$siteinfo["title"] = $attr["content"];
break;
case "description":
$siteinfo["text"] = $attr["content"];
break;
case "twitter:image":
$siteinfo["image"] = $attr["content"];
break;
case "twitter:card":
if ($siteinfo["type"] == "")
$siteinfo["type"] = $attr["content"];
break;
case "twitter:description":
$siteinfo["text"] = $attr["content"];
break;
case "twitter:title":
$siteinfo["title"] = $attr["content"];
break;
case "dc.title":
$siteinfo["title"] = $attr["content"];
break;
case "dc.description":
$siteinfo["text"] = $attr["content"];
break;
}
if ($attr["content"] != "")
switch (strtolower($attr["name"])) {
case "fulltitle":
$siteinfo["title"] = $attr["content"];
break;
case "description":
$siteinfo["text"] = $attr["content"];
break;
case "twitter:image":
$siteinfo["image"] = $attr["content"];
break;
case "twitter:card":
if ($siteinfo["type"] == "")
$siteinfo["type"] = $attr["content"];
break;
case "twitter:description":
$siteinfo["text"] = $attr["content"];
break;
case "twitter:title":
$siteinfo["title"] = $attr["content"];
break;
case "dc.title":
$siteinfo["title"] = $attr["content"];
break;
case "dc.description":
$siteinfo["text"] = $attr["content"];
break;
}
if ($siteinfo["type"] == "summary")
$siteinfo["type"] = "link";
}
@ -205,17 +202,27 @@ function parseurl_getsiteinfo($url, $no_guessing = false) {
$attr["content"] = trim(html_entity_decode($attr["content"], ENT_QUOTES, "UTF-8"));
switch (strtolower($attr["property"])) {
case "og:image":
$siteinfo["image"] = $attr["content"];
break;
case "og:title":
$siteinfo["title"] = $attr["content"];
break;
case "og:description":
$siteinfo["text"] = $attr["content"];
break;
}
if ($attr["content"] != "")
switch (strtolower($attr["property"])) {
case "og:image":
$siteinfo["image"] = $attr["content"];
break;
case "og:title":
$siteinfo["title"] = $attr["content"];
break;
case "og:description":
$siteinfo["text"] = $attr["content"];
break;
}
}
if ($oembed_data->type == "link") {
if (isset($oembed_data->title) AND (trim($oembed_data->title) != ""))
$siteinfo["title"] = $oembed_data->title;
if (isset($oembed_data->description) AND (trim($oembed_data->description) != ""))
$siteinfo["text"] = trim($oembed_data->description);
if (isset($oembed_data->thumbnail_url) AND (trim($oembed_data->thumbnail_url) != ""))
$siteinfo["image"] = $oembed_data->thumbnail_url;
}
if ((@$siteinfo["image"] == "") AND !$no_guessing) {
@ -290,6 +297,8 @@ function parseurl_getsiteinfo($url, $no_guessing = false) {
}
}
logger("parseurl_getsiteinfo: Siteinfo for ".$url." ".print_r($siteinfo, true), LOGGER_DEBUG);
return($siteinfo);
}
@ -367,6 +376,8 @@ function parse_url_content(&$a) {
$siteinfo = parseurl_getsiteinfo($url);
$url= $siteinfo["url"];
$sitedata = "";
if($siteinfo["title"] == "") {
@ -379,7 +390,7 @@ function parse_url_content(&$a) {
$image = "";
if(sizeof($siteinfo["images"]) > 0){
if (($siteinfo["type"] != "video") AND (sizeof($siteinfo["images"]) > 0)){
/* Execute below code only if image is present in siteinfo */
$total_images = 0;
@ -421,7 +432,7 @@ function parse_url_content(&$a) {
$sitedata .= trim($result);
if (($siteinfo["type"] == "video") AND ($url != ""))
echo "[video]".$url."[/video]";
echo "[class=type-video]".$sitedata."[/class]";
elseif (($siteinfo["type"] != "photo"))
echo "[class=type-link]".$sitedata."[/class]";
else

View file

@ -1,7 +1,7 @@
<?php
function hub_return($valid,$body) {
if($valid) {
header($_SERVER["SERVER_PROTOCOL"] . ' 200 ' . 'OK');
echo $body;
@ -18,7 +18,7 @@ function hub_return($valid,$body) {
// when receiving an XML feed, always return OK
function hub_post_return() {
header($_SERVER["SERVER_PROTOCOL"] . ' 200 ' . 'OK');
killme();
@ -69,7 +69,7 @@ function pubsub_init(&$a) {
if(! link_compare($hub_topic,$r[0]['poll'])) {
logger('pubsub: hub topic ' . $hub_topic . ' != ' . $r[0]['poll']);
// should abort but let's humour them.
// should abort but let's humour them.
}
$contact = $r[0];
@ -130,7 +130,7 @@ function pubsub_post(&$a) {
);
if(! count($r)) {
logger('pubsub: no contact record - ignored');
logger('pubsub: no contact record for "'.$nick.' ('.$contact_id.')" - ignored. '.$xml);
hub_post_return();
}

View file

@ -588,11 +588,11 @@ function settings_content(&$a) {
notice( t('Permission denied.') . EOL );
return;
}
if(($a->argc > 1) && ($a->argv[1] === 'oauth')) {
if(($a->argc > 2) && ($a->argv[2] === 'add')) {
$tpl = get_markup_template("settings_oauth_edit.tpl");
$o .= replace_macros($tpl, array(
@ -608,18 +608,18 @@ function settings_content(&$a) {
));
return $o;
}
if(($a->argc > 3) && ($a->argv[2] === 'edit')) {
$r = q("SELECT * FROM clients WHERE client_id='%s' AND uid=%d",
dbesc($a->argv[3]),
local_user());
if (!count($r)){
notice(t("You can't edit this application."));
return;
}
$app = $r[0];
$tpl = get_markup_template("settings_oauth_edit.tpl");
$o .= replace_macros($tpl, array(
'$form_security_token' => get_form_security_token("settings_oauth"),
@ -634,18 +634,18 @@ function settings_content(&$a) {
));
return $o;
}
if(($a->argc > 3) && ($a->argv[2] === 'delete')) {
check_form_security_token_redirectOnErr('/settings/oauth', 'settings_oauth', 't');
$r = q("DELETE FROM clients WHERE client_id='%s' AND uid=%d",
dbesc($a->argv[3]),
local_user());
goaway($a->get_baseurl(true)."/settings/oauth/");
return;
return;
}
$r = q("SELECT clients.*, tokens.id as oauth_token, (clients.uid=%d) AS my
FROM clients
LEFT JOIN tokens ON clients.client_id=tokens.client_id
@ -754,11 +754,11 @@ function settings_content(&$a) {
else {
$mail_disabled_message = (($mail_disabled) ? t('Email access is disabled on this site.') : '');
}
$o .= replace_macros($tpl, array(
'$form_security_token' => get_form_security_token("settings_connectors"),
'$title' => t('Connector Settings'),
'$diasp_enabled' => $diasp_enabled,
@ -801,14 +801,14 @@ function settings_content(&$a) {
$allowed_themes_raw = explode(',',$allowed_themes_str);
$allowed_themes = array();
if(count($allowed_themes_raw))
foreach($allowed_themes_raw as $x)
foreach($allowed_themes_raw as $x)
if(strlen(trim($x)) && is_dir("view/theme/$x"))
$allowed_themes[] = trim($x);
$themes = array();
$mobile_themes = array("---" => t('No special theme for mobile devices'));
$files = glob('view/theme/*');
$files = glob('view/theme/*'); /* */
if($allowed_themes) {
foreach($allowed_themes as $th) {
$f = $th;
@ -905,13 +905,13 @@ function settings_content(&$a) {
$expire_items = get_pconfig(local_user(), 'expire','items');
$expire_items = (($expire_items===false)? '1' : $expire_items); // default if not set: 1
$expire_notes = get_pconfig(local_user(), 'expire','notes');
$expire_notes = (($expire_notes===false)? '1' : $expire_notes); // default if not set: 1
$expire_starred = get_pconfig(local_user(), 'expire','starred');
$expire_starred = (($expire_starred===false)? '1' : $expire_starred); // default if not set: 1
$expire_photos = get_pconfig(local_user(), 'expire','photos');
$expire_photos = (($expire_photos===false)? '0' : $expire_photos); // default if not set: 0
@ -931,7 +931,8 @@ function settings_content(&$a) {
$post_profilechange = get_pconfig(local_user(), 'system','post_profilechange');
$post_profilechange = (($post_profilechange===false)? '0': $post_profilechange); // default if not set: 0
// nowarn_insecure
if(! strlen($a->user['timezone']))
$timezone = date_default_timezone_get();
@ -939,24 +940,24 @@ function settings_content(&$a) {
$pageset_tpl = get_markup_template('pagetypes.tpl');
$pagetype = replace_macros($pageset_tpl, array(
'$page_normal' => array('page-flags', t('Normal Account Page'), PAGE_NORMAL,
t('This account is a normal personal profile'),
'$page_normal' => array('page-flags', t('Normal Account Page'), PAGE_NORMAL,
t('This account is a normal personal profile'),
($a->user['page-flags'] == PAGE_NORMAL)),
'$page_soapbox' => array('page-flags', t('Soapbox Page'), PAGE_SOAPBOX,
'$page_soapbox' => array('page-flags', t('Soapbox Page'), PAGE_SOAPBOX,
t('Automatically approve all connection/friend requests as read-only fans'),
($a->user['page-flags'] == PAGE_SOAPBOX)),
'$page_community' => array('page-flags', t('Community Forum/Celebrity Account'), PAGE_COMMUNITY,
'$page_community' => array('page-flags', t('Community Forum/Celebrity Account'), PAGE_COMMUNITY,
t('Automatically approve all connection/friend requests as read-write fans'),
($a->user['page-flags'] == PAGE_COMMUNITY)),
'$page_freelove' => array('page-flags', t('Automatic Friend Page'), PAGE_FREELOVE,
'$page_freelove' => array('page-flags', t('Automatic Friend Page'), PAGE_FREELOVE,
t('Automatically approve all connection/friend requests as friends'),
($a->user['page-flags'] == PAGE_FREELOVE)),
'$page_prvgroup' => array('page-flags', t('Private Forum [Experimental]'), PAGE_PRVGROUP,
t('Private forum - approved members only'),
'$page_prvgroup' => array('page-flags', t('Private Forum [Experimental]'), PAGE_PRVGROUP,
t('Private forum - approved members only'),
($a->user['page-flags'] == PAGE_PRVGROUP)),
@ -1004,7 +1005,7 @@ function settings_content(&$a) {
'$field' => array('blockwall', t('Allow friends to post to your profile page?'), (intval($a->user['blockwall']) ? '0' : '1'), '', array(t('No'),t('Yes'))),
));
$blocktags = replace_macros($opt_tpl,array(
'$field' => array('blocktags', t('Allow friends to tag your posts?'), (intval($a->user['blocktags']) ? '0' : '1'), '', array(t('No'),t('Yes'))),
@ -1134,10 +1135,10 @@ function settings_content(&$a) {
'$profile_in_net_dir' => $profile_in_net_dir,
'$hide_friends' => $hide_friends,
'$hide_wall' => $hide_wall,
'$unkmail' => $unkmail,
'$unkmail' => $unkmail,
'$cntunkmail' => array('cntunkmail', t('Maximum private messages per day from unknown people:'), $cntunkmail ,t("\x28to prevent spam abuse\x29")),
'$h_not' => t('Notification Settings'),
'$activity_options' => t('By default post a status message when:'),
'$post_newfriend' => array('post_newfriend', t('accepting a friend request'), $post_newfriend, ''),
@ -1152,16 +1153,16 @@ function settings_content(&$a) {
'$notify6' => array('notify6', t('You receive a friend suggestion'), ($notify & NOTIFY_SUGGEST), NOTIFY_SUGGEST, ''),
'$notify7' => array('notify7', t('You are tagged in a post'), ($notify & NOTIFY_TAGSELF), NOTIFY_TAGSELF, ''),
'$notify8' => array('notify8', t('You are poked/prodded/etc. in a post'), ($notify & NOTIFY_POKE), NOTIFY_POKE, ''),
'$h_advn' => t('Advanced Account/Page Type Settings'),
'$h_descadvn' => t('Change the behaviour of this account for special situations'),
'$pagetype' => $pagetype,
'$relocate' => t('Relocate'),
'$relocate_text' => t("If you have moved this profile from another server, and some of your contacts don't receive your updates, try pushing this button."),
'$relocate_button' => t("Resend relocate message to contacts"),
));
call_hooks('settings_form',$o);