This commit is contained in:
Simon
2012-07-15 22:54:14 +02:00
parent 34510f0050
commit 7a9bc10199
4 changed files with 28 additions and 19 deletions

View File

@@ -41,6 +41,7 @@ from sigal.generator import Generator
_DEFAULT_CONFIG_FILE = 'sigal.conf'
def main():
"main program"
@@ -59,7 +60,8 @@ def main():
sys.exit(1)
print ":: Reading settings ..."
settings = read_settings(os.path.join(args.input_dir, _DEFAULT_CONFIG_FILE))
settings = read_settings(os.path.join(args.input_dir,
_DEFAULT_CONFIG_FILE))
# create gallery
gallery = Gallery(settings, args.input_dir)

View File

@@ -37,6 +37,7 @@ PATH_SEP = u" » "
THEMES_PATH = os.path.normpath(os.path.join(
os.path.abspath(os.path.dirname(__file__)), 'themes'))
def do_link(link, title):
"return html link"
return '<a href="%s">%s</a>' % (link, title)
@@ -121,7 +122,8 @@ class Generator():
at the moment, this is the first image found.
"""
files = [f for f in os.listdir(path) if os.path.isfile(os.path.join(path, f)) \
files = [f for f in os.listdir(path)
if os.path.isfile(os.path.join(path, f))
and os.path.splitext(f)[1] in self.settings['fileextlist']]
for f in files:
@@ -146,8 +148,9 @@ class Generator():
for dirpath in self.data.keys():
# default: get title from directory name
self.data[dirpath]['title'] = os.path.basename(dirpath).replace('_',' ').\
replace('-',' ').capitalize()
self.data[dirpath]['title'] = os.path.basename(dirpath).\
replace('_', ' ').\
replace('-', ' ').capitalize()
self.get_metadata(dirpath)
# print self.data[dirpath]
@@ -158,7 +161,8 @@ class Generator():
'name': self.theme,
'path': os.path.relpath(theme_outpath, dirpath)
}
self.ctx['home_path'] = os.path.join(os.path.relpath(self.path, dirpath),
self.ctx['home_path'] = os.path.join(os.path.relpath(self.path,
dirpath),
INDEX_PAGE)
# paths to upper directories (with titles and links)
@@ -168,8 +172,8 @@ class Generator():
while tmp_path != self.path:
tmp_path = os.path.normpath(os.path.join(tmp_path, '..'))
tmp_link = os.path.relpath(tmp_path, dirpath) + "/" + INDEX_PAGE
self.ctx['paths'] = do_link(tmp_link,
link = os.path.relpath(tmp_path, dirpath) + "/" + INDEX_PAGE
self.ctx['paths'] = do_link(link,
self.data[tmp_path]['title']) + \
PATH_SEP + self.ctx['paths']
@@ -188,7 +192,7 @@ class Generator():
dpath = os.path.join(dirpath, d)
alb_thumb = ''
if self.data[dpath].has_key('representative'):
if 'representative' in self.data[dpath]:
alb_thumb = self.data[dpath]['representative']
if not alb_thumb or \
@@ -199,7 +203,8 @@ class Generator():
'path': os.path.join(d, INDEX_PAGE),
'title': self.data[dpath]['title'],
'thumb': os.path.join(d, self.settings['thumb_dir'],
self.settings['thumb_prefix'] + alb_thumb),
self.settings['thumb_prefix'] +
alb_thumb),
}
self.ctx['albums'].append(album)
@@ -207,6 +212,6 @@ class Generator():
**self.ctx).encode('utf-8')
# save page
f = open(os.path.join(dirpath, INDEX_PAGE),"w")
f = open(os.path.join(dirpath, INDEX_PAGE), 'w')
f.write(page)
f.close()

View File

@@ -54,7 +54,7 @@ class Image:
"add copyright to image"
draw = PILImageDraw.Draw(self.img)
draw.text((5, self.img.size[1]-15), '\xa9 ' + text)
draw.text((5, self.img.size[1] - 15), '\xa9 ' + text)
def thumbnail(self, filename, size, square=False, quality=90):
"create thumbnail image for img"
@@ -63,11 +63,11 @@ class Image:
if square:
if nx > ny:
offset = (nx - ny)/2
box = (offset, 0, nx-offset, ny)
offset = (nx - ny) / 2
box = (offset, 0, nx - offset, ny)
else:
offset = (ny - nx)/2
box = (0, offset, nx, ny-offset)
offset = (ny - nx) / 2
box = (0, offset, nx, ny - offset)
self.img = self.img.crop(box)
thumb_size = [size[0], size[0]]
@@ -89,6 +89,7 @@ class Gallery:
def filelist(self):
"get the list of directories with files of particular extensions"
for dirpath, dirnames, filenames in os.walk(self.input_dir):
# filelist = [os.path.normcase(f) for f in os.listdir(dir)]
imglist = [os.path.join(dirpath, f) for f in filenames \
@@ -130,7 +131,8 @@ class Gallery:
if not os.path.isdir(bigimg_dir):
os.mkdir(bigimg_dir)
self.process_dir(imglist, img_dir, thumb_dir, bigimg_dir=bigimg_dir)
self.process_dir(imglist, img_dir, thumb_dir,
bigimg_dir=bigimg_dir)
def process_dir(self, imglist, img_dir, thumb_dir, bigimg_dir=''):
"prepare images for a directory"
@@ -170,9 +172,9 @@ class Gallery:
if self.settings['exif']:
self.copy_exif(f, im_name)
def copy_exif(self, srcfile, dstfile):
"copy exif metadatas from src to dest images"
try:
import pyexiv2
except ImportError:

View File

@@ -57,7 +57,7 @@ def read_settings(filename=None):
settings = dict(config.items('sigal'))
settings['jpg_quality'] = int(settings['jpg_quality'])
settings['fileextlist'] = settings['fileextlist'].split(',')
settings['img_size'] = get_size(settings['img_size'])
settings['thumb_size'] = get_size(settings['thumb_size'])
settings['img_size'] = get_size(settings['img_size'])
settings['thumb_size'] = get_size(settings['thumb_size'])
return settings