Merge pull request #938 from annando/master
API: Don't show own posts in mentions, some "vier" changes and provider name for diaspora
This commit is contained in:
commit
22c45b9bf1
15 changed files with 147 additions and 434 deletions
216
include/api.php
216
include/api.php
|
@ -15,16 +15,16 @@
|
|||
$API = Array();
|
||||
$called_api = Null;
|
||||
|
||||
function api_user() {
|
||||
// It is not sufficient to use local_user() to check whether someone is allowed to use the API,
|
||||
// because this will open CSRF holes (just embed an image with src=friendicasite.com/api/statuses/update?status=CSRF
|
||||
// into a page, and visitors will post something without noticing it).
|
||||
// Instead, use this function.
|
||||
if ($_SESSION["allow_api"])
|
||||
return local_user();
|
||||
function api_user() {
|
||||
// It is not sufficient to use local_user() to check whether someone is allowed to use the API,
|
||||
// because this will open CSRF holes (just embed an image with src=friendicasite.com/api/statuses/update?status=CSRF
|
||||
// into a page, and visitors will post something without noticing it).
|
||||
// Instead, use this function.
|
||||
if ($_SESSION["allow_api"])
|
||||
return local_user();
|
||||
|
||||
return false;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
function api_date($str){
|
||||
//Wed May 23 06:01:13 +0000 2007
|
||||
|
@ -65,9 +65,9 @@
|
|||
|
||||
// workaround for HTTP-auth in CGI mode
|
||||
if(x($_SERVER,'REDIRECT_REMOTE_USER')) {
|
||||
$userpass = base64_decode(substr($_SERVER["REDIRECT_REMOTE_USER"],6)) ;
|
||||
$userpass = base64_decode(substr($_SERVER["REDIRECT_REMOTE_USER"],6)) ;
|
||||
if(strlen($userpass)) {
|
||||
list($name, $password) = explode(':', $userpass);
|
||||
list($name, $password) = explode(':', $userpass);
|
||||
$_SERVER['PHP_AUTH_USER'] = $name;
|
||||
$_SERVER['PHP_AUTH_PW'] = $password;
|
||||
}
|
||||
|
@ -101,10 +101,10 @@
|
|||
if(count($r)){
|
||||
$record = $r[0];
|
||||
} else {
|
||||
logger('API_login failure: ' . print_r($_SERVER,true), LOGGER_DEBUG);
|
||||
header('WWW-Authenticate: Basic realm="Friendica"');
|
||||
header('HTTP/1.0 401 Unauthorized');
|
||||
die('This api requires login');
|
||||
logger('API_login failure: ' . print_r($_SERVER,true), LOGGER_DEBUG);
|
||||
header('WWW-Authenticate: Basic realm="Friendica"');
|
||||
header('HTTP/1.0 401 Unauthorized');
|
||||
die('This api requires login');
|
||||
}
|
||||
|
||||
require_once('include/security.php');
|
||||
|
@ -154,7 +154,7 @@
|
|||
case "json":
|
||||
header ("Content-Type: application/json");
|
||||
foreach($r as $rr)
|
||||
return json_encode($rr);
|
||||
return json_encode($rr);
|
||||
break;
|
||||
case "rss":
|
||||
header ("Content-Type: application/rss+xml");
|
||||
|
@ -167,7 +167,7 @@
|
|||
case "as":
|
||||
//header ("Content-Type: application/json");
|
||||
//foreach($r as $rr)
|
||||
// return json_encode($rr);
|
||||
// return json_encode($rr);
|
||||
return json_encode($r);
|
||||
break;
|
||||
|
||||
|
@ -436,9 +436,6 @@
|
|||
// Add a nick if it isn't present there
|
||||
if (($uinfo[0]['nick'] == "") OR ($uinfo[0]['name'] == $uinfo[0]['nick'])) {
|
||||
$uinfo[0]['nick'] = api_get_nick($uinfo[0]["url"]);
|
||||
//if ($uinfo[0]['nick'] != "")
|
||||
// q("UPDATE contact SET nick = '%s' WHERE id = %d",
|
||||
// dbesc($uinfo[0]['nick']), intval($uinfo[0]["id"]));
|
||||
}
|
||||
|
||||
// Fetching unique id
|
||||
|
@ -621,46 +618,46 @@
|
|||
}
|
||||
|
||||
/*Waitman Gobble Mod*/
|
||||
function api_statuses_mediap(&$a, $type) {
|
||||
if (api_user()===false) {
|
||||
logger('api_statuses_update: no user');
|
||||
return false;
|
||||
}
|
||||
$user_info = api_get_user($a);
|
||||
function api_statuses_mediap(&$a, $type) {
|
||||
if (api_user()===false) {
|
||||
logger('api_statuses_update: no user');
|
||||
return false;
|
||||
}
|
||||
$user_info = api_get_user($a);
|
||||
|
||||
$_REQUEST['type'] = 'wall';
|
||||
$_REQUEST['profile_uid'] = api_user();
|
||||
$_REQUEST['api_source'] = true;
|
||||
$txt = requestdata('status');
|
||||
//$txt = urldecode(requestdata('status'));
|
||||
$_REQUEST['type'] = 'wall';
|
||||
$_REQUEST['profile_uid'] = api_user();
|
||||
$_REQUEST['api_source'] = true;
|
||||
$txt = requestdata('status');
|
||||
//$txt = urldecode(requestdata('status'));
|
||||
|
||||
require_once('library/HTMLPurifier.auto.php');
|
||||
require_once('include/html2bbcode.php');
|
||||
require_once('library/HTMLPurifier.auto.php');
|
||||
require_once('include/html2bbcode.php');
|
||||
|
||||
if((strpos($txt,'<') !== false) || (strpos($txt,'>') !== false)) {
|
||||
if((strpos($txt,'<') !== false) || (strpos($txt,'>') !== false)) {
|
||||
$txt = html2bb_video($txt);
|
||||
$config = HTMLPurifier_Config::createDefault();
|
||||
$config->set('Cache.DefinitionImpl', null);
|
||||
$config->set('Cache.DefinitionImpl', null);
|
||||
$purifier = new HTMLPurifier($config);
|
||||
$txt = $purifier->purify($txt);
|
||||
$txt = $purifier->purify($txt);
|
||||
}
|
||||
$txt = html2bbcode($txt);
|
||||
|
||||
$a->argv[1]=$user_info['screen_name']; //should be set to username?
|
||||
$a->argv[1]=$user_info['screen_name']; //should be set to username?
|
||||
|
||||
$_REQUEST['hush']='yeah'; //tell wall_upload function to return img info instead of echo
|
||||
require_once('mod/wall_upload.php');
|
||||
require_once('mod/wall_upload.php');
|
||||
$bebop = wall_upload_post($a);
|
||||
|
||||
//now that we have the img url in bbcode we can add it to the status and insert the wall item.
|
||||
$_REQUEST['body']=$txt."\n\n".$bebop;
|
||||
require_once('mod/item.php');
|
||||
item_post($a);
|
||||
$_REQUEST['body']=$txt."\n\n".$bebop;
|
||||
require_once('mod/item.php');
|
||||
item_post($a);
|
||||
|
||||
// this should output the last post (the one we just posted).
|
||||
return api_status_show($a,$type);
|
||||
}
|
||||
api_register_func('api/statuses/mediap','api_statuses_mediap', true);
|
||||
// this should output the last post (the one we just posted).
|
||||
return api_status_show($a,$type);
|
||||
}
|
||||
api_register_func('api/statuses/mediap','api_statuses_mediap', true);
|
||||
/*Waitman Gobble Mod*/
|
||||
|
||||
|
||||
|
@ -746,22 +743,6 @@
|
|||
logger('api_status_show: user_info: '.print_r($user_info, true), LOGGER_DEBUG);
|
||||
|
||||
// get last public wall message
|
||||
//$lastwall = q("SELECT `item`.*, `i`.`contact-id` as `reply_uid`, `c`.`nick` as `reply_author`, `i`.`author-link` AS `item-author`
|
||||
// FROM `item`, `contact`, `item` as `i`, `contact` as `c`
|
||||
// WHERE `item`.`contact-id` = %d
|
||||
// AND ((`item`.`author-link` IN ('%s', '%s')) OR (`item`.`owner-link` IN ('%s', '%s')))
|
||||
// AND `i`.`id` = `item`.`parent`
|
||||
// AND `contact`.`id`=`item`.`contact-id` AND `c`.`id`=`i`.`contact-id` AND `contact`.`self`=1
|
||||
// AND `item`.`type`!='activity'
|
||||
// AND `item`.`allow_cid`='' AND `item`.`allow_gid`='' AND `item`.`deny_cid`='' AND `item`.`deny_gid`=''
|
||||
// ORDER BY `item`.`created` DESC
|
||||
// LIMIT 1",
|
||||
// intval($user_info['cid']),
|
||||
// dbesc($user_info['url']),
|
||||
// dbesc(normalise_link($user_info['url'])),
|
||||
// dbesc($user_info['url']),
|
||||
// dbesc(normalise_link($user_info['url']))
|
||||
//);
|
||||
$lastwall = q("SELECT `item`.*, `i`.`contact-id` as `reply_uid`, `i`.`author-link` AS `item-author`
|
||||
FROM `item`, `item` as `i`
|
||||
WHERE `item`.`contact-id` = %d
|
||||
|
@ -859,7 +840,7 @@
|
|||
|
||||
$lastwall = q("SELECT `item`.*
|
||||
FROM `item`, `contact`
|
||||
WHERE `item`.`uid` = %d AND `item`.`contact-id` = %d
|
||||
WHERE `item`.`uid` = %d AND `verb` = '%s' AND `item`.`contact-id` = %d
|
||||
AND ((`item`.`author-link` IN ('%s', '%s')) OR (`item`.`owner-link` IN ('%s', '%s')))
|
||||
AND `contact`.`id`=`item`.`contact-id`
|
||||
AND `type`!='activity'
|
||||
|
@ -867,13 +848,13 @@
|
|||
ORDER BY `created` DESC
|
||||
LIMIT 1",
|
||||
intval(api_user()),
|
||||
dbesc(ACTIVITY_POST),
|
||||
intval($user_info['cid']),
|
||||
dbesc($user_info['url']),
|
||||
dbesc(normalise_link($user_info['url'])),
|
||||
dbesc($user_info['url']),
|
||||
dbesc(normalise_link($user_info['url']))
|
||||
);
|
||||
//print_r($user_info);
|
||||
if (count($lastwall)>0){
|
||||
$lastwall = $lastwall[0];
|
||||
|
||||
|
@ -884,7 +865,7 @@
|
|||
$in_reply_to_screen_name = NULL;
|
||||
if ($lastwall['parent']!=$lastwall['id']) {
|
||||
$reply = q("SELECT `item`.`id`, `item`.`contact-id` as `reply_uid`, `contact`.`nick` as `reply_author`, `item`.`author-link` AS `item-author`
|
||||
FROM `item`,`contact` WHERE `contact`.`id`=`item`.`contact-id` AND `item`.`id` = %d", intval($lastwall['parent']));
|
||||
FROM `item`,`contact` WHERE `contact`.`id`=`item`.`contact-id` AND `item`.`id` = %d", intval($lastwall['parent']));
|
||||
if (count($reply)>0) {
|
||||
$in_reply_to_status_id = intval($lastwall['parent']);
|
||||
$in_reply_to_status_id_str = (string) intval($lastwall['parent']);
|
||||
|
@ -986,15 +967,15 @@
|
|||
`contact`.`network`, `contact`.`thumb`, `contact`.`dfrn-id`, `contact`.`self`,
|
||||
`contact`.`id` AS `cid`, `contact`.`uid` AS `contact-uid`
|
||||
FROM `item`, `contact`
|
||||
WHERE `item`.`uid` = %d
|
||||
WHERE `item`.`uid` = %d AND `verb` = '%s'
|
||||
AND `item`.`visible` = 1 and `item`.`moderated` = 0 AND `item`.`deleted` = 0
|
||||
AND `contact`.`id` = `item`.`contact-id`
|
||||
AND `contact`.`blocked` = 0 AND `contact`.`pending` = 0
|
||||
$sql_extra
|
||||
AND `item`.`id`>%d
|
||||
ORDER BY `item`.`id` DESC LIMIT %d ,%d ",
|
||||
//intval($user_info['uid']),
|
||||
intval(api_user()),
|
||||
dbesc(ACTIVITY_POST),
|
||||
intval($since_id),
|
||||
intval($start), intval($count)
|
||||
);
|
||||
|
@ -1057,24 +1038,25 @@
|
|||
if ($conversation_id > 0)
|
||||
$sql_extra .= ' AND `item`.`parent` = '.intval($conversation_id);
|
||||
|
||||
$r = q("SELECT `item`.*, `item`.`id` AS `item_id`, `item`.`network` AS `item_network`,
|
||||
`contact`.`name`, `contact`.`photo`, `contact`.`url`, `contact`.`rel`,
|
||||
`contact`.`network`, `contact`.`thumb`, `contact`.`self`, `contact`.`writable`,
|
||||
`contact`.`id` AS `cid`, `contact`.`uid` AS `contact-uid`,
|
||||
`user`.`nickname`, `user`.`hidewall`
|
||||
FROM `item` INNER JOIN `contact` ON `contact`.`id` = `item`.`contact-id`
|
||||
INNER JOIN `user` ON `user`.`uid` = `item`.`uid`
|
||||
WHERE `item`.`visible` = 1 AND `item`.`deleted` = 0 and `item`.`moderated` = 0
|
||||
AND `item`.`allow_cid` = '' AND `item`.`allow_gid` = ''
|
||||
AND `item`.`deny_cid` = '' AND `item`.`deny_gid` = ''
|
||||
AND `item`.`private` = 0 AND `item`.`wall` = 1 AND `user`.`hidewall` = 0
|
||||
AND `contact`.`blocked` = 0 AND `contact`.`pending` = 0
|
||||
$r = q("SELECT `item`.*, `item`.`id` AS `item_id`, `item`.`network` AS `item_network`,
|
||||
`contact`.`name`, `contact`.`photo`, `contact`.`url`, `contact`.`rel`,
|
||||
`contact`.`network`, `contact`.`thumb`, `contact`.`self`, `contact`.`writable`,
|
||||
`contact`.`id` AS `cid`, `contact`.`uid` AS `contact-uid`,
|
||||
`user`.`nickname`, `user`.`hidewall`
|
||||
FROM `item` STRAIGHT_JOIN `contact` ON `contact`.`id` = `item`.`contact-id`
|
||||
STRAIGHT_JOIN `user` ON `user`.`uid` = `item`.`uid`
|
||||
WHERE `verb` = '%s' AND `item`.`visible` = 1 AND `item`.`deleted` = 0 and `item`.`moderated` = 0
|
||||
AND `item`.`allow_cid` = '' AND `item`.`allow_gid` = ''
|
||||
AND `item`.`deny_cid` = '' AND `item`.`deny_gid` = ''
|
||||
AND `item`.`private` = 0 AND `item`.`wall` = 1 AND `user`.`hidewall` = 0
|
||||
AND `contact`.`blocked` = 0 AND `contact`.`pending` = 0
|
||||
$sql_extra
|
||||
AND `item`.`id`>%d
|
||||
ORDER BY `item`.`id` DESC LIMIT %d, %d ",
|
||||
ORDER BY `item`.`id` DESC LIMIT %d, %d ",
|
||||
dbesc(ACTIVITY_POST),
|
||||
intval($since_id),
|
||||
intval($start),
|
||||
intval($count));
|
||||
intval($start),
|
||||
intval($count));
|
||||
|
||||
$ret = api_format_items($r,$user_info);
|
||||
|
||||
|
@ -1197,13 +1179,14 @@
|
|||
FROM `item` INNER JOIN (SELECT `uri`,`parent` FROM `item` WHERE `id` = %d) AS `temp1`
|
||||
ON (`item`.`thr-parent` = `temp1`.`uri` AND `item`.`parent` = `temp1`.`parent`), `contact`
|
||||
WHERE `item`.`visible` = 1 and `item`.`moderated` = 0 AND `item`.`deleted` = 0
|
||||
AND `item`.`uid` = %d AND `contact`.`id` = `item`.`contact-id`
|
||||
AND `item`.`uid` = %d AND `item`.`verb` = '%s' AND `contact`.`id` = `item`.`contact-id`
|
||||
AND `contact`.`blocked` = 0 AND `contact`.`pending` = 0
|
||||
AND `item`.`id`>%d $sql_extra
|
||||
ORDER BY `item`.`id` DESC LIMIT %d ,%d",
|
||||
intval($id), intval(api_user()),
|
||||
intval($since_id),
|
||||
intval($start), intval($count)
|
||||
dbesc(ACTIVITY_POST),
|
||||
intval($since_id),
|
||||
intval($start), intval($count)
|
||||
);
|
||||
|
||||
if (!$r)
|
||||
|
@ -1347,27 +1330,27 @@
|
|||
$myurl = str_replace('www.','',$myurl);
|
||||
$diasp_url = str_replace('/profile/','/u/',$myurl);
|
||||
|
||||
$sql_extra .= sprintf(" AND `item`.`parent` IN (SELECT distinct(`parent`) from item where `author-link` IN ('https://%s', 'http://%s') OR `mention`)",
|
||||
dbesc(protect_sprintf($myurl)),
|
||||
dbesc(protect_sprintf($myurl))
|
||||
);
|
||||
|
||||
if ($max_id > 0)
|
||||
$sql_extra .= ' AND `item`.`id` <= '.intval($max_id);
|
||||
$sql_extra = ' AND `item`.`id` <= '.intval($max_id);
|
||||
|
||||
$r = q("SELECT `item`.*, `item`.`id` AS `item_id`, `item`.`network` AS `item_network`,
|
||||
`contact`.`name`, `contact`.`photo`, `contact`.`url`, `contact`.`rel`,
|
||||
`contact`.`network`, `contact`.`thumb`, `contact`.`dfrn-id`, `contact`.`self`,
|
||||
`contact`.`id` AS `cid`, `contact`.`uid` AS `contact-uid`
|
||||
FROM `item`, `contact`
|
||||
WHERE `item`.`uid` = %d
|
||||
WHERE `item`.`uid` = %d AND `verb` = '%s'
|
||||
AND NOT (`item`.`author-link` IN ('https://%s', 'http://%s'))
|
||||
AND `item`.`visible` = 1 and `item`.`moderated` = 0 AND `item`.`deleted` = 0
|
||||
AND `contact`.`id` = `item`.`contact-id`
|
||||
AND `contact`.`blocked` = 0 AND `contact`.`pending` = 0
|
||||
AND `item`.`parent` IN (SELECT `iid` from thread where uid = %d AND `mention`)
|
||||
$sql_extra
|
||||
AND `item`.`id`>%d
|
||||
ORDER BY `item`.`id` DESC LIMIT %d ,%d ",
|
||||
//intval($user_info['uid']),
|
||||
intval(api_user()),
|
||||
dbesc(ACTIVITY_POST),
|
||||
dbesc(protect_sprintf($myurl)),
|
||||
dbesc(protect_sprintf($myurl)),
|
||||
intval(api_user()),
|
||||
intval($since_id),
|
||||
intval($start), intval($count)
|
||||
|
@ -1432,7 +1415,7 @@
|
|||
`contact`.`network`, `contact`.`thumb`, `contact`.`dfrn-id`, `contact`.`self`,
|
||||
`contact`.`id` AS `cid`, `contact`.`uid` AS `contact-uid`
|
||||
FROM `item`, `contact`
|
||||
WHERE `item`.`uid` = %d
|
||||
WHERE `item`.`uid` = %d AND `verb` = '%s'
|
||||
AND `item`.`contact-id` = %d
|
||||
AND `item`.`visible` = 1 and `item`.`moderated` = 0 AND `item`.`deleted` = 0
|
||||
AND `contact`.`id` = `item`.`contact-id`
|
||||
|
@ -1441,6 +1424,7 @@
|
|||
AND `item`.`id`>%d
|
||||
ORDER BY `item`.`id` DESC LIMIT %d ,%d ",
|
||||
intval(api_user()),
|
||||
dbesc(ACTIVITY_POST),
|
||||
intval($user_info['cid']),
|
||||
intval($since_id),
|
||||
intval($start), intval($count)
|
||||
|
@ -1496,7 +1480,7 @@
|
|||
`contact`.`network`, `contact`.`thumb`, `contact`.`dfrn-id`, `contact`.`self`,
|
||||
`contact`.`id` AS `cid`, `contact`.`uid` AS `contact-uid`
|
||||
FROM `item`, `contact`
|
||||
WHERE `item`.`uid` = %d
|
||||
WHERE `item`.`uid` = %d AND `verb` = '%s'
|
||||
AND `item`.`visible` = 1 and `item`.`moderated` = 0 AND `item`.`deleted` = 0
|
||||
AND `item`.`starred` = 1
|
||||
AND `contact`.`id` = `item`.`contact-id`
|
||||
|
@ -1504,8 +1488,8 @@
|
|||
$sql_extra
|
||||
AND `item`.`id`>%d
|
||||
ORDER BY `item`.`id` DESC LIMIT %d ,%d ",
|
||||
//intval($user_info['uid']),
|
||||
intval(api_user()),
|
||||
dbesc(ACTIVITY_POST),
|
||||
intval($since_id),
|
||||
intval($start), intval($count)
|
||||
);
|
||||
|
@ -1578,11 +1562,11 @@
|
|||
$singleitem["title"] = $item["text"];
|
||||
$singleitem["verb"] = "post";
|
||||
$singleitem["statusnet:notice_info"]["local_id"] = $item["id"];
|
||||
$singleitem["statusnet:notice_info"]["source"] = $item["source"];
|
||||
$singleitem["statusnet:notice_info"]["favorite"] = "false";
|
||||
$singleitem["statusnet:notice_info"]["repeated"] = "false";
|
||||
//$singleitem["original"] = $item;
|
||||
$items[] = $singleitem;
|
||||
$singleitem["statusnet:notice_info"]["source"] = $item["source"];
|
||||
$singleitem["statusnet:notice_info"]["favorite"] = "false";
|
||||
$singleitem["statusnet:notice_info"]["repeated"] = "false";
|
||||
//$singleitem["original"] = $item;
|
||||
$items[] = $singleitem;
|
||||
}
|
||||
$as['items'] = $items;
|
||||
$as['link']['url'] = $a->get_baseurl()."/".$user_info["screen_name"]."/all";
|
||||
|
@ -1669,7 +1653,7 @@
|
|||
'[url=https://www.youtube.com/watch?v=$1]https://www.youtube.com/watch?v=$1[/url]', $bbcode);
|
||||
$bbcode = preg_replace("/\[youtube\](.*?)\[\/youtube\]/ism",'[url=$1]$1[/url]',$bbcode);
|
||||
|
||||
$Text = preg_replace("/\[vimeo\]([0-9]+)(.*?)\[\/vimeo\]/ism",
|
||||
$Text = preg_replace("/\[vimeo\]([0-9]+)(.*?)\[\/vimeo\]/ism",
|
||||
'[url=https://vimeo.com/$1]https://vimeo.com/$1[/url]', $bbcode);
|
||||
$bbcode = preg_replace("/\[vimeo\](.*?)\[\/vimeo\]/ism",'[url=$1]$1[/url]',$bbcode);
|
||||
|
||||
|
@ -1879,30 +1863,8 @@
|
|||
unset($status["user"]["self"]);
|
||||
|
||||
// 'geo' => array('type' => 'Point',
|
||||
// 'coordinates' => array((float) $notice->lat,
|
||||
// (float) $notice->lon));
|
||||
|
||||
// Seesmic doesn't like the following content
|
||||
// completely disabled to make friendica totally compatible to the statusnet API
|
||||
/*if ($_SERVER['HTTP_USER_AGENT'] != 'Seesmic') {
|
||||
$status2 = array(
|
||||
'updated' => api_date($item['edited']),
|
||||
'published' => api_date($item['created']),
|
||||
'message_id' => $item['uri'],
|
||||
'url' => ($item['plink']!=''?$item['plink']:$item['author-link']),
|
||||
'coordinates' => $item['coord'],
|
||||
'place' => $item['location'],
|
||||
'contributors' => '',
|
||||
'annotations' => '',
|
||||
'entities' => '',
|
||||
'objecttype' => (($item['object-type']) ? $item['object-type'] : ACTIVITY_OBJ_NOTE),
|
||||
'verb' => (($item['verb']) ? $item['verb'] : ACTIVITY_POST),
|
||||
'self' => $a->get_baseurl()."/api/statuses/show/".$item['id'].".".$type,
|
||||
'edit' => $a->get_baseurl()."/api/statuses/show/".$item['id'].".".$type,
|
||||
);
|
||||
|
||||
$status = array_merge($status, $status2);
|
||||
}*/
|
||||
// 'coordinates' => array((float) $notice->lat,
|
||||
// (float) $notice->lon));
|
||||
|
||||
$ret[] = $status;
|
||||
};
|
||||
|
@ -2400,7 +2362,7 @@ function api_get_nick($profile) {
|
|||
// To-Do: look at the page if its really a pumpio site
|
||||
//if (!$nick == "") {
|
||||
// $pumpio = preg_replace("=https?://(.*)/(.*)/=ism", "$2", $profile."/");
|
||||
// if ($pumpio != $profile)
|
||||
// if ($pumpio != $profile)
|
||||
// $nick = $pumpio;
|
||||
// <div class="media" id="profile-block" data-profile-id="acct:kabniel@microca.st">
|
||||
|
||||
|
@ -2412,7 +2374,7 @@ function api_get_nick($profile) {
|
|||
return($nick);
|
||||
}
|
||||
|
||||
return(false);
|
||||
return(false);
|
||||
}
|
||||
|
||||
function api_clean_plain_items($Text) {
|
||||
|
|
|
@ -15,37 +15,24 @@ require_once("include/markdownify/markdownify.php");
|
|||
|
||||
function diaspora2bb($s) {
|
||||
|
||||
// for testing purposes: Collect raw markdown articles
|
||||
// $file = tempnam("/tmp/friendica/", "markdown");
|
||||
// file_put_contents($file, $s);
|
||||
|
||||
$s = html_entity_decode($s,ENT_COMPAT,'UTF-8');
|
||||
|
||||
// Too many new lines. So deactivated the following line
|
||||
// $s = str_replace("\r","\n",$s);
|
||||
// Simply remove cr.
|
||||
$s = str_replace("\r","",$s);
|
||||
|
||||
// <br/> is invalid. Replace it with the valid expression
|
||||
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);
|
||||
|
||||
// Escaping the hash tags - doesn't always seem to work
|
||||
// $s = preg_replace('/\#([^\s\#])/','\\#$1',$s);
|
||||
// This seems to work
|
||||
// Escaping the hash tags
|
||||
$s = preg_replace('/\#([^\s\#])/','#$1',$s);
|
||||
|
||||
$s = Markdown($s);
|
||||
|
||||
$s = str_replace('#','#',$s);
|
||||
// we seem to have double linebreaks
|
||||
// $s = str_replace("\n",'<br />',$s);
|
||||
|
||||
$s = html2bbcode($s);
|
||||
// $s = str_replace('*','*',$s);
|
||||
|
||||
// protect the recycle symbol from turning into a tag, but without unescaping angles and naked ampersands
|
||||
$s = str_replace('♲',html_entity_decode('♲',ENT_QUOTES,'UTF-8'),$s);
|
||||
|
@ -67,82 +54,12 @@ function diaspora2bb($s) {
|
|||
return $s;
|
||||
}
|
||||
|
||||
|
||||
function stripdcode_br_cb($s) {
|
||||
return '[code]' . str_replace('<br />', "\n\t", $s[1]) . '[/code]';
|
||||
}
|
||||
|
||||
|
||||
//////////////////////
|
||||
// The following "diaspora_ul" and "diaspora_ol" are only appropriate for the
|
||||
// pre-Markdownify conversion. If Markdownify isn't used, use the non-Markdownify
|
||||
// versions below
|
||||
//////////////////////
|
||||
/*
|
||||
function diaspora_ul($s) {
|
||||
// Replace "[*]" followed by any number (including zero) of
|
||||
// spaces by "* " to match Diaspora's list format
|
||||
if( strpos($s[0], "[list]") === 0 )
|
||||
return '<ul class="listbullet" style="list-style-type: circle;">' . preg_replace("/\[\*\]( *)/", "* ", $s[1]) . '</ul>';
|
||||
elseif( strpos($s[0], "[ul]") === 0 )
|
||||
return '<ul class="listbullet" style="list-style-type: circle;">' . preg_replace("/\[\*\]( *)/", "* ", $s[1]) . '</ul>';
|
||||
else
|
||||
return $s[0];
|
||||
}
|
||||
|
||||
|
||||
function diaspora_ol($s) {
|
||||
// A hack: Diaspora will create a properly-numbered ordered list even
|
||||
// if you use '1.' for each element of the list, like:
|
||||
// 1. First element
|
||||
// 1. Second element
|
||||
// 1. Third element
|
||||
if( strpos($s[0], "[list=1]") === 0 )
|
||||
return '<ul class="listdecimal" style="list-style-type: decimal;">' . preg_replace("/\[\*\]( *)/", "1. ", $s[1]) . '</ul>';
|
||||
elseif( strpos($s[0], "[list=i]") === 0 )
|
||||
return '<ul class="listlowerroman" style="list-style-type: lower-roman;">' . preg_replace("/\[\*\]( *)/", "1. ", $s[1]) . '</ul>';
|
||||
elseif( strpos($s[0], "[list=I]") === 0 )
|
||||
return '<ul class="listupperroman" style="list-style-type: upper-roman;">' . preg_replace("/\[\*\]( *)/", "1. ", $s[1]) . '</ul>';
|
||||
elseif( strpos($s[0], "[list=a]") === 0 )
|
||||
return '<ul class="listloweralpha" style="list-style-type: lower-alpha;">' . preg_replace("/\[\*\]( *)/", "1. ", $s[1]) . '</ul>';
|
||||
elseif( strpos($s[0], "[list=A]") === 0 )
|
||||
return '<ul class="listupperalpha" style="list-style-type: upper-alpha;">' . preg_replace("/\[\*\]( *)/", "1. ", $s[1]) . '</ul>';
|
||||
elseif( strpos($s[0], "[ol]") === 0 )
|
||||
return '<ul class="listdecimal" style="list-style-type: decimal;">' . preg_replace("/\[\*\]( *)/", "1. ", $s[1]) . '</ul>';
|
||||
else
|
||||
return $s[0];
|
||||
}
|
||||
*/
|
||||
|
||||
//////////////////////
|
||||
// Non-Markdownify versions of "diaspora_ol" and "diaspora_ul"
|
||||
//////////////////////
|
||||
function diaspora_ul($s) {
|
||||
// Replace "[\\*]" followed by any number (including zero) of
|
||||
// spaces by "* " to match Diaspora's list format
|
||||
return preg_replace("/\[\\\\\*\]( *)/", "* ", $s[1]);
|
||||
}
|
||||
|
||||
function diaspora_ol($s) {
|
||||
// A hack: Diaspora will create a properly-numbered ordered list even
|
||||
// if you use '1.' for each element of the list, like:
|
||||
// 1. First element
|
||||
// 1. Second element
|
||||
// 1. Third element
|
||||
return preg_replace("/\[\\\\\*\]( *)/", "1. ", $s[1]);
|
||||
}
|
||||
|
||||
|
||||
function bb2diaspora($Text,$preserve_nl = false, $fordiaspora = true) {
|
||||
|
||||
// Since Diaspora is creating a summary for links, this function removes them before posting
|
||||
if ($fordiaspora)
|
||||
$Text = bb_remove_share_information($Text);
|
||||
|
||||
// Re-enabling the converter again.
|
||||
// The bbcode parser now handles youtube-links (and the other stuff) correctly.
|
||||
// Additionally the html code is now fixed so that lists are now working.
|
||||
|
||||
/**
|
||||
* Transform #tags, strip off the [url] and replace spaces with underscore
|
||||
*/
|
||||
|
@ -154,21 +71,14 @@ function bb2diaspora($Text,$preserve_nl = false, $fordiaspora = true) {
|
|||
// Converting images with size parameters to simple images. Markdown doesn't know it.
|
||||
$Text = preg_replace("/\[img\=([0-9]*)x([0-9]*)\](.*?)\[\/img\]/ism", '[img]$3[/img]', $Text);
|
||||
|
||||
// the following was added on 10-January-2012 due to an inability of Diaspora's
|
||||
// new javascript markdown processor to handle links with images as the link "text"
|
||||
// It is not optimal and may be removed if this ability is restored in the future
|
||||
//if ($fordiaspora)
|
||||
// $Text = preg_replace("/\[url\=([^\[\]]*)\]\s*\[img\](.*?)\[\/img\]\s*\[\/url\]/ism",
|
||||
// "[url]$1[/url]\n[img]$2[/img]", $Text);
|
||||
|
||||
// Remove the avatar picture since that isn't looking good on the other side
|
||||
//$Text = preg_replace("/\[share(.*?)avatar\s?=\s?'.*?'\s?(.*?)\]\s?(.*?)\s?\[\/share\]\s?/ism","\n[share$1$2]$3[/share]",$Text);
|
||||
|
||||
// Convert it to HTML - don't try oembed
|
||||
if ($fordiaspora)
|
||||
$Text = bbcode($Text, $preserve_nl, false, 3);
|
||||
else
|
||||
else {
|
||||
$Text = bbcode($Text, $preserve_nl, false, 4);
|
||||
// Libertree doesn't convert a harizontal rule if there isn't a linefeed
|
||||
$Text = str_replace("<hr />", "\n<hr />", $Text);
|
||||
}
|
||||
|
||||
// Now convert HTML to Markdown
|
||||
$md = new Markdownify(false, false, false);
|
||||
|
@ -199,185 +109,6 @@ function bb2diaspora($Text,$preserve_nl = false, $fordiaspora = true) {
|
|||
// Remove all unconverted tags
|
||||
$Text = strip_tags($Text);
|
||||
|
||||
|
||||
/* Old routine
|
||||
|
||||
$ev = bbtoevent($Text);
|
||||
|
||||
// Replace any html brackets with HTML Entities to prevent executing HTML or script
|
||||
// Don't use strip_tags here because it breaks [url] search by replacing & with amp
|
||||
|
||||
$Text = str_replace("<", "<", $Text);
|
||||
$Text = str_replace(">", ">", $Text);
|
||||
|
||||
// If we find any event code, turn it into an event.
|
||||
// After we're finished processing the bbcode we'll
|
||||
// replace all of the event code with a reformatted version.
|
||||
|
||||
if($preserve_nl)
|
||||
$Text = str_replace(array("\n","\r"), array('',''),$Text);
|
||||
else
|
||||
// Remove the "return" character, as Diaspora uses only the "newline"
|
||||
// character, so having the "return" character can cause signature
|
||||
// failures
|
||||
$Text = str_replace("\r", "", $Text);
|
||||
|
||||
|
||||
// Set up the parameters for a URL search string
|
||||
$URLSearchString = "^\[\]";
|
||||
// Set up the parameters for a MAIL search string
|
||||
$MAILSearchString = $URLSearchString;
|
||||
|
||||
// Perform URL Search
|
||||
|
||||
// [img]pathtoimage[/img]
|
||||
|
||||
// the following was added on 10-January-2012 due to an inability of Diaspora's
|
||||
// new javascript markdown processor to handle links with images as the link "text"
|
||||
// It is not optimal and may be removed if this ability is restored in the future
|
||||
|
||||
$Text = preg_replace("/\[url\=([$URLSearchString]*)\]\[img\](.*?)\[\/img\]\[\/url\]/ism",
|
||||
'![' . t('image/photo') . '](' . '$2' . ')' . "\n" . '[' . t('link') . '](' . '$1' . ')', $Text);
|
||||
|
||||
$Text = preg_replace("/\[bookmark\]([$URLSearchString]*)\[\/bookmark\]/ism", '[$1]($1)', $Text);
|
||||
$Text = preg_replace("/\[bookmark\=([$URLSearchString]*)\](.*?)\[\/bookmark\]/ism", '[$2]($1)', $Text);
|
||||
|
||||
$Text = preg_replace("/\[url\]([$URLSearchString]*)\[\/url\]/ism", '[$1]($1)', $Text);
|
||||
$Text = preg_replace("/\#\[url\=([$URLSearchString]*)\](.*?)\[\/url\]/ism", '[#$2]($1)', $Text);
|
||||
$Text = preg_replace("/\[url\=([$URLSearchString]*)\](.*?)\[\/url\]/ism", '[$2]($1)', $Text);
|
||||
|
||||
|
||||
$Text = preg_replace("/\[img\](.*?)\[\/img\]/", '![' . t('image/photo') . '](' . '$1' . ')', $Text);
|
||||
$Text = preg_replace("/\[img\=(.*?)\](.*?)\[\/img\]/", '![' . t('image/photo') . '](' . '$2' . ')', $Text);
|
||||
|
||||
// Perform MAIL Search
|
||||
$Text = preg_replace("(\[mail\]([$MAILSearchString]*)\[/mail\])", '[$1](mailto:$1)', $Text);
|
||||
$Text = preg_replace("/\[mail\=([$MAILSearchString]*)\](.*?)\[\/mail\]/", '[$2](mailto:$1)', $Text);
|
||||
|
||||
$Text = str_replace('*', '\\*', $Text);
|
||||
$Text = str_replace('_', '\\_', $Text);
|
||||
|
||||
$Text = str_replace('`','\\`', $Text);
|
||||
|
||||
// Check for bold text
|
||||
$Text = preg_replace("(\[b\](.*?)\[\/b\])is",'**$1**',$Text);
|
||||
|
||||
// Check for italics text
|
||||
$Text = preg_replace("(\[i\](.*?)\[\/i\])is",'_$1_',$Text);
|
||||
|
||||
// Check for underline text
|
||||
// Replace with italics since Diaspora doesn't have underline
|
||||
$Text = preg_replace("(\[u\](.*?)\[\/u\])is",'_$1_',$Text);
|
||||
|
||||
// Check for strike-through text
|
||||
$Text = preg_replace("(\[s\](.*?)\[\/s\])is",'**[strike]**$1**[/strike]**',$Text);
|
||||
|
||||
// Check for over-line text
|
||||
// $Text = preg_replace("(\[o\](.*?)\[\/o\])is",'<span class="overline">$1</span>',$Text);
|
||||
|
||||
// Check for colored text
|
||||
// Remove color since Diaspora doesn't support it
|
||||
$Text = preg_replace("(\[color=(.*?)\](.*?)\[\/color\])is","$2",$Text);
|
||||
|
||||
// Check for sized text
|
||||
// Remove it since Diaspora doesn't support sizes very well
|
||||
$Text = preg_replace("(\[size=(.*?)\](.*?)\[\/size\])is","$2",$Text);
|
||||
|
||||
// Check for list text
|
||||
$endlessloop = 0;
|
||||
while ((((strpos($Text, "[/list]") !== false) && (strpos($Text, "[list") !== false)) ||
|
||||
((strpos($Text, "[/ol]") !== false) && (strpos($Text, "[ol]") !== false)) ||
|
||||
((strpos($Text, "[/ul]") !== false) && (strpos($Text, "[ul]") !== false)) ||
|
||||
((strpos($Text, "[/li]") !== false) && (strpos($Text, "[li]") !== false))) && (++$endlessloop < 20)) {
|
||||
$Text = preg_replace_callback("/\[list\](.*?)\[\/list\]/is", 'diaspora_ul', $Text);
|
||||
$Text = preg_replace_callback("/\[list=1\](.*?)\[\/list\]/is", 'diaspora_ol', $Text);
|
||||
$Text = preg_replace_callback("/\[list=i\](.*?)\[\/list\]/s",'diaspora_ol', $Text);
|
||||
$Text = preg_replace_callback("/\[list=I\](.*?)\[\/list\]/s", 'diaspora_ol', $Text);
|
||||
$Text = preg_replace_callback("/\[list=a\](.*?)\[\/list\]/s", 'diaspora_ol', $Text);
|
||||
$Text = preg_replace_callback("/\[list=A\](.*?)\[\/list\]/s", 'diaspora_ol', $Text);
|
||||
$Text = preg_replace_callback("/\[ul\](.*?)\[\/ul\]/is", 'diaspora_ul', $Text);
|
||||
$Text = preg_replace_callback("/\[ol\](.*?)\[\/ol\]/is", 'diaspora_ol', $Text);
|
||||
$Text = preg_replace("/\[li\]( *)(.*?)\[\/li\]/s", '* $2' ,$Text);
|
||||
}
|
||||
|
||||
// Just get rid of table tags since Diaspora doesn't support tables
|
||||
$Text = preg_replace("/\[th\](.*?)\[\/th\]/s", '$1' ,$Text);
|
||||
$Text = preg_replace("/\[td\](.*?)\[\/td\]/s", '$1' ,$Text);
|
||||
$Text = preg_replace("/\[tr\](.*?)\[\/tr\]/s", '$1' ,$Text);
|
||||
$Text = preg_replace("/\[table\](.*?)\[\/table\]/s", '$1' ,$Text);
|
||||
|
||||
$Text = preg_replace("/\[table border=(.*?)\](.*?)\[\/table\]/s", '$2' ,$Text);
|
||||
// $Text = preg_replace("/\[table border=0\](.*?)\[\/table\]/s", '<table border="0" >$1</table>' ,$Text);
|
||||
|
||||
|
||||
// $Text = str_replace("[*]", "<li>", $Text);
|
||||
|
||||
// Check for font change text
|
||||
// $Text = preg_replace("(\[font=(.*?)\](.*?)\[\/font\])","<span style=\"font-family: $1;\">$2</span>",$Text);
|
||||
|
||||
|
||||
$Text = preg_replace_callback("/\[code\](.*?)\[\/code\]/is",'stripdcode_br_cb',$Text);
|
||||
|
||||
// Check for [code] text
|
||||
$Text = preg_replace("/(\[code\])+(.*?)(\[\/code\])+/is","\t$2\n", $Text);
|
||||
|
||||
|
||||
|
||||
|
||||
// Declare the format for [quote] layout
|
||||
// $QuoteLayout = '<blockquote>$1</blockquote>';
|
||||
// Check for [quote] text
|
||||
$Text = preg_replace("/\[quote\](.*?)\[\/quote\]/is",">$1\n\n", $Text);
|
||||
$Text = preg_replace("/\[quote=(.*?)\](.*?)\[\/quote\]/is",">$2\n\n", $Text);
|
||||
|
||||
// Images
|
||||
|
||||
// html5 video and audio
|
||||
|
||||
$Text = preg_replace("/\[video\](.*?)\[\/video\]/", '$1', $Text);
|
||||
|
||||
$Text = preg_replace("/\[audio\](.*?)\[\/audio\]/", '$1', $Text);
|
||||
|
||||
// $Text = preg_replace("/\[iframe\](.*?)\[\/iframe\]/", '<iframe src="$1" width="425" height="350"><a href="$1">$1</a></iframe>', $Text);
|
||||
|
||||
// [img=widthxheight]image source[/img]
|
||||
// $Text = preg_replace("/\[img\=([0-9]*)x([0-9]*)\](.*?)\[\/img\]/", '<img src="$3" style="height:{$2}px; width:{$1}px;" >', $Text);
|
||||
|
||||
$Text = preg_replace("/\[youtube\]https?:\/\/www.youtube.com\/watch\?v\=(.*?)\[\/youtube\]/ism",'http://www.youtube.com/watch?v=$1',$Text);
|
||||
$Text = preg_replace("/\[youtube\]https?:\/\/www.youtube.com\/embed\/(.*?)\[\/youtube\]/ism",'http://www.youtube.com/watch?v=$1',$Text);
|
||||
$Text = preg_replace("/\[youtube\]https?:\/\/youtu.be\/(.*?)\[\/youtube\]/ism",'http://www.youtube.com/watch?v=$1',$Text);
|
||||
$Text = preg_replace("/\[youtube\]([A-Za-z0-9\-_=]+)(.*?)\[\/youtube\]/ism", 'http://www.youtube.com/watch?v=$1', $Text);
|
||||
|
||||
$Text = preg_replace("/\[vimeo\]https?:\/\/player.vimeo.com\/video\/([0-9]+)(.*?)\[\/vimeo\]/ism",'http://vimeo.com/$1',$Text);
|
||||
$Text = preg_replace("/\[vimeo\]https?:\/\/vimeo.com\/([0-9]+)(.*?)\[\/vimeo\]/ism",'http://vimeo.com/$1',$Text);
|
||||
$Text = preg_replace("/\[vimeo\]([0-9]+)(.*?)\[\/vimeo\]/ism", 'http://vimeo.com/$1',$Text);
|
||||
|
||||
|
||||
$Text = str_replace('[nosmile]','',$Text);
|
||||
|
||||
// oembed tag
|
||||
// $Text = oembed_bbcode2html($Text);
|
||||
|
||||
// If we found an event earlier, strip out all the event code and replace with a reformatted version.
|
||||
|
||||
if(x($ev,'start')) {
|
||||
|
||||
$sub = format_event_diaspora($ev);
|
||||
|
||||
$Text = preg_replace("/\[event\-summary\](.*?)\[\/event\-summary\]/is",'',$Text);
|
||||
$Text = preg_replace("/\[event\-description\](.*?)\[\/event\-description\]/is",'',$Text);
|
||||
$Text = preg_replace("/\[event\-start\](.*?)\[\/event\-start\]/is",$sub,$Text);
|
||||
$Text = preg_replace("/\[event\-finish\](.*?)\[\/event\-finish\]/is",'',$Text);
|
||||
$Text = preg_replace("/\[event\-location\](.*?)\[\/event\-location\]/is",'',$Text);
|
||||
$Text = preg_replace("/\[event\-adjust\](.*?)\[\/event\-adjust\]/is",'',$Text);
|
||||
}
|
||||
|
||||
$Text = preg_replace("/\<(.*?)(src|href)=(.*?)\&\;(.*?)\>/ism",'<$1$2=$3&$4>',$Text);
|
||||
|
||||
$Text = preg_replace_callback('/\[(.*?)\]\((.*?)\)/ism','unescape_underscores_in_links',$Text);
|
||||
|
||||
*/
|
||||
|
||||
// Remove any leading or trailing whitespace, as this will mess up
|
||||
// the Diaspora signature verification and cause the item to disappear
|
||||
$Text = trim($Text);
|
||||
|
|
|
@ -520,7 +520,8 @@ function bb_ShareAttributesSimple2($match) {
|
|||
|
||||
$userid = GetProfileUsername($profile,$author);
|
||||
|
||||
$text = "<br />".html_entity_decode("♲ ", ENT_QUOTES, 'UTF-8').' <a href="'.$profile.'">'.$userid."</a>: <br />".$match[2];
|
||||
//$text = "<br />".html_entity_decode("♲ ", ENT_QUOTES, 'UTF-8').' <a href="'.$profile.'">'.$userid."</a>: <br />".$match[2];
|
||||
$text = "<br />".html_entity_decode("♲ ", ENT_QUOTES, 'UTF-8').' '.$userid.": <br />".$match[2];
|
||||
|
||||
return($text);
|
||||
}
|
||||
|
|
|
@ -262,7 +262,7 @@ function diaspora_pubmsg_build($msg,$user,$contact,$prvkey,$pubkey) {
|
|||
|
||||
logger('diaspora_pubmsg_build: ' . $msg, LOGGER_DATA);
|
||||
|
||||
|
||||
|
||||
$handle = $user['nickname'] . '@' . substr($a->get_baseurl(), strpos($a->get_baseurl(),'://') + 3);
|
||||
|
||||
// $b64_data = base64_encode($msg);
|
||||
|
@ -276,7 +276,7 @@ function diaspora_pubmsg_build($msg,$user,$contact,$prvkey,$pubkey) {
|
|||
$encoding = 'base64url';
|
||||
$alg = 'RSA-SHA256';
|
||||
|
||||
$signable_data = $data . '.' . base64url_encode($type) . '.'
|
||||
$signable_data = $data . '.' . base64url_encode($type) . '.'
|
||||
. base64url_encode($encoding) . '.' . base64url_encode($alg) ;
|
||||
|
||||
$signature = rsa_sign($signable_data,$prvkey);
|
||||
|
@ -345,7 +345,7 @@ function diaspora_msg_build($msg,$user,$contact,$prvkey,$pubkey,$public = false)
|
|||
$encoding = 'base64url';
|
||||
$alg = 'RSA-SHA256';
|
||||
|
||||
$signable_data = $data . '.' . base64url_encode($type) . '.'
|
||||
$signable_data = $data . '.' . base64url_encode($type) . '.'
|
||||
. base64url_encode($encoding) . '.' . base64url_encode($alg) ;
|
||||
|
||||
$signature = rsa_sign($signable_data,$prvkey);
|
||||
|
@ -713,7 +713,7 @@ function diaspora_request($importer,$xml) {
|
|||
|
||||
$photos = import_profile_photo($contact_record['photo'],$importer['uid'],$contact_record['id']);
|
||||
|
||||
// technically they are sharing with us (CONTACT_IS_SHARING),
|
||||
// technically they are sharing with us (CONTACT_IS_SHARING),
|
||||
// but if our page-type is PAGE_COMMUNITY or PAGE_SOAPBOX
|
||||
// we are going to change the relationship and make them a follower.
|
||||
|
||||
|
@ -1603,7 +1603,7 @@ function diaspora_conversation($importer,$xml,$msg) {
|
|||
'verb' => ACTIVITY_POST,
|
||||
'otype' => 'mail'
|
||||
));
|
||||
}
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
@ -2301,7 +2301,7 @@ function diaspora_send_status($item,$owner,$contact,$public_batch = false) {
|
|||
$body .= '[' . $mtch[3] . '](' . $mtch[1] . ')' . "\n";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
$public = (($item['private']) ? 'false' : 'true');
|
||||
|
@ -2309,13 +2309,17 @@ function diaspora_send_status($item,$owner,$contact,$public_batch = false) {
|
|||
require_once('include/datetime.php');
|
||||
$created = datetime_convert('UTC','UTC',$item['created'],'Y-m-d H:i:s \U\T\C');
|
||||
|
||||
// To-Do
|
||||
// Detect a share element and do a reshare
|
||||
// see: https://github.com/Raven24/diaspora-federation/blob/master/lib/diaspora-federation/entities/reshare.rb
|
||||
$tpl = get_markup_template('diaspora_post.tpl');
|
||||
$msg = replace_macros($tpl, array(
|
||||
'$body' => $body,
|
||||
'$guid' => $item['guid'],
|
||||
'$handle' => xmlify($myaddr),
|
||||
'$public' => $public,
|
||||
'$created' => $created
|
||||
'$created' => $created,
|
||||
'$provider' => $item["app"]
|
||||
));
|
||||
|
||||
logger('diaspora_send_status: ' . $owner['username'] . ' -> ' . $contact['name'] . ' base message: ' . $msg, LOGGER_DATA);
|
||||
|
|
|
@ -7,7 +7,7 @@ require_once('include/queue_fn.php');
|
|||
function profile_change() {
|
||||
|
||||
$a = get_app();
|
||||
|
||||
|
||||
if(! local_user())
|
||||
return;
|
||||
|
||||
|
@ -29,7 +29,7 @@ function profile_change() {
|
|||
WHERE `user`.`uid` = %d AND `profile`.`is-default` = 1 LIMIT 1",
|
||||
intval(local_user())
|
||||
);
|
||||
|
||||
|
||||
if(! count($r))
|
||||
return;
|
||||
$profile = $r[0];
|
||||
|
|
|
@ -753,7 +753,7 @@ function get_tags($s) {
|
|||
// Otherwise pull out single word tags. These can be @nickname, @first_last
|
||||
// and #hash tags.
|
||||
|
||||
if(preg_match_all('/([@#][^ \x0D\x0A,;:?]+)([ \x0D\x0A,;:?]|$)/',$s,$match)) {
|
||||
if(preg_match_all('/([!#@][^ \x0D\x0A,;:?]+)([ \x0D\x0A,;:?]|$)/',$s,$match)) {
|
||||
foreach($match[1] as $mtch) {
|
||||
if(strstr($mtch,"]")) {
|
||||
// we might be inside a bbcode color tag - leave it alone
|
||||
|
@ -2172,7 +2172,7 @@ function normalise_openid($s) {
|
|||
|
||||
function undo_post_tagging($s) {
|
||||
$matches = null;
|
||||
$cnt = preg_match_all('/([@#])\[url=(.*?)\](.*?)\[\/url\]/ism',$s,$matches,PREG_SET_ORDER);
|
||||
$cnt = preg_match_all('/([!#@])\[url=(.*?)\](.*?)\[\/url\]/ism',$s,$matches,PREG_SET_ORDER);
|
||||
if($cnt) {
|
||||
foreach($matches as $mtch) {
|
||||
$s = str_replace($mtch[0], $mtch[1] . $mtch[3],$s);
|
||||
|
|
|
@ -6,11 +6,11 @@
|
|||
<XML>
|
||||
<post>
|
||||
<like>
|
||||
<target_type>{{$target_type}}</target_type>
|
||||
<positive>{{$positive}}</positive>
|
||||
<guid>{{$guid}}</guid>
|
||||
<target_type>{{$target_type}}</target_type>
|
||||
<parent_guid>{{$parent_guid}}</parent_guid>
|
||||
<author_signature>{{$authorsig}}</author_signature>
|
||||
<positive>{{$positive}}</positive>
|
||||
<diaspora_handle>{{$handle}}</diaspora_handle>
|
||||
</like>
|
||||
</post>
|
||||
|
|
|
@ -6,12 +6,12 @@
|
|||
<XML>
|
||||
<post>
|
||||
<like>
|
||||
<positive>{{$positive}}</positive>
|
||||
<guid>{{$guid}}</guid>
|
||||
<target_type>{{$target_type}}</target_type>
|
||||
<parent_guid>{{$parent_guid}}</parent_guid>
|
||||
<parent_author_signature>{{$parentsig}}</parent_author_signature>
|
||||
<author_signature>{{$authorsig}}</author_signature>
|
||||
<positive>{{$positive}}</positive>
|
||||
<diaspora_handle>{{$handle}}</diaspora_handle>
|
||||
</like>
|
||||
</post>
|
||||
|
|
|
@ -6,13 +6,13 @@
|
|||
<XML>
|
||||
<post>
|
||||
<photo>
|
||||
<remote_photo_path>{{$path}}</remote_photo_path>
|
||||
<remote_photo_name>{{$filename}}</remote_photo_name>
|
||||
<status_message_guid>{{$msg_guid}}</status_message_guid>
|
||||
<guid>{{$guid}}</guid>
|
||||
<diaspora_handle>{{$handle}}</diaspora_handle>
|
||||
<public>{{$public}}</public>
|
||||
<created_at>{{$created_at}}</created_at>
|
||||
<remote_photo_path>{{$path}}</remote_photo_path>
|
||||
<remote_photo_name>{{$filename}}</remote_photo_name>
|
||||
<status_message_guid>{{$msg_guid}}</status_message_guid>
|
||||
</photo>
|
||||
</post>
|
||||
</XML>
|
||||
</XML>
|
||||
|
|
|
@ -11,6 +11,7 @@
|
|||
<diaspora_handle>{{$handle}}</diaspora_handle>
|
||||
<public>{{$public}}</public>
|
||||
<created_at>{{$created}}</created_at>
|
||||
<provider_display_name>{{$provider}}</provider_display_name>
|
||||
</status_message>
|
||||
</post>
|
||||
</XML>
|
||||
</XML>
|
||||
|
|
|
@ -9,13 +9,13 @@
|
|||
<first_name>{{$first}}</first_name>
|
||||
<last_name>{{$last}}</last_name>
|
||||
<image_url>{{$large}}</image_url>
|
||||
<image_url_small>{{$small}}</image_url_small>
|
||||
<image_url_medium>{{$medium}}</image_url_medium>
|
||||
<image_url_small>{{$small}}</image_url_small>
|
||||
<birthday>{{$dob}}</birthday>
|
||||
<gender>{{$gender}}</gender>
|
||||
<bio>{{$about}}</bio>
|
||||
<location>{{$location}}</location>
|
||||
<searchable>{{$searchable}}</searchable>
|
||||
<tag_string>{{$tags}}</tag_string>
|
||||
</profile></post>
|
||||
</XML>
|
||||
</profile></post>
|
||||
</XML>
|
||||
|
|
|
@ -6,11 +6,11 @@
|
|||
<XML>
|
||||
<post>
|
||||
<relayable_retraction>
|
||||
<target_type>{{$target_type}}</target_type>
|
||||
<target_guid>{{$guid}}</target_guid>
|
||||
<parent_author_signature>{{$parentsig}}</parent_author_signature>
|
||||
<target_author_signature>{{$authorsig}}</target_author_signature>
|
||||
<target_guid>{{$guid}}</target_guid>
|
||||
<target_type>{{$target_type}}</target_type>
|
||||
<sender_handle>{{$handle}}</sender_handle>
|
||||
<target_author_signature>{{$authorsig}}</target_author_signature>
|
||||
</relayable_retraction>
|
||||
</post>
|
||||
</XML>
|
||||
|
|
|
@ -7,8 +7,8 @@
|
|||
<post>
|
||||
<retraction>
|
||||
<post_guid>{{$guid}}</post_guid>
|
||||
<type>{{$type}}</type>
|
||||
<diaspora_handle>{{$handle}}</diaspora_handle>
|
||||
<type>{{$type}}</type>
|
||||
</retraction>
|
||||
</post>
|
||||
</XML>
|
||||
</XML>
|
||||
|
|
|
@ -1244,9 +1244,13 @@ position: relative;
|
|||
overflow: hidden;
|
||||
border-left: 0px;
|
||||
padding-left: 0px;
|
||||
font-size: 13px;
|
||||
line-height: normal;
|
||||
}
|
||||
.type-link .oembed, .type-video .oembed {
|
||||
font-size: inherit;
|
||||
font-size: 18px;
|
||||
font-weight: 300;
|
||||
line-height: normal;
|
||||
}
|
||||
.type-link img, .type-video img {
|
||||
/* position: absolute;
|
||||
|
@ -1259,6 +1263,10 @@ top: 0; */
|
|||
display: none;
|
||||
}
|
||||
|
||||
h2 {
|
||||
line-height: normal;
|
||||
}
|
||||
|
||||
.wall-item-container .wall-item-content {
|
||||
/* font-size: 14px; */
|
||||
max-width: 660px;
|
||||
|
@ -1339,7 +1347,7 @@ top: 0; */
|
|||
transition: all 0.2s ease-in-out;
|
||||
}
|
||||
|
||||
/* .wall-item-container .wall-item-content a, */
|
||||
.wall-item-container .wall-item-content a,
|
||||
.toplevel_item .fakelink,
|
||||
.wall-item-container .fakelink {
|
||||
color: black;
|
||||
|
@ -2024,7 +2032,7 @@ ul.tabs a:hover, #event-notice:hover, #birthday-notice:hover, ul.tabs li .active
|
|||
width: 200px;
|
||||
}
|
||||
.field input, .field textarea {
|
||||
width: 400px;
|
||||
max-width: 400px;
|
||||
}
|
||||
.field textarea {
|
||||
height: 100px;
|
||||
|
@ -2069,6 +2077,12 @@ ul.tabs a:hover, #event-notice:hover, #birthday-notice:hover, ul.tabs li .active
|
|||
.field.radio .field_help {
|
||||
margin-left: 0px;
|
||||
}
|
||||
aside form {
|
||||
overflow-x: hidden;
|
||||
}
|
||||
aside form .field label {
|
||||
float: inherit;
|
||||
}
|
||||
|
||||
#profile-edit-links-end {
|
||||
clear: both;
|
||||
|
|
|
@ -39,9 +39,9 @@
|
|||
<span class="city-state-zip">
|
||||
<span class="locality">{{$profile.locality}}</span>{{if $profile.locality}}, {{/if}}
|
||||
<span class="region">{{$profile.region}}</span>
|
||||
<span class="postal-code">{{$profile.postal-code}}</span>
|
||||
<span class="postal-code">{{$profile.postal_code}}</span>
|
||||
</span>
|
||||
{{if $profile.country-name}}<span class="country-name">{{$profile.country-name}}</span>{{/if}}
|
||||
{{if $profile.country_name}}<span class="country-name">{{$profile.country_name}}</span>{{/if}}
|
||||
</dd>
|
||||
</dl>
|
||||
{{/if}}
|
||||
|
|
Loading…
Reference in a new issue