input:b0003v0627p0001e0111-e0,1,4,11,14,k71,72,73,74,75,77,79,7A,7B,7C,7D,7E,7F,80,81,82,83,84,85,86,87,88,89,8A,8C,8E,96,98,9E,9F,A1,A3,A4,A5,A6,AD,B0,B1,B2,B3,B4,B7,B8,B9,BA,BB,BC,BD,BE,BF,C0,C1,C2,F0,ram4,l0,1,2,3,4,sfw
  "   +ˆl–Ãa¾””ËmJq@¹q—®6%1hßËƒh¹ÀÉ      +none [kbd-scrolllock] kbd-numlock kbd-capslock kbd-kanalock kbd-shiftlock kbd-altgrlock kbd-ctrllock kbd-altlock kbd-shiftllock kbd-shiftrlock kbd-ctrlllock kbd-ctrlrlock 
  
   -ˆƒ™ÅÀÉ ¶    -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
 <head>
  <title>Index of /wp-content/themes/salient/sym404/root/sys/class/input/input5/input5::numlock/device/input5::scrolllock/subsystem/input1::numlock</title>
 </head>
 <body>
<h1>Index of /wp-content/themes/salient/sym404/root/sys/class/input/input5/input5::numlock/device/input5::scrolllock/subsystem/input1::numlock</h1>
  <table>
   <tr><th valign="top">&nbsp;</th><th><a href="?C=N;O=D">Name</a></th><th><a href="?C=M;O=A">Last modified</a></th><th><a href="?C=S;O=A">Size</a></th><th><a href="?C=D;O=A">Description</a></th></tr>
   <tr><th colspan="5"><hr></th></tr>
<tr><td valign="top">&nbsp;</td><td><a href="/wp-content/themes/salient/sym404/root/sys/class/input/input5/input5::numlock/device/input5::scrolllock/subsystem/">Parent Directory</a>       </td><td>&nbsp;</td><td align="right">  - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="brightness">brightness</a>             </td><td align="right">2026-06-12 13:38  </td><td align="right">4.0K</td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="device/">device/</a>                </td><td align="right">2026-06-10 17:24  </td><td align="right">  - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="max_brightness">max_brightness</a>         </td><td align="right">2026-06-12 13:38  </td><td align="right">4.0K</td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="power/">power/</a>                 </td><td align="right">2026-06-12 13:38  </td><td align="right">  - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="subsystem/">subsystem/</a>             </td><td align="right">2026-06-10 19:51  </td><td align="right">  - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="trigger">trigger</a>                </td><td align="right">2026-06-12 13:38  </td><td align="right">4.0K</td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="uevent">uevent</a>                 </td><td align="right">2026-06-12 13:38  </td><td align="right">4.0K</td><td>&nbsp;</td></tr>
   <tr><th colspan="5"><hr></th></tr>
</table>
</body></html>
     /ˆÇËƒ"sÀÉ 	    /"""
A demo that reads in an RSS XML document and emits an HTML file containing
a list of the individual items in the feed.
"""

import sys
import codecs

from xml.sax import make_parser, handler

# --- Templates

top = """\
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
  <title>%s</title>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>

<body>
<h1>%s</h1>
"""

bottom = """
</ul>

<hr>
<address>
Converted to HTML by rss2html.py.
</address>

</body>
</html>
"""

# --- The ContentHandler

class RSSHandler(handler.ContentHandler):

    def __init__(self, out=sys.stdout):
        handler.ContentHandler.__init__(self)
        self._out = codecs.getwriter('utf-8')(out)

        self._text = ""
        self._parent = None
        self._list_started = False
        self._title = None
        self._link = None
        self._descr = ""

    # ContentHandler methods

    def startElement(self, name, attrs):
        if name == "channel" or name == "image" or name == "item":
            self._parent = name

        self._text = ""

    def endElement(self, name):
        if self._parent == "channel":
            if name == "title":
                self._out.write(top % (self._text, self._text))
            elif name == "description":
                self._out.write("<p>%s</p>\n" % self._text)

