More work on generic RSS renderer base class. Make the kiosk have a countdown
[kiosk.git] / stranger_renderer.py
index 33ccfc05ca2203917bab3ceabc53259ed7c42a12..a8698e2be325ab9e5e94554d7d44429165816406 100644 (file)
@@ -12,7 +12,7 @@ import renderer
 class stranger_events_renderer(renderer.debuggable_abstaining_renderer):
     def __init__(self, name_to_timeout_dict):
         super(stranger_events_renderer, self).__init__(name_to_timeout_dict, True)
-        self.feed_site = "everout.thestranger.com"
+        self.feed_site = "everout.com"
         self.events = grab_bag.grab_bag()
 
     def debug_prefix(self):
@@ -85,32 +85,32 @@ class stranger_events_renderer(renderer.debuggable_abstaining_renderer):
     def fetch_events(self):
         self.events.clear()
         feed_uris = [
-            "/events/?page=1&picks=true",
-            "/events/?page=2&picks=true",
-            "/events/?page=3&picks=true",
+            "/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("/events/?start-date=%s&picks=true" % 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("/events/?start-date=%s&page=1&picks=true" % next_sat)
-            feed_uris.append("/events/?start-date=%s&page=2&picks=true" % 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("/events/?start-date=%s&page=1&picks=true" % next_sun)
-            feed_uris.append("/events/?start-date=%s&page=2&picks=true" % 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 '%s'" % uri)
+                self.debug_print("fetching 'https://%s%s'" % (self.feed_site, uri))
                 self.conn = http.client.HTTPSConnection(self.feed_site)
                 self.conn.request(
                     "GET",
@@ -121,6 +121,7 @@ class stranger_events_renderer(renderer.debuggable_abstaining_renderer):
                 if response.status != 200:
                     self.debug_print("Connection failed, status %d" % (
                         response.status))
+                    self.debug_print(response.getheaders())
                     continue
                 raw = response.read()
             except:
@@ -141,9 +142,9 @@ class stranger_events_renderer(renderer.debuggable_abstaining_renderer):
                 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('\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'))
+                self.events.add(raw)
             self.debug_print("fetched %d events so far." % self.events.size())
         return self.events.size() > 0