Format codebase w/ black.
[kiosk.git] / renderer_catalog.py
1 import bellevue_reporter_rss_renderer
2 import constants
3 import cnn_rss_renderer
4 import gdata_oauth
5 import gcal_renderer
6 import google_news_rss_renderer
7 import gkeep_renderer
8 import health_renderer
9 import local_photos_mirror_renderer
10 import mynorthwest_rss_renderer
11 import myq_renderer
12 import pollen_renderer
13 import reddit_renderer
14 import renderer
15 import seattletimes_rss_renderer
16 import secrets
17 import stevens_renderer
18 import stranger_renderer
19 import stock_renderer
20 import twitter_renderer
21 import weather_renderer
22 import wsj_rss_renderer
23
24 oauth = gdata_oauth.OAuth(secrets.google_client_id, secrets.google_client_secret)
25 if not oauth.has_token():
26     user_code = oauth.get_user_code()
27     print("------------------------------------------------------------")
28     print(
29         (
30             'Go to %s and enter the code "%s" (no quotes, case-sensitive)'
31             % (oauth.verification_url, user_code)
32         )
33     )
34     oauth.get_new_token()
35
36 seconds = 1
37 minutes = 60
38 hours = constants.seconds_per_hour
39 always = seconds * 1
40
41 # Note, the 1s updates don't really update every second; there's a max
42 # frequency in the renderer thread of ~once a minute.  It just means that
43 # everytime it check these will be stale and happen.
44 __registry = [
45     stranger_renderer.stranger_events_renderer(
46         {"Fetch Events": (hours * 12), "Shuffle Events": (always)}
47     ),
48     #                 pollen_renderer.pollen_count_renderer(
49     #                     {"Poll" : (hours * 1)}),
50     myq_renderer.garage_door_renderer(
51         {"Poll MyQ": (minutes * 5), "Update Page": (always)}
52     ),
53     bellevue_reporter_rss_renderer.bellevue_reporter_rss_renderer(
54         {"Fetch News": (hours * 1), "Shuffle News": (always)},
55         "www.bellevuereporter.com",
56         ["/feed/"],
57         "Bellevue Reporter",
58     ),
59     mynorthwest_rss_renderer.mynorthwest_rss_renderer(
60         {"Fetch News": (hours * 1), "Shuffle News": (always)},
61         "mynorthwest.com",
62         ["/feed/"],
63         "MyNorthwest News",
64     ),
65     cnn_rss_renderer.cnn_rss_renderer(
66         {"Fetch News": (hours * 1), "Shuffle News": (always)},
67         "rss.cnn.com",
68         ["/rss/cnn_tech.rss", "/rss/money_technology.rss"],
69         "CNNTechnology",
70     ),
71     cnn_rss_renderer.cnn_rss_renderer(
72         {"Fetch News": (hours * 1), "Shuffle News": (always)},
73         "rss.cnn.com",
74         ["/rss/cnn_topstories.rss", "/rss/cnn_world.rss", "/rss/cnn_us.rss"],
75         "CNNNews",
76     ),
77     wsj_rss_renderer.wsj_rss_renderer(
78         {"Fetch News": (hours * 1), "Shuffle News": (always)},
79         "feeds.a.dj.com",
80         ["/rss/RSSWorldNews.xml"],
81         "WSJNews",
82     ),
83     wsj_rss_renderer.wsj_rss_renderer(
84         {"Fetch News": (hours * 1), "Shuffle News": (always)},
85         "feeds.a.dj.com",
86         ["/rss/RSSMarketsMain.xml", "/rss/WSJcomUSBusiness.xml"],
87         "WSJBusiness",
88     ),
89     google_news_rss_renderer.google_news_rss_renderer(
90         {"Fetch News": (minutes * 30), "Shuffle News": (always)},
91         "news.google.com",
92         ["/rss?hl=en-US&gl=US&ceid=US:en"],
93         "Google News",
94     ),
95     health_renderer.periodic_health_renderer(
96         {"Update Perioidic Job Health": (seconds * 45)}
97     ),
98     stock_renderer.stock_quote_renderer(
99         {"Update Prices": (hours * 1)},
100         [
101             "MSFT",
102             "SPY",
103             "GBTC",
104             "IEMG",
105             "OPTAX",
106             "SPAB",
107             "SPHD",
108             "SGOL",
109             "VDC",
110             "VYMI",
111             "VNQ",
112             "VNQI",
113         ],
114     ),
115     stevens_renderer.stevens_pass_conditions_renderer(
116         {"Fetch Pass Conditions": (hours * 1)},
117         "www.wsdot.com",
118         ["/traffic/rssfeeds/stevens/Default.aspx"],
119     ),
120     seattletimes_rss_renderer.seattletimes_rss_renderer(
121         {"Fetch News": (hours * 4), "Shuffle News": (always)},
122         "www.seattletimes.com",
123         ["/pacific-nw-magazine/feed/", "/life/feed/", "/outdoors/feed/"],
124         "Seattle Times Segments",
125     ),
126     weather_renderer.weather_renderer(
127         {"Fetch Weather (Bellevue)": (hours * 4)}, "home"
128     ),
129     weather_renderer.weather_renderer(
130         {"Fetch Weather (Stevens)": (hours * 4)}, "stevens"
131     ),
132     weather_renderer.weather_renderer({"Fetch Weather (Telma)": (hours * 4)}, "telma"),
133     local_photos_mirror_renderer.local_photos_mirror_renderer(
134         {"Index Photos": (hours * 24), "Choose Photo": (always)}
135     ),
136     gkeep_renderer.gkeep_renderer({"Update": (minutes * 10)}),
137     gcal_renderer.gcal_renderer(
138         {"Render Upcoming Events": (hours * 2), "Look For Triggered Events": (always)},
139         oauth,
140     ),
141     reddit_renderer.showerthoughts_reddit_renderer(
142         {"Scrape": (hours * 6), "Shuffle": (always)}
143     ),
144     reddit_renderer.til_reddit_renderer({"Scrape": (hours * 6), "Shuffle": (always)}),
145     reddit_renderer.seattle_reddit_renderer(
146         {"Scrape": (hours * 6), "Shuffle": (always)}
147     ),
148     reddit_renderer.quotes_reddit_renderer(
149         {"Scrape": (hours * 6), "Shuffle": (always)}
150     ),
151     reddit_renderer.lifeprotips_reddit_renderer(
152         {"Scrape": (hours * 6), "Shuffle": (always)}
153     ),
154     twitter_renderer.twitter_renderer(
155         {"Fetch Tweets": (minutes * 15), "Shuffle Tweets": (always)}
156     ),
157 ]
158
159
160 def get_renderers():
161     return __registry