1.1 --- a/EventAggregatorSupport/Types.py Wed May 01 01:44:54 2013 +0200
1.2 +++ b/EventAggregatorSupport/Types.py Wed May 01 15:50:34 2013 +0200
1.3 @@ -8,10 +8,12 @@
1.4 @license: GNU GPL (v2 or later), see COPYING.txt for details.
1.5 """
1.6
1.7 +from DateSupport import DateTime
1.8 from GeneralSupport import to_list
1.9 from LocationSupport import getMapReference
1.10 from MoinSupport import *
1.11
1.12 +from email.utils import parsedate
1.13 import re
1.14
1.15 try:
1.16 @@ -185,11 +187,28 @@
1.17
1.18 "An iCalendar resource."
1.19
1.20 - def __init__(self, url, calendar):
1.21 + def __init__(self, url, calendar, metadata):
1.22 EventResource.__init__(self, url)
1.23 self.calendar = calendar
1.24 + self.metadata = metadata
1.25 self.events = None
1.26
1.27 + if not self.metadata.has_key("created") and self.metadata.has_key("date"):
1.28 + self.metadata["created"] = DateTime(parsedate(self.metadata["date"])[:7])
1.29 +
1.30 + if self.metadata.has_key("last-modified") and not isinstance(self.metadata["last-modified"], DateTime):
1.31 + self.metadata["last-modified"] = DateTime(parsedate(self.metadata["last-modified"])[:7])
1.32 +
1.33 + def getMetadata(self):
1.34 +
1.35 + """
1.36 + Return a dictionary containing items describing the page's "created"
1.37 + time, "last-modified" time, "sequence" (or revision number) and the
1.38 + "last-comment" made about the last edit.
1.39 + """
1.40 +
1.41 + return self.metadata
1.42 +
1.43 def getEvents(self):
1.44
1.45 "Return a list of events from this resource."
1.46 @@ -710,9 +729,11 @@
1.47 "last-comment" made about the last edit.
1.48 """
1.49
1.50 + metadata = self.page.getMetadata()
1.51 +
1.52 return {
1.53 - "created" : self.details.get("created") or self.details["dtstamp"],
1.54 - "last-modified" : self.details.get("last-modified") or self.details["dtstamp"],
1.55 + "created" : self.details.get("created") or self.details.get("dtstamp") or metadata["created"],
1.56 + "last-modified" : self.details.get("last-modified") or self.details.get("dtstamp") or metadata["last-modified"],
1.57 "sequence" : self.details.get("sequence") or 0,
1.58 "last-comment" : ""
1.59 }