Пример #1
0
 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))))
Пример #2
0
 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))
     ))
Пример #3
0
 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)
Пример #4
0
 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)
Пример #5
0
    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)
Пример #6
0
    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)
Пример #7
0
 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)))
Пример #8
0
    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)
Пример #9
0
    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)
Пример #10
0
 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)
         )
     )
Пример #11
0
    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)
Пример #12
0
 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")
Пример #13
0
 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
Пример #14
0
    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