Experiment
extgalleryhtml <- read_lines("https://exts.ggplot2.tidyverse.org/gallery/")
"https://raw.githubusercontent.com/lionel-/ggstance/refs/heads/main/NAMESPACE"
"https://raw.githubusercontent.com/rcorty/ggQQunif/refs/heads/main/NAMESPACE"
"https://raw.githubusercontent.com/statsmaths/ggimg/refs/heads/master/NAMESPACE"
extgalleryhtml %>%
str_detect("github.com/.+/gg.+") %>%
extgalleryhtml[.] %>%
str_extract("github.com/([a-zA-Z]|-)+/gg[a-zA-Z]+") %>%
unique() %>%
data.frame(repo_name = .) %>%
mutate(repo_name = str_remove(repo_name, "github.com/")) %>%
remove_missing() %>%
mutate(namespace_url = paste0("https://raw.githubusercontent.com/",
repo_name,
"/refs/heads/master/NAMESPACE")) ->
extensions_df
read_lines("https://raw.githubusercontent.com/ggplot2-exts/gallery/refs/heads/gh-pages/_config.yml") %>%
write_lines("ext_config_yml.txt")
read_lines("ext_config_yml.txt") %>%
str_detect("ghuser:|ghrepo:") %>%
read_lines("ext_config_yml.txt")[.] %>%
matrix(ncol = 2, byrow = T) %>%
as_tibble() %>%
rename(user = V1, repo = V2) %>%
mutate(user = str_remove(user, "ghuser: ") %>% str_trim()) %>%
mutate(repo = str_remove(repo, "ghrepo: ") %>% str_trim()) ->
df_gh
"https://raw.githubusercontent.com/lionel-/ggstance/refs/heads/main/NAMESPACE"
author <- "lionel-"
package <- "ggstance"
type <- "main"
sep = "/"
paste("https://raw.githubusercontent.com/lionel-/ggstance/refs/heads/main/NAMESPACE")
paste("https://raw.githubusercontent.com", author, package,
"refs/heads", type, "NAMESPACE", sep = sep)
namespace_main <- paste("https://raw.githubusercontent.com", df_gh$user, df_gh$repo,
"refs/heads/main/NAMESPACE", sep = "/")
namespace_master <- paste("https://raw.githubusercontent.com", df_gh$user, df_gh$repo,
"refs/heads/master/NAMESPACE", sep = "/")
len <- nrow(df_gh)
namespace_main_contents <- vector(mode='list', len)
namespace_master_contents <- vector(mode='list', len)
for (i in 1:len){
try(
namespace_main_contents[[i]] <- read_lines(namespace_main[i])
)
try(
namespace_master_contents[[i]] <- read_lines(namespace_master[i])
)
namespace_contents[[1]] <- ifelse(!is.null(namespace_master_contents[[i]]),
namespace_master_contents[[i]],
ifelse(!is.null(namespace_main_contents[[i]]),
namespace_main_contents[[i]], NA))
Sys.sleep(.2)
}
length(namespace_main_contents)
length(namespace_master_contents)
length(namespace_contents)
df_gh %>%
mutate(namespace_main_contents = namespace_main_contents) %>%
unnest(namespace_contents = namespace_main_contents) %>%
select(user, repo, namespace_contents) %>%
remove_missing() ->
df_gh_main
df_gh %>%
mutate(namespace_master_contents = namespace_master_contents) %>%
unnest(namespace_contents = namespace_master_contents) %>%
select(user, repo, namespace_contents) %>%
remove_missing() ->
df_gh_master
df_gh_main %>%
bind_rows(df_gh_master) ->
df_gh
df_gh %>%
filter(str_detect(namespace_contents,"^export")) %>%
mutate(fun_exported = str_remove_all(namespace_contents,"export\\(|\\)")) %>%
select(-namespace_contents) ->
extensions_df_exports; dim(extensions_df_exports)
head(extensions_df_exports)
write_csv(extensions_df_exports, "exported_funs_exts_ggplot2_tidyverse_org.csv")