Merge pull request #1058 from annando/master
Make the friendica android client work again
This commit is contained in:
commit
8cd749bd66
5 changed files with 84 additions and 13 deletions
|
@ -1127,9 +1127,11 @@
|
||||||
`contact`.`id` AS `cid`, `contact`.`uid` AS `contact-uid`
|
`contact`.`id` AS `cid`, `contact`.`uid` AS `contact-uid`
|
||||||
FROM `item`, `contact`
|
FROM `item`, `contact`
|
||||||
WHERE `item`.`visible` = 1 and `item`.`moderated` = 0 AND `item`.`deleted` = 0
|
WHERE `item`.`visible` = 1 and `item`.`moderated` = 0 AND `item`.`deleted` = 0
|
||||||
AND `contact`.`id` = `item`.`contact-id`
|
AND `contact`.`id` = `item`.`contact-id` AND `item`.`uid` = %d AND `item`.`verb` = '%s'
|
||||||
AND `contact`.`blocked` = 0 AND `contact`.`pending` = 0
|
AND `contact`.`blocked` = 0 AND `contact`.`pending` = 0
|
||||||
$sql_extra",
|
$sql_extra",
|
||||||
|
intval(api_user()),
|
||||||
|
dbesc(ACTIVITY_POST),
|
||||||
intval($id)
|
intval($id)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
|
@ -64,7 +64,7 @@ function bb_attachment($Text, $plaintext = false, $tryoembed = true) {
|
||||||
else {
|
else {
|
||||||
$text = sprintf('<span class="type-%s">', $type);
|
$text = sprintf('<span class="type-%s">', $type);
|
||||||
|
|
||||||
$bookmark = array(sprintf('[bookmark=%s]%s[/bookmark]', $url, $title), $title, $url);
|
$bookmark = array(sprintf('[bookmark=%s]%s[/bookmark]', $url, $title), $url, $title);
|
||||||
if ($tryoembed)
|
if ($tryoembed)
|
||||||
$oembed = tryoembed($bookmark);
|
$oembed = tryoembed($bookmark);
|
||||||
else
|
else
|
||||||
|
@ -197,7 +197,8 @@ function stripcode_br_cb($s) {
|
||||||
}
|
}
|
||||||
|
|
||||||
function tryoembed($match){
|
function tryoembed($match){
|
||||||
$url = ((count($match)==2)?$match[1]:$match[2]);
|
//$url = ((count($match)==2)?$match[1]:$match[2]);
|
||||||
|
$url = $match[1];
|
||||||
|
|
||||||
// Always embed the SSL version
|
// Always embed the SSL version
|
||||||
$url = str_replace(array("http://www.youtube.com/", "http://player.vimeo.com/"),
|
$url = str_replace(array("http://www.youtube.com/", "http://player.vimeo.com/"),
|
||||||
|
@ -207,6 +208,9 @@ function tryoembed($match){
|
||||||
|
|
||||||
$o = oembed_fetch_url($url);
|
$o = oembed_fetch_url($url);
|
||||||
|
|
||||||
|
if (isset($match[2]))
|
||||||
|
$o->title = $match[2];
|
||||||
|
|
||||||
//echo "<pre>"; var_dump($match, $url, $o); killme();
|
//echo "<pre>"; var_dump($match, $url, $o); killme();
|
||||||
|
|
||||||
if ($o->type=="error") return $match[0];
|
if ($o->type=="error") return $match[0];
|
||||||
|
@ -792,7 +796,7 @@ function bbcode($Text,$preserve_nl = false, $tryoembed = true, $simplehtml = fal
|
||||||
|
|
||||||
// Perform URL Search
|
// Perform URL Search
|
||||||
if ($tryoembed)
|
if ($tryoembed)
|
||||||
$Text = preg_replace_callback("/\[bookmark\=([^\]]*)\].*?\[\/bookmark\]/ism",'tryoembed',$Text);
|
$Text = preg_replace_callback("/\[bookmark\=([^\]]*)\](.*?)\[\/bookmark\]/ism",'tryoembed',$Text);
|
||||||
|
|
||||||
if ($simplehtml == 5)
|
if ($simplehtml == 5)
|
||||||
$Text = preg_replace("/\[bookmark\=([^\]]*)\](.*?)\[\/bookmark\]/ism",'[url]$1[/url]',$Text);
|
$Text = preg_replace("/\[bookmark\=([^\]]*)\](.*?)\[\/bookmark\]/ism",'[url]$1[/url]',$Text);
|
||||||
|
|
|
@ -939,7 +939,23 @@ function add_page_info_to_body($body, $texturl = false, $no_photos = false) {
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($matches)
|
if ($matches)
|
||||||
$body .= add_page_info($matches[1], $no_photos);
|
$footer = add_page_info($matches[1], $no_photos);
|
||||||
|
|
||||||
|
// Remove the link from the body if the link is attached at the end of the post
|
||||||
|
if (isset($footer) AND (trim($footer) != "") AND (strpos($footer, $matches[1]))) {
|
||||||
|
$removedlink = trim(str_replace($matches[1], "", $body));
|
||||||
|
if (($removedlink == "") OR strstr($body, $removedlink))
|
||||||
|
$body = $removedlink;
|
||||||
|
|
||||||
|
$url = str_replace(array('/', '.'), array('\/', '\.'), $matches[1]);
|
||||||
|
$removedlink = preg_replace("/\[url\=".$url."\](.*?)\[\/url\]/ism", '', $body);
|
||||||
|
if (($removedlink == "") OR strstr($body, $removedlink))
|
||||||
|
$body = $removedlink;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Add the page information to the bottom
|
||||||
|
if (isset($footer) AND (trim($footer) != ""))
|
||||||
|
$body .= $footer;
|
||||||
|
|
||||||
return $body;
|
return $body;
|
||||||
}
|
}
|
||||||
|
@ -1413,6 +1429,41 @@ function get_item_guid($id) {
|
||||||
return("");
|
return("");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function get_item_id($guid, $uid = 0) {
|
||||||
|
|
||||||
|
$nick = "";
|
||||||
|
$id = 0;
|
||||||
|
|
||||||
|
if ($uid == 0)
|
||||||
|
$uid == local_user();
|
||||||
|
|
||||||
|
// Does the given user have this item?
|
||||||
|
if ($uid) {
|
||||||
|
$r = q("SELECT `item`.`id`, `user`.`nickname` FROM `item` INNER JOIN `user` ON `user`.`uid` = `item`.`uid`
|
||||||
|
WHERE `item`.`visible` = 1 AND `item`.`deleted` = 0 and `item`.`moderated` = 0
|
||||||
|
AND `item`.`guid` = '%s' AND `item`.`uid` = %d", dbesc($guid), intval($uid));
|
||||||
|
if (count($r)) {
|
||||||
|
$id = $r[0]["id"];
|
||||||
|
$nick = $r[0]["nickname"];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Or is it anywhere on the server?
|
||||||
|
if ($nick == "") {
|
||||||
|
$r = q("SELECT `item`.`id`, `user`.`nickname` FROM `item` 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 `item`.`guid` = '%s'", dbesc($guid));
|
||||||
|
if (count($r)) {
|
||||||
|
$id = $r[0]["id"];
|
||||||
|
$nick = $r[0]["nickname"];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return(array("nick" => $nick, "id" => $id));
|
||||||
|
}
|
||||||
|
|
||||||
// return - test
|
// return - test
|
||||||
function get_item_contact($item,$contacts) {
|
function get_item_contact($item,$contacts) {
|
||||||
if(! count($contacts) || (! is_array($item)))
|
if(! count($contacts) || (! is_array($item)))
|
||||||
|
|
|
@ -17,6 +17,20 @@ function notify_init(&$a) {
|
||||||
dbesc($r[0]['otype']),
|
dbesc($r[0]['otype']),
|
||||||
intval(local_user())
|
intval(local_user())
|
||||||
);
|
);
|
||||||
|
|
||||||
|
// Friendica-Client
|
||||||
|
$friendicamobile = ($_SERVER['HTTP_USER_AGENT'] == "Apache-HttpClient/UNAVAILABLE (java 1.4)");
|
||||||
|
|
||||||
|
// The friendica client has problems with the GUID. this is some workaround
|
||||||
|
if ($friendicamobile) {
|
||||||
|
require_once("include/items.php");
|
||||||
|
$urldata = parse_url($r[0]['link']);
|
||||||
|
$guid = basename($urldata["path"]);
|
||||||
|
$itemdata = get_item_id($guid, local_user());
|
||||||
|
if ($itemdata["id"] != 0)
|
||||||
|
$r[0]['link'] = $a->get_baseurl().'/display/'.$itemdata["nick"].'/'.$itemdata["id"];
|
||||||
|
}
|
||||||
|
|
||||||
goaway($r[0]['link']);
|
goaway($r[0]['link']);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue