diff options
author | Evan Prodromou <evan@controlyourself.ca> | 2009-06-17 23:56:42 -0700 |
---|---|---|
committer | Evan Prodromou <evan@controlyourself.ca> | 2009-06-17 23:56:42 -0700 |
commit | 79e732bd03c020eab36ceb13c5a712e76df3ac75 (patch) | |
tree | 48cd2d1b916a8f53beefa6c856677eb5278921f1 /classes/Notice.php | |
parent | 19d39b20294bad8dc14df26e76756c558a5083cf (diff) | |
parent | c14c9e1a086f0de29ef5c37fbeb34f6082b1c5ef (diff) |
Merge branch '0.8.x' into twitterpriv
Diffstat (limited to 'classes/Notice.php')
-rw-r--r-- | classes/Notice.php | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/classes/Notice.php b/classes/Notice.php index 333832d0b..e621805df 100644 --- a/classes/Notice.php +++ b/classes/Notice.php @@ -222,6 +222,13 @@ class Notice extends Memcached_DataObject $notice->addToInboxes(); $notice->saveGroups(); + $notice->saveUrls(); + $orig2 = clone($notice); + $notice->rendered = common_render_content($final, $notice); + if (!$notice->update($orig2)) { + common_log_db_error($notice, 'UPDATE', __FILE__); + return _('Problem saving notice.'); + } $notice->query('COMMIT'); @@ -236,6 +243,22 @@ class Notice extends Memcached_DataObject return $notice; } + /** save all urls in the notice to the db + * + * follow redirects and save all available file information + * (mimetype, date, size, oembed, etc.) + * + * @return void + */ + function saveUrls() { + common_replace_urls_callback($this->content, array($this, 'saveUrl'), $this->id); + } + + function saveUrl($data) { + list($url, $notice_id) = $data; + File::processNew($url, $notice_id); + } + static function checkDupes($profile_id, $content) { $profile = Profile::staticGet($profile_id); if (!$profile) { @@ -356,6 +379,12 @@ class Notice extends Memcached_DataObject if ($tag->find()) { while ($tag->fetch()) { $tag->blowCache($blowLast); + $ck = 'profile:notice_ids_tagged:' . $this->profile_id . ':' . $tag->tag; + + $cache->delete($ck); + if ($blowLast) { + $cache->delete($ck . ';last'); + } } } $tag->free(); |