From 0c24784f5e92e0c8269f255e962312574871f2f0 Mon Sep 17 00:00:00 2001 From: friendica Date: Tue, 6 Dec 2011 15:24:01 -0800 Subject: [PATCH] include diaspora mentions in personal (requires adding a Diaspora profile url because they don't use ours) --- boot.php | 7 ++++++- include/diaspora.php | 11 ++++++++++- mod/network.php | 6 ++++-- mod/notifications.php | 6 ++++-- 4 files changed, 24 insertions(+), 6 deletions(-) diff --git a/boot.php b/boot.php index a5904ef01..1f465d110 100644 --- a/boot.php +++ b/boot.php @@ -9,7 +9,7 @@ require_once('include/nav.php'); require_once('include/cache.php'); define ( 'FRIENDICA_PLATFORM', 'Friendica'); -define ( 'FRIENDICA_VERSION', '2.3.1186' ); +define ( 'FRIENDICA_VERSION', '2.3.1187' ); define ( 'DFRN_PROTOCOL_VERSION', '2.22' ); define ( 'DB_UPDATE_VERSION', 1110 ); @@ -311,6 +311,11 @@ class App { if(substr($this->cmd,0,1) === '~') $this->cmd = 'profile/' . substr($this->cmd,1); + // Diaspora style profile url + + if(substr($this->cmd,0,2) === 'u/') + $this->cmd = 'profile/' . substr($this->cmd,2); + /** * * Break the URL path into C style argc/argv style arguments for our diff --git a/include/diaspora.php b/include/diaspora.php index a8fd43024..4f0df1944 100644 --- a/include/diaspora.php +++ b/include/diaspora.php @@ -621,7 +621,16 @@ function diaspora_post($importer,$xml) { } } } - + + $cnt = preg_match_all('/@\[url=(.*?)\[\/url\]/ism',$body,$matches,PREG_SET_ORDER); + if($cnt) { + foreach($matches as $mtch) { + if(strlen($str_tags)) + $str_tags .= ','; + $str_tags .= '@[url=' . $mtch[1] . '[/url]'; + } + } + $datarray['uid'] = $importer['uid']; $datarray['contact-id'] = $contact['id']; $datarray['wall'] = 0; diff --git a/mod/network.php b/mod/network.php index 8df3f83df..2a3db597e 100644 --- a/mod/network.php +++ b/mod/network.php @@ -373,9 +373,11 @@ function network_content(&$a, $update = 0) { $myurl = $a->get_baseurl() . '/profile/'. $a->user['nickname']; $myurl = substr($myurl,strpos($myurl,'://')+3); $myurl = str_replace(array('www.','.'),array('','\\.'),$myurl); - $sql_extra .= sprintf(" AND `item`.`parent` IN (SELECT distinct(`parent`) from item where ( `author-link` regexp '%s' or `tag` regexp '%s' )) ", + $diasp_url = str_replace('/profile/','/u/',$myurl); + $sql_extra .= sprintf(" AND `item`.`parent` IN (SELECT distinct(`parent`) from item where ( `author-link` regexp '%s' or `tag` regexp '%s' or tag regexp '%s' )) ", dbesc($myurl . '$'), - dbesc($myurl . '\\]') + dbesc($myurl . '\\]'), + dbesc($diasp_url . '\\]') ); } diff --git a/mod/notifications.php b/mod/notifications.php index 385f9d719..5733e6e57 100644 --- a/mod/notifications.php +++ b/mod/notifications.php @@ -297,9 +297,11 @@ function notifications_content(&$a) { $myurl = $a->get_baseurl() . '/profile/'. $a->user['nickname']; $myurl = substr($myurl,strpos($myurl,'://')+3); $myurl = str_replace(array('www.','.'),array('','\\.'),$myurl); - $sql_extra .= sprintf(" AND ( `item`.`author-link` regexp '%s' or `item`.`tag` regexp '%s' ) ", + $diasp_url = str_replace('/profile/','/u/',$myurl); + $sql_extra .= sprintf(" AND ( `item`.`author-link` regexp '%s' or `item`.`tag` regexp '%s' or `item`.`tag` regexp '%s' ) ", dbesc($myurl . '$'), - dbesc($myurl . '\\]') + dbesc($myurl . '\\]'), + dbesc($diasp_url . '\\]') );