diff --git a/boot.php b/boot.php index 465bec677..6c9c8fdc4 100644 --- a/boot.php +++ b/boot.php @@ -379,6 +379,7 @@ if(! class_exists('App')) { public $identities; public $is_mobile; public $is_tablet; + public $is_friendica_app; public $performance = array(); public $nav_sel; @@ -596,6 +597,9 @@ if(! class_exists('App')) { $this->is_mobile = $mobile_detect->isMobile(); $this->is_tablet = $mobile_detect->isTablet(); + // Friendica-Client + $this->is_friendica_app = ($_SERVER['HTTP_USER_AGENT'] == "Apache-HttpClient/UNAVAILABLE (java 1.4)"); + /** * register template engines */ @@ -906,6 +910,10 @@ if(! class_exists('App')) { return(FRIENDICA_PLATFORM." '".FRIENDICA_CODENAME."' ".FRIENDICA_VERSION."-".DB_UPDATE_VERSION."; ".$this->get_baseurl()); } + function is_friendica_app() { + return($this->is_friendica_app); + } + } } diff --git a/include/ostatus.php b/include/ostatus.php index 4e70514e5..86d0e36db 100644 --- a/include/ostatus.php +++ b/include/ostatus.php @@ -376,7 +376,9 @@ function ostatus_import($xml,$importer,&$contact, &$hub) { } else $item["parent-uri"] = $item["uri"]; - $item_id = item_store($item); + // We risk the chance of getting orphan items, we correct it some lines later + // To-Do: See To-Do line below. + $item_id = item_store($item, true); //echo $xml; //print_r($item); //echo $item_id." ".$item["parent-uri"]."\n"; @@ -416,6 +418,9 @@ function ostatus_import($xml,$importer,&$contact, &$hub) { if ($conversation != "") { // Check for duplicates. We really don't need to check the same conversation twice. if (!in_array($conversation, $conversationlist)) { + // To-Do: + // Call this before item_store is called to avoid posts with orphans + // The routine then needs to get the item array. complete_conversation($item_id, $conversation); $conversationlist[] = $conversation; } diff --git a/mod/notify.php b/mod/notify.php index f9c5a09b2..02260514a 100644 --- a/mod/notify.php +++ b/mod/notify.php @@ -18,11 +18,8 @@ function notify_init(&$a) { 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) { + if ($a->is_friendica_app()) { require_once("include/items.php"); $urldata = parse_url($r[0]['link']); $guid = basename($urldata["path"]); diff --git a/mod/ping.php b/mod/ping.php index ee5be67f6..3ef15a9e7 100644 --- a/mod/ping.php +++ b/mod/ping.php @@ -316,6 +316,8 @@ function ping_get_notifications($uid, $regularnotifications) { $order = ""; $quit = false; + $a = get_app(); + do { $r = q("SELECT `notify`.*, `item`.`visible`, `item`.`spam`, `item`.`deleted` FROM `notify` LEFT JOIN `item` ON `item`.`id` = `notify`.`iid` @@ -354,8 +356,9 @@ function ping_get_notifications($uid, $regularnotifications) { // Replace the name with {0} but ensure to make that only once // The {0} is used later and prints the name in bold. // But don't do it for the android app. + $pos = strpos($notification["msg"],$notification['name']); - if (($pos !== false) AND $regularnotifications) + if (($pos !== false) AND $regularnotifications AND !$a->is_friendica_app()) $notification["msg"] = substr_replace($notification["msg"],"{0}",$pos,strlen($notification["name"])); else $notification["msg"] = str_replace("{0}", $notification["name"], $notification["msg"]); diff --git a/mod/xrd.php b/mod/xrd.php index 7cfb643df..dfb188c13 100644 --- a/mod/xrd.php +++ b/mod/xrd.php @@ -54,6 +54,7 @@ function xrd_init(&$a) { '$dspr' => $dspr, '$salmon' => $a->get_baseurl() . '/salmon/' . $r[0]['nickname'], '$salmen' => $a->get_baseurl() . '/salmon/' . $r[0]['nickname'] . '/mention', + '$subscribe' => $a->get_baseurl() . '/follow?url={uri}', '$modexp' => 'data:application/magic-public-key,' . $salmon_key, '$bigkey' => salmon_key($r[0]['pubkey']) )); diff --git a/view/templates/xrd_person.tpl b/view/templates/xrd_person.tpl index c5c6f538c..f3ac0332b 100644 --- a/view/templates/xrd_person.tpl +++ b/view/templates/xrd_person.tpl @@ -29,6 +29,8 @@ href="{{$salmon}}" /> +