ed2afa4c5ff7f67cf07094baaf035bfe471543f9
[kiosk.git] / stevens_renderer.py
1 import renderer
2 import file_writer
3 import http.client
4 import xml.etree.ElementTree as ET
5
6
7 class stevens_pass_conditions_renderer(renderer.debuggable_abstaining_renderer):
8     def __init__(self, name_to_timeout_dict, feed_site, feed_uris):
9         super(stevens_pass_conditions_renderer, self).__init__(
10             name_to_timeout_dict, False
11         )
12         self.feed_site = feed_site
13         self.feed_uris = feed_uris
14
15     def debug_prefix(self):
16         return "stevens"
17
18     def periodic_render(self, key):
19         f = file_writer.file_writer("stevens-conditions_1_86400.html")
20         for uri in self.feed_uris:
21             self.conn = http.client.HTTPSConnection(self.feed_site)
22             self.conn.request("GET", uri, None, {"Accept-Charset": "utf-8"})
23             response = self.conn.getresponse()
24             if response.status == 200:
25                 raw = response.read()
26                 rss = ET.fromstring(raw)
27                 channel = rss[0]
28                 for item in channel.getchildren():
29                     if item.tag == "title":
30                         f.write("<h1>%s</h1><hr>" % item.text)
31                         f.write(
32                             '<IMG WIDTH=512 ALIGN=RIGHT HEIGHT=382 SRC="https://images.wsdot.wa.gov/nc/002vc06430.jpg?t=637059938785646824" style="padding:8px;">'
33                         )
34                     elif item.tag == "item":
35                         for x in item.getchildren():
36                             if x.tag == "description":
37                                 text = x.text
38                                 text = text.replace(
39                                     "<strong>Stevens Pass US2</strong><br/>", ""
40                                 )
41                                 text = text.replace("<br/><br/>", "<BR>")
42                                 text = text.replace(
43                                     "<strong>Elevation Meters:</strong>1238<BR>", ""
44                                 )
45                                 f.write("<P>\n%s\n" % text)
46                 f.close()
47                 return True
48         f.close()
49         return False