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