From 72d74b88be0e9a25920d336c7eab0aeb09342f63 Mon Sep 17 00:00:00 2001
From: Friendika <info@friendika.com>
Date: Tue, 25 Oct 2011 19:59:57 -0700
Subject: [PATCH] some dspr fixes

---
 include/bb2diaspora.php | 4 ++++
 include/bbcode.php      | 1 +
 include/diaspora.php    | 7 ++++++-
 include/text.php        | 2 +-
 4 files changed, 12 insertions(+), 2 deletions(-)

diff --git a/include/bb2diaspora.php b/include/bb2diaspora.php
index e2711755b7..f7398067b9 100644
--- a/include/bb2diaspora.php
+++ b/include/bb2diaspora.php
@@ -11,8 +11,12 @@ function diaspora2bb($s) {
 	$s = preg_replace('/\@\{(.+?)\; (.+?)\@(.+?)\}/','@[url=https://$3/u/$2]$1[/url]',$s);
 	$s = Markdown($s);
 	$s = html2bbcode($s);
+	$s = str_replace('&#42;','*',$s);
     $s = preg_replace("/\[url\=?(.*?)\]https?:\/\/www.youtube.com\/watch\?v\=(.*?)\[\/url\]/ism",'[youtube]$2[/youtube]',$s); 
+    $s = preg_replace("/\[url\=https?:\/\/www.youtube.com\/watch\?v\=(.*?)\].*?\[\/url\]/ism",'[youtube]$1[/youtube]',$s); 
 	$s = preg_replace("/\[url\=?(.*?)\]https?:\/\/vimeo.com\/([0-9]+)(.*?)\[\/url\]/ism",'[vimeo]$2[/vimeo]',$s); 
+	$s = preg_replace("/\[url\=https?:\/\/vimeo.com\/([0-9]+)\](.*?)\[\/url\]/ism",'[vimeo]$1[/vimeo]',$s); 
+	$s = preg_replace("/([^\]\=]|^)(https?\:\/\/)(vimeo|youtu|www\.youtube|soundcloud)([a-zA-Z0-9\:\/\-\?\&\;\.\=\_\~\#\%\$\!\+\,]+)/ism", '$1[url]$2$3$4[/url]',$s);
 
 	return $s;
 }
diff --git a/include/bbcode.php b/include/bbcode.php
index e20b2478d3..a60d09ce8b 100644
--- a/include/bbcode.php
+++ b/include/bbcode.php
@@ -57,6 +57,7 @@ function bbcode($Text,$preserve_nl = false) {
 
 
 	// Perform URL Search
+
 	$Text = preg_replace("/([^\]\=]|^)(https?\:\/\/[a-zA-Z0-9\:\/\-\?\&\;\.\=\_\~\#\%\$\!\+\,]+)/ism", '$1<a href="$2" target="external-link">$2</a>', $Text);
 	
 	$Text = preg_replace_callback("/\[bookmark\=([^\]]*)\].*?\[\/bookmark\]/ism",'tryoembed',$Text);
diff --git a/include/diaspora.php b/include/diaspora.php
index 2379ae8e3e..ad5e2adb2a 100644
--- a/include/diaspora.php
+++ b/include/diaspora.php
@@ -92,12 +92,14 @@ function find_diaspora_person_by_handle($handle) {
 		dbesc($handle)
 	);
 	if(count($r)) {
+		logger('find_diaspora_person_by handle: in cache ' . print_r($r,true), LOGGER_DEBUG);
 		// update record occasionally so it doesn't get stale
 		$d = strtotime($r[0]['updated'] . ' +00:00');
 		if($d > strtotime('now - 14 days'))
 			return $r[0];
 		$update = true;
 	}
+	logger('find_diaspora_person_by_handle: refresh',LOGGER_DEBUG);
 	require_once('include/Scrape.php');
 	$r = probe_url($handle, PROBE_DIASPORA);
 	if((count($r)) && ($r['network'] === NETWORK_DIASPORA)) {
@@ -947,7 +949,10 @@ function diaspora_comment($importer,$xml,$msg) {
 	$datarray['author-avatar'] = ((x($person,'thumb')) ? $person['thumb'] : $person['photo']);
 	$datarray['body'] = $body;
 	$datarray['tag'] = $str_tags;
-	$datarray['app']  = 'Diaspora';
+
+	// We can't be certain what the original app is if the message is relayed.
+	if(($parent_item['origin']) && (! $parent_author_signature)) 
+		$datarray['app']  = 'Diaspora';
 
 	$message_id = item_store($datarray);
 
diff --git a/include/text.php b/include/text.php
index a9763fd211..e0f38a3a0d 100644
--- a/include/text.php
+++ b/include/text.php
@@ -481,7 +481,7 @@ function get_tags($s) {
 	// Otherwise pull out single word tags. These can be @nickname, @first_last
 	// and #hash tags.
 
-	if(preg_match_all('/([@#][^ \x0D\x0A,:?]+)([ \x0D\x0A,:?]|$)/',$s,$match)) {
+	if(preg_match_all('/([@#][^ \x0D\x0A,;:?]+)([ \x0D\x0A,;:?]|$)/',$s,$match)) {
 		foreach($match[1] as $mtch) {
 			if(strstr($mtch,"]")) {
 				// we might be inside a bbcode color tag - leave it alone
-- 
2.39.5