summaryrefslogtreecommitdiff
path: root/impattern/im/cgi-bin/imweb/filenamer.py
blob: 9b6ef32b9332dfe4fcac8a9f1d4c450c9deab768 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
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)