From 306036c62613fd849a80c83c50cd220f75e64c90 Mon Sep 17 00:00:00 2001 From: Fabio Comuni Date: Mon, 24 Oct 2011 13:02:38 +0200 Subject: [PATCH 1/7] cache api --- boot.php | 1 + include/cache.php | 29 +++++++++++++++++++++++++++++ include/oembed.php | 16 ++++++---------- include/poller.php | 3 +-- 4 files changed, 37 insertions(+), 12 deletions(-) create mode 100644 include/cache.php diff --git a/boot.php b/boot.php index 017e21814..9623b4b14 100644 --- a/boot.php +++ b/boot.php @@ -6,6 +6,7 @@ require_once('include/plugin.php'); require_once('include/text.php'); require_once("include/pgettext.php"); require_once('include/nav.php'); +require_once('include/cache.php'); define ( 'FRIENDIKA_PLATFORM', 'Free Friendika'); define ( 'FRIENDIKA_VERSION', '2.3.1140' ); diff --git a/include/cache.php b/include/cache.php new file mode 100644 index 000000000..082974c61 --- /dev/null +++ b/include/cache.php @@ -0,0 +1,29 @@ + + + diff --git a/include/poller.php b/include/poller.php index cef0647b5..a19f0716f 100644 --- a/include/poller.php +++ b/include/poller.php @@ -64,8 +64,7 @@ function poller_run($argv, $argc){ } // clear old cache - q("DELETE FROM `cache` WHERE `updated` < '%s'", - dbesc(datetime_convert('UTC','UTC',"now - 30 days"))); + Cache::clear(); $manual_id = 0; $generation = 0; From a9fb8e4d6052dbb5db95939128d491897b4f6a0c Mon Sep 17 00:00:00 2001 From: Fabio Comuni Date: Mon, 24 Oct 2011 14:30:11 +0200 Subject: [PATCH 2/7] Use oembed for bookmark, audio, video, youtube --- include/bbcode.php | 41 ++++++++++++++++++++++++++++++++++++----- mod/item.php | 1 - 2 files changed, 36 insertions(+), 6 deletions(-) diff --git a/include/bbcode.php b/include/bbcode.php index b33be686e..81f37ca04 100644 --- a/include/bbcode.php +++ b/include/bbcode.php @@ -9,6 +9,22 @@ function stripcode_br_cb($s) { return '[code]' . str_replace('
', '', $s[1]) . '[/code]'; } +function tryoembed($match){ + $url = ((count($match)==2)?$match[1]:$match[2]); + + $o = oembed_fetch_url($url); + + //echo "
"; var_dump($match, $url, $o); killme();
+
+	if ($o->type=="error") return $match[0];
+	
+	$html = oembed_format_object($o);
+	
+	return $html;
+	
+}
+
+
 
 	// BBcode 2 HTML was written by WAY2WEB.net
 	// extended to work with Mistpark/Friendika - Mike Macgirvin
@@ -40,11 +56,14 @@ function bbcode($Text,$preserve_nl = false) {
 	// Set up the parameters for a MAIL search string
 	$MAILSearchString = $URLSearchString;
 
+
 	// Perform URL Search
-
-
 	$Text = preg_replace("/([^\]\=]|^)(https?\:\/\/[a-zA-Z0-9\:\/\-\?\&\;\.\=\_\~\#\%\$\!\+\,]+)/ism", '$1$2', $Text);
+	
+	$Text = preg_replace_callback("/\[bookmark\=([^\]]*)\].*?\[\/bookmark\]/ism",'tryoembed',$Text);
+	$Text = preg_replace("/\[bookmark\=([^\]]*)\](.*?)\[\/bookmark\]/ism",'[url=$1]$2[/url]',$Text);
 
+	$Text = preg_replace_callback("/\[url\]([$URLSearchString]*)\[\/url\]/ism",'tryoembed',$Text);
 	$Text = preg_replace("/\[url\]([$URLSearchString]*)\[\/url\]/ism", '$1', $Text);
 	$Text = preg_replace("/\[url\=([$URLSearchString]*)\](.*?)\[\/url\]/ism", '$2', $Text);
 	//$Text = preg_replace("/\[url\=([$URLSearchString]*)\]([$URLSearchString]*)\[\/url\]/ism", '$2', $Text);
@@ -120,6 +139,13 @@ function bbcode($Text,$preserve_nl = false) {
 	// [img]pathtoimage[/img]
 	$Text = preg_replace("/\[img\](.*?)\[\/img\]/ism", '' . t('Image/photo') . '', $Text);
 
+
+
+	// Try to Oembed
+	$Text = preg_replace_callback("/\[video\](.*?)\[\/video\]/ism", 'tryoembed', $Text);
+	$Text = preg_replace_callback("/\[audio\](.*?)\[\/audio\]/ism", 'tryoembed', $Text);
+
+
 	// html5 video and audio
 
 	$Text = preg_replace("/\[video\](.*?)\[\/video\]/ism", '', $Text);
@@ -129,17 +155,22 @@ function bbcode($Text,$preserve_nl = false) {
 	$Text = preg_replace("/\[iframe\](.*?)\[\/iframe\]/ism", '', $Text);
          
 
-	if (get_pconfig(local_user(), 'oembed', 'use_for_youtube' )==1){
+	/*if (get_pconfig(local_user(), 'oembed', 'use_for_youtube' )==1){
 		// use oembed for youtube links
 		$Text = preg_replace("/\[youtube\]/",'[embed]',$Text); 
 		$Text = preg_replace("/\[\/youtube\]/",'[/embed]',$Text); 
-	} else {
+	} else {*/
 		// Youtube extensions
+        $Text = preg_replace_callback("/\[youtube\](https?:\/\/www.youtube.com\/watch\?v\=.*?)\[\/youtube\]/ism", 'tryoembed', $Text);        
+        $Text = preg_replace_callback("/\[youtube\](https?:\/\/youtu.be\/.*?)\[\/youtube\]/ism",'tryoembed',$Text); 
+        
         $Text = preg_replace("/\[youtube\]https?:\/\/www.youtube.com\/watch\?v\=(.*?)\[\/youtube\]/ism",'[youtube]$1[/youtube]',$Text); 
         $Text = preg_replace("/\[youtube\]https?:\/\/www.youtube.com\/embed\/(.*?)\[\/youtube\]/ism",'[youtube]$1[/youtube]',$Text); 
         $Text = preg_replace("/\[youtube\]https?:\/\/youtu.be\/(.*?)\[\/youtube\]/ism",'[youtube]$1[/youtube]',$Text); 
+		
+        
 		$Text = preg_replace("/\[youtube\]([A-Za-z0-9\-_=]+)(.*?)\[\/youtube\]/ism", '', $Text);
-	}
+	//}
 
 	$Text = preg_replace("/\[vimeo\]https?:\/\/player.vimeo.com\/video\/([0-9]+)(.*?)\[\/vimeo\]/ism",'[vimeo]$1[/vimeo]',$Text); 
 	$Text = preg_replace("/\[vimeo\]https?:\/\/vimeo.com\/([0-9]+)(.*?)\[\/vimeo\]/ism",'[vimeo]$1[/vimeo]',$Text); 
diff --git a/mod/item.php b/mod/item.php
index ab104735b..0e855d54d 100644
--- a/mod/item.php
+++ b/mod/item.php
@@ -338,7 +338,6 @@ function item_post(&$a) {
 	$bookmark = 0;
 	if(preg_match_all("/\[bookmark\=([^\]]*)\](.*?)\[\/bookmark\]/ism",$body,$match)) {
 		$bookmark = 1;
-		$body = preg_replace("/\[bookmark\=([^\]]*)\](.*?)\[\/bookmark\]/ism",'[url=$1]$2[/url]',$body);
 	}
 
 

From ac474cf53c28d8fc05eacb1d9076f8c88f1f69ae Mon Sep 17 00:00:00 2001
From: Fabio Comuni 
Date: Mon, 24 Oct 2011 14:39:39 +0200
Subject: [PATCH 3/7] try to use oembed on vimeo tag

---
 include/bbcode.php | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/include/bbcode.php b/include/bbcode.php
index 81f37ca04..7045f196f 100644
--- a/include/bbcode.php
+++ b/include/bbcode.php
@@ -172,6 +172,9 @@ function bbcode($Text,$preserve_nl = false) {
 		$Text = preg_replace("/\[youtube\]([A-Za-z0-9\-_=]+)(.*?)\[\/youtube\]/ism", '', $Text);
 	//}
 
+	$Text = preg_replace_callback("/\[vimeo\]https?:\/\/player.vimeo.com\/video\/([0-9]+)(.*?)\[\/vimeo\]/ism",'tryoembed',$Text); 
+	$Text = preg_replace_callback("/\[vimeo\]https?:\/\/vimeo.com\/([0-9]+)(.*?)\[\/vimeo\]/ism",'tryoembed',$Text); 
+
 	$Text = preg_replace("/\[vimeo\]https?:\/\/player.vimeo.com\/video\/([0-9]+)(.*?)\[\/vimeo\]/ism",'[vimeo]$1[/vimeo]',$Text); 
 	$Text = preg_replace("/\[vimeo\]https?:\/\/vimeo.com\/([0-9]+)(.*?)\[\/vimeo\]/ism",'[vimeo]$1[/vimeo]',$Text); 
 	$Text = preg_replace("/\[vimeo\]([0-9]+)(.*?)\[\/vimeo\]/ism", '', $Text);

From 718a9009be697ab8873a9ca41571f1d9701c97e7 Mon Sep 17 00:00:00 2001
From: Fabio Comuni 
Date: Mon, 24 Oct 2011 17:27:38 +0200
Subject: [PATCH 4/7] new icon "play"

---
 images/icons/10/play.png | Bin 0 -> 420 bytes
 images/icons/16/play.png | Bin 0 -> 508 bytes
 images/icons/22/play.png | Bin 0 -> 601 bytes
 images/icons/48/play.png | Bin 0 -> 1017 bytes
 images/icons/Makefile    |   3 ++-
 images/icons/play.png    | Bin 0 -> 6285 bytes
 6 files changed, 2 insertions(+), 1 deletion(-)
 create mode 100644 images/icons/10/play.png
 create mode 100644 images/icons/16/play.png
 create mode 100644 images/icons/22/play.png
 create mode 100644 images/icons/48/play.png
 create mode 100644 images/icons/play.png

diff --git a/images/icons/10/play.png b/images/icons/10/play.png
new file mode 100644
index 0000000000000000000000000000000000000000..a9f99e4d1835692906dec8b571c53a3b6ebb4be6
GIT binary patch
literal 420
zcmeAS@N?(olHy`uVBq!ia0vp^AT}2V3y@T|W;X*;Ea{HEjtmSN`)Ym%P6qNBi-X*q
z7}lMWc?skwBzpw;GB8xBGB7kWGcf%852S(Or3MTPuM!v-tY$DUi04m=Kk5cl%ar8p
z?!xfDz5mR9Adj=aBeIx*fm;}a85w5HkpK$L^>lFz;kcfhaDYidQXWu75^^fQJs0%d3OWJ+>*YSI|=c2~QZ}x}zIv%9At^aRtSTpHY)aUfq
z|9%MP1WQCnNZ1+GB>p&X;LL~lA2**+-Z^=V(|(}nK7*RnKSw^izP#BteffH8-7mjo
znYoz{Yqyo}uY0rKw*I)^+w(j;?-l%t(te!y-um}gHrpQthC6?)UVFZMvj^x<)e_f;
zl9a@fRIB8oR3OD*WMF8hYiOWrWD;U%W@T(*WoWEzU}R-r@M-e5KokwR`6-!cl|T&!
lmbwNOx`vh^Mn+aZJ*Gww4WU!!-2iG}@O1TaS?83{1OPfem4W~O

literal 0
HcmV?d00001

diff --git a/images/icons/16/play.png b/images/icons/16/play.png
new file mode 100644
index 0000000000000000000000000000000000000000..19ad05bf2eeab8390990bc4a3b9270f639510e5e
GIT binary patch
literal 508
zcmeAS@N?(olHy`uVBq!ia0vp^0wB!60wlNoGJgf6SkfJR9T^xl_SO6joDAeM76-XI
zF|0c$^AgBWNcITwWnidMWngG%W?=aFA4mhmOAQzpUL`OvSj}Ky5YL|!f7A`AmMO{G
z-G$+Qd;gjJKptm-M`SSr1Gg{;GcwGYBLNir>gnPbqH#VsVS$K&6Gvd%Qy=^PwaFX@
z0}dQHaNxj)`42^z%V%WGkvPxH=A6SN0R;Ba#%CwSd^)*rR;qj$E04XzzRmwWrAMy5
zczmtk=^Ya58YI)4I<)(*%D36a{67fNcnO8!^^v0-|iNlV|(($
zW8F=h_L6l5K$SoKJ@_&4=kM~r)n`A*EAfSYnEjFa@afafr@e{({gCl+e2aM^mxR3S
zPP@wgkJ_h8)Fts3y4eMa)paTJX)`dax*M`7-F}xSFaT6bTq8)
zQ;AC2>eD?vy)3P*H1zoNZk;{aS$`m~a0+*^#3G+tSGFuXc0@yUS`_!fZ?Av06=A~(3_iZC{vFL`C7v@aLm6=y^BXOtIzQ>y)%gf%_
zpW)x?c})AUNM`XVr8n26#)VfTEjt*``FuhKhf!GWn!3vy(~5LvTtA&S^ElJglFep!
zAI*z;wXJb;&898~g%cCrToS)s&b(Q9t>Lf#k7cy9WfB@5_nEZ
zF?BWxoZr4r_W#0f9sj
zKlyB%pOW;#>I*{`$McG}?Zb|Evwu(@l$jL9SZj8c~vxSdwa$T$Bo=7>o=I
z4Rs9-bd5|x49%>JO{@%!wGE7{3=BR^{uYR$AvZrIGp!P+!N5}2z(Uv1GQ`Np3aH1_
W2%;f$%Dfvu4Gf;HelF{r5}E);Q}fLL

literal 0
HcmV?d00001

diff --git a/images/icons/48/play.png b/images/icons/48/play.png
new file mode 100644
index 0000000000000000000000000000000000000000..fce5893704bdd3c1771ae143818dc42178ee49f3
GIT binary patch
literal 1017
zcmVPx#AY({UO#lFTB>(_`g8%^e{{R4h=>PzAFaQARU;qF*
zm;eA5Z<1fdMgRZ+0%A)?L;(MXkIcUS000SaNLh0L01FcU01FcV0GgZ_0008=NklTE7^wN&IPxC>or;#SEL1uYL&RIiIUg;Gn+ihWzZJF}5(EuU@h!DVo1-I33^+ZF{
zt%tdZCK5k`j7oFfNs&m9AVB~R7}HDk7F9)z<2E*F6Z|V4i(oY3u|2ibb&aPhHmijt
zV<16{DjqBtz4pTX7d7{u9n@))lEG>d2J8;Q^;2&wH)>2ENkg<87Ka7G2vq_C!8xRmMZ2v%`^+&%nhH?17$c3e_rsAsRVczL%vD$mXKjDTKL4@Ul
zlAT~>$ONJ^?QOTWb_GV@f(L$Zv7d)EAR+()^F6)Iof8hYFo|Da)!joChzJPS#i79#
z>%ce32{(LLKt$ywS4Ko3B23Vh4qFd53L0Jnl&B{#fdo_=dI
z1_V0jL4ix0x;lfU?OaMarIa>Ue*kV_sRLLPYNY@G03~!qSaf7zbY(hYa%Ew3WdJfT
zF)=MMFfB4PR53O>Gc-CeGb=DMIxsNullD;n001R)MObuXVRU6WZEs|0W_bWIFfchS
nFgPtSIaD$-Ix#jnH8LwOGCD9YRg|9C00000NkvXXu0mjfn}(%W

literal 0
HcmV?d00001

diff --git a/images/icons/Makefile b/images/icons/Makefile
index 39428d154..6a96fb676 100644
--- a/images/icons/Makefile
+++ b/images/icons/Makefile
@@ -1,7 +1,8 @@
 
 IMAGES=add.png edit.png	gear.png info.png menu.png \
 		notify_off.png star.png  delete.png feed.png group.png \
-		lock.png notice.png notify_on.png user.png link.png
+		lock.png notice.png notify_on.png user.png link.png \
+		play.png
 
 DESTS=10/ 16/ 22/ 48/ \
 		$(addprefix 10/, $(IMAGES)) \
diff --git a/images/icons/play.png b/images/icons/play.png
new file mode 100644
index 0000000000000000000000000000000000000000..7c942072e739c2367610c3016fc5f6d94e48bfb7
GIT binary patch
literal 6285
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
czFPtyqY@!JGbihb`@aLU)gP
Date: Mon, 24 Oct 2011 17:28:28 +0200
Subject: [PATCH 5/7] move html for oembeded videos in template. fix oembed
 discovery

---
 include/oembed.php    | 38 ++++++++++++++++++++++----------------
 view/oembed_video.tpl |  4 ++++
 2 files changed, 26 insertions(+), 16 deletions(-)
 create mode 100644 view/oembed_video.tpl

diff --git a/include/oembed.php b/include/oembed.php
index d40ceb3fd..2933252b3 100644
--- a/include/oembed.php
+++ b/include/oembed.php
@@ -7,7 +7,7 @@ function oembed_replacecb($matches){
 
 
 function oembed_fetch_url($embedurl){
-
+	
 	$txt = Cache::get($embedurl);
 				
 	if(is_null($txt)){
@@ -16,18 +16,18 @@ function oembed_fetch_url($embedurl){
 		// try oembed autodiscovery
 		$redirects = 0;
 		$html_text = fetch_url($embedurl, false, $redirects, 15);
-		if(! $html_text)
-			return;
-		$dom = @DOMDocument::loadHTML($html_text);
-		if ($dom){
-			$xpath = new DOMXPath($dom);
-			$attr = "oembed";
-		
-			$xattr = oe_build_xpath("class","oembed");
-			$entries = $xpath->query("//link[@type='application/json+oembed']");
-			foreach($entries as $e){
-				$href = $e->getAttributeNode("href")->nodeValue;
-				$txt = fetch_url($href);
+		if($html_text){
+			$dom = @DOMDocument::loadHTML($html_text);
+			if ($dom){
+				$xpath = new DOMXPath($dom);
+				$attr = "oembed";
+			
+				$xattr = oe_build_xpath("class","oembed");
+				$entries = $xpath->query("//link[@type='application/json+oembed']");
+				foreach($entries as $e){
+					$href = $e->getAttributeNode("href")->nodeValue;
+					$txt = fetch_url($href);
+				}
 			}
 		}
 		
@@ -59,9 +59,15 @@ function oembed_format_object($j){
 				/*$tw = (isset($j->thumbnail_width)) ? $j->thumbnail_width:200;
 				$th = (isset($j->thumbnail_height)) ? $j->thumbnail_height:180;*/
 				$tw=150; $th=120; 
-				$ret.= "";
-				$ret.= "";
-				$ret.= "";
+				$tpl=get_markup_template('oembed_video.tpl');
+				$ret.=replace_macros($tpl, array(
+					'$embedurl'=>$embedurl,
+					'$escapedhtml'=>urlencode($j->html),
+					'$tw'=>$tw,
+					'$th'=>$th,
+					'$turl'=>$j->thumbnail_url,
+				));
+				
 			} else {
 				$ret=$j->html;
 			}
diff --git a/view/oembed_video.tpl b/view/oembed_video.tpl
new file mode 100644
index 000000000..29b5149ba
--- /dev/null
+++ b/view/oembed_video.tpl
@@ -0,0 +1,4 @@
+
+	
+	
+
From 40ea48bdabb5b7b8c87cd3c37e12c0c24eb91014 Mon Sep 17 00:00:00 2001 From: Fabio Comuni Date: Mon, 24 Oct 2011 17:28:48 +0200 Subject: [PATCH 6/7] fix vimeo oembed bbcode regexp --- include/bbcode.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/include/bbcode.php b/include/bbcode.php index 7045f196f..a8c66d30f 100644 --- a/include/bbcode.php +++ b/include/bbcode.php @@ -172,8 +172,8 @@ function bbcode($Text,$preserve_nl = false) { $Text = preg_replace("/\[youtube\]([A-Za-z0-9\-_=]+)(.*?)\[\/youtube\]/ism", '', $Text); //} - $Text = preg_replace_callback("/\[vimeo\]https?:\/\/player.vimeo.com\/video\/([0-9]+)(.*?)\[\/vimeo\]/ism",'tryoembed',$Text); - $Text = preg_replace_callback("/\[vimeo\]https?:\/\/vimeo.com\/([0-9]+)(.*?)\[\/vimeo\]/ism",'tryoembed',$Text); + $Text = preg_replace_callback("/\[vimeo\](https?:\/\/player.vimeo.com\/video\/[0-9]+).*?\[\/vimeo\]/ism",'tryoembed',$Text); + $Text = preg_replace_callback("/\[vimeo\](https?:\/\/vimeo.com\/[0-9]+).*?\[\/vimeo\]/ism",'tryoembed',$Text); $Text = preg_replace("/\[vimeo\]https?:\/\/player.vimeo.com\/video\/([0-9]+)(.*?)\[\/vimeo\]/ism",'[vimeo]$1[/vimeo]',$Text); $Text = preg_replace("/\[vimeo\]https?:\/\/vimeo.com\/([0-9]+)(.*?)\[\/vimeo\]/ism",'[vimeo]$1[/vimeo]',$Text); From 2905df527f2fbc9b426ebc89a53adc5c6cf1ee47 Mon Sep 17 00:00:00 2001 From: Fabio Comuni Date: Mon, 24 Oct 2011 17:31:14 +0200 Subject: [PATCH 7/7] fix oembed video thumb display ratio --- include/oembed.php | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/include/oembed.php b/include/oembed.php index 2933252b3..924e61289 100644 --- a/include/oembed.php +++ b/include/oembed.php @@ -56,9 +56,11 @@ function oembed_format_object($j){ switch ($j->type) { case "video": { if (isset($j->thumbnail_url)) { - /*$tw = (isset($j->thumbnail_width)) ? $j->thumbnail_width:200; - $th = (isset($j->thumbnail_height)) ? $j->thumbnail_height:180;*/ - $tw=150; $th=120; + $tw = (isset($j->thumbnail_width)) ? $j->thumbnail_width:200; + $th = (isset($j->thumbnail_height)) ? $j->thumbnail_height:180; + $tr = $tw/$th; + + $th=120; $tw = $th*$tr; $tpl=get_markup_template('oembed_video.tpl'); $ret.=replace_macros($tpl, array( '$embedurl'=>$embedurl,