Browse Source

Updated app to use new db structure

master
Maxime Wack 6 years ago
parent
commit
ef87d3a6a6
1 changed files with 19 additions and 37 deletions
  1. +19
    -37
      app.R

+ 19
- 37
app.R View File

@@ -15,20 +15,21 @@ server <- function(input, output, session)

if(str_length(input$show_search) > 3)
{
src_sqlite("im.db") %>%
tbl(sql(str_c("select tconst, primaryTitle from basics where titleType == 'tvSeries' and primaryTitle like '%", input$show_search, "%'"))) %>%
collect -> res

res$tconst %>%
as.list %>%
setNames(res$primaryTitle)
src_sqlite("imdb.db") %>%
tbl(sql(str_c("select distinct(id), seriesTitle, startYear from imdb where seriesTitle like '%", input$show_search, "%'"))) %>%
collect %>%
arrange(desc(startYear))
}
})

output$show_choice <- renderUI({
req(shows())

selectizeInput("show", "Please choose…", shows())
shows()$id %>%
setNames(str_c(shows()$seriesTitle, " (", shows()$startYear, ")")) ->
choices

selectizeInput("show", "Please choose…", choices)
})

output$show_graph <- renderPlotly({
@@ -36,38 +37,19 @@ server <- function(input, output, session)

show_id <- input$show

src_sqlite("im.db") %>%
tbl("episodes") %>%
filter(parentTconst == show_id) %>%
select(-parentTconst) %>%
collect -> episodes

src_sqlite("im.db") %>%
tbl("basics") %>%
filter(tconst %in% episodes$tconst) %>%
collect -> titles

src_sqlite("im.db") %>%
tbl("ratings") %>%
filter(tconst %in% episodes$tconst) %>%
collect -> ratings

episodes %>%
left_join(titles) %>%
left_join(ratings) %>%
select(-tconst, -titleType) %>%
mutate_at(vars(seasonNumber, episodeNumber, averageRating, numVotes), as.numeric) %>%
filter(!is.na(numVotes)) -> eps

eps %>%
by(.$seasonNumber, function(x){
fit <- lm(averageRating ~ episodeNumber, data = x)
src_sqlite("imdb.db") %>%
tbl("imdb") %>%
filter(id == show_id) %>%
collect %>%
mutate_at(vars(season, episode, averageRating, numVotes), as.numeric) %>%
by(.$season, function(x){
fit <- lm(averageRating ~ episode, data = x)
x %>%
plot_ly(hoverinfo = "text",
text = ~str_c("S", seasonNumber, "E", episodeNumber, " - ", primaryTitle, "<br>",
text = ~str_c("S", season, "E", episode, " - ", episodeTitle, "<br>",
"Rating: ", averageRating, " (", numVotes, " votes)<br>")) %>%
add_trace(data = x, x = ~episodeNumber, y = ~averageRating, mode = "markers") %>%
add_trace(data = x, x = ~episodeNumber, y = fitted(fit), mode = "lines") %>%
add_trace(data = x, x = ~episode, y = ~averageRating, mode = "markers") %>%
add_trace(data = x, x = ~episode, y = fitted(fit), mode = "lines") %>%
layout(xaxis = list(tick0 = 0, dtick = 1),
yaxis = list(title = "Rating"))
}) %>%


Loading…
Cancel
Save