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