author  terom 
Wed, 16 Jan 2008 14:58:03 +0000  
changeset 19  8d3ffd87cb0b 
parent 18  cgibin/series.py@46536daf9e04 
child 22  72696ca68c34 
permissions  rwxrxrx 
1  1 
#!/usr/bin/env python2.4 
12
c2d8e9a754a1
Major code restructuring. Version is now 0.5, templates use Mako, and the code is split off into several files under lib/
terom
parents:
4
diff
changeset

2 
# 
c2d8e9a754a1
Major code restructuring. Version is now 0.5, templates use Mako, and the code is split off into several files under lib/
terom
parents:
4
diff
changeset

3 
# DeGAL  A pretty simple web image gallery 
c2d8e9a754a1
Major code restructuring. Version is now 0.5, templates use Mako, and the code is split off into several files under lib/
terom
parents:
4
diff
changeset

4 
# Copyright (C) 2007 Tero Marttila 
c2d8e9a754a1
Major code restructuring. Version is now 0.5, templates use Mako, and the code is split off into several files under lib/
terom
parents:
4
diff
changeset

5 
# http://marttila.de/~terom/degal/ 
c2d8e9a754a1
Major code restructuring. Version is now 0.5, templates use Mako, and the code is split off into several files under lib/
terom
parents:
4
diff
changeset

6 
# 
c2d8e9a754a1
Major code restructuring. Version is now 0.5, templates use Mako, and the code is split off into several files under lib/
terom
parents:
4
diff
changeset

7 
# This program is free software; you can redistribute it and/or modify 
c2d8e9a754a1
Major code restructuring. Version is now 0.5, templates use Mako, and the code is split off into several files under lib/
terom
parents:
4
diff
changeset

8 
# it under the terms of the GNU General Public License as published by 
c2d8e9a754a1
Major code restructuring. Version is now 0.5, templates use Mako, and the code is split off into several files under lib/
terom
parents:
4
diff
changeset

9 
# the Free Software Foundation; either version 2 of the License, or 
c2d8e9a754a1
Major code restructuring. Version is now 0.5, templates use Mako, and the code is split off into several files under lib/
terom
parents:
4
diff
changeset

10 
# (at your option) any later version. 
c2d8e9a754a1
Major code restructuring. Version is now 0.5, templates use Mako, and the code is split off into several files under lib/
terom
parents:
4
diff
changeset

11 
# 
c2d8e9a754a1
Major code restructuring. Version is now 0.5, templates use Mako, and the code is split off into several files under lib/
terom
parents:
4
diff
changeset

12 
# This program is distributed in the hope that it will be useful, 
c2d8e9a754a1
Major code restructuring. Version is now 0.5, templates use Mako, and the code is split off into several files under lib/
terom
parents:
4
diff
changeset

13 
# but WITHOUT ANY WARRANTY; without even the implied warranty of 
c2d8e9a754a1
Major code restructuring. Version is now 0.5, templates use Mako, and the code is split off into several files under lib/
terom
parents:
4
diff
changeset

14 
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 
c2d8e9a754a1
Major code restructuring. Version is now 0.5, templates use Mako, and the code is split off into several files under lib/
terom
parents:
4
diff
changeset

15 
# GNU General Public License for more details. 
c2d8e9a754a1
Major code restructuring. Version is now 0.5, templates use Mako, and the code is split off into several files under lib/
terom
parents:
4
diff
changeset

16 
# 
c2d8e9a754a1
Major code restructuring. Version is now 0.5, templates use Mako, and the code is split off into several files under lib/
terom
parents:
4
diff
changeset

17 
# You should have received a copy of the GNU General Public License 
c2d8e9a754a1
Major code restructuring. Version is now 0.5, templates use Mako, and the code is split off into several files under lib/
terom
parents:
4
diff
changeset

18 
# along with this program; if not, write to the 
c2d8e9a754a1
Major code restructuring. Version is now 0.5, templates use Mako, and the code is split off into several files under lib/
terom
parents:
4
diff
changeset

19 
# Free Software Foundation, Inc., 
c2d8e9a754a1
Major code restructuring. Version is now 0.5, templates use Mako, and the code is split off into several files under lib/
terom
parents:
4
diff
changeset

20 
# 59 Temple Place  Suite 330, Boston, MA 021111307, USA. 
c2d8e9a754a1
Major code restructuring. Version is now 0.5, templates use Mako, and the code is split off into several files under lib/
terom
parents:
4
diff
changeset

21 
# 
4
d46ab092d2b2
add rel="nofollow" to ShortURL and seriesrelated links, googlebot doesn't need to follow them
terom
parents:
3
diff
changeset

22 

19
8d3ffd87cb0b
* move cgibin to decgibin so it doesn't conflict with my default alias... need to come up with a real solution to this
terom
parents:
18
diff
changeset

23 
import os 
1  24 
import cgi 
25 
import Cookie 

26 

19
8d3ffd87cb0b
* move cgibin to decgibin so it doesn't conflict with my default alias... need to come up with a real solution to this
terom
parents:
18
diff
changeset

27 
import inc 
8d3ffd87cb0b
* move cgibin to decgibin so it doesn't conflict with my default alias... need to come up with a real solution to this
terom
parents:
18
diff
changeset

28 
from lib import shorturl, template, utils, settings 
1  29 

30 
# 

31 
# load request params 

32 
# 

33 
vars = cgi.FieldStorage() 

34 

3
9637b8f24005
...and fix it to redirect to the .html. Series.cgi is also refactored+commented+shorturls2'd
terom
parents:
1
diff
changeset

35 
# these are interpeted different ways, hence the generic naming 
9637b8f24005
...and fix it to redirect to the .html. Series.cgi is also refactored+commented+shorturls2'd
terom
parents:
1
diff
changeset

36 
arg1 = vars["keys"].value 
1  37 
if 'index' in vars : 
3
9637b8f24005
...and fix it to redirect to the .html. Series.cgi is also refactored+commented+shorturls2'd
terom
parents:
1
diff
changeset

38 
arg2 = vars["index"].value 
1  39 
else : 
3
9637b8f24005
...and fix it to redirect to the .html. Series.cgi is also refactored+commented+shorturls2'd
terom
parents:
1
diff
changeset

40 
arg2 = None 
1  41 

3
9637b8f24005
...and fix it to redirect to the .html. Series.cgi is also refactored+commented+shorturls2'd
terom
parents:
1
diff
changeset

42 
# the cookie with the user's current series 
9637b8f24005
...and fix it to redirect to the .html. Series.cgi is also refactored+commented+shorturls2'd
terom
parents:
1
diff
changeset

43 
cookie = Cookie.SimpleCookie(os.environ.get('HTTP_COOKIE', None)) 
1  44 

3
9637b8f24005
...and fix it to redirect to the .html. Series.cgi is also refactored+commented+shorturls2'd
terom
parents:
1
diff
changeset

45 
# a special action? 
9637b8f24005
...and fix it to redirect to the .html. Series.cgi is also refactored+commented+shorturls2'd
terom
parents:
1
diff
changeset

46 
if arg1 and arg1 in ('add', 'del', 'clear', 'view') or arg2 == 'load' : 
9637b8f24005
...and fix it to redirect to the .html. Series.cgi is also refactored+commented+shorturls2'd
terom
parents:
1
diff
changeset

47 
# load the keys from the cookie 
1  48 
if 'series' in cookie : 
49 
keys = cookie["series"].value.split() 

50 
else : 

51 
keys = [] 

52 

3
9637b8f24005
...and fix it to redirect to the .html. Series.cgi is also refactored+commented+shorturls2'd
terom
parents:
1
diff
changeset

53 
if arg2 == 'load' : 
9637b8f24005
...and fix it to redirect to the .html. Series.cgi is also refactored+commented+shorturls2'd
terom
parents:
1
diff
changeset

54 
# set the keys in the user's cookie to those in the URL 
9637b8f24005
...and fix it to redirect to the .html. Series.cgi is also refactored+commented+shorturls2'd
terom
parents:
1
diff
changeset

55 
keys = arg1.split() 
9637b8f24005
...and fix it to redirect to the .html. Series.cgi is also refactored+commented+shorturls2'd
terom
parents:
1
diff
changeset

56 

9637b8f24005
...and fix it to redirect to the .html. Series.cgi is also refactored+commented+shorturls2'd
terom
parents:
1
diff
changeset

57 
elif arg1 == 'add' and arg2 not in keys : 
9637b8f24005
...and fix it to redirect to the .html. Series.cgi is also refactored+commented+shorturls2'd
terom
parents:
1
diff
changeset

58 
# add a code to the list of keys 
9637b8f24005
...and fix it to redirect to the .html. Series.cgi is also refactored+commented+shorturls2'd
terom
parents:
1
diff
changeset

59 
keys.append(arg2) 
9637b8f24005
...and fix it to redirect to the .html. Series.cgi is also refactored+commented+shorturls2'd
terom
parents:
1
diff
changeset

60 

9637b8f24005
...and fix it to redirect to the .html. Series.cgi is also refactored+commented+shorturls2'd
terom
parents:
1
diff
changeset

61 
elif arg1 == 'del' and arg2 in keys : 
9637b8f24005
...and fix it to redirect to the .html. Series.cgi is also refactored+commented+shorturls2'd
terom
parents:
1
diff
changeset

62 
# remove a key from the list of keys 
9637b8f24005
...and fix it to redirect to the .html. Series.cgi is also refactored+commented+shorturls2'd
terom
parents:
1
diff
changeset

63 
keys.remove(arg2) 
9637b8f24005
...and fix it to redirect to the .html. Series.cgi is also refactored+commented+shorturls2'd
terom
parents:
1
diff
changeset

64 

9637b8f24005
...and fix it to redirect to the .html. Series.cgi is also refactored+commented+shorturls2'd
terom
parents:
1
diff
changeset

65 
elif arg1 == 'clear' : 
9637b8f24005
...and fix it to redirect to the .html. Series.cgi is also refactored+commented+shorturls2'd
terom
parents:
1
diff
changeset

66 
# clear out the set of keys 
1  67 
keys = [] 
3
9637b8f24005
...and fix it to redirect to the .html. Series.cgi is also refactored+commented+shorturls2'd
terom
parents:
1
diff
changeset

68 

9637b8f24005
...and fix it to redirect to the .html. Series.cgi is also refactored+commented+shorturls2'd
terom
parents:
1
diff
changeset

69 
elif arg1 == 'view' : 
9637b8f24005
...and fix it to redirect to the .html. Series.cgi is also refactored+commented+shorturls2'd
terom
parents:
1
diff
changeset

70 
# just view them 
1  71 
pass 
3
9637b8f24005
...and fix it to redirect to the .html. Series.cgi is also refactored+commented+shorturls2'd
terom
parents:
1
diff
changeset

72 

9637b8f24005
...and fix it to redirect to the .html. Series.cgi is also refactored+commented+shorturls2'd
terom
parents:
1
diff
changeset

73 
# set the series cookie value 
1  74 
cookie['series'] = ' '.join(keys) 
75 
cookie['series']['path'] = '/' 

3
9637b8f24005
...and fix it to redirect to the .html. Series.cgi is also refactored+commented+shorturls2'd
terom
parents:
1
diff
changeset

76 

9637b8f24005
...and fix it to redirect to the .html. Series.cgi is also refactored+commented+shorturls2'd
terom
parents:
1
diff
changeset

77 
# if we have keys, redirect to them, otherwise, back to index we go 
1  78 
if keys : 
79 
redirect_to = "../%s/" % ('+'.join(keys)) 

80 
else : 

81 
redirect_to = "../.." 

3
9637b8f24005
...and fix it to redirect to the .html. Series.cgi is also refactored+commented+shorturls2'd
terom
parents:
1
diff
changeset

82 

9637b8f24005
...and fix it to redirect to the .html. Series.cgi is also refactored+commented+shorturls2'd
terom
parents:
1
diff
changeset

83 
# do the redirect 
1  84 
print "Status: 302" 
85 
print "Location: %s" % redirect_to 

86 
print cookie 

87 

88 
print "Redirect..." 

89 
else : 

3
9637b8f24005
...and fix it to redirect to the .html. Series.cgi is also refactored+commented+shorturls2'd
terom
parents:
1
diff
changeset

90 
# we're just viewing 
9637b8f24005
...and fix it to redirect to the .html. Series.cgi is also refactored+commented+shorturls2'd
terom
parents:
1
diff
changeset

91 
keys = arg1.split() 
9637b8f24005
...and fix it to redirect to the .html. Series.cgi is also refactored+commented+shorturls2'd
terom
parents:
1
diff
changeset

92 

9637b8f24005
...and fix it to redirect to the .html. Series.cgi is also refactored+commented+shorturls2'd
terom
parents:
1
diff
changeset

93 
# is this "My Series"? 
9637b8f24005
...and fix it to redirect to the .html. Series.cgi is also refactored+commented+shorturls2'd
terom
parents:
1
diff
changeset

94 
my_series = 'series' in cookie and cookie['series'].value.split() == keys 
19
8d3ffd87cb0b
* move cgibin to decgibin so it doesn't conflict with my default alias... need to come up with a real solution to this
terom
parents:
18
diff
changeset

95 

8d3ffd87cb0b
* move cgibin to decgibin so it doesn't conflict with my default alias... need to come up with a real solution to this
terom
parents:
18
diff
changeset

96 
index = fname = None 
8d3ffd87cb0b
* move cgibin to decgibin so it doesn't conflict with my default alias... need to come up with a real solution to this
terom
parents:
18
diff
changeset

97 

3
9637b8f24005
...and fix it to redirect to the .html. Series.cgi is also refactored+commented+shorturls2'd
terom
parents:
1
diff
changeset

98 
if arg2 : 
19
8d3ffd87cb0b
* move cgibin to decgibin so it doesn't conflict with my default alias... need to come up with a real solution to this
terom
parents:
18
diff
changeset

99 
try : 
8d3ffd87cb0b
* move cgibin to decgibin so it doesn't conflict with my default alias... need to come up with a real solution to this
terom
parents:
18
diff
changeset

100 
index = int(arg2) 
8d3ffd87cb0b
* move cgibin to decgibin so it doesn't conflict with my default alias... need to come up with a real solution to this
terom
parents:
18
diff
changeset

101 
except ValueError : 
8d3ffd87cb0b
* move cgibin to decgibin so it doesn't conflict with my default alias... need to come up with a real solution to this
terom
parents:
18
diff
changeset

102 
fname = arg2 
1  103 

104 
# load DB 

19
8d3ffd87cb0b
* move cgibin to decgibin so it doesn't conflict with my default alias... need to come up with a real solution to this
terom
parents:
18
diff
changeset

105 
db = shorturl.DB() 
3
9637b8f24005
...and fix it to redirect to the .html. Series.cgi is also refactored+commented+shorturls2'd
terom
parents:
1
diff
changeset

106 

19
8d3ffd87cb0b
* move cgibin to decgibin so it doesn't conflict with my default alias... need to come up with a real solution to this
terom
parents:
18
diff
changeset

107 
# our custom Series/Image classes, because they do act slightly differently 
1  108 

19
8d3ffd87cb0b
* move cgibin to decgibin so it doesn't conflict with my default alias... need to come up with a real solution to this
terom
parents:
18
diff
changeset

109 
class Series (object) : 
8d3ffd87cb0b
* move cgibin to decgibin so it doesn't conflict with my default alias... need to come up with a real solution to this
terom
parents:
18
diff
changeset

110 
def __init__ (self, keys) : 
8d3ffd87cb0b
* move cgibin to decgibin so it doesn't conflict with my default alias... need to come up with a real solution to this
terom
parents:
18
diff
changeset

111 
self.images = [] 
8d3ffd87cb0b
* move cgibin to decgibin so it doesn't conflict with my default alias... need to come up with a real solution to this
terom
parents:
18
diff
changeset

112 
prev = None 
1  113 

19
8d3ffd87cb0b
* move cgibin to decgibin so it doesn't conflict with my default alias... need to come up with a real solution to this
terom
parents:
18
diff
changeset

114 
self.image_dict = dict() 
1  115 

19
8d3ffd87cb0b
* move cgibin to decgibin so it doesn't conflict with my default alias... need to come up with a real solution to this
terom
parents:
18
diff
changeset

116 
for index, key in enumerate(keys) : 
8d3ffd87cb0b
* move cgibin to decgibin so it doesn't conflict with my default alias... need to come up with a real solution to this
terom
parents:
18
diff
changeset

117 
dir, fname = db.image_info(key) 
1  118 

19
8d3ffd87cb0b
* move cgibin to decgibin so it doesn't conflict with my default alias... need to come up with a real solution to this
terom
parents:
18
diff
changeset

119 
img = Image(self, key, dir, fname, index) 
8d3ffd87cb0b
* move cgibin to decgibin so it doesn't conflict with my default alias... need to come up with a real solution to this
terom
parents:
18
diff
changeset

120 
self.images.append(img) 
8d3ffd87cb0b
* move cgibin to decgibin so it doesn't conflict with my default alias... need to come up with a real solution to this
terom
parents:
18
diff
changeset

121 
self.image_dict[fname] = img 
1  122 

19
8d3ffd87cb0b
* move cgibin to decgibin so it doesn't conflict with my default alias... need to come up with a real solution to this
terom
parents:
18
diff
changeset

123 
img.prev = prev 
1  124 

19
8d3ffd87cb0b
* move cgibin to decgibin so it doesn't conflict with my default alias... need to come up with a real solution to this
terom
parents:
18
diff
changeset

125 
if prev : 
8d3ffd87cb0b
* move cgibin to decgibin so it doesn't conflict with my default alias... need to come up with a real solution to this
terom
parents:
18
diff
changeset

126 
prev.next = img 
8d3ffd87cb0b
* move cgibin to decgibin so it doesn't conflict with my default alias... need to come up with a real solution to this
terom
parents:
18
diff
changeset

127 

8d3ffd87cb0b
* move cgibin to decgibin so it doesn't conflict with my default alias... need to come up with a real solution to this
terom
parents:
18
diff
changeset

128 
prev = img 
8d3ffd87cb0b
* move cgibin to decgibin so it doesn't conflict with my default alias... need to come up with a real solution to this
terom
parents:
18
diff
changeset

129 

8d3ffd87cb0b
* move cgibin to decgibin so it doesn't conflict with my default alias... need to come up with a real solution to this
terom
parents:
18
diff
changeset

130 
def render (self) : 
8d3ffd87cb0b
* move cgibin to decgibin so it doesn't conflict with my default alias... need to come up with a real solution to this
terom
parents:
18
diff
changeset

131 
if my_series : 
8d3ffd87cb0b
* move cgibin to decgibin so it doesn't conflict with my default alias... need to come up with a real solution to this
terom
parents:
18
diff
changeset

132 
descr = '<a href="../clear/" rel="nofollow">Clear your series</a>' 
8d3ffd87cb0b
* move cgibin to decgibin so it doesn't conflict with my default alias... need to come up with a real solution to this
terom
parents:
18
diff
changeset

133 
else : 
8d3ffd87cb0b
* move cgibin to decgibin so it doesn't conflict with my default alias... need to come up with a real solution to this
terom
parents:
18
diff
changeset

134 
descr = '<a href="load" rel="nofollow">Load as your series</a>' 
8d3ffd87cb0b
* move cgibin to decgibin so it doesn't conflict with my default alias... need to come up with a real solution to this
terom
parents:
18
diff
changeset

135 

8d3ffd87cb0b
* move cgibin to decgibin so it doesn't conflict with my default alias... need to come up with a real solution to this
terom
parents:
18
diff
changeset

136 
return template.gallery.render( 
8d3ffd87cb0b
* move cgibin to decgibin so it doesn't conflict with my default alias... need to come up with a real solution to this
terom
parents:
18
diff
changeset

137 
stylesheet_url = utils.url("style.css", up=2), 
8d3ffd87cb0b
* move cgibin to decgibin so it doesn't conflict with my default alias... need to come up with a real solution to this
terom
parents:
18
diff
changeset

138 

8d3ffd87cb0b
* move cgibin to decgibin so it doesn't conflict with my default alias... need to come up with a real solution to this
terom
parents:
18
diff
changeset

139 
breadcrumb = [(utils.url(up=1), "Index"), (utils.url(), "Series")], 
8d3ffd87cb0b
* move cgibin to decgibin so it doesn't conflict with my default alias... need to come up with a real solution to this
terom
parents:
18
diff
changeset

140 

8d3ffd87cb0b
* move cgibin to decgibin so it doesn't conflict with my default alias... need to come up with a real solution to this
terom
parents:
18
diff
changeset

141 
dirs = None, 
8d3ffd87cb0b
* move cgibin to decgibin so it doesn't conflict with my default alias... need to come up with a real solution to this
terom
parents:
18
diff
changeset

142 
title = "Series", 
8d3ffd87cb0b
* move cgibin to decgibin so it doesn't conflict with my default alias... need to come up with a real solution to this
terom
parents:
18
diff
changeset

143 

8d3ffd87cb0b
* move cgibin to decgibin so it doesn't conflict with my default alias... need to come up with a real solution to this
terom
parents:
18
diff
changeset

144 
num_pages = 1, 
8d3ffd87cb0b
* move cgibin to decgibin so it doesn't conflict with my default alias... need to come up with a real solution to this
terom
parents:
18
diff
changeset

145 
cur_page = 0, 
8d3ffd87cb0b
* move cgibin to decgibin so it doesn't conflict with my default alias... need to come up with a real solution to this
terom
parents:
18
diff
changeset

146 

8d3ffd87cb0b
* move cgibin to decgibin so it doesn't conflict with my default alias... need to come up with a real solution to this
terom
parents:
18
diff
changeset

147 
images = self.images, 
8d3ffd87cb0b
* move cgibin to decgibin so it doesn't conflict with my default alias... need to come up with a real solution to this
terom
parents:
18
diff
changeset

148 

8d3ffd87cb0b
* move cgibin to decgibin so it doesn't conflict with my default alias... need to come up with a real solution to this
terom
parents:
18
diff
changeset

149 
description = descr, 
8d3ffd87cb0b
* move cgibin to decgibin so it doesn't conflict with my default alias... need to come up with a real solution to this
terom
parents:
18
diff
changeset

150 

8d3ffd87cb0b
* move cgibin to decgibin so it doesn't conflict with my default alias... need to come up with a real solution to this
terom
parents:
18
diff
changeset

151 
shorturl = None, 
8d3ffd87cb0b
* move cgibin to decgibin so it doesn't conflict with my default alias... need to come up with a real solution to this
terom
parents:
18
diff
changeset

152 
shorturl_code = None, 
8d3ffd87cb0b
* move cgibin to decgibin so it doesn't conflict with my default alias... need to come up with a real solution to this
terom
parents:
18
diff
changeset

153 
) 
8d3ffd87cb0b
* move cgibin to decgibin so it doesn't conflict with my default alias... need to come up with a real solution to this
terom
parents:
18
diff
changeset

154 

8d3ffd87cb0b
* move cgibin to decgibin so it doesn't conflict with my default alias... need to come up with a real solution to this
terom
parents:
18
diff
changeset

155 
class Image (object) : 
8d3ffd87cb0b
* move cgibin to decgibin so it doesn't conflict with my default alias... need to come up with a real solution to this
terom
parents:
18
diff
changeset

156 
def __init__ (self, series, key, dir, fname, index) : 
8d3ffd87cb0b
* move cgibin to decgibin so it doesn't conflict with my default alias... need to come up with a real solution to this
terom
parents:
18
diff
changeset

157 
self.fname = fname 
8d3ffd87cb0b
* move cgibin to decgibin so it doesn't conflict with my default alias... need to come up with a real solution to this
terom
parents:
18
diff
changeset

158 
self.name = utils.url_join(dir, fname, abs=True) 
8d3ffd87cb0b
* move cgibin to decgibin so it doesn't conflict with my default alias... need to come up with a real solution to this
terom
parents:
18
diff
changeset

159 
self.html_name = utils.url(fname) 
8d3ffd87cb0b
* move cgibin to decgibin so it doesn't conflict with my default alias... need to come up with a real solution to this
terom
parents:
18
diff
changeset

160 
self.real_html_name = utils.url_join(dir, fname + ".html", abs=True) 
8d3ffd87cb0b
* move cgibin to decgibin so it doesn't conflict with my default alias... need to come up with a real solution to this
terom
parents:
18
diff
changeset

161 

8d3ffd87cb0b
* move cgibin to decgibin so it doesn't conflict with my default alias... need to come up with a real solution to this
terom
parents:
18
diff
changeset

162 
self.thumb_name = utils.url_join(dir, settings.THUMB_DIR, fname, abs=True) 
8d3ffd87cb0b
* move cgibin to decgibin so it doesn't conflict with my default alias... need to come up with a real solution to this
terom
parents:
18
diff
changeset

163 
self.preview_name = utils.url_join(dir, settings.PREVIEW_DIR, fname, abs=True) 
8d3ffd87cb0b
* move cgibin to decgibin so it doesn't conflict with my default alias... need to come up with a real solution to this
terom
parents:
18
diff
changeset

164 

8d3ffd87cb0b
* move cgibin to decgibin so it doesn't conflict with my default alias... need to come up with a real solution to this
terom
parents:
18
diff
changeset

165 
self.shorturl = key 
8d3ffd87cb0b
* move cgibin to decgibin so it doesn't conflict with my default alias... need to come up with a real solution to this
terom
parents:
18
diff
changeset

166 

8d3ffd87cb0b
* move cgibin to decgibin so it doesn't conflict with my default alias... need to come up with a real solution to this
terom
parents:
18
diff
changeset

167 
self.prev = self.next = None 
8d3ffd87cb0b
* move cgibin to decgibin so it doesn't conflict with my default alias... need to come up with a real solution to this
terom
parents:
18
diff
changeset

168 

8d3ffd87cb0b
* move cgibin to decgibin so it doesn't conflict with my default alias... need to come up with a real solution to this
terom
parents:
18
diff
changeset

169 
def render (self) : 
8d3ffd87cb0b
* move cgibin to decgibin so it doesn't conflict with my default alias... need to come up with a real solution to this
terom
parents:
18
diff
changeset

170 
descr = '<span style="fontsize: xsmall"><a href="%s.html">Standalone image</a></span>' % self.real_html_name 
8d3ffd87cb0b
* move cgibin to decgibin so it doesn't conflict with my default alias... need to come up with a real solution to this
terom
parents:
18
diff
changeset

171 

8d3ffd87cb0b
* move cgibin to decgibin so it doesn't conflict with my default alias... need to come up with a real solution to this
terom
parents:
18
diff
changeset

172 
if my_series : 
8d3ffd87cb0b
* move cgibin to decgibin so it doesn't conflict with my default alias... need to come up with a real solution to this
terom
parents:
18
diff
changeset

173 
series_url = utils.url_join("del", self.shorturl, up=1) 
8d3ffd87cb0b
* move cgibin to decgibin so it doesn't conflict with my default alias... need to come up with a real solution to this
terom
parents:
18
diff
changeset

174 
series_verb = "Remove from" 
8d3ffd87cb0b
* move cgibin to decgibin so it doesn't conflict with my default alias... need to come up with a real solution to this
terom
parents:
18
diff
changeset

175 
else : 
8d3ffd87cb0b
* move cgibin to decgibin so it doesn't conflict with my default alias... need to come up with a real solution to this
terom
parents:
18
diff
changeset

176 
series_url = series_verb = "" 
8d3ffd87cb0b
* move cgibin to decgibin so it doesn't conflict with my default alias... need to come up with a real solution to this
terom
parents:
18
diff
changeset

177 

8d3ffd87cb0b
* move cgibin to decgibin so it doesn't conflict with my default alias... need to come up with a real solution to this
terom
parents:
18
diff
changeset

178 
return template.image.render( 
8d3ffd87cb0b
* move cgibin to decgibin so it doesn't conflict with my default alias... need to come up with a real solution to this
terom
parents:
18
diff
changeset

179 
stylesheet_url = utils.url("style.css", up=3), 
8d3ffd87cb0b
* move cgibin to decgibin so it doesn't conflict with my default alias... need to come up with a real solution to this
terom
parents:
18
diff
changeset

180 

8d3ffd87cb0b
* move cgibin to decgibin so it doesn't conflict with my default alias... need to come up with a real solution to this
terom
parents:
18
diff
changeset

181 
breadcrumb = [(utils.url(up=2), "Index"), (utils.url("."), "Series"), (self.html_name, self.fname)], 
8d3ffd87cb0b
* move cgibin to decgibin so it doesn't conflict with my default alias... need to come up with a real solution to this
terom
parents:
18
diff
changeset

182 

8d3ffd87cb0b
* move cgibin to decgibin so it doesn't conflict with my default alias... need to come up with a real solution to this
terom
parents:
18
diff
changeset

183 
title = self.fname, 
8d3ffd87cb0b
* move cgibin to decgibin so it doesn't conflict with my default alias... need to come up with a real solution to this
terom
parents:
18
diff
changeset

184 

8d3ffd87cb0b
* move cgibin to decgibin so it doesn't conflict with my default alias... need to come up with a real solution to this
terom
parents:
18
diff
changeset

185 
prev = self.prev, 
8d3ffd87cb0b
* move cgibin to decgibin so it doesn't conflict with my default alias... need to come up with a real solution to this
terom
parents:
18
diff
changeset

186 
img = self, 
8d3ffd87cb0b
* move cgibin to decgibin so it doesn't conflict with my default alias... need to come up with a real solution to this
terom
parents:
18
diff
changeset

187 
next = self.next, 
8d3ffd87cb0b
* move cgibin to decgibin so it doesn't conflict with my default alias... need to come up with a real solution to this
terom
parents:
18
diff
changeset

188 

8d3ffd87cb0b
* move cgibin to decgibin so it doesn't conflict with my default alias... need to come up with a real solution to this
terom
parents:
18
diff
changeset

189 
description = descr, 
8d3ffd87cb0b
* move cgibin to decgibin so it doesn't conflict with my default alias... need to come up with a real solution to this
terom
parents:
18
diff
changeset

190 

8d3ffd87cb0b
* move cgibin to decgibin so it doesn't conflict with my default alias... need to come up with a real solution to this
terom
parents:
18
diff
changeset

191 
img_size = None, 
8d3ffd87cb0b
* move cgibin to decgibin so it doesn't conflict with my default alias... need to come up with a real solution to this
terom
parents:
18
diff
changeset

192 
file_size = None, 
8d3ffd87cb0b
* move cgibin to decgibin so it doesn't conflict with my default alias... need to come up with a real solution to this
terom
parents:
18
diff
changeset

193 
timestamp = None, 
8d3ffd87cb0b
* move cgibin to decgibin so it doesn't conflict with my default alias... need to come up with a real solution to this
terom
parents:
18
diff
changeset

194 

8d3ffd87cb0b
* move cgibin to decgibin so it doesn't conflict with my default alias... need to come up with a real solution to this
terom
parents:
18
diff
changeset

195 
shorturl = utils.url_join("s", self.shorturl, abs=True), 
8d3ffd87cb0b
* move cgibin to decgibin so it doesn't conflict with my default alias... need to come up with a real solution to this
terom
parents:
18
diff
changeset

196 
shorturl_code = self.shorturl, 
8d3ffd87cb0b
* move cgibin to decgibin so it doesn't conflict with my default alias... need to come up with a real solution to this
terom
parents:
18
diff
changeset

197 

8d3ffd87cb0b
* move cgibin to decgibin so it doesn't conflict with my default alias... need to come up with a real solution to this
terom
parents:
18
diff
changeset

198 
series_url = series_url, 
8d3ffd87cb0b
* move cgibin to decgibin so it doesn't conflict with my default alias... need to come up with a real solution to this
terom
parents:
18
diff
changeset

199 
series_verb = series_verb, 
8d3ffd87cb0b
* move cgibin to decgibin so it doesn't conflict with my default alias... need to come up with a real solution to this
terom
parents:
18
diff
changeset

200 
) 
8d3ffd87cb0b
* move cgibin to decgibin so it doesn't conflict with my default alias... need to come up with a real solution to this
terom
parents:
18
diff
changeset

201 

8d3ffd87cb0b
* move cgibin to decgibin so it doesn't conflict with my default alias... need to come up with a real solution to this
terom
parents:
18
diff
changeset

202 
series = Series(keys) 
8d3ffd87cb0b
* move cgibin to decgibin so it doesn't conflict with my default alias... need to come up with a real solution to this
terom
parents:
18
diff
changeset

203 

8d3ffd87cb0b
* move cgibin to decgibin so it doesn't conflict with my default alias... need to come up with a real solution to this
terom
parents:
18
diff
changeset

204 
if fname : 
8d3ffd87cb0b
* move cgibin to decgibin so it doesn't conflict with my default alias... need to come up with a real solution to this
terom
parents:
18
diff
changeset

205 
html = series.image_dict[fname].render() 
8d3ffd87cb0b
* move cgibin to decgibin so it doesn't conflict with my default alias... need to come up with a real solution to this
terom
parents:
18
diff
changeset

206 
elif index : 
8d3ffd87cb0b
* move cgibin to decgibin so it doesn't conflict with my default alias... need to come up with a real solution to this
terom
parents:
18
diff
changeset

207 
html = series.images[index  1].render() 
1  208 
else : 
19
8d3ffd87cb0b
* move cgibin to decgibin so it doesn't conflict with my default alias... need to come up with a real solution to this
terom
parents:
18
diff
changeset

209 
html = series.render() 
1  210 

211 
print "ContentType: text/html" 

212 

19
8d3ffd87cb0b
* move cgibin to decgibin so it doesn't conflict with my default alias... need to come up with a real solution to this
terom
parents:
18
diff
changeset

213 
print html 
1  214 