summaryrefslogtreecommitdiff
path: root/classes/File_oembed.php
diff options
context:
space:
mode:
authorEvan Prodromou <evan@status.net>2009-08-27 14:52:32 -0700
committerEvan Prodromou <evan@status.net>2009-08-27 14:52:32 -0700
commita08c76a4342cfb4b3d772f6880ba0b8f3153b246 (patch)
treee2ba9ef2f670d01cf700a732d36050fe3ce63774 /classes/File_oembed.php
parent522008dee570aafcc844bf123d25203c7d9c3ebc (diff)
parenteb667d09d9c6ef5a1465a5f8d824661a9387a4da (diff)
Merge branch '0.9.x' of git@gitorious.org:laconica/mainline into 0.9.x
Conflicts: classes/laconica.ini
Diffstat (limited to 'classes/File_oembed.php')
-rw-r--r--classes/File_oembed.php21
1 files changed, 20 insertions, 1 deletions
diff --git a/classes/File_oembed.php b/classes/File_oembed.php
index 6be651815..e41ccfd09 100644
--- a/classes/File_oembed.php
+++ b/classes/File_oembed.php
@@ -20,6 +20,7 @@
if (!defined('STATUSNET') && !defined('LACONICA')) { exit(1); }
require_once INSTALLDIR.'/classes/Memcached_DataObject.php';
+require_once INSTALLDIR.'/classes/File_redirection.php';
/**
* Table Definition for file_oembed
@@ -34,6 +35,7 @@ class File_oembed extends Memcached_DataObject
public $file_id; // int(4) primary_key not_null
public $version; // varchar(20)
public $type; // varchar(20)
+ public $mimetype; // varchar(50)
public $provider; // varchar(50)
public $provider_url; // varchar(255)
public $width; // int(4)
@@ -93,7 +95,24 @@ class File_oembed extends Memcached_DataObject
if (!empty($data->title)) $file_oembed->title = $data->title;
if (!empty($data->author_name)) $file_oembed->author_name = $data->author_name;
if (!empty($data->author_url)) $file_oembed->author_url = $data->author_url;
- if (!empty($data->url)) $file_oembed->url = $data->url;
+ if (!empty($data->url)){
+ $file_oembed->url = $data->url;
+ $given_url = File_redirection::_canonUrl($file_oembed->url);
+ if (! empty($given_url)){
+ $file = File::staticGet('url', $given_url);
+ if (empty($file)) {
+ $file_redir = File_redirection::staticGet('url', $given_url);
+ if (empty($file_redir)) {
+ $redir_data = File_redirection::where($given_url);
+ $file_oembed->mimetype = $redir_data['type'];
+ } else {
+ $file_id = $file_redir->file_id;
+ }
+ } else {
+ $file_oembed->mimetype=$file->mimetype;
+ }
+ }
+ }
$file_oembed->insert();
if (!empty($data->thumbnail_url)) {
File_thumbnail::saveNew($data, $file_id);