diff options
Diffstat (limited to 'mod/oep.php')
-rw-r--r-- | mod/oep.php | 68 |
1 files changed, 65 insertions, 3 deletions
diff --git a/mod/oep.php b/mod/oep.php index 1cea83e95..9bc0de98f 100644 --- a/mod/oep.php +++ b/mod/oep.php @@ -20,9 +20,10 @@ function oep_init(&$a) { if(fnmatch('*/photos/*/album/*',$url)) $arr = oep_album_reply($_REQUEST); - elseif(fnmatch('*/photos/*',$url)) + elseif(fnmatch('*/photos/*/image/*',$url)) $arr = oep_photo_reply($_REQUEST); - + elseif(fnmatch('*/photos*',$url)) + $arr = oep_phototop_reply($_REQUEST); if($arr) { header('Content-Type: application/json+oembed'); @@ -58,7 +59,7 @@ function oep_album_reply($args) { $sql_extra = permissions_sql($c[0]['channel_id']); - $p = q("select resource_id from photo where album = '%s' and uid = %d group by resource_id $sql_extra order by created desc", + $p = q("select resource_id from photo where album = '%s' and uid = %d and scale = 0 $sql_extra order by created desc limit 1", dbesc($res), intval($c[0]['channel_id']) ); @@ -96,6 +97,67 @@ function oep_album_reply($args) { } + +function oep_phototop_reply($args) { + + $ret = array(); + $url = $args['url']; + $maxwidth = intval($args['maxwidth']); + $maxheight = intval($args['maxheight']); + + if(preg_match('|//(.*?)/(.*?)/(.*?)$|',$url,$matches)) { + $chn = $matches[3]; + } + + if(! $chn) + return; + $c = q("select * from channel where channel_address = '%s' limit 1", + dbesc($chn) + ); + + if(! $c) + return; + + $sql_extra = permissions_sql($c[0]['channel_id']); + + $p = q("select resource_id from photo where uid = %d and scale = 0 $sql_extra order by created desc limit 1", + intval($c[0]['channel_id']) + ); + if(! $p) + return; + + $res = $p[0]['resource_id']; + + $r = q("select height, width, scale, resource_id from photo where uid = %d and resource_id = '%s' $sql_extra order by scale asc", + intval($c[0]['channel_id']), + dbesc($res) + ); + + if($r) { + foreach($r as $rr) { + $foundres = false; + if($maxheight && $rr['height'] > $maxheight) + continue; + if($maxwidth && $rr['width'] > $maxwidth) + continue; + $foundres = true; + break; + } + + if($foundres) { + $ret['type'] = 'link'; + $ret['thumbnail_url'] = z_root() . '/photo/' . '/' . $rr['resource_id'] . '-' . $rr['scale']; + $ret['thumbnail_width'] = $rr['width']; + $ret['thumbnail_height'] = $rr['height']; + } + + + } + return $ret; + +} + + function oep_photo_reply($args) { $ret = array(); |