Достаточно часто у программиста возникает необходимость (желание) один раз написать идеальный код, так чтобы в последующем можно было пользоваться результатами работы, не внося этот идеальный код в каждый проект снова.
Даже если вы, пока что, не относите себя к матёрым, возникает стойкое желание собрать свои наработки в один большой, длинный скрипт, а во всех новых проектах обращаться к функциям внутри него. Это упрощает разработку, так как позволяет сэкономить кучу времени.
Даже для таких "запущенных" случаев у google есть ответ.
Очень полезный инструмент для разработчика. Рассмотрим, для примера, код позволяющий получать данные о youtube видео - такие как название, просмотры, лайки, дизлайки:
function getInfoParser(url) {
let content = UrlFetchApp.fetch(url).getContentText()
let views = +content.match(/<meta itemprop="interactionCount" content="(.*?)"/)[1]
let name = content.match(/<meta name="title" content="(.*?)"/)[1]
let likes = content.match(/likeStatus(.*?)\}/)[1].split('/')
return({views:views,name:name,likes:+likes[0].replace(/\D/g,''),dislikes:+likes[1].replace(/\D/g,'')})
}
Данная функция получает на вход ссылку на видео, загружает страницу, достаёт нужную информацию, возвращает объект с информацией.И вторая функция:
function getInfoApi(url){
url = url.match(/v=(.*)/)[1]
let item = YouTube.Videos.list('snippet,statistics', {'id':url}).items[0]
let stat = item.statistics
let snippet = item.snippet
return ({views:stat.viewCount,name:snippet.title,likes:stat.likeCount,dislikes:stat.dislikeCount})
}
Данная функция делает абсолютно тоже самое, но получает информацию с помощью YouTube Data Api - https://developers.google.com/apps-script/advanced/youtube
И в первом случае и втором есть свои недостатки - стоит измениться чему нибудь в структуре страницы в первом случае ответа можно и не дождаться уже, во втором случае - существуют ограничения на использование api.
Вроде бы мало кода, но сколько плюсов в поиске. Но это всего лишь пример - главное сделать из этого библиотеку. Для этого нужно собрать в один скрипт две функции:
После сохранения файла - необходимо сохранить его в виде версии. Меню Файл-Версии...
Затем получить тот самый код, который позволит подключить к новому скрипту нашу библиотеку. Переходим в меню Файл-Свойства проекта, находим и копируем Идентификатор скрипта:
В новом скрипте по этому идентификатору его необходимо подключить в меню Ресурсы-Библиотеки:
Не забудем выбрать версию которую сохранили выше, если включим режим разработчика сможем использовать текущую версию скрипта без постоянного сохранения версий и замене в этом меню.
Идентификатор мы сможем выбрать любой, но по умолчанию он будет совпадать с названием скрипта. Этот идентификатор нужен чтобы обращаться из нового скрипта к библиотеке.
Набрав в новом скрипте идентификатор, в моём случае youtube, можно вызывать функции библиотеки и получать нужную информацию.
Достаточно важное замечание - если мы захотим поделиться нашей библиотекой - необходимо будет открыть доступ к скрипту хотя бы на чтение.
Делюсь - 1miGOAHkN3yG1lf0HVgA1SJ6UBw3mFV5KQK_7PI1FB4tHDu2n7oUtXiTa - код моей библиотеки.)
Будут вопросы - милости прошу в комментарии.
Комментариев нет:
Отправить комментарий