Vulcan/packages/telescope-module-embedly/lib/server/get_embedly_data.js

65 lines
1.5 KiB
JavaScript
Raw Normal View History

2014-08-29 10:37:35 +09:00
getEmbedlyData = function (url) {
var data = {}
var extractBase = 'http://api.embed.ly/1/extract';
var embedlyKey = getSetting('embedlyKey');
try {
if(!embedlyKey)
throw new Error("Couldn't find an Embedly API key! Please add it to your Telescope settings.")
var result = Meteor.http.get(extractBase, {
params: {
key: embedlyKey,
url: url,
image_width: 200,
image_height: 150,
image_method: 'crop'
}
});
if(!result.data.images.length)
throw new Error("Couldn't find an image!");
data.thumbnailUrl = result.data.images[0].url;
if(typeof result.data.media !== 'undefined')
data.media = result.data.media
return data;
} catch (error) {
console.log(error)
return null;
}
}
Meteor.methods({
testGetEmbedlyData: function (url) {
console.log(getEmbedlyData(url))
},
setThumbnail: function (post) {
var set = {};
if(post.url){
var data = getEmbedlyData(post.url);
if(!!data && !!data.thumbnailUrl)
set.thumbnailUrl = data.thumbnailUrl;
if(!!data && !!data.media.html)
set.media = data.media
console.log(set)
Posts.update({_id: post._id}, {$set: set});
}
}
});
var extendPost = function (post) {
if(post.url){
var data = getEmbedlyData(post.url);
if(!!data && !!data.thumbnailUrl)
post.thumbnailUrl = data.thumbnailUrl;
if(!!data && !!data.media.html)
post.media = data.media
}
return post;
}
postSubmitMethodCallbacks.push(extendPost);