thumbnails in oembed response and better looking rendering of oembed coming from other qvitter instances

This commit is contained in:
Hannes Mannerheim 2016-01-21 20:01:43 +01:00
parent eb3a2af822
commit 98f831dd20
3 changed files with 44 additions and 6 deletions

View File

@ -108,16 +108,38 @@ class ApiQvitterOembedNoticeAction extends ApiAction
$oembed['version']='1.0'; $oembed['version']='1.0';
$oembed['provider_name']=common_config('site', 'name'); $oembed['provider_name']=common_config('site', 'name');
$oembed['provider_url']=common_root_url(); $oembed['provider_url']=common_root_url();
$oembed['type']='link';
// TRANS: oEmbed title. %1$s is the author name, %2$s is the creation date. // TRANS: oEmbed title. %1$s is the author name, %2$s is the creation date.
$oembed['title'] = sprintf(_('%1$s\'s status on %2$s'), $oembed['title'] = ApiAction::dateTwitter($notice->created).' (Qvitter)';
$authorname,
common_exact_date($notice->created));
$oembed['author_name']=$authorname; $oembed['author_name']=$authorname;
$oembed['author_url']=$profile->profileurl; $oembed['author_url']=$profile->profileurl;
$oembed['url']=$notice->getUrl(); $oembed['url']=$notice->getUrl();
$oembed['html']=$notice->getRendered(); $oembed['html']=$notice->getRendered();
// maybe add thumbnail
$attachments = $notice->attachments();
if (!empty($attachments)) {
foreach ($attachments as $attachment) {
if(is_object($attachment)) {
try {
$thumb = $attachment->getThumbnail();
} catch (ServerException $e) {
//
}
if(method_exists('File_thumbnail','url')) {
try {
$thumb_url = File_thumbnail::url($thumb->filename);
$oembed['thumbnail_url'] = $thumb_url;
break; // only first one
} catch (ClientException $e) {
//
}
}
}
}
}
if($this->format == 'json') { if($this->format == 'json') {
$this->initDocument('json'); $this->initDocument('json');
print json_encode($oembed); print json_encode($oembed);

View File

@ -2132,7 +2132,7 @@ body.rtl .queet.rtl .expanded-content {
text-overflow: ellipsis; text-overflow: ellipsis;
white-space: nowrap; white-space: nowrap;
} }
.oembed-twitter-username { .oembed-username {
font-size:13px; font-size:13px;
color:#999; color:#999;
font-weight:normal; font-weight:normal;

View File

@ -2202,7 +2202,7 @@ function buildAttachmentHTML(attachments){
var twitterHTML = '<div class="oembed-item-header">\ var twitterHTML = '<div class="oembed-item-header">\
<span class="oembed-item-title">' + this.oembed.author_name + '</span>\ <span class="oembed-item-title">' + this.oembed.author_name + '</span>\
<span class="oembed-twitter-username">' + this.oembed.title + '</span>\ <span class="oembed-username">' + this.oembed.title + '</span>\
</div>\ </div>\
<div class="oembed-item-body">' + this.oembed.oembedHTML + '</div>\ <div class="oembed-item-body">' + this.oembed.oembedHTML + '</div>\
<div class="oembed-item-footer">\ <div class="oembed-item-footer">\
@ -2248,12 +2248,28 @@ function buildAttachmentHTML(attachments){
else { else {
var oembedProvider = this.oembed.provider; var oembedProvider = this.oembed.provider;
var oembedProviderURL = removeProtocolFromUrl(this.oembed.provider_url); var oembedProviderURL = removeProtocolFromUrl(this.oembed.provider_url);
// remove trailing /
if(oembedProviderURL.slice(-1) == '/') {
oembedProviderURL = oembedProviderURL.slice(0,-1);
} }
}
// If the oembed data is generated by Qvitter, we know a better way of showing the title
var oembedTitle = this.oembed.title;
var oembedTitleHTML = '<span class="oembed-item-title">' + oembedTitle + '</span>';
if(oembedTitle.slice(-10) == ' (Qvitter)') {
var oembedTimePosted = parseTwitterLongDate(oembedTitle.slice(0,-10));
var oembedGNUsocialUsername = this.oembed.author_name.substring(this.oembed.author_name.lastIndexOf('(')+1,this.oembed.author_name.lastIndexOf(')'));
var oembedGNUsocialFullname = this.oembed.author_name.slice(0,-(oembedGNUsocialUsername.length+3));
oembedTitleHTML = '<span class="oembed-item-title">' + oembedGNUsocialFullname + '</span>\
<span class="oembed-username">@' + oembedGNUsocialUsername + '</span>';
}
oembedHTML += '<a href="' + this.url + '" class="oembed-item">\ oembedHTML += '<a href="' + this.url + '" class="oembed-item">\
' + oembedImage + '\ ' + oembedImage + '\
<div class="oembed-item-header">\ <div class="oembed-item-header">\
<span class="oembed-item-title">' + this.oembed.title + '</span>\ ' + oembedTitleHTML + '\
</div>\ </div>\
<div class="oembed-item-body">' + oembedBody + '</div>\ <div class="oembed-item-body">' + oembedBody + '</div>\
<div class="oembed-item-footer">\ <div class="oembed-item-footer">\