diff --git a/include/bbcode.php b/include/bbcode.php index af14a57560..571809c3b5 100644 --- a/include/bbcode.php +++ b/include/bbcode.php @@ -595,7 +595,7 @@ function bb_RemovePictureLinks($match) { $ch = @curl_init($match[1]); @curl_setopt($ch, CURLOPT_NOBODY, true); @curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); - @curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (compatible; Friendica)"); + @curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (compatible; ".FRIENDICA_PLATFORM." ".FRIENDICA_VERSION."-".DB_UPDATE_VERSION.")"); @curl_exec($ch); $curl_info = @curl_getinfo($ch); @@ -643,7 +643,7 @@ function bb_CleanPictureLinksSub($match) { $ch = @curl_init($match[1]); @curl_setopt($ch, CURLOPT_NOBODY, true); @curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); - @curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (compatible; Friendica)"); + @curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (compatible; ".FRIENDICA_PLATFORM." ".FRIENDICA_VERSION."-".DB_UPDATE_VERSION.")"); @curl_exec($ch); $curl_info = @curl_getinfo($ch); @@ -1069,25 +1069,26 @@ function bbcode($Text,$preserve_nl = false, $tryoembed = true, $simplehtml = fal if($saved_image) $Text = bb_replace_images($Text, $saved_image); - // Clean up the HTML by loading and saving the HTML with the DOM - // Only do it when it has to be done - for performance reasons - // Update: Now it is done every time - since bad structured html can break a whole page - //if (!$tryoembed) { - // $doc = new DOMDocument(); - // $doc->preserveWhiteSpace = false; + // Clean up the HTML by loading and saving the HTML with the DOM. + // Bad structured html can break a whole page. + // For performance reasons do it only with ativated item cache or at export. + if (!$tryoembed OR (get_itemcachepath() != "")) { + $doc = new DOMDocument(); + $doc->preserveWhiteSpace = false; - // $Text = mb_convert_encoding($Text, 'HTML-ENTITIES', "UTF-8"); + //$Text = mb_convert_encoding($Text, 'HTML-ENTITIES', "UTF-8"); - // $doctype = ''; - // @$doc->loadHTML($doctype."".$Text.""); + $doctype = ''; + $encoding = ''; + @$doc->loadHTML($encoding.$doctype."".$Text.""); + $doc->encoding = 'UTF-8'; + $Text = $doc->saveHTML(); + $Text = str_replace(array("", "", $doctype, $encoding), array("", "", "", ""), $Text); - // $Text = $doc->saveHTML(); - // $Text = str_replace(array("", "", $doctype), array("", "", ""), $Text); + $Text = str_replace('
','', $Text); - // $Text = str_replace('
','', $Text); - - // $Text = mb_convert_encoding($Text, "UTF-8", 'HTML-ENTITIES'); - //} + //$Text = mb_convert_encoding($Text, "UTF-8", 'HTML-ENTITIES'); + } // Clean up some useless linebreaks in lists //$Text = str_replace('
get_hostname(); if(strpos($localhost,':')) $localhost = substr($localhost,0,strpos($localhost,':')); /** * - * Be VERY CAREFUL if you make any changes to the following line. Seemingly innocuous changes - * have been known to cause runaway conditions which affected several servers, along with - * permissions issues. + * Be VERY CAREFUL if you make any changes to the following line. Seemingly innocuous changes + * have been known to cause runaway conditions which affected several servers, along with + * permissions issues. * */ - + if((! $top_level) && ($parent['wall'] == 0) && (! $expire) && (stristr($target_item['uri'],$localhost))) { logger('relay denied for delivery agent.'); @@ -216,9 +216,9 @@ function delivery_run(&$argv, &$argc){ continue; } - if((strlen($parent['allow_cid'])) - || (strlen($parent['allow_gid'])) - || (strlen($parent['deny_cid'])) + if((strlen($parent['allow_cid'])) + || (strlen($parent['allow_gid'])) + || (strlen($parent['deny_cid'])) || (strlen($parent['deny_gid']))) { $public_message = false; // private recipients, not public } @@ -229,7 +229,7 @@ function delivery_run(&$argv, &$argc){ if(count($r)) $contact = $r[0]; - + $hubxml = feed_hublinks(); logger('notifier: slaps: ' . print_r($slaps,true), LOGGER_DATA); @@ -297,7 +297,7 @@ function delivery_run(&$argv, &$argc){ } $atom .= '' . "\r\n"; - + logger('notifier: ' . $atom, LOGGER_DATA); $basepath = implode('/', array_slice(explode('/',$contact['url']),0,3)); @@ -311,15 +311,15 @@ function delivery_run(&$argv, &$argc){ else $sql_extra = sprintf(" AND `issued-id` = '%s' ", dbesc($contact['dfrn-id'])); - $x = q("SELECT `contact`.*, `contact`.`uid` AS `importer_uid`, - `contact`.`pubkey` AS `cpubkey`, - `contact`.`prvkey` AS `cprvkey`, - `contact`.`thumb` AS `thumb`, + $x = q("SELECT `contact`.*, `contact`.`uid` AS `importer_uid`, + `contact`.`pubkey` AS `cpubkey`, + `contact`.`prvkey` AS `cprvkey`, + `contact`.`thumb` AS `thumb`, `contact`.`url` as `url`, `contact`.`name` as `senderName`, - `user`.* - FROM `contact` - INNER JOIN `user` ON `contact`.`uid` = `user`.`uid` + `user`.* + FROM `contact` + INNER JOIN `user` ON `contact`.`uid` = `user`.`uid` WHERE `contact`.`blocked` = 0 AND `contact`.`pending` = 0 AND `contact`.`network` = '%s' AND `user`.`nickname` = '%s' $sql_extra @@ -390,7 +390,7 @@ function delivery_run(&$argv, &$argc){ if(! $item_contact) continue; - if(($top_level) && ($public_message) && ($item['author-link'] === $item['owner-link']) && (! $expire)) + if(($top_level) && ($public_message) && ($item['author-link'] === $item['owner-link']) && (! $expire)) $slaps[] = atom_entry($item,'html',null,$owner,true); } @@ -426,7 +426,7 @@ function delivery_run(&$argv, &$argc){ if($cmd === 'wall-new' || $cmd === 'comment-new') { $it = null; - if($cmd === 'wall-new') + if($cmd === 'wall-new') $it = $items[0]; else { $r = q("SELECT * FROM `item` WHERE `id` = %d AND `uid` = %d LIMIT 1", @@ -509,7 +509,7 @@ function delivery_run(&$argv, &$argc){ case NETWORK_DIASPORA : if($public_message) $loc = 'public batch ' . $contact['batch']; - else + else $loc = $contact['name']; logger('delivery: diaspora batch deliver: ' . $loc); diff --git a/include/enotify.php b/include/enotify.php index 85224d4a5b..7449edffa2 100644 --- a/include/enotify.php +++ b/include/enotify.php @@ -404,8 +404,8 @@ intval($params['uid']), LOGGER_DEBUG); $textversion = strip_tags(html_entity_decode(bbcode(stripslashes(str_replace(array("\\r\\n", "\\r", "\\n"), "\n", $body))),ENT_QUOTES,'UTF-8')); - $htmlversion = html_entity_decode(bbcode(stripslashes(str_replace(array("\\r\\n", "\\r","\\n\\n" ,"\\n"), - "
\n",$body)))); + $htmlversion = html_entity_decode(bbcode(stripslashes(str_replace(array("\\r\\n", "\\r","\\n\\n" ,"\\n"), + "
\n",$body))),ENT_QUOTES,'UTF-8'); $datarray = array(); $datarray['banner'] = $banner; diff --git a/include/network.php b/include/network.php index f032e712c8..4c6af8e71b 100644 --- a/include/network.php +++ b/include/network.php @@ -35,7 +35,7 @@ function fetch_url($url,$binary = false, &$redirects = 0, $timeout = 0, $accept_ } @curl_setopt($ch, CURLOPT_RETURNTRANSFER,true); - @curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (compatible; Friendica)"); + @curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (compatible; ".FRIENDICA_PLATFORM." ".FRIENDICA_VERSION."-".DB_UPDATE_VERSION.")"); if(intval($timeout)) { @@ -72,7 +72,7 @@ function fetch_url($url,$binary = false, &$redirects = 0, $timeout = 0, $accept_ $base = $s; $curl_info = @curl_getinfo($ch); $http_code = $curl_info['http_code']; -// logger('fetch_url:' . $http_code . ' data: ' . $s); + logger('fetch_url '.$url.': '.$http_code." ".$s, LOGGER_DATA); $header = ''; // Pull out multiple headers, e.g. proxy and continuation headers @@ -134,7 +134,7 @@ function post_url($url,$params, $headers = null, &$redirects = 0, $timeout = 0) curl_setopt($ch, CURLOPT_RETURNTRANSFER,true); curl_setopt($ch, CURLOPT_POST,1); curl_setopt($ch, CURLOPT_POSTFIELDS,$params); - curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (compatible; Friendica)"); + curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (compatible; ".FRIENDICA_PLATFORM." ".FRIENDICA_VERSION."-".DB_UPDATE_VERSION.")"); if(intval($timeout)) { curl_setopt($ch, CURLOPT_TIMEOUT, $timeout); @@ -1163,8 +1163,7 @@ function original_url($url, $depth=1, $fetchbody = false) { 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'); - curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (compatible; Friendica)"); + curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (compatible; ".FRIENDICA_PLATFORM." ".FRIENDICA_VERSION."-".DB_UPDATE_VERSION.")"); $header = curl_exec($ch); $curl_info = @curl_getinfo($ch); diff --git a/js/main.js b/js/main.js index a4a1c977ca..a7ffca8d86 100644 --- a/js/main.js +++ b/js/main.js @@ -21,6 +21,7 @@ var src = null; var prev = null; var livetime = null; + var force_update = false; var msie = false; var stopped = false; var totStopped = false; @@ -301,11 +302,16 @@ prev = 'live-' + src; in_progress = true; + + if ($(document).scrollTop() == 0) + force_update = true; + var udargs = ((netargs.length) ? '/' + netargs : ''); - var update_url = 'update_' + src + udargs + '&p=' + profile_uid + '&page=' + profile_page + '&msie=' + ((msie) ? 1 : 0); + var update_url = 'update_' + src + udargs + '&p=' + profile_uid + '&page=' + profile_page + '&msie=' + ((msie) ? 1 : 0) + '&force=' + ((force_update) ? 1 : 0); $.get(update_url,function(data) { in_progress = false; + force_update = false; // $('.collapsed-comments',data).each(function() { // var ident = $(this).attr('id'); // var is_hidden = $('#' + ident).is(':hidden'); @@ -414,6 +420,7 @@ $('#like-rotator-' + ident.toString()).show(); $.get('like/' + ident.toString() + '?verb=' + verb, NavUpdate ); liking = 1; + force_update = true; } function dosubthread(ident) { @@ -505,6 +512,7 @@ commentClose(tarea,id); if(timer) clearTimeout(timer); timer = setTimeout(NavUpdate,10); + force_update = true; } if(data.reload) { window.location.href=data.reload; @@ -637,6 +645,7 @@ function notifyMarkAll() { $.get('notify/mark/all', function(data) { if(timer) clearTimeout(timer); timer = setTimeout(NavUpdate,1000); + force_update = true; }); } diff --git a/mod/item.php b/mod/item.php index ac8abac996..901fb3385d 100644 --- a/mod/item.php +++ b/mod/item.php @@ -77,9 +77,12 @@ function item_post(&$a) { $thr_parent = ''; $parid = 0; $r = false; + $objecttype = null; if($parent || $parent_uri) { + $objecttype = ACTIVITY_OBJ_COMMENT; + if(! x($_REQUEST,'type')) $_REQUEST['type'] = 'net-comment'; @@ -195,6 +198,7 @@ function item_post(&$a) { $location = $orig_post['location']; $coord = $orig_post['coord']; $verb = $orig_post['verb']; + $objecttype = $orig_post['object-type']; $emailcc = $orig_post['emailcc']; $app = $orig_post['app']; $categories = $orig_post['file']; @@ -425,6 +429,9 @@ function item_post(&$a) { if((! $preview) && preg_match_all("/\[img([\=0-9x]*?)\](.*?)\[\/img\]/",$body,$match)) { $images = $match[2]; if(count($images)) { + + $objecttype = ACTIVITY_OBJ_IMAGE; + foreach($images as $image) { if(! stristr($image,$a->get_baseurl() . '/photo/')) continue; @@ -494,6 +501,7 @@ function item_post(&$a) { $bookmark = 0; if(preg_match_all("/\[bookmark\=([^\]]*)\](.*?)\[\/bookmark\]/ism",$body,$match,PREG_SET_ORDER)) { + $objecttype = ACTIVITY_OBJ_BOOKMARK; $bookmark = 1; } @@ -509,6 +517,20 @@ function item_post(&$a) { $body = scale_external_images($body,false); + // Setting the object type if not defined before + if (!$objecttype) { + $objecttype = ACTIVITY_OBJ_NOTE; // Default value + require_once("include/plaintext.php"); + $objectdata = get_attached_data($body); + + if ($post["type"] == "link") + $objecttype = ACTIVITY_OBJ_BOOKMARK; + elseif ($post["type"] == "video") + $objecttype = ACTIVITY_OBJ_VIDEO; + elseif ($post["type"] == "photo") + $objecttype = ACTIVITY_OBJ_IMAGE; + + } /** * Look for any tags and linkify them @@ -641,6 +663,7 @@ function item_post(&$a) { $datarray['file'] = $categories; $datarray['inform'] = $inform; $datarray['verb'] = $verb; + $datarray['object-type'] = $objecttype; $datarray['allow_cid'] = $str_contact_allow; $datarray['allow_gid'] = $str_group_allow; $datarray['deny_cid'] = $str_contact_deny; @@ -728,8 +751,8 @@ function item_post(&$a) { $r = q("INSERT INTO `item` (`guid`, `uid`,`type`,`wall`,`gravity`, `network`, `contact-id`,`owner-name`,`owner-link`,`owner-avatar`, `author-name`, `author-link`, `author-avatar`, `created`, `edited`, `commented`, `received`, `changed`, `uri`, `thr-parent`, `title`, `body`, `app`, `location`, `coord`, - `tag`, `inform`, `verb`, `postopts`, `allow_cid`, `allow_gid`, `deny_cid`, `deny_gid`, `private`, `pubmail`, `attach`, `bookmark`,`origin`, `moderated`, `file` ) - VALUES( '%s', %d, '%s', %d, %d, '%s', %d, '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', %d, %d, '%s', %d, %d, %d, '%s' )", + `tag`, `inform`, `verb`, `object-type`, `postopts`, `allow_cid`, `allow_gid`, `deny_cid`, `deny_gid`, `private`, `pubmail`, `attach`, `bookmark`,`origin`, `moderated`, `file` ) + VALUES( '%s', %d, '%s', %d, %d, '%s', %d, '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', %d, %d, '%s', %d, %d, %d, '%s' )", dbesc($datarray['guid']), intval($datarray['uid']), dbesc($datarray['type']), @@ -758,6 +781,7 @@ function item_post(&$a) { dbesc($datarray['tag']), dbesc($datarray['inform']), dbesc($datarray['verb']), + dbesc($datarray['object-type']), dbesc($datarray['postopts']), dbesc($datarray['allow_cid']), dbesc($datarray['allow_gid']), @@ -911,10 +935,6 @@ function item_post(&$a) { call_hooks('post_local_end', $datarray); - // if no auto update is enabled, then disable it temporarily - if (get_pconfig($profile_uid, "system", "no_auto_update") == 1) - set_pconfig($profile_uid, "system", "no_auto_update", -1); - if(strlen($emailcc) && $profile_uid == local_user()) { $erecips = explode(',', $emailcc); if(count($erecips)) { diff --git a/mod/like.php b/mod/like.php index 5ed58245ae..bbb0728965 100755 --- a/mod/like.php +++ b/mod/like.php @@ -136,10 +136,6 @@ function like_content(&$a) { // Save the author information for the unlike in case we need to relay to Diaspora store_diaspora_like_retract_sig($activity, $item, $like_item, $contact); - // if no auto update is enabled, then disable it temporarily - if (get_pconfig($owner_uid, "system", "no_auto_update") == 1) - set_pconfig($owner_uid, "system", "no_auto_update", -1); - // proc_run('php',"include/notifier.php","like","$post_id"); // $post_id isn't defined here! $like_item_id = $like_item['id']; proc_run('php',"include/notifier.php","like","$like_item_id"); @@ -222,10 +218,6 @@ EOT; // Save the author information for the like in case we need to relay to Diaspora store_diaspora_like_sig($activity, $post_type, $contact, $post_id); - // if no auto update is enabled, then disable it temporarily - if (get_pconfig($owner_uid, "system", "no_auto_update") == 1) - set_pconfig($owner_uid, "system", "no_auto_update", -1); - $arr['id'] = $post_id; call_hooks('post_local_end', $arr); diff --git a/mod/parse_url.php b/mod/parse_url.php index 7f10dce349..5048f4fa53 100644 --- a/mod/parse_url.php +++ b/mod/parse_url.php @@ -71,8 +71,7 @@ function parseurl_getsiteinfo($url, $no_guessing = false, $do_oembed = true, $co curl_setopt($ch, CURLOPT_TIMEOUT, 3); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); //curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); - //curl_setopt($ch,CURLOPT_USERAGENT,' Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:24.0) Gecko/20100101 Firefox/24.0'); - curl_setopt($ch,CURLOPT_USERAGENT, "Mozilla/5.0 (compatible; Friendica)"); + curl_setopt($ch,CURLOPT_USERAGENT, "Mozilla/5.0 (compatible; ".FRIENDICA_PLATFORM." ".FRIENDICA_VERSION."-".DB_UPDATE_VERSION.")"); $header = curl_exec($ch); $curl_info = @curl_getinfo($ch); diff --git a/mod/settings.php b/mod/settings.php index a4145e48c4..ae4c36e0cc 100644 --- a/mod/settings.php +++ b/mod/settings.php @@ -886,7 +886,7 @@ function settings_content(&$a) { '$nosmile' => array('nosmile', t("Don't show emoticons"), $nosmile, ''), '$noinfo' => array('noinfo', t("Don't show notices"), $noinfo, ''), '$infinite_scroll' => array('infinite_scroll', t("Infinite scroll"), $infinite_scroll, ''), - '$no_auto_update' => array('no_auto_update', t("Disable automatic network update"), $no_auto_update, ''), + '$no_auto_update' => array('no_auto_update', t("Automatic updates only at the top of the network page"), $no_auto_update, 'When disabled, the network page is updated all the time, which could be confusing while reading.'), '$theme_config' => $theme_config, )); diff --git a/mod/update_network.php b/mod/update_network.php index 65366d1377..9c6e45ca41 100644 --- a/mod/update_network.php +++ b/mod/update_network.php @@ -13,12 +13,9 @@ function update_network_content(&$a) { echo "\r\n"; echo (($_GET['msie'] == 1) ? '
' : '
'); - $no_auto_update = get_pconfig($profile_uid, "system", "no_auto_update"); - if ($no_auto_update <= 0) { + if (!get_pconfig($profile_uid, "system", "no_auto_update") OR ($_GET['force'] == 1)) $text = network_content($a,$profile_uid); - if ($no_auto_update < 0) - set_pconfig($profile_uid, "system", "no_auto_update", 1); - } else + else $text = ""; $pattern = "/]*) src=\"([^\"]*)\"/"; diff --git a/view/templates/settings_display.tpl b/view/templates/settings_display.tpl index ad7feae3cc..baf18aff28 100644 --- a/view/templates/settings_display.tpl +++ b/view/templates/settings_display.tpl @@ -13,10 +13,10 @@ {{include file="field_themeselect.tpl" field=$mobile_theme}} {{include file="field_input.tpl" field=$itemspage_mobile_network}} {{include file="field_input.tpl" field=$ajaxint}} +{{include file="field_checkbox.tpl" field=$no_auto_update}} {{include file="field_checkbox.tpl" field=$nosmile}} {{include file="field_checkbox.tpl" field=$noinfo}} {{include file="field_checkbox.tpl" field=$infinite_scroll}} -{{include file="field_checkbox.tpl" field=$no_auto_update}}