#!/usr/bin/python

import time
import cgi
import socket
import os
import sys
from HTTPPush import *

sname = "/tmp/webchatsrv"

def sucker(parms):
    s = socket.socket(socket.AF_UNIX)
    s.connect(sname)
    s.send(parms.getvalue("data")+"\nEND\n")
    print "Content-Type: text/plain\n\nOK";

def pusher():
    # Connect to chat server
    s = socket.socket(socket.AF_UNIX)
    try:
        s.connect(sname)
    except socket.error:
        # Start server
        os.system("./chatsrv.py")
        time.sleep(3)
        s.connect(sname)
    s.send("SESSION\n")

    # Make pusher
    hp = HTTPPush()

    # Propagate from server to client
    buf = ""
    while True:
        msg = s.recv(65536)
        if len(msg) == 0:
            # End it
            sys.exit()
            
        buf += msg
        msg = buf
        while re.search("\nEND\n", msg):
            m = re.search("\nEND\n", msg)
            hp.push(msg[0:m.start()])
            msg = msg[m.end():]
        buf = msg

# What to do
parms = cgi.FieldStorage()
if parms.getvalue("pushtype"):
    pusher()
else:
    sucker(parms)

