Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function encode(value) {
- return encodeURIComponent(value);
- }
- function getLetterOfAlphabet(n){
- return String.fromCharCode(96 + n);
- }
- smallColWidth = 50,
- largeColWidth = 333,
- firstColWidth = 67;
- function scrape(keyword, element) {
- var results = YouTube.Search.list('id,snippet', {q: keyword, maxResults: 5});
- var returnList=[];
- if (element=="url"){
- for(var i in results.items) {
- returnList.push("https://www.youtube.com/watch?v="+results.items[i].id.videoId);
- }
- }else{
- for(var i in results.items) {
- returnList.push(results.items[i].snippet.title);
- }
- }
- return returnList;
- }
- function everyHour(col){
- Logger.log(col);
- if (col==17){
- // Deletes all triggers in the current project.-taken directly from docs
- var triggers = ScriptApp.getProjectTriggers();
- for (var i = 0; i < triggers.length; i++) {
- ScriptApp.deleteTrigger(triggers[i]);
- }
- } else{
- everyHour(col+1);
- for (var i = 2; i<7;i++){
- Logger.log(i);
- 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());
- }
- ScriptApp.newTrigger(everyHour(col+1)).timeBased().after(1000*60).create();
- }
- }
- function onEdit(e) {
- var row = e.range.getRow();
- var col = e.range.getColumn()
- if (col == 1 && row != 1) {
- var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
- var master = spreadsheet.getActiveSheet();
- var keyword = master.getRange(row, col).getValue();
- spreadsheet.insertSheet(keyword);
- var keywordSheet = spreadsheet.getSheetByName(keyword);
- //setup the sheet
- keywordSheet.getRange(1, 1).setValue("Keyword"); //set top left cell "keyword"
- keywordSheet.getRange(1, 2).setValue(keywordSheet.getSheetName()); //set 1,2 keyword
- //set the video #n in the left column
- for (var i = 2; i < 7; i++) {
- keywordSheet.getRange(i, 1).setValue("Video #" + (i - 1).toString());
- }
- keywordSheet.getRange(1, 1, 6, 1).setFontWeight("bold"); //make left col bold
- keywordSheet.getRange(1, 3).setValue("Title"); //set 1,3 "Title"
- keywordSheet.getRange(1, 4).setValue("Views"); //set 1,4 "Views"
- keywordSheet.setColumnWidth(4, smallColWidth); //set col 4 width
- keywordSheet.getRange(1, 4).setHorizontalAlignment("center"); //set col 4 alignment
- //set time interval and col width
- for (var i = 5; i < 17; i++) {
- keywordSheet.getRange(1, i).setValue(i - 4);
- keywordSheet.setColumnWidth(i, smallColWidth);
- }
- keywordSheet.getRange(1, 3, 1, 16).setFontWeight("bold"); //set time interval bold
- //set some widths
- keywordSheet.setColumnWidth(1, firstColWidth);
- keywordSheet.setColumnWidth(2, largeColWidth);
- keywordSheet.setColumnWidth(3, largeColWidth);
- //set row heights
- for (var i = 2; i < 7; i++) {
- keywordSheet.setRowHeight(i, 35);
- }
- //finished setting up the sheet
- Logger.log(keyword);
- result=scrape(keyword,"title");
- Logger.log(result);
- //keywordSheet.getRange(2, 2).setValue(scrape(keyword, "url"));
- //keywordSheet.getRange(2, 3).setValue(scrape(keyword, "title"));
- /*for (var i=2; i<7;i++){
- keywordSheet.getRange(i,4).setValue('=value(REGEXREPLACE(text(importxml(B'+i.toString()+',"//*[contains(@class, \'watch-view-count\')]"),0)," view(s)?",""))');
- }
- Logger.log("everyHour");
- //ScriptApp.newTrigger(everyHour(5)).timeBased().after(1000*60).create();
- //everyHour(5);
- Logger.log("hello?");
- var triggers = ScriptApp.getProjectTriggers();
- for (var i = 0; i < triggers.length; i++) {
- Logger.log(triggers[i]);
- }
- //Utilities.sleep(1000*1)*/
- }
- }
- function test(){
- var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
- var master = spreadsheet.getActiveSheet();
- keyword=master.getActiveCell().getValue();
- result=scrape(keyword,"url");
- Logger.log(result);
- spreadsheet.insertSheet(keyword);
- var keywordSheet = spreadsheet.getSheetByName(keyword);
- keywordSheet.getRange(1,1).setValue(result);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement