]> git.mxchange.org Git - quix0rs-gnu-social.git/commitdiff
Add $config['attachments']['process_links'] to allow disabling processing of mentione...
authorBrion Vibber <brion@pobox.com>
Wed, 17 Nov 2010 21:03:59 +0000 (13:03 -0800)
committerBrion Vibber <brion@pobox.com>
Wed, 17 Nov 2010 21:03:59 +0000 (13:03 -0800)
This option may be useful for intranet sites that don't have direct access to the internet, as they may be unable to successfully fetch those resources.

classes/File_redirection.php
classes/Notice.php
lib/default.php
lib/util.php
plugins/LinkPreview/LinkPreviewPlugin.php
plugins/TwitterBridge/twitterimport.php

index 1976e3439cf0525bca9ab4aaa284d97c682cb8ca..4ee43026b72cc44dc6efd6d8a02d18a3a30d778c 100644 (file)
@@ -139,6 +139,7 @@ class File_redirection extends Memcached_DataObject
      * reached.
      *
      * @param string $in_url
+     * @param boolean $discover true to attempt dereferencing the redirect if we don't know it already
      * @return mixed one of:
      *         string - target URL, if this is a direct link or a known redirect
      *         array - redirect info if this is an *unknown* redirect:
@@ -150,7 +151,7 @@ class File_redirection extends Memcached_DataObject
      *                size (optional): byte size from Content-Length header
      *                time (optional): timestamp from Last-Modified header
      */
-    public function where($in_url) {
+    public function where($in_url, $discover=true) {
         // let's see if we know this...
         $a = File::staticGet('url', $in_url);
 
@@ -166,8 +167,13 @@ class File_redirection extends Memcached_DataObject
             }
         }
 
-        $ret = File_redirection::lookupWhere($in_url);
-        return $ret;
+        if ($discover) {
+            $ret = File_redirection::lookupWhere($in_url);
+            return $ret;
+        } else {
+            // No manual dereferencing; leave the unknown URL as is.
+            return $in_url;
+        }
     }
 
     /**
index 85c7dabea48f5d9f31667042cab2c5b07ed8fccd..dd9438f1604e52c5a49bdc7f23640aa2a2824153 100644 (file)
@@ -476,7 +476,9 @@ class Notice extends Memcached_DataObject
      * @return void
      */
     function saveUrls() {
-        common_replace_urls_callback($this->content, array($this, 'saveUrl'), $this->id);
+        if (common_config('attachments', 'process_links')) {
+            common_replace_urls_callback($this->content, array($this, 'saveUrl'), $this->id);
+        }
     }
 
     /**
@@ -489,9 +491,11 @@ class Notice extends Memcached_DataObject
      */
     function saveKnownUrls($urls)
     {
-        // @fixme validation?
-        foreach (array_unique($urls) as $url) {
-            File::processNew($url, $this->id);
+        if (common_config('attachments', 'process_links')) {
+            // @fixme validation?
+            foreach (array_unique($urls) as $url) {
+                File::processNew($url, $this->id);
+            }
         }
     }
 
index ece01f2a8b5189912b2ac3eb11af3fbce9dbc7b2..a91fa338fc4d67e709ba996f7cae7ed280ec68ae 100644 (file)
@@ -253,6 +253,7 @@ $default =
               'show_thumbs' => true, // show thumbnails in notice lists for uploaded images, and photos and videos linked remotely that provide oEmbed info
               'thumb_width' => 100,
               'thumb_height' => 75,
+              'process_links' => true, // check linked resources for embeddable photos and videos; this will hit referenced external web sites when processing new messages.
               ),
         'application' =>
         array('desclimit' => null),
index e6b62f750f18adb9dee887247cf0c8714fdc3469..49566c4d41e74b94e18ca43a6a3237a45998f27c 100644 (file)
@@ -848,7 +848,7 @@ function common_linkify($url) {
 
         $canon = File_redirection::_canonUrl($url);
 
-        $longurl_data = File_redirection::where($canon);
+        $longurl_data = File_redirection::where($canon, common_config('attachments', 'process_links'));
         if (is_array($longurl_data)) {
             $longurl = $longurl_data['url'];
         } elseif (is_string($longurl_data)) {
@@ -872,8 +872,10 @@ function common_linkify($url) {
     $f = File::staticGet('url', $longurl);
 
     if (empty($f)) {
-        // XXX: this writes to the database. :<
-        $f = File::processNew($longurl);
+        if (common_config('attachments', 'process_links')) {
+            // XXX: this writes to the database. :<
+            $f = File::processNew($longurl);
+        }
     }
 
     if (!empty($f)) {
index da798114823c4cecb3c55d6ead4209b36b0ccdb7..39d2c9bf3918f7cdb2d51e8596b3357bb52da57b 100644 (file)
@@ -50,7 +50,7 @@ class LinkPreviewPlugin extends Plugin
     function onEndShowScripts($action)
     {
         $user = common_current_user();
-        if ($user) {
+        if ($user && common_config('attachments', 'process_links')) {
             $action->script('plugins/LinkPreview/linkpreview.js');
             $data = json_encode(array(
                 'api' => common_local_url('oembedproxy'),
index 498e9b1fc5938caa0457df521a3ed1ec1256d629..9e53849d8477eb923c39fcf26a8541617ec4eaa1 100644 (file)
@@ -659,9 +659,11 @@ class TwitterImport
      */
     function saveStatusAttachments($notice, $status)
     {
-        if (!empty($status->entities) && !empty($status->entities->urls)) {
-            foreach ($status->entities->urls as $url) {
-                File::processNew($url->url, $notice->id);
+        if (common_config('attachments', 'process_links')) {
+            if (!empty($status->entities) && !empty($status->entities->urls)) {
+                foreach ($status->entities->urls as $url) {
+                    File::processNew($url->url, $notice->id);
+                }
             }
         }
     }