1 # -*- coding: iso-8859-1 -*- 2 """ 3 MoinMoin - event (EventAggregator) 4 5 @copyright: 2012 by Paul Boddie <paul@boddie.org.uk> 6 @license: GNU GPL (v2 or later), see COPYING.txt for details. 7 """ 8 9 from EventAggregatorSupport import * 10 11 Dependencies = ["pages"] 12 13 # Parser support. 14 15 class Parser: 16 17 "Interpret and show event information in different ways." 18 19 Dependencies = Dependencies 20 extensions = [] 21 22 # Output content types preferred by this parser. 23 24 output_mimetypes = ["text/html", "text/calendar"] 25 26 def __init__(self, raw, request, **kw): 27 28 """ 29 Initialise the parser with the given 'raw' data, 'request' and any 30 keyword arguments that may have been supplied. 31 """ 32 33 self.raw = raw 34 self.request = request 35 #self.attrs = parseAttributes(kw.get("format_args", ""), False) 36 37 def format(self, fmt): 38 39 "Format an event using the given formatter 'fmt'." 40 41 events = parseEvents(self.raw, self.request.page) 42 43 for event in events: 44 formatEvent(event, self.request, fmt) 45 46 # Extra API methods. 47 48 def formatText(self, text, mimetype): 49 50 "Format the event 'text' for the given 'mimetype'." 51 52 events = parseEvents(text) 53 formatEventsForOutputType(events, self.request, mimetype) 54 55 # Class methods. 56 57 def getOutputTypes(self): 58 return self.output_mimetypes 59 60 getOutputTypes = classmethod(getOutputTypes) 61 62 # vim: tabstop=4 expandtab shiftwidth=4