Format codebase w/ black.
[kiosk.git] / stranger_renderer.py
index cad0fd7c642ac615c8001eac11f884a53000fe32..4020353c4e4e5001c22d5f99cd996d41e099bd23 100644 (file)
@@ -8,6 +8,8 @@ import profanity_filter
 import random
 import re
 import renderer
+import renderer_catalog
+
 
 class stranger_events_renderer(renderer.debuggable_abstaining_renderer):
     def __init__(self, name_to_timeout_dict):
@@ -77,7 +79,7 @@ class stranger_events_renderer(renderer.debuggable_abstaining_renderer):
 
         for msg in subset:
             layout.add_item(msg)
-        f = file_writer.file_writer('stranger-events_2_none.html')
+        f = file_writer.file_writer("stranger-events_2_36000.html")
         layout.render_html(f)
         f.close()
         return True
@@ -85,42 +87,45 @@ class stranger_events_renderer(renderer.debuggable_abstaining_renderer):
     def fetch_events(self):
         self.events.clear()
         feed_uris = [
-            "/seattle-stranger/events/?page=1",
-            "/seattle-stranger/events/?page=2",
-            "/seattle-stranger/events/?page=3",
+            "/stranger-seattle/events/?page=1",
+            "/stranger-seattle/events/?page=2",
+            "/stranger-seattle/events/?page=3",
         ]
         now = datetime.datetime.now()
         ts = now + datetime.timedelta(1)
         tomorrow = datetime.datetime.strftime(ts, "%Y-%m-%d")
-        feed_uris.append("/seattle-stranger/events/?start-date=%s" % tomorrow)
+        feed_uris.append("/stranger-seattle/events/?start-date=%s" % tomorrow)
         delta = 5 - now.weekday()
         if delta <= 0:
             delta += 7
         if delta > 1:
             ts = now + datetime.timedelta(delta)
             next_sat = datetime.datetime.strftime(ts, "%Y-%m-%d")
-            feed_uris.append("/seattle-stranger/events/?start-date=%s&page=1" % next_sat)
-            feed_uris.append("/seattle-stranger/events/?start-date=%s&page=2" % next_sat)
+            feed_uris.append(
+                "/stranger-seattle/events/?start-date=%s&page=1" % next_sat
+            )
+            feed_uris.append(
+                "/stranger-seattle/events/?start-date=%s&page=2" % next_sat
+            )
         delta += 1
         if delta > 1:
             ts = now + datetime.timedelta(delta)
             next_sun = datetime.datetime.strftime(ts, "%Y-%m-%d")
-            feed_uris.append("/seattle-stranger/events/?start-date=%s&page=1" % next_sun)
-            feed_uris.append("/seattle-stranger/events/?start-date=%s&page=2" % next_sun)
+            feed_uris.append(
+                "/stranger-seattle/events/?start-date=%s&page=1" % next_sun
+            )
+            feed_uris.append(
+                "/stranger-seattle/events/?start-date=%s&page=2" % next_sun
+            )
 
         for uri in feed_uris:
             try:
                 self.debug_print("fetching 'https://%s%s'" % (self.feed_site, uri))
                 self.conn = http.client.HTTPSConnection(self.feed_site)
-                self.conn.request(
-                    "GET",
-                    uri,
-                    None,
-                    {"Accept-Charset": "utf-8"})
+                self.conn.request("GET", uri, None, {"Accept-Charset": "utf-8"})
                 response = self.conn.getresponse()
                 if response.status != 200:
-                    self.debug_print("Connection failed, status %d" % (
-                        response.status))
+                    self.debug_print("Connection failed, status %d" % (response.status))
                     self.debug_print(response.getheaders())
                     continue
                 raw = response.read()
@@ -130,25 +135,32 @@ class stranger_events_renderer(renderer.debuggable_abstaining_renderer):
 
             soup = BeautifulSoup(raw, "html.parser")
             filter = profanity_filter.profanity_filter()
-            for x in soup.find_all('div', class_='row event list-item mb-3 py-3'):
-                text = x.get_text();
-                if (filter.contains_bad_words(text)):
+            for x in soup.find_all("div", class_="row event list-item mb-3 py-3"):
+                text = x.get_text()
+                if filter.contains_bad_words(text):
                     continue
                 raw = str(x)
-                raw = raw.replace('src="/',
-                                  'align="left" src="https://www.thestranger.com/')
-                raw = raw.replace('href="/',
-                                  'href="https://www.thestranger.com/')
-                raw = raw.replace('FREE', 'Free')
-                raw = raw.replace('Save Event', '')
-                raw = re.sub('^\s*$', '', raw, 0, re.MULTILINE)
-                raw = re.sub('\n+', '\n', raw)
-                raw = re.sub('<span[^<>]*class="calendar-post-ticket"[^<>]*>.*</#span>', '', raw, 0, re.DOTALL | re.IGNORECASE)
-                self.events.add(raw.encode('utf-8'))
+                raw = raw.replace(
+                    'src="/', 'align="left" src="https://www.thestranger.com/'
+                )
+                raw = raw.replace('href="/', 'href="https://www.thestranger.com/')
+                raw = raw.replace("FREE", "Free")
+                raw = raw.replace("Save Event", "")
+                raw = re.sub("^\s*$", "", raw, 0, re.MULTILINE)
+                # raw = re.sub('\n+', '\n', raw)
+                raw = re.sub(
+                    '<span[^<>]*class="calendar-post-ticket"[^<>]*>.*</#span>',
+                    "",
+                    raw,
+                    0,
+                    re.DOTALL | re.IGNORECASE,
+                )
+                self.events.add(raw)
             self.debug_print("fetched %d events so far." % self.events.size())
         return self.events.size() > 0
 
+
 # Test
-#x = stranger_events_renderer({"Test", 123})
-#x.periodic_render("Fetch Events")
-#x.periodic_render("Shuffle Events")
+# x = stranger_events_renderer({"Test", 123})
+# x.periodic_render("Fetch Events")
+# x.periodic_render("Shuffle Events")