aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorfriendica <info@friendica.com>2014-09-23 20:55:22 -0700
committerfriendica <info@friendica.com>2014-09-23 20:55:22 -0700
commit81ee35e03bc45bc80aaabb9416bdee2968b8f504 (patch)
tree2382e7fc62713b5a9828a25aeccac15d40852165
parent02210b81d8c68db354ef3e33b903fb9d1605df7e (diff)
downloadvolse-hubzilla-81ee35e03bc45bc80aaabb9416bdee2968b8f504.tar.gz
volse-hubzilla-81ee35e03bc45bc80aaabb9416bdee2968b8f504.tar.bz2
volse-hubzilla-81ee35e03bc45bc80aaabb9416bdee2968b8f504.zip
fix url mismatches of a single trailing slash for feed author/owner comparisons; update diaspora_compat
-rw-r--r--doc/diaspora_compat.md13
-rw-r--r--include/bb2diaspora.php6
-rw-r--r--include/follow.php3
-rwxr-xr-xinclude/items.php3
4 files changed, 10 insertions, 15 deletions
diff --git a/doc/diaspora_compat.md b/doc/diaspora_compat.md
index 7dd9f58c2..3be53c839 100644
--- a/doc/diaspora_compat.md
+++ b/doc/diaspora_compat.md
@@ -2,8 +2,6 @@
Diaspora protocol compatibility is presently considered an ***experimental*** feature. It may not be available on all sites and presents some serious compatibility issues with redmatrix. At the moment these compatibility issues will be shared with "Friendica-over-Diaspora" protocol communications.
-Private mail is currently not working. Eventually this will be fixed. Posts and comments are partially working.
-
Private mail retraction (unsend) will not be possible on Diaspora.
Private posts and their associated comments are sent in plaintext email notifications in Diaspora and Friendica. This is a major privacy issue and affects any private communications you have where *any* member of the conversation is on another network. Be aware of it.
@@ -19,21 +17,19 @@ Post expiration is not supported on Diaspora. We will provide you an option to n
End-to-end encryption is not supported. We will translate these posts into a lock icon, which can never be unlocked from the Diaspora side.
-Wall-to-wall posts may have the wrong attribution on Diaspora (sent as wall owner rather than original author). We may need to create fake "reshared" posts from wall-to-wall posts in order to retain the correct author info.
-
Message verification will eventually be supported.
Multiple profiles are not supported. Diaspora members can only see your default profile.
Birthday events will not appear in Diaspora. Other events will be translated and sent as a post, but all times will either be in the origination channel's timezone or in GMT. We do not know the recipient's timezone because Diaspora doesn't have this concept.
-Tags are converted into "un-hijackable" tags by default and will link back to your redmatrix resources. We will provide an option to allow you to let the other end of the network hijack your tags and point them at its own resources.
+We currently allow tags to be hijacked by default. We will provide an option to allow you to prevent the other end of the network from hijacking your tags and point them at its own resources.
Community tags will not work. We will send a tagging activity as a comment. It won't do anything.
Privacy tags (@!somebody) will not be available to Diaspora members. These tags may have to be stripped or obscured to prevent them from being hijacked - which could result in privacy issues.
-Plus-tagged redmatrix forums should work from Diaspora. If not today, it's very close to working. Update: these were working but presented a number of issues with mis-attributed posts and potential recursive delivery (Diaspora has no source route detection). This ability has been disabled until we can investigate these issues in detail.
+Plus-tagged redmatrix forums should work from Diaspora.
Premium channel redirects will not be sent. If you allow Diaspora connections, they will not see that you have a premium channel.
@@ -53,17 +49,12 @@ Embedded apps will be translated into links.
Embedded page design elements (work in progress) will be either stripped or converted to an error message.
-
Diaspora members will not appear in the directory.
There are differences in oembed compatibility between the networks. Some embedded resources will turn into a link on one side or the other.
-On the bright side, pokes should work.
-
-
-
diff --git a/include/bb2diaspora.php b/include/bb2diaspora.php
index e60f72add..089838e97 100644
--- a/include/bb2diaspora.php
+++ b/include/bb2diaspora.php
@@ -131,10 +131,8 @@ function diaspora2bb($s,$use_zrl = false) {
// $s = preg_replace('/\@\{(.+?)\; (.+?)\@(.+?)\}/','@[url=https://$3/u/$2]$1[/url]',$s);
// first try plustags
- // nope don't do it. This will cause mis-attributed messages and runaway delivery chains -
- // Diaspora doesn't have sufficient delivery loop detection.
- // Leave the next line commented and leave this description here so future readers will know why.
- // $s = preg_replace_callback('/\@\{(.+?)\; (.+?)\@(.+?)\}\+/','diaspora_mention_callback',$s);
+
+ $s = preg_replace_callback('/\@\{(.+?)\; (.+?)\@(.+?)\}\+/','diaspora_mention_callback',$s);
$s = preg_replace_callback('/\@\{(.+?)\; (.+?)\@(.+?)\}/','diaspora_mention_callback',$s);
diff --git a/include/follow.php b/include/follow.php
index 38525982e..a967386e9 100644
--- a/include/follow.php
+++ b/include/follow.php
@@ -19,6 +19,9 @@ function new_contact($uid,$url,$channel,$interactive = false, $confirm = false)
$is_red = false;
$is_http = ((strpos($url,'://') !== false) ? true : false);
+ if($is_http && substr($url,-1,1) === '/')
+ $url = substr($url,0,-1);
+
if(! allowed_url($url)) {
$result['message'] = t('Channel is blocked on this site.');
return $result;
diff --git a/include/items.php b/include/items.php
index dbea5779c..d972a1ce9 100755
--- a/include/items.php
+++ b/include/items.php
@@ -1424,6 +1424,9 @@ function get_atom_elements($feed,$item,&$author) {
$author['author_link'] = unxmlify($feed->get_permalink());
}
+ if(substr($author['author_link'],-1,1) == '/')
+ $author['author_link'] = substr($author['author_link'],0,-1);
+
$res['mid'] = base64url_encode(unxmlify($item->get_id()));
$res['title'] = unxmlify($item->get_title());
$res['body'] = unxmlify($item->get_content());