Show code - CODE/python/color_parser.py


import string
#'%R' => '\026'
#'%U' => '\037'
#'%B' => '\002'
#'%C' => '\003'
#'%O' => '\017'
color = '\03%s'
reverse = '\026'
restore = '\017'
bold = '\002'
underline = '\036'
feep = '\a'
class color_parser:
'''Class for parsing MUD color codes'''
def __init__( self ):
self.token = None
def fix_colors( self, text ):
buff = ''
size = len(text)
text = text + " "
for num in range(size):
if self.token == '%%':
self.token = None
elif self.token == '%C':
buff = buff + color % text[num]
self.token = "pass"
elif self.token == '%B':
buff = buff + bold
self.token = "pass"
elif self.token == '%U':
buff = buff + underline
self.token = "pass"
elif self.token == '%R':
buff = buff + reverse
self.token = "pass"
elif self.token == '%O':
buff = buff + restore
self.token = "pass"
if text[num] == "%" and self.token == None:
self.token = '%'
elif text[num] == '%' and self.token == '%': # Convert to a single %
self.token = '%%'
elif text[num] == 'C' and self.token == '%': # Color
self.token = '%C'
elif text[num] == 'B' and self.token == '%': # Bold
self.token = '%B'
elif text[num] == 'U' and self.token == "%": # Underline
self.token = '%U'
elif text[num] == 'R' and self.token == '%': # Reverse
self.token = '%R'
elif text[num] == 'O' and self.token == '%': # Restore attributes
self.token = '%O'
if self.token == None:
buff = buff + text[num]
if self.token == "pass":
self.token = None
return buff