#' get data from dk api
#'
#' @param sport chr
#' @param save_path chr
#' @param sleep_time num
#' @return list
#' @export
get_draftkings_data <- function(sport, save_path = NULL, sleep_time = 0) {
# set the eventgroup based on the sport
if (sport == 'mlb') eg <- 84240
if (sport == 'nba') eg <- 42648
if (sport == 'nfl') eg <- 88808
if (sport == 'nhl') eg <- 42133
# get the big ol' json from dk - this has all the nba markets
main_URI <- paste0('https://sportsbook-us-il.draftkings.com//sites/US-IL-SB/api/v5/eventgroups/', eg)
hdrs <- c(
'User-Agent'='Chrome',
'Accept'='*/*'
)
qry <- list(
'format'='json'
)
# GET THAT DATA
main_ret <- httr::GET(main_URI,
query = qry,
httr::add_headers(.headers = hdrs))
main_content <- jsonlite::fromJSON(httr::content(main_ret, 'text', encoding = 'UTF-8'))
# get a list of all the events that we could bet on for that sport
eventGroup <- main_content$eventGroup
events <- eventGroup$events
event_ids <- unique(events$eventId)
# loop through all the event ids and grab the event json
event_list <- list()
for (e in event_ids) {
Sys.sleep(sleep_time)
event_uri <- paste0('https://sportsbook-us-il.draftkings.com//sites/US-IL-SB/api/v3/event/', e)
event_query <- list(
format = list('json'))
game_event <- get_content(event_uri, event_query)
event_list[[as.character(e)]] <- game_event
}
if (!is.null(save_path)) {
fn <- paste0(sport, '_draftkings_', e, '_', as.numeric(Sys.time()), '.json')
jsonlite::write_json(event_list, file.path(save_path, fn))
R.utils::gzip(file.path(save_path, fn), ext='gz')
}
# return
return(event_list)
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.