shorturl.cgi
author terom
Tue, 20 Nov 2007 23:47:00 +0000
changeset 10 e8143d784b77
parent 9 a0a13d5e406c
child 12 c2d8e9a754a1
permissions -rwxr-xr-x
SI units/ISO date-time format
1
740133ab6353 initial code, somewhere between 0.2 and 0.5
terom
parents:
diff changeset
     1
#!/usr/bin/env python2.5
740133ab6353 initial code, somewhere between 0.2 and 0.5
terom
parents:
diff changeset
     2
2
8b2b40a51098 modify shorturl.cgi to use the new shorturls2.db
terom
parents: 1
diff changeset
     3
import shelve
1
740133ab6353 initial code, somewhere between 0.2 and 0.5
terom
parents:
diff changeset
     4
import cgi
740133ab6353 initial code, somewhere between 0.2 and 0.5
terom
parents:
diff changeset
     5
import os, os.path
740133ab6353 initial code, somewhere between 0.2 and 0.5
terom
parents:
diff changeset
     6
740133ab6353 initial code, somewhere between 0.2 and 0.5
terom
parents:
diff changeset
     7
vars = cgi.FieldStorage()
740133ab6353 initial code, somewhere between 0.2 and 0.5
terom
parents:
diff changeset
     8
740133ab6353 initial code, somewhere between 0.2 and 0.5
terom
parents:
diff changeset
     9
key = vars['key'].value
6
d9d1f8e5f384 fix alignment of teh paginator, and make shorturl dirs better (no index.html + pagination)
terom
parents: 5
diff changeset
    10
d9d1f8e5f384 fix alignment of teh paginator, and make shorturl dirs better (no index.html + pagination)
terom
parents: 5
diff changeset
    11
if 'index' in vars :
d9d1f8e5f384 fix alignment of teh paginator, and make shorturl dirs better (no index.html + pagination)
terom
parents: 5
diff changeset
    12
    index = int(vars['index'].value.lstrip('/'))
d9d1f8e5f384 fix alignment of teh paginator, and make shorturl dirs better (no index.html + pagination)
terom
parents: 5
diff changeset
    13
else :
d9d1f8e5f384 fix alignment of teh paginator, and make shorturl dirs better (no index.html + pagination)
terom
parents: 5
diff changeset
    14
    index = None
d9d1f8e5f384 fix alignment of teh paginator, and make shorturl dirs better (no index.html + pagination)
terom
parents: 5
diff changeset
    15
2
8b2b40a51098 modify shorturl.cgi to use the new shorturls2.db
terom
parents: 1
diff changeset
    16
db = shelve.open('shorturls2', 'r')
1
740133ab6353 initial code, somewhere between 0.2 and 0.5
terom
parents:
diff changeset
    17
740133ab6353 initial code, somewhere between 0.2 and 0.5
terom
parents:
diff changeset
    18
try :
2
8b2b40a51098 modify shorturl.cgi to use the new shorturls2.db
terom
parents: 1
diff changeset
    19
    type, dirpath, fname = db[key]
8b2b40a51098 modify shorturl.cgi to use the new shorturls2.db
terom
parents: 1
diff changeset
    20
9
a0a13d5e406c ShortURLs for dirs without page numbers were broken, as fname was 'index'
terom
parents: 6
diff changeset
    21
    if type == 'img' :
a0a13d5e406c ShortURLs for dirs without page numbers were broken, as fname was 'index'
terom
parents: 6
diff changeset
    22
        fname += '.html'
a0a13d5e406c ShortURLs for dirs without page numbers were broken, as fname was 'index'
terom
parents: 6
diff changeset
    23
    elif type == 'dir' :
a0a13d5e406c ShortURLs for dirs without page numbers were broken, as fname was 'index'
terom
parents: 6
diff changeset
    24
        fname = ''
a0a13d5e406c ShortURLs for dirs without page numbers were broken, as fname was 'index'
terom
parents: 6
diff changeset
    25
6
d9d1f8e5f384 fix alignment of teh paginator, and make shorturl dirs better (no index.html + pagination)
terom
parents: 5
diff changeset
    26
    if index :
d9d1f8e5f384 fix alignment of teh paginator, and make shorturl dirs better (no index.html + pagination)
terom
parents: 5
diff changeset
    27
        if index > 1 : 
9
a0a13d5e406c ShortURLs for dirs without page numbers were broken, as fname was 'index'
terom
parents: 6
diff changeset
    28
            fname = 'index_%s.html' % (index - 1)
5
156cdfffef8e fix shorturls to dirs, and a new feature: pagination for index pages
terom
parents: 3
diff changeset
    29
6
d9d1f8e5f384 fix alignment of teh paginator, and make shorturl dirs better (no index.html + pagination)
terom
parents: 5
diff changeset
    30
        dirpath = '../%s' % dirpath
d9d1f8e5f384 fix alignment of teh paginator, and make shorturl dirs better (no index.html + pagination)
terom
parents: 5
diff changeset
    31
d9d1f8e5f384 fix alignment of teh paginator, and make shorturl dirs better (no index.html + pagination)
terom
parents: 5
diff changeset
    32
    path = os.path.join(dirpath, fname)
1
740133ab6353 initial code, somewhere between 0.2 and 0.5
terom
parents:
diff changeset
    33
finally :
740133ab6353 initial code, somewhere between 0.2 and 0.5
terom
parents:
diff changeset
    34
    db.close()
740133ab6353 initial code, somewhere between 0.2 and 0.5
terom
parents:
diff changeset
    35
740133ab6353 initial code, somewhere between 0.2 and 0.5
terom
parents:
diff changeset
    36
print "Status: 302"
740133ab6353 initial code, somewhere between 0.2 and 0.5
terom
parents:
diff changeset
    37
print "Location: ../%s" % path
740133ab6353 initial code, somewhere between 0.2 and 0.5
terom
parents:
diff changeset
    38
print
740133ab6353 initial code, somewhere between 0.2 and 0.5
terom
parents:
diff changeset
    39
print "../%s" % path
740133ab6353 initial code, somewhere between 0.2 and 0.5
terom
parents:
diff changeset
    40