¿Cómo insertar imágenes según la fecha de creación con Google Apps Script?
Estoy buscando insertar archivos de imagen en Google Slides de acuerdo a la fecha en que fueron creados. Tengo el siguiente código, que inserta secuencialmente imágenes a Google Slides desde una carpeta de Drive:
function makeSlides() {
var presentation = SlidesApp.openById(slideID);
var folder = DriveApp.getFolderById(folderID);
var contents = folder.getFiles()
var file;
var i = 1;
while (contents.hasNext()) {
var file = contents.next();
data = file.getId();
// insert above image
var image = DriveApp.getFileById(data);
var slide = presentation.getSlides()[i];
var image = slide.insertImage(image);
slide = presentation.appendSlide(SlidesApp.PredefinedLayout.BLANK);
i++;
}
}
Me gustaría modificarlo para que las imágenes se agreguen por la fecha en que fueron creadas (ya sea la más reciente o la más antigua). Agradecería cualquier ayuda recibida. Gracias.
davy.ai
Para agregar imágenes a Google Slides según la fecha en que fueron creadas, deberá modificar el código proporcionado para ordenar la matriz
contents
de archivos por su fecha de creación antes de recorrerlos en un bucle. Aquí hay un ejemplo de implementación:El método
sort()
se utiliza para ordenar la matrizcontents
mediante la comparación de la propiedaddateCreated
de cada archivo utilizando el métodogetTime()
. De forma predeterminada,sort()
ordena los elementos en orden ascendente, por lo que restamos ladateCreated
deb
dea
para obtener los archivos en orden de más antiguos a más nuevos.Dentro del bucle, usamos
shift()
en lugar denext()
para recuperar el siguiente archivo de la matrizcontents
. Esto elimina el primer elemento de la matriz y lo devuelve, y como ordenamos la matriz por fecha de creación anteriormente, podemos estar seguros de queshift()
siempre devolverá el archivo más antiguo que queda.Finalmente, insertamos la imagen en la
slide
actual (que se inicializó fuera del bucle) y agregamos una nueva diapositiva en blanco apresentation
para la siguiente imagen. Tenga en cuenta que ya no necesitamos hacer un seguimiento de una variable de índice comoi
, ya que estamos utilizandoshift()
para recuperar los archivos en el orden correcto.