250 lines
17 KiB
Python
250 lines
17 KiB
Python
#!/usr/bin/env python3
|
||
"""Генератор юр-страниц Shkor beauty (t-261008154151-faa550).
|
||
|
||
Privacy Policy / Terms of Service / Cookie & Disclaimer / About & Contacts.
|
||
Единый шаблон = тот же визуальный язык, что у витрины. Оператор сервиса:
|
||
Shkor Labs LLC (Wyoming, USA), alex.shkor@gmail.com.
|
||
"""
|
||
from pathlib import Path
|
||
|
||
OUT = Path("/var/www/beauty")
|
||
OUT.mkdir(parents=True, exist_ok=True)
|
||
|
||
CSS = """
|
||
:root{--ink:#1c1a17;--paper:#faf7f2;--line:#e4ddd2;--acc:#0e7a5f;--muted:#6f6a61;
|
||
--sans:"Segoe UI",-apple-system,Arial,sans-serif;--mono:ui-monospace,Menlo,Consolas,monospace}
|
||
*{box-sizing:border-box;margin:0;padding:0}
|
||
body{background:var(--paper);color:var(--ink);font-family:var(--sans);line-height:1.65;font-size:16px}
|
||
.wrap{max-width:820px;margin:0 auto;padding:0 20px}
|
||
header{border-bottom:1px solid var(--line);background:#fff}
|
||
.hbar{display:flex;align-items:center;justify-content:space-between;padding:16px 0}
|
||
.logo{font-size:20px;font-weight:700}
|
||
.logo span{color:var(--acc)}
|
||
.logo small{display:block;font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
|
||
nav a{margin-left:16px;font-size:14px;color:var(--muted)}
|
||
nav a:hover{color:var(--acc)}
|
||
main{padding:40px 0 60px}
|
||
h1{font-size:clamp(26px,4vw,36px);letter-spacing:-.02em;margin-bottom:6px}
|
||
.meta{font-family:var(--mono);font-size:12px;color:var(--muted);margin-bottom:28px}
|
||
h2{font-size:19px;margin:28px 0 10px}
|
||
p,li{color:#3d3a34;margin-bottom:10px}
|
||
ul{padding-left:22px}
|
||
a{color:var(--acc)}
|
||
.card{background:#fff;border:1px solid var(--line);border-radius:10px;padding:22px;margin-top:24px}
|
||
footer{padding:26px 0 40px;border-top:1px solid var(--line);color:var(--muted);font-size:13.5px}
|
||
footer .links{display:flex;gap:18px;margin-bottom:8px}
|
||
footer .links a{text-decoration:underline;color:var(--muted)}
|
||
footer .proto{font-family:var(--mono);font-size:12px;margin-top:6px}
|
||
"""
|
||
|
||
|
||
def page(slug: str, title: str, updated: str, body: str) -> None:
|
||
html = f"""<!doctype html>
|
||
<html lang="ru">
|
||
<head>
|
||
<meta charset="utf-8">
|
||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||
<title>{title} — Shkor beauty</title>
|
||
<meta name="description" content="{title} сервиса Shkor beauty. Оператор: Shkor Labs LLC.">
|
||
<style>{CSS}</style>
|
||
</head>
|
||
<body>
|
||
<header>
|
||
<div class="wrap hbar">
|
||
<a class="logo" href="/">Shkor <span>beauty</span><small>корейская косметика · Минск</small></a>
|
||
<nav>
|
||
<a href="/#catalog">Каталог</a><a href="/#plans">Магазинам</a><a href="/#request">Заявка</a>
|
||
</nav>
|
||
</div>
|
||
</header>
|
||
<main class="wrap">
|
||
<h1>{title}</h1>
|
||
<div class="meta">Last updated: {updated} · v1.0 · Operator: Shkor Labs LLC (Wyoming, USA)</div>
|
||
{body}
|
||
</main>
|
||
<footer>
|
||
<div class="wrap">
|
||
<div class="links">
|
||
<a href="/privacy.html">Privacy Policy</a>
|
||
<a href="/terms.html">Terms of Service</a>
|
||
<a href="/disclaimer.html">Disclaimer</a>
|
||
<a href="/about.html">About & Contacts</a>
|
||
</div>
|
||
<div>Оператор сервиса: <b>Shkor Labs LLC</b> (Wyoming, USA) · <a href="mailto:alex.shkor@gmail.com">alex.shkor@gmail.com</a></div>
|
||
<div class="proto">собрано харнесом Simbiot · кооператив 42 · cil.by</div>
|
||
</div>
|
||
</footer>
|
||
</body>
|
||
</html>"""
|
||
(OUT / f"{slug}.html").write_text(html, encoding="utf-8")
|
||
print("ok", OUT / f"{slug}.html")
|
||
|
||
|
||
D = "2026-10-08"
|
||
|
||
page("privacy", "Privacy Policy", D, """
|
||
<p>Настоящая Политика конфиденциальности объясняет, какие данные собирает сервис Shkor beauty
|
||
(далее — «Сервис») и как они используются. Оператор Сервиса — <b>Shkor Labs LLC</b>, компания,
|
||
зарегистрированная в штате Вайоминг, США (далее — «Оператор»). Контакт: <a href="mailto:alex.shkor@gmail.com">alex.shkor@gmail.com</a>.</p>
|
||
|
||
<h2>1. Какие данные мы собираем</h2>
|
||
<ul>
|
||
<li><b>Заявка (Lite-план):</b> имя, телефон и текст заявки, которые вы сами указываете в форме «Оставить заявку».</li>
|
||
<li><b>Заказ (Full-план):</b> имя, телефон, адрес доставки и состав заказа.</li>
|
||
<li><b>Обращения:</b> письма на email Оператора и переписка в мессенджерах — в объёме, необходимом для ответа.</li>
|
||
<li><b>Технические данные:</b> анонимная статистика посещений (страницы-рефереры, устройство, страна) — без персональных идентификаторов.</li>
|
||
</ul>
|
||
|
||
<h2>2. Чего мы НЕ собираем</h2>
|
||
<ul>
|
||
<li>Данные банковских карт: при онлайн-оплате (Full-план) платёж проводит независимый платёжный агент;
|
||
данные карты вводятся на его защищённой странице и Оператору не передаются.</li>
|
||
<li>Фотографии кожи без явного согласия: если вы передаёте фотоотчёт AI-ассистенту, он обрабатывается
|
||
для анализа состояния кожи и не публикуется и не передаётся третьим лицам.</li>
|
||
</ul>
|
||
|
||
<h2>3. Зачем мы используем данные</h2>
|
||
<ul>
|
||
<li>связаться с вами по заявке и довести её до результата (подбор, заказ, доставка);</li>
|
||
<li>исполнить заказ и уведомлять о его статусе;</li>
|
||
<li>улучшать каталог и подбор ассистента на обезличенной статистике.</li>
|
||
</ul>
|
||
|
||
<h2>4. Хранение и срок</h2>
|
||
<p>Записи заявок и заказов хранятся в защищённой базе Оператора не дольше, чем это необходимо для
|
||
исполнения заказа и требований бухгалтерии (по умолчанию — до 3 лет), после чего удаляются или
|
||
обезличиваются.</p>
|
||
|
||
<h2>5. Передача третьим лицам</h2>
|
||
<p>Данные передаются только: (а) службе доставки — имя, телефон и адрес вашего заказа;
|
||
(б) платёжному агенту — минимально необходимый платёжный контекст; (в) в случаях, предусмотренных законом.</p>
|
||
|
||
<h2>6. Cookie</h2>
|
||
<p>Сервис использует минимальные cookie и локальное хранилище: сессия корзины и анонимная статистика.
|
||
Подробнее — в <a href="/disclaimer.html">Disclaimer</a>.</p>
|
||
|
||
<h2>7. Ваши права</h2>
|
||
<p>Вы можете запросить доступ к своим данным, их исправление или удаление письмом на
|
||
<a href="mailto:alex.shkor@gmail.com">alex.shkor@gmail.com</a>. Мы отвечаем в течение 30 дней.</p>
|
||
|
||
<h2>8. Изменения</h2>
|
||
<p>Актуальная версия Политики всегда доступна на этой странице; существенные изменения датируются выше.</p>
|
||
""")
|
||
|
||
page("terms", "Terms of Service", D, """
|
||
<p>Условия использования сервиса Shkor beauty (далее — «Условия»). Оператор Сервиса — <b>Shkor Labs LLC</b>
|
||
(Wyoming, USA), контакт <a href="mailto:alex.shkor@gmail.com">alex.shkor@gmail.com</a>. Используя Сервис,
|
||
вы соглашаетесь с настоящими Условиями.</p>
|
||
|
||
<h2>1. Что такое Сервис</h2>
|
||
<p>Shkor beauty — витрина корейской косметики с AI-ассистентом: подбор ухода, заявки и заказы с доставкой
|
||
по Минску и Беларуси. Сервис предлагается в двух планах:</p>
|
||
<ul>
|
||
<li><b>Lite (базовый):</b> витрина + форма заявки. Заявка фиксируется в общей базе заказов, после чего
|
||
магазин связывается с вами лично для уточнения ассортимента, цены и способа расчёта.</li>
|
||
<li><b>Full:</b> полный каталог, корзина, онлайн-оплата и статусы доставки.</li>
|
||
</ul>
|
||
|
||
<h2>2. Заявки и заказы</h2>
|
||
<ul>
|
||
<li>Заявка (Lite) не является подтверждённой сделкой: цена и наличие подтверждаются при обратной связи.</li>
|
||
<li>Заказ (Full) считается принятым после подтверждения оплаты или согласия на оплату при получении.</li>
|
||
<li>Цены указаны в белорусских рублях (BYN) и могут меняться; актуальная цена — на витрине в момент заказа.</li>
|
||
</ul>
|
||
|
||
<h2>3. Доставка</h2>
|
||
<p>Курьер по Минску, Европочта по Беларуси и самовывоз. Сроки и стоимость показываются при оформлении
|
||
заявки/заказа; бесплатная доставка — от 80 BYN по каталогу витрины.</p>
|
||
|
||
<h2>4. Возврат и обмен</h2>
|
||
<ul>
|
||
<li>Товар надлежащего качества (без следов использования, в оригинальной упаковке) — возврат/обмен
|
||
в течение 14 дней с момента получения.</li>
|
||
<li>Средства гигиены и косметика с нарушенной упаковкой возврату не подлежат.</li>
|
||
<li>Для возврата напишите на <a href="mailto:alex.shkor@gmail.com">alex.shkor@gmail.com</a> с номером заказа.</li>
|
||
</ul>
|
||
|
||
<h2>5. Интеллектуальная собственность</h2>
|
||
<p>Материалы витрины, AI-подбор и программный код ассистента принадлежат Оператору. Товарные знаки
|
||
брендов принадлежат их правообладателям.</p>
|
||
|
||
<h2>6. Ограничение ответственности</h2>
|
||
<p>Сервис предоставляется «как есть». AI-подбор средств — рекомендательный характер и не является
|
||
медицинской консультацией (см. <a href="/disclaimer.html">Disclaimer</a>). Оператор не несёт
|
||
ответственности за индивидуальные реакции кожи и решения, принятые на основе рекомендаций без
|
||
ознакомления с составами и инструкциями.</p>
|
||
|
||
<h2>7. Применимое право</h2>
|
||
<p>Настоящие Условия регулируются правом, применимым к месту регистрации Оператора (Wyoming, USA),
|
||
без ущерба для обязательных потребительских прав покупателей по законодательству места доставки.</p>
|
||
""")
|
||
|
||
page("disclaimer", "Cookie & Disclaimer", D, """
|
||
<p>Страница объединяет политику cookie и важные дисклеймеры сервиса Shkor beauty. Оператор —
|
||
<b>Shkor Labs LLC</b> (Wyoming, USA), <a href="mailto:alex.shkor@gmail.com">alex.shkor@gmail.com</a>.</p>
|
||
|
||
<h2>1. Не медицинская консультация</h2>
|
||
<div class="card">
|
||
<p><b>AI-ассистент и материалы витрины НЕ являются медицинской консультацией, диагностикой или лечением.</b>
|
||
Подбор средств — эвристическая рекомендация на основе вашего самоотчёта. Она не заменяет консультацию
|
||
дерматолога или врача. При заболеваниях кожи, беременности, приёме лекарственных средств и выраженных
|
||
реакциях — проконсультируйтесь со специалистом до применения средств.</p>
|
||
</div>
|
||
|
||
<h2>2. Косметика и индивидуальные реакции</h2>
|
||
<ul>
|
||
<li>Перед первым применением сделайте тест на чувствительность (небольшой участок кожи, 24–48 часов).</li>
|
||
<li>Активы (ретинол, кислоты, витамин C) вводите постепенно; ретинол — только на ночь, SPF утром обязателен.</li>
|
||
<li>Ознакомьтесь с составом на упаковке: при аллергии на компонент средство не используйте.</li>
|
||
</ul>
|
||
|
||
<h2>3. Cookie</h2>
|
||
<ul>
|
||
<li><b>Необходимые:</b> сессия корзины и защита форм. Не отключаются.</li>
|
||
<li><b>Аналитические:</b> анонимная статистика посещений для улучшения витрины. Без персональных идентификаторов и без передачи рекламным сетям.</li>
|
||
<li><b>Рекламных и трекинговых cookie сторонних сетей — нет.</b></li>
|
||
</ul>
|
||
<p>Большинство браузеров позволяет управлять cookie в настройках; отключение необходимых cookie
|
||
может сломать корзину и отправку заявки.</p>
|
||
|
||
<h2>4. Внешние ссылки</h2>
|
||
<p>Витрина может ссылаться на сайты брендов и службы доставки — за их содержание Оператор
|
||
ответственности не несёт.</p>
|
||
|
||
<h2>5. Вопросы</h2>
|
||
<p>Любые вопросы по дисклеймерам и cookie — <a href="mailto:alex.shkor@gmail.com">alex.shkor@gmail.com</a>.</p>
|
||
""")
|
||
|
||
page("about", "About & Contacts", D, """
|
||
<p><b>Shkor beauty</b> — AI-ассистент для магазинов корейской косметики: витрина, которая сама
|
||
разбирает состояние кожи клиента, собирает рутину и доводит заявку до заказа.</p>
|
||
|
||
<h2>Кто мы</h2>
|
||
<p>Оператор сервиса — <b>Shkor Labs LLC</b>, компания, зарегистрированная в штате Вайоминг, США.
|
||
Проект развивается совместно с инженерным кооперативом «42» (cil.by): витрина и ассистент собраны
|
||
ритмичным агентом Simbiot.</p>
|
||
|
||
<h2>Что мы делаем</h2>
|
||
<ul>
|
||
<li><b>Витрина K-beauty:</b> каталог проверенных брендов — Anua, Beauty of Joseon, JMsolution,
|
||
SKIN627, Biodance и другие, доставка по Минску и Беларуси.</li>
|
||
<li><b>AI beauty-ассистент (B2B):</b> агентный API analyze → recommend → order, который любой
|
||
магазин или AI-агент может подключить к своему сайту (MCP/STDIO, HTTP, CLI).</li>
|
||
<li><b>Два плана подключения:</b> <b>Lite</b> — витрина + заявки в общую базу; <b>Full</b> — полный
|
||
каталог, корзина, онлайн-оплата и статусы доставки.</li>
|
||
</ul>
|
||
|
||
<h2>Контакты</h2>
|
||
<div class="card">
|
||
<ul>
|
||
<li>Email: <a href="mailto:alex.shkor@gmail.com">alex.shkor@gmail.com</a></li>
|
||
<li>Заявка: форма на <a href="/#request">главной странице</a> — ответим в течение дня</li>
|
||
<li>Юрлицо-оператор: Shkor Labs LLC (Wyoming, USA)</li>
|
||
</ul>
|
||
</div>
|
||
|
||
<h2>Магазинам: подключение ассистента</h2>
|
||
<p>Ассистент подключается к любому сайту или AI-агенту за один шаг: JSONL поверх STDIO (MCP-стиль),
|
||
HTTP JSON API или разовый CLI-вызов. Каталог масштабируется без правок кода. Для пилота напишите
|
||
на email — подключим витрину с формой заявок (Lite) и покажем e2e-сценарий заказа.</p>
|
||
""")
|