LinkPreview: restructure a bit so we can pass config over
This commit is contained in:
parent
eeb7f02b98
commit
b5fc71253c
@ -52,6 +52,12 @@ class LinkPreviewPlugin extends Plugin
|
||||
$user = common_current_user();
|
||||
if ($user) {
|
||||
$action->script('plugins/LinkPreview/linkpreview.js');
|
||||
$data = json_encode(array(
|
||||
'api' => common_config('oohembed', 'endpoint'),
|
||||
'width' => common_config('attachments', 'thumbwidth'),
|
||||
'height' => common_config('attachments', 'thumbheight'),
|
||||
));
|
||||
$action->inlineScript('$(function() {SN.Init.LinkPreview && SN.Init.LinkPreview('.$data.');})');
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
@ -2,27 +2,11 @@
|
||||
* (c) 2010 StatusNet, Inc.
|
||||
*/
|
||||
|
||||
$(function() {
|
||||
/**
|
||||
* Find URL links from the source text that may be interesting.
|
||||
*
|
||||
* @param {String} text
|
||||
* @return {Array} list of URLs
|
||||
*/
|
||||
function findLinks(text)
|
||||
{
|
||||
// @fixme match this to core code
|
||||
var re = /(?:^| )(https?:\/\/.+?\/.+?)(?= |$)/mg;
|
||||
var links = [];
|
||||
var matches;
|
||||
while ((matches = re.exec(text)) !== null) {
|
||||
links.push(matches[1]);
|
||||
}
|
||||
return links;
|
||||
}
|
||||
|
||||
(function() {
|
||||
var oEmbed = {
|
||||
api: 'http://oohembed.com/oohembed',
|
||||
width: 100,
|
||||
height: 75,
|
||||
cache: {},
|
||||
callbacks: {},
|
||||
|
||||
@ -69,8 +53,8 @@ $(function() {
|
||||
var params = {
|
||||
url: url,
|
||||
format: 'json',
|
||||
maxwidth: 100,
|
||||
maxheight: 75,
|
||||
maxwidth: oEmbed.width,
|
||||
maxheight: oEmbed.height,
|
||||
callback: '?'
|
||||
};
|
||||
$.get(oEmbed.api, params, function(data, xhr) {
|
||||
@ -79,6 +63,24 @@ $(function() {
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Find URL links from the source text that may be interesting.
|
||||
*
|
||||
* @param {String} text
|
||||
* @return {Array} list of URLs
|
||||
*/
|
||||
function findLinks(text)
|
||||
{
|
||||
// @fixme match this to core code
|
||||
var re = /(?:^| )(https?:\/\/.+?\/.+?)(?= |$)/mg;
|
||||
var links = [];
|
||||
var matches;
|
||||
while ((matches = re.exec(text)) !== null) {
|
||||
links.push(matches[1]);
|
||||
}
|
||||
return links;
|
||||
}
|
||||
|
||||
/**
|
||||
* Start looking up info for a link preview...
|
||||
* May start async data loads.
|
||||
@ -137,12 +139,19 @@ $(function() {
|
||||
prepLinkPreview(id, links[i]);
|
||||
}
|
||||
}
|
||||
$('#form_notice').append('<div id="link-preview" class="thumbnails"></div>');
|
||||
|
||||
// Piggyback on the counter update...
|
||||
var origCounter = SN.U.Counter;
|
||||
SN.U.Counter = function(form) {
|
||||
previewLinks($('#notice_data-text').val());
|
||||
return origCounter(form);
|
||||
SN.Init.LinkPreview = function(params) {
|
||||
if (params.api) oEmbed.api = params.api;
|
||||
if (params.width) oEmbed.width = params.width;
|
||||
if (params.height) oEmbed.height = params.height;
|
||||
|
||||
$('#form_notice').append('<div id="link-preview" class="thumbnails"></div>');
|
||||
|
||||
// Piggyback on the counter update...
|
||||
var origCounter = SN.U.Counter;
|
||||
SN.U.Counter = function(form) {
|
||||
previewLinks($('#notice_data-text').val());
|
||||
return origCounter(form);
|
||||
}
|
||||
}
|
||||
});
|
||||
})();
|
||||
|
Loading…
Reference in New Issue
Block a user