Last active
February 11, 2026 17:10
-
-
Save agran/096a3866312d19d50e81bf13d64a1c8f to your computer and use it in GitHub Desktop.
ЖёлтоЗелёные ЯндексФормы.js
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| // ==UserScript== | |
| // @name ЖёлтоЗелёные анкеты | |
| // @namespace Violentmonkey Scripts | |
| // @match https://forms.yandex.ru/u/6945198102848f07e4c8b8e3/* | |
| // @grant none | |
| // @version 3.0 | |
| // ==/UserScript== | |
| var name1 = 'Иванов'; | |
| var name2 = 'Иван'; | |
| var name3 = 'Иванович'; | |
| var tel = '+79180008892'; | |
| var pasp = '0215 232023'; | |
| var dr = '1994-12-18'; // Формат YYYY-MM-DD для localStorage | |
| var mestoPosadki = ['9008956053793110']; | |
| // Места посадки | |
| // 9008956053793110 - Галерея | |
| // 1756799074340 - Филатова | |
| // 1756799082669 - Селезнёва | |
| // 1756799095730 - ТЭЦ | |
| // 1756799101166 - Микрохирургия | |
| var telegramChat; | |
| function pad(num, size) { | |
| num = Number(num).toString(); | |
| while (num.length < size) num = "0" + num; | |
| return num; | |
| } | |
| (function() { | |
| 'use strict'; | |
| window.addEventListener('load', function() { | |
| telegramChat = prompt('Введите имя Telegram чата:', ''); | |
| if(telegramChat != null){ | |
| setTimeout(function(){ | |
| const regex = /^(\d{2})\.(\d{2})\.(\d{2})-(.+)$/gm; | |
| var result = regex.exec(telegramChat); | |
| if(!result){ | |
| console.error('Не удалось распарсить строку:', telegramChat); | |
| alert('Ошибка: неверный формат. Ожидается: ДД.ММ.ГГ-Название'); | |
| return; | |
| } | |
| console.dir(result); | |
| var day = result[1]; | |
| var month = result[2]; | |
| var god = '20' + result[3]; | |
| // Формат для localStorage | |
| var pohodDate = god + "-" + pad(month, 2) + "-" + pad(day, 2); | |
| var pohodName = result[4].replace(/[^a-zа-я0-9\s\-]/gi, ''); | |
| console.log('Дата похода для localStorage:', pohodDate); | |
| console.log('Название похода:', pohodName); | |
| // Ключ localStorage | |
| const storageKey = 'survey-6945198102848f07e4c8b8e3'; | |
| // Получаем текущие данные | |
| const currentData = JSON.parse(localStorage.getItem(storageKey) || '{}'); | |
| // Обновляем данные в localStorage | |
| const updatedData = { | |
| ...currentData, | |
| "answer_short_text_9008956053573832": pohodName, | |
| "answer_date_9008956053608350": pohodDate, | |
| "answer_short_text_9008956053654664": name1 + ' ' + name2 + ' ' + name3, | |
| "answer_date_9008956053707002": dr, | |
| "answer_short_text_9008956053726062": pasp, | |
| "answer_short_text_9008956053884332": tel, | |
| "answer_short_text_9008956053929702": 'Заполнено автоматически', | |
| "answer_choices_9008956053793100": mestoPosadki, | |
| "id-question-92764092": true, | |
| "answer_boolean_9008956053954648": true | |
| }; | |
| // Сохраняем в localStorage | |
| localStorage.setItem(storageKey, JSON.stringify(updatedData)); | |
| console.log('Данные обновлены в localStorage'); | |
| // Принудительно обновляем React-компонент | |
| function forceFormUpdate() { | |
| // Принудительно обновляем все React-компоненты | |
| const event = new Event('storage', { bubbles: true, cancelable: true }); | |
| window.dispatchEvent(event); | |
| // Ищем и обновляем все скрытые React-корни | |
| for (const key in window) { | |
| if (key.startsWith('__reactInternalInstance$') || key.startsWith('__reactFiber$')) { | |
| try { | |
| const root = window[key]; | |
| if (root && root.return && root.return.stateNode && root.return.stateNode.forceUpdate) { | |
| root.return.stateNode.forceUpdate(); | |
| } | |
| } catch (e) {} | |
| } | |
| } | |
| console.log('Принудительное обновление выполнено'); | |
| } | |
| forceFormUpdate(); | |
| // Дополнительная проверка через 1 секунду | |
| setTimeout(() => { | |
| const checkData = JSON.parse(localStorage.getItem(storageKey)); | |
| console.log('Проверка localStorage:', checkData); | |
| // Если данные не применились, пробуем еще раз | |
| if (checkData.answer_date_9008956053608350 !== pohodDate) { | |
| console.log('Данные не применились, пробуем еще раз...'); | |
| localStorage.setItem(storageKey, JSON.stringify(updatedData)); | |
| forceFormUpdate(); | |
| } | |
| }, 1000); | |
| }, 1000); | |
| } | |
| }); | |
| })(); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment