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