Last active
December 2, 2025 09:29
-
-
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/68b699a1f47e732c6827d3ff/* | |
| // @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 whatsappChat; | |
| function pad(num, size) { | |
| num = Number(num).toString(); | |
| while (num.length < size) num = "0" + num; | |
| return num; | |
| } | |
| (function() { | |
| 'use strict'; | |
| window.addEventListener('load', function() { | |
| whatsappChat = prompt('Введите имя WhatsApp чата:', ''); | |
| if(whatsappChat != null){ | |
| setTimeout(function(){ | |
| const regex = /([0-9\-]{1,5})\.([0-9]{1,2})\.([0-9]{1,4})([\w|\W]*)/gm; | |
| var result = regex.exec(whatsappChat); | |
| console.dir(result); | |
| var day = result[1]; | |
| if(day.includes('-')){ | |
| day = day.split('-')[0]; | |
| } | |
| var month = result[2]; | |
| var god = result[3]; | |
| if(god.length == 2){ | |
| god = '20' + god; | |
| } | |
| // Формат для 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-68b699a1f47e732c6827d3ff'; | |
| // Получаем текущие данные | |
| 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, | |
| "answer_short_text_9008956053674264": name2, | |
| "answer_short_text_9008956053684434": 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 forceReactUpdate() { | |
| const storageKey = 'survey-68b699a1f47e732c6827d3ff'; | |
| const currentData = JSON.parse(localStorage.getItem(storageKey)); | |
| // Проверяем текущие данные | |
| console.log('Текущие данные:', currentData); | |
| // Принудительно обновляем все 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('Принудительное обновление выполнено'); | |
| } | |
| forceReactUpdate(); | |
| // Дополнительная проверка через 2 секунды | |
| setTimeout(() => { | |
| const currentData = JSON.parse(localStorage.getItem(storageKey)); | |
| console.log('Проверка localStorage:', currentData); | |
| // Если данные не применились, пробуем еще раз | |
| if (currentData.answer_date_9008956053608350 !== pohodDate) { | |
| console.log('Данные не применились, пробуем еще раз...'); | |
| localStorage.setItem(storageKey, JSON.stringify(updatedData)); | |
| forceReactUpdate(); | |
| } | |
| }, 2000); | |
| }, 1000); | |
| } | |
| }); | |
| })(); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment