~azzar1/unity/add-show-desktop-key

« back to all changes in this revision

Viewing changes to www/apps/consoleservice/__init__.py

  • Committer: mattgiuca
  • Date: 2008-01-23 06:55:12 UTC
  • Revision ID: svn-v3-trunk0:2b9c9e99-6f39-0410-b283-7f802c844ae2:trunk:276
Console now runs inside IVLE (without requiring an IFRAME). The separate
console server is still spawned, but the client never directly communicates
with it.

apps/console: Writes the HTML code for the actual console (the 2 text boxes),
    instead of just a contained div for the IFRAME.

media/console/console.js:
    Removed code to create IFRAME and link to console server.
    Incorporated Tom's console.js code from trunk/console/console.js.
    Modified this code to:
        a) Use functions from util.js, such as make_query_string and
            ajax_call.
        b) Talk to consoleservice/chat instead of the console server.
        c) Pass host and port as arguments (needed by IVLE to talk to the
            console server).
    Also had the "startup" code save the host, port and magic, needed for
    communication with the console server.

media/console/console.css: Added CSS file (derived from Tom's inline CSS in
    the original index.html).

apps/consoleservice: Fixed bugs which caused the wrong text to be sent, and
    also avoid throwing an error for empty text.

Note that trunk/console will still serve the HTML, JavaScript and CSS files if
needed. The next step is to make this just a service and not actually a web
server as well.

Show diffs side-by-side

added added

removed removed

Lines of Context:
101
101
        host = fields.getfirst("host").value
102
102
        port = fields.getfirst("port").value
103
103
        digest = fields.getfirst("digest").value
 
104
    except AttributeError:
 
105
        # Any of the getfirsts returned None
 
106
        req.throw_error(req.HTTP_BAD_REQUEST)
 
107
    # If text is None, it was probably just an empty line
 
108
    try:
104
109
        text = fields.getfirst("text").value
105
110
    except AttributeError:
106
 
        # Any of the getfirsts returned None
107
 
        req.throw_error(req.HTTP_BAD_REQUEST)
 
111
        text = ""
108
112
 
109
113
    # Open an HTTP connection
110
114
    url = ("http://" + urllib.quote(host) + ":" + urllib.quote(port)
111
115
            + "/chat");
112
116
    body = ("digest=" + urllib.quote(digest)
113
 
            + "&text=" + urllib.quote(text) + '\n\n')
 
117
            + "&text=" + urllib.quote(text))
114
118
    headers = {"Content-Type": "application/x-www-form-urlencoded"}
115
119
    try:
116
120
        conn = httplib.HTTPConnection(host, port)
117
 
        conn.request("POST", url, body, headers)
118
 
 
119
 
        response = conn.getresponse()
120
 
        
121
 
        req.status = response.status
122
 
        # NOTE: Ignoring arbitrary headers returned by the server
123
 
        # Probably not necessary to proxy them
124
 
        req.content_type = response.getheader("Content-Type", "text/plain")
125
 
        req.write(response.read())
126
 
        conn.close()
127
121
    except:
128
122
        req.throw_error(req.HTTP_BAD_REQUEST)
 
123
    conn.request("POST", url, body, headers)
 
124
 
 
125
    response = conn.getresponse()
 
126
    
 
127
    req.status = response.status
 
128
    # NOTE: Ignoring arbitrary headers returned by the server
 
129
    # Probably not necessary to proxy them
 
130
    req.content_type = response.getheader("Content-Type", "text/plain")
 
131
    req.write(response.read())
 
132
    conn.close()