restructuring the folder
This commit is contained in:
66
Qalbum.py
66
Qalbum.py
@@ -27,7 +27,7 @@ from datetime import datetime
|
||||
|
||||
# (c) ville.q.rantanen@gmail.com
|
||||
|
||||
__version__='2.20160906'
|
||||
__version__='2.20161005'
|
||||
|
||||
FILECONFIG=".config"
|
||||
FILEDESC="descriptions.csv"
|
||||
@@ -61,12 +61,12 @@ width: Medium images longer axis in pixels
|
||||
MISSINGICON="data:image/png;base64,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"
|
||||
FAVICON="data:image/png;base64,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"
|
||||
# python -c 'print open("icon.png", "rb").read().encode("base64").replace("\n","")'
|
||||
webfilesearch=re.compile('.*index.html$|gallerystyle.css$|galleryscript.js$|'+FILEDESC+'$|^'+FILEINFO+'$|\..*',re.I)
|
||||
webfilesearch=re.compile('.*index.html$|'+FILEDESC+'$|^'+FILEINFO+'$|\..*',re.I)
|
||||
imagesearch=re.compile('.*\.jpg$|.*\.jpeg$|.*\.gif$|.*\.png$|.*\.tif$|.*\.svg$|.*\.pdf$',re.I)
|
||||
vectorsearch=re.compile('.*\.svg$|.*\.pdf$',re.I)
|
||||
nonconvertiblesearch=re.compile('.*\.html$|.*\.htm$|.*\.php$',re.I)
|
||||
#gifsearch=re.compile('.*gif$',re.I)
|
||||
excludepaths=re.compile('_med|_tn|\..*')
|
||||
excludepaths=re.compile('_med|_tn|.med|.tn|\..*')
|
||||
doublequotes=re.compile('"')
|
||||
singlequotes=re.compile("'")
|
||||
stripquotes=re.compile('^"|"$')
|
||||
@@ -80,9 +80,12 @@ def getheader(path,parent,title=""):
|
||||
<TITLE>'''+title+'''</TITLE>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
<meta name="generator" content="Qalbum '''+__version__+'''">
|
||||
<link rel="stylesheet" type="text/css" href="'''+parent+'''gallerystyle.css">
|
||||
<link rel="stylesheet" type="text/css" href="'''+parent+'''.qalbum/style.css">
|
||||
<link href="'''+FAVICON+'''" rel="icon" type="image/x-icon" />
|
||||
<script language="javascript" src="'''+parent+'''galleryscript.js"></script>
|
||||
<script language="javascript" src="'''+parent+'''.qalbum/jquery.js"></script>
|
||||
<script language="javascript" src="'''+parent+'''.qalbum/jqzoom.js"></script>
|
||||
<script language="javascript" src="'''+parent+'''.qalbum/touch.js"></script>
|
||||
<script language="javascript" src="'''+parent+'''.qalbum/gallery.js"></script>
|
||||
</HEAD>
|
||||
<BODY>
|
||||
'''
|
||||
@@ -184,7 +187,7 @@ def pathscript(path,list):
|
||||
this_str='{ name:"'+unicode(p,encoding="utf8").encode('ascii', 'xmlcharrefreplace')+'", '
|
||||
this_str+='size:'+str(len(imglist)+len(pathlist))+', '
|
||||
if len(imglist)>0:
|
||||
this_str+='image:"'+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/'+unicode(imglist[0],encoding="utf8").encode('ascii', 'xmlcharrefreplace')+'.jpg"}'
|
||||
else:
|
||||
this_str+='image:"" }'
|
||||
elements.append(this_str)
|
||||
@@ -203,7 +206,7 @@ def pathlinks(path,list):
|
||||
nsum=str(len(imglist))
|
||||
imgstr=""
|
||||
if len(imglist)>0:
|
||||
imgstr='<span class="pathbox" style="background-image:url(\''+urllib.quote(p)+'/_tn/tn_'+urllib.quote(imglist[0])+'.jpg\');">'
|
||||
imgstr='<span class="pathbox" style="background-image:url(\''+urllib.quote(p)+'/.tn/'+urllib.quote(imglist[0])+'.jpg\');">'
|
||||
else:
|
||||
imgstr='<span class="pathbox">'
|
||||
pathstr+='<a title="'+unicode(p,encoding="utf8").encode('ascii', 'xmlcharrefreplace')+'" href="'+urllib.quote(p)+'/index.html">'+imgstr+'<span class="pathlink"><span class="pathlinktext">'+unicode(nice,encoding="utf8").encode('ascii', 'xmlcharrefreplace')+' ('+nsum+')</span></span></span></a>';
|
||||
@@ -248,7 +251,7 @@ def imagelinks(path,list):
|
||||
except:
|
||||
desc=doublequotes.sub('',filter(lambda x: x in string.printable, descriptions[n]).encode('ascii', 'xmlcharrefreplace'))
|
||||
|
||||
strout+='<span class="imagebox thumbbox" id="n'+str(n)+'"><a href="'+urllib.quote(i)+'"><img class="thumbimage" "title="'+desc+'" src="_tn/tn_'+urllib.quote(i)+'.jpg"><br/>'+unicode(nice,encoding="utf8").encode('ascii', 'xmlcharrefreplace')+'</a></span>'
|
||||
strout+='<span class="imagebox thumbbox" id="n'+str(n)+'"><a href="'+urllib.quote(i)+'"><img class="thumbimage" "title="'+desc+'" src=".tn/'+urllib.quote(i)+'.jpg"><br/>'+unicode(nice,encoding="utf8").encode('ascii', 'xmlcharrefreplace')+'</a></span>'
|
||||
n+=1
|
||||
strout+='</noscript></div>'
|
||||
return strout
|
||||
@@ -276,12 +279,12 @@ def filelinks(path,list):
|
||||
return strout
|
||||
|
||||
def cleanthumbs(path):
|
||||
''' clears _med and _tn for unused thumbs '''
|
||||
''' clears .med and .tn for unused thumbs '''
|
||||
print('clearing unused thumbs...')
|
||||
if os.path.exists(os.path.join(path,'_tn')):
|
||||
clearfolder(path,os.path.join(path,'_tn'),re.compile("(^tn_)(.*)(.jpg)"))
|
||||
if os.path.exists(os.path.join(path,'_med')):
|
||||
clearfolder(path,os.path.join(path,'_med'),re.compile("(^med_)(.*)(.jpg)"))
|
||||
if os.path.exists(os.path.join(path,'.tn')):
|
||||
clearfolder(path,os.path.join(path,'.tn'),re.compile("(.*)(.jpg)"))
|
||||
if os.path.exists(os.path.join(path,'.med')):
|
||||
clearfolder(path,os.path.join(path,'.med'),re.compile("(.*)(.jpg)"))
|
||||
return
|
||||
|
||||
def clearfolder(path,tnpath,regex):
|
||||
@@ -290,7 +293,7 @@ def clearfolder(path,tnpath,regex):
|
||||
for i in list:
|
||||
f=regex.match(i)
|
||||
try:
|
||||
if not os.path.exists(os.path.join(path,f.group(2))):
|
||||
if not os.path.exists(os.path.join(path,f.group(1))):
|
||||
print('removing '+i)
|
||||
os.remove(os.path.join(tnpath,i))
|
||||
except:
|
||||
@@ -301,17 +304,17 @@ def createthumbs(path,list,options):
|
||||
''' Runs imagemagick Convert to create medium sized and thumbnail images '''
|
||||
if len(list)==0:
|
||||
return
|
||||
if not os.path.exists(os.path.join(path,'_tn')):
|
||||
os.mkdir(os.path.join(path,'_tn'))
|
||||
if not os.path.exists(os.path.join(path,'_med')):
|
||||
os.mkdir(os.path.join(path,'_med'))
|
||||
if not os.path.exists(os.path.join(path,'.tn')):
|
||||
os.mkdir(os.path.join(path,'.tn'))
|
||||
if not os.path.exists(os.path.join(path,'.med')):
|
||||
os.mkdir(os.path.join(path,'.med'))
|
||||
n=1
|
||||
nsum=len(list)
|
||||
r=str(options.width)
|
||||
res=r+'x'+r+'>'
|
||||
for i in list:
|
||||
outmedium=os.path.join(path,'_med','med_'+i+'.jpg')
|
||||
outthumb=os.path.join(path,'_tn','tn_'+i+'.jpg')
|
||||
outmedium=os.path.join(path,'.med',i+'.jpg')
|
||||
outthumb=os.path.join(path,'.tn',i+'.jpg')
|
||||
inpath=os.path.join(path,i)
|
||||
if (options.force) and os.path.exists(outmedium):
|
||||
os.unlink(outmedium)
|
||||
@@ -445,15 +448,9 @@ def traverse(path,crumbs,inputs,options):
|
||||
header=getheader(path,'../'*(len(crumbs)-1),inputs[0][1])
|
||||
else:
|
||||
header=getheader(path,'../'*(len(crumbs)-1))
|
||||
if not os.path.exists(os.path.join(path,'../'*(len(crumbs)-1),'galleryscript.js')):
|
||||
print('Warning, no (relative path) galleryscript! '+os.path.join(path,'../'*(len(crumbs)-1),'galleryscript.js'))
|
||||
#depth=0
|
||||
#while not os.path.exists(os.path.join(path,'../'*(depth),'galleryscript.js')):
|
||||
# print(os.path.join(path,'../'*(depth)))
|
||||
# depth+=1
|
||||
#header=getheader(path,'../'*(depth))
|
||||
|
||||
#print('Depth: '+str(len(crumbs)))
|
||||
if not os.path.exists(os.path.join(path,'../'*(len(crumbs)-1),'.qalbum','gallery.js')):
|
||||
print('Warning, no (relative path) galleryscript! '+os.path.join(path,'../'*(len(crumbs)-1),'.qalbum','gallery.js'))
|
||||
|
||||
pathlist=getpathlist(path,options)
|
||||
imagelist=getimagelist(path,options)
|
||||
if options.clean:
|
||||
@@ -558,7 +555,7 @@ def setupdefaultoptions(options):
|
||||
if 'reverse' not in options:
|
||||
options.reverse=False
|
||||
if 'style' not in options or options.style is None:
|
||||
options.style=os.path.join(os.path.abspath(os.path.dirname(os.path.realpath(sys.argv[0]))),'gallerystyle.css')
|
||||
options.style=os.path.join(os.path.abspath(os.path.dirname(os.path.realpath(sys.argv[0]))),'lib','style.css')
|
||||
if 'timesort' not in options:
|
||||
options.timesort=False
|
||||
if 'thumbs' not in options:
|
||||
@@ -606,11 +603,14 @@ def execute_plain():
|
||||
# Copy all resources to target folder
|
||||
pathname=os.path.dirname(os.path.realpath(sys.argv[0]))
|
||||
fullpath=os.path.abspath(pathname)
|
||||
libpath=os.path.join(options.startpath,'.qalbum')
|
||||
if not os.path.exists(options.style):
|
||||
raise IOError('File not found: "'+options.style+'"')
|
||||
shutil.copyfile(options.style,os.path.join(options.startpath,'gallerystyle.css'))
|
||||
shutil.copyfile(os.path.join(fullpath,'galleryscript.js'),os.path.join(options.startpath,'galleryscript.js'))
|
||||
|
||||
if not os.path.isdir(libpath):
|
||||
os.mkdir(libpath)
|
||||
shutil.copyfile(options.style,os.path.join(libpath,'style.css'))
|
||||
for jslib in ('gallery.js','jquery.js','jqzoom.js','touch.js'):
|
||||
shutil.copyfile(os.path.join(fullpath,'lib',jslib),os.path.join(libpath,jslib))
|
||||
inputs=[]
|
||||
inputs.append((None,options.gallery,None))
|
||||
|
||||
|
||||
Reference in New Issue
Block a user