コード例 #1
0
 def __init__(self, doc, options):
     note("processing card %s", doc.fn.value)
     note(4, "card data is %s", doc.prettyPrint())
     self.pdffile = None
     FakePDFDoc.__init__(self, doc, options)
     self.checkocr = false
     self.__options = options.copy()
     self.__card = doc
     self.__timestamp = None
     rev = doc.contents.get("REV") or []
     if rev:
         timestamps = []
         for x in rev:
             # v is a timestamp
             try:
                 timestamp = time.strptime(x.value, "%Y%m%dT%H%M%SZ")
                 timestamps.append(timestamp)
             except:
                 try:
                     timestamp = time.strptime(x.value, "%Y%m%d")
                     timestamps.append(timestamp)
                 except:
                     pass
         timestamps.sort()
         self.__timestamp = timestamps[-1]
コード例 #2
0
 def __init__(self, identifier, options):
     note("processing event %s", identifier)
     self.pdffile = None
     self.__event = options.get("icsevent")
     FakePDFDoc.__init__(self, identifier, options)
     if not isinstance(self.__event, vobject.base.Component):
         note("self.__event is not a Component!  %s, %s", repr(self.__event), repr(type(self.__event)))
     if self.__event.behavior != vobject.icalendar.VEvent:
         note("self.__event.behavior is not a VEvent!  %s, %s", repr(self.__event.behavior), repr(type(self.__event.behavior)))
     assert(isinstance(self.__event, vobject.base.Component) and
            (self.__event.behavior == vobject.icalendar.VEvent))
     self.checkocr = false
     self.__options = options.copy()
     self.__timestamp = None
     self.__uid = options.get("icsuid")
     self.__name = options.get("icsname")
     rev = self.__event.contents.get("REV") or []
     if rev:
         timestamps = []
         for x in rev:
             # v is a timestamp
             try:
                 timestamp = time.strptime(x.value, "%Y%m%dT%H%M%SZ")
                 timestamps.append(timestamp)
             except:
                 try:
                     timestamp = time.strptime(x.value, "%Y%m%d")
                     timestamps.append(timestamp)
                 except:
                     pass
         timestamps.sort()
         self.__timestamp = timestamps[-1]
     contents = self.__event.contents
     self.metadata["event-uid"] = self.__uid
     if self.__name != self.__uid:
         self.metadata["title"] = self.__name
     if self.__timestamp:
         self.metadata['revision-timestamp'] = time.strftime("%Y%m%dT%H%M%SZ", self.__timestamp)
     if 'dtstart' in contents:
         start = self.__event.dtstart.value
         self.metadata["date"] = "%d/%d/%s" % (start.month, start.day, start.year)
         self.metadata["event-start"] = start.isoformat()
         if 'dtend' in contents:
             end = self.__event.dtend.value
             duration = end - start
             duration = (duration.days * SECONDS_PER_DAY) + duration.seconds
             self.metadata['duration'] = str(duration)
             self.metadata['event-end'] = end.isoformat()
     elif 'dtend' in contents:
         end = self.__event.dtend.value
         self.metadata["date"] = "%m/%d/%Y" % (end.month, end.day, end.year)
         self.metadata['event-end'] = end.isoformat()
     if 'location' in contents:
         self.metadata["location"] = re.sub("\s", " ", self.__event.location.value)
     if 'description' in contents:
         self.metadata["summary"] = re.sub("\s", " ", self.__event.description.value)
コード例 #3
0
 def write_metadata(self):
     d = self.doc.contents
     if 'fn' in d:
         self.metadata['title'] = d['fn'][0].value + ' (contact info)'
     elif 'org' in d:
         self.metadata['title'] = ', '.join(d['org'][0].value) + ' (contact info)'
     if self.__timestamp:
         self.metadata['date'] = '%s/%s/%s' % (self.__timestamp[1],
                                               self.__timestamp[2],
                                               self.__timestamp[0])
         self.metadata['revision-timestamp'] = time.strftime("%Y%m%dT%H%M%SZ", self.__timestamp)
     FakePDFDoc.write_metadata(self)
コード例 #4
0
 def write_metadata(self):
     FakePDFDoc.write_metadata(self)
コード例 #5
0
 def calculate_document_fingerprint(self):
     return self.metadata.get("sha-hash") or FakePDFDoc.calculate_document_fingerprint(self)