1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1.2 +++ b/parsers/event.py Wed Jul 11 00:46:55 2012 +0200
1.3 @@ -0,0 +1,62 @@
1.4 +# -*- coding: iso-8859-1 -*-
1.5 +"""
1.6 + MoinMoin - event (EventAggregator)
1.7 +
1.8 + @copyright: 2012 by Paul Boddie <paul@boddie.org.uk>
1.9 + @license: GNU GPL (v2 or later), see COPYING.txt for details.
1.10 +"""
1.11 +
1.12 +from EventAggregatorSupport import *
1.13 +
1.14 +Dependencies = ["pages"]
1.15 +
1.16 +# Parser support.
1.17 +
1.18 +class Parser:
1.19 +
1.20 + "Interpret and show event information in different ways."
1.21 +
1.22 + Dependencies = Dependencies
1.23 + extensions = []
1.24 +
1.25 + # Output content types preferred by this parser.
1.26 +
1.27 + output_mimetypes = ["text/html", "text/calendar"]
1.28 +
1.29 + def __init__(self, raw, request, **kw):
1.30 +
1.31 + """
1.32 + Initialise the parser with the given 'raw' data, 'request' and any
1.33 + keyword arguments that may have been supplied.
1.34 + """
1.35 +
1.36 + self.raw = raw
1.37 + self.request = request
1.38 + #self.attrs = parseAttributes(kw.get("format_args", ""), False)
1.39 +
1.40 + def format(self, fmt):
1.41 +
1.42 + "Format an event using the given formatter 'fmt'."
1.43 +
1.44 + events = parseEvents(self.raw, self.request.page)
1.45 +
1.46 + for event in events:
1.47 + formatEvent(event, self.request, fmt)
1.48 +
1.49 + # Extra API methods.
1.50 +
1.51 + def formatText(self, text, mimetype):
1.52 +
1.53 + "Format the event 'text' for the given 'mimetype'."
1.54 +
1.55 + events = parseEvents(text)
1.56 + formatEventsForOutputType(events, self.request, mimetype)
1.57 +
1.58 + # Class methods.
1.59 +
1.60 + def getOutputTypes(self):
1.61 + return self.output_mimetypes
1.62 +
1.63 + getOutputTypes = classmethod(getOutputTypes)
1.64 +
1.65 +# vim: tabstop=4 expandtab shiftwidth=4