summaryrefslogtreecommitdiff
path: root/lib/filebrowser/base.py
diff options
context:
space:
mode:
Diffstat (limited to 'lib/filebrowser/base.py')
-rw-r--r--lib/filebrowser/base.py219
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)
-
-