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_)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.