projects
/
kiosk.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Adding type annotations and fixing up formatting.
[kiosk.git]
/
stranger_renderer.py
diff --git
a/stranger_renderer.py
b/stranger_renderer.py
index 4020353c4e4e5001c22d5f99cd996d41e099bd23..a68c88df72c812b8afc8257247d53f8b9f4da4cb 100644
(file)
--- a/
stranger_renderer.py
+++ b/
stranger_renderer.py
@@
-1,26
+1,30
@@
+#!/usr/bin/env python3
+
from bs4 import BeautifulSoup
import datetime
from bs4 import BeautifulSoup
import datetime
+import http.client
+import random
+import re
+from typing import Dict, List
+
import file_writer
import grab_bag
import file_writer
import grab_bag
-import http.client
import page_builder
import profanity_filter
import page_builder
import profanity_filter
-import random
-import re
import renderer
import renderer_catalog
class stranger_events_renderer(renderer.debuggable_abstaining_renderer):
import renderer
import renderer_catalog
class stranger_events_renderer(renderer.debuggable_abstaining_renderer):
- def __init__(self, name_to_timeout_dict):
+ def __init__(self, name_to_timeout_dict
: Dict[str, int]
):
super(stranger_events_renderer, self).__init__(name_to_timeout_dict, True)
self.feed_site = "everout.com"
self.events = grab_bag.grab_bag()
super(stranger_events_renderer, self).__init__(name_to_timeout_dict, True)
self.feed_site = "everout.com"
self.events = grab_bag.grab_bag()
- def debug_prefix(self):
+ def debug_prefix(self)
-> str
:
return "stranger"
return "stranger"
- def periodic_render(self, key
)
:
+ def periodic_render(self, key
: str) -> bool
:
self.debug_print("called for action %s" % key)
if key == "Fetch Events":
return self.fetch_events()
self.debug_print("called for action %s" % key)
if key == "Fetch Events":
return self.fetch_events()
@@
-67,7
+71,7
@@
class stranger_events_renderer(renderer.debuggable_abstaining_renderer):
}
</STYLE>"""
}
</STYLE>"""
- def shuffle_events(self):
+ def shuffle_events(self)
-> bool
:
layout = page_builder.page_builder()
layout.set_layout(page_builder.page_builder.LAYOUT_FOUR_ITEMS)
layout.set_title("Stranger Events")
layout = page_builder.page_builder()
layout.set_layout(page_builder.page_builder.LAYOUT_FOUR_ITEMS)
layout.set_title("Stranger Events")
@@
-79,12
+83,11
@@
class stranger_events_renderer(renderer.debuggable_abstaining_renderer):
for msg in subset:
layout.add_item(msg)
for msg in subset:
layout.add_item(msg)
- f = file_writer.file_writer("stranger-events_2_36000.html")
- layout.render_html(f)
- f.close()
+ with file_writer.file_writer("stranger-events_2_36000.html") as f:
+ layout.render_html(f)
return True
return True
- def fetch_events(self):
+ def fetch_events(self)
-> bool
:
self.events.clear()
feed_uris = [
"/stranger-seattle/events/?page=1",
self.events.clear()
feed_uris = [
"/stranger-seattle/events/?page=1",
@@
-94,30
+97,23
@@
class stranger_events_renderer(renderer.debuggable_abstaining_renderer):
now = datetime.datetime.now()
ts = now + datetime.timedelta(1)
tomorrow = datetime.datetime.strftime(ts, "%Y-%m-%d")
now = datetime.datetime.now()
ts = now + datetime.timedelta(1)
tomorrow = datetime.datetime.strftime(ts, "%Y-%m-%d")
- feed_uris.append(
"/stranger-seattle/events/?start-date=%s" % tomorrow
)
+ feed_uris.append(
f"/stranger-seattle/events/?start-date={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")
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(
- "/stranger-seattle/events/?start-date=%s&page=1" % next_sat
- )
- feed_uris.append(
- "/stranger-seattle/events/?start-date=%s&page=2" % next_sat
- )
+ feed_uris.append(f"/stranger-seattle/events/?start-date={next_sat}&page=1")
+ feed_uris.append(f"/stranger-seattle/events/?start-date={next_sat}&page=2")
delta += 1
if delta > 1:
ts = now + datetime.timedelta(delta)
next_sun = datetime.datetime.strftime(ts, "%Y-%m-%d")
delta += 1
if delta > 1:
ts = now + datetime.timedelta(delta)
next_sun = datetime.datetime.strftime(ts, "%Y-%m-%d")
- 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
- )
+ feed_uris.append(f"/stranger-seattle/events/?start-date={next_sun}&page=1")
+ feed_uris.append(f"/stranger-seattle/events/?start-date={next_sun}&page=2")
+ filter = profanity_filter.profanity_filter()
for uri in feed_uris:
try:
self.debug_print("fetching 'https://%s%s'" % (self.feed_site, uri))
for uri in feed_uris:
try:
self.debug_print("fetching 'https://%s%s'" % (self.feed_site, uri))
@@
-134,7
+130,6
@@
class stranger_events_renderer(renderer.debuggable_abstaining_renderer):
continue
soup = BeautifulSoup(raw, "html.parser")
continue
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):
@@
-147,7
+142,6
@@
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 = 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 = re.sub(
'<span[^<>]*class="calendar-post-ticket"[^<>]*>.*</#span>',
"",
@@
-156,7
+150,7
@@
class stranger_events_renderer(renderer.debuggable_abstaining_renderer):
re.DOTALL | re.IGNORECASE,
)
self.events.add(raw)
re.DOTALL | re.IGNORECASE,
)
self.events.add(raw)
- self.debug_print(
"fetched %d events so far." % self.events.size()
)
+ self.debug_print(
f"fetched {self.events.size()} events so far."
)
return self.events.size() > 0
return self.events.size() > 0