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}}" />
+