예제 #1
0
    def handle_noargs(self, **options):
        import os, re
        from filebrowser.settings import EXTENSION_LIST, EXCLUDE, MEDIA_ROOT, DIRECTORY, VERSIONS, EXTENSIONS

        # Precompile regular expressions
        filter_re = []
        for exp in EXCLUDE:
            filter_re.append(re.compile(exp))
        for k, v in VERSIONS.iteritems():
            exp = (r'_%s.(%s)') % (k, '|'.join(EXTENSION_LIST))
            filter_re.append(re.compile(exp))

        path = os.path.join(MEDIA_ROOT, DIRECTORY)

        # walkt throu the filebrowser directory
        # for all/new files (except file versions itself and excludes)
        for dirpath, dirnames, filenames in os.walk(path):
            for filename in filenames:
                filtered = False
                # no "hidden" files (stating with ".")
                if filename.startswith('.'):
                    continue
                # check the exclude list
                for re_prefix in filter_re:
                    if re_prefix.search(filename):
                        filtered = True
                if filtered:
                    continue
                (tmp, extension) = os.path.splitext(filename)
                if extension in EXTENSIONS["Image"]:
                    self.createVersions(os.path.join(dirpath, filename))
 def handle(self, *args, **options):
     media_path = ""
     
     if len(args):
         media_path = args[0]
         path = os.path.join(MEDIA_ROOT, media_path)
     else:
         path = os.path.join(MEDIA_ROOT, DIRECTORY)
     
     if not os.path.isdir(path):
         raise CommandError('<media_path> must be a directory in MEDIA_ROOT (If you don\'t add a media_path the default path is FILEBROWSER_DIRECTORY).\n"%s" is no directory.' % path);
     
     # get version name
     while 1:
         self.stdout.write('\nSelect a version you whant to generate:\n')
         for version in VERSIONS:
             self.stdout.write(' * %s\n' % version)
         
         version_name = raw_input('(leave blank to generate all versions): ')
         
         if version_name == "":
             selected_version = None
             break
         else:
             try:
                 tmp = VERSIONS[version_name]
                 selected_version = version_name
                 break
             except:
                 self.stderr.write('Error: Version "%s" doesn\'t exist.\n' % version_name)
                 version_name = None
                 continue
     
     # Precompile regular expressions
     filter_re = []
     for exp in EXCLUDE:
        filter_re.append(re.compile(exp))
     for k,v in VERSIONS.iteritems():
         exp = (r'_%s.(%s)') % (k, '|'.join(EXTENSION_LIST))
         filter_re.append(re.compile(exp))
     
     # walkt throu the filebrowser directory
     # for all/new files (except file versions itself and excludes)
     for dirpath,dirnames,filenames in os.walk(path):
         if not SAVE_FULL_URL:
             dirpath = os.path.relpath(dirpath, MEDIA_ROOT)
         for filename in filenames:
             filtered = False
             # no "hidden" files (stating with ".")
             if filename.startswith('.'):
                 continue
             # check the exclude list
             for re_prefix in filter_re:
                 if re_prefix.search(filename):
                     filtered = True
             if filtered:
                 continue
             (tmp, extension) = os.path.splitext(filename)
             if extension in EXTENSIONS["Image"]:
                 self.createVersions(os.path.join(dirpath, filename), selected_version)
 def handle_noargs(self, **options):
     import os, re
     from filebrowser.settings import EXTENSION_LIST, EXCLUDE, VERSIONS, EXTENSIONS
     from filebrowser.conf import fb_settings
     
     # Precompile regular expressions
     filter_re = []
     for exp in EXCLUDE:
        filter_re.append(re.compile(exp))
     for k,v in VERSIONS.iteritems():
         exp = (r'_%s.(%s)') % (k, '|'.join(EXTENSION_LIST))
         filter_re.append(re.compile(exp))
         
     path = os.path.join(fb_settings.MEDIA_ROOT, fb_settings.DIRECTORY)
     
     # walkt throu the filebrowser directory
     # for all/new files (except file versions itself and excludes)
     for dirpath,dirnames,filenames in os.walk(path):
         for filename in filenames:
             filtered = False
             # no "hidden" files (stating with ".")
             if filename.startswith('.'):
                 continue
             # check the exclude list
             for re_prefix in filter_re:
                 if re_prefix.search(filename):
                     filtered = True
             if filtered:
                 continue
             (tmp, extension) = os.path.splitext(filename)
             if extension in EXTENSIONS["Image"]:
                 self.createVersions(os.path.join(dirpath, filename))
 def handle(self, *args, **options):
     media_path = ""
     
     if len(args):
         media_path = args[0]
         path = os.path.join(MEDIA_ROOT, media_path)
     else:
         path = os.path.join(MEDIA_ROOT, DIRECTORY)
     
     if not os.path.isdir(path):
         raise CommandError('<media_path> must be a directory in MEDIA_ROOT (If you don\'t add a media_path the default path is FILEBROWSER_DIRECTORY).\n"%s" is no directory.' % path);
     
     # get version name
     while 1:
         self.stdout.write('\nSelect a version you want to generate:\n')
         for version in VERSIONS:
             self.stdout.write(' * %s\n' % version)
         
         version_name = raw_input('(leave blank to generate all versions): ')
         
         if version_name == "":
             selected_version = None
             break
         else:
             try:
                 tmp = VERSIONS[version_name]
                 selected_version = version_name
                 break
             except:
                 self.stderr.write('Error: Version "%s" doesn\'t exist.\n' % version_name)
                 version_name = None
                 continue
     
     # Precompile regular expressions
     filter_re = []
     for exp in EXCLUDE:
        filter_re.append(re.compile(exp))
     for k,v in VERSIONS.iteritems():
         exp = (r'_%s(%s)') % (k, '|'.join(EXTENSION_LIST))
         filter_re.append(re.compile(exp))
     
     # walkt throu the filebrowser directory
     # for all/new files (except file versions itself and excludes)
     for dirpath,dirnames,filenames in os.walk(path, followlinks=True):
         for filename in filenames:
             filtered = False
             # no "hidden" files (stating with ".")
             if filename.startswith('.'):
                 continue
             # check the exclude list
             for re_prefix in filter_re:
                 if re_prefix.search(filename):
                     filtered = True
             if filtered:
                 continue
             (tmp, extension) = os.path.splitext(filename)
             if extension in EXTENSIONS["Image"]:
                 self.createVersions(os.path.join(dirpath, filename), selected_version)
예제 #5
0
# PYTHON IMPORTS
import os, re

# DJANGO IMPORTS
from django.core.management.base import BaseCommand, CommandError
from django.conf import settings

# FILEBROWSER IMPORTS
from filebrowser.settings import EXTENSION_LIST, EXCLUDE, DIRECTORY, VERSIONS, EXTENSIONS
from filebrowser.base import FileListing, FileObject

filter_re = []
for exp in EXCLUDE:
    filter_re.append(re.compile(exp))
for k, v in VERSIONS.iteritems():
    exp = (r'_%s(%s)') % (k, '|'.join(EXTENSION_LIST))
    filter_re.append(re.compile(exp))


class Command(BaseCommand):
    args = '<media_path>'
    help = "(Re)Generate image versions."

    def handle(self, *args, **options):
        media_path = ""

        if len(args):
            media_path = args[0]
            path = media_path
        else:
예제 #6
0
    def browse(self, request):
        "Browse Files/Directories."
        filter_re = []
        for exp in EXCLUDE:
            filter_re.append(re.compile(exp))
        for k, v in VERSIONS.iteritems():
            exp = (r'_%s(%s)$') % (k, '|'.join(EXTENSION_LIST))
            filter_re.append(re.compile(exp, re.IGNORECASE))

        def filter_browse(item):
            "Defining a browse filter"
            filtered = item.filename.startswith('.')
            for re_prefix in filter_re:
                if re_prefix.search(item.filename):
                    filtered = True
            if filtered:
                return False
            return True

        query = request.GET.copy()
        path = u'%s' % os.path.join(self.directory, query.get('dir', ''))

        filelisting = FileListing(
            path,
            filter_func=filter_browse,
            sorting_by=query.get('o', DEFAULT_SORTING_BY),
            sorting_order=query.get('ot', DEFAULT_SORTING_ORDER),
            site=self)

        files = []
        if SEARCH_TRAVERSE and query.get("q"):
            listing = filelisting.files_walk_filtered()
        else:
            listing = filelisting.files_listing_filtered()

        # If we do a search, precompile the search pattern now
        do_search = query.get("q")
        if do_search:
            re_q = re.compile(query.get("q").lower(), re.M)

        filter_type = query.get('filter_type')
        filter_date = query.get('filter_date')

        for fileobject in listing:
            # date/type filter
            append = False
            if (not filter_type or fileobject.filetype == filter_type) and (not filter_date or get_filterdate(filter_date, fileobject.date or 0)):
                append = True
            # search
            if do_search and not re_q.search(fileobject.filename.lower()):
                append = False
            # append
            if append:
                files.append(fileobject)

        filelisting.results_total = len(listing)
        filelisting.results_current = len(files)

        p = Paginator(files, LIST_PER_PAGE)
        page_nr = request.GET.get('p', '1')
        try:
            page = p.page(page_nr)
        except (EmptyPage, InvalidPage):
            page = p.page(p.num_pages)

        return render_to_response('filebrowser/index.html', {
            'p': p,
            'page': page,
            'filelisting': filelisting,
            'query': query,
            'title': _(u'FileBrowser'),
            'settings_var': get_settings_var(directory=self.directory),
            'breadcrumbs': get_breadcrumbs(query, query.get('dir', '')),
            'breadcrumbs_title': "",
            'filebrowser_site': self
        }, context_instance=Context(request, current_app=self.name))
import os
import re

# DJANGO IMPORTS
from django.core.management.base import BaseCommand, CommandError
from django.conf import settings

# FILEBROWSER IMPORTS
from filebrowser.settings import EXTENSION_LIST, EXCLUDE, DIRECTORY, VERSIONS, EXTENSIONS
from filebrowser.base import FileListing, FileObject


filter_re = []
for exp in EXCLUDE:
    filter_re.append(re.compile(exp))
for k, v in VERSIONS.iteritems():
    exp = (r'_%s(%s)') % (k, '|'.join(EXTENSION_LIST))
    filter_re.append(re.compile(exp))


class Command(BaseCommand):
    args = '<media_path>'
    help = "(Re)Generate image versions."

    def handle(self, *args, **options):
        media_path = ""

        if len(args):
            media_path = args[0]
            path = media_path
        else: