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