make URL analyzer save new info on URLs

This commit is contained in:
Evan Prodromou 2009-08-27 20:23:31 -07:00
parent 34ce75c71d
commit c0d03fc279
2 changed files with 18 additions and 11 deletions

View File

@ -85,7 +85,7 @@ class File extends Memcached_DataObject
return $x; return $x;
} }
function processNew($given_url, $notice_id) { function processNew($given_url, $notice_id=null) {
if (empty($given_url)) return -1; // error, no url to process if (empty($given_url)) return -1; // error, no url to process
$given_url = File_redirection::_canonUrl($given_url); $given_url = File_redirection::_canonUrl($given_url);
if (empty($given_url)) return -1; // error, no url to process if (empty($given_url)) return -1; // error, no url to process
@ -96,7 +96,7 @@ class File extends Memcached_DataObject
$redir_data = File_redirection::where($given_url); $redir_data = File_redirection::where($given_url);
$redir_url = $redir_data['url']; $redir_url = $redir_data['url'];
// TODO: max field length // TODO: max field length
if ($redir_url === $given_url || strlen($redir_url) > 255) { if ($redir_url === $given_url || strlen($redir_url) > 255) {
$x = File::saveNew($redir_data, $given_url); $x = File::saveNew($redir_data, $given_url);
$file_id = $x->id; $file_id = $x->id;
} else { } else {
@ -119,7 +119,9 @@ class File extends Memcached_DataObject
} }
} }
File_to_post::processNew($file_id, $notice_id); if (!empty($notice_id)) {
File_to_post::processNew($file_id, $notice_id);
}
return $x; return $x;
} }

View File

@ -520,7 +520,7 @@ function common_linkify($url) {
// functions // functions
$url = htmlspecialchars_decode($url); $url = htmlspecialchars_decode($url);
if(strpos($url, '@')!==false && strpos($url, ':')===false){ if(strpos($url, '@') !== false && strpos($url, ':') === false) {
//url is an email address without the mailto: protocol //url is an email address without the mailto: protocol
return XMLStringer::estring('a', array('href' => "mailto:$url", 'rel' => 'external'), $url); return XMLStringer::estring('a', array('href' => "mailto:$url", 'rel' => 'external'), $url);
} }
@ -544,19 +544,24 @@ function common_linkify($url) {
// Check to see whether this is a known "attachment" URL. // Check to see whether this is a known "attachment" URL.
$localfile = File::staticGet('url', $longurl); $f = File::staticGet('url', $longurl);
if (!empty($localfile)) { if (empty($f)) {
if (isset($localfile->filename)) { // XXX: this writes to the database. :<
$f = File::processNew($longurl);
}
if (!empty($f)) {
if (isset($f->filename)) {
$is_attachment = true; $is_attachment = true;
$attachment_id = $localfile->id; $attachment_id = $f->id;
} else { // if it has OEmbed info, it's an attachment, too } else { // if it has OEmbed info, it's an attachment, too
$foe = File_oembed::staticGet('file_id', $localfile->id); $foe = File_oembed::staticGet('file_id', $f->id);
if (!empty($foe)) { if (!empty($foe)) {
$is_attachment = true; $is_attachment = true;
$attachment_id = $localfile->id; $attachment_id = $f->id;
$thumb = File_thumbnail::staticGet('file_id', $localfile->id); $thumb = File_thumbnail::staticGet('file_id', $f->id);
if (!empty($thumb)) { if (!empty($thumb)) {
$has_thumb = true; $has_thumb = true;
} }