Merge branch 'master' into groups
This commit is contained in:
commit
fd4fe24406
12 changed files with 89 additions and 38 deletions
4
boot.php
4
boot.php
|
@ -9,9 +9,9 @@ require_once('include/nav.php');
|
|||
require_once('include/cache.php');
|
||||
|
||||
define ( 'FRIENDIKA_PLATFORM', 'Friendica');
|
||||
define ( 'FRIENDIKA_VERSION', '2.3.1166' );
|
||||
define ( 'FRIENDIKA_VERSION', '2.3.1169' );
|
||||
define ( 'DFRN_PROTOCOL_VERSION', '2.22' );
|
||||
define ( 'DB_UPDATE_VERSION', 1103 );
|
||||
define ( 'DB_UPDATE_VERSION', 1105 );
|
||||
|
||||
define ( 'EOL', "<br />\r\n" );
|
||||
define ( 'ATOM_TIME', 'Y-m-d\TH:i:s\Z' );
|
||||
|
|
11
database.sql
11
database.sql
|
@ -113,7 +113,8 @@ CREATE TABLE IF NOT EXISTS `contact` (
|
|||
KEY `issued-id` (`issued-id`),
|
||||
KEY `dfrn-id` (`dfrn-id`),
|
||||
KEY `blocked` (`blocked`),
|
||||
KEY `readonly` (`readonly`)
|
||||
KEY `readonly` (`readonly`),
|
||||
KEY `pending` (`pending`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
|
||||
|
||||
-- --------------------------------------------------------
|
||||
|
@ -225,6 +226,7 @@ CREATE TABLE IF NOT EXISTS `item` (
|
|||
`unseen` tinyint(1) NOT NULL DEFAULT '1',
|
||||
`deleted` tinyint(1) NOT NULL DEFAULT '0',
|
||||
`origin` tinyint(1) NOT NULL DEFAULT '0',
|
||||
`forum_mode` tinyint(1) NOT NULL DEFAULT '0',
|
||||
`last-child` tinyint(1) unsigned NOT NULL DEFAULT '1',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `guid` (`guid`),
|
||||
|
@ -243,10 +245,13 @@ CREATE TABLE IF NOT EXISTS `item` (
|
|||
KEY `starred` (`starred`),
|
||||
KEY `deleted` (`deleted`),
|
||||
KEY `origin` (`origin`),
|
||||
KEY `forum_mode` (`forum_mode`),
|
||||
KEY `last-child` (`last-child`),
|
||||
KEY `unseen` (`unseen`),
|
||||
KEY `wall` (`wall`),
|
||||
FULLTEXT KEY `title` (`title`),
|
||||
FULLTEXT KEY `body` (`body`),
|
||||
FULLTEXT KEY `tag` (`tag`),
|
||||
FULLTEXT KEY `allow_cid` (`allow_cid`),
|
||||
FULLTEXT KEY `allow_gid` (`allow_gid`),
|
||||
FULLTEXT KEY `deny_cid` (`deny_cid`),
|
||||
|
@ -441,6 +446,10 @@ CREATE TABLE IF NOT EXISTS `user` (
|
|||
PRIMARY KEY (`uid`),
|
||||
KEY `nickname` (`nickname`),
|
||||
KEY `account_expired` (`account_expired`),
|
||||
KEY `hidewall` (`hidewall`),
|
||||
KEY `blockwall` (`blockwall`),
|
||||
KEY `blocked` (`blocked`),
|
||||
KEY `verified` (`verified`),
|
||||
KEY `login_date` (`login_date`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
|
||||
|
||||
|
|
|
@ -112,10 +112,9 @@ function localize_item(&$item){
|
|||
|
||||
$parsedobj = parse_xml_string($xmlhead.$item['object']);
|
||||
|
||||
$tag = sprintf('#[url=%s]%s[/url]', $parsedobj->link, $parsedobj->content);
|
||||
$tag = sprintf('#[url=%s]%s[/url]', $parsedobj->id, $parsedobj->content);
|
||||
$item['body'] = sprintf( t('%1$s tagged %2$s\'s %3$s with %4$s'), $author, $objauthor, $plink, $tag );
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -455,7 +455,9 @@ function diaspora_request($importer,$xml) {
|
|||
intval($importer['uid'])
|
||||
);
|
||||
|
||||
if(count($self)) {
|
||||
// they are not CONTACT_IS_FOLLOWER anymore but that's what we have in the array
|
||||
|
||||
if(count($self) && $contact['rel'] == CONTACT_IS_FOLLOWER) {
|
||||
|
||||
$arr = array();
|
||||
$arr['uri'] = $arr['parent-uri'] = item_new_uri($a->get_hostname(), $importer['uid']);
|
||||
|
|
|
@ -1529,10 +1529,11 @@ function consume_feed($xml,$importer,&$contact, &$hub, $datedir = 0, $pass = 0)
|
|||
continue;
|
||||
|
||||
// extract tag, if not duplicate, add to parent item
|
||||
if($xo->content) {
|
||||
if(! (stristr($r[0]['tag'],trim($xo->content)))) {
|
||||
if($xo->id && $xo->content) {
|
||||
$newtag = '#[url=' . $xo->id . ']'. $xo->content . '[/url]';
|
||||
if(! (stristr($r[0]['tag'],$newtag))) {
|
||||
q("UPDATE item SET tag = '%s' WHERE id = %d LIMIT 1",
|
||||
dbesc($r[0]['tag'] . (strlen($r[0]['tag']) ? ',' : '') . '#[url=' . $xo->id . ']'. $xo->content . '[/url]'),
|
||||
dbesc($r[0]['tag'] . (strlen($r[0]['tag']) ? ',' : '') . $newtag),
|
||||
intval($r[0]['id'])
|
||||
);
|
||||
}
|
||||
|
@ -2084,15 +2085,17 @@ dbg(0);
|
|||
if(($xt->type == ACTIVITY_OBJ_NOTE) && ($xt->id == $r[0]['uri'])) {
|
||||
|
||||
// extract tag, if not duplicate, and this user allows tags, add to parent item
|
||||
if($xo->content) {
|
||||
|
||||
if(! (stristr($r[0]['tag'],trim($xo->content)))) {
|
||||
if($xo->id && $xo->content) {
|
||||
$newtag = '#[url=' . $xo->id . ']'. $xo->content . '[/url]';
|
||||
|
||||
if(! (stristr($r[0]['tag'],$newtag))) {
|
||||
$i = q("SELECT `blocktags` FROM `user` where `uid` = %d LIMIT 1",
|
||||
intval($importer['importer_uid'])
|
||||
);
|
||||
if(count($i) && ! ($i[0]['blocktags'])) {
|
||||
q("UPDATE item SET tag = '%s' WHERE id = %d LIMIT 1",
|
||||
dbesc($r[0]['tag'] . (strlen($r[0]['tag']) ? ',' : '') . '#[url=' . $xo->id . ']'. $xo->content . '[/url]'),
|
||||
dbesc($r[0]['tag'] . (strlen($r[0]['tag']) ? ',' : '') . $newtag),
|
||||
intval($r[0]['id'])
|
||||
);
|
||||
}
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
// results.
|
||||
|
||||
if(! function_exists('fetch_url')) {
|
||||
function fetch_url($url,$binary = false, &$redirects = 0, $timeout = 0) {
|
||||
function fetch_url($url,$binary = false, &$redirects = 0, $timeout = 0, $accept_content=Null) {
|
||||
|
||||
$a = get_app();
|
||||
|
||||
|
@ -14,8 +14,16 @@ function fetch_url($url,$binary = false, &$redirects = 0, $timeout = 0) {
|
|||
return false;
|
||||
|
||||
@curl_setopt($ch, CURLOPT_HEADER, true);
|
||||
|
||||
if (!is_null($accept_content)){
|
||||
curl_setopt($ch,CURLOPT_HTTPHEADER, array (
|
||||
"Accept: "+$accept_content
|
||||
));
|
||||
}
|
||||
|
||||
@curl_setopt($ch, CURLOPT_RETURNTRANSFER,true);
|
||||
@curl_setopt($ch, CURLOPT_USERAGENT, "Friendika");
|
||||
@curl_setopt($ch, CURLOPT_USERAGENT, "Friendica");
|
||||
|
||||
|
||||
if(intval($timeout)) {
|
||||
@curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);
|
||||
|
@ -97,7 +105,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, "Friendika");
|
||||
curl_setopt($ch, CURLOPT_USERAGENT, "Friendica");
|
||||
|
||||
if(intval($timeout)) {
|
||||
curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);
|
||||
|
|
|
@ -13,24 +13,30 @@ function oembed_replacecb($matches){
|
|||
function oembed_fetch_url($embedurl){
|
||||
|
||||
$txt = Cache::get($embedurl);
|
||||
|
||||
$noexts = array("mp3","mp4","ogg","ogv","oga","ogm","webm");
|
||||
$ext = pathinfo(strtolower($embedurl),PATHINFO_EXTENSION);
|
||||
|
||||
|
||||
if(is_null($txt)){
|
||||
$txt = "";
|
||||
|
||||
// try oembed autodiscovery
|
||||
$redirects = 0;
|
||||
$html_text = fetch_url($embedurl, false, $redirects, 15);
|
||||
if($html_text){
|
||||
$dom = @DOMDocument::loadHTML($html_text);
|
||||
if ($dom){
|
||||
$xpath = new DOMXPath($dom);
|
||||
$attr = "oembed";
|
||||
|
||||
$xattr = oe_build_xpath("class","oembed");
|
||||
$entries = $xpath->query("//link[@type='application/json+oembed']");
|
||||
foreach($entries as $e){
|
||||
$href = $e->getAttributeNode("href")->nodeValue;
|
||||
$txt = fetch_url($href);
|
||||
if (!in_array($ext, $noexts)){
|
||||
// try oembed autodiscovery
|
||||
$redirects = 0;
|
||||
$html_text = fetch_url($embedurl, false, $redirects, 15, "text/*");
|
||||
if($html_text){
|
||||
$dom = @DOMDocument::loadHTML($html_text);
|
||||
if ($dom){
|
||||
$xpath = new DOMXPath($dom);
|
||||
$attr = "oembed";
|
||||
|
||||
$xattr = oe_build_xpath("class","oembed");
|
||||
$entries = $xpath->query("//link[@type='application/json+oembed']");
|
||||
foreach($entries as $e){
|
||||
$href = $e->getAttributeNode("href")->nodeValue;
|
||||
$txt = fetch_url($href);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -75,8 +75,6 @@ $a->timezone = (($default_timezone) ? $default_timezone : 'UTC');
|
|||
|
||||
date_default_timezone_set($a->timezone);
|
||||
|
||||
$a->init_pagehead();
|
||||
|
||||
session_start();
|
||||
|
||||
/**
|
||||
|
@ -95,6 +93,12 @@ if((x($_SESSION,'language')) && ($_SESSION['language'] !== $lang)) {
|
|||
load_translation_table($lang);
|
||||
}
|
||||
|
||||
/*
|
||||
* Create the page head after setting the language
|
||||
*
|
||||
*/
|
||||
|
||||
$a->init_pagehead();
|
||||
|
||||
/**
|
||||
*
|
||||
|
|
|
@ -3041,9 +3041,13 @@ class HTML5_TreeBuilder {
|
|||
|
||||
if (!empty($token['attr'])) {
|
||||
foreach($token['attr'] as $attr) {
|
||||
// mike@macgirvin.com 2011-10-21, stray double quotes and/or numeric tags cause everything to abort
|
||||
$attr['name'] = str_replace('"','',$attr['name']);
|
||||
if($attr['name'] && (!$el->hasAttribute($attr['name'])) && (! is_numeric($attr['name']))) {
|
||||
|
||||
// mike@macgirvin.com 2011-11-17, check attribute name for
|
||||
// validity (ignoring extenders and combiners) as illegal chars in names
|
||||
// causes everything to abort
|
||||
|
||||
$valid = preg_match('/^[a-zA-Z\_\:]([\-a-zA-Z0-9\_\:\.]+$)/',$attr['name'],$matches);
|
||||
if($attr['name'] && (!$el->hasAttribute($attr['name'])) && ($valid)) {
|
||||
$el->setAttribute($attr['name'], $attr['value']);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -865,12 +865,12 @@ function item_post(&$a) {
|
|||
$addr = trim($recip);
|
||||
if(! strlen($addr))
|
||||
continue;
|
||||
$disclaimer = '<hr />' . sprintf( t('This message was sent to you by %s, a member of the Friendika social network.'),$a->user['username'])
|
||||
$disclaimer = '<hr />' . sprintf( t('This message was sent to you by %s, a member of the Friendica social network.'),$a->user['username'])
|
||||
. '<br />';
|
||||
$disclaimer .= sprintf( t('You may visit them online at %s'), $a->get_baseurl() . '/profile/' . $a->user['nickname']) . EOL;
|
||||
$disclaimer .= t('Please contact the sender by replying to this post if you do not wish to receive these messages.') . EOL;
|
||||
|
||||
$subject = '[Friendika]' . ' ' . sprintf( t('%s posted an update.'),$a->user['username']);
|
||||
$subject = '[Friendica]' . ' ' . sprintf( t('%s posted an update.'),$a->user['username']);
|
||||
$headers = 'From: ' . $a->user['username'] . ' <' . $a->user['email'] . '>' . "\n";
|
||||
$headers .= 'MIME-Version: 1.0' . "\n";
|
||||
$headers .= 'Content-Type: text/html; charset=UTF-8' . "\n";
|
||||
|
|
|
@ -644,7 +644,7 @@ function settings_content(&$a) {
|
|||
));
|
||||
|
||||
$hide_wall = replace_macros($opt_tpl,array(
|
||||
'$field' => array('hidewall', t('Hide profile details and all your messages from unknown viewers?'), $a->user['hidewall'], '', array(t('No'),t('Yes'))),
|
||||
'$field' => array('hidewall', t('Hide your profile details from unknown viewers?'), $a->user['hidewall'], '', array(t('No'),t('Yes'))),
|
||||
|
||||
));
|
||||
|
||||
|
|
18
update.php
18
update.php
|
@ -1,6 +1,6 @@
|
|||
<?php
|
||||
|
||||
define( 'UPDATE_VERSION' , 1103 );
|
||||
define( 'UPDATE_VERSION' , 1105 );
|
||||
|
||||
/**
|
||||
*
|
||||
|
@ -884,6 +884,22 @@ function update_1102() {
|
|||
}
|
||||
|
||||
|
||||
function update_1103() {
|
||||
q("ALTER TABLE `item` ADD INDEX ( `wall` ) ");
|
||||
q("ALTER TABLE `item` ADD FULLTEXT ( `tag` ) ");
|
||||
q("ALTER TABLE `contact` ADD INDEX ( `pending` ) ");
|
||||
q("ALTER TABLE `user` ADD INDEX ( `hidewall` ) ");
|
||||
q("ALTER TABLE `user` ADD INDEX ( `blockwall` ) ");
|
||||
q("ALTER TABLE `user` ADD INDEX ( `blocked` ) ");
|
||||
q("ALTER TABLE `user` ADD INDEX ( `verified` ) ");
|
||||
|
||||
}
|
||||
|
||||
function update_1104() {
|
||||
q("ALTER TABLE `item` ADD `forum_mode` TINYINT( 1 ) NOT NULL DEFAULT '0' AFTER `origin` , ADD INDEX ( `forum_mode` ) ");
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
Loading…
Reference in a new issue