From 25cff9c07b747fdd0ca58ebd9935fc3e95202e04 Mon Sep 17 00:00:00 2001 From: ronansalmon Date: Fri, 21 Aug 2020 14:55:11 +0200 Subject: [PATCH] [TwitterBridge] Convert plain text URLs into HTML hyperlinks (#1627) --- bridges/TwitterBridge.php | 32 ++++++++++++++++++++++++++++++-- 1 file changed, 30 insertions(+), 2 deletions(-) diff --git a/bridges/TwitterBridge.php b/bridges/TwitterBridge.php index c946bfd8..7b7bbe86 100644 --- a/bridges/TwitterBridge.php +++ b/bridges/TwitterBridge.php @@ -235,9 +235,37 @@ EOD // extract tweet timestamp $item['timestamp'] = $tweet->created_at; + // Convert plain text URLs into HTML hyperlinks + $cleanedTweet = $tweet->full_text; + $foundUrls = false; + + if (isset($tweet->entities->media)) { + foreach($tweet->entities->media as $media) { + $cleanedTweet = str_replace($media->url, + '' . $media->display_url . '', + $cleanedTweet); + $foundUrls = true; + } + } + if (isset($tweet->entities->urls)) { + foreach($tweet->entities->urls as $url) { + $cleanedTweet = str_replace($url->url, + '' . $url->display_url . '', + $cleanedTweet); + $foundUrls = true; + } + } + if ($foundUrls === false) { + // fallback to regex'es + $reg_ex = '/(http|https|ftp|ftps)\:\/\/[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(\/\S*)?/'; + if(preg_match($reg_ex, $tweet->full_text, $url)) { + $cleanedTweet = preg_replace($reg_ex, + "{$url[0]} ", + $cleanedTweet); + } + } // generate the title - $item['title'] = $tweet->full_text; - $cleanedTweet = $tweet->full_text; + $item['title'] = strip_tags($cleanedTweet); // Add avatar $picture_html = '';