22 |
22 |
23 import os, os.path |
23 import os, os.path |
24 |
24 |
25 import inc |
25 import inc |
26 from lib import db, shorturl, settings, utils, template, req |
26 from lib import db, shorturl, settings, utils, template, req |
27 |
|
28 |
27 |
29 |
28 |
30 tpl = template.Template("taggr") |
29 tpl = template.Template("taggr") |
31 |
30 |
32 act = req.get_str("act", None) |
31 act = req.get_str("act", None) |
53 |
52 |
54 if os.path.isdir(fpath) : |
53 if os.path.isdir(fpath) : |
55 dirs.append((fname, fpath)) |
54 dirs.append((fname, fpath)) |
56 |
55 |
57 elif utils.isImage(fname) : |
56 elif utils.isImage(fname) : |
58 key = shorturl.int2key(db.select("""SELECT id FROM images WHERE dirpath=? AND filename=?""", path, fname).fetchone()[0]) |
57 id = db.select("""SELECT id FROM images WHERE dirpath=? AND filename=?""", path, fname).fetchone()[0] |
59 |
58 |
60 imgs.append((key, os.path.join(path, settings.THUMB_DIR, fname))) |
59 tags = [tag for type, tag in db.select("""SELECT type, tag FROM tags WHERE image=?""", id)] |
|
60 |
|
61 imgs.append((id, os.path.join(path, settings.THUMB_DIR, fname), tags)) |
61 |
62 |
62 dirs.sort() |
63 dirs.sort() |
63 imgs.sort() |
64 imgs.sort() |
64 |
65 |
65 return dirs, imgs |
66 return dirs, imgs |
70 print template.Template("taggr_dir").render( |
71 print template.Template("taggr_dir").render( |
71 subdirs = dirs, |
72 subdirs = dirs, |
72 images = imgs, |
73 images = imgs, |
73 ) |
74 ) |
74 |
75 |
|
76 elif act == "tag" : |
|
77 img_list = req.get_int_list("img") |
|
78 tag = req.get_str("tag") |
|
79 |
|
80 db.insert_many("""INSERT INTO tags (image, tag) VALUES (?, ?)""", ((img, tag) for img in img_list)) |
|
81 |
|
82 print "OK" |
|
83 |
|
84 elif act == "untag" : |
|
85 img = req.get_int("img") |
|
86 tag = req.get_str("tag") |
|
87 |
|
88 db.delete("""DELETE FROM tags WHERE image=? AND tag=?""", img, tag) |
|
89 |
|
90 print "OK" |
|
91 |
75 elif act == None : |
92 elif act == None : |
76 dirs, imgs = dirlist(".") |
93 dirs, imgs = dirlist(".") |
77 |
94 |
78 if path : |
95 if path : |
79 open_dir = path |
96 open_dir = path |
80 open_dir_contents = dirlist(path) |
97 open_dir_contents = dirlist(path) |
81 else : |
98 else : |
82 open_dir = open_dir_contents = None |
99 open_dir = open_dir_contents = None |
83 |
100 |
84 print template.Template("taggr").render( |
101 print template.Template("taggr").render( |
85 stylesheet_url = utils.url("style.css", up=1), |
102 stylesheet_url = utils.url("style.css", up=1), |
86 title = "Taggr", |
103 title = "Taggr", |
87 breadcrumb = [(utils.url(up=1), "Index"), (utils.url("."), "Taggr")], |
104 breadcrumb = [(utils.url(up=1), "Index"), (utils.url("."), "Taggr")], |
88 |
105 |