#!/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)