Jak wstawiać zdjęcia zgodnie z datą utworzenia z Google apps script?

0

Pytanie

Szukam pliki obrazów inesrt w slajdy Google, zgodnie z datą ich utworzenia. Mam następujący kod, który konsekwentnie wstawia obraz do slajdu w Google z folderu na dysku:

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++;
 
  }

}

Chciałbym zmienić go tak, aby obrazy miały według daty ich utworzenia (lub najnowsze, albo najstarsze). Każda uzyskana pomoc będzie doceniona. Dziękuję.

2

Najlepsza odpowiedź

2

Uważam, że twoim celem jest, aby w następnym.

  • Chcesz, aby wyodrębnić pliki obrazów z określonego folderu.
  • Chcesz umieścić obrazy w Google Slajdów w kolejności daty utworzenia pliku.
  • Chcesz osiągnąć z Google Apps script.

W tym przypadku, jak o kolejnej modyfikacji?

Gdy używana jest metoda "Pliki: lista" w API dysku, listę plików można uzyskać w kolejności tworzenia chcesz. To służy do modyfikacji.

Zmodyfikowany skrypt:

Zanim wykorzystać ten skrypt, proszę włączyć API dysku w zaawansowanych usługach Google.

function makeSlides() {
  var slideID = "###"; // Please set your Google Slides ID.
  var folderID = "###"; // Please set your folder ID.

  var presentation = SlidesApp.openById(slideID);
  var files = Drive.Files.list({orderBy: "createdDate asc", q: `'${folderID}' in parents and trashed=false and mimeType contains 'image'`, fields: "items(id)"}).items;
  files.forEach(({id}, i) => {
    var image = DriveApp.getFileById(id);
    var slide = presentation.getSlides()[i];
    var image = slide.insertImage(image);
    slide = presentation.appendSlide(SlidesApp.PredefinedLayout.BLANK);
  });
}
  • Po uruchomieniu tego skryptu lista plików pochodzących z określonego folderu w kolejności daty utworzenia pliku. W tym przypadku, orderBy: "createdDate asc" jest używany. Oznacza to, że 1-e obraz jest najstarszym obrazem. Jeśli chcesz użyć zamówienie, w którym 1-e obraz jest najnowszym, proszę, zmień go na orderBy: "createdDate desc".

Zalecenia:

2021-11-24 00:26:31

Dziękuję za odpowiedź, Танайке, to robi dokładnie to, co chcę.
sp2

@sp2 Dziękuję, że odpowiedzieliście i przetestowane. Cieszę się, że twój problem został rozwiązany. I tobie też dziękuję.
Tanaike

Witam, Танайке, uważam, że powyższy kod nie może załadować pliki z udostępnionego dysku Google (kod nie generuje błędów, to po prostu nic nie pobiera). Mogę przesłać zdjęcia tylko z własnego dysku - wiesz, co tu się dzieje?
sp2

@sp2 W sprawie dodatkowego problemu, w takim razie, proszę, zmień var files = Drive.Files.list({orderBy: "createdDate asc", q: `'${folderID}' in parents and trashed=false and mimeType contains 'image'`, fields: "items(id)"}).items; Dla var files = Drive.Files.list({orderBy: "createdDate asc", q: `'${folderID}' in parents and trashed=false and mimeType contains 'image'`, fields: "items(id)", corpora: "allDrives", includeItemsFromAllDrives: true, supportsAllDrives: true}).items;. Tak więc, pliki na dysku udostępnionym mogą być wyodrębnione.
Tanaike

Dziękuję, Танайке, to działa. Próbowałem zmienić orderBy opcja sortowania plików w kolejności 'name' i 'name_natural' itp., Jak opisano tutaj, ale to daje błąd. Dlaczego nie mogę orderBy wziąć te parametry w taki sposób?
sp2

@sp2 Dziękuję za odpowiedź. Cieszę się, że 2 - gi problem został rozwiązany. Z powodu swojego 3-go nowego wydania, chciałbym ci pomóc. Ale muszę przeprosić za swoje słaba znajomość języka angielskiego. Niestety, nie mogę tego zrozumieć. Jestem głęboko przepraszam, że nie mogę rozwiązać wszystkie twoje pytania. Jest to związane z moją słabą znajomością języka angielskiego. Jeszcze raz głęboko przepraszam za to. Czy mogę zapytać cię o szczegółach swojego 3-go wydania?
Tanaike

Witam, Танайке, jest to całkowicie zrozumiałe, nie musisz przepraszać. W zasadzie, zapytałem, jak mogę dodawać zdjęcia w kolejności alfabetycznej? Chciałem użyć orderBy : name lub orderBy : name_natural w kodzie zamiast orderBy : createdDatejak podano w linku, którym podzieliłem się, ale to nie działa, po prostu zastanawiałem się, dlaczego.
sp2

@sp2 Dziękuję za odpowiedź. Jeszcze raz przepraszam za moje złe znajomość języka angielskiego. Chociaż nie jestem pewien, czy dobrze zrozumiałem twój 2-gie pytanie, na przykład, w mojej odpowiedzi, gdy lista plików usuwa w porządku createdDateużyłem createdDate asc jako wartość. I w tym przypadku, gdy chcesz posortować listę plików według nazwy pliku, jak na temat korzystania z orderBy: "title asc"? Jeśli to nie było bezpośrednim rozwiązaniem twojego 2-go wydania, jeszcze raz przepraszam.
Tanaike
1

Jeśli chcesz, aby znajdowały się w określonym porządku, po prostu posortuj je przed dodaniem.

2021-11-23 23:55:56

Dziękuję, że podzielił się linkiem
sp2

W innych językach

Ta strona jest w innych językach

Русский
..................................................................................................................
Italiano
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................