New structure for storing images

This commit is contained in:
ville rantanen
2013-10-01 16:46:41 +03:00
parent a438f7f941
commit dd994bf6f5
2 changed files with 81 additions and 87 deletions

View File

@@ -132,20 +132,25 @@ def getpathlist(path,options=False):
def pathscript(path,list):
''' Returns the javascript string of pathlist and pathimage arrays '''
scrstr='<script language="javascript">'
scrstr='<script language="javascript">var pathlist=['
elements=[]
for p in list:
imglist=getimagelist(os.path.join(path,p))
pathlist=getpathlist(os.path.join(path,p))
scrstr+='pathlist.push(["'+unicode(p,encoding="utf8").encode('ascii', 'xmlcharrefreplace')+'",'+str(len(imglist)+len(pathlist))+']);'
this_str='{ name:"'+unicode(p,encoding="utf8").encode('ascii', 'xmlcharrefreplace')+'", '
this_str+='size:'+str(len(imglist)+len(pathlist))+', '
if len(imglist)>0:
scrstr+='pathimage.push("'+unicode(p,encoding="utf8").encode('ascii', 'xmlcharrefreplace')+'/_tn/tn_'+unicode(imglist[0],encoding="utf8").encode('ascii', 'xmlcharrefreplace')+'.jpg");'
this_str+='image:"'+unicode(p,encoding="utf8").encode('ascii', 'xmlcharrefreplace')+'/_tn/tn_'+unicode(imglist[0],encoding="utf8").encode('ascii', 'xmlcharrefreplace')+'.jpg"}'
else:
scrstr+='pathimage.push("");'
scrstr+='</script>'
this_str+='image:"" }'
elements.append(this_str)
scrstr+=','.join(elements)+'];</script>'
return scrstr
def pathlinks(path,list):
''' Returns the HTML string of subfolders '''
if len(list)==0:
return '<div id="pathcontainer"></div>'
pathstr='<div id="pathcontainer">'
pathstr+='<h1>Subfolders</h1>'
for p in list:
@@ -164,24 +169,28 @@ def pathlinks(path,list):
def imagescript(path,list):
''' Returns the javascript string of imagelist and imagedesc '''
strout='<script language="javascript">'
strout='<script language="javascript">var imagelist=['
descriptions=getdescriptions(path,list)
times=getfiletimes(path,list)
n=0
elements=[]
for i in list:
try:
desc=singlequotes.sub("\\'",unicode(descriptions[n],encoding="utf8").encode('ascii', 'xmlcharrefreplace'))
except:
desc=singlequotes.sub("\\'",filter(lambda x: x in string.printable, descriptions[n]).encode('ascii', 'xmlcharrefreplace'))
strout+='imagelist.push("'+unicode(i,encoding="utf8").encode('ascii', 'xmlcharrefreplace')+'");'
strout+='imagedesc.push(\''+desc+'\');\n'
strout+='imagetime.push('+str(times[n])+');\n'
this_str='\n{name:"'+unicode(i,encoding="utf8").encode('ascii', 'xmlcharrefreplace')+'", '
this_str+='desc:\''+desc+'\', '
this_str+='time:'+str(times[n])+'}'
elements.append(this_str)
n+=1
strout+='</script>'
strout+=','.join(elements)+'];</script>'
return strout
def imagelinks(path,list):
''' Returns the HTML string of images '''
if len(list)==0:
return '<div id="thumbcontainer"></div>'
strout='<div id="thumbcontainer"><noscript>'
strout+='<h1>Images</h1>'
descriptions=getdescriptions(path,list)
@@ -200,12 +209,11 @@ def imagelinks(path,list):
def filescript(path,list):
''' Returns the javascript string of filelist '''
strout='<script language="javascript">'
n=0
strout='<script language="javascript">var filelist=['
elements=[];
for i in list:
strout+='filelist.push("'+unicode(i,encoding="utf8").encode('ascii', 'xmlcharrefreplace')+'");'
n+=1
strout+='</script>'
elements.append('"'+unicode(i,encoding="utf8").encode('ascii', 'xmlcharrefreplace')+'"')
strout+=','.join(elements)+'];</script>'
return strout
def filelinks(path,list):
@@ -385,27 +393,19 @@ def traverse(path,crumbs,inputs,options):
filelist=getnonimagelist(path,options)
print(str(len(pathlist))+' paths, '+str(len(imagelist))+' images, '+str(len(filelist))+' other files')
crumbstring=crumblinks(crumbs,options.gallery,options.parent)
if len(pathlist)>0:
pathstring=pathlinks(path,pathlist)
pathjs=pathscript(path,pathlist)
else:
pathstring='<div id="pathcontainer"></div>'
pathjs=''
pathjs=pathscript(path,pathlist)
pathstring=pathlinks(path,pathlist)
filestring=filelinks(path,filelist)
filejs=filescript(path,filelist)
if len(imagelist)>0:
imagestring=imagelinks(path,imagelist)
imagejs=imagescript(path,imagelist)
else:
imagestring='<div id="thumbcontainer"></div>'
imagejs=''
#filejs=filescript(path,filelist) # Filelist is not currently used in javascript
imagestring=imagelinks(path,imagelist)
imagejs=imagescript(path,imagelist)
f=open(os.path.join(path,"index.html"),"w")
f.write(header)
f.write('<div id="preloadcontainer"></div>')
f.write(pathjs)
f.write(imagejs)
f.write(filejs)
#f.write(filejs)
f.write(crumbstring)
f.write(pathstring)
f.write('<div id="imagecontainer">'+getinfo(path,options)+'</div>')