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.
* 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:
* 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);
}
}
- $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;
+ }
}
/**
* @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);
+ }
}
/**
*/
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);
+ }
}
}
'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),
$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)) {
$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)) {
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'),
*/
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);
+ }
}
}
}