Try oEmbed discovery before using oohembed
This commit is contained in:
parent
f75932601c
commit
a35794e3c3
|
@ -79,9 +79,8 @@ class File extends Memcached_DataObject
|
||||||
|
|
||||||
if (isset($redir_data['type'])
|
if (isset($redir_data['type'])
|
||||||
&& ('text/html' === substr($redir_data['type'], 0, 9))
|
&& ('text/html' === substr($redir_data['type'], 0, 9))
|
||||||
&& ($oembed_data = File_oembed::_getOembed($given_url))
|
&& ($oembed_data = File_oembed::_getOembed($given_url))) {
|
||||||
&& isset($oembed_data['json'])) {
|
File_oembed::saveNew($oembed_data, $file_id);
|
||||||
File_oembed::saveNew($oembed_data['json'], $file_id);
|
|
||||||
}
|
}
|
||||||
return $x;
|
return $x;
|
||||||
}
|
}
|
||||||
|
|
|
@ -56,33 +56,46 @@ class File_oembed extends Memcached_DataObject
|
||||||
return array(false, false, false);
|
return array(false, false, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
function _getOembed($url, $maxwidth = 500, $maxheight = 400, $format = 'json') {
|
function _getOembed($url, $maxwidth = 500, $maxheight = 400) {
|
||||||
$cmd = common_config('oohembed', 'endpoint') . '?url=' . urlencode($url);
|
require_once INSTALLDIR.'/extlib/Services/oEmbed.php';
|
||||||
if (is_int($maxwidth)) $cmd .= "&maxwidth=$maxwidth";
|
$parameters = array(
|
||||||
if (is_int($maxheight)) $cmd .= "&maxheight=$maxheight";
|
'maxwidth'=>$maxwidth,
|
||||||
if (is_string($format)) $cmd .= "&format=$format";
|
'maxheight'=>$maxheight,
|
||||||
$oe = @file_get_contents($cmd);
|
);
|
||||||
if (false === $oe) return false;
|
try{
|
||||||
return array($format => (('json' === $format) ? json_decode($oe, true) : $oe));
|
$oEmbed = new Services_oEmbed($url);
|
||||||
|
$object = $oEmbed->getObject($parameters);
|
||||||
|
return $object;
|
||||||
|
}catch(Exception $e){
|
||||||
|
try{
|
||||||
|
$oEmbed = new Services_oEmbed($url, array(
|
||||||
|
Services_oEmbed::OPTION_API => common_config('oohembed', 'endpoint')
|
||||||
|
));
|
||||||
|
$object = $oEmbed->getObject($parameters);
|
||||||
|
return $object;
|
||||||
|
}catch(Exception $ex){
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function saveNew($data, $file_id) {
|
function saveNew($data, $file_id) {
|
||||||
$file_oembed = new File_oembed;
|
$file_oembed = new File_oembed;
|
||||||
$file_oembed->file_id = $file_id;
|
$file_oembed->file_id = $file_id;
|
||||||
$file_oembed->version = $data['version'];
|
$file_oembed->version = $data->version;
|
||||||
$file_oembed->type = $data['type'];
|
$file_oembed->type = $data->type;
|
||||||
if (!empty($data['provider_name'])) $file_oembed->provider = $data['provider_name'];
|
if (!empty($data->provider_name)) $file_oembed->provider = $data->provider_name;
|
||||||
if (!isset($file_oembed->provider) && !empty($data['provide'])) $file_oembed->provider = $data['provider'];
|
if (!empty($data->provider)) $file_oembed->provider = $data->provider;
|
||||||
if (!empty($data['provide_url'])) $file_oembed->provider_url = $data['provider_url'];
|
if (!empty($data->provide_url)) $file_oembed->provider_url = $data->provider_url;
|
||||||
if (!empty($data['width'])) $file_oembed->width = intval($data['width']);
|
if (!empty($data->width)) $file_oembed->width = intval($data->width);
|
||||||
if (!empty($data['height'])) $file_oembed->height = intval($data['height']);
|
if (!empty($data->height)) $file_oembed->height = intval($data->height);
|
||||||
if (!empty($data['html'])) $file_oembed->html = $data['html'];
|
if (!empty($data->html)) $file_oembed->html = $data->html;
|
||||||
if (!empty($data['title'])) $file_oembed->title = $data['title'];
|
if (!empty($data->title)) $file_oembed->title = $data->title;
|
||||||
if (!empty($data['author_name'])) $file_oembed->author_name = $data['author_name'];
|
if (!empty($data->author_name)) $file_oembed->author_name = $data->author_name;
|
||||||
if (!empty($data['author_url'])) $file_oembed->author_url = $data['author_url'];
|
if (!empty($data->author_url)) $file_oembed->author_url = $data->author_url;
|
||||||
if (!empty($data['url'])) $file_oembed->url = $data['url'];
|
if (!empty($data->url)) $file_oembed->url = $data->url;
|
||||||
$file_oembed->insert();
|
$file_oembed->insert();
|
||||||
if (!empty($data['thumbnail_url'])) {
|
if (!empty($data->thumbnail_url)) {
|
||||||
File_thumbnail::saveNew($data, $file_id);
|
File_thumbnail::saveNew($data, $file_id);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -51,9 +51,9 @@ class File_thumbnail extends Memcached_DataObject
|
||||||
function saveNew($data, $file_id) {
|
function saveNew($data, $file_id) {
|
||||||
$tn = new File_thumbnail;
|
$tn = new File_thumbnail;
|
||||||
$tn->file_id = $file_id;
|
$tn->file_id = $file_id;
|
||||||
$tn->url = $data['thumbnail_url'];
|
$tn->url = $data->thumbnail_url;
|
||||||
$tn->width = intval($data['thumbnail_width']);
|
$tn->width = intval($data->thumbnail_width);
|
||||||
$tn->height = intval($data['thumbnail_height']);
|
$tn->height = intval($data->thumbnail_height);
|
||||||
$tn->insert();
|
$tn->insert();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user