diff options
Diffstat (limited to 'lib/filebrowser/base.py')
-rw-r--r-- | lib/filebrowser/base.py | 219 |
1 files changed, 0 insertions, 219 deletions
diff --git a/lib/filebrowser/base.py b/lib/filebrowser/base.py deleted file mode 100644 index 1b60dce..0000000 --- a/lib/filebrowser/base.py +++ /dev/null @@ -1,219 +0,0 @@ -# coding: utf-8 - -# imports -import os, re, datetime -from time import gmtime, strftime - -# django imports -from django.conf import settings - -# filebrowser imports -from filebrowser.settings import * -from filebrowser.functions import get_file_type, url_join, is_selectable, get_version_path -from django.utils.encoding import force_unicode - -# PIL import -if STRICT_PIL: - from PIL import Image -else: - try: - from PIL import Image - except ImportError: - import Image - - -class FileObject(object): - """ - The FileObject represents a File on the Server. - - PATH has to be relative to MEDIA_ROOT. - """ - - def __init__(self, path): - path = force_unicode(path) - self.path = path - self.url_rel = path.replace("\\","/") - self.head = os.path.split(path)[0] - self.filename = os.path.split(path)[1] - self.filename_lower = self.filename.lower() # important for sorting - # ABP: fix for dotted folder names - if os.path.isdir(self.path_full): - self.filetype = 'Folder' - else: - self.filetype = get_file_type(self.filename) - - def _filesize(self): - """ - Filesize. - """ - path = self.path - if os.path.isfile(os.path.join(MEDIA_ROOT, path)) or os.path.isdir(os.path.join(MEDIA_ROOT, path)): - return os.path.getsize(os.path.join(MEDIA_ROOT, 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)) - return "" - 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 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.url_rel - url_relative = property(_url_relative) - - def _url_full(self): - """ - Full URL including MEDIA_URL. - """ - return force_unicode(url_join(MEDIA_URL, self.url_rel)) - url_full = property(_url_full) - - def _url_save(self): - """ - URL used for the filebrowsefield. - """ - if SAVE_FULL_URL: - return self.url_full - else: - return self.url_rel - url_save = property(_url_save) - - def _url_thumbnail(self): - """ - Thumbnail URL. - """ - if self.filetype == "Image": - return u"%s" % url_join(MEDIA_URL, get_version_path(self.path, '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 u"%s" % value - else: - return u"%s" % url_join(MEDIA_URL, self.path) - - def _folder(self): - directory_re = re.compile(r'^(%s)' % (DIRECTORY.rstrip('/'))) - return u"%s/" % directory_re.sub('', self.head) - folder = property(_folder) - - def _folder_for_link(self): - directory_re = re.compile(r'^(%s)' % (DIRECTORY.rstrip('/'))) - return u"%s" % directory_re.sub('', self.head)[1:] - folder_for_link = property(_folder_for_link) - - 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 force_unicode(self.url_save) - - def __str__(self): - return force_unicode(self.url_save) - - def __unicode__(self): - return force_unicode(self.url_save) - - |