воскресенье, 1 июля 2012 г.

Google Apps Script и Google Drive, проверяем содержимое папки и отправляем почту на gmail аккаунт

Сегодня название поста еще более длинное :) Но, надеюсь, выражает суть :)

Как обычно, понадобилось мне проверять - не выложили ли обновление ice cream sandwich версии Android под мой HTC WildFire. Для начала я пошел на http://forum.xda-developers.com и нашел там необходимый мне топик [ROM][KANG][IMM76L][v24.06] Non-official CyanogenMod 9 RC-0 (у них там тоже названия не простые :) ) В данном топике билдер сборки выкладывает свои обновления на Google Drive - а значит идем туда, и добавляем эту папку к своим. Если всё сделано верно, но при заходе в корень своего google drive - мы увидим добавленную папку от ErwinP.




А теперь самое интересное. Получаем уведомление к себе на gmail аккаунт о том, что список файлов обновился.

Открываем my-drive , создаем новый скрипт - Create \ More \ Script и в него вписываем следующий код


function listFilesInFolder() {
  var folder = DocsList.getFolder('Builds');
  var contents = folder.getFiles();
  var file;
  var name;
  var starred;

  for (var i = 0; i < contents.length; i++) {
    file = contents[i];
    name = file.getName();
    starred = file.isStarred();
    if (!starred)
    {
      Logger.log(name);
      if (name.indexOf('md5sum', 0) == -1)
      {
        GmailApp.sendEmail("i@gmail.com", "ics update", name + "  url= " + file.getUrl());
      }
      file.setStarred(!starred);
    }
  }
};

Что он делает...

1. Получил каталог Builds
2. Получил в этом каталоге список файлов
3. Для каждого файла который не starred сгенерировал письмо с именем и линком на указанный адрес (в примере i@gmail.com)
4. После отправки письма установил для отправленного файла флаг starred - чтобы больше не отправлять одно и тоже.

Сохраняем. Проверяем нажатием Кнопочки Play :) После того как скрипт отработал - проверяем логи (View - Logs) - там должен быть список всех файлов в каталоге Builds от ErwinP

Если все нормально, и почта с линками успешно дошла, настраиваем периодичность проверки каталога.

Resources - Current project's triggers. Я себе установил проверку каждые 4 часа. Всё, теперь не нужно будет судорожно мониторить ни XDA ни Google Drive. Достаточно просто проверять свою почту, что , я уверен, и так все делают :)

Успешного дня!

P.S.
Стартовая идея для реализации этого была почерпнута из этого топика на хабре http://habrahabr.ru/post/145447/

2 комментария: