more oembed provider work - channel articles
This commit is contained in:
parent
01b5b13475
commit
ff487a0271
@ -53,6 +53,10 @@ function oembed_fetch_url($embedurl){
|
||||
|
||||
$a = get_app();
|
||||
|
||||
$embedurl = str_replace('&','&', $embedurl);
|
||||
|
||||
// logger('fetch: ' . $embedurl);
|
||||
|
||||
$txt = Cache::get($a->videowidth . $embedurl);
|
||||
|
||||
if(strstr($txt,'youtu') && strstr(z_root(),'https:')) {
|
||||
@ -120,20 +124,29 @@ function oembed_fetch_url($embedurl){
|
||||
if ($txt[0]!="{") $txt='{"type":"error"}';
|
||||
|
||||
//save in cache
|
||||
Cache::set($a->videowidth . $embedurl,$txt);
|
||||
|
||||
if(! get_config('system','oembed_cache_disable'))
|
||||
Cache::set($a->videowidth . $embedurl,$txt);
|
||||
|
||||
}
|
||||
|
||||
|
||||
$j = json_decode($txt);
|
||||
$j->embedurl = $embedurl;
|
||||
|
||||
// logger('fetch return: ' . print_r($j,true));
|
||||
|
||||
return $j;
|
||||
|
||||
|
||||
}
|
||||
|
||||
function oembed_format_object($j){
|
||||
$a = get_app();
|
||||
$embedurl = $j->embedurl;
|
||||
|
||||
// logger('format: ' . print_r($j,true));
|
||||
|
||||
$jhtml = oembed_iframe($j->embedurl,(isset($j->width) ? $j->width : null), (isset($j->height) ? $j->height : null));
|
||||
|
||||
$ret="<span class='oembed ".$j->type."'>";
|
||||
|
@ -157,6 +157,10 @@ function channel_content(&$a, $update = 0, $load = false) {
|
||||
|
||||
$simple_update = (($update) ? " AND item_unseen = 1 " : '');
|
||||
|
||||
if($mid) {
|
||||
$a->page['htmlhead'] .= "\r\n" . '<link rel="alternate" type="application/json+oembed" href="' . z_root() . '/oep?f=&url=' . urlencode(z_root() . '/' . $a->query_string) . '" title="oembed" />' . "\r\n";
|
||||
}
|
||||
|
||||
if($update && $_SESSION['loadtime'])
|
||||
$simple_update = " AND (( item_unseen = 1 AND item.changed > '" . datetime_convert('UTC','UTC',$_SESSION['loadtime']) . "' ) OR item.changed > '" . datetime_convert('UTC','UTC',$_SESSION['loadtime']) . "' ) ";
|
||||
if($load)
|
||||
|
@ -22,6 +22,8 @@ function linkinfo_content(&$a) {
|
||||
else
|
||||
$url = trim($_GET['url']);
|
||||
|
||||
$url = strip_zids($url);
|
||||
|
||||
if((substr($url,0,1) != '/') && (substr($url,0,4) != 'http'))
|
||||
$url = 'http://' . $url;
|
||||
|
||||
|
133
mod/oep.php
133
mod/oep.php
@ -6,9 +6,13 @@
|
||||
|
||||
function oep_init(&$a) {
|
||||
|
||||
logger('oep: ' . print_r($_REQUEST,true), LOGGER_DEBUG, LOG_INFO);
|
||||
|
||||
if($_REQUEST['url']) {
|
||||
$_REQUEST['url'] = strip_zids($_REQUEST['url']);
|
||||
$url = $_REQUEST['url'];
|
||||
}
|
||||
|
||||
$url = $_REQUEST['url'];
|
||||
if(! $url)
|
||||
http_status_exit(404, 'Not found');
|
||||
|
||||
@ -24,6 +28,12 @@ function oep_init(&$a) {
|
||||
$arr = oep_photo_reply($_REQUEST);
|
||||
elseif(fnmatch('*/photos*',$url))
|
||||
$arr = oep_phototop_reply($_REQUEST);
|
||||
elseif(fnmatch('*/display/*',$url))
|
||||
$arr = oep_display_reply($_REQUEST);
|
||||
elseif(fnmatch('*/channel/*mid=*',$url))
|
||||
$arr = oep_mid_reply($_REQUEST);
|
||||
elseif(fnmatch('*/profile/*',$url))
|
||||
$arr = oep_profile_reply($_REQUEST);
|
||||
|
||||
if($arr) {
|
||||
header('Content-Type: application/json+oembed');
|
||||
@ -35,6 +45,127 @@ function oep_init(&$a) {
|
||||
|
||||
}
|
||||
|
||||
function oep_display_reply($args) {
|
||||
|
||||
$ret = array();
|
||||
$url = $args['url'];
|
||||
$maxwidth = intval($args['maxwidth']);
|
||||
$maxheight = intval($args['maxheight']);
|
||||
|
||||
if(preg_match('#//(.*?)/(.*?)/(.*?)/(.*?)mid\=(.*?)(&|$)#',$url,$matches)) {
|
||||
$chn = $matches[3];
|
||||
$res = $matches[5];
|
||||
}
|
||||
|
||||
if(! ($chn && $res))
|
||||
return;
|
||||
$c = q("select * from channel where channel_address = '%s' limit 1",
|
||||
dbesc($chn)
|
||||
);
|
||||
|
||||
if(! $c)
|
||||
return;
|
||||
|
||||
$sql_extra = item_permissions_sql($c[0]['channel_id']);
|
||||
|
||||
$p = q("select * from item where mid = '%s' and uid = %d $sql_extra limit 1",
|
||||
dbesc($res),
|
||||
intval($c[0]['channel_id'])
|
||||
);
|
||||
if(! $p)
|
||||
return;
|
||||
|
||||
xchan_query($p,true);
|
||||
$p = fetch_post_tags($p,true);
|
||||
|
||||
$o = "[share author='".urlencode($p[0]['author']['xchan_name']).
|
||||
"' profile='".$p[0]['author']['xchan_url'] .
|
||||
"' avatar='".$p[0]['author']['xchan_photo_s'].
|
||||
"' link='".$p[0]['plink'].
|
||||
"' posted='".$p[0]['created'].
|
||||
"' message_id='".$p[0]['mid']."']";
|
||||
if($p[0]['title'])
|
||||
$o .= '[b]'.$p[0]['title'].'[/b]'."\r\n";
|
||||
$o .= $p[0]['body'];
|
||||
$o .= "[/share]";
|
||||
$o = bbcode($o);
|
||||
|
||||
$ret['type'] = 'rich';
|
||||
|
||||
$w = (($maxwidth) ? $maxwidth : 640);
|
||||
$h = (($maxheight) ? $maxheight : $w * 2 / 3);
|
||||
|
||||
$ret['html'] = '<div style="width: ' . $w . '; height: ' . $h . ';" >' . $o . '</div>';
|
||||
|
||||
$ret['width'] = $w;
|
||||
$ret['height'] = $h;
|
||||
|
||||
return $ret;
|
||||
|
||||
}
|
||||
|
||||
function oep_mid_reply($args) {
|
||||
|
||||
$ret = array();
|
||||
$url = $args['url'];
|
||||
$maxwidth = intval($args['maxwidth']);
|
||||
$maxheight = intval($args['maxheight']);
|
||||
|
||||
if(preg_match('#//(.*?)/(.*?)/(.*?)/(.*?)mid\=(.*?)(&|$)#',$url,$matches)) {
|
||||
$chn = $matches[3];
|
||||
$res = $matches[5];
|
||||
}
|
||||
|
||||
if(! ($chn && $res))
|
||||
return;
|
||||
$c = q("select * from channel where channel_address = '%s' limit 1",
|
||||
dbesc($chn)
|
||||
);
|
||||
|
||||
if(! $c)
|
||||
return;
|
||||
|
||||
$sql_extra = item_permissions_sql($c[0]['channel_id']);
|
||||
|
||||
$p = q("select * from item where mid = '%s' and uid = %d $sql_extra limit 1",
|
||||
dbesc($res),
|
||||
intval($c[0]['channel_id'])
|
||||
);
|
||||
if(! $p)
|
||||
return;
|
||||
|
||||
xchan_query($p,true);
|
||||
$p = fetch_post_tags($p,true);
|
||||
|
||||
$o = "[share author='".urlencode($p[0]['author']['xchan_name']).
|
||||
"' profile='".$p[0]['author']['xchan_url'] .
|
||||
"' avatar='".$p[0]['author']['xchan_photo_s'].
|
||||
"' link='".$p[0]['plink'].
|
||||
"' posted='".$p[0]['created'].
|
||||
"' message_id='".$p[0]['mid']."']";
|
||||
if($p[0]['title'])
|
||||
$o .= '[b]'.$p[0]['title'].'[/b]'."\r\n";
|
||||
$o .= $p[0]['body'];
|
||||
$o .= "[/share]";
|
||||
$o = bbcode($o);
|
||||
|
||||
$ret['type'] = 'rich';
|
||||
|
||||
$w = (($maxwidth) ? $maxwidth : 640);
|
||||
$h = (($maxheight) ? $maxheight : $w * 2 / 3);
|
||||
|
||||
$ret['html'] = '<div style="width: ' . $w . '; height: ' . $h . ';" >' . $o . '</div>';
|
||||
|
||||
$ret['width'] = $w;
|
||||
$ret['height'] = $h;
|
||||
|
||||
return $ret;
|
||||
|
||||
}
|
||||
|
||||
function oep_profile_reply($args) {
|
||||
|
||||
}
|
||||
|
||||
function oep_album_reply($args) {
|
||||
|
||||
|
@ -1 +1 @@
|
||||
2016-01-31.1295H
|
||||
2016-02-01.1296H
|
||||
|
Reference in New Issue
Block a user