de-cgi-bin/taggr2.py
changeset 24 001f52cd057e
parent 23 10841abbc01f
child 25 4b3cf12848c2
equal deleted inserted replaced
23:10841abbc01f 24:001f52cd057e
    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