#! /usr/bin/python

import sys

def send_interface (cli_id):
	print '::BEGIN:%s' % (cli_id)
	f = open (sys.argv[1] + 'interface.xml')
	print f.read ()
	f.close ()
	print '::END'
	sys.stdout.flush ()

def send_message (cli_id, msg_id, msg):
	print '::BEGIN:%s' % (cli_id)
	print '<command name="put_line" gadget="messages">' \
		'<arg value="%s: %s" /></command>' % (msg_id, msg)
	print '::END'
	sys.stdout.flush ()

def send_all (users, msg_id, msg):
	for u in users:
		send_message (u[0], msg_id, msg)

def newclient (line, users):
	sid = line[10:].split(' ')[0]
	uname = line[10:].split(' ')[1]

	send_interface (sid)
	if uname == 'guest':
		users.append ((sid, ('guest-%s' % (sid))))
	else:
		users.append ((sid,uname))
	send_all (users, 'system', 'user %s joined' % (users[-1][1]))

def oldclient (line, users):
	sid = line[10:].split(' ')[0]
	uname = line[10:].split(' ')[1]

	users.remove ((sid,uname))
	send_all (users, 'system', 'user %s left' % (uname))

def sidtouser (users, sid):
	for x in users:
		if x[0] == sid:
			return x[1]
	return none

def clidata (line, users):
	sid = line.split(':')[0]
	idx = line.rfind (' usertext:text:"')
	if idx >= 0:
		idx += 16
		ridx = line.find ('"', idx)
		if ridx > 0:
			msg = line[idx:ridx]
			send_all (users, sidtouser (users, sid), msg)

users = []

while 1:
	line = raw_input ()
	if line == "": continue

	if line.startswith ('NEWCLIENT:'):
		newclient (line, users)
	elif line.startswith ('OLDCLIENT:'):
		oldclient (line, users)
	else:
		clidata (line, users)


