~unity-2d-team/unity-2d/Shell-MultiMonitor

6 by Aaron Bentley
Use constants.
1
import httplib
6.1.1 by Aaron Bentley
Fix URLs etc.
2
from urlparse import urlunparse
3
from urllib import quote
4
5
6
def message_path(archive_name, message_id):
7
    return '/%s/%s' % (quote(archive_name), quote(message_id))
8
9
10
class GrackleClient:
11
12
    def __init__(self, host, port):
13
        self.host = host
14
        self.port = port
15
16
    def message_url(self, archive_name, message_id):
17
        netloc = '%s:%d' % (self.host, self.port)
18
        path = message_path(archive_name, message_id)
19
        return urlunparse(('http', netloc, path, '', '', ''))
20
21
    def put_message(self, archive_name, message_id, file_obj):
22
        url = self.message_url(archive_name, message_id)
23
        connection = httplib.HTTPConnection(self.host, self.port)
24
        connection.request('PUT', url, file_obj.read())
25
        response = connection.getresponse()
26
        data = response.read()
27
        if response.status == httplib.BAD_REQUEST:
28
            raise Exception('wtf')
29
        elif response.status == httplib.CREATED:
30
            return
31
        else:
32
            raise Exception('!!')