Advertisement
Guest User

Untitled

a guest
Feb 25th, 2018
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function encode(value) {
  2.   return encodeURIComponent(value);
  3. }
  4. function getLetterOfAlphabet(n){
  5.   return String.fromCharCode(96 + n);
  6. }
  7. smallColWidth = 50,
  8. largeColWidth = 333,
  9. firstColWidth = 67;
  10.  
  11. function scrape(keyword, element) {
  12.   var results = YouTube.Search.list('id,snippet', {q: keyword, maxResults: 5});
  13.   var returnList=[];
  14.   if (element=="url"){
  15.     for(var i in results.items) {
  16.       returnList.push("https://www.youtube.com/watch?v="+results.items[i].id.videoId);
  17.     }
  18.   }else{
  19.     for(var i in results.items) {
  20.       returnList.push(results.items[i].snippet.title);
  21.     }
  22.   }
  23.   return returnList;
  24. }
  25.  
  26. function everyHour(col){
  27.   Logger.log(col);
  28.   if (col==17){
  29.     // Deletes all triggers in the current project.-taken directly from docs
  30.     var triggers = ScriptApp.getProjectTriggers();
  31.     for (var i = 0; i < triggers.length; i++) {
  32.       ScriptApp.deleteTrigger(triggers[i]);
  33.     }
  34.   } else{
  35.     everyHour(col+1);
  36.     for (var i = 2; i<7;i++){
  37.       Logger.log(i);
  38.       keywordSheet.getRange(getLetterOfAlphabet(col)+i.toString()).setValue('=value(REGEXREPLACE(text(importxml(B'+i.toString()+',"//*[contains(@class, \'watch-view-count\')]"),0)," view(s)?",""))-'+getLetterOfAlphabet(col-1)+i.toString());
  39.     }
  40.     ScriptApp.newTrigger(everyHour(col+1)).timeBased().after(1000*60).create();
  41.   }
  42. }
  43.  
  44. function onEdit(e) {
  45.   var row = e.range.getRow();
  46.   var col = e.range.getColumn()
  47.   if (col == 1 && row != 1) {
  48.     var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
  49.     var master = spreadsheet.getActiveSheet();
  50.     var keyword = master.getRange(row, col).getValue();
  51.     spreadsheet.insertSheet(keyword);
  52.     var keywordSheet = spreadsheet.getSheetByName(keyword);
  53.    
  54.    
  55.    
  56.     //setup the sheet
  57.     keywordSheet.getRange(1, 1).setValue("Keyword"); //set top left cell "keyword"
  58.     keywordSheet.getRange(1, 2).setValue(keywordSheet.getSheetName()); //set 1,2 keyword
  59.     //set the video #n in the left column
  60.     for (var i = 2; i < 7; i++) {
  61.       keywordSheet.getRange(i, 1).setValue("Video #" + (i - 1).toString());
  62.     }
  63.     keywordSheet.getRange(1, 1, 6, 1).setFontWeight("bold"); //make left col bold
  64.     keywordSheet.getRange(1, 3).setValue("Title"); //set 1,3 "Title"
  65.     keywordSheet.getRange(1, 4).setValue("Views"); //set 1,4 "Views"
  66.     keywordSheet.setColumnWidth(4, smallColWidth); //set col 4 width
  67.     keywordSheet.getRange(1, 4).setHorizontalAlignment("center"); //set col 4 alignment
  68.     //set time interval and col width
  69.     for (var i = 5; i < 17; i++) {
  70.       keywordSheet.getRange(1, i).setValue(i - 4);
  71.       keywordSheet.setColumnWidth(i, smallColWidth);
  72.     }
  73.     keywordSheet.getRange(1, 3, 1, 16).setFontWeight("bold"); //set time interval bold
  74.     //set some widths
  75.     keywordSheet.setColumnWidth(1, firstColWidth);
  76.     keywordSheet.setColumnWidth(2, largeColWidth);
  77.     keywordSheet.setColumnWidth(3, largeColWidth);
  78.     //set row heights
  79.     for (var i = 2; i < 7; i++) {
  80.       keywordSheet.setRowHeight(i, 35);
  81.     }
  82.     //finished setting up the sheet
  83.    
  84.    
  85.    
  86.     Logger.log(keyword);
  87.     result=scrape(keyword,"title");
  88.     Logger.log(result);
  89.     //keywordSheet.getRange(2, 2).setValue(scrape(keyword, "url"));
  90.     //keywordSheet.getRange(2, 3).setValue(scrape(keyword, "title"));
  91.     /*for (var i=2; i<7;i++){
  92.       keywordSheet.getRange(i,4).setValue('=value(REGEXREPLACE(text(importxml(B'+i.toString()+',"//*[contains(@class, \'watch-view-count\')]"),0)," view(s)?",""))');
  93.     }
  94.     Logger.log("everyHour");
  95.     //ScriptApp.newTrigger(everyHour(5)).timeBased().after(1000*60).create();
  96.     //everyHour(5);
  97.     Logger.log("hello?");
  98.     var triggers = ScriptApp.getProjectTriggers();
  99.     for (var i = 0; i < triggers.length; i++) {
  100.       Logger.log(triggers[i]);
  101.     }
  102.     //Utilities.sleep(1000*1)*/
  103.   }
  104. }
  105. function test(){
  106.   var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
  107.   var master = spreadsheet.getActiveSheet();
  108.   keyword=master.getActiveCell().getValue();
  109.   result=scrape(keyword,"url");
  110.   Logger.log(result);
  111.   spreadsheet.insertSheet(keyword);
  112.   var keywordSheet = spreadsheet.getSheetByName(keyword);
  113.   keywordSheet.getRange(1,1).setValue(result);
  114. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement