Python xml.sax.saxutils 模块,unescape() 实例源码

我们从Python开源项目中,提取了以下42个代码示例,用于说明如何使用xml.sax.saxutils.unescape()

项目:mongodb_backup_script    作者:hxt168    | 项目源码 | 文件源码
def __init__(self, xml_string):
        self.xml_unescape_table = {}
        self.xml_map = {}
        try:
            self.xml = minidom.parseString(xml_string)
        except:
            print xml_string
            self.xml_unescape_tabl = get_xml_unescape_table()
            self.xml_map = get_xml_unescape_map()
            for k, v in self.xml_map.items():
                xml_string = xml_string.replace(k, v)
            self.xml = minidom.parseString(xml_string)
        self.bucket = get_tag_text(self.xml, 'Bucket', convert_to_bool = False)
        self.object = get_tag_text(self.xml, 'Key', convert_to_bool = False)
        if self.xml_map:
            for k, v in self.xml_map.items():
                self.object = self.object.replace(v, k)
            self.object = unescape(self.object, self.xml_unescape_table)
        self.key = get_tag_text(self.xml, 'Key', convert_to_bool = False)
        self.upload_id = get_tag_text(self.xml, 'UploadId')
        self.marker = get_tag_text(self.xml, 'Marker', convert_to_bool = False)
项目:audio-feeder    作者:pganssle    | 项目源码 | 文件源码
def wrap_field(field):
    """
    Given a field, detect if it has special characters <, > or & and if so
    wrap it in a CDATA field.
    """
    if not isinstance(field, str):
        return field

    if html_chars.search(field):
        return '<![CDATA[' + field + ']]>'
    else:
        # If there's already escaped data like &amp;, I want to unescape it
        # first, so I can re-escape *everything*
        field = saxutils.unescape(field)

        return saxutils.escape(field)
项目:cuny-bdif    作者:aristotle-tek    | 项目源码 | 文件源码
def test_single_download(self):
        self.set_http_response(status_code=200)
        response = self.service_connection.get_log_file('db1', 'foo.log')

        self.assertTrue(isinstance(response, LogFileObject))
        self.assertEqual(response.marker, '0:4485')
        self.assertEqual(response.dbinstance_id, 'db1')
        self.assertEqual(response.log_filename, 'foo.log')

        self.assertEqual(response.data, saxutils.unescape(self.logfile_sample))

        self.assert_request_parameters({
            'Action': 'DownloadDBLogFilePortion',
            'DBInstanceIdentifier': 'db1',
            'LogFileName': 'foo.log',
        }, ignore_params_values=['Version'])
项目:taf    作者:taf3    | 项目源码 | 文件源码
def append_skipped(self, report):
        """Append xml reports with skipped TC.

        Args:
            report(dict):  Skipped report

        """
        self.class_logger.info("Appending XML report with skip.")
        # filename, lineno, skipreason = report['longrepr']
        # self.class_logger.debug("Received longrepr: {0}".format(xml_unescape(report['longrepr'])))
        longrepr = xml_unescape(report['longrepr'])
        # TODO: fixed bug with longrepr crashing
        skipreason = get_skipped_reason(report['longrepr'])
        self.append(self.Junit.skipped("%s" % longrepr,  # pylint: disable=no-member
                                       type="pytest.skip", message=skipreason))
#        self.append(self.Junit.skipped("%s:%s: %s" % longrepr, type="pytest.skip", message=skipreason))
        self.skipped += 1
项目:beremiz    作者:nucleron    | 项目源码 | 文件源码
def GetAttributeValue(attr, extract=True):
    """
    Function that extracts data from a tree node
    @param attr: tree node containing data to extract
    @param extract: attr is a tree node or not
    @return: data extracted as string
    """
    if not extract:
        return attr
    if len(attr.childNodes) == 1:
        return unicode(unescape(attr.childNodes[0].data))
    else:
        # content is a CDATA
        text = u''
        for node in attr.childNodes:
            if not (node.nodeName == "#text" and node.data.strip() == u''):
                text += unicode(unescape(node.data))
        return text
项目:Deploy_XXNET_Server    作者:jzp820927    | 项目源码 | 文件源码
def SendReport(self, report):
    """Emails an exception report.

    Args:
      report: A string containing the report to send.
    """
    subject = ('Daily exception report for app "%s", major version "%s"'
               % (self.app_id, self.major_version))
    report_text = saxutils.unescape(re.sub('<[^>]+>', '', report))
    mail_args = {
        'sender': self.sender,
        'subject': subject,
        'body': report_text,
        'html': report,
    }
    if self.to:
      mail_args['to'] = self.to
      self.send_mail(**mail_args)
    else:
      self.send_mail_to_admins(**mail_args)
项目:murderbot    作者:glubbert    | 项目源码 | 文件源码
def quiz_func(nick,match,target):
    if 'quiz' in mb.responses:
        mb.tell("weak! the answer was "+mb.responses['quiz']['param']['answer'],target)
        del mb.responses['quiz']
    req=urllib2.Request('http://jservice.io/api/random')
    response=urllib2.urlopen(req).read().decode('utf-8')
    data=choice(json.loads(response))
    answer=re.sub(html_tags,"",data['answer'])
    answer=answer.replace(r"\'","'")    
    answer=unescape(answer)
    mb.tell("Category: {}".format(data['category']['title']),target)
    mb.tell(re.sub(html_tags,"",unescape(data['question']))+" Answer: "+re.sub("[a-zA-Z0-9]","*",answer),target)            
    pattern=re.compile("^(?:murderb[o0]t|mb)?[,\s:!]*"+re.escape(answer)+"\s*$",flags=re.IGNORECASE)
    answer_response={'func':quiz_answer,'pattern':pattern,'nick':".*",'param':{'answer':answer},'target':target}
    mb.responses['quiz']=answer_response
    print(data['question'])
    print(data['answer'])
    return
项目:legal    作者:tompecina    | 项目源码 | 文件源码
def s2i(keys, inp, out):

    for key in keys:
        ind = inp.find(key)
        if ind:
            typ = TYPES[key]
            if ind.contents:
                val = ind.contents[0].strip()
                try:
                    if typ == B:
                        res = (val == 'true')
                    elif typ == S:
                        res = str(unescape(val))
                    elif typ == I:
                        res = int(round(float(c2p(str(val)))))
                    else:
                        res = float(c2p(str(val)))
                    out.__setattr__(key, res)
                except:
                    pass
项目:deviation-manual    作者:DeviationTX    | 项目源码 | 文件源码
def __init__(self, *args, **kwargs):
        # The inicialization is taken from rst2pdf.flowables.Heading
        hstyle = kwargs.pop('hstyle')
        level = 0
        text = kwargs.pop('text')
        self.snum = kwargs.pop('snum')
        self.parent_id= kwargs.pop('parent_id')
        #self.stext = 
        Heading.__init__(self,text,hstyle,level=level,
            parent_id=self.parent_id)
        # Cleanup title text
        #self.stext = re.sub(r'<[^>]*?>', '', unescape(self.stext))
        #self.stext = self.stext.strip()

        # Stuff needed for the outline entry
        MyImage.__init__(self, *args, **kwargs)
项目:enigma2-plugins    作者:opendreambox    | 项目源码 | 文件源码
def getWeatherReport(self,output):
        self.loadinginprogress = False
        trans = { '&szlig;' : 'ß' , '&auml;' : 'ä' , '&ouml;' : 'ö' , '&uuml;' : 'ü' , '&Auml;' : 'Ä', '&Ouml;' : 'Ö' , '&Uuml;' : 'Ü'}
        output= util.unescape(output,trans)
        if self.land == "de":
            startpos = output.find('<!-- Anfang msg_Box Content -->')
            endpos = output.find('<!-- Ende msg_Box Content -->')
            bereich = output[startpos:endpos]
            bereich = bereich.replace('<strong>', '\n')
        else:
            startpos = output.find('<div class="content"')
            endpos = output.find('</div>', startpos)
            bereich = output[startpos:endpos]

        bereich = sub('<br\s*/?>',"\n",bereich)
        bereich = sub('<[^>]*>',"",bereich)
        bereich = sub('Fronten- und Isobarenkarte.*',"",bereich)
        bereich = bereich.strip()
        bereich = sub("\n[\s\n]+", "\n\n", bereich)

        f = open(self.reportfile, "w")
        f.write("%s" % bereich)
        f.close()
        self.session.open(Console,_("Warnlagebericht"),["cat %s" % self.reportfile])
项目:txt2evernote    作者:Xunius    | 项目源码 | 文件源码
def HTMLUnescape(text):
        return unescape(text, Editor.getHtmlUnescapeTable())
项目:mongodb_backup_script    作者:hxt168    | 项目源码 | 文件源码
def list(self):
        cl = []
        pl = []
        for c in self.content_list:
            key = c.key
            if self.xml_map:
                for k, v in self.xml_map.items():
                    key = key.replace(v, k)
                key = unescape(key, self.xml_unescape_table)
            cl.append((key, c.last_modified, c.etag, c.size, c.owner.id, c.owner.display_name, c.storage_class))
        for p in self.prefix_list:
            pl.append(p)

        return (cl, pl)
项目:mongodb_backup_script    作者:hxt168    | 项目源码 | 文件源码
def list(self):
        cl = []
        pl = []
        for c in self.content_list:
            key = c.key
            if self.xml_map:
                for k, v in self.xml_map.items():
                    key = key.replace(v, k)
                key = unescape(key, self.xml_unescape_table)
            cl.append((key, c.upload_id, c.init_time))
        for p in self.prefix_list:
            pl.append(p)

        return (cl, pl)
项目:sublime-text-3-packages    作者:nickjj    | 项目源码 | 文件源码
def replace_entity(match):
        """Return the character corresponding to an HTML entity."""
        number = match.group(2)

        if number:
            hex = match.group(1) is not None
            result = chr(int(number, 16 if hex else 10))
        else:
            entity = match.group(3)
            result = unescape(entity, html.entities.html5)

        return result
项目:abusehelper    作者:Exploit-install    | 项目源码 | 文件源码
def unescape(string):
    """
    >>> unescape("one&nbsp;<![CDATA[two&nbsp;]]>three")
    'one two&nbsp;three'
    """

    result = list()

    for index, data in enumerate(cdata.split(string)):
        if index % 3 != 2:
            data = _unescape(data, {"&nbsp;": " "})
        result.append(data)

    return "".join(result)
项目:coursera-downloader    作者:yingchi    | 项目源码 | 文件源码
def unescape_html(s):
    h = html_parser.HTMLParser()
    s = h.unescape(s)
    s = unquote_plus(s)
    return unescape(s, HTML_UNESCAPE_TABLE)
项目:coursera-downloader    作者:yingchi    | 项目源码 | 文件源码
def clean_filename(s, minimal_change=False):
    """
    Sanitize a string to be used as a filename.
    If minimal_change is set to true, then we only strip the bare minimum of
    characters that are problematic for filesystems (namely, ':', '/' and
    '\x00', '\n').
    """

    # First, deal with URL encoded strings
    h = html_parser.HTMLParser()
    s = h.unescape(s)
    s = unquote_plus(s)

    # Strip forbidden characters
    s = (
        s.replace(':', '-')
        .replace('/', '-')
        .replace('\x00', '-')
        .replace('\n', '')
    )

    if minimal_change:
        return s

    s = s.replace('(', '').replace(')', '')
    s = s.rstrip('.')  # Remove excess of trailing dots

    s = s.strip().replace(' ', '_')
    valid_chars = '-_.()%s%s' % (string.ascii_letters, string.digits)
    return ''.join(c for c in s if c in valid_chars)
项目:jumpscale_portal    作者:jumpscale7    | 项目源码 | 文件源码
def unescape(self, text):
        return unescape(text, html_unescape_table)
项目:alfred-alarmcom    作者:schwark    | 项目源码 | 文件源码
def get(self, unescape = False):
        ele_tree = ElementTree.Element('items')
        for item in self.items:
            ele_tree.append(item.getXMLElement())
        res = ElementTree.tostring(ele_tree) #! ????encoding='utf-8'????????????????alfred????
        if unescape:
            return saxutils.unescape(res)
        return res
项目:lawsofindia    作者:sushant354    | 项目源码 | 文件源码
def get_unescaped_data(xmlNode):
    return saxutils.unescape(xmlNode.childNodes[0].data)
项目:lawsofindia    作者:sushant354    | 项目源码 | 文件源码
def get_data(xmlnode):
    data = []

    for childnode in xmlnode.childNodes:
        if childnode.nodeType == Node.ELEMENT_NODE:
            data.append(get_data(childnode))
        elif childnode.nodeType == Node.TEXT_NODE:
            data.append(saxutils.unescape(childnode.data))

    return u''.join(data)
项目:taf    作者:taf3    | 项目源码 | 文件源码
def append_error(self, report, when=""):
        """Append xml report with error (in case TC failed on setup or teardown).

        Args:
            report(dict):  Error report
            when(str):  Error occurance stage (setup|call|teardown)

        """
        self.class_logger.info("Appending XML report with error.")
        if 'longrepr' in list(report.keys()):
            longrepr = xml_unescape(report['longrepr'])
            if self.fail_traceback is not None:
                failure_reason = None
                if len(self.tests[-1]) > 0:
                    failure_reason = self.tests[-1].pop()
                if self.update is not None and len(self.tests[-1]) > 0:
                    self.tests[-1].pop()
                    try:
                        self.tests[-1].pop()
                    except IndexError:
                        pass
                self.append(
                    self.Junit.error(longrepr,  # pylint: disable=no-member
                                     message="Test error on %s and Test failure" % (when, )))
                if hasattr(failure_reason.attr, "message") and failure_reason.attr.message == "Failure Reason":
                    self.tests[-1].append(failure_reason)
                self.tests[-1][0].extend("\n" + "-" * 80 + "\nTest Case Failure\n" + "-" * 80 + "\n")
                self.tests[-1][0].extend(self.fail_traceback)
            else:
                self.append(
                    self.Junit.error(longrepr,  # pylint: disable=no-member
                                     message="Test error on %s" % (when, )))
        self.errors += 1
        self.failed += 1
项目:taf    作者:taf3    | 项目源码 | 文件源码
def append_xfail(self, report):
        """Append xml report with xfailed TC.

        Args:
            report(dict):  XFail report

        """
        self.class_logger.info("Appending XML report with xfail.")
        self.append(
            self.Junit.skipped(str(xml_unescape(report['keywords']['xfail'])),  # pylint: disable=no-member
                               message="expected test failure"))
项目:taf    作者:taf3    | 项目源码 | 文件源码
def append_failure(self, report):
        """Append xml report with failed TC.

        Args:
            report(dict):  Failure report

        """
        self.class_logger.info("Appending XML report with fail.")
        report['sections'] = [xml_unescape(section) for section in report['sections']]  # pylint: disable=no-member
        sec = dict(report['sections'])
        self.fail_traceback = self.Junit.failure(message="Test failure")  # pylint: disable=no-member
        # Removing BASH escape symbols (decolorizing)
        # longrepr = xml_unescape(re_sub(r"\x1b.*?m", "", report['longrepr']))
        longrepr = xml_unescape(report['longrepr'])
        # TODO: Change str to encode for unicode text

        try:
            self.fail_traceback.append(str(longrepr))
        except UnicodeEncodeError as err:
            self.fail_traceback.append(ud.normalize('NFKD', longrepr))
            self.class_logger.warning("Unicode data in traceback: %s" % (err, ))

        self.append(self.fail_traceback)

        for name in ("out", "err"):
            content = sec.get("Captured std{0}".format(name))
            if content:
                tag = getattr(self.Junit, "system-{0}".format(name))
                self.append(tag(content))
        self.failed += 1
项目:bernard    作者:leviroth    | 项目源码 | 文件源码
def _transform_page(self, content):
        content = unescape(content)
        for placeholder, buffer in self.placeholder_dict.items():
            new_text = ", ".join([placeholder] + buffer)
            content = content.replace(placeholder, new_text)
        return content
项目:tichu-tournament    作者:aragos    | 项目源码 | 文件源码
def unquote(txt):
    from xml.sax.saxutils import unescape
    return unescape(txt, {"&apos;": "'", "&quot;": '"'})
项目:sublimeTextConfig    作者:luoye-fe    | 项目源码 | 文件源码
def replace_entity(match):
        """Return the character corresponding to an HTML entity."""
        number = match.group(2)

        if number:
            hex = match.group(1) is not None
            result = chr(int(number, 16 if hex else 10))
        else:
            entity = match.group(3)
            result = unescape(entity, html.entities.html5)

        return result
项目:xblock-video    作者:appsembler    | 项目源码 | 文件源码
def render_resource(path, **context):
    """
    Render static resource using provided context.

    Returns: django.utils.safestring.SafeText
    """
    html = Template(resource_string(path))
    return html_parser.unescape(
        html.render(Context(context))
    )
项目:xblock-video    作者:appsembler    | 项目源码 | 文件源码
def render_template(template_name, **context):
    """
    Render static resource using provided context.

    Returns: django.utils.safestring.SafeText
    """
    template_dirs = [os.path.join(os.path.dirname(__file__), 'static/html')]
    engine = Engine(dirs=template_dirs, debug=True)
    html = engine.get_template(template_name)

    return html_parser.unescape(
        html.render(Context(context))
    )
项目:xblock-video    作者:appsembler    | 项目源码 | 文件源码
def remove_escaping(text):
    """
    Clean text from special `escape` symbols.

    Reference: https://wiki.python.org/moin/EscapingHtml.
    """
    html_unescape_table = {
        "&amp;": "&",
        "&quot;": '"',
        "&amp;#39;": "'",
        "&apos;": "'",
        "&gt;": ">",
        "&lt;": "<"
    }
    return unescape(text, html_unescape_table)
项目:nzbget-dirwatch    作者:caronc    | 项目源码 | 文件源码
def unescape_xml(content):
    """
    Escapes XML content into it's regular string value
    """

    if SAX_UNESCAPE:
        return unescape(content)
    return HTMLParser().unescape(content)
项目:vkkodi    作者:VkKodi    | 项目源码 | 文件源码
def PrepareString(str):
    return unescape(str, {"&apos;": "'", "&#039;" : "'", "&#39;" : "'", "&quot;": '"'})
项目:lianjia.alfredworkflow    作者:migege    | 项目源码 | 文件源码
def get(self, unescape = False):
        ele_tree = ElementTree.Element('items')
        for item in self.items:
            ele_tree.append(item.getXMLElement())
        res = ElementTree.tostring(ele_tree) #! ????encoding='utf-8'????????????????alfred????
        if unescape:
            return saxutils.unescape(res)
        return res
项目:legal    作者:tompecina    | 项目源码 | 文件源码
def xml_unescape(string):
    """
    Strip and XML-unescape 'string'.
    """

    return unescape(string.strip())
项目:autoupdate_blacklists    作者:elluscinia    | 项目源码 | 文件源码
def upload_xml(self):
        start_time = time.time()
        f = open(self.file_name)
        domains = [domain for domain in f]
        f.close()
        domain_name = self.file_name + '_xml'
        rule_set = self.rule_name + '_XML'

        file_dom = (xmlStart % {'expGUID': str(uuid4()).upper()})
        for url in domains:
            file_dom += ('<fpc4:Str dt:dt="string">' + (url.replace('&', '&amp;')) + '</fpc4:Str>')
        file_dom += (xmlEnd % unescape(domain_name))

        dom = win32com.client.Dispatch('Msxml2.DOMDocument.3.0')
        dom.async = False
        dom.loadXML(file_dom)

        isa_array.RuleElements.DomainNameSets.Import(dom, 0)

        rule = isa_array.ArrayPolicy.PolicyRules.Item(rule_set)

        rule_sets = rule.AccessProperties.DestinationDomainNameSets

        rule_sets.Add(domain_name, 0)

        rule.Save()

        return time.time() - start_time
项目:ZServer    作者:zopefoundation    | 项目源码 | 文件源码
def unescape(value, entities=None):
    _ent = unescape_entities
    if entities is not None:
        _ent = _ent.copy()
        _ent.update(entities)
    return _unescape(value, entities)


# utf-8 is hardcoded on OFS.PropertySheets as the expected
# encoding properties will be stored in. Optimally, we should use the
# same encoding as the 'default_encoding' property that is used for
# the ZMI.
项目:deviation-manual    作者:DeviationTX    | 项目源码 | 文件源码
def __init__(self, text, style, bulletText=None, caseSensitive=1, level=0,
                 snum=None, parent_id=None, node=None, section_header_depth=2):
        # Issue 114: need to convert "&amp;" to "&" and such.
        # Issue 140: need to make it plain text
        self.stext=re.sub(r'<[^>]*?>', '', unescape(text))
        self.stext = self.stext.strip()
        self.level = int(level)
        self.snum = snum
        self.parent_id=parent_id
        self.node=node
        self.section_header_depth = section_header_depth
        Paragraph.__init__(self, text, style, bulletText)
项目:widgetastic.core    作者:RedHatQE    | 项目源码 | 文件源码
def quote(s):
    """Quotes a string in such a way that it is usable inside XPath expressions."""
    return unescape(quoteattr(s))
项目:x-mario-center    作者:fossasia    | 项目源码 | 文件源码
def _parse_menu_tag(self, item):
        name = None
        untranslated_name = None
        query = None
        icon = None
        only_unallocated = False
        dont_display = False
        flags = []
        subcategories = []
        sortmode = SortMethods.BY_ALPHABET
        item_limit = 0
        for element in item.getchildren():
            # ignore inline translations, we use gettext for this
            if (element.tag == "Name" and
                '{http://www.w3.org/XML/1998/namespace}lang' in
                element.attrib):
                continue
            if element.tag == "Name":
                untranslated_name = element.text
                # gettext/xml writes stuff from software-center.menu
                # out into the pot as escaped xml, so we need to escape
                # the name first, get the translation and unscape it again
                escaped_name = xml_escape(untranslated_name)
                name = xml_unescape(gettext.gettext(escaped_name))
            elif element.tag == "SCIcon":
                icon = element.text
            elif element.tag == 'Flags':
                flags = self._parse_flags_tag(element)
            elif element.tag == "Directory":
                l = self._parse_directory_tag(element)
                if l:
                    (untranslated_name, name, gettext_domain, icon) = l
            elif element.tag == "Include":
                query = self._parse_include_tag(element)
            elif element.tag == "OnlyUnallocated":
                only_unallocated = True
            elif element.tag == "SCDontDisplay":
                dont_display = True
            elif element.tag == "SCSortMode":
                sortmode = int(element.text)
                if not self._verify_supported_sort_mode(sortmode):
                    return None
            elif element.tag == "SCItemLimit":
                item_limit = int(element.text)
            elif element.tag == "Menu":
                subcat = self._parse_menu_tag(element)
                if subcat:
                    subcategories.append(subcat)
            else:
                LOG.warn("UNHANDLED tag in _parse_menu_tag: %s" % element.tag)

        if untranslated_name and query:
            return Category(untranslated_name, name, icon, query,
                only_unallocated, dont_display, flags, subcategories,
                sortmode, item_limit)
        else:
            LOG.warn("UNHANDLED entry: %s %s %s %s" % (name,
                                                       untranslated_name,
                                                       icon,
                                                       query))
        return None
项目:x-mario-center    作者:fossasia    | 项目源码 | 文件源码
def _parse_menu_tag(self, item):
        name = None
        untranslated_name = None
        query = None
        icon = None
        only_unallocated = False
        dont_display = False
        flags = []
        subcategories = []
        sortmode = SortMethods.BY_ALPHABET
        item_limit = 0
        for element in item.getchildren():
            # ignore inline translations, we use gettext for this
            if (element.tag == "Name" and
                '{http://www.w3.org/XML/1998/namespace}lang' in
                element.attrib):
                continue
            if element.tag == "Name":
                untranslated_name = element.text
                # gettext/xml writes stuff from software-center.menu
                # out into the pot as escaped xml, so we need to escape
                # the name first, get the translation and unscape it again
                escaped_name = xml_escape(untranslated_name)
                name = xml_unescape(gettext.gettext(escaped_name))
            elif element.tag == "SCIcon":
                icon = element.text
            elif element.tag == 'Flags':
                flags = self._parse_flags_tag(element)
            elif element.tag == "Directory":
                l = self._parse_directory_tag(element)
                if l:
                    (untranslated_name, name, gettext_domain, icon) = l
            elif element.tag == "Include":
                query = self._parse_include_tag(element)
            elif element.tag == "OnlyUnallocated":
                only_unallocated = True
            elif element.tag == "SCDontDisplay":
                dont_display = True
            elif element.tag == "SCSortMode":
                sortmode = int(element.text)
                if not self._verify_supported_sort_mode(sortmode):
                    return None
            elif element.tag == "SCItemLimit":
                item_limit = int(element.text)
            elif element.tag == "Menu":
                subcat = self._parse_menu_tag(element)
                if subcat:
                    subcategories.append(subcat)
            else:
                LOG.warn("UNHANDLED tag in _parse_menu_tag: %s" % element.tag)

        if untranslated_name and query:
            return Category(untranslated_name, name, icon, query,
                only_unallocated, dont_display, flags, subcategories,
                sortmode, item_limit)
        else:
            LOG.warn("UNHANDLED entry: %s %s %s %s" % (name,
                                                       untranslated_name,
                                                       icon,
                                                       query))
        return None
项目:enigma2-plugins    作者:opendreambox    | 项目源码 | 文件源码
def hauptmenu(self,output):
        self.loadinginprogress = False
        trans = { '&szlig;' : 'ß' , '&auml;' : 'ä' , '&ouml;' : 'ö' , '&uuml;' : 'ü' , '&Auml;' : 'Ä', '&Ouml;' : 'Ö' , '&Uuml;' : 'Ü'}
        output= util.unescape(output,trans)

        if self.land == "de":
            startpos = output.find('<div id="navigation">')
            endpos = output.find('<li><a class="section-link" title="Unwetterwarnungen Europa"', startpos)
            bereich = output[startpos:endpos]
            a = findall(r'href=(?P<text>.*?)</a>',bereich)
            for x in a:
                x = x.replace('">',"#").replace('"',"").split('#')
                if not len(x) > 1:
                    break
                if x[0] == "index.html":
                    continue
                name = x[1]
                link = self.baseurl + x[0]
                self.menueintrag.append(name)
                self.link.append(link)
        else:
            self.menueintrag.append("Lagebericht")
            self.link.append(self.weatherreporturl)
            startpos = output.find('</ul><ul><ul id="level_3">')
            endpos = output.find('</ul></ul>', startpos)
            bereich = output[startpos:endpos]
            a = findall(r'href=(?P<text>.*?)</a>',bereich)
            for x in a:
                x = x.replace('">',"#").replace('"',"").split('#')
                if not len(x) > 1:
                    break
                if x[0] == "index.html":
                    continue
                name = x[1]
                link = self.baseurl + x[0]
                self.menueintrag.append(name)
                self.link.append(link)

        self["statuslabel"].setText("")
        self["hmenu"].l.setList(self.menueintrag)
        self["hmenu"].instance.moveSelectionTo(0)
        self.showThumbLand()
项目:enigma2-plugins    作者:opendreambox    | 项目源码 | 文件源码
def addTimerByEventID(self, param):
        print "[WebComponents.Timer] addTimerByEventID", param
        if param['sRef'] is None:
            return ( False, _("Missing Parameter: sRef") )
        if param['eventid'] is None:
            return ( False, _("Missing Parameter: eventid") )

        justplay = False
        if param['justplay'] is not None:
            if param['justplay'] == "1":
                justplay = True

        if not justplay and not config.misc.recording_allowed.value:
            return (False, _("Recording is currently disabled!"))

        location = preferredTimerPath()
        if 'dirname' in param and param['dirname']:
            location = param['dirname']

        tags = []
        if 'tags' in param and param['tags']:
            tags = unescape(param['tags']).split(' ')

        epgcache = eEPGCache.getInstance()
        event = epgcache.lookupEventId(eServiceReference(param['sRef']), int(param['eventid']))
        if event is None:
            return ( False, _("EventId not found") )

        (begin, end, name, description, eit) = parseEvent(event)

        timer = RecordTimerEntry(ServiceReference(param['sRef']), begin , end, name, description, eit, False, justplay, AFTEREVENT.AUTO, dirname=location, tags=tags)

        conflicts = self.recordtimer.record(timer)
        if conflicts is None:
            return ( True, _("Timer '%s' added") %(timer.name) )
        else:
            print "[WebComponents.Timer] editTimer conflicting Timers: %s" %(conflicts)
            msg = ""
            for timer in conflicts:
                msg = "%s / %s" %(msg, timer.name)

            return (False, _("Conflicting Timer(s) detected! %s") %(msg))