Html code will be here

from pathlib import Path import zipfile, html, textwrap, json, re out_dir = Path("/mnt/data") html_path = out_dir / "tilda_love_scenario_test_FINAL.html" script_path = out_dir / "google_sheets_apps_script_FINAL.gs" readme_path = out_dir / "README_TILDA_FINAL.txt" zip_path = out_dir / "tilda_love_scenario_test_FINAL_package.zip" questions = [ { "q":"Когда вы можете сказать, что чувствуете себя по-настоящему любимой?", "a":[ "Когда он уважает мой выбор, ценит моё мнение и принимает меня такой, какая я есть. Когда понимает, что иногда мне нужно побыть одной, заняться своими делами или просто остаться наедине с собой, и относится к этому с пониманием и уважением.", "Когда нам всегда есть о чём поговорить, когда мы с удовольствием проводим время вместе и искренне интересуемся жизнью друг друга, оставаясь важной частью жизни друг друга каждый день.", "Когда я уверена, что могу положиться на него в любой ситуации и чувствую себя рядом с ним как за каменной стеной. Когда знаю, что в трудный момент он обязательно будет рядом и поддержит меня.", "Когда ему искренне интересно моё мнение, когда он советуется со мной, спрашивает моего совета и прислушивается к тому, что я говорю. В такие моменты я чувствую, что он уважает меня и дорожит мной.", "Когда между нами есть особая душевная близость и доверие, когда мы проводим много времени вместе, делимся друг с другом самым сокровенным и знаем, что друг для друга мы - самые важные люди в жизни." ]}, { "q":"Вы замечаете, что партнёр стал реже писать, звонить и проводить время вместе. Как вы реагируете?", "a":[ "Сначала уточняю, что происходит, не делая поспешных выводов.", "Немного переживаю, но понимаю, что у каждого бывают периоды занятости и свои обстоятельства.", "Стараюсь сама чаще инициировать общение и встречи, чтобы поддерживать контакт между нами.", "Начинаю анализировать ситуацию и искать причины, почему партнёр стал уделять отношениям меньше внимания.", "Чувствую сильную тревогу и страх расставания." ]}, { "q":"Как вы думаете, что ваш партнёр больше всего ценит в ваших отношениях?", "a":[ "То, что рядом со мной можно оставаться собой. Я уважаю его выбор, интересы и личное пространство, не пытаясь контролировать или переделывать его.", "То, что между нами есть тепло, искренний интерес друг к другу и ощущение эмоциональной близости. Нам по-настоящему интересно проводить время вместе.", "То, что в трудную минуту он всегда может рассчитывать на мою помощь. Если у него что-то не получается или возникают сложности, я сделаю всё возможное, чтобы помочь ему справиться.", "То, что у него всегда есть с кем посоветоваться. Я помогаю разобраться в сложных ситуациях, посмотреть на проблему с другой стороны и найти хорошее решение.", "То, что он занимает важное место в моей жизни. Он чувствует, что я думаю о нём, переживаю за него и уделяю нашим отношениям большое внимание." ]}, { "q":"Вы выбираете новую машину. Вам очень нравится один цвет, партнёру - совсем другой. Что вы будете делать?", "a":[ "Спокойно объясню свою позицию и постараюсь найти решение, которое будет учитывать интересы нас обоих.", "Буду искать компромисс, чтобы в итоге оба остались довольны выбором.", "Скорее уступлю, даже если мне больше нравится другой вариант. Мне приятно, когда партнёр доволен и получает то, что хочет.", "Постараюсь убедить партнёра, что мой вариант более разумный и практичный.", "Скорее соглашусь с партнёром, потому что мне будет тревожно из-за возможного конфликта или напряжения между нами." ]}, { "q":"У вас выходные, а партнёр хочет провести время с друзьями без вас. Как вы это воспринимаете?", "a":[ "Я спокойно отношусь к этому. Мне кажется нормальным, когда у каждого есть свои друзья, интересы и время отдельно друг от друга.", "Мне немного жаль, что мы не проведём этот день вместе, но я понимаю желание партнёра пообщаться с друзьями и спокойно отношусь к его выбору.", "Мне кажется, что вместе мы могли бы провести этот день лучше и интереснее, поэтому мне бывает сложно понять такой выбор.", "Мне становится интересно, почему партнёр захотел провести время отдельно и чем именно он собирается заниматься.", "Мне бывает тяжело это принять. Я могу чувствовать обиду, тревогу или переживать, что между нами появляется дистанция." ]}, { "q":"Ваша мама заболела. Уже около месяца вы каждый день разговариваете с ней по телефону примерно по полчаса и регулярно навещаете её. Партнёр говорит, что это начинает мешать вашим отношениям. Какая реакция вам ближе всего?", "a":[ "Сначала я постараюсь честно оценить ситуацию. Если пойму, что общение с мамой действительно начинает вредить нашим отношениям, спокойно предложу такой формат помощи, который позволит заботиться о маме, не забывая о партнёре.", "Мне важно, чтобы никто не чувствовал себя одиноким или обделённым. Я постараюсь уделять достаточно внимания и маме, и партнёру, чтобы сохранить близость с обоими.", "Пока мама нуждается во мне, я, скорее всего, продолжу уделять ей столько времени, сколько потребуется, даже если ради этого придётся отложить собственные планы или отношения.", "Мне важно контролировать ситуацию. Я хочу знать всё, что происходит с мамой, чтобы ничего не упустить и принимать правильные решения. Я объясню партнёру, почему сейчас считаю это необходимым.", "Эта ситуация вызовет у меня сильное внутреннее напряжение. Мне будет казаться, что любой мой выбор причинит боль кому-то из самых близких людей." ]}, { "q":"Вы соскучились и звоните партнёру в разгар рабочего дня. Он отвечает: «Я сейчас очень занят и не могу говорить, давай созвонимся вечером». Как вы реагируете?", "a":[ "Конечно, удачи с делами, созвонимся вечером! Спокойно принимаю отказ и переключаюсь на свои дела.", "Ничего страшного, поговорим позже. Немного расстраиваюсь, но понимаю, что у партнёра действительно могут быть важные дела.", "Понятно. Если что-то понадобится - звони. Стараюсь не отвлекать партнёра и отношусь с пониманием к его занятости.", "Мне становится интересно, что именно происходит и почему он не может уделить мне даже несколько минут. Хочется разобраться в ситуации.", "Мне становится тревожно. Я начинаю переживать, не отдаляется ли он от меня и всё ли в порядке в наших отношениях." ]}, { "q":"Вам предстоит провести неделю в больнице. Партнёр находится в длительной командировке и не может приехать к вам лично. Как вы себя чувствуете?", "a":[ "Я чувствую себя не лучшим образом, но знаю, что справлюсь. Мне важно знать, что партнёр помнит обо мне, интересуется моим состоянием и поддерживает меня настолько, насколько это возможно в его обстоятельствах.", "Больше всего мне важно оставаться с партнёром на связи. Регулярные разговоры, сообщения и ощущение эмоциональной близости помогают мне чувствовать себя гораздо лучше.", "Мне бы хотелось, чтобы партнёр по возможности помог решить те бытовые вопросы, которыми я сейчас не могу заниматься: дела дома, документы, покупки или другие важные задачи.", "Мне спокойнее, если партнёр поможет разобраться в ситуации, узнает необходимую информацию, обсудит со мной рекомендации врачей и поможет принять правильные решения.", "Мне очень тяжело без его присутствия. Я могу чувствовать себя одиноко и покинуто, поэтому мне очень важно ощущать, что я остаюсь главным человеком в его жизни и что он старается быть максимально вовлечённым в происходящее." ]}, { "q":"Когда в отношениях что-то идёт не так, что тревожит вас больше всего?", "a":[ "Партнёр игнорирует мои чувства, перебивает меня, не прислушивается к моему мнению или принимает важные решения без учёта моих желаний.", "Что мы всё реже проводим время вместе, меньше разговариваем по душам и постепенно теряем ту близость, которая была между нами раньше.", "Что партнёр всё меньше нуждается в моей помощи, поддержке и участии, а я начинаю чувствовать себя ненужным(ой) или незначимым(ой) в его жизни.", "Что я не понимаю, что происходит в отношениях: партнёр ведёт себя иначе, избегает разговоров о будущем, и я не знаю, чего ожидать дальше.", "Что партнёр может охладеть ко мне, потерять интерес или решить закончить отношения." ]}, { "q":"Партнёр столкнулся с серьёзными трудностями на работе. Из-за этого он переживает и часто говорит о своих проблемах. Как вы скорее всего будете себя вести?", "a":[ "Буду рядом, поддержу его эмоционально, но оставлю ему право самостоятельно принимать решения и справляться с ситуацией.", "Постараюсь помочь всем, чем смогу, если он сам попросит моей помощи.", "Почувствую, что обязана помочь ему выбраться из этой ситуации, даже если для этого придётся отложить собственные дела и интересы.", "Буду активно предлагать решения, давать советы и следить за тем, чтобы он не совершал ошибок.", "Полностью погружусь в его переживания и проблемы, как будто это происходит со мной." ]}, { "q":"Вы собрались провести выходной с родственниками. Но партнёр неожиданно предлагает провести этот день вместе и отказаться от ваших планов. Как вы поступите?", "a":[ "Скажу, что у меня уже есть планы, и сделаю так, как решила заранее.", "Постараюсь найти компромисс, чтобы учесть и свои планы, и желание партнёра.", "Скорее всего подстроюсь под партнёра, если понимаю, что для него это действительно важно.", "Обычно отказываюсь от своих планов, чтобы избежать обид, конфликтов или напряжения в отношениях.", "Без сомнений выберу планы партнёра, потому что мне интереснее быть рядом с ним, чем заниматься своими делами." ]}, { "q":"Вы сильно поссорились, и между вами сохраняется напряжение. Что вы будете делать?", "a":[ "Постараюсь спокойно обсудить ситуацию, понять друг друга и найти решение, которое устроит нас обоих.", "Мне будет важно как можно скорее восстановить контакт, поговорить по душам и вернуть ощущение близости между нами.", "Скорее всего первой(ым) пойду мириться и постараюсь сделать всё возможное, чтобы конфликт закончился.", "Захочу подробно обсудить ситуацию, объяснить свою точку зрения и разобраться, где именно была допущена ошибка.", "Мне будет очень тяжело переносить это напряжение. Я могу много переживать, плакать или думать о том, не приведёт ли эта ссора к отдалению или расставанию." ]}, { "q":"Вы думаете о возможном расставании. Что беспокоит вас больше всего?", "a":[ "Мне будет грустно из-за потери близкого человека, но я понимаю, что отношения могут закончиться.", "Больше всего меня расстраивает потеря общей истории, привычного общения и совместных планов.", "Я переживаю за то, как партнёр справится без моей поддержки и помощи.", "Мне сложно представить, что я больше не буду играть важную роль в жизни этого человека.", "Мысль о расставании вызывает сильную тревогу. Я не представляю свою жизнь без партнёра." ]}, { "q":"Вы планируете идеальный совместный отдых вдвоём. Какой вариант кажется вам самым привлекательным?", "a":[ "Путешествие с новыми впечатлениями, приключениями и возможностью открыть что-то новое вместе.", "Спокойное время вдвоём, где можно много общаться и чувствовать близость друг к другу.", "Поездка или программа, которая поможет каждому из нас узнать себя лучше и получить новый опыт для личного роста.", "Хорошо организованный отдых с понятным планом, комфортом и отсутствием неожиданных проблем.", "Особенное место или событие, которое станет важным воспоминанием и ещё сильнее укрепит нашу связь." ]}, { "q":"Вы смотрите фильм-мелодраму. Какая история отношений вызывает у вас наибольший эмоциональный отклик?", "a":[ "Он получает шанс осуществить свою давнюю мечту, ради которой придётся много работать и выйти из привычной зоны комфорта. Она поддерживает его решение, даже понимая, что впереди их ждут непростые времена. Каждый строит свою жизнь, развивается и следует своему пути, но при этом они остаются друг для друга надёжной опорой и партнёрами.", "Они много лет вместе. Жизнь давно стала спокойнее, но каждый вечер они находят время поговорить, поделиться своими мыслями, обсудить события дня и просто побыть рядом. Им по-прежнему интересно друг с другом, а ощущение близости никуда не исчезает с годами.", "Он переживает тяжёлый период и почти перестаёт справляться со своей жизнью. Она берёт на себя его проблемы, постоянно поддерживает, помогает принимать решения, подбадривает и вытаскивает его из кризиса снова и снова. Иногда ей кажется, что без её помощи он просто не справился бы.", "Он теряет бизнес и оказывается в серьёзном кризисе. Она быстро включается в ситуацию, находит нужных людей, предлагает решения, контролирует важные вопросы и помогает ему выбраться из сложного положения. Он искренне благодарен ей и всё чаще полагается на её мнение и способность разобраться в любой проблеме.", "Она не работает и полностью посвящает себя отношениям. Он заботится о ней, обеспечивает её всем необходимым, решает большинство жизненных вопросов и старается оградить от трудностей. Они проводят почти всё время вместе, делятся всеми переживаниями и чувствуют такую близость, что жизнь друг без друга кажется им невозможной." ]}, { "q":"Вы едете по важному делу. По дороге неожиданно прокалывается колесо, а вы уже опаздываете и партнёр нервничает. Ваша реакция?", "a":[ "Я сохраняю спокойствие и уверенность, что мы справимся и всё равно успеем. Спрашиваю партнёра, чем могу помочь, и делаю то, что сейчас действительно необходимо.", "Я переживаю из-за ситуации, но стараюсь поддержать партнёра, успокоить его и напомнить, что это всего лишь неприятность и мы обязательно найдём выход.", "Я сразу активно включаюсь в решение проблемы: ищу инструменты, помощь или сама начинаю делать всё возможное, чтобы как можно быстрее исправить ситуацию.", "Я начинаю руководить процессом: подсказываю партнёру, что лучше делать, как быстрее решить проблему и как избежать лишних ошибок.", "Я очень переживаю из-за происходящего. Тревога партнёра быстро передаётся мне, и мне становится трудно думать о чём-то, кроме этой ситуации." ]}, { "q":"Партнёр надолго пропадает без предупреждения и не выходит на связь. Ваша реакция?", "a":[ "Спокойно занимаюсь своими делами, знаю, что с ним всё в порядке.", "Немного переживаю, но понимаю, что он может быть занят или у него возникли обстоятельства.", "Начинаю думать, что, возможно, ему сейчас нужна моя помощь или поддержка.", "Хочу как можно скорее выяснить, где он, что произошло и почему он не отвечает.", "Чувствую сильную тревогу и не могу переключиться. В голову начинают приходить самые разные мысли." ]}, { "q":"Вы собрались в отпуск. Партнёр забронировал гостиницу, но перед поездкой выяснилось, что даты были указаны неправильно. Ваша реакция?", "a":[ "Ошибки случаются у всех. Я спокойно отношусь к ситуации и думаю, как мы можем вместе решить этот вопрос.", "Я вижу, что партнёр очень расстроен, и стараюсь поддержать его, успокоить и помочь не зацикливаться на случившемся.", "Я сразу начинаю искать выход: пишу в отель, ищу другие варианты и делаю всё возможное, чтобы как можно быстрее исправить ситуацию.", "Я рассказываю партнёру, как лучше исправить ошибку, предлагаю конкретный план действий и стараюсь проконтролировать, чтобы всё было сделано правильно.", "Эта ситуация сильно выбивает меня из равновесия. Я переживаю не только из-за сорванных планов, но и из-за состояния партнёра, хотя надеюсь, что он сам сможет найти решение и исправить ошибку." ]}, { "q":"Партнёру предлагают пройти обучение мечты в другой стране. Ему предстоит уехать на три месяца. Это важный шанс для его развития. Какая реакция вам ближе всего?", "a":[ "Я поддержу его решение. Мне будет не хватать его рядом, но я понимаю, что отношения не мешают каждому человеку развиваться и идти к своим целям.", "Мне будет грустно из-за долгой разлуки, но мы обязательно будем созваниваться, делиться всем, что происходит, и сохранять эмоциональную близость.", "Я сразу начинаю думать, чем могу помочь: собрать вещи, решить бытовые вопросы, поддержать его, чтобы он спокойно сосредоточился на своей цели.", "Мне захочется вместе обсудить все детали, помочь принять взвешенное решение, продумать возможные риски и лучший план действий.", "Мне будет очень тяжело принять эту новость. Я начну переживать, что за это время мы можем отдалиться друг от друга или что наши отношения изменятся." ]}, { "q":"Вы случайно узнаёте, что партнёр встретился со своей старой знакомой и не рассказал вам об этом. Ваша реакция?", "a":[ "Спокойно выслушаю его объяснение. Я доверяю ему и понимаю, что у каждого человека могут быть свои встречи и своё личное пространство.", "Мне будет немного неприятно, что он не рассказал об этом сразу. Я спокойно поговорю с ним и объясню, почему для меня это важно.", "Мне захочется понять, почему он решил промолчать. Если у него были причины, я постараюсь поддержать его и сделать так, чтобы в будущем между нами было больше доверия.", "Мне важно подробно обсудить эту ситуацию. Я захочу понять, почему он так поступил, объяснить, почему это может навредить отношениям, и договориться, как мы будем поступать в подобных ситуациях дальше.", "Мне станет очень тревожно. В голове сразу появятся мысли, что он что-то скрывает, чувства остыли или наши отношения могут оказаться под угрозой." ]} ] results = { "A": { "title":"Зрелая любовь и партнёрство", "short":"Зрелое партнёрство", "body":"""Для вас любовь - это союз двух взрослых людей, где каждый остаётся собой. Вы не стремитесь контролировать партнёра и не ждёте, что он заполнит внутреннюю пустоту. Вам важно, чтобы в отношениях было уважение, свобода, доверие и возможность каждому развиваться в своём направлении. Вы спокойно относитесь к тому, что у любимого человека есть собственные интересы, друзья и личное пространство. Конфликты вы воспринимаете как задачу, которую можно решить вместе, а не как угрозу отношениям. Ваш самый большой ресурс - внутренняя устойчивость. Но иногда стоит помнить, что даже самые самостоятельные люди тоже нуждаются в поддержке и могут позволить себе быть уязвимыми.""", "pluses":["Уважаете границы и личное пространство.","Умеете договариваться и спокойно решать конфликты.","Не теряете себя в отношениях."], "risks":["Иногда можете казаться слишком самостоятельным(ой) и эмоционально сдержанным(ой).","Не всегда позволяете себе просить поддержки.","Бывает сложно показать собственную уязвимость."] }, "B": { "title":"Любовь через эмоциональную близость", "short":"Эмоциональная близость", "body":"""Для вас любовь начинается с эмоционального контакта. Вам важно разговаривать, делиться чувствами, понимать друг друга и чувствовать, что между вами сохраняется глубокая связь. Когда отношения становятся холоднее или общения становится меньше, вы быстро замечаете это и начинаете скучать по той близости, которая была раньше. Это не слабость. Для вашей нервной системы эмоциональный контакт - один из главных источников чувства безопасности. При этом важно помнить, что близость рождается не только из разговоров, но и из уважения к личным границам друг друга.""", "pluses":["Умеете создавать глубокую эмоциональную связь.","Легко проявляете тепло, внимание и заботу.","Цените искренность и доверие."], "risks":["Болезненно переживаете эмоциональную дистанцию.","Иногда можете путать потребность в близости со страхом потерять отношения.","Настроение может сильно зависеть от качества контакта."] }, "C": { "title":"Любовь через заботу", "short":"Любовь через заботу", "body":"""Вы любите заботиться. Когда близкому человеку трудно, вы готовы отложить собственные планы, чтобы помочь ему справиться с проблемами. Вы умеете поддерживать, вдохновлять и быть рядом в тяжёлые периоды жизни. Именно поэтому люди часто чувствуют рядом с вами тепло и надёжность. Но иногда забота постепенно превращается в спасательство. Если вы всё чаще берёте на себя ответственность за чужую жизнь, настроение или решения, отношения могут стать неравными. Помните: любовь не требует постоянно спасать другого человека. Здоровые отношения строятся там, где ответственность разделяют оба.""", "pluses":["Умеете поддерживать близких в трудные моменты.","Надёжны и готовы прийти на помощь.","Люди чувствуют рядом с вами безопасность."], "risks":["Есть риск незаметно перейти в роль спасателя.","Иногда ставите чужие потребности выше собственных.","Бывает трудно позволить другому самостоятельно справляться с проблемами."] }, "D": { "title":"Любовь через контроль и влияние", "short":"Любовь через контроль", "body":"""Для вас любовь - это участие. Вам важно понимать, что происходит, обсуждать решения, искать выходы и помогать человеку принимать правильные решения. Вы умеете анализировать ситуацию, быстро замечаете риски и часто действительно даёте хорошие советы. Но иногда желание помочь постепенно превращается в желание контролировать. Если кажется, что без вашего участия партнёр обязательно ошибётся, отношения начинают строиться вокруг напряжения, а не доверия. Настоящее партнёрство начинается там, где рядом с вами человеку разрешено принимать собственные решения и даже иногда ошибаться.""", "pluses":["Хорошо анализируете ситуацию.","Умеете принимать решения и брать ответственность.","Часто действительно помогаете найти выход из сложных ситуаций."], "risks":["Желание помочь может превращаться в контроль.","Бывает сложно доверять чужим решениям.","Иногда советы звучат как критика, даже если вы этого не хотите."] }, "E": { "title":"Любовь через слияние", "short":"Любовь через слияние", "body":"""Для вас отношения занимают очень важное место в жизни. Любимый человек становится главным источником тепла, безопасности и эмоциональной опоры. Поэтому дистанция, холодность или неопределённость переживаются особенно болезненно. Когда контакт ослабевает, тревога может быстро нарастать, а мысли всё чаще возвращаются к отношениям. Это не означает, что с вами что-то не так. Чаще всего такая реакция формируется потому, что нервная система очень чувствительна к потере эмоциональной связи. Если постепенно научиться находить опору не только в отношениях, но и в себе, любовь перестаёт быть источником постоянной тревоги и становится источником спокойствия и взаимной близости.""", "pluses":["Очень преданны отношениям.","Искренне умеете любить и эмоционально вкладываться.","Создаёте ощущение глубокой близости и принятия."], "risks":["Сильнее других переживаете дистанцию и неопределённость.","Есть риск растворяться в отношениях и терять контакт с собой.","Ваше эмоциональное состояние может слишком сильно зависеть от поведения любимого человека."] }, "FLEXIBLE": { "title":"Гибкий профиль", "short":"Гибкий профиль", "body":"""Ваши ответы не складываются в один жёсткий сценарий. Похоже, в разных ситуациях вы можете проявлять разные способы любви: где-то опираться на зрелое партнёрство, где-то искать близость, где-то включаться в заботу, а иногда стремиться контролировать ситуацию или сильнее тревожиться из-за дистанции. Это может говорить о психологической гибкости и способности адаптироваться к разным обстоятельствам. Важно не превращать гибкость в потерю контакта с собой. Иногда при таком профиле бывает полезно честно спросить себя: чего я хочу на самом деле, а где просто подстраиваюсь под ситуацию? Ваш ресурс - способность видеть отношения не только с одной стороны. Ваша зона роста - яснее понимать свои главные потребности и не терять их в попытке сохранить баланс.""" } } questions_json = json.dumps(questions, ensure_ascii=False) results_json = json.dumps(results, ensure_ascii=False) html_content = f"""
Психологический тест

Какой сценарий управляет вашими отношениями?

Любовь? Привычка? Страх одиночества? Желание спасать партнёра или потребность всё контролировать?

Наш выбор в отношениях редко бывает случайным. Часто нами управляют бессознательные сценарии, сформированные задолго до встречи с партнёром.

Этот тест поможет определить, какой сценарий сильнее всего влияет на ваши отношения сегодня.

За несколько минут вы узнаете:
  • Что лежит в основе ваших отношений сейчас
  • Какая потребность управляет вашим поведением в паре
  • Есть ли признаки эмоциональной зависимости, спасательства или чрезмерного контроля
  • Что помогает вашим отношениям, а что может незаметно создавать напряжение

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

Тест полностью анонимный. Регистрация не требуется. Результаты используются только в обезличенной статистике.

После прохождения вы сразу получите подробную расшифровку своего результата и узнаете, какой сценарий любви сегодня влияет на ваши отношения больше всего.

""" apps_script = r'''/* Google Apps Script для анонимной статистики теста. Как подключить: 1. Создайте Google Sheet. 2. Extensions / Расширения → Apps Script. 3. Вставьте этот код. 4. Нажмите Deploy → New deployment → Web app. 5. Execute as: Me. 6. Who has access: Anyone. 7. Скопируйте Web app URL. 8. В HTML-коде Tilda замените APPS_SCRIPT_URL_HERE на этот URL. Что записывается: - дата и время - итоговый результат - название результата - баллы A-E Имена, телефоны, email и логины не собираются. */ const SHEET_NAME = 'Love Test Stats'; function doPost(e) { const sheet = getSheet_(); let data = {}; try { data = JSON.parse(e.postData.contents || '{}'); } catch (err) { data = {}; } const now = new Date(); const scores = data.scores || {}; sheet.appendRow([ now, data.resultKey || '', data.resultTitle || '', scores.A || 0, scores.B || 0, scores.C || 0, scores.D || 0, scores.E || 0 ]); return ContentService .createTextOutput(JSON.stringify({ ok: true })) .setMimeType(ContentService.MimeType.JSON); } function doGet(e) { const callback = e.parameter.callback || ''; const stats = getStats_(); const output = callback ? callback + '(' + JSON.stringify(stats) + ');' : JSON.stringify(stats); return ContentService .createTextOutput(output) .setMimeType(callback ? ContentService.MimeType.JAVASCRIPT : ContentService.MimeType.JSON); } function getSheet_() { const ss = SpreadsheetApp.getActiveSpreadsheet(); let sheet = ss.getSheetByName(SHEET_NAME); if (!sheet) { sheet = ss.insertSheet(SHEET_NAME); sheet.appendRow(['Timestamp', 'ResultKey', 'ResultTitle', 'A', 'B', 'C', 'D', 'E']); } return sheet; } function getStats_() { const sheet = getSheet_(); const values = sheet.getDataRange().getValues(); const rows = values.slice(1).filter(row => row[1]); const counts = {}; rows.forEach(row => { const key = row[1]; counts[key] = (counts[key] || 0) + 1; }); return { total: rows.length, counts: counts }; } ''' readme = """ГОТОВЫЙ ТЕСТ ДЛЯ TILDA Файлы: 1. tilda_love_scenario_test_FINAL.html - код, который нужно вставить в блок T123 на Tilda. 2. google_sheets_apps_script_FINAL.gs - код для Google Sheets, чтобы собирать анонимную статистику. КАК ВСТАВИТЬ В TILDA 1. Откройте свой сайт на Tilda. 2. Создайте новую страницу. 3. Добавьте блок T123 - HTML-код. 4. Откройте файл tilda_love_scenario_test_FINAL.html. 5. Скопируйте весь код. 6. Вставьте его в блок T123. 7. Опубликуйте страницу. Тест уже будет работать: - человек проходит 20 вопросов; - сразу получает результат; - если лидирует один сценарий, показывается один результат; - если два сценария набрали одинаково, показывается результат “между двумя сценариями”; - если профиль почти ровный или лидеров три и больше, показывается “Гибкий профиль”. КАК ПОДКЛЮЧИТЬ СТАТИСТИКУ 1. Создайте Google Sheet. 2. Откройте Extensions / Расширения → Apps Script. 3. Удалите всё из редактора. 4. Вставьте код из файла google_sheets_apps_script_FINAL.gs. 5. Нажмите Deploy → New deployment. 6. Выберите тип Web app. 7. Execute as: Me. 8. Who has access: Anyone. 9. Нажмите Deploy. 10. Скопируйте Web app URL. Потом: 1. Откройте файл tilda_love_scenario_test_FINAL.html. 2. Найдите строку: const APPS_SCRIPT_URL = "APPS_SCRIPT_URL_HERE"; 3. Вместо APPS_SCRIPT_URL_HERE вставьте ссылку Web app. 4. Скопируйте обновлённый код в Tilda T123. 5. Опубликуйте страницу. СТАТИСТИКА В Google Sheets будет записываться: - дата и время прохождения; - результат; - название результата; - баллы A, B, C, D, E. Тест полностью анонимный: - имя не запрашивается; - телефон не запрашивается; - email не запрашивается; - регистрация не нужна. ПРОЦЕНТ РЕЗУЛЬТАТА После подключения статистики человек увидит: “Ваш результат встречается у 18% людей, прошедших этот тест.” “На сегодняшний день тест прошли уже 248 человек.” КНОПКА “ПОЛУЧИТЬ СВОБОДНУЮ РАСШИФРОВКУ” В HTML сейчас стоит ссылка: https://t.me/zinagur Если нужно заменить: найдите строку: const CTA_URL = "https://t.me/zinagur"; и вставьте нужную ссылку. """ html_path.write_text(html_content, encoding="utf-8") script_path.write_text(apps_script, encoding="utf-8") readme_path.write_text(readme, encoding="utf-8") with zipfile.ZipFile(zip_path, "w", zipfile.ZIP_DEFLATED) as z: z.write(html_path, html_path.name) z.write(script_path, script_path.name) z.write(readme_path, readme_path.name) print("Created files:") print(html_path) print(script_path) print(readme_path) print(zip_path)