1 # -*- coding: utf-8 -*-
2 import httplib
, mimetypes
, sys
3 USER_AGENT
= 'Mozilla/5.0 (X11; U; Linux i686; ru-RU; rv:1.9.0.2pre) Gecko/2008072703 Firefox/3.0.2pre (Swiftfox)'
5 def get_file_contents(file_name
):
11 def get_content_type(file_name
):
12 cont_type
=mimetypes
.guess_type(file_name
)[0] or 'application/octet-stream'
15 def encode_multipart_formdata(filename
):
16 BOUNDARY
= '----------'
19 # add additional form fields
20 form_vaule
= {'authenticity_token':'13619ba0aed720f2c822937f14409450d658b50c'}
22 L
.append('--' + BOUNDARY
)
23 L
.append('Content-Disposition: form-data; name="authenticity_token"')
25 L
.append('13619ba0aed720f2c822937f14409450d658b50c')
26 L
.append('--' + BOUNDARY
)
27 L
.append('Content-Disposition: form-data; name="file"; filename="%s"' \
29 L
.append('Content-Type: %s' % get_content_type(filename
))
31 L
.append(get_file_contents(filename
))
32 L
.append('--' + BOUNDARY
+ '--')
35 content_type
= 'multipart/form-data; boundary=%s' % BOUNDARY
37 return content_type
, body
39 def upload_file(filename
):
40 cookie
= '_rghost_session=BAh7CDoMY3NyZl9pZCIlMjYzMjY4MzBiNGUwNzE0NWI3ODBlODhmNmNmYTk1ZTgiCmZsYXNoSUM6J0FjdGlvbkNvbnRyb2xsZXI6OkZsYXNoOjpGbGFzaEhhc2h7AAY6CkB1c2VkewA6CWxhbmciCnJ1LVJV--bd4e9c60b4a8ccb5a6b9f797bdc07a4265150872'
41 content_type
, body
= encode_multipart_formdata(filename
)
42 header
= httplib
.HTTPConnection('phonon.rghost.ru')
43 header
.putrequest('POST', '/files')
44 header
.putheader('User-Agent', USER_AGENT
)
45 header
.putheader('Cookie',cookie
)
46 header
.putheader('Content-Type', content_type
)
47 header
.putheader('Content-Length', str(len(body
)))
50 #header.set_debuglevel(1)
51 return header
.getresponse()
53 if __name__
== '__main__':
54 filename
= sys
.argv
[1]
55 print upload_file(filename
).getheader('location')