diff options
Diffstat (limited to 'im/cgi-bin/imweb/filenamer.py')
| -rwxr-xr-x | im/cgi-bin/imweb/filenamer.py | 115 |
1 files changed, 115 insertions, 0 deletions
diff --git a/im/cgi-bin/imweb/filenamer.py b/im/cgi-bin/imweb/filenamer.py new file mode 100755 index 0000000..9b6ef32 --- /dev/null +++ b/im/cgi-bin/imweb/filenamer.py @@ -0,0 +1,115 @@ +#!/usr/bin/python + +import sys +import os +import re +import time +import string +import urllib +import sha + +#this program takes a url and makes a new filename for it. it also +#splits out the extension. this is important for manipulating images +#it returns a hash, part[0] is the filename and part[1] is the extension +#called like this filenamer.filename(url, nametag, username) + + +thefilename = "" +extension = "" + +nametag = "" +username = "" +url = "" + +def getargs(): + global username + global nametag + global url + args = sys.argv + if len(args) < 2: + return None + if len(args) >= 4: + username = args[-1] + nametag = args[-2] + url = args[-3] + if len(args) == 3: + nametag = args[-1] + url = args[-2] + if len(args) == 2: + url = args[-1] + thereturn = {} + thereturn['url'] = url + thereturn['nametag'] = nametag + thereturn['username'] = username + return thereturn + +def sanitize (str):#this removes pretty much everything but letters(and underscores) from a url + return re.sub(r'\W+', '', str) +#def sanitize (str): +# tmp_str = urllib.unquote(str) +# return re.sub(r'\W+', '', tmp_str) + + + + +def now (): + return int(time.mktime(time.localtime())) + +def spliturl(url): + if len(url) < 3 or '/' not in url: + sys.stdout.write('you have not provided a url') + print 'you have not provided a url' + sys.exit() + parts = url.split('/') + namepart = parts[-1] + importantparts = namepart.split('.') + extension = importantparts[-1] + if "?" in extension: + querysplit = extension.split('?') + extension = querysplit[0] + if len(extension) >= 5: + sys.stdout.write('the file is not an image or any standard format') + print 'the file is not an image or any standard format' + sys.exit + namepart = importantparts[-2] + if len(namepart)>50: + namepart = "xx_abridged__" + sanitized = sanitize(namepart) + salvaged = {} + salvaged['extension'] = extension + salvaged['namepart'] = sanitized + return salvaged + +def prepare(url): + global nametag + global username + time = now() + datestamp = str(time) + parts = spliturl(url) + extension = parts['extension'] + original = parts['namepart'] + thefilename = nametag+'_'+datestamp+"_"+original+"_"+username+'.'+extension + return thefilename + +def filename(url, tag="", usrname=""): + global nametag + global username + if tag == None: + tag = "" + if usrname == None: + usrname = "" + nametag = tag + username = usrname + thefilename = prepare(url) + print thefilename + return thefilename + sys.exit() + + +if __name__ == '__main__': + vars = getargs() + url=vars['url'] + nametag=vars['nametag'] + username = vars['username'] + filename(url,nametag,username) + |
