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