diff --git a/.Rbuildignore b/.Rbuildignore index 91114bf..ea84996 100644 --- a/.Rbuildignore +++ b/.Rbuildignore @@ -1,2 +1,4 @@ ^.*\.Rproj$ ^\.Rproj\.user$ +^\.positai$ +^\.claude$ diff --git a/.gitignore b/.gitignore index 094bf0c..3250893 100644 --- a/.gitignore +++ b/.gitignore @@ -9,3 +9,4 @@ spell_check_results.tsv .httr-oauth docker/git_token.txt .Rproj.user +.positai diff --git a/index.Rmd b/index.Rmd index 1943a3d..9b8099c 100644 --- a/index.Rmd +++ b/index.Rmd @@ -61,6 +61,14 @@ source("scripts/render_youtube_list.R") knitr::kable(make_youtube_table("resources/youtube_demos_data.csv"), format = "html") ``` +### AnVIL Workshops {-} + +```{r, echo = FALSE, message = FALSE, warning = FALSE} +source("scripts/render_youtube_list.R") + +knitr::kable(make_youtube_table("resources/youtube_workshop_data.csv"), format = "html") +``` + ### AnVIL WDL {-} ```{r, echo = FALSE, message = FALSE, warning = FALSE} @@ -71,7 +79,7 @@ knitr::kable(make_youtube_table("resources/youtube_anvil_wdl_data.csv"), format ## GDSCN {-} -Check out the GDSCN YouTube channel: https://www.youtube.com/@genomicdatasciencecommunit2514 +Check out the GDSCN YouTube channel: https://www.youtube.com/@genomicDScommunity ### SARS with Galaxy on AnVIL {-} diff --git a/scripts/query_youtube.R b/scripts/query_youtube.R index d3cab0b..9175b23 100644 --- a/scripts/query_youtube.R +++ b/scripts/query_youtube.R @@ -34,6 +34,7 @@ shorts_playlist_id <- "PL6aYJ_0zJ4uCABkMngSYjPo_3c-nUUmio" demos_playlist_id <- "PL6aYJ_0zJ4uC978C57P3TgAAfB38uy58E" getting_started_playlist_id <- "PL6aYJ_0zJ4uD6SSVIuES9b79-00qvecHb" wdl_playlist_id <- "PL6aYJ_0zJ4uB1dXNWtmisnX51hMSxrE_j" +virtual_workshops_id <- "PL6aYJ_0zJ4uBbLD-Yf5QOcQMMVY_XuftY" gdscn_sars_playlist_id <- "PLzgm426KgvriINOUpgrBjTZXHIDZXOOz0" gdscn_soil_project_playlist_id <- "PLzgm426KgvrhheloBdlSWshM9v2VvJEcX" @@ -159,6 +160,7 @@ write_playlist_details(playlist_id = shorts_playlist_id, outfile = "youtube_shor write_playlist_details(playlist_id = demos_playlist_id, outfile = "youtube_demos_data.csv") write_playlist_details(playlist_id = getting_started_playlist_id, outfile = "youtube_getting_started_data.csv") write_playlist_details(playlist_id = wdl_playlist_id, outfile = "youtube_anvil_wdl_data.csv") +write_playlist_details(playlist_id = virtual_workshops_id, outfile = "youtube_workshop_data.csv") write_playlist_details(playlist_id = gdscn_sars_playlist_id, outfile = "youtube_gdscn_sars_data.csv") write_playlist_details(playlist_id = gdscn_soil_project_playlist_id, outfile = "youtube_gdscn_soil_project_data.csv") \ No newline at end of file diff --git a/scripts/render_youtube_list.R b/scripts/render_youtube_list.R index ed08a7a..00bcc41 100644 --- a/scripts/render_youtube_list.R +++ b/scripts/render_youtube_list.R @@ -20,28 +20,33 @@ make_youtube_table <- function(infile) { df <- df %>% filter(status.privacyStatus == "public") %>% # Don't print unlisted videos - select(snippet.title, snippet.description, snippet.playlistId, snippet.resourceId.videoId) + select(snippet.title, contentDetails.videoPublishedAt, snippet.description, snippet.playlistId, snippet.resourceId.videoId) # Create actual url of video df <- df %>% mutate(`Video` = paste0("[",snippet.title,"](https://www.youtube.com/watch?v=", snippet.resourceId.videoId, "&list=", snippet.playlistId, ")")) + + # Create date posted + df <- df %>% + mutate(Date = format(contentDetails.videoPublishedAt, "%Y-%m-%d")) # Extract slides link - df$`Google Slides` <- + df$Slides <- df$snippet.description %>% - str_extract_all("https://docs.google.com/presentation/d/.*") %>% + str_extract_all("https://docs.google.com/presentation/d/.*|https://drive.google.com/file/d/.*") %>% str_remove_all("\\.$") # Remove trailing period # Create Google Slides link w/ markdown magic df <- df %>% - mutate(`Google Slides` = paste0("[Go to slides](", `Google Slides`, ")")) %>% - select(Video, `Google Slides`) %>% - mutate(`Google Slides` = case_when(`Google Slides` == "[Go to slides](character(0))" ~ "N/A", # Often, there are no slides on the video description - `Google Slides` == "[Go to slides](NA)" ~ "N/A", - TRUE ~ `Google Slides`)) + mutate(Slides = paste0("[Go to slides](", Slides, ")")) %>% + select(Video, Date, Slides) %>% + mutate(Slides = case_when(Slides == "[Go to slides](character(0))" ~ "N/A", # Often, there are no slides on the video description + Slides == "[Go to slides](NA)" ~ "N/A", + TRUE ~ Slides)) # Remove duplicates if necessary - df <- distinct(df) + df <- distinct(df) %>% + arrange(desc(Date)) return(df) },