diff options
author | Friendika <info@friendika.com> | 2011-02-26 01:53:18 -0800 |
---|---|---|
committer | Friendika <info@friendika.com> | 2011-02-26 01:53:18 -0800 |
commit | 05d3eb59ecdaf757dd2822a65a13b72311307a72 (patch) | |
tree | f826302a5838c941a7292bde6f18fdda9c389f14 | |
parent | 4efa0f1e813970b3fbd5f95fdc2a7d8ca767ca0e (diff) | |
download | volse-hubzilla-05d3eb59ecdaf757dd2822a65a13b72311307a72.tar.gz volse-hubzilla-05d3eb59ecdaf757dd2822a65a13b72311307a72.tar.bz2 volse-hubzilla-05d3eb59ecdaf757dd2822a65a13b72311307a72.zip |
status.net mentions to non-followers require the numeric profile URL, not the nickname profile URL. Though it works when they are a follower.
-rw-r--r-- | boot.php | 4 | ||||
-rw-r--r-- | include/salmon.php | 3 | ||||
-rw-r--r-- | mod/item.php | 13 | ||||
-rw-r--r-- | view/atom_feed.tpl | 3 |
4 files changed, 20 insertions, 3 deletions
@@ -1941,8 +1941,10 @@ function get_mentions($item) { $arr = explode(',',$item['tag']); foreach($arr as $x) { $matches = null; - if(preg_match('/@\[url=([^\]]*)\]/',$x,$matches)) + if(preg_match('/@\[url=([^\]]*)\]/',$x,$matches)) { $o .= "\t\t" . '<link rel="mentioned" href="' . $matches[1] . '" />' . "\r\n"; + $o .= "\t\t" . '<link rel="ostatus:attention" href="' . $matches[1] . '" />' . "\r\n"; + } } return $o; }} diff --git a/include/salmon.php b/include/salmon.php index 8a56882ad..b5c21a87b 100644 --- a/include/salmon.php +++ b/include/salmon.php @@ -128,7 +128,8 @@ $namespaces = <<< EOT xmlns:dfrn="http://purl.org/macgirvin/dfrn/1.0" xmlns:as="http://activitystrea.ms/spec/1.0/" xmlns:georss="http://www.georss.org/georss" - xmlns:poco="http://portablecontacts.net/spec/1.0" > + xmlns:poco="http://portablecontacts.net/spec/1.0" + xmlns:ostatus="http://ostatus.org/schema/1.0" > EOT; $slap = str_replace('<entry>',$namespaces,$slap); diff --git a/mod/item.php b/mod/item.php index c2487435e..5989d0967 100644 --- a/mod/item.php +++ b/mod/item.php @@ -239,6 +239,7 @@ function item_post(&$a) { } else { $newname = $name; + $alias = ''; if(strstr($name,'_')) { $newname = str_replace('_',' ',$name); $r = q("SELECT * FROM `contact` WHERE `name` = '%s' AND `uid` = %d LIMIT 1", @@ -257,6 +258,8 @@ function item_post(&$a) { if($r[0]['network'] === 'stat') { $newname = $r[0]['nick']; $stat = true; + if($r[0]['alias']) + $alias = $r[0]['alias']; } else $newname = $r[0]['name']; @@ -271,6 +274,16 @@ function item_post(&$a) { if(strlen($str_tags)) $str_tags .= ','; $str_tags .= '@[url=' . $profile . ']' . $newname . '[/url]'; + + // Status.Net seems to require the numeric ID URL in a mention if the person isn't + // subscribed to you. But the nickname URL is OK if they are. Grrr. We'll tag both. + + if(strlen($alias)) { + if(strlen($str_tags)) + $str_tags .= ','; + $str_tags .= '@[url=' . $alias . ']' . $newname . '[/url]'; + } + } } } diff --git a/view/atom_feed.tpl b/view/atom_feed.tpl index e59b20ab1..686c256ed 100644 --- a/view/atom_feed.tpl +++ b/view/atom_feed.tpl @@ -6,7 +6,8 @@ xmlns:dfrn="http://purl.org/macgirvin/dfrn/1.0" xmlns:as="http://activitystrea.ms/spec/1.0/" xmlns:georss="http://www.georss.org/georss" - xmlns:poco="http://portablecontacts.net/spec/1.0" > + xmlns:poco="http://portablecontacts.net/spec/1.0" + xmlns:ostatus="http://ostatus.org/schema/1.0" > <id>$feed_id</id> <title>$feed_title</title> |