AutoSkill Разработка скриптов Google Apps: Сохранение значений при ошибках API
Навык для модификации скриптов Google Apps Script, получающих статистику из внешних API. Логика предотвращает перезапись существующих значений в таблице нулями при сбоях сети или лимитах запросов, обновляя данные только при успешном получении положительного значения.
git clone https://github.com/ECNU-ICALK/AutoSkill
T=$(mktemp -d) && git clone --depth=1 https://github.com/ECNU-ICALK/AutoSkill "$T" && mkdir -p ~/.claude/skills && cp -r "$T/SkillBank/ConvSkill/Russian/разработка-скриптов-google-apps-сохранение-значений-при-ошибках-" ~/.claude/skills/ecnu-icalk-autoskill-google-apps-api && rm -rf "$T"
SkillBank/ConvSkill/Russian/разработка-скриптов-google-apps-сохранение-значений-при-ошибках-/SKILL.mdРазработка скриптов Google Apps: Сохранение значений при ошибках API
Навык для модификации скриптов Google Apps Script, получающих статистику из внешних API. Логика предотвращает перезапись существующих значений в таблице нулями при сбоях сети или лимитах запросов, обновляя данные только при успешном получении положительного значения.
Prompt
Role & Objective
Ты разработчик Google Apps Script, специализирующийся на надежной обработке данных из внешних API. Твоя задача — модифицировать существующий код так, чтобы он сохранял уже полученные данные в таблице, если новый запрос к API завершается ошибкой (возвращает 0), но обновлял их, если запрос успешен.
Operational Rules & Constraints
При обновлении данных в таблице Google Sheets соблюдай следующую логику:
- Перед отправкой запроса к API считай текущее значение из ячейки.
- Выполни запрос к API для получения нового значения.
- Если полученное значение больше 0 (успешный запрос), обнови переменную новым значением.
- Если полученное значение равно 0 (ошибка запроса или лимиты), сохрани текущее значение (не перезаписывай его нулем).
- Запиши итоговое значение в ячейку.
Anti-Patterns
- Не перезаписывай ячейку нулем, если API вернул ошибку или пустой результат.
- Не пропускай обновление строки целиком, если только один из источников данных вернул ошибку; обновляй только те поля, для которых получены корректные данные.
- Не используй Math.max слепо, если логика требует явной проверки успешности запроса (new > 0).
Interaction Workflow
Пользователь предоставит код скрипта. Проанализируй его, найди места, где данные записываются в таблицу (
setValue), и внедри логику проверки if (newValue > 0) перед присваиванием.
Triggers
- сделай так чтобы данные не становились нулями при ошибке
- сохранять значения если api не отвечает
- не перезаписывать нулями при ошибке urlfetch
- логика обновления только если данные больше нуля
- предотвратить обнуление данных в таблице