Уже достаточно продолжительное время сервисы Google являются одним из моих основных рабочих инструментов, поэтому неудивительно, что возникло желание разобраться, как можно ещё "дотюнить" их под свои нужды. Не то, чтобы у меня была какая-то критическая необходимость в определённых, ещё не реализованных, функциях, но добавить немного автоматизации для нескольких рутинных операций совсем не помешало бы.
Для написания своих скриптов к Google Apps существует специальный клон JS - Google Apps Script. Его использование не требует установки дополнительного ПО. Писать код, отлаживать и запускать можно прямо в браузере.
Для создания скрипта нужно открыть в браузере Google Disk, нажать кнопку "CREATE" и выбрать в выпадающем списке пункт "Script". Если такого пункта нет, то нужно подключить приложение Google Apps Script к диску. Делается это с помощью диалога управления приложениями, запускающегося из меню настроек диска. В процессе создания нового скрипта будет предложено выбрать один из готовых шаблонов для популярных приложений. Можно поэкспериментировать с шаблонами, а можно выбрать "Blank Project". Особого смысла в использовании шаблонов я не увидел.
В качестве "пробы пера" напишем скрипт, который будет запускаться раз в час, проверять папку "tmp" на гугл-диске и, если в папке содержатся файлы zip-архивов, будет распаковывать их в эту же папку.
Назовём проект "autounzip". Так же назовём и функцию, которая будет содержать весь код, реализующий задуманное.
function autounzip() { // Проверяем все папки 'tmp' на гугул-диске var folders = DriveApp.getFoldersByName('tmp'); while (folders.hasNext()) { var folder = folders.next(); // Ищем все сохранённые zip-архивы var contents = folder.searchFiles('mimeType="application/zip"'); while (contents.hasNext()) { var fileContents = contents.next(); var unzipblobs = Utilities.unzip(fileContents.getBlob()); for (var i = 0; i < unzipblobs.length; i++) { folder.createFile(unzipblobs[i]); } } } }
После запуска скрипта появится сообщение "Authorization required". Нажимаем кнопку "Continue". В открывшемся окне нажимаем "Accept". Этими действиями говорим гуглу, что мы не против, если наш скрипт получит доступ к данным диска. После разрешения доступа скрипт появится в списке подключенных к диску приложений.
Теперь нужно добиться, чтобы написанный скрипт запускался каждый час. В меню документа выбираем пункт "Resources\Current project's triggers". Добавляем новый триггер с параметрами Run - autounzip, Events - Time-driven, Hour timer, Every hour. Сохраняем триггер. Всё. Осталось дождаться автоматического запуска этого скрипта и проверить результат его работы.
Официальный скринкаст от Google с созданием простенького скрипта можно посмотреть на ютубе.