diff options
Diffstat (limited to 'cgi-bin/link.py')
-rw-r--r-- | cgi-bin/link.py | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/cgi-bin/link.py b/cgi-bin/link.py new file mode 100644 index 0000000..cfc1f0a --- /dev/null +++ b/cgi-bin/link.py @@ -0,0 +1,74 @@ +# -*- coding: utf8 -*- +import os.path, datetime, config + +class Link: + def __init__(self, filename=""): + if os.path.exists(os.path.realpath(config.datadir)): + self.datadir=config.datadir + self.src_datadir="../"+config.datadir + self.exists="" + else: + print ("Error: directory "+os.path.realpath(config.datadir)+" does not exist. Check config.py") + exit() + if not filename or filename == "latest": + self.img=os.path.split(os.path.realpath(self.datadir+"latest.jpeg"))[1] + else: + self.img=filename+".jpeg" + + def src(self, target): + if self.detect(self.src_datadir+target): + src=os.path.split(target) + return os.path.relpath(self.src_datadir + src[1]) + else: + return os.path.relpath(self.src_datadir + "notfound.jpeg") + + def imglink(self, target, order): + if self.detect(target): + return "<a href=\""+self.href(target)+"\"><img src=\""+self.src(target)+"\" class=\""+order+"\"/></a>" + else: + return "<img src=\""+self.src(target)+"\" class=\""+order+"\"/>" + + def href(self, target): + ##print os.path.realpath(root+target) + #if target == self.img: + #target = os.path.split(target)[1] + #return "?f="+target[:12] + #else: + return "?f=" + target[:12] + + def detect(self, filename): + if os.path.exists(os.path.realpath(self.datadir+filename)): + #print os.path.realpath(filename) + return True + else: + #print os.path.realpath(filename) + return False + + def link(self, target, link): + #print target + if self.detect(target): + return "<a href=\""+self.href(target)+"\">"+link+"</a>" + else: + return "<span>"+link+"</span>" + + def delta(self, delta): + date=os.path.split(self.img) + date=os.path.splitext(date[1]) + date=date[0] + curdate=datetime.datetime.strptime(date, "%Y%m%d%H%M") + pm = delta[:0] + if delta.endswith('m'): + num = 10 + else: + num = 1 + if delta.startswith('-'): + num = num * -1 + if delta.endswith('w'): + targetdate=curdate-datetime.timedelta(weeks=num) + if delta.endswith('d'): + targetdate=curdate-datetime.timedelta(days=num) + if delta.endswith('h'): + targetdate=curdate-datetime.timedelta(hours=num) + if delta.endswith('m'): + targetdate=curdate-datetime.timedelta(minutes=num) + return datetime.datetime.strftime(targetdate, "%Y%m%d%H%M")+".jpeg" |