]> git.mxchange.org Git - quix0rs-gnu-social.git/commitdiff
LinkPreview: restructure a bit so we can pass config over
authorBrion Vibber <brion@pobox.com>
Tue, 16 Nov 2010 22:27:01 +0000 (14:27 -0800)
committerBrion Vibber <brion@pobox.com>
Tue, 16 Nov 2010 22:27:01 +0000 (14:27 -0800)
plugins/LinkPreview/LinkPreviewPlugin.php
plugins/LinkPreview/linkpreview.js

index d887ca0408a6ad3492753acce547967c5e0f41aa..6f7c99a38c519b98a16ddab696e829aa712c4dac 100644 (file)
@@ -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;
     }
index 6af3e920d94d29f4923b66e2bc3523d7a35ab078..db992122928d4053a7783e2f385266292b85b191 100644 (file)
@@ -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);
+        }
     }
-});
+})();