Skip to content

Commit

Permalink
Merge pull request #8 from inbo/sync-googledrive
Browse files Browse the repository at this point in the history
Sync googledrive
  • Loading branch information
wlangera authored Feb 27, 2024
2 parents a3ab234 + cf1d262 commit 2215424
Show file tree
Hide file tree
Showing 2 changed files with 59 additions and 0 deletions.
30 changes: 30 additions & 0 deletions source/R/include_from_drive.R
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
# Functie om bestanden van google drive te downloaden (voor rapporten)
include_from_drive <- function(name, figures = figs, overwrite = FALSE, ...) {
common_part <- fs::path_common(figures$path)
the_fig <- figures[figures$name == name, ]
full_path <- the_fig$path
rel_path <- fs::path_rel(full_path, common_part)
local_path <- fs::path("media", rel_path)

# loop indien meerdere bestanden met zelfde naam maar in andere folders
for (i in seq_along(local_path)) {
# maak de folderstructuur als deze nog niet bestaat
fs::dir_create(fs::path_dir(local_path[i]))
# met overwrite = FALSE, zal de functie een error geven als de file al bestaat
# daarom twee gevallen toelaten:
# 1: overwrite = TRUE
if (overwrite) {
df <- drive_download(
file = the_fig[i, ],
path = local_path[i],
overwrite = overwrite)
}
# 2: bestand bestaat nog niet, download het
if (!file.exists(local_path[i])) {
df <- drive_download(
file = the_fig[i, ],
path = local_path[i],
overwrite = overwrite)
}
}
}
29 changes: 29 additions & 0 deletions source/bookdown/mas_uitrol_vlaanderen/index.Rmd
Original file line number Diff line number Diff line change
Expand Up @@ -109,3 +109,32 @@ if (interactive()) {
)
}
```

```{r googledrive, include = FALSE}
# authenticatie google drive
library(googledrive)
googledrive::drive_auth(email = "*@inbo.be")
# source functie om figuren te downloaden van google drive
source("../../R/include_from_drive.R")
# google drive verwijzing naar figuren
sdf <- shared_drive_find("PRJ_MBAG") %>%
drive_ls(pattern = "4a_mas", type = "folder") %>%
drive_ls(pattern = "rapporten", type = "folder") %>%
drive_ls(pattern = "mas_uitrol_vlaanderen", type = "folder") %>%
drive_ls(pattern = "media", type = "folder")
figs <- sdf %>%
drive_ls(recursive = TRUE, type = c("pdf", "jpg", "png")) %>%
drive_reveal(what = "webViewLink") %>%
drive_reveal(what = "webContentLink") %>%
drive_reveal(what = "path") %>%
drive_reveal(what = "fileExtension")
# get figures from google drive
# set overwrite = TRUE if necessary!
for (file_name in figs$name) {
include_from_drive(name = file_name, figures = figs, overwrite = FALSE)
}
```

0 comments on commit 2215424

Please sign in to comment.