#!/usr/bin/python3 import lxml.etree as etree from nitpo import Nitpo class Subscription(Nitpo): def __init__(self, do_verbose=False): """subscriptions""" super().__init__() self.do_verbose = do_verbose def new(self, event): surk_ele = etree.Element('surk', nsmap=self.const['nsmap']) surk_ele.attrib['repcode'] = event['repcode'] surk_ele.attrib['spro'] = 'v' surk_ele.attrib['from'] = event['time'] if 'name' in event: name_ele = etree.SubElement(surk_ele, 'name', nsmap=self.const['nsmap']) name_ele.text = event['name'] return surk_ele def has_it_live(self, doc, repcode): xp = "live/surk[@repcode='" + repcode + "']" got = doc.xpath(xp, nsmap=self.const['nsmap']) if len(got) == 0: return False if len(got) > 1: raise Exception("I can't have several live subscriptions for " + repcode) return True def name_ele(self, doc, repcode): xp = "live/surk[@repcode='" + repcode + "']/name" got = doc.xpath(xp, nsmap=self.const['nsmap']) if len(got) == 0: return False if len(got) > 1: raise Exception("I can't have several live subscriptions for " + repcode) return got[0]