summaryrefslogtreecommitdiff
path: root/cgi-bin/link.py
blob: 334184a83662a18de645174606562334e4f5d92e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
# -*- coding: utf8 -*-
import os, 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.latest=os.path.split(os.path.realpath(self.datadir+"latest.jpeg"))[1][:12]
		else:
			print ("Error: directory "+os.path.realpath(config.datadir)+" does not exist. Check config.py")
			exit()
		if not filename or filename == "latest":
			self.img=self.latest
		else:
			self.img=filename

	def src(self, target, size=""):
		if self.detect(target):
			src=os.path.split(target)
			return os.path.relpath(self.src_datadir + src[1]+"-"+size+".jpeg")
		else:
			return os.path.relpath(self.src_datadir + "notfound.jpeg")
		
	def imglink(self, target, size, order=""):
		if order:
			cssclass="class=\""+order+"\""
		else:
			cssclass=""
		first=datetime.datetime.strptime(str(self.first()),"%Y%m%d%H%M")
		cur=datetime.datetime.strptime(target, "%Y%m%d%H%M")
		latest=datetime.datetime.strptime(str(self.latest),"%Y%m%d%H%M")
		if first <= cur <= latest:
			return "<a href=\""+self.href(target)+"\"><img src=\""+self.src(target, size)+"\" "+cssclass+"/></a>"
		else:
			return "<img src=\""+self.src(target, size)+"\" "+cssclass+"/>"
                    
	def timestamp(self, date):
		if self.detect(date):
			date=datetime.datetime.strftime(datetime.datetime.strptime(date[:12], "%Y%m%d%H%M"), "%Y-%m-%d %H:%M")
			return date
		else:
			return ""

	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+"-full.jpeg")):
			#print os.path.realpath(self.datadir+filename+"-full.jpeg")
			return True
		else:
			#print os.path.realpath(self.datadir+filename+"-full.jpeg")
			return False
        
	def first(self):
		index=os.listdir(os.path.realpath(self.datadir))
		remove=('latest.jpeg', 'notfound.jpeg')
		for r in remove:
			index.remove(r)
		index.sort()
		first=index[0]
		return first[:12]
                
	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 full(self, target, link):
		if self.detect(target):
			return "<a href=\"/img/"+target+"-full.jpeg\">"+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")                                                                                                                                                                                                 
		if delta.endswith('m'):                                                                                                                                                                                                                                
			num = config.delay                                                                                                                                                                                                                                       
		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")