* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-if (!defined('STATUSNET') && !defined('LACONICA')) { exit(1); }
-
-require_once INSTALLDIR.'/classes/Memcached_DataObject.php';
-require_once INSTALLDIR.'/classes/File_redirection.php';
-require_once INSTALLDIR.'/classes/File_oembed.php';
-require_once INSTALLDIR.'/classes/File_thumbnail.php';
-require_once INSTALLDIR.'/classes/File_to_post.php';
-//require_once INSTALLDIR.'/classes/File_redirection.php';
+if (!defined('GNUSOCIAL')) { exit(1); }
/**
* Table Definition for file
$x = File::getKV('url', $given_url);
- if (empty($x)) {
+ if (!$x instanceof File) {
$x = new File;
$x->url = $given_url;
if (!empty($redir_data['protected'])) $x->protected = $redir_data['protected'];
public function saveOembed(array $redir_data, $given_url)
{
if (isset($redir_data['type'])
- && (('text/html' === substr($redir_data['type'], 0, 9) || 'application/xhtml+xml' === substr($redir_data['type'], 0, 21)))
- && ($oembed_data = File_oembed::_getOembed($given_url))) {
-
+ && (('text/html' === substr($redir_data['type'], 0, 9)
+ || 'application/xhtml+xml' === substr($redir_data['type'], 0, 21)))) {
+ try {
+ $oembed_data = File_oembed::_getOembed($given_url);
+ } catch (Exception $e) {
+ return false;
+ }
+ if ($oembed_data === false) {
+ return false;
+ }
$fo = File_oembed::getKV('file_id', $this->id);
- if (empty($fo)) {
+ if ($fo instanceof File_oembed) {
+ common_log(LOG_WARNING, "Strangely, a File_oembed object exists for new file $file_id", __FILE__);
+ } else {
File_oembed::saveNew($oembed_data, $this->id);
return true;
- } else {
- common_log(LOG_WARNING, "Strangely, a File_oembed object exists for new file $file_id", __FILE__);
}
}
return false;
static function filename($profile, $basename, $mimetype)
{
- require_once 'MIME/Type/Extension.php';
-
- // We have to temporarily disable auto handling of PEAR errors...
- PEAR::staticPushErrorHandling(PEAR_ERROR_RETURN);
-
- $mte = new MIME_Type_Extension();
- $ext = $mte->getExtension($mimetype);
- if (PEAR::isError($ext)) {
- $ext = strtolower(preg_replace('/\W/', '', $mimetype));
+ try {
+ $ext = common_supported_mime_to_ext($mimetype);
+ } catch (Exception $e) {
+ // We don't support this mimetype, but let's guess the extension
+ $ext = substr(strrchr($mimetype, '/'), 1);
}
- // Restore error handling.
- PEAR::staticPopErrorHandling();
-
$nickname = $profile->nickname;
$datestamp = strftime('%Y%m%dT%H%M%S', time());
$random = strtolower(common_confirmation_code(32));
return File_thumbnail::getKV('file_id', $this->id);
}
+ public function getPath()
+ {
+ return self::path($this->filename);
+ }
+
/**
* Blow the cache of notices that link to this URL
*