degal.py
author Tero Marttila <terom@fixme.fi>
Wed, 03 Jun 2009 18:37:12 +0300
branchold-taggr
changeset 37 5df1a18df815
parent 28 70b6c13d084f
permissions -rwxr-xr-x
Old taggr code, never finished
#!/usr/bin/env python2.5
#
# DeGAL - A pretty simple web image gallery
# Copyright (C) 2007 Tero Marttila
# http://marttila.de/~terom/degal/
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the
# Free Software Foundation, Inc.,
# 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
#

import os.path, os
from optparse import OptionParser

from lib import folder, shorturl, log

def main (dir='.', targets=()) :
    root_filter = {}
    
    for target in targets :
        f = root_filter
        for path_part in target.split('/') :
            if path_part :
                if path_part not in f :
                    f[path_part] = {}
                    
                f = f[path_part]
    
    log.title("Indexing %s...", dir)
    root = folder.Folder(dir)
    root.index(root_filter)
    log.up()

    log.title("Syncing ShortURLs...")
    shorturl.updateDB(root)
    log.up()

    log.title("Rendering updated dirs...")
    root.render()
    log.up()

if __name__ == '__main__' :
    parser = OptionParser(usage="usage: %prog [options] ... [target ...]")
    
    parser.add_option("-d", "--dir", dest="dir", help="look for images in DIR and write the HTML there", metavar="DIR", default=".")
    
    options, filter_targets = parser.parse_args()
    
    main(options.dir, filter_targets)