X-Git-Url: https://wannabe.guru.org/gitweb/?a=blobdiff_plain;f=stranger_renderer.py;h=a8698e2be325ab9e5e94554d7d44429165816406;hb=0e2601682b4629eb425f2d20a3c4ca3d592d3cbe;hp=c0389f6a68a994f886a3a45206402ffd5111b558;hpb=4b1f3d8a8b278ca6d62f461ea80c8ea21080c301;p=kiosk.git diff --git a/stranger_renderer.py b/stranger_renderer.py index c0389f6..a8698e2 100644 --- a/stranger_renderer.py +++ b/stranger_renderer.py @@ -2,18 +2,17 @@ from bs4 import BeautifulSoup import datetime import file_writer import grab_bag -import httplib +import http.client import page_builder import profanity_filter import random import re import renderer -import sets 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): @@ -86,85 +85,56 @@ 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: - self.debug_print("fetching '%s'" % uri) - self.conn = httplib.HTTPSConnection(self.feed_site) - self.conn.request( - "GET", - uri, - None, - {"Accept-Charset": "utf-8"}) - response = self.conn.getresponse() - if response.status != 200: - print("stranger: Failed, status %d" % (response.status)) + 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"}) + response = self.conn.getresponse() + if response.status != 200: + self.debug_print("Connection failed, status %d" % ( + response.status)) + self.debug_print(response.getheaders()) + continue + raw = response.read() + except: + self.debug_print("Exception talking to the stranger, ignoring.") continue - raw = response.read() 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)): continue - -#
-#
-# On Demand -#
// col-12 -#
-# -# -# -#
// col-md-3 order-1 order-md-3 -#
-#

-# -# -# SPLIFF 2020 - On Demand -# -#

-#
-# Every day -#
// event-date -#
-#
// event-time -#
// col-md-6 order-2 order-md-1 event-details -#
-# // location-name -#
-#
// location-region -# -#
// col-md-3 order-3 order-md-2 location-colum -#
// row event list-item mb-3 py-3 - - raw = unicode(x) + raw = str(x) raw = raw.replace('src="/', 'align="left" src="https://www.thestranger.com/') raw = raw.replace('href="/', @@ -172,12 +142,13 @@ 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(']*class="calendar-post-ticket"[^<>]*>.*', '', 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 -x = stranger_events_renderer({"Test", 123}) -x.periodic_render("Fetch Events") -x.periodic_render("Shuffle Events") +# Test +#x = stranger_events_renderer({"Test", 123}) +#x.periodic_render("Fetch Events") +#x.periodic_render("Shuffle Events")