summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--classes/File_redirection.php12
-rw-r--r--classes/Notice.php12
-rw-r--r--lib/default.php1
-rw-r--r--lib/util.php8
-rw-r--r--plugins/LinkPreview/LinkPreviewPlugin.php2
-rw-r--r--plugins/TwitterBridge/twitterimport.php8
6 files changed, 29 insertions, 14 deletions
diff --git a/classes/File_redirection.php b/classes/File_redirection.php
index 1976e3439..4ee43026b 100644
--- a/classes/File_redirection.php
+++ b/classes/File_redirection.php
@@ -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;
+ }
}
/**
diff --git a/classes/Notice.php b/classes/Notice.php
index 85c7dabea..dd9438f16 100644
--- a/classes/Notice.php
+++ b/classes/Notice.php
@@ -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);
+ }
}
}
diff --git a/lib/default.php b/lib/default.php
index ece01f2a8..a91fa338f 100644
--- a/lib/default.php
+++ b/lib/default.php
@@ -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),
diff --git a/lib/util.php b/lib/util.php
index e6b62f750..49566c4d4 100644
--- a/lib/util.php
+++ b/lib/util.php
@@ -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)) {
diff --git a/plugins/LinkPreview/LinkPreviewPlugin.php b/plugins/LinkPreview/LinkPreviewPlugin.php
index da7981148..39d2c9bf3 100644
--- a/plugins/LinkPreview/LinkPreviewPlugin.php
+++ b/plugins/LinkPreview/LinkPreviewPlugin.php
@@ -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'),
diff --git a/plugins/TwitterBridge/twitterimport.php b/plugins/TwitterBridge/twitterimport.php
index 498e9b1fc..9e53849d8 100644
--- a/plugins/TwitterBridge/twitterimport.php
+++ b/plugins/TwitterBridge/twitterimport.php
@@ -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);
+ }
}
}
}