X-Git-Url: https://git.mdrn.pl/redakcja.git/blobdiff_plain/49e1a0fdfaa15ac3cccb84fd993d68a72cc2a0b9..43116c58e5c56f94ef358a5a17fb13a252e02531:/apps/filebrowser/base.py diff --git a/apps/filebrowser/base.py b/apps/filebrowser/base.py deleted file mode 100644 index da53d91f..00000000 --- a/apps/filebrowser/base.py +++ /dev/null @@ -1,209 +0,0 @@ -# coding: utf-8 - -import locale - -import os, re, datetime -from time import gmtime, strftime -from django.conf import settings -import urllib - -# filebrowser imports -from filebrowser.fb_settings import * -from filebrowser.functions import _get_file_type, _url_join, _is_selectable, _get_version_path - -# PIL import -if STRICT_PIL: - from PIL import Image -else: - try: - from PIL import Image - except ImportError: - import Image - - -def filesystem_encoding(ucode): - ucode = ucode.encode('utf-8') - ucode = urllib.quote(ucode) - return ucode - -class FileObject(object): - """ - The FileObject represents a File on the Server. - - PATH has to be relative to MEDIA_ROOT. - """ - - def __init__(self, path): - self.path = unicode(path) - self.head = os.path.split(path)[0] - self.filename = os.path.split(path)[1] - self.filename_lower = self.filename.lower() # important for sorting - self.filetype = _get_file_type(self.filename) - - def _filesize(self): - """ - Filesize. - """ - if os.path.isfile(os.path.join(MEDIA_ROOT, self.path)) or os.path.isdir(os.path.join(MEDIA_ROOT, self.path)): - return os.path.getsize(os.path.join(MEDIA_ROOT, self.path)) - return "" - filesize = property(_filesize) - - def _date(self): - """ - Date. - """ - if os.path.isfile(os.path.join(MEDIA_ROOT, self.path)) or os.path.isdir(os.path.join(MEDIA_ROOT, self.path)): - return os.path.getmtime(os.path.join(MEDIA_ROOT, self.path)) - # IMHO this should raise an exception - return None - date = property(_date) - - def _datetime(self): - """ - Datetime Object. - """ - return datetime.datetime.fromtimestamp(self.date) - datetime = property(_datetime) - - def _extension(self): - """ - Extension. - """ - return u"%s" % os.path.splitext(self.filename)[1] - extension = property(_extension) - - def _filetype_checked(self): - if self.filetype == "Folder" and os.path.isdir(self.path_full): - return self.filetype - elif self.filetype != "Folder" and os.path.isfile(self.path_full): - return self.filetype - else: - return "" - filetype_checked = property(_filetype_checked) - - def _path_full(self): - """ - Full server PATH including MEDIA_ROOT. - """ - return u"%s" % os.path.join(MEDIA_ROOT, self.path) - path_full = property(_path_full) - - def _path_relative(self): - return self.path - path_relative = property(_path_relative) - - def _path_relative_directory(self): - """ - Path relative to initial directory. - """ - directory_re = re.compile(r'^(%s)' % (DIRECTORY)) - value = directory_re.sub('', self.path) - return u"%s" % value - path_relative_directory = property(_path_relative_directory) - - def _url_relative(self): - return self.path - url_relative = property(_url_relative) - - def _url_full(self): - """ - Full URL including MEDIA_URL. - """ - return filesystem_encoding(u"%s" % _url_join(MEDIA_URL, self.path)) - - url_full = property(_url_full) - - def _url_save(self): - """ - URL used for the filebrowsefield. - """ - if SAVE_FULL_URL: - return self.url_full - else: - return filesystem_encoding(self.path) - url_save = property(_url_save) - - def _url_thumbnail(self): - """ - Thumbnail URL. - """ - if self.filetype == "Image": - return filesystem_encoding(u"%s" % _url_join(MEDIA_URL, _get_version_path(self.path, u'fb_thumb'))) - else: - return "" - url_thumbnail = property(_url_thumbnail) - - def url_admin(self): - if self.filetype_checked == "Folder": - directory_re = re.compile(r'^(%s)' % (DIRECTORY)) - value = directory_re.sub('', self.path) - return filesystem_encoding(u"%s" % value) - else: - return filesystem_encoding(u"%s" % _url_join(MEDIA_URL, self.path)) - - def _dimensions(self): - """ - Image Dimensions. - """ - if self.filetype == 'Image': - try: - im = Image.open(os.path.join(MEDIA_ROOT, self.path)) - return im.size - except: - pass - else: - return False - dimensions = property(_dimensions) - - def _width(self): - """ - Image Width. - """ - return self.dimensions[0] - width = property(_width) - - def _height(self): - """ - Image Height. - """ - return self.dimensions[1] - height = property(_height) - - def _orientation(self): - """ - Image Orientation. - """ - if self.dimensions: - if self.dimensions[0] >= self.dimensions[1]: - return "Landscape" - else: - return "Portrait" - else: - return None - orientation = property(_orientation) - - def _is_empty(self): - """ - True if Folder is empty, False if not. - """ - if os.path.isdir(self.path_full): - if not os.listdir(self.path_full): - return True - else: - return False - else: - return None - is_empty = property(_is_empty) - - def __repr__(self): - return u"%s" % self.url_save - - def __str__(self): - return u"%s" % self.url_save - - def __unicode__(self): - return u"%s" % self.url_save - - -