Advertisement
Namokonov

getChannelsDetails

Dec 13th, 2021
1,238
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function getChannelsDetails() {
  2.   let ss = SpreadsheetApp.getActive();
  3.   let sh_settings = ss.getSheetByName('Настройки');
  4.   let sh_paste = ss.getSheetByName('Результат');
  5.  
  6.   sh_settings.getDataRange().getValues().slice(1)
  7.     .forEach(row => {
  8.       if (row[1]) {
  9.         let members, online, bio
  10.         let url = `${row[0]}/?pagehidden=false`;
  11.  
  12.         let response = UrlFetchApp.fetch(url).getContentText();
  13.         let match_members = response.match(/"tgme_page_extra">(.+?)<\/div>/)?.[1];
  14.         if (match_members) {
  15.           [members, online] = match_members.replace(/members|online|subscribers|\/s/g, '').split(',')
  16.         }
  17.         bio = response.match(/tgme_page_description" dir="auto">(.+?)<\/div>/)?.[1];
  18.         let row_to_paste = [[new Date(), row[0], members, online, bio]];
  19.         sh_paste.insertRowBefore(2);
  20.         sh_paste.getRange(2, 1, row_to_paste.length, row_to_paste[0].length).setValues(row_to_paste);
  21.       }
  22.     })
  23. }
  24.  
  25. function onOpen(e) {
  26.   SpreadsheetApp.getUi()
  27.     .createMenu("❄️")
  28.     .addItem("парсим!", "getChannelsDetails")
  29.     .addToUi();
  30. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement