86 031 → 98 519 hotels (+12 488 за день). Сегодня закрыли все T4 стратегические + догоны Бразилии/Австрии/Швейцарии + 11 ранее не качанных T4 (Абхазия, Беларусь, Великобритания, Венгрия, Германия, Кыргызстан, Норвегия, Польша, Словакия, Словения, Франция). Покрытие 73/73 = 100% Tourvisor.
🆕 28.04 батчи (+12 488 hotels, 11 уник стран): 🇫🇷 Франция 3 453 · 🇦🇹 Австрия 1 994 · 🇦🇿 Абхазия 1 336 · 🇩🇪 Германия 1 255 · 🇧🇷 Бразилия 734 · 🇭🇺 Венгрия 694 · 🇨🇭 Швейцария 538 · 🇬🇧 Великобритания 457 · 🇧🇾 Беларусь 330 · 🇰🇬 Кыргызстан 278 · 🇵🇱 Польша 246 · 🇦🇩 Андорра 216 · 🇳🇴 Норвегия 205 · 🇸🇮 Словения 204 · 🇸🇰 Словакия 196 · 🇯🇲 Ямайка 157 · 🇱🇧 Ливан 74 · 🇵🇦 Панама 49 · 🇦🇷 Аргентина 39 · 🇻🇪 Венесуэла 33
Топ-15 стран по объёму на 28.04:
60 813 → 82 844 → 86 031 hotels (+25 218 за день). Платный тариф снял ограничения вчерашних потолков (Италия 7000→9870 — это один из самых ярких примеров). Вечером добавили 5 стратегических T4 стран.
🆕 T4 batch вечер (5 стран = 5 запросов, +516 hotels): 🇸🇦 Саудовская Аравия 269 (растёт спрос — отменили визу для РФ) · 🇳🇵 Непал 78 · 🇫🇯 Фиджи 75 · 🇲🇲 Мьянма 63 · 🇦🇼 Аруба 31. Лимит 115/120 — есть запас. Остальные T4 strategic докачаем завтра.
Топ-10 по приросту за день:
+ 11 других стран по 200-700 hotels каждая (Малайзия, Азербайджан, Албания, Япония, Израиль, Казахстан, Сингапур, Камбоджа, Армения, Сербия, Южная Корея)
Все запланированные доборы T2/T3/T4 закрыты. Финал по hotels.json: 98 519 / 73 страны / 203 региона / 269 субрегионов. Остановка на этом числе — это «активный каталог Tourvisor», дальше потолок API (архивные отели не отдаются даже на платном).
⏭ Следующий шаг по данным: скачивание hotel details (`/hotels/{id}`) для AI rewrite описаний. Сейчас 452 уникальных details JSON в `meta/details/` + `meta/details_cp/`.
Эти страны на платном тарифе тоже не отдают больше — это «активные» отели в системе, не ограничения тарифа:
Tourvisor каталог считает hotels которых уже нет в системе (архив). Для нас потолок ≈ 86 000 hotels вместо «88 901 в каталоге».
supabase.1008.ru — БД на состоянии 27.04, ждёт sync 98k deltaPhase 0 завершён 26.04. Re-sync 86k завершён 27.04 18:55 МСК (errors=0). На 28.04 hotels.json пополнен +12 488 hotels (98 519 итого), но эта дельта ещё не передана соседу-DevOps для sync.
Дельта sync: +25 266 URLs, +25 218 hotels, +6 стран, +42 региона. 8 batch events в outbox (нормально, ждут consumer при публикации). Время ~3 мин на 86k через UPSERT + advisory_lock + bulk-mode. Подробности: /messages/2026-04-27-ayurtour-to-bestonline-resync-86k-done.md.
pg_read_file запрещён для роли postgres в self-hosted Supabase — не использоватьpsql \set content `cat file.json` + :'content'::jsonb через docker execpg_stat_activity по PID, не через nohupSync пайплайн стабилен: 8 багов закрыто 25-26.04 (resort_slug опциональный, slug 80→120, regex POSIX, sanitize backtick→' и др.). Готов к повторным запускам по делте +1-2k завтра.
Утром 27.04 был 403 (тестовый JWT закрылся). После оплаты — все ограничения сняты. Тариф: ~8 000 ₽/мес (5 000 Поиск + 3 000 Описания), оплачен на 1 месяц до ~27.05.2026.
Преимущества платного: убраны вчерашние потолки (Италия, Болгария, Грузия, Узбекистан и т.д. — все полностью открыты), доступ к hotel details endpoint для контента, отсутствие ограничений по квоте на день.
До D-day 15.05: 18 дней работы с API. После 27.05 — решение по продлению.
meta/operators.jsonbygap + tier-aware фикс| Дата | Отелей | % от каталога | Статус |
|---|---|---|---|
| 17.04 | ~5 000 | 6% | Старт импорта |
| 21.04 | ~11 000 | 13% | T1+T2 попытка |
| 22.04 | ~18 000 | 21% | +T3 попытки |
| 23.04 | 21 408 | 25% | Застопорились на LIMIT=100 |
| 24.04 | 28 308 | 33% | Старт оптимизации (LIMIT=500 + bygap) |
| 25.04 день | 49 989 | 58% | T1 завершён 95% |
| 25.04 вечер | 60 813 | 77% | ⭐ +10 824 (bygap без Грузии). T1 потолок API найден |
| 26.04 утро | ~70 000 | 89% | Последний reset → T3 (Испания/Италия/Болгария) |
| 27.04 | — | — | ⚠️ JWT истекает |
Успеваем до истечения токена. Осталось 2 ночных reset окна квоты.
| Приоритет | Страны (что осталось) | Запросов | +Отелей | ||
|---|---|---|---|---|---|
| 🔴 T1 хвостики | Тунис +103, Индия +615, Шри-Ланка +260, Китай +294, Таиланд +249 | ~3 | +1 500 | ||
| 🟠 T2 (продолжение) | Греция +1 046, Индонезия +3 488, Грузия +1 909, Черногория +1 320, Мексика +1 075 | ~25 | +9 000 | ||
| 🟢 T2 продолжение | Кипр, Танзания, Куба, Сейшелы, Доминикана, Иордания, Маврикий, Мальта | ~10 | +3 500 | ||
| ИТОГО | 100/100 квоты | 100 | +~14 000 |
| Страна | Отели | Регионы | Субрегионы API | Детали (/hotels/{id}) | Полнота |
|---|---|---|---|---|---|
| Турция | 6250/6250 | 20 ✅ | 64 ✅ | 5/5 пилот | |
| Мальдивы | 580/581 | 1 ✅ | API: 0 (атоллы в details) | 5/5 пилот | |
| ОАЭ | 1836/1839 | — | — | 5/5 пилот | |
| Египет | 1837/1854 | 14 ✅ | 11 ✅ | 5/5 пилот | |
| Таиланд | 8696/8945 | — | 97% ✓ 25.04 день | 5/5 пилот | |
| ОАЭ | 100 ⚠ | 7 ✅ | 7 ✅ | 5/5 пилот | |
| Вьетнам | 4010/4079 | — | 98% ✓ 25.04 полдень | 5/5 пилот | |
| Китай | 3671/3965 | — | 92% ✓ 25.04 день | 5/5 пилот | |
| Шри-Ланка | 100 ⚠ | 13 ✅ | 14 ✅ | 5/5 пилот | |
| Тунис | 451/554 | 7 ✅ | API: 0 | 5/5 пилот | |
| Индия | 2731/3346 | 5 ✅ | 29 ✅ | 5/5 пилот | |
| Шри-Ланка | 2901/3161 | — | — | 5/5 пилот | |
| Китай | 3671/3965 | — | 92% ✓ 25.04 день | 5/5 пилот | |
| Вьетнам | 4010/4079 | — | 98% ✓ 25.04 полдень | 5/5 пилот | |
| Таиланд | 8696/8945 | — | 97% ✓ 25.04 день | 5/5 пилот |
| Страна | Отели | Регионы | Субрегионы API | Детали |
|---|---|---|---|---|
| Индонезия | 100 ⚠ | 3 ✅ | 15 ✅ | — |
| Грузия | 100 ⚠ | 14 ✅ | жду API | — |
| Доминикана | 100 ⚠ | 5 ✅ | жду API | — |
| Куба | 100 ⚠ | 10 ✅ | жду API | — |
| Греция | 100 ⚠ | 26 ✅ | жду API | — |
| Кипр | 100 ⚠ | 6 ✅ | жду API | — |
| Сейшелы | 100 ⚠ | 4 ✅ | жду API | — |
| Маврикий | 100 ⚠ | 1 ✅ | жду API | — |
| Мексика | 100 ⚠ | 6 ✅ | жду API | — |
| Черногория | 100 ⚠ | 11 ✅ | жду API | — |
| Танзания | 100 ⚠ | 2 ✅ | жду API | — |
| Иордания | 100 ⚠ | 4 ✅ | жду API | — |
| Мальта | 100 ⚠ | 10 ✅ | жду API | — |
Каждая страна уже имеет минимум 100 отелей (page 1 импортирована 22.04). Пагинация до полного объёма — в 25.04-26.04 ночных запусках.
| Страна | Отели | Статус |
|---|---|---|
| Италия | 7000/9887 | 🟢 71% · +6900 за 24.04 (рывок Италии) |
| Испания | 100/5902 | 🔴 ждёт ночного запуска |
| Болгария | 100/2011 | 🔴 ждёт |
| Черногория | 100/1420 | 🔴 ждёт (Т2 → Т3 переоценить) |
| Марокко | 100/1253 | 🔴 ждёт |
| Филиппины | 100/1200 | 🔴 ждёт |
| Португалия | 100/1166 | 🔴 ждёт |
| Хорватия | 100/1081 | 🔴 ждёт |
| Чехия | 100/1066 | 🔴 ждёт |
| Узбекистан | 100/952 | 🔴 ждёт |
| Малайзия | 100/863 | 🔴 ждёт |
| Азербайджан | 100/693 | 🔴 ждёт |
| Албания | 100/589 | 🔴 ждёт |
| Япония | 100/574 | 🔴 ждёт |
| Израиль | 100/486 | 🔴 ждёт |
| Казахстан | 100/481 | 🔴 ждёт |
| Армения | 100/432 | 🔴 ждёт |
| Камбоджа | 100/423 | 🔴 ждёт |
| Сингапур | 100/416 | 🔴 ждёт |
| Сербия | 100/341 | 🔴 ждёт |
| Южная Корея | 100/338 | 🔴 ждёт |
| Оман | 100/320 | 🔴 ждёт |
| Катар | 100/250 | 🔴 ждёт |
| Кения | 100/218 | 🔴 ждёт |
| Бахрейн | 100/172 | 🔴 ждёт |
| ЮАР | 26/26 | ✅ готово |
✅ 100% покрытие T4 на 28.04. 5 стратегических загружено 27.04 (Аруба, Мьянма, Непал, Саудовская Аравия, Фиджи — +516). Остальные 20 — 28.04 (+11 972 hotels). Включая Францию (3 453), Австрию (1 994), Абхазию (1 336), Германию (1 255). На клиентских страницах для безвизово-недоступных РФ стран — pivoting через шенгенскую визу + прозрачное предупреждение.
| Страна | ID | Hotels | Группа / статус |
|---|---|---|---|
| 🇫🇷 Франция | 32 | 3 453 | Европа премиум · ✅ 28.04 |
| 🇦🇹 Австрия | 31 | 1 994 | Европа · ✅ 28.04 |
| 🇦🇿 Абхазия | 46 | 1 336 | Локальный / СНГ · ✅ 28.04 |
| 🇩🇪 Германия | 38 | 1 255 | Европа премиум · ✅ 28.04 |
| 🇧🇷 Бразилия | 39 | 734 | Латинская Америка · ✅ 28.04 |
| 🇭🇺 Венгрия | 37 | 694 | Европа · ✅ 28.04 |
| 🇨🇭 Швейцария | 52 | 538 | Европа премиум · ✅ 28.04 |
| 🇬🇧 Великобритания | 44 | 457 | Европа премиум · ✅ 28.04 |
| 🇧🇾 Беларусь | 57 | 330 | СНГ · ✅ 28.04 |
| 🇰🇬 Кыргызстан | 60 | 278 | СНГ · ✅ 28.04 |
| 🇸🇦 Саудовская Аравия | 93 | 269 | Ближний Восток · ✅ 27.04 |
| 🇵🇱 Польша | 65 | 246 | Европа · ✅ 28.04 |
| 🇦🇩 Андорра | 17 | 216 | Горнолыжный · ✅ 28.04 |
| 🇳🇴 Норвегия | 83 | 205 | Скандинавия · ✅ 28.04 |
| 🇸🇮 Словения | 43 | 204 | Европа · ✅ 28.04 |
| 🇸🇰 Словакия | 42 | 196 | Европа · ✅ 28.04 |
| 🇯🇲 Ямайка | 33 | 157 | Карибы · ✅ 28.04 |
| 🇳🇵 Непал | 82 | 78 | Азия экзотика · ✅ 27.04 |
| 🇫🇯 Фиджи | 67 | 75 | Океания · ✅ 27.04 |
| 🇱🇧 Ливан | 80 | 74 | Ближний Восток · ✅ 28.04 |
| 🇲🇲 Мьянма | 81 | 63 | Азия экзотика · ✅ 27.04 |
| 🇵🇦 Панама | 87 | 49 | Карибы · ✅ 28.04 |
| 🇦🇷 Аргентина | 88 | 39 | Латинская Америка · ✅ 28.04 |
| 🇻🇪 Венесуэла | 90 | 33 | Латинская Америка · ✅ 28.04 |
| 🇦🇼 Аруба | 72 | 31 | Карибы · ✅ 27.04 |
| Тир | Стран | Характер |
|---|---|---|
| 🔴 T1 Ядро | 10 | Турция, Тунис, Мальдивы, ОАЭ, Египет, Индия, Шри-Ланка, Китай, Вьетнам, Таиланд |
| 🟠 T2 Сильные ниши | 13 | Мальта, Иордания, Маврикий, Доминикана, Сейшелы, Куба, Танзания, Кипр, Мексика, Черногория, Грузия, Индонезия, Греция |
| 🟢 T3 Средний | 25 | Италия, Испания, Португалия, Хорватия и ещё 21 |
| ⚪ T4 Для галочки | 25 | Франция, Германия, Швейцария, Беларусь и ещё 21 |
| Итого | 73 | Все страны Tourvisor распределены |
Важно: Tourvisor API включает только выездной туризм (73 страны). России там нет.
Внутрироссийский туризм после 2022 вырос в 2 раза — это огромный сегмент, который мы обязаны иметь.
| Регион РФ | Источник данных | Приоритет |
|---|---|---|
| Сочи / Красная Поляна | Ostrovok + Слетать | 🔴 Top |
| Крым (Ялта, Алушта, Севастополь) | Ostrovok + ТО напрямую | 🔴 Top |
| Минеральные Воды (Кисловодск, Есентуки) | Санаторные ТО | 🔴 Top |
| Санкт-Петербург | Ostrovok | 🟠 Городские туры |
| Калининград | Ostrovok | 🟠 |
| Казань | Ostrovok | 🟠 |
| Алтай | Собств. база + ТО | 🟠 Премиум эко |
| Байкал | Собств. база + ТО | 🟠 Премиум эко |
| Шерегеш / Эльбрус | Местные ТО | 🟢 Горнолыжка |
| Карелия | Глэмпинги / эко | 🟢 Глэмпинг |
| Камчатка / Териберка | Собств. ТО | 🟢 Экзотика |
| Золотое кольцо | Ostrovok + экскурсионные ТО | 🟢 Культурный |
| … | … | 85 субъектов РФ |
Когда: после полной интеграции 73 стран Tourvisor (июнь-июль 2026)
📋 Полный документ: 🇷🇺 Россия — внутренний туризм (план интеграции)
сommon.place. Сейчас 3/5 пилотных. Нужен массовый проход по всем 200 отелям когда соберём details| Скрипт | Что делает | Команда |
|---|---|---|
fetch-more-countries.py | Списки отелей по странам (100/стр) | python3 fetch-more-countries.py tier2|tier3|all |
fetch-regions.py | Регионы по странам | python3 fetch-regions.py tier2|all |
fetch-subregions.py | Субрегионы по странам | python3 fetch-subregions.py priority|t1|t2 |
detail-extract.py | Детали /hotels/{id} (пилот) | python3 detail-extract.py |
paginate-hotels.py ✅ | Пагинация /hotels?page=N с LIMIT=500 + tier-aware bygap. Ядро импорта | python3 paginate-hotels.py bygap |
generate-wrappers.py | Генерация SEO-обёрток (HTML превью) | python3 generate-wrappers.py --pilot |
validators/run-all.sh 🛡 | Запуск всех валидаторов (countries, tracker-sync, lists) | ./scripts/validators/run-all.sh |