knitr::opts_chunk$set(echo = TRUE)
library(tidyverse)
library(rvest)
library(httr)
library(jsonlite)
library(hearrthstone)
library(RSelenium)
library(stringr)
library(furrr)
library(fastDummies)

Retrieve current meta data from Hsreplay.net to use as training data for the model

#open firefox with random port int
rd <- rsDriver(browser="firefox", port= sample(1000:9999,1), verbose=F)
remDr <- rd[["client"]]
pages <- c()
#save html for n pages
page_n <- 52  #52, 900 deck codes
for(i in 1:page_n){
  remDr$navigate(paste0("https://hsreplay.net/decks/#page=",i))
  Sys.sleep(1)
  pages[i] <- remDr$getPageSource()[[1]]
}
#collapse the htmls for the different pages and extract all the deck links
links <- read_html(paste(pages, collapse = '')) %>% 
  html_nodes('a.deck-tile') %>% 
  html_attr('href')
#extract metadata (deck name, class type, manacost) using deck link from hsreplay
decks <- map_dfr(stringr::str_remove(links,"/decks/"), ~get_hsreplay_decks(.x))
remDr$close()
write_csv(decks, here("dev" ,"data", "df_decks.csv"))
x <- get_decks("AAECAZ7hAwLQzgPZ0QMOuwK/A6sE5gSWBfusA/OvA/jMA4XNA83OA6TRA/fRA/jdA4fkAwA=")
x$class$name == "Mage"
data <- read_csv(here("dev","data","df_decks.csv"))
data %>% 
  mutate(first_3 = str_sub(deckcode,1,3)) %>% 
  group_by(first_3) %>% 
  summarise(n())
df_decks_dummy <- 
  map_dfr(1:nrow(decks),~get_dummys(decks$deckcode[.x],decks$name[.x])) %>% 
  replace(is.na(.),0) 
df_decks_dummy %>% distinct(deckname)
df_decks_dummy %>% str()
MT <- read_csv("lineup_details.csv")
deckcodes <- MT %>% select(Deck,Class,`Deck Code`) %>% distinct(`Deck Code`)
future_imap_dfr(1:nrow(deckcodes),~get_dummys(deckcodes[[1]][.x],.x)) %>% 
  replace(is.na(.),0) 
write_csv(df_decks_dummy, here("dev" ,"data", "df_decks_dummy.csv"))
df_lineup <- read_csv("lineup_details.csv")
wider <- df_lineup %>% 
  filter(Date == "2021-01-29") %>% 
  mutate(Date = as.character(Date)) %>% 
  pivot_wider(c(Player,Tournament),
              values_from = 4:5) 
wider %>% 
  mutate(`Deck Code_` = map_chr(`Deck Code_`,
                                paste, 
                                collapse = "SPLIT"), Date_ = map_chr(`Date_`,unique)) %>% 
  separate(`Deck Code_`,sep = "SPLIT", into = c("Deck1","Deck2","Deck3")) %>% 
  mutate(Date_ = as.Date(Date_)) %>% 
  rename(Date = Date_)


kabhatia7/hearrthstone documentation built on March 24, 2021, 5:54 p.m.