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

@ -142,6 +142,7 @@ define ( 'NETWORK_GPLUS', 'goog'); // Google+
define ( 'NETWORK_PUMPIO', 'pump'); // pump.io define ( 'NETWORK_PUMPIO', 'pump'); // pump.io
define ( 'NETWORK_TWITTER', 'twit'); // Twitter define ( 'NETWORK_TWITTER', 'twit'); // Twitter
define ( 'NETWORK_DIASPORA2', 'dspc'); // Diaspora connector define ( 'NETWORK_DIASPORA2', 'dspc'); // Diaspora connector
define ( 'NETWORK_STATUSNET', 'stac'); // Statusnet connector
define ( 'NETWORK_PHANTOM', 'unkn'); // Place holder define ( 'NETWORK_PHANTOM', 'unkn'); // Place holder
@ -167,6 +168,7 @@ $netgroup_ids = array(
NETWORK_PUMPIO => (-13), NETWORK_PUMPIO => (-13),
NETWORK_TWITTER => (-14), NETWORK_TWITTER => (-14),
NETWORK_DIASPORA2 => (-15), NETWORK_DIASPORA2 => (-15),
NETWORK_STATUSNET => (-16),
NETWORK_PHANTOM => (-127), NETWORK_PHANTOM => (-127),
); );

View file

@ -351,7 +351,8 @@ function probe_url($url, $mode = PROBE_NORMAL) {
$has_lrdd = false; $has_lrdd = false;
$email_conversant = false; $email_conversant = false;
$twitter = ((strpos($url,'twitter.com') !== false) ? true : false); // Twitter is deactivated since twitter closed its old API
//$twitter = ((strpos($url,'twitter.com') !== false) ? true : false);
$lastfm = ((strpos($url,'last.fm/user') !== false) ? true : false); $lastfm = ((strpos($url,'last.fm/user') !== false) ? true : false);
$at_addr = ((strpos($url,'@') !== false) ? true : false); $at_addr = ((strpos($url,'@') !== false) ? true : false);
@ -561,7 +562,7 @@ function probe_url($url, $mode = PROBE_NORMAL) {
$vcard['nick'] = $addr_parts[0]; $vcard['nick'] = $addr_parts[0];
} }
if($twitter) { /* if($twitter) {
logger('twitter: setup'); logger('twitter: setup');
$tid = basename($url); $tid = basename($url);
$tapi = 'https://api.twitter.com/1/statuses/user_timeline.rss'; $tapi = 'https://api.twitter.com/1/statuses/user_timeline.rss';
@ -574,7 +575,7 @@ function probe_url($url, $mode = PROBE_NORMAL) {
$vcard['photo'] = 'https://api.twitter.com/1/users/profile_image?screen_name=' . $tid . '&size=bigger'; $vcard['photo'] = 'https://api.twitter.com/1/users/profile_image?screen_name=' . $tid . '&size=bigger';
$vcard['nick'] = $tid; $vcard['nick'] = $tid;
$vcard['fn'] = $tid; $vcard['fn'] = $tid;
} } */
if($lastfm) { if($lastfm) {
$profile = $url; $profile = $url;

View file

@ -2420,10 +2420,11 @@ function api_clean_plain_items($Text) {
$Text = bb_CleanPictureLinks($Text); $Text = bb_CleanPictureLinks($Text);
if ($include_entities == "true") {
$URLSearchString = "^\[\]"; $URLSearchString = "^\[\]";
$Text = preg_replace("/#\[url\=([$URLSearchString]*)\](.*?)\[\/url\]/ism",'#$2',$Text); $Text = preg_replace("/([!#@])\[url\=([$URLSearchString]*)\](.*?)\[\/url\]/ism",'$1$3',$Text);
if ($include_entities == "true") {
$Text = preg_replace("/\[url\=([$URLSearchString]*)\](.*?)\[\/url\]/ism",'[url=$1]$1[/url]',$Text); $Text = preg_replace("/\[url\=([$URLSearchString]*)\](.*?)\[\/url\]/ism",'[url=$1]$1[/url]',$Text);
} }

View file

@ -27,7 +27,9 @@ function diaspora2bb($s) {
$s = str_replace("\r","",$s); $s = str_replace("\r","",$s);
// <br/> is invalid. Replace it with the valid expression // <br/> is invalid. Replace it with the valid expression
$s = str_replace("<br/>","<br />",$s); logger("diaspora2bb: 1: ".$s);
$s = str_replace(array("<br/>", "</p>", "<p>"),array("<br />", "<br />", "<br />"),$s);
logger("diaspora2bb: 2: ".$s);
$s = preg_replace('/\@\{(.+?)\; (.+?)\@(.+?)\}/','@[url=https://$3/u/$2]$1[/url]',$s); $s = preg_replace('/\@\{(.+?)\; (.+?)\@(.+?)\}/','@[url=https://$3/u/$2]$1[/url]',$s);

View file

@ -86,7 +86,9 @@ function network_to_name($s) {
NETWORK_MAIL2 => t('Email'), NETWORK_MAIL2 => t('Email'),
NETWORK_GPLUS => t('Google+'), NETWORK_GPLUS => t('Google+'),
NETWORK_PUMPIO => t('pump.io'), NETWORK_PUMPIO => t('pump.io'),
NETWORK_TWITTER => t('Twitter') NETWORK_TWITTER => t('Twitter'),
NETWORK_DIASPORA2 => t('Diaspora Connector'),
NETWORK_STATUSNET => t('Statusnet')
); );
call_hooks('network_to_name', $nets); call_hooks('network_to_name', $nets);

View file

@ -24,6 +24,17 @@ function cronhooks_run(&$argv, &$argc){
load_config('config'); load_config('config');
load_config('system'); load_config('system');
$maxsysload = intval(get_config('system','maxloadavg'));
if($maxsysload < 1)
$maxsysload = 50;
if(function_exists('sys_getloadavg')) {
$load = sys_getloadavg();
if(intval($load[0]) > $maxsysload) {
logger('system: load ' . $load . ' too high. Poller deferred to next scheduled run.');
return;
}
}
$lockpath = get_config('system','lockpath'); $lockpath = get_config('system','lockpath');
if ($lockpath != '') { if ($lockpath != '') {
$pidfile = new pidfile($lockpath, 'cron.lck'); $pidfile = new pidfile($lockpath, 'cron.lck');

View file

@ -7,47 +7,6 @@ require_once('include/contact_selectors.php');
require_once('include/queue_fn.php'); require_once('include/queue_fn.php');
require_once('include/lock.php'); require_once('include/lock.php');
function diaspora_add_page_info($url) {
require_once("mod/parse_url.php");
$data = parseurl_getsiteinfo($url, true);
logger('diaspora_add_page_info: fetch page info for '.$url.' '.print_r($data, true), LOGGER_DATA);
if (($data["type"] != "link") OR ($data["title"] == $url))
return("");
if (is_string($data["title"]))
$text .= "[bookmark=".$url."]".trim($data["title"])."[/bookmark]";
if (sizeof($data["images"]) > 0) {
$imagedata = $data["images"][0];
$text .= '[img]'.$imagedata["src"].'[/img]';
}
if (is_string($data["text"]))
$text .= "[quote]".$data["text"]."[/quote]";
return("\n[class=type-".$data["type"]."]".$text."[/class]");
}
function diaspora_add_page_info_to_body($body) {
logger('diaspora_add_page_info_to_body: fetch page info for body '.$body, LOGGER_DATA);
$URLSearchString = "^\[\]";
// Adding these spaces is a quick hack due to my problems with regular expressions :)
preg_match("/[^@#]\[url\]([$URLSearchString]*)\[\/url\]/ism", " ".$body, $matches);
if (!$matches)
preg_match("/[^@#]\[url\=([$URLSearchString]*)\](.*?)\[\/url\]/ism", " ".$body, $matches);
if ($matches)
$body .= diaspora_add_page_info($matches[1]);
return $body;
}
function diaspora_dispatch_public($msg) { function diaspora_dispatch_public($msg) {
$enabled = intval(get_config('system','diaspora_enabled')); $enabled = intval(get_config('system','diaspora_enabled'));
@ -868,7 +827,7 @@ function diaspora_post($importer,$xml,$msg) {
$body = diaspora2bb($xml->raw_message); $body = diaspora2bb($xml->raw_message);
// Add OEmbed and other information to the body // Add OEmbed and other information to the body
$body = diaspora_add_page_info_to_body($body); $body = add_page_info_to_body($body, false, true);
$datarray = array(); $datarray = array();
@ -1025,7 +984,7 @@ function diaspora_reshare($importer,$xml,$msg) {
$body = scale_external_images($body); $body = scale_external_images($body);
// Add OEmbed and other information to the body // Add OEmbed and other information to the body
$body = diaspora_add_page_info_to_body($body); $body = add_page_info_to_body($body, false, true);
} }
else { else {
// Maybe it is a reshare of a photo that will be delivered at a later time (testing) // Maybe it is a reshare of a photo that will be delivered at a later time (testing)

View file

@ -212,6 +212,7 @@ function html2bbcode($message)
node2bbcode($doc, 'h5', array(), "\n\n[size=small][b]", "[/b][/size]\n"); node2bbcode($doc, 'h5', array(), "\n\n[size=small][b]", "[/b][/size]\n");
node2bbcode($doc, 'h6', array(), "\n\n[size=x-small][b]", "[/b][/size]\n"); node2bbcode($doc, 'h6', array(), "\n\n[size=x-small][b]", "[/b][/size]\n");
node2bbcode($doc, 'a', array('href'=>'/mailto:(.+)/'), '[mail=$1]', '[/mail]');
node2bbcode($doc, 'a', array('href'=>'/(.+)/'), '[url=$1]', '[/url]'); node2bbcode($doc, 'a', array('href'=>'/(.+)/'), '[url=$1]', '[/url]');
node2bbcode($doc, 'img', array('src'=>'/(.+)/', 'width'=>'/(\d+)/', 'height'=>'/(\d+)/'), '[img=$2x$3]$1', '[/img]'); node2bbcode($doc, 'img', array('src'=>'/(.+)/', 'width'=>'/(\d+)/', 'height'=>'/(\d+)/'), '[img=$2x$3]$1', '[/img]');

View file

@ -856,9 +856,10 @@ function get_atom_elements($feed, $item, $contact = array()) {
} }
if (isset($contact["network"]) AND ($contact["network"] == NETWORK_FEED) AND $contact['fetch_further_information']) { if (isset($contact["network"]) AND ($contact["network"] == NETWORK_FEED) AND $contact['fetch_further_information']) {
$res["body"] = $res["title"]."\n\n[class=type-link]".fetch_siteinfo($res['plink'])."[/class]"; $res["body"] = $res["title"].add_page_info($res['plink']);
$res["title"] = ""; $res["title"] = "";
} } elseif (isset($contact["network"]) AND ($contact["network"] == NETWORK_OSTATUS))
$res["body"] = add_page_info_to_body($res["body"]);
$arr = array('feed' => $feed, 'item' => $item, 'result' => $res); $arr = array('feed' => $feed, 'item' => $item, 'result' => $res);
@ -874,29 +875,63 @@ function get_atom_elements($feed, $item, $contact = array()) {
return $res; return $res;
} }
function fetch_siteinfo($url) { function add_page_info($url, $no_photos = false) {
require_once("mod/parse_url.php"); require_once("mod/parse_url.php");
// Fetch site infos - but only from the meta data
$data = parseurl_getsiteinfo($url, true); $data = parseurl_getsiteinfo($url, true);
$text = ""; logger('add_page_info: fetch page info for '.$url.' '.print_r($data, true), LOGGER_DEBUG);
if (!is_string($data["text"]) AND (sizeof($data["images"]) == 0) AND ($data["title"] == $url)) // It maybe is a rich content, but if it does have everything that a link has,
// then treat it that way
if (($data["type"] == "rich") AND is_string($data["title"]) AND
is_string($data["text"]) AND (sizeof($data["images"]) > 0))
$data["type"] = "link";
if ((($data["type"] != "link") AND ($data["type"] != "video") AND ($data["type"] != "photo")) OR ($data["title"] == $url))
return(""); return("");
if (is_string($data["title"])) if ($no_photos AND ($data["type"] == "photo"))
$text .= "[bookmark=".$url."]".trim($data["title"])."[/bookmark]\n"; return("");
if (sizeof($data["images"]) > 0) { if (($data["type"] != "photo") AND is_string($data["title"]))
$text .= "[bookmark=".$url."]".trim($data["title"])."[/bookmark]";
if (($data["type"] != "video") AND (sizeof($data["images"]) > 0)) {
$imagedata = $data["images"][0]; $imagedata = $data["images"][0];
$text .= '[img='.$imagedata["width"].'x'.$imagedata["height"].']'.$imagedata["src"].'[/img]' . "\n"; $text .= '[img]'.$imagedata["src"].'[/img]';
} }
if (is_string($data["text"])) if (($data["type"] != "photo") AND is_string($data["text"]))
$text .= "[quote]".$data["text"]."[/quote]"; $text .= "[quote]".$data["text"]."[/quote]";
return($text); return("\n[class=type-".$data["type"]."]".$text."[/class]");
}
function add_page_info_to_body($body, $texturl = false, $no_photos = false) {
logger('add_page_info_to_body: fetch page info for body '.$body, LOGGER_DEBUG);
$URLSearchString = "^\[\]";
// Adding these spaces is a quick hack due to my problems with regular expressions :)
preg_match("/[^@#]\[url\]([$URLSearchString]*)\[\/url\]/ism", " ".$body, $matches);
if (!$matches)
preg_match("/[^@#]\[url\=([$URLSearchString]*)\](.*?)\[\/url\]/ism", " ".$body, $matches);
// Convert urls without bbcode elements
if (!$matches AND $texturl) {
preg_match("/([^\]\='".'"'."]|^)(https?\:\/\/[a-zA-Z0-9\:\/\-\?\&\;\.\=\_\~\#\%\$\!\+\,]+)/ism", " ".$body, $matches);
// Yeah, a hack. I really hate regular expressions :)
if ($matches)
$matches[1] = $matches[2];
}
if ($matches)
$body .= add_page_info($matches[1], $no_photos);
return $body;
} }
function encode_rel_links($links) { function encode_rel_links($links) {

View file

@ -189,7 +189,7 @@ function post_url($url,$params, $headers = null, &$redirects = 0, $timeout = 0)
$base = substr($base,strlen($chunk)); $base = substr($base,strlen($chunk));
} }
if($http_code == 301 || $http_code == 302 || $http_code == 303) { if($http_code == 301 || $http_code == 302 || $http_code == 303 || $http_code == 307) {
$matches = array(); $matches = array();
preg_match('/(Location:|URI:)(.*?)\n/', $header, $matches); preg_match('/(Location:|URI:)(.*?)\n/', $header, $matches);
$newurl = trim(array_pop($matches)); $newurl = trim(array_pop($matches));
@ -1105,3 +1105,71 @@ function xml2array($contents, $namespaces = true, $get_attributes=1, $priority =
return($xml_array); return($xml_array);
} }
function original_url($url, $depth=1, $fetchbody = false) {
if ($depth > 10)
return($url);
$url = trim($url, "'");
$siteinfo = array();
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, 1);
if ($fetchbody)
curl_setopt($ch, CURLOPT_NOBODY, 0);
else
curl_setopt($ch, CURLOPT_NOBODY, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch,CURLOPT_USERAGENT,'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:24.0) Gecko/20100101 Firefox/24.0');
$header = curl_exec($ch);
$curl_info = @curl_getinfo($ch);
$http_code = $curl_info['http_code'];
curl_close($ch);
if ((($curl_info['http_code'] == "301") OR ($curl_info['http_code'] == "302"))
AND (($curl_info['redirect_url'] != "") OR ($curl_info['location'] != ""))) {
if ($curl_info['redirect_url'] != "")
return(original_url($curl_info['redirect_url'], ++$depth, $fetchbody));
else
return(original_url($curl_info['location'], ++$depth, $fetchbody));
}
$pos = strpos($header, "\r\n\r\n");
if ($pos)
$body = trim(substr($header, $pos));
else
$body = $header;
if (trim($body) == "")
return(original_url($url, ++$depth, true));
$doc = new DOMDocument();
@$doc->loadHTML($body);
$xpath = new DomXPath($doc);
$list = $xpath->query("//meta[@content]");
foreach ($list as $node) {
$attr = array();
if ($node->attributes->length)
foreach ($node->attributes as $attribute)
$attr[$attribute->name] = $attribute->value;
if (@$attr["http-equiv"] == 'refresh') {
$path = $attr["content"];
$pathinfo = explode(";", $path);
$content = "";
foreach ($pathinfo AS $value)
if (substr(strtolower($value), 0, 4) == "url=")
return(original_url(substr($value, 4), ++$depth));
}
}
return($url);
}

View file

@ -12,6 +12,9 @@ function oembed_replacecb($matches){
function oembed_fetch_url($embedurl){ function oembed_fetch_url($embedurl){
$embedurl = trim($embedurl, "'");
$embedurl = trim($embedurl, '"');
$a = get_app(); $a = get_app();
$txt = Cache::get($a->videowidth . $embedurl); $txt = Cache::get($a->videowidth . $embedurl);
@ -48,9 +51,18 @@ function oembed_fetch_url($embedurl){
} }
if ($txt==false || $txt==""){ if ($txt==false || $txt==""){
$embedly = get_config("system", "embedly");
if ($embedly == "") {
// try oohembed service // try oohembed service
$ourl = "http://oohembed.com/oohembed/?url=".urlencode($embedurl).'&maxwidth=' . $a->videowidth; $ourl = "http://oohembed.com/oohembed/?url=".urlencode($embedurl).'&maxwidth=' . $a->videowidth;
$txt = fetch_url($ourl); $txt = fetch_url($ourl);
} else {
// try embedly service
$ourl = "https://api.embed.ly/1/oembed?key=".$embedly."&url=".urlencode($embedurl);
$txt = fetch_url($ourl);
}
logger("oembed_fetch_url: ".$txt, LOGGER_DEBUG);
} }
$txt=trim($txt); $txt=trim($txt);

View file

@ -1127,7 +1127,7 @@ function handle_tag($a, &$body, &$inform, &$str_tags, $profile_uid, $tag) {
if(count($r)) { if(count($r)) {
$profile = $r[0]['url']; $profile = $r[0]['url'];
//set newname to nick, find alias //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']; $newname = $r[0]['nick'];
$stat = true; $stat = true;
if($r[0]['alias']) if($r[0]['alias'])

View file

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

View file

@ -53,6 +53,9 @@ function completeurl($url, $scheme) {
function parseurl_getsiteinfo($url, $no_guessing = false) { function parseurl_getsiteinfo($url, $no_guessing = false) {
$siteinfo = array(); $siteinfo = array();
$url = trim($url, "'");
$url = trim($url, '"');
$siteinfo["url"] = $url;
$siteinfo["type"] = "link"; $siteinfo["type"] = "link";
$ch = curl_init(); $ch = curl_init();
@ -69,7 +72,7 @@ function parseurl_getsiteinfo($url, $no_guessing = false) {
$http_code = $curl_info['http_code']; $http_code = $curl_info['http_code'];
curl_close($ch); 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'] != ""))) { AND (($curl_info['redirect_url'] != "") OR ($curl_info['location'] != ""))) {
if ($curl_info['redirect_url'] != "") if ($curl_info['redirect_url'] != "")
$siteinfo = parseurl_getsiteinfo($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") if ($oembed_data->type != "error")
$siteinfo["type"] = $oembed_data->type; $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 // Fetch the first mentioned charset. Can be in body or header
$charset = "";
if (preg_match('/charset=(.*?)['."'".'"\s\n]/', $header, $matches)) if (preg_match('/charset=(.*?)['."'".'"\s\n]/', $header, $matches))
$charset = trim(array_pop($matches)); $charset = trim(array_pop($matches));
else
if ($charset == "")
$charset = "utf-8"; $charset = "utf-8";
$pos = strpos($header, "\r\n\r\n"); $pos = strpos($header, "\r\n\r\n");
@ -164,6 +160,7 @@ function parseurl_getsiteinfo($url, $no_guessing = false) {
$attr["content"] = trim(html_entity_decode($attr["content"], ENT_QUOTES, "UTF-8")); $attr["content"] = trim(html_entity_decode($attr["content"], ENT_QUOTES, "UTF-8"));
if ($attr["content"] != "")
switch (strtolower($attr["name"])) { switch (strtolower($attr["name"])) {
case "fulltitle": case "fulltitle":
$siteinfo["title"] = $attr["content"]; $siteinfo["title"] = $attr["content"];
@ -205,6 +202,7 @@ function parseurl_getsiteinfo($url, $no_guessing = false) {
$attr["content"] = trim(html_entity_decode($attr["content"], ENT_QUOTES, "UTF-8")); $attr["content"] = trim(html_entity_decode($attr["content"], ENT_QUOTES, "UTF-8"));
if ($attr["content"] != "")
switch (strtolower($attr["property"])) { switch (strtolower($attr["property"])) {
case "og:image": case "og:image":
$siteinfo["image"] = $attr["content"]; $siteinfo["image"] = $attr["content"];
@ -218,6 +216,15 @@ function parseurl_getsiteinfo($url, $no_guessing = false) {
} }
} }
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) { if ((@$siteinfo["image"] == "") AND !$no_guessing) {
$list = $xpath->query("//img[@src]"); $list = $xpath->query("//img[@src]");
foreach ($list as $node) { foreach ($list as $node) {
@ -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); return($siteinfo);
} }
@ -367,6 +376,8 @@ function parse_url_content(&$a) {
$siteinfo = parseurl_getsiteinfo($url); $siteinfo = parseurl_getsiteinfo($url);
$url= $siteinfo["url"];
$sitedata = ""; $sitedata = "";
if($siteinfo["title"] == "") { if($siteinfo["title"] == "") {
@ -379,7 +390,7 @@ function parse_url_content(&$a) {
$image = ""; $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 */ /* Execute below code only if image is present in siteinfo */
$total_images = 0; $total_images = 0;
@ -421,7 +432,7 @@ function parse_url_content(&$a) {
$sitedata .= trim($result); $sitedata .= trim($result);
if (($siteinfo["type"] == "video") AND ($url != "")) if (($siteinfo["type"] == "video") AND ($url != ""))
echo "[video]".$url."[/video]"; echo "[class=type-video]".$sitedata."[/class]";
elseif (($siteinfo["type"] != "photo")) elseif (($siteinfo["type"] != "photo"))
echo "[class=type-link]".$sitedata."[/class]"; echo "[class=type-link]".$sitedata."[/class]";
else else

View file

@ -130,7 +130,7 @@ function pubsub_post(&$a) {
); );
if(! count($r)) { if(! count($r)) {
logger('pubsub: no contact record - ignored'); logger('pubsub: no contact record for "'.$nick.' ('.$contact_id.')" - ignored. '.$xml);
hub_post_return(); hub_post_return();
} }

View file

@ -808,7 +808,7 @@ function settings_content(&$a) {
$themes = array(); $themes = array();
$mobile_themes = array("---" => t('No special theme for mobile devices')); $mobile_themes = array("---" => t('No special theme for mobile devices'));
$files = glob('view/theme/*'); $files = glob('view/theme/*'); /* */
if($allowed_themes) { if($allowed_themes) {
foreach($allowed_themes as $th) { foreach($allowed_themes as $th) {
$f = $th; $f = $th;
@ -931,6 +931,7 @@ function settings_content(&$a) {
$post_profilechange = get_pconfig(local_user(), 'system','post_profilechange'); $post_profilechange = get_pconfig(local_user(), 'system','post_profilechange');
$post_profilechange = (($post_profilechange===false)? '0': $post_profilechange); // default if not set: 0 $post_profilechange = (($post_profilechange===false)? '0': $post_profilechange); // default if not set: 0
// nowarn_insecure
if(! strlen($a->user['timezone'])) if(! strlen($a->user['timezone']))
$timezone = date_default_timezone_get(); $timezone = date_default_timezone_get();

View file

@ -1210,19 +1210,20 @@ section.minimal {
font-size: 12px; font-size: 12px;
} }
.type-link { .type-link, .type-video {
border-top: 1px solid #D2D2D2; border-top: 1px solid #D2D2D2;
border-bottom: 1px solid #D2D2D2; border-bottom: 1px solid #D2D2D2;
display: block; display: block;
padding-top: 5px; padding-top: 5px;
padding-bottom: 5px; padding-bottom: 5px;
margin-top: 10px;
/* /*
padding-left: 170px; padding-left: 170px;
min-height: 90px; min-height: 90px;
position: relative; position: relative;
*/ */
} }
.type-link:after { .type-link:after, .type-video:after {
content: "."; content: ".";
display: block; display: block;
height: 0; height: 0;
@ -1230,13 +1231,13 @@ position: relative;
visibility: hidden; visibility: hidden;
} }
.wall-item-container .wall-item-content .type-link img, .wall-item-container .wall-item-content .type-link img,
.type-link img { .type-link img, .type-video img {
max-width: 160px; max-width: 160px;
max-height: 160px; max-height: 160px;
float: left; float: left;
margin-right: 10px; margin-right: 10px;
} }
.type-link blockquote { .type-link blockquote, .type-video blockquote {
/* margin-left: 160px; */ /* margin-left: 160px; */
margin-left: 0px; margin-left: 0px;
max-height: 160px; max-height: 160px;
@ -1244,17 +1245,17 @@ position: relative;
border-left: 0px; border-left: 0px;
padding-left: 0px; padding-left: 0px;
} }
.type-link .oembed { .type-link .oembed, .type-video .oembed {
font-size: inherit; font-size: inherit;
} }
.type-link img { .type-link img, .type-video img {
/* position: absolute; /* position: absolute;
left: 0; left: 0;
top: 0; */ top: 0; */
} }
.type-link span.oembed + br, .type-link span.oembed + br, .type-video span.oembed + br,
.type-link a + br, .type-link a + br, .type-video a + br,
.type-link img + br{ .type-link img + br, .type-video img + br{
display: none; display: none;
} }