#' Téléverse l'ensemble des médias appartenant à une campagnes
#'
#' @param x `vector` of campaign ids
#' @inheritParams get_gen
#' @return
#' Sauvegarde les images/sons attachés aux campagnes à une emplacement défini par l'utilisateur
#' @examples
#' \dontrun{
#' list_medias(x = c(101,104))
#' Par exemple, on veut obtenir toutes les photos prises dans le cadre d'une campagne sur le site 141_108_F01 et portant sur les mammifères
#' get_medias(list_medias(x = c(101,104)))
#' }
#' @export
list_medias <- function(x, ...){
# Preparation de l'objet de sortie
responses <- list()
class(responses) <- "coleoGetResp"
endpoint <- endpoints()$media
for(r in 1:length(x)){
responses[[r]] <- get_gen(endpoint, query = list(campaign_id = x[r]), ...)
}
media <- as.data.frame(responses)
# On regarde si la campagne contient des médias
if(nrow(media) == 0){
stop("Aucun média attaché à ces campagnes")
}
media$uri <- paste0("/media/",media$type,"/",media$uuid,"/original")
class(media) <- c("tbl_df", "tbl", "data.frame", "listMedias")
return(media)
}
#' Télécharge l'ensemble des médias appartenant à une campagnes
#'
#' @param output_dir `character` contenant le chemin d'accès vers le répetoire d'écriture des médias
#' @param verbose `logical` mode verbose
#' @inheritParams list_medias
#' @return
#' Sauvegarde les images/sons attachés aux campagnes à une emplacement définit par l'utilisateur
#' @examples
#' \dontrun{
#' Par exemple, on veut obtenir toutes les photos prises dans le cadre d'une campagne sur le site 141_108_F01 et portant sur les mammifères
#' get_medias(site_code="141_108_F01", type="mammifères")
#' }
#' @export
get_medias <- function(media, output_dir = "./media", verbose = TRUE, ...) {
stopifnot("listMedias" %in% class(media))
# On créer le répertoire de sortie, s'il n'existe pas
dir.create(output_dir)
cat("Téléversement en cours... \n")
cat("0 sur", nrow(media), "\r")
# Mieux gérer la progress bar
# Vérifier si bug dans les chemins avec Windows
for(m in 1:nrow(media)){
if(verbose){
if((m %% 100) == 0) {
cat(m, "sur", nrow(media), "\r")
}
}
httr::GET(
url = paste0(server(),media$uri[m]),
config = httr::add_headers(Authorization = paste("Bearer", ifelse(is.na(bearer()),token,bearer()))),
ua, httr::write_disk(file.path(output_dir,paste0(media$name[m],media$og_extention[m])), overwrite=TRUE)
)
}
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.