def toDom(self, parentNode, flags=None): fieldNode = XMLIntf.SubElement(parentNode, u"field") XMLIntf.appendTextElements(fieldNode, ((u"Number", unicode(self.FieldNumber)), (u"Name", self.FieldName), (u"Kind", self.Kind), (u"MaxLength", unicode(self.MaxLength))))
def toDom(self, parentNode, flags = None): fieldNode = XMLIntf.SubElement(parentNode, u"field") XMLIntf.appendTextElements(fieldNode, ( (u"Number", unicode(self.FieldNumber)), (u"Name", self.FieldName), (u"Kind", self.Kind), (u"MaxLength", unicode(self.MaxLength)) ))
def toDom(self, parentNode): leaf = XMLIntf.SubElement(parentNode, u"leaf") XMLIntf.appendTextElements(leaf, { "kind": self.BroadcastType, "station-id": self.StationID }) for frequency in self.Frequencies: frequency.toDom(leaf)
def toDom(self, parentNode, flags=None): classNode = XMLIntf.SubElement(parentNode, u"transmission-class") XMLIntf.appendTextElements(classNode, ((u"ID", unicode(self.ID)), (u"DisplayName", self.DisplayName))) tablesNode = XMLIntf.SubElement(classNode, u"tables") for table in self.Tables: table.toDom(tablesNode, flags)
def toDom(self, parentNode, flags=None): tableNode = XMLIntf.SubElement(parentNode, u"table") XMLIntf.appendTextElements(tableNode, (("TableName", self.TableName), ("DisplayName", self.DisplayName), ("XMLGroupClass", self.XMLGroupClass))) fieldsNode = XMLIntf.SubElement(tableNode, u"fields") for field in self.Fields: field.toDom(fieldsNode, flags)
def _metadataToDom(self, parentNode): XMLIntf.appendTextElements(parentNode, ((u"BroadcastID", self.Broadcast.ID), (u"ClassID", self.Class.ID), (u"Callsign", self.Callsign))) self.ForeignCallsign.toDom(parentNode, u"Callsign") XMLIntf.appendDateElement(parentNode, u"Timestamp", self.Timestamp) XMLIntf.appendTextElements(parentNode, ((u"Recording", self.RecordingURL), (u"Remarks", self.Remarks)))
def toDom(self, parentNode, flags = None): classNode = XMLIntf.SubElement(parentNode, u"transmission-class") XMLIntf.appendTextElements(classNode, ( (u"ID", unicode(self.ID)), (u"DisplayName", self.DisplayName) )) tablesNode = XMLIntf.SubElement(classNode, u"tables") for table in self.Tables: table.toDom(tablesNode, flags)
def toDom(self, parentNode, flags = None): tableNode = XMLIntf.SubElement(parentNode, u"table") XMLIntf.appendTextElements(tableNode, ( ("TableName", self.TableName), ("DisplayName", self.DisplayName), ("XMLGroupClass", self.XMLGroupClass) )) fieldsNode = XMLIntf.SubElement(tableNode, u"fields") for field in self.Fields: field.toDom(fieldsNode, flags)
def _metadataToDom(self, parentNode): XMLIntf.appendTextElements(parentNode, ( (u"BroadcastID", self.Broadcast.ID), (u"ClassID", self.Class.ID), (u"Callsign", self.Callsign) ) ) self.ForeignCallsign.toDom(parentNode, u"Callsign") XMLIntf.appendDateElement(parentNode, u"Timestamp", self.Timestamp) XMLIntf.appendTextElements(parentNode, ( (u"Recording", self.RecordingURL), (u"Remarks", self.Remarks) ) )
def toDom(self, parentNode, flags=None): broadcast = XMLIntf.SubElement(parentNode, u"broadcast") XMLIntf.appendTextElement(broadcast, u"ID", unicode(self.ID)) XMLIntf.appendDateElement(broadcast, u"Start", self.BroadcastStart) if self.BroadcastEnd is not None: XMLIntf.appendDateElement(broadcast, u"End", self.BroadcastEnd) XMLIntf.appendTextElements( broadcast, [(u"StationID", unicode(self.StationID)), (u"Type", self.Type), (u"Confirmed", "" if self.Confirmed else None), (u"on-air", "" if self.getIsOnAir() else None), (u"has-transmissions", "" if self.Transmissions.count() > 0 else None)]) for frequency in self.Frequencies: frequency.toDom(broadcast) if flags is not None and "broadcast-transmissions" in flags: for transmission in self.Transmissions: transmission.toDom(broadcast, flags)
def _metadataToDom(self, parentNode): XMLIntf.appendTextElements(parentNode, ( (u"EnigmaIdentifier", self.EnigmaIdentifier), (u"PriyomIdentifier", self.PriyomIdentifier), (u"Nickname", self.Nickname) ) ) subtree = ElementTree.XML((u"<Description>"+self.Description+u"</Description>").encode("utf-8")) XMLIntf.applyNamespace(subtree, XMLIntf.xhtmlNamespace) subtree.tag = u"{{{0}}}Description".format(XMLIntf.namespace) parentNode.append(subtree) XMLIntf.appendTextElements(parentNode, [ (u"Status", self.Status) ], noneHandler = lambda name: u"" ) if self.Location is not None: XMLIntf.appendTextElement(parentNode, u"Location", self.Location) if self.getIsOnAir(): XMLIntf.SubElement(parentNode, u"on-air")
def toDom(self, parentNode, stationId = None): store = Store.of(self) schedule = XMLIntf.SubElement(u"schedule") XMLIntf.appendTextElements(schedule, ( ("id", unicode(self.ID)), ("name", self.Name) ) ) if self.ScheduleKind == u"once": XMLIntf.SubElement(schedule, u"no-repeat") else: XMLIntf.appendTextElement(schedule, u"repeat", unicode(self.Every), attrib={ u"step": self.ScheduleKind, u"skip": unicode(self.Skip) }) start = datetime.datetime.fromtimestamp(self.StartTimeOffset) start = start - datetime.timedelta(hours=1) end = None if self.EndTimeOffset is not None: end = datetime.datetime.fromtimestamp(self.EndTimeOffset) end = end - datetime.timedelta(hours=1) else: end = datetime.datetime.fromtimestamp(0) startStr, endStr = { "once": self._formatOnce(start, end), "year": self._formatYear(start, end), "month": self._formatMonth(start, end), "week": self._formatWeek(start, end), "day": self._formatDay(start, end), "hour": self._formatHour(start, end) }[self.ScheduleKind] XMLIntf.appendTextElement(schedule, u"start-offset", startStr, attrib={ u"seconds": unicode(self.StartTimeOffset) }) if self.EndTimeOffset is not None: XMLIntf.appendTextElement(schedule, u"end-offset", endStr, attrib={ u"seconds": unicode(self.EndTimeOffset) }) schedules = XMLIntf.SubElement(schedule, u"schedules") for _schedule in self.Children: _schedule.toDom(schedules, stationId) leaves = XMLIntf.SubElement(schedule, u"leaves") if stationId is not None: leavesSelect = store.find(ScheduleLeaf, (ScheduleLeaf.StationID == stationId) and (ScheduleLeaf.ScheduleID == self.ID)) for leaf in leavesSelect: leaf.toDom(leaves) else: for leaf in self.Leaves: leaf.toDom(leaves) return schedule
def toDom(self, parentNode, stationId=None): store = Store.of(self) schedule = XMLIntf.SubElement(u"schedule") XMLIntf.appendTextElements(schedule, (("id", unicode(self.ID)), ("name", self.Name))) if self.ScheduleKind == u"once": XMLIntf.SubElement(schedule, u"no-repeat") else: XMLIntf.appendTextElement(schedule, u"repeat", unicode(self.Every), attrib={ u"step": self.ScheduleKind, u"skip": unicode(self.Skip) }) start = datetime.datetime.fromtimestamp(self.StartTimeOffset) start = start - datetime.timedelta(hours=1) end = None if self.EndTimeOffset is not None: end = datetime.datetime.fromtimestamp(self.EndTimeOffset) end = end - datetime.timedelta(hours=1) else: end = datetime.datetime.fromtimestamp(0) startStr, endStr = { "once": self._formatOnce(start, end), "year": self._formatYear(start, end), "month": self._formatMonth(start, end), "week": self._formatWeek(start, end), "day": self._formatDay(start, end), "hour": self._formatHour(start, end) }[self.ScheduleKind] XMLIntf.appendTextElement( schedule, u"start-offset", startStr, attrib={u"seconds": unicode(self.StartTimeOffset)}) if self.EndTimeOffset is not None: XMLIntf.appendTextElement( schedule, u"end-offset", endStr, attrib={u"seconds": unicode(self.EndTimeOffset)}) schedules = XMLIntf.SubElement(schedule, u"schedules") for _schedule in self.Children: _schedule.toDom(schedules, stationId) leaves = XMLIntf.SubElement(schedule, u"leaves") if stationId is not None: leavesSelect = store.find(ScheduleLeaf, (ScheduleLeaf.StationID == stationId) and (ScheduleLeaf.ScheduleID == self.ID)) for leaf in leavesSelect: leaf.toDom(leaves) else: for leaf in self.Leaves: leaf.toDom(leaves) return schedule