1 """
   2     MoinMoin - SecondLife Chat Parser version 0.1
   3 
   4     @copyright: 2006 by Thilo Pfennig
   5     based on IRC parser by Thomas Waldmann (2004)
   6     @license: GNU GPL, see COPYING for details.
   7 """
   8 
   9 import re
  10 from MoinMoin import wikiutil
  11 
  12 
  13 class Parser:
  14     """
  15         Send Secondlife Chat log in a table
  16     """
  17     extensions = ['.sl']
  18     Dependencies = []
  19 
  20     def __init__(self, raw, request, **kw):
  21         self.raw = raw
  22         self.request = request
  23         self.form = request.form
  24         self._ = request.getText
  25         self.out = kw.get('out', request)
  26 
  27  
  28     def format(self, formatter):
  29         lines = self.raw.split('\n')
  30         # TODO: Add support for displaying things like join and part messages.
  31         pattern = re.compile(r"""
  32             (?P<nick>.*?):        # Nick
  33             \s+                   # Space between the nick and message
  34             (?P<msg>.*)           # Message
  35         """, re.VERBOSE + re.UNICODE)
  36         self.out.write(formatter.table(1))
  37         for line in lines:
  38             match = pattern.match(line)
  39             if match:
  40                 self.out.write(formatter.table_row(1))
  41                 for g in ('nick', 'msg'):
  42                     self.out.write(formatter.table_cell(1))
  43                     self.out.write(formatter.text(match.group(g) or ''))
  44                     self.out.write(formatter.table_cell(0))
  45                 self.out.write(formatter.table_row(0))
  46         self.out.write(formatter.table(0))

MoinMoin: parser/slchat.py (last edited 2007-10-29 19:07:19 by localhost)