+// Returns the HTML code to display a thumbnail for a link.
+// Understands various services (youtube.com...)
+function thumbnail($url)
+{
+ if (!ENABLE_THUMBNAILS) return '';
+ $domain = parse_url($url,PHP_URL_HOST);
+ if ($domain=='youtube.com' || $domain=='www.youtube.com')
+ {
+ parse_str(parse_url($url,PHP_URL_QUERY), $params); // Extract video ID and get thumbnail
+ if (!empty($params['v'])) return '<div class="thumbnail"><a href="'.htmlspecialchars($url).'"><img src="http://img.youtube.com/vi/'.htmlspecialchars($params['v']).'/2.jpg" width="120" height="90"></a></div>';
+ }
+ if ($domain=='imgur.com')
+ {
+ $path = parse_url($url,PHP_URL_PATH);
+ if (substr_count($path,'/')==1) return '<div class="thumbnail"><a href="'.htmlspecialchars($url).'"><img src="http://i.imgur.com/'.htmlspecialchars(substr($path,1)).'s.jpg" width="90" height="90"></a></div>';
+ }
+ if ($domain=='i.imgur.com')
+ {
+ $pi = pathinfo(parse_url($url,PHP_URL_PATH));
+ if (!empty($pi['filename'])) return '<div class="thumbnail"><a href="'.htmlspecialchars($url).'"><img src="http://i.imgur.com/'.htmlspecialchars($pi['filename']).'s.jpg" width="90" height="90"></a></div>';
+ }
+ if ($domain=='dailymotion.com' || $domain=='www.dailymotion.com')
+ {
+ if (strpos($url,'dailymotion.com/video/'))
+ {
+ $thumburl=str_replace('dailymotion.com/video/','dailymotion.com/thumbnail/video/',$url);
+ return '<div class="thumbnail"><a href="'.htmlspecialchars($url).'"><img src="'.htmlspecialchars($thumburl).'" width="120" style="height:auto;"></a></div>';
+ }
+ }
+ if ($domain=='vimeo.com')
+ {
+ // This is more complex: we have to perform a HTTP request, then parse the result.
+ // This slows down page generation :-(
+ // Maybe we should deport this to javascript ? Example: http://stackoverflow.com/questions/1361149/get-img-thumbnails-from-vimeo/4285098#4285098
+ $vid = substr(parse_url($url,PHP_URL_PATH),1);
+ // We allow 2 seconds for Vimeo servers to respond.
+ list($httpstatus,$headers,$data) = getHTTP('http://vimeo.com/api/v2/video/'.htmlspecialchars($vid).'.php',2);
+ if (strpos($httpstatus,'200 OK'))
+ {
+ $t = unserialize($data);
+ if (!empty($t[0]['thumbnail_medium'])) return '<div class="thumbnail"><a href="'.htmlspecialchars($url).'"><img src="'.htmlspecialchars($t[0]['thumbnail_medium']).'" width="120" style="height:auto;"></a></div>';
+ }
+ }
+ return ''; // No thumbnail.
+
+}
+