From ffc033debf961e22d0a5844fd7ae348f70ed5a25 Mon Sep 17 00:00:00 2001 From: Darren VanBuren Date: Wed, 13 Jun 2018 02:02:36 -0700 Subject: [PATCH] First attempt at a Google Action --- stargaterando.rb | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) diff --git a/stargaterando.rb b/stargaterando.rb index ec0026d..62672ef 100644 --- a/stargaterando.rb +++ b/stargaterando.rb @@ -102,6 +102,53 @@ module StargateRando::Controllers JSON.generate(result_hash) end end + + class GoogleActions < R '/google' + def get + post() + end + + def post + series_selector = 1 + rand(17) + case series_selector + when 1..10 + chosen_series_id = 'SG-1' + when 11..15 + chosen_series_id = 'SGA' + else + chosen_series_id = 'SGU' + end + + @series = Data::SERIES_NAMES[chosen_series_id] + num_seasons = Data::SEASONS_PER_SERIES[chosen_series_id] + chosen_season = 1 + rand(num_seasons) + + # SG-1 has a couple of seasons of length 22 and one of length 21 so we need to handle that. + case chosen_series_id + when 'SG-1' + case chosen_season + when 1 + num_episodes = 21 + when 2..7 + num_episodes = 22 + else + num_episodes = 20 + end + else + num_episodes = 20 + end + + chosen_episode = 1 + rand(num_episodes) + + @headers['Content-Type'] = "application/json" + + @episode_and_season = "Season #{chosen_season} Episode #{chosen_episode}" + @episode_name = Data::EPISODES["#{chosen_series_id}|#{chosen_season}x#{chosen_episode}"] + + result_hash = { :fulfillmentText => "You should watch: #{@series}: #{@episode_and_season}: #{@episode_name}" } + + JSON.generate(result_hash) + end end # This holds our views. Markaby is pretty swagtacular.