Google Script выполняет только одну функцию, а не ответ в чате - PullRequest
0 голосов
/ 10 июля 2020

У меня проблема с этим кодом из моей прямой трансляции, он работает со стримерами из чата прямых трансляций. Я перепрофилировал сценарий команды todo, который копировал текст от пользователей в таблицу Google, мой предназначен для ставок на «завершение раунда» перед матчем. Я расширил базовую c вещь и добавил к ней несколько вещей, например, я написал таймер обратного отсчета и подключил к нему submit. Таким образом, он не принимает ставки, когда обратный отсчет не идет. Единственное, что осталось, это возможность запускать скрипт таймера из чата, это работает, но по какой-то причине он не запускает и функциональную строку, и строку возврата, поэтому бот отправляет сообщение о тайм-ауте в чат ( таймер запускается правильно), если возвращается первая строка, это выполняется, но не функция. Вот мой скомбинированный код:

function doGet(request) {
  var start = (request.parameter.start || "").trim();
  if (start == '1') {
    updateCell();   
    return ContentService.createTextOutput('Tippjáték elindult!'); 
  }
  else {
  if (SpreadsheetApp.getActiveSheet().getRange('C1').getValue() == '0'){
    return ContentService.createTextOutput('Nem fut Tippjáték');
  }
  else {
  var todo = (request.parameter.todo || "").trim();
  if (todo == '') {
    return ContentService.createTextOutput('Tippet írnod kell!');
  }
  SpreadsheetApp.getActiveSheet().appendRow([todo]);
  return ContentService.createTextOutput('');
    }
  }
}

function updateCell() { 
  var date = new Date();
  SpreadsheetApp.getActiveSheet().getRange("E5").setValue(date);
  SpreadsheetApp.flush();
  var s = SpreadsheetApp.getActiveSheet();
  var time = s.getRange('F3').getValues();
  s.getRange('F2').setValue(time);
  
  for (i=0; i<15; i++){
    Utilities.sleep(950);
    SpreadsheetApp.getActiveSheet().getRange("E5").setValue(date);
    SpreadsheetApp.flush();
  } 
}

Две команды из streamelements настроены следующим образом:

${customapi.https://script.google.com/macros/s/SCRIPTPATH/exec?todo=$(queryencode "$(1:) - $(user)")}

${customapi.https://script.google.com/macros/s/SCRIPTPATH/exec?start=$(queryencode "1")}

Первая - это простая отправка, а вторая - как я пытался сделать запуск таймера. Это отдельные команды от чата.

Кто-нибудь может взглянуть на это? Это может быть что-то действительно простое, но я не так хорошо разбираюсь в скриптах.

1 Ответ

0 голосов
/ 10 июля 2020

this var time = s.getRange('F3').getValues(); должно быть это var time = s.getRange('F3').getValue();

Я не понимаю сути этого:

for (i=0; i<15; i++){
    Utilities.sleep(950);
    SpreadsheetApp.getActiveSheet().getRange("E5").setValue(date);
    SpreadsheetApp.flush();
  } 
...