28 октября · Павел · «Конкуренты»: на каждой карточке — состояние сбора
мелкая правка
последний срез · сколько в базе · с какого дня собираем — на всех магазинах Wildberries и Ozon
✅🗂 Строка «как собран магазин»
Под названием каждого магазина теперь одна строка: когда его смотрели последний раз, сколько артикулов о нём знаем и с какого дня собираем. Например: «Последний срез 27 окт · в базе 57 076 артикулов · собираем с 20 сент». Если магазин этой ночью не смотрели, дата среза подсвечена оранжевым — сразу видно, что данные не сегодняшние. Строка есть и у новых магазинов, и у тех, что не собрались, и на вкладке Ozon (там счёт в товарах).
✅🟦 Ozon: лишний переключатель спрятан
Пока у магазина на Ozon есть только точка отсчёта, «За день» и «За неделю» показывают одно и то же. Вчера переключатель должен был прятаться, но оставался на экране — теперь его нет, пока не появятся первые новинки.
✅🌞 Ночной сбор выключен — собираем днём, в фоне
Решение Павла: ночной автозапуск на Маке больше не нужен, он снят. Сбор запускается вручную днём в отдельном Chrome и не мешает работать за компьютером. Со страницы «Конкуренты» убраны «ночные» обещания вроде «попробуем следующей ночью» и «после завтрашнего вечернего среза»: теперь там «в следующий сбор». Если данные не сегодняшние, сверху честно написано, от какого числа последний сбор.
✅🤖 Утренний отчёт бота — под дневной сбор
Бот по-прежнему в 9:20 пишет в Telegram, как прошёл сбор новинок: сколько магазинов собрано и сколько новых принтов. Раньше он ждал сбор каждую ночь и без него начал бы каждое утро жаловаться, что «Мак не прислал итог ночного сбора». Теперь отчёт приходит один раз, утром после сбора, а если сбора не было, бот молчит: пропущенный день — это не сбой. Ложного «магазин этой ночью не собран» тоже не будет: магазин считается собранным, если его смотрели в последний сбор.
✅🕵️ Ozon: ложные новинки пойманы и убраны
Ozon показывает в магазине не весь каталог, а каждый раз немного другую выборку: вчера 937 товаров, сегодня 208. Из сегодняшних 147 были незнакомыми, и сервер выдал их за новинки дня. Проверка показала, что все они старше самого свежего товара, который мы уже знали, то есть лежали в магазине и раньше. Теперь новинкой на Ozon считается только товар новее всего известного, а эти 147 дописаны в базу.
Ночной сбор 28 октября не стартовал: у ночного запуска по-прежнему нет разрешения macOS «Полный доступ к диску». Днём собрали в фоне: Wildberries — 7 магазинов из 7, без отказов (у Вельца 242 новых принта, у ФУТБОЛКИНа 65; «Физтех Принт» за сутки ничего не выложил), Ozon — новых товаров нет.
27 октября · Павел · «Конкуренты»: сбор в фоне, вкладка Ozon и новый конкурент
крупный день
ночь сорвалась → днём 6 магазинов из 6 в фоне, без единого отказа · новый конкурент «Физтех Принт» по просьбе Алины · страница разделена на вкладки Wildberries и Ozon · первый сбор с Ozon — 907 товаров
✅🌙 Почему ночью не собралось
Ночной запуск в 00:05 не смог даже прочитать программу сбора: у неё нет разрешения macOS «Полный доступ к диску» (шаг из инструкции был пропущен, теперь он вписан в саму настройку запуска). Ручной запуск в час ночи шёл через мобильный интернет, и Wildberries ответил «Подозрительная активность»; по правилу после отказа в ту же ночь больше не пробуем. Днём собрали заново: 6 магазинов из 6 за 32 минуты. У Вельца 2 512 новых артикулов (310 принтов), у MSM 215.
✅🫥 Сбор в фоне — не мешает работать за Маком
Раньше сбор листал магазины настоящим колесом мыши: выводил Chrome поверх всех окон и двигал курсор, работать в это время было нельзя. Теперь он открывает отдельный Chrome со своим профилем и прокручивает страницу изнутри браузера — для сайта это такие же настоящие движения, а курсор и окна остаются вашими. Если WB попросит пройти проверку, окно сбора выйдет вперёд, придёт уведомление со звуком, и сбор подождёт 10 минут, пока её пройдут руками. «Подозрительная активность» по-прежнему сразу останавливает сбор.
✅🔌 Связь с сервером больше не рвётся на пересчёте
Пока сервер скачивал обложки новинок, связь с Маком пару минут молчала, и VPN её обрывал — итог записывался как «не отправилось», хотя всё досчиталось. Теперь сборщик каждые 30 секунд подаёт серверу знак, что он на связи.
✅🆕 Новый конкурент — «Физтех Принт»
Магазин, который прислала Алина, добавлен в список Wildberries. Сегодня сбор запомнил 2 500 самых свежих его артикулов — это точка отсчёта, первые настоящие новинки появятся после ночи на 28 октября. Попутно найдена и исправлена ловушка: магазин с большим каталогом, добавленный уже при сборе с Мака, никогда не дособрал бы базу — теперь она берётся за один раз.
✅🟦 Вкладки Wildberries и Ozon
Страница «Конкуренты» разделена на две вкладки, у каждой своя прямая ссылка. На Ozon тот же продавец («Физтех.Принт»): сбор открывает его магазин с сортировкой «Новинки» сразу после Wildberries. Сегодня запомнили 907 товаров — новинки покажем со следующего сбора, а пока на вкладке видно, что сейчас наверху в «Новинках» самого магазина, с честной подписью. Ozon вставляет прямо в ленту магазина чужую «витрину скидок» (в первом сборе — 30 товаров вроде кефира и Old Spice); теперь сбор берёт только ленту магазина, а реклама из базы убрана.
Проверено: обе вкладки отрисованы на живых данных с сервера, на компьютере и телефоне; ошибок нет, картинки Ozon грузятся, «Физтех Принт» стоит на вкладке Wildberries карточкой «запоминаем свежую часть каталога». Ночной автозапуск по-прежнему ждёт разрешения «Полный доступ к диску» — без него ночью сбор не начнётся.
26 октября · Павел · «Конкуренты»: в десять раз легче, принты крупно, кошак-лоудер
скорость и вид
срез 6,2 МБ → 750 КБ · обложки 130 КБ → 15 КБ · магазины слоями, плитки крупные · пока грузится — кот следит за курсором · вступительные тексты убраны
✅⚡ Почему было медленно и что с этим сделано
Страница тянула срез на 6,2 МБ (все шестнадцать тысяч артикулов Вельца) и полторы сотни обложек в оригинале 900×1200 по 130 КБ каждая — около 20 МБ за один показ. Теперь сервер пишет рядом компактный срез по принтам (750 КБ) и делает миниатюры 320 px по 15 КБ; Caddy сжимает тексты и даёт браузеру держать картинки неделю. Всё это считается на сервере, страница ничего не пересчитывает.
✅🐱 Кошак-лоудер
Пока срез едет, на экране тот же кот, что на дашборде при запуске сборки: следит за курсором, под ним «Агрегируем данные конкурентов» → «Раскладываем принты». Вынесен в отдельный файл cat_loader.js, чтобы подключать одной строкой на любую страницу; дашборд не менялся. Короче 0,65 с не показывается, чтобы не мелькал.
✅🧱 Магазины слоями, принты крупно
Вместо трёх узких колонок каждый магазин — полоса на всю ширину: плитки принтов 150 px (на телефоне две в ряд), сразу 18 штук и кнопка «Показать ещё 24». Вступление про исследование, две стратегии, «что уже работает» и застывшие досье убраны — страница начинается с «Что конкуренты залили». Исследование 20 игроков осталось ниже под своим заголовком.
✅📊 Окно «Просмотр активности» — по ночному срезу
Раньше в нём было «0 товаров, новых нет» — это досье, которое собирал сервер до 24 сентября, когда Wildberries закрыл ему каталог. Теперь там принты за срез, за неделю, цены и те же плитки, что на витрине.
✅📅 Дата среза — день проверки
У Тимонова в срезе лежали принты от 21 октября, а проверяли его 26-го и нового не нашли; страница показывала «срез 21 окт». Теперь дата — день проверки, а «накопилось за N дней» пишется только когда сервер действительно помнит прошлую проверку. Утренний отчёт бота считает новые принты только по магазинам, которые смотрели этой ночью.
26 октября · Павел · раздел «Конкуренты» приведён в порядок
порядок
первый полный ночной сбор после простоя — 6 магазинов из 6 · витрина считает принты, а не артикулы · у каждой карточки своя дата среза · Excel и PDF — строка на принт
✅🔢 Считаем принты, а не артикулы
Wildberries заводит отдельный артикул на каждый размер и цвет: у Вельца в среднем восемь на принт, у ходовых — шестьдесят. Поэтому витрина показывала «6611 новинок за сутки», а в галерее двенадцать плиток оказывались двумя футболками по шесть раз. Теперь цифра на карточке — принты (у Вельца 807 за срез), артикулы подписаны рядом, на плитке значок «×8». Галерея — по одной плитке на принт. Реестр при этом исправен: партии артикулов у Вельца идут по возрастанию, он действительно заливает около 1 200 артикулов в день — ошибка была в единице счёта, а не в данных.
✅📅 У каждой карточки своя дата среза
Магазины теперь смотрим по очереди, и у части карточек данные на одну-две ночи старше. Раньше это ничем не отличалось от сегодняшних. Теперь под названием стоит «срез 26 окт», а если магазин этой ночью не был в очереди — дата оранжевая. После простоя пишем «накопилось за 5 дней», чтобы большая цифра «за день» не пугала и не обманывала.
✅📗 Excel и PDF — строка на принт
Файл «Excel с принтами» Алина смотрит с телефона, и восемь одинаковых строк подряд там нечитаемы. Теперь одна строка — один принт: картинка, название, цена, дата, сколько у него артикулов и полный их список отдельной колонкой. У Вельца файл стал 1 828 строк вместо 16 353. То же в PDF и в таблице с сайта.
✅🧹 Чистка реестра по правилу проекта
Артикулы на Wildberries растут со временем, и настоящая новинка всегда старше по номеру, чем всё, что уже было в базе. Нашлись 835 артикулов, помеченных датой, но с номером не выше старших в базе: их просто не видели при наборе базы. Переписаны в базу, срез пересобран без похода на сайт; копия реестра до чистки лежит рядом. На витрине это убрало 14 ложных новинок — например, футболку 2019 года у OTHERS.
✅📝 Тексты раздела — про то, как это работает сейчас
На странице было «каждый вечер в 21:00 снимаем список» и плашка про заблокированный сервер — так работало в сентябре. Переписано под ночной обход обычным браузером и ротацию магазинов. Зелёная строка «Живые данные WB обновлены: 24 сентября» перестала быть зелёной: досье продавцов (число товаров, цены, отзывы) стоят с 24 сентября, об этом сказано прямо, с оговоркой, что к новинкам это не относится.
Проверено на живых данных: страница отрендерена локально на десктопе и телефоне, ошибок нет; Excel пересобран на сервере, заголовки и строки проверены. Первая ночь по расписанию — на 27 октября: Мак просыпается в 00:03, сбор идёт в 00:05.
25 октября · Павел · сбор конкурентов оживлён: виноват был не Wildberries
починка
четыре дня витрина показывала старое · причина оказалась в галочке браузера и в нашем же предохранителе · ночной обход урезан вдвое, домашний интернет выведен из-под удара
✅🔌 Сбор остановила галочка в Chrome, а не защита магазина
21 октября сбор замолчал, и всё указывало на то, что Wildberries нас забанил. На деле в браузере слетела настройка «Разрешить JavaScript из событий Apple» — без неё программа может открыть страницу магазина, но не может прочитать, что на ней показано. Chrome сбрасывает эту настройку сам при обновлениях, и живёт она отдельно в каждом профиле браузера: галочка стояла в одном профиле, а сбор работал в другом. Отсюда и путаница — в меню видно «включено», а программа получает «отключено».
✅🛡️ Наш предохранитель принимал загрузку за блокировку
У страницы отказа Wildberries заголовок «...». Ровно такой же заголовок у обычной страницы, пока она ещё рисуется. Проверка срабатывала на первой секунде, до загрузки, — и сбор сам себя выключал на всю ночь, решив, что его забанили. Теперь «...» означает «ещё грузится», ждём до тридцати секунд, и только если за это время ничего не появилось — считаем отказом. Настоящую блокировку по-прежнему узнаём мгновенно, по тексту на самой странице.
✅🌙 Шесть магазинов за ночь вместо двенадцати
Три магазина, которые Алина просила смотреть в первую очередь, собираются каждую ночь. Остальные девять поделены на три группы и идут по очереди — до любого очередь доходит самое позднее на третью ночь. Ночной след стал вдвое короче, а свежесть по главным конкурентам не пострадала. Чем меньше мы беспокоим сайт, тем дольше живёт сбор.
✅☀️ Днём к Wildberries больше не ходим
Если ночью компьютер спал, система запускает пропущенное задание при пробуждении — то есть среди дня. Раньше сбор в таком случае растягивался на сутки и ходил по магазинам в самое неподходящее время. Теперь программа смотрит на часы: не ночь — разворачивается и ждёт следующей, а утренний отчёт в Telegram объясняет человеческим языком, что компьютер ночью спал.
✅📱 Проверено: сбор может идти через телефон
Домашний адрес после дня проверок оказался временно придавлен. Раздали интернет с телефона — Wildberries открылся сразу же, каталог отдал без единой заминки. Это даёт запасной канал и, что важнее, снимает риск с домашнего интернета: если сайту что-то не понравится, пострадает ночной адрес оператора, а не Wi-Fi всей семьи.
Отдельный урок дня: четыре дня никто не знал, что сбор стоит. Утренний отчёт о сбоях в проекте есть — надо проверить, доходит ли он до адресатов, иначе следующая поломка снова спрячется на неделю.
1 октября · Руслан · локальный обход Wildberries снова готов
починка
после исправления VPN Мак снова открывает Wildberries · настоящее колесо проверяется до старта · случайная потеря первого движения больше не ломает весь ночной обход
✅🖱️ Прокрутка не сдаётся после одной осечки
Первый запуск потерял Chrome, пока VPN не давал открыть российский сайт. После исправления VPN отдельно укрепили сам обход: перед прокруткой программа возвращает своё окно Chrome на передний план и повторяет движение, если первый сигнал не дошёл. Если настоящее колесо всё-таки временно не сработало, этот шаг выполняется запасным способом, а сбор продолжается.
✅🔎 Проверка разрешения стала настоящей
Команда проверки теперь не только видит галочку «Универсальный доступ», но и открывает локальную тестовую страницу, прокручивает её на 600 пикселей и закрывает. На этом Маке проверка прошла: Chrome отвечает, экран разблокирован, колесо действительно двигает страницу. К Wildberries эта проверка не обращается, поэтому её можно запускать безопасно перед ночью.
28 сентября · Алина · чарт в Spotify
новый источник
в «Музыке» появилась вкладка с мировым чартом · видно не «песня популярна», а «песня вышла два дня назад и уже вторая» · около 400 ₽ в месяц
✅🎧 Чарт в Spotify — новая вкладка в «Музыке»
Раздел «Музыка» Алина назвала самым полезным: вышла песня, видно что залетает, сделали принт, принт продался. Но наши чарты показывали Россию, а мировые хиты доходили до них с опозданием. Теперь рядом стоит топ-100 Spotify: у каждого трека прослушивания за день, изменение позиции, сколько дней он в чарте и пиковое место. Ссылка ведёт послушать.
✅🆕 Главное — ярлык «новинка», а не размер цифр
Просто большие прослушивания ничего не говорят: в мировом чарте половина позиций это старая классика, Ed Sheeran висит там 3004 дня. Для принта важен другой сигнал — трек вышел только что и уже забрался высоко. Померили по живому чарту: прослушивания у большинства треков вообще падают, медиана минус четыре процента за сутки, так что «рост прослушиваний» как признак бесполезен. Подъём по позициям тоже обманывает — его показывают «Hips Don't Lie» после 520 дней. Осталось одно честное правило: новинка — это трек моложе двух недель. Сегодня их пять, и это свежий альбом Taylor Swift на втором, третьем, пятом и шестом местах.
✅🔌 Почему через Apify, а не напрямую
Spotify закрыл сторонним программам доступ к своим редакционным подборкам в конце 2024 года — а чарты живут именно там, — и замены не сделал. Страница чартов на их сайте без входа в аккаунт отдаёт пустую оболочку. Единственный рабочий путь — готовый сборщик на Apify, который снимает чарт с веб-интерфейса. Обходится примерно в 400 ₽ в месяц при одном сборе в сутки; чаще незачем, чарт обновляется раз в день.
✅🔧 29 сентября: вкладка не открывалась — починено
Выкатил вчера с двумя ошибками, и обе всплыли бы у первого же человека: по нажатию на вкладку ничего не происходило. Причина — новой вкладке не завели настройки сортировки, а страница требует их для любой вкладки, и переключение падало молча. Вторая ошибка — я звал функцию экранирования текста не тем именем, какое принято на этой странице. Виноват в том, что не нажал на собственную кнопку перед тем, как сказать «готово». Теперь нажал: сто карточек, сортировки «по позиции», «сначала новинки», «по прослушиваниям», «сильнее выросли». Заодно страница больше не падает молча, если у вкладки нет сортировок.
✅🛡️ Пустой чарт не обнуляет вкладку
Если сбор не удался, витрина показывает прошлый чарт с пометкой, что он не сегодняшний, — вместо пустой страницы, которая выглядит как поломка. Тот же подход, что у конкурентов после истории с Wildberries. И вкладка вообще не появляется, пока нет настоящих данных.
28 сентября · Руслан · конкуренты: Вельц догнан, у всех новинок есть картинки
починка
первая ночь без предела: все 12 магазинов, Вельц пролистан до конца · обложки качаются для всех новинок, а не для первых 60 · в Excel весь последний день целиком
✅🌙 Вельц догнан до 21 сентября
За ночь Мак пролистал у Вельца 10 000 карточек и дошёл до товаров, известных с 21 сентября, — пропущенный кусок закрыт. За 28 сентября у него 436 новинок; за 27-е записано 8 746 — это всё, что накопилось за шесть дней без проверки. Остальные 11 магазинов собрались как обычно. Похоже, больше 10 000 товаров WB в магазине не показывает — для ежедневной работы (у Вельца 400–500 в день) этого с запасом хватает.
✅🖼️ Картинки у всех новинок
Раньше обложки качались только для 60 новинок магазина за ночь, и в Excel у большинства товаров Вельца картинок не было. Теперь качаются все, а что не успелось ночью, сервер докачивает утром в 7:40. Сразу докачали 11 тысяч картинок — у всех новинок недели теперь есть принт.
✅📗 В Excel — весь день целиком
В таблицу раньше попадало не больше 300 строк — меньше, чем Вельц заливает за один день. Теперь последний день идёт целиком всегда, а вместе с остальной неделей — до 3000 строк с картинками (файл Вельца — около 11 МБ).
✅🧹 Старые картинки удаляются сами
Картинки нужны только для новинок за неделю. Теперь каждое утро сервер удаляет обложки товаров, которые из недели выпали, — иначе папка росла бы на ~50 МБ в день и через полгода заняла бы весь диск.
27 сентября · Руслан · TikTok входит сам
автоматизация
больше не нужно раз в три дня «чинить тикток» руками · перед сбором Мак сам проверяет вход и, если надо, входит через Google · проверено контрольным входом
✅🔑 Автовход в TikTok перед каждым сбором
Ключ для TikTok живёт ровно трое суток, а продлить его без нового входа нельзя, поэтому раньше раз в три дня кто-то входил руками. Теперь каждый вечер перед сбором Мак проверяет вход, и если его нет или ключу осталось меньше полутора суток, входит сам. Путь тот же, что у Руслана: Creative Center → «Log in» → «Log in with Google» → аккаунт Rusio Geminez. На это уходит около минуты, пароли скрипт не знает и не хранит.
✅🎥 Путь записан с ручного входа Руслана
Первые попытки шли через другую страницу входа. Там TikTok подставлял чужой аккаунт, а за частые попытки временно закрыл вход. Тогда Руслан вошёл руками в окне скрипта, а скрипт записал каждый клик. По этой записи автовход переделан, и контрольная попытка прошла сама за 45 секунд.
✅🛟 Если не получится — сбор не сломается
При любой заминке (Google попросит пароль, TikTok покажет что-то новое) автовход сдаётся и оставляет старый ключ, так что сбор проходит как обычно. Снимки экрана сохраняются для разбора, а в Telegram, как и раньше, приходит напоминание войти вручную.
27 сентября · Руслан · конкуренты: каждый магазин — до конца новинок
починка
убран предел, на котором обрывался Вельц · любой магазин листается, пока не кончатся новые товары · недосмотренный магазин больше не пропадает, бот предупреждает
✅📜 Магазин листается до конца новинок, без предела
Вечером Вельца пролистали на 2540 товаров, и сбор остановился на пределе в 2500 — до уже знакомых товаров не дошёл: за шесть дней без проверки Вельц залил больше. Ночью Мак опять начал бы сверху и упёрся бы в тот же предел, так что пропущенное не собралось бы никогда. Теперь предела нет ни у одного магазина: Мак листает «По новинкам», пока не встретит сотню знакомых товаров подряд. В обычную ночь это по-прежнему 1–3 страницы, а Вельца в следующий запуск Мак долистает до конца.
✅🧩 Недосмотренный магазин не пропадает
Раньше только Вельц показывался, даже если его не успели досмотреть; остальные магазины в такую ночь просто пропускались. Теперь любой магазин показывает то, что успели увидеть, с пометкой «остальное досмотрим следующей ночью», а утром бот пишет админам, какие магазины досмотрены не до конца.
27 сентября · Руслан · Threads: разобрались и вывели в меню
исследование
изучили Threads как замену Инстаграму · автоматически «тренды Threads» не получить никак, но по нашим словам-зондам он отвечает · новая вкладка «Threads» с темами под принт каждое утро
✅🔎 Как устроен Threads и есть ли там наша аудитория
500 млн человек в месяц, на телефонах уже обогнал Твиттер. Но русскоязычный Threads — это в основном Казахстан и Украина, и российских мемов, которые рождались бы там раньше, чем в Telegram и TikTok, не нашлось. Раздел «Trending now» есть только в США, Японии, Бразилии и паре стран — в России его нет, и забрать его автоматически нельзя ни одним способом.
✅🧰 Сравнили пять способов собирать данные
Официальный доступ Meta не показывает лайки чужих постов и требует одобрения, которое команде из России почти не получить. Свой сборщик пришлось бы постоянно чинить, Apify выходит в $50–75 в месяц. Выбрали ScrapeCreators — ключ уже есть, около $1,5 в месяц. Полный разбор — в research/threads_2026.md.
✅🧪 Сбор каждый день в 8:40
Бот ищет в Threads 24 слова (аниме, книги, k-pop, мемы, «хочу такую футболку», «I need this on a shirt»…), берёт только свежие посты на русском и английском, а нейросеть выбирает, что можно напечатать, со ссылками на посты. Первый день: «ОНИ ЕЁ ЗАБЫЛИ» (история про собаку Найду, ~5,7 тыс. реакций), фраза «поехали» — «газ», «Проект „Аве Мария“», «Фрирен», «Поднятие уровня в одиночку». Сначала сбор задумывался тихим, для сравнения с ручной проверкой Марии; в тот же день решили не ждать и вывести его на сайт.
✅🧵 Раздел «Threads» в меню
Новая вкладка рядом с Инстаграмом. На карточке — тема, крупно «фраза на принт», если она есть, почему это может продаться, и посты, откуда взято, с лайками и ответами. Можно переключаться между днями, фильтровать по категориям, отмечать звёздочкой и сразу проверять спрос в Wordstat, Google Trends, на WB и Ozon. Внизу свёрнуты самые обсуждаемые посты дня без отбора — видно сырьё. Посты открываются через VPN.
27 сентября · Руслан · первая ночь сбора с Мака и мелкий ремонт
починка
все 12 магазинов конкурентов собраны за ночь без единого отказа WB · радар X перестал «падать» на длинных ответах · у тем TikTok пропадут дубли обложек
✅🌙 Первая ночь сбора конкурентов с Мака
За 35 минут ночью пролистаны все 12 магазинов, WB ни разу ничего не заподозрил. Два магазина сначала не попали на страницу: у ФУТБОЛКИНА мешали старые карточки, которые сайт показывает иначе, — исправлено; Вельц не проверялся с 21 сентября и заливает по 200 товаров в сутки — теперь давно не проверенные магазины Мак листает глубже, догонит этой ночью.
✅📡 Радар X не теряет темы
Когда ответ нейросети не влезал в лимит и обрывался, пропадал весь список тем, и радар показывал сырые данные. Теперь сохраняются все темы, которые успели прийти целиком, а лимит ответа поднят втрое.
✅🖼️ У тем TikTok по три обложки, без дублей
После переноса проекта на новый Мак у части тем показывалось по шесть обложек — половина были копиями. Сбор больше не подхватывает такие копии; со следующего обновления TikTok дубли уйдут со страницы.
26 сентября · Руслан · сбор с Мака — осторожнее и под присмотром
по итогам исследования
большое исследование «как сайты ловят парсеры в 2026» · Мак листает WB настоящим колесом и не работает за экраном блокировки · утром бот сам сообщает, если ночь не удалась · найден запасной путь — MPSTATS
✅📚 Разобрались, как WB ловит роботов
Пять параллельных исследований со ссылками и датами: как в 2026 году сайты отличают людей от программ, чем программы маскируются, какие прокси доступны из России, что можно купить вместо борьбы и где юридические риски. Главное: у WB своя защита, пропуск в ней привязан к браузеру, а чистый домашний адрес не спасает, если поведение выдаёт автоматику. Отчёт лежит в проекте, в папке research.
✅🖱️ Листаем настоящим колесом
Раньше страница прокручивалась командой изнутри сайта — со стороны это «страница едет, а колесо никто не трогал», один из главных признаков робота. Теперь курсор плавно заходит в окно и крутит колесо, как рука человека. Если у Мака нет нужного разрешения, сбор сам вернётся к старому способу и напишет об этом в журнал.
✅🔒 Не работаем за экраном блокировки
За экраном блокировки Chrome не рисует страницы, и листать магазин вслепую — лишний риск для домашнего адреса. Теперь сбор держит экран включённым, а если Мак всё-таки заблокирован — пропускает ночь, не обратившись к WB ни разу.
✅🔔 Утром бот скажет, если ночь не удалась
После каждой ночи Мак отправляет на сервер короткий итог. В 9:20 бот пишет админам, если Мак не вышел на связь, экран был заблокирован, WB показал проверку на робота или собраны не все магазины. Хорошая ночь — тишина. Так мы не повторим историю с обложками TikTok, когда раздел молча простоял сутки.
✅🛟 Запасной путь — MPSTATS
Проверили по официальной документации: у MPSTATS есть «товары продавца — только новинки за 7 дней» с названием, ценой, рейтингом, картинкой и датой появления. Нам хватит самого дешёвого тарифа. Если Мак или WB подведут, будет куда переключиться — перед покупкой нужно задать поддержке несколько вопросов, они записаны в WB_СБОР_С_МАКА.md.
26 сентября · Руслан · новинки конкурентов снова собираются
после блокировки WB
Wildberries не пускает сервер и отсекает автоматический браузер · сбор перенесён на Мак Руслана: обычный Chrome, как человек · первый магазин уже обновился на странице «Конкуренты»
✅🔍 Нашли, почему ночью было ноль
Первая ночь в щадящем режиме Павла дала 0 магазинов из 12. Выяснилось сразу три вещи: WB перенёс свой каталог на новый адрес (сервер стучался по старому), автоматический браузер WB распознаёт и не пускает даже с чистого адреса, а обычный Chrome на домашнем Маке открывает магазины спокойно.
✅🖥️ Сбор переехал на Мак Руслана
Раз в сутки, ночью, Мак сам открывает в Chrome магазины конкурентов, листает их с живыми паузами и в случайном порядке и читает карточки, которые сайт уже показал. Лишних запросов к WB нет — для него это обычный человек, который посмотрел дюжину магазинов. Список уходит на сервер, а «что новое» считается прежней логикой Павла. При первом признаке недовольства WB сбор сам останавливается до следующей ночи.
✅🧹 Сервер больше не стучится в WB
Ночная задача на сервере выключена — она 80 раз за ночь получала отказ и только продлевала блокировку. Проверено на магазине Setner: 122 товара прочитаны за полминуты, ложных «новинок» нет. Как всё устроено и о чём договорились — в файле WB_СБОР_С_МАКА.md в проекте.
23 сентября · Павел · Телеграм плиткой
по следам встречи
карточки Телеграма стали плиткой, как в Твиттере и Музыке · на виду только название, подробности и рейтинг, остальное — под «Подробнее» · лента в три с половиной раза короче
✅🧱 Плитка как в Твиттере и Музыке
Алина и Мария на встрече сказали одно и то же: в Твиттере видно много тем сразу, а в Телеграме приходится листать и вчитываться. Теперь темы Телеграма лежат такими же отдельными карточками — на широком экране четыре в ряд, на телефоне одна колонка. До этого «плитка» складывала в ячейку всю длинную карточку целиком, и легче от неё не становилось. На живых данных: сотня тем занимает в три с половиной раза меньше экрана, чем раньше.
✅🙈 Лишнее — под «Подробнее»
На карточке остались название, категория, короткие подробности и рейтинг — то, по чему тема читается с первого взгляда. Скорость роста, спрос и разрыв на маркетплейсе, кнопки Wordstat / Google Trends / WB / Ozon, просмотры и реакции, источники и «Сгенерить принт» никуда не делись: они открываются кнопкой «Подробнее», когда тема уже заинтересовала. Работает и в плитке, и в списке.
✅⊞ Плитка — по умолчанию
Дашборд Телеграма открывается сразу плиткой. Переключатель «список / плитка» справа над лентой остался, и выбор человека браузер запоминает — переключил на список один раз, дальше открывается список.
19 сентября · Руслан · «что происходит в ролике»
по следам встречи
главная просьба Алины по TikTok и Shorts закрыта · ролики описываются по картинке и звуку, а не только по речи · реклама больше не показывается · выяснилось, что «Видео США» — витрина рекламы
✅🗣️ На карточке ролика — «Что в ролике»
Алина: «видно, что ролик залетел, и непонятно, в чём мем». Теперь у каждого ролика в TikTok «Видео США» и в YouTube Shorts есть блок с описанием по-русски: кто, что делает, в чём шутка; формат («POV-скетч», «танец под звук»); надписи с экрана с переводом; самая цепкая фраза — кандидат на принт. Свёрнуто — две строки, по клику — всё. Раньше описывалась только речь и только у верхних 15 роликов — у 37 из 50 не было ничего, потому что мем чаще в картинке, а не в словах.
✅🧠 Честность важнее красоты
Перед выбором модели прогнали четыре ролика через три варианта. Дешёвая модель выдумала сюжет (в ролике была лама — она придумала «мыло как утешение»), дорогая отвечала в пять раз дольше и через раз молчала при том же качестве. Взяли среднюю с нулевой «фантазией»: четыре раза подряд — один и тот же верный ответ. Если она сама не уверена, ролик переспрашивается у дорогой; если и та не уверена — описания на карточке не будет вовсе, лучше пусто, чем неправда. Цена — треть копейки за ролик, повторные ролики бесплатны.
✅🛒 Реклама не показывается
Решение Руслана: рекламные интеграции не описываем и не показываем. Сначала бесплатная отсечка по подписи (#ad, #…Partner, erid), потом то, что проскочило без пометки, ловит модель по сюжету (Chipotle, ESPN, Coors Light — проверено вручную, ни одной ошибки).
✅⚠️ Диагноз: «Видео США» в TikTok — витрина рекламы
После фильтра выяснилось, что из 50 «трендовых видео США» рекламных интеграций — 47. Creative Center в этой вкладке показывает не мемы, а витрину для рекламодателей. Скорее всего, поэтому Алина оттуда ничего не брала. Органических роликов остаётся 2–3 в день, они и показываются. Что делать с вкладкой дальше — отдельное решение: оставить как есть, вернуть рекламу с пометкой или спрятать. В YouTube Shorts рекламы нет — там описаны все ролики.
✅⚙️ Где это крутится
TikTok — на Маке Руслана вместе с ежедневным сбором (с сервера TikTok ролики не отдаёт). YouTube — на сервере сразу после утреннего сбора шортсов в 7:30 (с сервера YouTube качается, проверено). Описания пишутся один раз и хранятся — пока ролик держится в топе, он ничего не стоит.
21 сентября · Павел · принты и плитка
интерфейс
кнопка генерации принта вернулась на карточку Телеграма · в виде плитки колонки больше не сплющиваются, а идут слоями
✅🖨 «Сгенерить принт» вернулась на карточку
Кнопку свернули 16 сентября по решению встречи с креаторами, но сам модуль всё это время лежал нетронутым — пряталась только кнопка входа. Теперь она снова на месте и стоит внизу карточки отдельной строкой, под источниками, а не в ряду значков у заголовка: так она не спорит с «Поделиться» и не мешает читать тему. Всё остальное в карточке осталось как было. Модуль вернулся ровно в прежнем виде: шесть промтов по разным углам, кубики для перебора составляющих, «Переделать промт», генерация картинки с ценником.
✅🧱 Плитка: колонки внутри карточки легли слоями
В виде плитки карточка втрое уже, чем в списке, и три колонки внутри неё сжимались примерно до 160 точек — «Анализ тренда» переставал помещаться, шкалы налезали на подписи. Теперь в плитке блоки идут один под другим: сначала анализ, потом подробности, потом спрос и разрыв на маркетплейсе. Ширины каждому хватает, читается сверху вниз. В обычном списке всё осталось в три колонки, как было. Заодно выровняли сами плитки: раньше три карточки в ряду получались разной ширины, потому что содержимое растягивало их по-своему.
✅⏱️ Проверили модуль после простоя — живой, но думает почти минуту
Пять дней кнопкой никто не пользовался, поэтому запустили один раз целиком: промты приходят, кубики работают, ценники считаются. Но от нажатия до появления промтов проходит около пятидесяти секунд — всё это время виден крутящийся значок с надписью «Claude придумывает промты». Это не поломка, так работает модель, но ожидание долгое: если надпись будет меняться по ходу дела, ждать станет спокойнее. Скажите, если стоит сделать.
20 сентября · Алина · одежда, концерты и деньги
три пункта
в блоке «что уже есть на WB» решение читается первой строкой · посчитан минимальный режим — он в двадцать раз дешевле, чем казалось · проверка афиши дала другой ответ, чем ожидали
✅👕 «Одежды по теме нет» — теперь первой строкой
Раньше, чтобы понять главное, список приходилось листать глазами: на фильме «Оглянись» нашлись манга и кружки, а футболок не было — и это как раз сигнал занять нишу, но увидеть его можно было только вручную. Теперь наверху стоит вывод: «Одежды по теме нет — ниша свободна» зелёным, «Футболок нет, другой одежды 3» жёлтым или «Футболок по теме уже 96» красным. Рядом разбивка: сколько футболок, худи, кружек, постеров, книг. Товары считаются только те, что действительно по теме, — WB часто подмешивает совпадения по отдельным словам, и они в подсчёт не идут.
✅💰 Держать свет включённым стоит ≈1 350 ₽ в месяц
На обсуждении звучал ориентир в двадцать-тридцать тысяч. Разобрал по статьям: почти весь бюджет — это две подписки Claude на 14 000, то есть оплата работы, а не сервиса. Если работу притормозить, подписки не нужны. Остаётся сервер, один вечерний разбор трендов вместо трёх и радар — около 1 350 ₽. Сбор Telegram и вечерний срез конкурентов не стоят вообще ничего. Отдельно записал, что выключать нельзя и почему: замеры просмотров, история всплесков и список артикулов конкурентов имеют смысл только как ряд без пропусков. Один пропущенный день стоит ноль рублей и портит графики на неделю вперёд. Разбор — на странице расходов, раздел «Минимальный режим».
✅🎫 Концерты: гипотеза не подтвердилась, проблема оказалась крупнее
Собирались проверить, не теряем ли концерты из-за того, что берём афишу в одном месте. Померил — дело не в этом. Яндекс отдаёт ровно 15 событий на город, и это потолок самой страницы: прокрутил три раза, восемь и шестнадцать — каждый раз пятнадцать. То есть мы берём не афишу, а витрину «самое популярное», где половина вообще не концерты: «Белая. Снежная Королева», «Halloween Fest», «День рождения МУЗ-ТВ». При этом в чарте у нас девяносто артистов. Второй источник действительно нужен, но причина другая, и одной заменой площадки вопрос не решится — искать надо по артистам, а не по городу.
✅⚠️ Попутно: утренний сбор концертов нестабилен
Пока мерил, заметил: на сайте сегодня четыре концерта, а тот же сбор, запущенный вручную через час, дал двадцать шесть. Значит, утренний прогон иногда возвращается почти пустым, и никто об этом не узнаёт — раздел просто выглядит бедным. Это отдельная поломка, записал её в задачи.
20 сентября · Алина · чистка выдачи
меньше мусора
военные сюжеты больше не просачиваются — нашлась причина, по которой прежний фильтр молчал · из радара X ушёл американский футбол, а спорное свернулось под кнопку
✅🚫 Почему военные темы проходили мимо фильтра
Причина оказалась не в списке запрещённых слов, а в обрыве цепочки. Программа, которая пишет названия тем, получала указание: если сюжет украинский — оставь название пустым, тогда тема отсеется. Она так и делала. Но отсеивать пустые названия было некому — такой проверки в коде просто не существовало. В итоге тема доезжала до отчёта и показывала вместо названия сырой текст поста: «Момент прилёта по новой почте в Одессе». Теперь указание работает. Отдельно предусмотрено: если программа-аналитик оборвалась на полпути и не ответила по части тем, пустое название означает «ответа нет» — такие темы не удаляются, иначе один сбой вычистил бы половину отчёта.
✅📋 Список запрещённых тем — по реальным случаям, а не на глаз
Поднял базу за три недели и выписал, что именно просочилось: «атака БПЛА по Ростову», «работа ЗРК по БПЛА ВСУ», «Германия готовит мобилизацию», «геймеров ждут на фронте», «прилёты по жилому дому». Прежний фильтр знал два слова — «украина» и «зсу», — этого не хватало. Стало двадцать восемь. Важная тонкость: ищем целые слова, а не куски. Иначе вместе с дронами улетал бы хоккеист Григорий Дронов, вместе с ракетами — «первая ракетка мира» и «что за ракета этот Джастин Бэйли», а вместе с фронтом — «нормальная фронтальная камера». Все эти случаи собраны в отдельную проверку: семнадцать тем должны отсеяться и двенадцать остаться, сейчас ноль ошибок. Заодно фильтр стал писать в журнал, что именно убрал, — без этого его невозможно донастраивать.
✅🇺🇸 Радар X: американский футбол больше не занимает половину
Жалоба Алины: «Твиттер — любимый раздел, но там спортсмены, которых в России знают единицы, там не заработаешь». Причина нашлась в задании для отбирающей программы: там прямым текстом стояло «оставляй щедро… спортсменов, не только суперзвёзд». Переписали с разбором: MMA и UFC, бокс, европейский футбол, теннис, хоккей и Формула-1 в России смотрят — остаются. Американский футбол, бейсбол, NASCAR и студенческие лиги не приносят продаж — уходят, даже если стоят на первом месте в трендах США.
✅🙈 Спорное не удаляем, а сворачиваем
Радар нужен ради опережающего сигнала: то, что сегодня локальная американская история, через неделю может стать мировой. Поэтому темы «понятно только в США» не выбрасываются, а прячутся под кнопку «🇺🇸 Только для США» со счётчиком — одно нажатие, и они на экране. Если таких тем в этот день нет, кнопки тоже нет, чтобы не мозолила глаза пустышкой. Сегодня, кстати, ноль: после правки отбора в выдачу попали английские футбольные клубы, бойцы UFC и мировые бренды.
✅🤷 Запрет на угадывание
Проверяя результат, наткнулся на свежий мусор: темы «Эмма» и «Диана» с пояснением «имя может относиться к известной личности». То есть программа не знала, что это, и написала догадку. Теперь в задании прямо сказано: если в объяснении приходится писать «возможно» или «может относиться к» — значит, темы ты не понял, выбрасывай. Голое имя без опознания оператору всё равно ничего не даёт.
20 сентября · Алина · новинки конкурентов заработали
главная задача
самый весомый запрос встречи закрыт · видно, что каждый магазин залил за день и за неделю — с названиями, ценами и картинками · 18 новинок в первый же день
✅🆕 «Что конкуренты залили» — работает
На вкладке «Конкуренты» появился блок с новинками каждого магазина: картинка товара, цена и название — то самое, ради чего всё затевалось. Алине нужно было именно название, чтобы сразу понять тему и проверить, есть ли она у нас. Карточка ведёт прямо на товар, есть переключатель «за день / за неделю» и кнопка выгрузки файлом с именем магазина. В первый же день программа поймала 18 новинок: девять у IVIPRINT, шесть у Marketplace Sales Management, две у Setner, одну у OTHERS.
✅⏱️ Почему это заняло четыре дня, а не один вечер
Чтобы понять, что у магазина появилось нового, нужно сначала запомнить, что у него было. Wildberries ограничивает частоту обращений, и на магазинах в семь тысяч товаров обход обрывался на середине: за четыре вечера доходили до пятидесятой страницы из семидесяти. Решение оказалось не в терпении, а в постановке вопроса: полный каталог запоминать и не нужно. Каждый вечер мы смотрим только верхушку списка «сначала новинки» и останавливаемся, как только пошли знакомые товары, — вглубь магазина мы больше никогда не заглядываем. Значит, и запоминать надо только эту верхушку: две с половиной тысячи самых свежих товаров. Это запас на несколько дней даже для магазина, который заливает по 500 карточек в сутки. После этого база собралась у всех десяти магазинов за один вечер.
✅🧪 Поймали ошибку, которую было бы видно только через сутки
На прогоне по календарю выяснилось: список «за неделю» собирался из тех страниц, которые программа прочитала сегодня. А в вечер, когда магазин ничего не залил, она останавливается на первой же странице — и вчерашние новинки из списка исчезали. То есть выгрузка работала бы правильно ровно до первого спокойного дня. Теперь найденные новинки хранятся отдельно и живут положенную неделю, а обложки не перекачиваются заново.
✅🧹 Со страницы убран текст, который врал
Наверху вкладки «Конкуренты» висело обещание, что живые данные по новинкам будут «следующим этапом» — прямо над блоком, где они уже показаны. Заменили на то, что есть на самом деле, и отдельно оставили, что действительно впереди: соцсети конкурентов и подсказка «конкурент уже печатает это» на карточке тренда.
✅📗 Excel с картинками принтов внутри
Просьба Алины: «чтобы хотя бы с телефона примерно понимать, что там происходит». Названия у этих продавцов почти ничего не говорят — «Футболка оверсайз с принтом» повторяется сотнями, и что именно залил конкурент, видно только по картинке. Теперь обложка лежит прямо в ячейке таблицы: файл открывается в Excel, Numbers и Google Таблицах на телефоне и показывает принты, не требуя ни интернета, ни переходов по ссылкам. Рядом название, цена, дата появления, артикул и ссылка на товар. Файлы собираются вечером вместе со срезом — обложки к тому моменту уже скачаны, поэтому это ничего не стоит. В файле всегда вся неделя с датой появления: нужный день отфильтровывается в Excel, а вот собрать пропущенные дни обратно уже нельзя.
✅📄 Выгрузка теперь и в PDF
Вопрос из чата: в каком формате скачивается файл и нельзя ли в PDF. Отвечаем: была таблица для Excel. Добавили вторую кнопку — PDF: страница с картинками товаров, названиями, артикулами и ценами, которую удобно посмотреть с телефона и переслать. Таблицу оставили рядом, и вот почему: из PDF неудобно копировать названия и невозможно фильтровать, а Алина просила именно копировать название и проверять, есть ли такая тема у нас. Так что теперь две кнопки с подписями — «PDF» посмотреть и переслать, «Таблица» работать в Excel.
✅❗ Чего всё ещё не хватает — магазина Алины
Программа следит за десятью магазинами из исследования. Но по описанию со встречи главный конкурент — это магазин с сотнями тысяч товаров и примерно пятьюстами карточками в день, а самый крупный в нашем списке — семь тысяч товаров. Похоже, мы смотрим не туда. Механизм готов и проверен: как только придёт ссылка на нужный магазин, он попадёт в вечерний срез и на следующее утро выдаст свои новинки.
16 сентября · Алина и Мария · первые правки со встречи
по следам встречи
встреча разобрана и опубликована списком · пятнадцать пунктов закрыто в тот же вечер · новости уехали в свою вкладку, «Всё подряд» получило внятное имя, книги разобраны по цифрам
✅🗂️ Встреча разобрана по темам — 25 пунктов
Полтора часа разговора с Алиной и Марией разложены на список: что просили и как это предлагается сделать. Лежит на этой же вкладке выше. Отдельным пунктом записана неудобная правда: судя по описанию Алины, её главный конкурент — магазин с сотнями тысяч товаров, а мы всё это время следили за магазинами в тысячу раз меньше. Пока не появится ссылка на нужный магазин, выгрузка новинок будет исправной и бесполезной.
✅💡 Тема закрепляется за человеком
Просьба Марии. Раньше светлая тема держалась только до заката: страница ориентировалась на время суток и сама уходила в тёмную, поэтому переключать приходилось каждый вечер. Теперь выбор, сделанный руками, окончательный — автоматика больше не вмешивается.
✅🚫 Кнопка «Запустить» убрана из шапки
Мария нажала её, полторы минуты смотрела на котов в загрузке и закрыла. Кнопка запускала мгновенный пересбор трендов, но его давно отключили — слишком дорого по токенам, — а сама кнопка осталась висеть и грузиться впустую. Убрали.
✅🔠 Верхнее меню стало читаемым
Названия разделов были мелкими и сливались. Шрифт увеличен и уплотнён на всех девяти страницах — теперь видно, где ты находишься.
✅🛑 Генерация принтов свёрнута
Решение встречи: креаторы работают в своих инструментах, а раздел тратил токены. Кнопки генерации убраны с дашборда и из окна печати. Код остался на месте — если решим вернуться, это одна строка, а не переписывание.
✅🔗 В Instagram появилась кнопка «Открыть»
Выяснилось, что переход на пост работал по клику на саму карточку, но об этом знали не все: стрелку «поделиться» принимали за переход. Теперь рядом стоит подписанная кнопка. Это не чинит главную беду раздела — там не те аккаунты, — но хотя бы то, что в нём есть, стало доступно.
✅🏗️ Сбор новинок конкурентов: база набирается по вечерам
Чтобы считать новинки, нужно сначала запомнить, что у магазина было раньше. Wildberries ограничивает частоту обращений и на больших магазинах обрывает обход на середине — вчера из десяти магазинов полностью удалось обойти только три. Теперь прогресс сохраняется: следующий вечер продолжает с той же страницы, а не начинает заново. Товары из базы помечены и новинками не станут никогда — иначе в первый же день выгрузка показала бы «4500 новинок», что было бы неправдой.
✅📰 Новости больше не забивают ленту
Новостная повестка растёт быстрее всего, поэтому всегда оказывалась наверху — хотя напечатать её нельзя. Теперь у новостей своя вкладка, а из общей ленты и из категорий они убраны. Совсем не выбрасываем: изредка там попадается годное, как случай с флагом на Эмпайр-стейт. Новостью считается тема, у которой все источники новостные — если её подхватил ещё и тематический канал, значит это уже не просто новость, и она остаётся в общей ленте. Сегодня из ста тем новостными оказались четыре. Заодно счётчик «Все» стал показывать то, что человек реально видит.
✅❓ «Всё подряд» оказалось корзиной — назвали честно
Вопрос Марии: что это такое и зачем оно тут. Разобрались: это не отдельная подборка, а темы, которые ИИ не отнёс ни к одной из девяти категорий. Убрать вкладку значило бы спрятать два десятка живых тем, поэтому вместо этого она называется «Без категории» — теперь видно, что там лежит и почему.
✅📚 Книги: посчитали, почему их не видно
Оказалось, дело не в программе. Книжные каналы собираются исправно — 399 постов за двое суток с четырнадцати каналов. Но средние просмотры у книжного поста около 2 900, а по всем источникам сразу — 37 600. Разница в тринадцать раз: каналы просто маленькие и честно конкурировать за место в топе не могут. Те пять книжных тем, что видны на дашборде, попадают туда только благодаря правилу «книги и аниме не терять». Вывод неприятный, но полезный: накручивать книгам рейтинг бессмысленно — топ разбавится слабыми темами. Нужны источники покрупнее, и их названия должны прийти от людей, а не от ИИ: в июне мы уже обожглись на выдуманных каналах.
✅📱 Сайт проверен на телефоне
Девять страниц прогнаны в размере айфона: ничего не вылезает за экран, вбок ничего не уезжает. Добавлена иконка для «На экран Домой» — раньше айфон клал на рабочий стол скриншот страницы, теперь будет логотип с подписью. Полноэкранный режим намеренно не включали: в нём пропадает кнопка «назад». Честно про недостаток: верхнее меню на телефоне занимает три строки и съедает экран — это вопрос к общему редизайну, а не отдельная правка.
✅⚖️ Чужие бренды запрещены в заданиях для нейросети
Находка Марии: наш промт при прогоне через нейросеть выдал корону Burger King, а за такой принт прилетает штраф. В задание добавлен отдельный запрет — логотипы, фирменные шрифты, узнаваемые детали, спортивная форма, автоэмблемы, лицензированные персонажи, — с оговоркой, что это правило важнее красоты промта. Генерация сейчас отключена, но запрет уже лежит на месте.
✅📦 Конкуренты: обложки, выгрузка и вечерний срез готовы
Из блока задач по конкурентам закрыто всё, что не зависит от чужих решений: срез снимается в 21:00, обложки новинок хранятся у нас и показываются в списке, на карточке магазина есть кнопка «Выгрузить» — файл называется по магазину, внутри артикул, название, цена, рейтинг, отзывы, остаток, дата появления и ссылка. Не хватает одного: ссылки на магазин, который Алина считает главным конкурентом.
✅🔄 Правки в скриптах перестали застревать у людей в браузере
Побочная находка, из-за которой часть правок могла до вас не доезжать: страницы обновлялись сразу, а вспомогательные файлы — вход, тема, учёт действий — браузер держал в кэше и мог неделями показывать старую версию. Теперь они обновляются вместе со страницей. Это же объясняет, почему смена темы могла «не сработать» до перезагрузки.
15 сентября · Павел · что кому нужно
статистика
закрыт последний пункт встречи 3 сентября · теперь видно не «зашёл / не зашёл», а какими кнопками человек реально пользуется · к встрече с креаторами после 21 сентября наберётся неделя наблюдений
✅📊 Видно, чем человек пользуется, а не только что заходил
Главный вывод встречи 3 сентября был неприятный: дело не в программе, а в привычке — креатор тратит на неё пятую часть времени поиска, остальное ищет по своим источникам. Чинить это вслепую бессмысленно, поэтому сначала нужно увидеть, что он вообще открывает. Теперь при каждом заметном действии страница сообщает счётчику, что именно человек сделал: сменил рынок в TikTok, проверил спрос, открыл макет, скачал картинку, полез в подсказку. Сведено это человеческими словами, а не кодами: в отчёте читается как «Дашборд → Проверка спроса → Wordstat».
✅🖱️ Что именно считается — 28 действий в девяти разделах
Дашборд: переключение вкладок и вида, проверка спроса через Wordstat и Google Trends, переходы на Wildberries и Ozon, список того, что уже продаётся, копирование артикула, запуск сбора вручную, открытие Printology, генерация и перегенерация картинки, скачивание макета, правка промта. TikTok: смена рынка с именем рынка, сортировки, фильтры, открытие ролика, прослушивание звука, избранное. Радар X, Окно печати, Музыка, Конкуренты, YouTube, Instagram — их фильтры, сортировки и карточки. На странице «Как пользоваться» считается, какие подсказки люди раскрывают: по ним видно, что осталось непонятным.
✅👤 Действия связаны с конкретным человеком
Это заработало благодаря личным учёткам, сделанным в тот же день. Раньше в отчётах было «кто-то из Чувашии сидел дольше всех» — теперь видно, что делала Алина и что делал Марик. Записывать людей отдельно не пришлось: имя уже передаётся счётчику при входе, действия просто легли рядом.
✅🔍 Проверено на живом сайте, а не «по коду»
Зашёл на сайт как обычный пользователь, понажимал вкладки, рынки и подсказки и убедился, что счётчик получает ровно те записи, которые должен. Заодно поймал две вещи, которые испортили бы отчёт: подпись вкладки уходила вместе со счётчиком («Аниме 3»), а он меняется каждый день и размножил бы одну вкладку в десяток строк, и вид сетки писался как «true» вместо «плитка». Обе поправлены до выкладки.
✅📈 Где смотреть и когда появится смысл
Отчёт в Яндекс.Метрике: «Содержание» → «Параметры визитов», ветка «Действия». Заводить в Метрике ничего не нужно — этот вид отчёта работает сразу, поэтому и выбран. Отдельного сервера и денег это не стоит, как и планировали. Данные копятся с сегодняшнего дня: смотреть имеет смысл не завтра, а через неделю, когда наберётся поведение, а не пара случайных кликов.
15 сентября · Павел · личные учётки
доступы
общий пароль на всех заменён входом по логину и паролю — у каждого свой · теперь в статистике видно конкретного человека, а не «кто-то из Чувашии» · доступ отзывается по одному, не сбрасывая остальных
✅👤 Вход по логину и паролю вместо одного общего пароля на всех
Было так: один пароль знали все, и понять, кто именно заходил, было невозможно — а если он утекал, приходилось менять его сразу всем. Стало: на входе два поля, логин и пароль, и работает только целая пара — чужой пароль с другим логином не пустит. Учётки: общая admin у Павла с Русланом и личные у Алины, Мари и Марика. Открытых паролей в файлах сайта больше нет, там только зашифрованные отпечатки, поэтому подсмотреть пароль в исходном коде страницы уже нельзя. Регистр логина не важен, чтобы человек не бился с «Admin» против «admin». Список людей со статусами ведётся в отдельной таблице ACCOUNTS.md, пароли туда намеренно не попадают.
✅📊 Статистика теперь знает, кто именно смотрит
Главная претензия со встречи 3 сентября: в Метрике видно только «кто-то из Чувашии сидел дольше всех», а нужно понимать, как работает конкретно Алина и конкретно Марик. Причина была не в счётчике, а во входе: пока пароль один на всех, различать людей нечем. Теперь после входа страница сообщает Метрике, кто открыл — и в отчётах появляется конкретный человек. Работает на всех четырнадцати страницах сайта.
✅🔒 Доступ отзывается по одному человеку, а не сбросом всем
Раньше отключить одного означало сменить пароль всем и заново раздать его оставшимся. Теперь достаточно убрать строку человека — он вылетит при следующем переходе между страницами, остальные даже не заметят. Под это сделан скрипт: одна команда печатает новый пароль и готовую строку для вставки, выдача доступа занимает минуту. Поэтому и отказались от идеи менять пароли каждую неделю: такие ритуалы через месяц перестают выполняться, а точечный отзыв решает ту же задачу и тогда, когда это действительно нужно.
✅⚠️ Что этот шаг НЕ чинит — записано честно
Проверка пароля пока происходит в браузере, а не на сервере. Это значит: список отпечатков открыт, и пароль теоретически можно подобрать перебором, а платные кнопки генерации картинок по-прежнему может дёрнуть тот, кто знает их адрес. То есть сделан учёт, а не защита. Настоящая серверная авторизация — следующий шаг, она же закроет платные запросы; пока это прямо написано и в ACCOUNTS.md, и в самом файле входа, чтобы никто не считал вопрос закрытым.
✅🚪 Все прежние сессии закрылись — пароли раздаются заново
Старый общий пароль больше не действует, поэтому у всех, кто был залогинен, доступ закрылся, включая открытые вкладки. Это совпадает с решением со встречи 3 сентября: неделю смотреть, кто вернётся. Только теперь возвращение будет видно поимённо, а не по числу заходов с разных адресов.
11–15 сентября · Руслан · TikTok
предупреждение заранее
разобрались, почему TikTok отваливается каждые три дня · Telegram теперь предупреждает за сутки, а не после поломки · проверка живёт на сервере и работает даже при выключенном Маке
✅🔎 Понятно, почему TikTok отваливается каждые три дня
Пропуск, по которому программа читает TikTok, выдаётся ровно на трое суток в момент настоящего входа — и ночные продления, которые Мак делает сам, этот срок не двигают, только тикают вниз. По записям это видно наглядно: 6 сентября после входа было три дня, 7-го — два с половиной, 8-го — один, 9-го — шесть часов, 10-го — ноль и простой. Раньше это выглядело как «TikTok опять что-то сбросил», а на самом деле это расписание: раз в три дня нужно две минуты живого входа, иначе вкладка встаёт. Заодно выяснилось, что попытка «обновить вход» при ещё живом пропуске ничего не даёт — программа видит, что вход есть, и выходит, не обновив срок. Всё записано в памятку, чтобы в следующий раз не искать заново.
✅⏳ Telegram предупреждает за сутки, а не после поломки
До этого уведомление приходило постфактум — когда вечерний сбор уже упал. Теперь программа смотрит, сколько пропуску осталось, и если меньше полутора суток — присылает: «ключ истекает такого-то во столько-то, скажи агенту «почини тикток»». Если ключ всё-таки истёк — приходит второе, отдельное сообщение, что вкладка стоит. Уведомление о самом разлогине тоже остаётся как страховка.
✅🖥️ Проверка переехала на сервер — работает даже при выключенном Маке
Первая версия предупреждения жила только на Маке, и 12–13 сентября это сразу показало слабое место: Мак два дня был выключен, предупреждать было некому, ключ истёк ночью 13-го, и вкладка TikTok простояла до утра 14-го. Теперь ту же проверку раз в шесть часов делает сервер — он работает круглосуточно, у него та же копия ключа и тот же бот. Предупреждение о следующем истечении придёт 16 сентября, сам ключ живёт до утра 17-го.
✅🔑 Два входа и два догнанных сбора
10 сентября вечером и 14 сентября утром вкладка вставала ровно по описанному расписанию — оба раза вход выполнен заново, ключ передан на сервер, сбор прогнан с нуля (100 хэштегов по России, по 50 по США и Корее, 50 роликов США). 11 сентября вечерний автосбор отработал полностью сам, без участия человека — механизм в порядке, дело только в своевременном входе.
11–12 сентября · Павел · обучение менеджеров
новая страница
появилась страница «Как пользоваться» — инструкция для нового менеджера · главное в ней не описание кнопок, а сама логика работы: несколько ставок вместо угадывания одной темы · заодно нашли и починили поломку обложек TikTok, которую создал сам деплой
✅🎯 Главное: объяснена сама логика работы, а не набор кнопок
Первая версия инструкции описывала разделы и получилась сухой — человеку, который этим уже занимался, она читалась как реклама. Переписали, начав с честного: заранее не знает никто, ни менеджер, ни программа. Поэтому работа устроена как ставки — набрал кандидатов, быстро отсеял, выложил не одну карточку, а три-пять по разным темам, через две недели посмотрел статистику Wildberries и оставил то, что сыграло. Работает это потому, что одна попытка стоит недорого: макет рисуется за полминуты, карточка заводится за полчаса. Отсюда сразу понятно, зачем программа: не чтобы угадать победителя, а чтобы каждое утро было из чего выбирать и чтобы проверка занимала минуты вместо полудня. Заодно снимается страх «а если не продастся» — неудачная карточка это норма, заложенная в схему, а не провал менеджера.
✅📘 Страница «Как пользоваться Trend Hunter»
Инструкция для человека, который первый день в этой работе. Порядок работы разложен на шесть шагов — что открыть, как читать карточку темы, как проверить спрос и что уже продаётся на Wildberries, когда жать кнопку макета и почему выкладывать надо несколько карточек. Без единого технического слова, подробности спрятаны под «раскрыть», чтобы объём не пугал. Ссылка появилась в верхнем меню на всех страницах.
✅🧭 Десять примет, по которым отбирают тему
Знание, которое раньше жило только в голове и передавалось на словах. Первые семь примет отвечают на вопрос «наденет ли человек»: есть ли готовый образ, это высказывание о себе или пересказ чужой новости, есть ли у темы своя аудитория, какая под постом эмоция. Последние три — про деньги и риски: ищут ли тему в поиске, свободно ли место на полке, чисты ли права. У каждой приметы примеры «да / нет» и указание, где именно в программе её проверить. Отдельно оговорено, что это приметы, а не гарантии: тема может пройти все десять и не дать заказов — поэтому и работаем несколькими ставками.
✅📡 TikTok, Твиттер и Музыка описаны наравне с Телеграмом
Исправлен перекос первой версии, где всё крутилось вокруг Телеграма, хотя на встречах не раз звучало, что другие разделы тоже нужны. По каждому написано, что он добавляет и что лежит в его карточке. TikTok показывает форму темы, а не пересказ, плюс ролики США с расшифровкой речи. Твиттер даёт опережающий сигнал — но записано честно, что задержка в две недели это наша гипотеза, а не проверенное правило. Музыка — раздел, где известна дата в будущем: у концерта есть день и город, а программа сама показывает артистов, которые и в чарте, и едут с туром. Под каждым разделом указано, как часто его открывать, чтобы это не выглядело четырьмя работами вместо одной.
✅✂️ Убраны самоуверенные формулировки — часть из них была просто неверна
В первой версии было «единственный раздел, откуда можно проверить спрос» и «единственный, откуда можно нажать кнопку принта». Проверили по коду: кнопка макета есть ещё и в «Окне печати», а проверка спроса — ещё и в западном радаре. То есть текст не просто хвастался, а врал. Прошлись по всей странице и вычистили превосходные степени, добавив вместо них оговорки там, где они честны: разборы тем пишет ИИ и бывает мимо, расшифровка речи на шумных роликах ошибается, вердикты в подборке тоже машинные и их стоит перепроверять, выдача маркетплейса зависит от формулировки запроса. Для людей, которые этим уже занимались, такой тон читается как разговор по делу, а не как продажа.
✅🗒️ Сценарий получасового созвона с администраторами производства
К странице приложен отдельный план встречи: поминутный тайминг на 30 минут, что показывать на экране в каждом блоке, какие фразы произнести дословно и чего не говорить. Отдельно — ответы на вопросы, которые почти наверняка зададут: гарантирует ли программа продажи, кто рисует картинку, можно ли печатать чужие логотипы, почему данные не в реальном времени.
✅🖼️ Обложки роликов TikTok разъехались с самими роликами — нашли и восстановили
Обнаружилось во время выкладки: обложки видео США собираются на Маке Руслана и лежат только на сервере, а в копии Павла они остались с 4 июля. Обычная отправка файлов на сервер молча заменила сентябрьские картинки июльскими — на вкладке TikTok под сегодняшними роликами показывались чужие кадры. Все пятьдесят обложек вернули на место, скачав их заново прямо из TikTok, и сверили с роликами.
✅🛡️ Чтобы это не повторилось — правило в инструкции для агентов
Причина поломки была не в программе, а в правилах выкладки: папки с обложками не значились в списке «не трогать при отправке на сервер», хотя собираются они не у нас на компьютере. Список дополнен, рядом объяснено почему — и отдельно записано, что сама программа такую подмену не лечит: если файл с нужным именем уже лежит, она его не перекачивает. Теперь любой агент, который будет выкладывать проект, не наступит на это второй раз.
9 сентября · Руслан · TikTok
сбор восстановлен
хэштеги отстали на двое суток — Мак уснул посреди сбора · срез пересобран и выложен · остальные 14 разделов всё это время шли без сбоев
✅🌙 Найдена причина: Мак уснул посреди вечернего сбора
Сбор 8 сентября начался в 21:03 и должен был занять минут пятнадцать, но Мак ушёл в сон — программа доработала только в восемь утра. К этому моменту она честно собрала 94 хэштега, но отправить их на сервер не смогла: после пробуждения интернет ещё не поднялся, и все попытки упали с «сеть недоступна». Получилось обидно: данные собрались и остались лежать на Маке, а сайт продолжал показывать позавчерашнее. Это не поломка программы и не проблема с доступом к TikTok — просто неудачное совпадение сна и вечернего расписания.
✅📊 Срез пересобран заново и выложен на сайт
Не стали отправлять вчерашнее — собрали всё с нуля: 99 хэштегов по России, по 50 по США и Корее, 50 самых просматриваемых роликов США с обложками и распознанной речью. Вкладка TikTok снова показывает сегодняшнее. Заодно прогнали общую проверку: звуки TikTok, YouTube Shorts, Instagram, музыка и концерты, западный радар, печатабельность, конкуренты на WB и прайс калькулятора собирались всё это время без единого пропуска — из пятнадцати разделов отставал только один.
6 сентября · Руслан · TikTok
починка сбора
TikTok разлогинил нашу программу и вкладка три дня показывала старое · доступ восстановлен, свежие тренды снова на сайте
✅🔑 Восстановлен доступ к TikTok — вкладка ожила
5 сентября TikTok сам сбросил вход, которым программа пользуется для чтения трендов. Обычно она продлевает его молча каждую ночь, но после сброса продлевать стало нечего, и вкладка TikTok три дня показывала подборку от 3 сентября — со стороны это выглядело как «ничего не происходит». Вход выполнен заново вручную, доступ передан на сервер, и программа снова читает TikTok. Свежего доступа хватает примерно на трое суток, дальше он продлевается сам — на всякий случай при сбросе в Telegram приходит уведомление, что нужен ручной вход.
✅📊 Собран свежий срез: хэштеги трёх стран и видео США
Сразу после восстановления доступа прогнали полный вечерний сбор, не дожидаясь следующего дня: 100 хэштегов по России, по 50 по США и Корее, 50 самых просматриваемых роликов США с обложками и распознанной речью. Всё это уже на сайте. Заодно проверили остальные разделы — звуки TikTok, YouTube Shorts, Instagram, музыка и концерты, западный радар, печатабельность и конкуренты на WB собирались всё это время без перебоев, ничего кроме TikTok не пострадало.
4 сентября · Павел · Узбекистан
новая страница
страница «Шеростан» — план поездки в Ташкент на 14 дней, где под каждым днём объяснено, почему именно так · исследование рынка Узбекистана разобрано критически · готов промт для Deep Research
✅🗺️ Страница «Шеростан» — план поездки на 14 дней с аргументами под каждым днём
Не расписание «пришёл — ушёл», а объяснение, почему каждый день устроен именно так: почему первая продажа идёт через Telegram и офлайн, а не через Uzum; почему заготовки покупаются малыми партиями, а склад не нужен; почему за один цикл меняется ровно одна переменная; почему решение принимается 27 сентября, а третья неделя — его следствие, а не часть. Плюс критерий GO / ITERATE / STOP, стоп-правила по ходу поездки и список того, чего в эти две недели нет осознанно. Открывается по прямой ссылке sherostan.html за паролем. Рядом лежит расширенный вариант на 21 день — sherostan-21.html.
✅🔍 Исследование рынка Узбекистана — что в нём правда, а что нельзя брать на веру
Разобраны отчёт Deep Research, бриф и трёхнедельный план. Сильное: гипотеза лага (тренд из рунета приходит в Узбекистан через 1–4 недели — наш радар становится опережающим), Uzum за Cloudflare (решается прокси, как с WB), закон о персданных не требует сервера в стране. Слабое: список из 60 Telegram-каналов не готов к импорту — в нём биржи игровых аккаунтов, каналы ниже порога просмотров и перекос в новости; «потеря 60% спроса» и цена $25–50 — не факты, а прикидки. Найдено, чего нет ни в одном документе: скор узбекских трендов просядет на ~28 баллов из-за отсутствия платформ и Вордстата, агрегатор рассыпает узбекские слова на латинице/кириллице, а массовое вступление в каналы с одной Telethon-сессии может уронить и российский сбор.
✅📝 Промт для Gemini Deep Research по Узбекистану
Составлен так, чтобы ответ ложился прямо в чек-лист переноса: по каждому узлу нашей системы — узбекский аналог, доступ, цена, риск и вердикт «переносится / нужна замена / дыра». Лежит в docs/research/.
3 сентября · Павел · доступы и план
по итогам встречи
пароль на вход сменён, все прежние сессии сброшены · разбор встречи опубликован отдельным блоком в начале этой вкладки
✅🔑 Пароль на вход сменён — все прежние сессии сброшены
Решение со встречи: за месяц на сайт заходили с 54 разных адресов, и не все они наши; те, кому доступ выдавался последними, пользуются им почти никак и обратной связи не дают. Пароль сменён — и это не просто новая строка на входе: пропуск, который браузер запоминает после входа, привязан к самому паролю, поэтому у всех, кто был залогинен, доступ закрылся сразу, включая уже открытые вкладки. Заново войти сможет только тот, кому новый пароль передадут лично. Теперь неделю смотрим по счётчику, кто вернулся: это и будет честный ответ, кто программой действительно пользуется. Новый пароль здесь намеренно не пишем — он передаётся в личном сообщении.
✅🗂️ Всё, что прозвучало на встрече, разложено по темам
Разбор встречи 3 сентября опубликован отдельным блоком в начале этой вкладки — 23 пункта по девяти темам: доступы и статистика использования, новые артикулы конкурентов на WB, расшифровка видео за пределами TikTok, Spotify и афиша концертов, фанатские ниши, тип товара в блоке «что уже есть на WB», редизайн, работа с креаторами и минимальный режим поддержки. По каждому пункту написано не только что просили, но и как это предлагается сделать — чтобы к следующему созвону обсуждать не «что бы хотелось», а конкретные решения. В двух местах предложение расходится с тем, что звучало на встрече, и это отмечено прямо в тексте: задание креаторам лучше ставить через результат, а не через «сидите в программе 50% времени», а новизну карточек на WB надёжнее считать у себя сравнением вчерашнего среза с сегодняшним, а не полагаться на фильтры самого WB — плашку «new» они уже убрали.
3 сентября · Павел · калькулятор
файл 2026
перенесён новый файл расчётов «Калькулятор заказов 2026» · надбавка за размер принта стала ступенчатой · 3D и вытравка подорожали · совпадение с файлом проверено на 88 расчётах
✅📐 Надбавка за размер принта стала ступенчатой
Раньше она считалась по формуле и росла плавно: два принта почти одинакового размера могли получить 30% и 35% — объяснить клиенту, почему цена разная, было тяжело. Теперь пять понятных ступеней: до 660 см² надбавки нет, дальше 20%, 25%, 30%, 50%, а от 6300 см² — 100%. В деньгах это заметно в двух местах. Средние принты подешевели примерно на 5% (например, 50×60 в три цвета на 200 штук: было 177 ₽ за штуку, стало 168 ₽). А большие 70×90 подорожали сразу на 22% — раньше на этом размере надбавка была 50%, теперь предельные 100% начинаются на 450 см² раньше (стало 252 ₽ вместо 206 ₽ за штуку). В калькуляторе под полем размера теперь прямо написано, в какую ступень попал принт и до какого размера цена не изменится — видно, где она скакнёт.
✅🧊 Печать 3D подорожала: теперь дороже и матрицы
До этого 3D умножало в 2,5 раза только саму печать. В новом файле появилась отдельная строка «печать 3D за матрицу»: матрицы на таком заказе считаются вдвое дороже. На заказе 30×30 в два цвета на 100 штук цена выросла с 375 до 426 ₽ за штуку, на 40×50 в три цвета на 300 штук — с 293 до 322 ₽. Подсказка в калькуляторе теперь так и говорит: 3D удорожает и печать, и матрицы.
✅🎨 Вытравка подорожала с +30% до +40%
Надбавка за вид краски на вытравке поднята на десять пунктов. Заказ 30×30 в два цвета на 200 штук: было 115 ₽ за штуку, стало 123 ₽. Напоминаем то, что уже разбирали с технологом и что не является ошибкой: вытравка всё равно может выходить дешевле пластизоля, потому что ей не нужна подложка — это минус одна матрица и в цене за штуку, и в оплате матриц.
✅🧾 Цена со ставкой НДС 22% считается самостоятельно
Раньше эта строка получалась пересчётом из уже округлённой цены со ставкой 5% — то есть округление делалось один раз и потом растягивалось. Теперь у неё свой расчёт: своё ограничение сверху и своё округление до рубля, ровно как в новом файле. Разница обычно в пределах рубля, но в пограничных заказах цифры перестали расходиться с файлом.
✅🐞 Опечатку, о которой мы предупреждали 25 августа, в файле исправили
В августовском файле был лишний знак, из-за которого в обычном заказе без 3D цена печати умножалась на ноль — заказ считался втрое дешевле себестоимости. Тогда мы это нашли, в калькуляторе сделали правильно и попросили поправить у себя. В новом файле формула написана верно — то есть калькулятор всё это время считал так, как теперь считает и файл. Заодно закрылся наш давний вопрос про пустую ячейку в ограничении итоговой цены: ссылку на неё из файла убрали, ограничение теперь просто «цена образца» — как и было сделано на сайте.
✅🔍 Совпадение с файлом проверено на 88 расчётах
Чтобы не сверять цифры на глаз, мы, как и в прошлый раз, пересчитываем настоящие формулы файла программой и сравниваем с калькулятором. Прогнали 88 разных заказов — все ступени размера по обе стороны каждой границы, все краски и ткани, ПАФ и флюру, все тиражи от 1 до 12 000, оплаченный образец, скидки и надбавки, предел в 11 матриц. Сверялось по 15 величинам сразу, всего 1306 чисел: расхождений ноль. Единственное отличие сознательное — там, где файл показывает ошибку «#ЗНАЧ!», калькулятор пишет человеческим языком, что такой заказ напечатать нельзя и почему. Сам прайс печати и цены матриц в этом файле не менялись — общего повышения, как в августе, на этот раз нет.
2 сентября · Руслан
закрыт последний запрос со звонка
в карточке тренда видно, что уже продаётся на Wildberries — с артикулами · список отсеивает товары не по теме · на сам WB заходить не нужно · закрыты все три пожелания встречи 22 июля
✅🛒 «Что уже есть на WB» — прямо в карточке тренда
Главное пожелание со звонка 22 июля звучало дословно так: «чтобы не заходить на сам Wildberries». Раньше, чтобы понять, забита ниша или свободна, приходилось копировать название тренда, открывать WB и листать выдачу руками. Теперь в карточке рядом с кнопками «Wordstat» и «Google Trends» появилась кнопка «Что уже есть на WB»: она разворачивает список товаров по выбранному ключу — наименование, цена, число отзывов и артикул. Артикул кликабельный: нажал — он в буфере, можно сразу вставлять куда нужно. Сверху стоит главное число — сколько товаров именно по теме: «98 из 100» значит ниша забита, а «по теме — ничего» значит окно печати открыто. Проверять нужно мерч-ключ («тренд + футболка»), такие ключи в карточке подставляются сами: по голому «кошка оскар» Wildberries отдаст кошачьи консервы, а по «кошка оскар футболка» — 42 футболки, то есть реальную нишу. Чтобы на этом не спотыкаться, при выборе голого ключа список сам подсказывает нажать ключ с принтером.
✅🔓 Препятствие, из-за которого это откладывали, оказалось обходимым
Этот пункт с 22 июля лежал с пометкой «не сделать: WB не пускает наш сервер». Так и было — но мы ходили за товарами тем способом, будто открываем сайт в браузере, а такие визиты с зарубежного сервера Wildberries действительно блокирует. Сегодня проверили другой путь: у WB есть служебный адрес, который отдаёт те же самые товары не картинкой страницы, а данными. С нашего сервера он отвечает спокойно. Проверили и с рабочего компьютера, и прямо на сервере, прежде чем что-то писать. Ни платного прокси, ни доступа к чужому кабинету, ни API-токена продавца для этого не понадобилось.
✅🎯 Список отсеивает товары не по теме
Первая версия показывала всё, что вернул Wildberries, — и этого оказалось много лишнего: WB ищет по части слов запроса. По тренду «кошка оскар» он выдавал «Футболка с именем Оскар охотник» — к коту это отношения не имеет. Сначала проверили вашу идею фильтровать по продавцам-печатникам: не годится — печатают все подряд, у одного ключа 36 товаров от двадцати разных продавцов, а такой список пришлось бы вести руками, и он прятал бы как раз новых конкурентов. Категория тоже не помогает: почти всё, что находит WB, и так футболки. Поэтому сверяем название товара с самим трендом: считается, сколько слов тренда есть в названии, и отдельно ищется фраза целиком — чтобы «Футболка Чё за лев» засчиталась тренду «чё за лев этот тигр». Латиница и кириллица считаются одним словом: «Лабубу» и «Labubu» — один принт, «брейнрот» и «brainrot» — тоже. Сверху теперь стоит главное число: сколько товаров именно по теме. Остальное не выброшено — лежит под ссылкой «показать частичные совпадения», чтобы мы ничего от вас не прятали.
✅🔁 Смена ключа больше не оставляет старый список на экране
Поймали на живом примере (тренд «Аниме Вечная воля»). Список строится по тому ключу, который выбран в момент нажатия кнопки. Человек нажимал кнопку с общим ключом «вечная воля», получал список кружек и значков с подписью «показано по названию тренда» — а потом выбирал ключ с принтером, и старый список оставался висеть. Со стороны это выглядело так, будто программа спорит: «я же выбрал футболку». Теперь при смене ключа прежний список сразу убирается, а сама подсказка перестала быть поучением и стала кнопкой: «Показать по “вечная воля футболка”» — одно нажатие, и список пересобирается по нужному ключу. Заодно убрали из текста слово «голый ключ»: теперь пишем по-человечески, что это название тренда целиком и WB отдаёт по нему что угодно.
✅🙂 Если WB не ответит — будет понятная фраза, а не пустота
Данные Wildberries по своей природе «вчерашние», и сам сервис иногда отвечает не с первого раза. Поэтому список ведёт себя предсказуемо: пока грузится — пишет «Смотрю, что уже есть на WB…»; если не получилось — говорит человеческим языком «WB не ответил, попробуйте через минуту»; если по ключу действительно ничего нет — прямо сообщает, что ниша пустая. Один и тот же запрос десять минут держится наготове и не дёргает WB заново, а слишком частые нажатия мягко притормаживаются — чтобы нас не приняли за робота и не закрыли доступ.
✅📊 Во вкладке «Встреча 22 июля» появился статус: 3 из 3
Разбор того созвона на сайте заканчивался списком пожеланий — и было непонятно, что из них уже сделано. Добавили наверх блок «Статус на 2 сентября»: по каждому из трёх запросов видно, что именно закрыто и когда, плюс короткий список того, что успели сделать с тех пор (265 Telegram-каналов вместо 146, рост тренда по часам, починенный ночной сбор). Теперь встречу можно начинать не с пересказа по памяти, а с открытой ссылки.
29 августа · Руслан
чистота и безопасность
Код теперь проверяется автоматически · включена постоянная проверка на уязвимости · снято 93 ложные ошибки из 180 · главная дыра в защите пока открыта, о ней ниже
✅🛡️ Каждое изменение кода теперь проверяется на уязвимости
Проект пишется через ИИ-агентов, и раньше никто не смотрел за ними в четыре глаза: что написали, то и поехало на сервер. Теперь у агента постоянно включён отдельный проверяющий, который читает каждую правку и ищет типовые дыры — зашитые в код пароли и ключи, места, где чужой текст может подставиться в запрос к базе, небезопасные обращения к внешним адресам. Всего около тридцати видов проблем. Ставится один раз и дальше работает само. Важно, что включено это на уровне проекта, а не на одном компьютере, — значит, работает и у Павла тоже, ему достаточно обновиться.
✅🔎 Агент перестал угадывать и начал видеть настоящие ошибки
До сих пор ИИ-агент, правя код, во многом действовал по памяти: понять, что вот здесь значение может оказаться пустым и всё сломается, он мог только догадкой. Подключили инструмент, который разбирает код по-настоящему — так же, как это делает среда разработки у программиста, — и сообщает агенту реальные ошибки сразу после каждой правки. Проще говоря, агент теперь замечает свою ошибку в тот же момент, а не через неделю, когда бот молча упадёт на сборе.
✅🧹 Разобрали 180 предупреждений: 93 оказались выдумкой
Первый же запуск проверки выдал 180 ошибок — в таком виде инструмент бесполезен, на него просто перестают смотреть. Разобрались: больше половины были ложными и все по одной причине. Описание таблиц базы данных было сделано в устаревшем стиле, из-за которого проверка считала, что в полях лежат не числа и не тексты, а какие-то служебные объекты, и ругалась на каждое сравнение. Переписали описание в современный вид. Отдельно убедились, что структура самой базы при этом не изменилась ни на букву — сравнили команды создания всех шести таблиц до и после, они совпали точь-в-точь, так что данным на сервере ничего не грозило. Осталось 87 настоящих замечаний, они собраны в одном месте и разбираются отдельно.
✅📋 Появились правила «так у нас не делают»
В инструкцию для агентов дописали то, чего там не было вообще: чем проект запускается, чем проверяется, и пять коротких правил, нарушать которые нельзя. Например: пароли и ключи живут только в настройках, а не в коде; платную страницу нельзя выкладывать без защиты; ошибку нельзя проглатывать молча, человек должен увидеть понятное объяснение; данные, которые собирает сервер, нельзя затирать со своего компьютера. Раньше каждый агент в начале работы гадал об этом заново и иногда угадывал неправильно.
✅🧽 Мелкая уборка по всему коду
Заодно прошлись по мелочам, до которых обычно не доходят руки: убрали мёртвые куски, оставшиеся от прошлых версий, нашли и убрали задвоенную страну в списке для музыкального модуля, и — самое полезное — починили логи. Раньше, когда генерация принта падала, в журнал попадала только внешняя обёртка ошибки, а настоящая причина терялась; теперь видно, что именно случилось. Проверка кода после уборки проходит начисто, ноль замечаний — значит, любое новое замечание будет настоящим сигналом, а не шумом.
⚠️⚠️ Осталось открытым: сайт и деньги защищены только на словах
Честно фиксируем то, что не сделано. Пароль на входе на сайт проверяется прямо в браузере, а не на сервере, — значит, его видно любому, кто откроет исходный код страницы. Хуже того, служебные адреса, через которые страницы получают данные, отвечают вообще без пароля: их можно дёргать напрямую, минуя вход. Среди них есть платные — генерация принтов и картинок идёт за наши деньги. Разобрали варианты. Стандартное решение даёт при входе серое системное окошко вместо нашей страницы и рискует поломать открытие ссылок из Telegram — от него отказались: опыт входа менять нельзя. Договорились на другой путь, при котором внешне не изменится ничего: та же страница, то же поле, тот же пароль, но проверяет его сервер и выдаёт браузеру пропуск. Отложено сознательно, не забыто.
25 августа · Павел · калькулятор
новый прайс
перенесён новый прайс от 26.08 · нашли опечатку, из-за которой обычные заказы считались втрое дешевле · повышение цен уже внутри файла
✅💵 Новый прайс перенесён в калькулятор
Прислали новый файл расчётов. Перенесли всё: таблица цен за печать переписана целиком (в среднем дороже на 18%), цена матрицы стала зависеть от размера и выросла с 1000–1500 до 1500–3000 рублей, подбор по Pantone подорожал с 1000 до 1500 за цвет, флюра и ПАФ с 20 до 30 процентов, готовые толстовки с 40 до 50. Появилась вторая ступень надбавки за формат: от 3500 см² плюс 50%, от 6750 см² плюс 100%. Печать 3D больше не добавляет три матрицы, а умножает цену печати в 2,5 раза. Вместо строки «счёт без НДС» теперь две ставки прайса — 5% и 22%. Совпадение с новым файлом проверено на 69 расчётах по десяти величинам сразу.
✅🐞 В новом файле нашлась опечатка, ломающая почти все заказы
В формуле цены за единицу оказался лишний знак, из-за которого при выключенной 3D-печати — то есть в любом обычном заказе — цена печати умножалась на ноль. Проверили пересчётом настоящих формул: заказ 30×20 в один цвет на 100 штук файл считает по 30 рублей вместо 118, в итог попадают только матрицы, а сама печать теряется. Если бы по этому файлу начали считать заказы, их продавали бы втрое дешевле себестоимости. В калькуляторе поведение восстановлено так, как задумывалось: без 3D цена обычная, с 3D — в 2,5 раза выше. Файл стоит поправить и у себя.
✅📊 Просили поднять цены на 20% — оказалось, они уже подняты
Просьба была увеличить стоимость расчётов на 20%. Перед тем как накидывать наценку, сравнили новый файл со старым на одних и тех же заказах: новый уже даёт на 20–28% дороже. То есть запрошенное повышение заложено в сам файл, и если бы мы сверху включили ещё 20%, цены выросли бы почти в полтора раза от прежних — вероятно, неожиданно для всех. Наценку оставили нулевой, поле для неё в калькуляторе никуда не делось и включается в любой момент.
25 августа · Руслан
починка
Звуки TikTok снова обновляются · четыре дня вкладка показывала данные от 21 августа · причина — закончился платный доступ, поставили новый
✅🎵 Вкладка «Звуки» ожила — на ней снова сегодняшние тренды
С 21 августа звуки TikTok перестали обновляться: сервис, который отдаёт нам трендовую ленту TikTok, отвечал «оплатите доступ» — на старом ключе закончились кредиты. Бот в этой ситуации повёл себя правильно и не стал затирать вкладку пустотой, поэтому на сайте молча висел срез четырёхдневной давности и выглядел как живой. Руслан прислал новый ключ, прописали его на сервере, перезапустили бота и сразу же прогнали сбор вручную, не дожидаясь утреннего расписания. Собралось 10 звуков по США и 10 по России — с реальным «в скольких роликах используется», просмотрами, правами на коммерческое использование и словами из трека. Запаса на новом ключе — около 25 000 запросов, при нашем расходе примерно 6 запросов в день этого хватит очень надолго.
✅🛰️ Западный радар X снова отбирает темы, а не вываливает всё подряд
Заодно проверили остальные источники — и нашли вторую тихую поломку, того же рода. На странице «Западный радар» список тем должен проходить через ИИ: он выбрасывает местную политику и биржевые сводки, переводит название на русский и объясняет, почему тема может зайти на футболку. Вместо этого там висел сырой список из Twitter — «Canada», «Sanchez», «Ukraine» без перевода и пояснений. Причина: ответ ИИ обрывался на полуслове, потому что ему выделили слишком мало места на ответ, а разбор такого обрывка падал целиком — терялись даже те темы, которые ИИ успел разобрать. Увеличили лимит и научили систему спасать разобранную часть, если ответ снова оборвётся. Прогнали заново: из 108 сырых тем отобрано 35 — «Челси», «Ливерпуль», «Гарфилд», «Лемми» из Motörhead — с русскими названиями, категориями и пояснениями.
✅🔔 На будущее: такую поломку стоит замечать раньше
Слабое место видно невооружённым глазом: когда доступ к внешнему сервису заканчивается, сайт не ломается — он просто показывает вчерашние данные, и никто об этом не узнаёт, пока не заметит человек. Здесь между поломкой и починкой прошло четыре дня. Напрашивается пометка прямо на вкладке в духе «данные от такого-то числа, свежих нет» или короткое сообщение в Telegram, когда сбор возвращается пустым. Пока не делали — записали как задачу.
19 августа · Павел · калькулятор
новый инструмент
Excel-калькулятор заказов стал страницей сайта · считает один в один с файлом · показывает себестоимость и маржу · цены меняются без программиста
✅🧮 Калькулятор шелкографии переехал из Excel на сайт
Менеджеры считали заказы в файле с выпадающими списками, где важные параметры приходилось искать по разным углам таблицы. Теперь это страница сайта: метод нанесения (пластизоль, водная краска, вытравка, золото-силикон) и ПАФ — крупными кнопками в самом верху, размер нанесения с типовыми размерами в один тап, процент заливки отдельной шкалой, а печать «на вылет» — заметным переключателем с подписью «не пропустить». Именно на этих двух вещах менеджер однажды ошиблась в цене. Открывается ссылкой со страницы входа, работает с телефона: цена, итог и маржа всегда видны в полосе внизу, даже когда листаешь параметры.
✅🔍 Проверили расчёт против самого Excel — 68 сценариев из 68
Главный риск переноса — тихое расхождение в цифрах: интерфейс красивый, а цена не та. Поэтому расчёт сверяли не на глаз. Подняли движок, который считает настоящие формулы Excel, прогнали через него 68 разных заказов (все методы нанесения, все ткани, тиражи от 30 до 20 000, слои ПАФа, плашка, вылет, образцы, доп. услуги) и сравнили с новым калькулятором по шести величинам сразу — итог, цена за штуку, цена со скидкой, версия без НДС, число матриц и цена матрицы. Совпало везде до рубля.
✅💰 Появились наценка, скидка, себестоимость и маржа
Просили поднять расчёты на 10–30% — сделали это настраиваемым: поля «наценка» и «скидка» стоят прямо в калькуляторе, менеджер ставит их сам, и они запоминаются между расчётами. Рядом сразу видно себестоимость (30% от цены) и маржу — за штуку и со всего тиража, чтобы не считать в голове при разговоре с клиентом. Отдельно показывается, из чего сложилась сумма: печать, матрицы, доп. услуги, Pantone, замены цвета — полоской и списком.
✅🧵 Ткань и изнанка разделены, цены правятся без программиста
В файле ткань была одним списком, где «футер 2х-нитка» и «изнанка петля» конкурировали за одну надбавку, хотя изделие бывает и тем и другим одновременно. Теперь это два отдельных поля, а как считать надбавку — складывать или брать большую — переключается в настройках, чтобы решить на живых расчётах. Там же, за паролем, правится вся таблица цен: 11 вариантов матриц на 18 ступеней тиража и все коэффициенты. Сохранённые цены видят все, кто откроет калькулятор, а не только тот, кто их поменял.
✅⚠️ Ошибки теперь видно, а не приходится вспоминать
В исходном файле было правило «ПАФ возможен только на пластизоли», но оно выводилось бледным текстом в стороне и его легко пропускали. Теперь несовместимые сочетания подсвечиваются красным прямо у цены, а если матриц требуется больше, чем позволяет печать, калькулятор честно пишет «напечатать нельзя» вместо непонятной ошибки — в Excel в этом месте появлялось «#ЗНАЧ!». Заодно подсказывается неочевидное: при цветной ткани нужна подложка, поэтому один цвет считается как два — самая частая причина «почему так дорого».
✅🎨 Калькулятор перестал выглядеть чужой страницей
Павел заметил, что калькулятор не похож на остальной Trend Hunter. Причина оказалась в подходе: страницу собирали по описанию дизайн-системы, но не посмотрели, как устроены живые страницы сайта — а там уже были готовые решения. Главное из них: переключатель светлой темы на сайте существует давно, он общий, сам переключается по закату и запоминает выбор. Калькулятор же завёл собственный, поэтому выбранная на сайте светлая тема в нём не работала. Свою систему убрали, подключили общую. Заодно поставили штатную шапку с логотипом и вкладкой, взяли настоящие светлые цвета сайта (у нас карточки и поля были перепутаны местами), добавили зернистую текстуру, которая есть на всех страницах, и общий набор шрифтов. Теперь калькулятор открывается как часть продукта, а не как отдельный инструмент.
✅🔒 Калькулятор закрыт отдельным паролем
У калькулятора теперь свой пароль, не совпадающий с общим паролем сайта. Смысл в том, чтобы можно было дать доступ к расчётам менеджерам, не открывая им при этом дашборд трендов и остальные вкладки. Кто уже вошёл на сайт по общему паролю, проходит без второго запроса — у него доступ и так шире. Проверка стоит до отрисовки страницы, поэтому содержимое не мелькает перед экраном входа, а при неверном вводе поле подсвечивается и пишется, что проверить.
✅🌗 Светлая тема и читаемые подписи
Павел заметил, что подписи переключателей почти не видно. Причина оказалась не в оттенке: у кнопок цвет текста не наследуется от страницы, и браузер рисовал их своим тёмным — для остальных кнопок цвет был задан, для переключателей забыт. Заодно проверили измерением все мелкие подписи: они стояли на служебном сером, который на тёмном фоне даёт контраст 2,4 при норме 4,5 — то есть формально нечитаем. Перевели на более светлый и чуть увеличили. Добавили переключатель светлой темы в шапке: выбор запоминается, по умолчанию тёмная, как остальной сайт. Контраст замерили в обеих темах в четырёх состояниях каждая — провалов нет.
✅📋 Нашли две недоделки в самом Excel-файле
При разборе выяснилось, что формула итоговой цены ссылается на пустую ячейку — из-за этого заложенное ограничение цены не срабатывало никогда. И что скидка 10% стояла в файле по умолчанию, то есть каждый расчёт молча уходил ниже прайса. В новом калькуляторе скидка по умолчанию нулевая и ставится осознанно; про пустую ячейку ждём от Павла, что там должно было ограничиваться.
19 августа · Павел
сверка
Instagram ожил · нашли, куда утекал бюджет Apify · списки задач снова говорят правду · инструкция для агентов больше не противоречит боту
✅📸 Instagram не работал, потому что оплата ушла на другой аккаунт
Вкладка Instagram привозила ноль постов, и причина оказалась не технической. Сервис сбора Apify оплатили — но на одном аккаунте, а сервер всё это время продолжал обращаться к другому, бесплатному, где месячный лимит был выбран под ноль ещё в начале августа. Оплаченный аккаунт при этом стоял нетронутым: из 29 долларов не потрачено ни цента. Подставили правильный доступ и прогнали сбор вручную, не дожидаясь ночи — Instagram сразу привёз 40 виральных постов. Досье конкурентов на Wildberries встало по той же причине и оживает тем же ключом.
✅💰 Досье конкурентов съедало весь бюджет — сократили до раза в сутки
Разобрали, из чего складывался перерасход, по истории всех запусков за месяц. Выяснилось, что дело в одном модуле: сбор досье конкурентов на Wildberries стоит около 61 цента за один заход — это в сорок раз дороже сбора Instagram, который обходится в полтора цента. При двух заходах в сутки он один давал около 36 долларов в месяц и уже сам по себе не влезал в оплаченный тариф на 29 долларов. Показательно: Instagram, на который логично было бы подумать в первую очередь, стоит 46 центов в месяц — отключать его не имело смысла вообще. Оставили один срез конкурентов в сутки вместо двух: расход упал примерно до 19 долларов в месяц, появился запас. Потеряли немного — счётчик новых товаров у конкурентов теперь считается за сутки, а не за полдня, что для решения «печатать или нет» роли не играет.
✅📋 Список задач отставал от реальности на три работы
Сверили список задач с тем, что реально сделано в коде. Оказалось, два из трёх пожеланий со звонка с Алиной 22 июля давно закрыты, но числились несделанными и с высшим приоритетом: распознавание слов из трека в строчку на принт и доведение Twitter/X до уровня Telegram — фильтры, поиск, избранное, проверка спроса. Из того звонка остался незакрытым только один пункт — список товаров Wildberries прямо в карточке тренда, и у него честно проставлена причина: Wildberries не пускает наш сервер. Также записали августовский результат по каналам: бот читает 262 канала вместо 146, спорт и мемы перестали быть слепыми зонами. Смысл правки простой — когда открываешь список задач, видно настоящее положение дел, а не сделанное вперемешку с несделанным.
✅🌍 Инструкция для агентов требовала выключить западный отчёт
Нашли расхождение, которое могло тихо откатить работу. В инструкции, которую каждый AI-агент читает перед началом работы, с июня стояло правило: западное направление отключено, не развивать. При этом 10 августа западный отчёт был осознанно включён ради опережающего сигнала — тренд с Запада доходит до России с задержкой в недели. То есть бот делал ровно противоположное тому, что написано в его собственной инструкции. Любой следующий агент мог принять работающий западный отчёт за ошибку и выключить его. Правило переписали под текущее решение, добавили причину и прямое предупреждение не выключать обратно. Заодно поправили пояснения в коде, которые уверяли, что западные тренды до отчёта не доходят — с 10 августа это неправда.
19 августа · Руслан
починка
нашли, почему TikTok не собирался сам · звуки вернулись на сайт · сверили весь конвейер
✅🔧 Автосбор TikTok не работал неделями — и никто не мог этого увидеть
Хэштеги TikTok регулярно застревали на несколько дней, а причина не находилась: задание автозапуска числится включённым, ошибок нет, лог пустой. Разобрались — задание падало, ещё не начав работу, потому что не могло создать свои файлы логов: они лежали в папке проекта внутри «Документов», куда у системного планировщика macOS доступа нет. Отдельно проверили популярный совет «дать полный доступ к диску» — не помогает, дело было именно в путях логов. Перенесли логи в системную папку, и сбор сразу запустился сам. Вывод неприятный: все последние сборы TikTok были ручными, теперь он снова идёт по расписанию в 20:30 и при каждом включении Мака.
✅🎵 Звуки TikTok вернулись на сайт
Подставили новый ключ доступа к сервису сбора звуков — подборки собрались: 7 звуков по России и 10 по США, у большинства распознаны слова из трека и есть отметка о разрешённом коммерческом использовании. В российской подборке, например, «All I Want for Christmas Is You» — 16 миллионов роликов. Важно про запас: на ключе осталось 60 обращений, ежедневный сбор тратит около 38 в сутки, то есть примерно через полтора дня понадобится пополнение. Витрина при этом больше не обнулится — покажет последний живой срез с честной датой.
✅🔍 Сверили весь конвейер — что собирается, а что встало
Прошли по всем источникам разом. Работает: отчёт выходит каждый день без пропусков (100 тем по России, 78–95 по Западу), все 265 Telegram-каналов читаются без ошибок, YouTube, Музыка, Западный радар и Печатабельность обновляются. Музыка отдельно проверена: 100 треков чарта, 92 артиста, 26 концертов — свежие. Не работает Instagram и досье конкурентов на Wildberries: сервис сбора упёрся в исчерпанный лимит бесплатного аккаунта — этим занимается Павел.
14 августа · Руслан
починка
проверили весь сбор · вкладка «Звуки» больше не обнуляется · видео США перестало пропускать сбор через день
✅🔎 Проверили, что реально собирается — и что встало
Прогнали весь конвейер по логам и базе. Хорошая часть: все 265 Telegram-каналов читаются без единой ошибки, около 4 000 сигналов за прогон, русский отчёт выходит каждый день по 100 тем, западный — по 74–88 тем и уходит подписчикам. Плохая часть: три источника встали не по нашей вине — звуки TikTok, Instagram и конкуренты на Wildberries упёрлись в закончившиеся оплаты сервисов, а хэштеги и видео TikTok — в истёкший ключ доступа.
✅🎵 Вкладка «Звуки» больше не обнуляется при сбое
Когда сбор падал, он всё равно перезаписывал витрину — было десять звуков, стало ноль, и вкладка выглядела сломанной. Теперь пустой результат не затирает прошлый: звуки остаются на месте с честной подписью «Показаны данные от такого-то числа — свежие пока не приходят». Заодно нашли и убрали побочный эффект: при пустом сборе стирались все обложки треков, то есть даже после починки картинки пришлось бы собирать заново. А если данных нет совсем — теперь вместо пустого экрана понятное объяснение, а не «дождитесь следующего сбора» (следующий пришёл бы таким же пустым).
✅🎬 Видео США перестало пропускать сбор через день
Нашли замкнутый круг. В июле мы поставили защиту: не запускать резервный сбор, если свежее видео уже привёз Мак. Защита смотрела на дату файла — а когда сбор падал, система возвращала прошлый срез и делала файл «сегодняшним». На следующий день защита принимала это за свежую доставку и пропускала сбор вовсе, потом дата устаревала, попытка повторялась, снова падала — и по кругу. В логах это видно как чередование с 6 по 14 августа. Теперь свежесть определяется по дате внутри самого файла, и подмена больше не проходит. Полностью видео оживёт после обновления ключа TikTok с Мака.
10 августа · Руслан
крупный день
бот читает 265 Telegram-каналов вместо 146 · спорт перестал быть слепой зоной · впервые появились мемы и весь русский рэп · включён западный отчёт
✅📈 +119 каналов из баз Марата — охват вырос почти вдвое
Разобрали три присланные базы (музыка, спорт, мемы — 230 каналов). Отобрали и подключили 119: каждый проверили вживую — все 119 существуют и совпадают с выгрузкой. Теперь вечерний отчёт строится на 265 каналах вместо 146.
✅⚽ Спорт: было 3 канала, стало 32
Раньше спорт бот почти не видел. Добавили три слоя: спортивные медиа (Матч ТВ, Спортс, МАТЧ ПРЕМЬЕР), футбольные мем-паблики и официальные каналы клубов — Спартак, ЦСКА, Зенит, Динамо, Краснодар, КХЛ, Авангард, Трактор. Клубы дают немного просмотров, но клубный мерч — отдельный рынок, и сигнал оттуда больше взять негде.
✅😄 Мемы и юмор — совершенно новая тема, 50 каналов
Такой категории у бота не было вообще, а для печати на футболках это главный источник: именно там рождаются фразы и картинки, которые уходят в мерч. Подключили крупнейшие мем-паблики (Леонардо Дайвинчик, ТОПОР, Двач, ЭТО ЗНАК, КБ), юмор-шоу и комиков, а также каналы с готовыми шаблонами мемов — это фактически заготовки под принт.
✅🎵 Музыка: впервые сами артисты, а не только медиа о них
Добавили 26 каналов — личные каналы Крида, Коржа, Пошлой Молли, Лазарева, Басты и площадки. Анонсы туров, релизы и коллаборации теперь видны из первых рук, а не через пересказ музыкальных изданий.
✅🔎 «Английские» списки оказались не английскими — спасли 44 русских канала
Во второй половине дня вернулись к отложенным англоязычным спискам. Проверили не по названию канала, а по тексту реальных постов — и выяснилось, что 44 канала из 136 русскоязычные, просто с латинскими именами. Это весь актуальный русский рэп (Oxxxymiron, KIZARU, Toxi$, 9mice, Lida, MAYOT, Lovv66, Boulevard Depo) и мем-гиганты рунета (MDK, TELEGRA4CH, Yaplakal, 4ch, DeadP47, Benzogram). Если бы поверили названию файла — потеряли бы целый пласт самой «мерчевой» ниши. Один из них, PLOHOY PAREN, показал лучшую вовлечённость во всей базе: 213 тысяч просмотров на пост.
✅🌍 Включили западный отчёт — опережающий сигнал по трендам
Добавили 14 настоящих западных каналов: Fabrizio Romano (главный в мире инсайдер футбольных трансферов), Sky Sports, Premier League, официальные Манчестер Юнайтед, Арсенал, Челси, Реал Мадрид и англоязычные мем-паблики. Западная ветка бота до сегодня была выключена — теперь включена, и бот строит по ней отдельный отчёт. Смысл: тренд с Запада доходит до России с задержкой в недели, и это фора для запуска мерча. Учтите: каждый вечер добавляется второй проход AI-анализа, это дополнительные расходы — если отчёт не пригодится, выключается одной строкой.
✅🧹 Отсеяли 111 каналов из 230 — чтобы не засорять отчёт
Из присланных баз взяли ровно половину, и это осознанно. Не взяли: каналы чужих рынков — иранские, узбекские, эфиопские, нигерийские, кенийские, ганские, индонезийские, украинские (часть из них лежала на листе «Русские», но их тренды не про нас); накрученные — например спортивный канал на 897 тысяч подписчиков с 96 просмотрами на пост, или мем-канал на миллион подписчиков с 307 просмотрами; каналы про политику и СВО; откровенный скам с «договорными матчами». Всё отсеянное сохранено отдельным списком — ничего не потеряно, при желании вернём.
✅📱 PRD-презентация перестала разъезжаться на телефоне
Сверили сервер с GitHub и нашли давнее расхождение: на сервер в июле не доехала мобильная версия презентации. С компьютера всё выглядело нормально, поэтому и не замечали, а с телефона слайды уезжали за край с горизонтальной прокруткой. Долили правильную версию — теперь дека сама ужимается под ширину экрана.
9 августа · Руслан
аналитика
на карточках виден рост тренда по часам · метка «Всплеск» наконец заработала
✅📈 Видно, как тренд растёт: «+288% за 12 часов» прямо на карточке
Бот и раньше замерял просмотры каждые два часа, но эти замеры никуда не показывались — по карточке нельзя было понять, тема разгоняется или уже выдохлась. Теперь в блоке «Анализ тренда» есть строка «Динамика»: насколько выросли просмотры, за сколько часов, и мини-график роста. Внизу — сколько было при первом замере и сколько при последнем (например, 16:00 · 27K → 04:00 · 105K). Сегодня история есть у 72 тем из 100; у остальных блок просто не показывается, чтобы не рисовать пустой график.
✅🔥 Метка «Всплеск» ожила — раньше она не срабатывала вообще
Вкладка «Всплески» и оранжевая метка на карточке всё это время показывали ноль: бот сравнивал темы со своими замерами по совпадению слов и почти никогда не находил пару. Теперь всплеск считается по точной истории конкретного поста — метку получают темы, растущие быстрее 15% просмотров в час. Это примерно каждая седьмая тема, то есть метка снова что-то значит: сегодня их 14 из 100. Счётчик в шапке и число меток на карточках теперь сходятся.
вернули «о чём ролик» на вкладку Видео · вечерний fallback больше не затирает речь · плашка TikTok-ключа перестала врать
✅🎬 Речь в видео США вернулась и защищена
28 июля Мак закончил сбор рано (20:52) и через 8 минут вечерний резервный сбор на сервере затёр его срез версией без распознанной речи. Данные восстановили, а в резервный сбор поставили защиту: если Мак уже доставил свежее видео — сервер больше не вмешивается.
✅🔧 Плашка «ключ TikTok» показывала неправду — починили доставку cookies
индикатор на вкладке TikTok говорил «ключ истёк», хотя ключ был живой: из-за технической особенности Docker контейнер продолжал видеть старую копию cookies и после обновления. Починили способ доставки (теперь файл обновляется «на месте») — плашка и резервный сбор всегда видят актуальный ключ.
продлили TikTok-ключ и перезапустили дневной сбор · дожали скрытие Roadmap на сервере
✅🔑 TikTok-ключ продлён — сбор хэштегов и видео снова идёт
TikTok в очередной раз сбросил сессию (это его обычный ~3-дневный цикл), утренний сбор упал, а алерт в Telegram сработал как задумано. Руслан заново вошёл в аккаунт, ключ продлён на 3 дня и залит на сервер, упавший сбор за день перезапущен — хэштеги RU/США/Корея и видео с распознанной речью доедут на сайт этим же вечером.
✅🙈 Roadmap теперь действительно скрыт на всех страницах
вкладку убрали из меню ещё 16 июля, но на сервере 6 страниц (Дашборд, Instagram, Музыка, YouTube, Printology, Конкуренты) остались со старой навигацией — ссылка продолжала показываться. Сегодня довезли скрытие до сервера: меню одинаковое везде, сама страница по-прежнему открывается по прямой ссылке.
ожили конкуренты WB и Instagram (новый аккаунт Apify) · вечерний серверный сбор больше не затирает полные данные Мака
✅🛠️ Конкуренты и Instagram снова обновляются
с 24 июля оба раздела молчали: внешний сервис сбора (Apify) отвечал «доступ запрещён» — токен был от чужого/исчерпанного аккаунта. Завели свой аккаунт, прописали новый ключ на сервере и проверили боем: досье 9 из 10 продавцов WB и 40 виральных постов Instagram собраны, дальше всё идёт по расписанию. Бесплатного лимита хватит на несколько дней — дальше нужен тариф Starter ($29/мес).
✅🛡️ Ночные данные TikTok с Мака больше не затираются
нашли причину «худеющих» подборок: вечерний резервный сбор на сервере иногда «удачно» отрабатывал и перезаписывал полный срез Мака урезанным (25 июля так кириллица сжалась с 79 до 31 хэштега, а у видео пропало «о чём ролик»). Серверный сбор хэштегов отключили — как и было решено ещё 12 июля; серверу оставили только запасной сбор видео на случай, если Мак ночью выключен.
24 июля · Руслан
крупный день
закрыты два пункта из бэклога встречи 22 июля: Twitter/X доведён до уровня Telegram-модуля + звуки TikTok сами показывают строчку из трека для принта
✅🖼️ Видео США: свежие ролики и обложки теперь каждый день сами
вкладка «Видео США» обновлялась вручную и отставала (висел срез 20 июля, а из 50 обложек грузились только 4 — остальные терялись при ручной выгрузке). Теперь сбор роликов, обложек и распознавание речи встроены в ночной автопрогон: вкладка обновляется ежедневно целиком, без ручных шагов. Все обложки на всех вкладках TikTok проверены — битых нет.
✅🎬 Видео США: фраза из ролика + «о чём ролик» по-русски
то же распознавание добавили роликам вкладки «Видео США»: бот скачивает аудио топ-15 роликов, выносит на карточку цепкую фразу с переводом и одним предложением объясняет по-русски, о чём ролик. Раньше вкладка была англоязычной «вслепую» — что происходит в ролике, было видно только после клика в TikTok.
✅🇰🇷 Корея: хэштеги переведены на русский
корейские хэштеги на вкладке «Корея» теперь с русским переводом и пометкой «перевод»: «홍명보 → Хон Мён Бо — футболист, тренер», «메이크업 → макияж». Имена и бренды не просто транслитерируются — бот подписывает, кто это. Переводится автоматически при каждой ночной сборке.
✅🎤 Звуки TikTok теперь сами говорят, что на них поётся
раньше на карточке звука была только подпись ролика, а печатаемая фраза сидит в самих словах трека — приходилось отслушивать руками. Теперь бот скачивает превью звука, распознаёт слова и выносит на карточку готовую строчку-кандидата на принт (для иностранных — с переводом). Сегодняшний топ РФ: «Чё за лев этот тигр», «Малиновая лада, малиновый закат». Инструментальные треки честно без блока, у распознанного — пометка «распознано автоматически, проверьте». Это запрос №1 со встречи 22 июля.
✅📈 Теперь видно, что залетает — а не просто список
радар начал запоминать вчерашние тренды и сравнивать с сегодняшними. На карточках появились метки «🆕 новое» (вчера этой темы не было), «🔥 растёт +N» (поднимается в списке) и «N-й день» (тема держится, а не однодневка). Плюс сортировка «Растущие» и счётчик «Новых сегодня» наверху. Именно этого просила команда на встрече: Twitter лучше всех показывает, какая новость залетает — теперь это видно на глаз. Первые метки появятся уже завтра утром, когда накопится два дня истории.
✅🛒 Проверка спроса не выходя из радара
на каждой карточке — кнопки Wordstat, Google Trends, WB и Ozon: в один клик видно, ищут ли тему в России и что по ней уже продаётся. Раньше приходилось копировать название и ходить по сайтам руками.
✅⭐ Поиск, избранное и «поделиться» — как на других вкладках
поиск понимает кириллицу («тесла» найдёт Tesla), понравившиеся темы можно копить звёздочкой, карточкой — делиться ссылкой. Наведя на флажки стран, видно место темы в трендах каждой страны.
22 июля · Павел
разбор встречи
новая вкладка «Встреча 22 июля · Инсайты» — фидбек-звонок с Алиной и командой, разложенный по полочкам · три запроса в бэклог · открытый вопрос про наш ров
✅🗂️ Разбор созвона теперь живёт на сайте, а не в переписке
после фидбек-звонка с Алиной и командой сделали отдельную вкладку в роадмапе: что попросили доработать, что мы из этого поняли и что не успели спросить. Раньше такие разговоры растворялись в чате — теперь их можно открыть по ссылке и вернуться к ним через месяц.
✅⭐ Зафиксировали главное: продукт работает в бою
команда подтвердила, что с нашими маркерами вставала наравне или быстрее конкурентов — включая тех, кто подбирает темы вручную, без всяких инструментов. Вынесли это отдельным блоком наверх: это самый сильный аргумент о ценности продукта, и он не должен теряться среди задач.
✅📋 Три запроса разложены по одной схеме: зачем · что уже есть · как сделаем честно
расшифровка трендового звука в строчку для принта, полный список товаров WB с артикулами прямо в карточке и углубление Twitter/X до уровня Telegram. Для каждого сразу видно, зачем это пользователю, на какой наш модуль ложится и где реальные ограничения — чтобы не обещать того, что технически не выйдет.
✅🧭 Отдельно вынесли стратегический вопрос — в чём наш ров
если мы встаём одновременно с конкурентами по одним и тем же публичным маркерам, то «увидеть тренд первым» не может быть нашим долгосрочным преимуществом. Вопрос остался без ответа — и мы честно отметили это на странице, а не спрятали. Ответ на него определяет, куда развивать продукт дальше.
✅🎯 Поставили встрече оценку 6/10 и записали вопросы на следующий раз
полезный чек-ин, но почти ничего не оцифровали: «встаём быстрее» — на сколько, в скольких случаях, сколько это дало в продажах. Пока нет цифр, ценность нечем защищать. Список недостающих вопросов лежит прямо на вкладке — чтобы следующий созвон начинался не с чистого листа.
временно убрали вкладку «Roadmap» из верхнего меню на всех страницах сайта
✅🙈 Скрыли ссылку на Roadmap в навигации
на всех разделах (Дашборд, TikTok, YouTube, Instagram, Музыка, Twitter/X, Printology, Конкуренты) убрали вкладку «Roadmap» из верхнего меню. Сама страница осталась на месте и открывается по прямой ссылке — просто пока не показываем её в общем меню. Вернуть обратно можно в любой момент.
15 июля · Руслан
документ
скрытая страница-смета «Обоснование расходов» для заказчика · разбивка ежемесячных затрат человеческим языком · доступ по прямой ссылке + пароль как на всём сайте
✅📊 Смета расходов для заказчика — по каждой статье «за что платим и почему нужно»
собрали отдельную страницу с разбивкой ежемесячных затрат на сервис: две подписки Claude (Руслан + Павел), сервер, Яндекс Плюс, фоновый AI-анализ и сбор данных. Считали честно — без бесплатных стартовых кредитов. Главный вывод вынесен наверх: две трети бюджета — это инструменты разработки, а сам работающий сервис стоит ~2–3 тыс ₽/мес.
✅🔗 Скрыта из меню + вход по общему паролю сайта
страницы нет в навигации, поисковики её не индексируют, и она защищена тем же паролем-входом, что и весь сайт. Заказчику даём ссылку и пароль. Адрес:
24trendhunter.ru/costs-9k2f7a.html
12 июля · Руслан
новый модуль
новая страница «Twitter/X» (бывш. «Западный радар») — ранний западный сигнал под мерч · бесплатно, без банов · AI-фильтр (смягчён) · фильтр по темам · задеплоено
✅🌍 Новая страница «Западный радар X» — ловим тренды раньше, чем они дойдут до РФ
то, что вирусится в Twitter/X на Западе (США, Британия, Канада, Австралия) сегодня, часто доходит до российского покупателя через 1–2 недели. Радар показывает эти темы заранее — чтобы успеть подготовить и выложить мерч до того, как спрос придёт к нам. Обновляется каждое утро в 8:30 МСК.
✅🤖 AI отбирает только то, что реально печатается на футболку
сырой топ Twitter/X — это в основном спорт и местная политика (шум). Поэтому каждое утро DeepSeek просматривает список и оставляет только мерч-пригодное: мемы, кино, музыку, знаменитостей, известных в России — с русским названием и строчкой «почему может зайти». Пример первого дня: радар поймал UFC-волну (Хабиб, Макгрегор, Дана Уайт) — ровно тот тип тренда, про который Алина в интервью приводила пример с футболкой «Хабиб против Макгрегора».
✅💸 Полностью бесплатно и надёжно — без рискованных схем
прямой сбор из Twitter/X сейчас платный и банится, поэтому берём данные из публичного агрегатора трендов — без аккаунтов, прокси и риска блокировок. Русский сегмент Twitter специально НЕ трогаем: он заблокирован в РФ и для мерча мёртв — решили честно, по итогам отдельного исследования, а не «на всякий случай».
✅🎛️ Фильтр по темам + вкладка переименована в «Twitter/X»
добавили на страницу фильтр по категориям — как на TikTok: кликаешь «мем», «сериал», «спорт» и оставляешь только нужное, можно выбирать несколько сразу. Заодно вкладка в меню теперь называется «Twitter/X» (по названию источника), а не «Западный радар».
✅🎚️ Смягчили AI-фильтр — тем стало больше
раз появился фильтр по темам, оператор сам сузит — поэтому AI теперь режет мягче и отдаёт шире (было ~8 тем, стало 20+): спортивные события и известные спортсмены, бренды, ютуберы, пограничные темы. Явный мусор (местная политика, региональные новости, биржа) по-прежнему отсекается.
✅❓ Объяснили «силу сигнала» прямо на странице
в пояснении над лентой расшифровали, что значат флажки (в каких западных странах тема в трендах), «#N в X» (место в списке трендов) и сортировка «сила сигнала» — она выше ставит темы, попавшие в тренды сразу в нескольких странах: широкая волна вероятнее дойдёт до РФ, чем локальный всплеск.
11 июля · Руслан
правки TikTok
модуль TikTok — вернули СВЕЖУЮ кириллицу (46 тегов, была заморожена с 5 июля) · починили корень: авто-продление TikTok-сессии · сбор кириллицы вернули на Мак · дата обновления в шапке · заглушка вместо «битой» обложки · текст на карточках не обрезается
✅🖼️ Вернули обложки — 28 из 34 карточек снова с картинками
на сайте пропали обложки хэштегов (везде значок «?»). Разобрались: серверный ночной сбор при неудачном обходе откатывал данные на старые, но папку картинок при этом подчищал — поэтому «данные есть, картинок нет». Вернул обложки на сервер; остальные 6 карточек, где картинки нет, показывают спокойную заглушку «Обложка недоступна» вместо уродливого «?».
✅🛡️ Защита от повторной пропажи обложек
поставил предохранитель в ночной сбор: если обход TikTok сорвался и вернул пусто/мало тегов — робот больше НЕ трогает уже скачанные обложки (раньше именно это их стирало перед откатом). Проверено на 5 сценариях.
✅🧊 Нашли и вылечили заморозку: кириллица не обновлялась с 5 июля
по логам вкладка «Кириллица» 6 дней показывала старый срез: TikTok-сессия (cookies) на сервере протухла 5 июля, и каждый вечерний сбор возвращал 1–3 тега вместо ~40 → откатывался на старое. Выяснили и глубже: датацентр-IP сервера душится анти-ботом TikTok (даже со свежими ключами даёт 1 тег), а домашний IP собирает полный список. Поэтому сбор кириллицы вернули на Мак Руслана.
✅🔄 Свежая кириллица вернулась — 46 тегов, и теперь обновляется сама
заново вошли в TikTok, собрали свежий срез (46 хэштегов + обложки, вместо застрявших 34) — уже на сайте. Главное: починили корневую причину — авто-продление TikTok-сессии и ежедневный сбор на Маке снова работают автоматически (мешал системный запрет macOS на доступ фоновых задач к файлам — выдали разрешение). Теперь ключи не протухнут, а кириллица будет обновляться каждый день сама.
✅🇺🇸🇰🇷 Обложки на вкладках США и Корея (их вообще не было)
на этих вкладках карточки были без картинок («Видео обновляется») — по той же причине, что и у кириллицы: сервер их не докачивал. Перевели сбор США и Кореи тоже на Мак — теперь по 50 хэштегов с обложками на каждой вкладке (было по 21 без картинок). Собираются вместе с кириллицей раз в день.
✅📅 В шапке показываем дату обновления вместо «Топ категория»
четвёртый показатель наверху теперь говорит «Обновлено · 11 июля · 23:00» — сразу видно, насколько свежие данные, а не малополезная «топ-категория». На вкладках «Звуки» и «Видео» там по-прежнему «Топ звук» / «Топ автор».
✅✂️ Длинные слова и метрики больше не обрезаются краем карточки
категория (например «Образование») вынесена на отдельную строку под хэштегом — видна целиком и не сжимает сам хэштег; нижние метрики («на пост», рост, кнопка «Поделиться») переносятся в два ряда вместо того, чтобы уходить за край.
7 июля · Руслан
крупный день
модуль «Музыка» — чарт Яндекс.Музыки (балл + слушатели) · концерты под мерч (Москва/СПб + мировые звёзды за рубежом) · флаги стран · задеплоено
✅🎵 Новая страница «Музыка» — 3 вкладки (Артисты / Свежие релизы / Концерты)
ранжируем по Яндекс.Музыке — крупнейший ру-стриминг, вернее всего отражает «популярно у российской аудитории» (иностранцы включены сами собой). Балл 0–100 = позиция в чарте, у каждого артиста число слушателей (напр. 385К), готовая динамика ↑↓, обложка, дата релиза, жанр. Свежие релизы вынесены отдельной вкладкой. Обновляется каждый день в 8:10 МСК.
✅🎫 Концерты под мерч — домашние + зарубежные звёзды
Москва/СПб через Яндекс.Афишу (дата, площадка, «🔥 в чарте» = двойной повод, «через N дней» = окно на мерч). Зарубеж — по кейсу Алины (концерт Канье в Турции → россияне летят за мерчем): проверяем чартовых артистов + список мировых звёзд (Kanye, The Weeknd…) через Bandsintown, только страны, куда реально ездят россияне (Турция, ОАЭ, Армения, Сербия, Таиланд…).
✅🚩 Флаги страны исполнителя + сортировки на каждой вкладке
страна артиста через MusicBrainz (флаг 🇷🇺🇺🇸 перед именем; при промахе — без флага, не показываем неверный). Своя сортировка на каждой вкладке: артисты — по баллу / кто растёт / слушателям; концерты — сначала в чарте / ближайшие. Задеплоено на 24trendhunter.ru/music.html.
4 июля · Руслан
крупный день
трендовые звуки TikTok (РФ + США) · реальная виральность + копирайт + мем-суть · починка ежедневного сбора хэштегов
✅🎵 Трендовые звуки TikTok — вкладки «Звуки РФ» и «Звуки США»
у TikTok прямого списка звуков больше нет (Creative Center убрал вкладку Songs, эндпоинт закрыт — проверено вживую). Берём звуки из настоящей трендовой ленты TikTok (ScrapeCreators, 1000 бесплатных кредитов). «Звуки РФ» — наш рынок (там монетизируется), «Звуки США» — западный опережающий сигнал (~2 недели вперёд). Встроенный плеер + клик на ролик, ежедневный сбор 7:50 МСК.
✅Реальная виральность + копирайт + мем (метод Алины)
по её кейсу «Ча-ча-ча-саранча» = 100 продаж/день. На карточке звука: «🔥 в N роликах» (реальный счётчик использования из /tiktok/song — настоящий сигнал тренда, по нему ранжир), метка «✅ можно / ⛔ копирайт» (её ограничение №1) и мем-подпись залетевшего ролика — дизайнеру сразу видно, что печатать.
✅Фикс: ежедневный сбор хэштегов «Кириллица»
осталось 3 мусорных хэштега (от 26 июня) и слетели обложки — серверный cron откатывал ВСЕ рынки разом, когда контейнер bot пересоздавался под тяжёлой сборкой. Переписал: рынки (ru/us/kr/video) собираются порознь, с ретраем и своим откатом — сбой одного больше не роняет остальные. Теперь 34 кириллических + обложки; все 4 рынка собрались с первой попытки.
3–4 июля · Павел
крупный день
локализация на 7 языков · проверка спроса и разрыва в карточке · Instagram · сквозной Share · вкладка «Конкуренты» с живыми досье WB
✅Демо-локализация на 7 языков
планетка 🌐 внизу слева → перевод всего интерфейса и трендов через Yandex (не жжём токены); узбекская латиница + арабский с разворотом справа налево (RTL). Русский — источник правды.
✅Проверка спроса и разрыва рынка в карточке (метод Алины)
AI даёт поисковые ключи + мерч-ключи (футболка/мерч/принт/стикеры). Кнопки: 📊 Wordstat (число показов), 📈 Google Trends, 🛒 На WB, 🅾️ На Ozon (открывают реальную выдачу — сколько карточек уже есть). Работают по выбранному ключу.
✅Instagram как источник
отдельная вкладка виральных Reels/постов через Apify (курируемые аккаунты 9gag/daquan/crunchyroll…), обложки кэшируются локально. Западный сигнал (Запад опережает рунет ~2 недели).
✅Сквозная кнопка «Поделиться» + прожектор
на карточке любого источника: ссылка на конкретный тренд. Открываешь — карточка скроллится и подсвечивается, остальное блюрится. Гейт запоминает адрес и после пароля открывает именно её.
✅Вкладка «🎯 Конкуренты»
20 игроков DTF-печати на WB из исследования 2026 (по моделям: генераторы / D2C / лицензионные / …) + ЖИВЫЕ досье по seller-id через Apify: реальная компания + ИНН, число товаров, цены, отзывы, рейтинг, Δ новых SKU по срезам (6:00 и 12:00 МСК).
✅Фикс: кнопка «Принт» из «Окна печати»
выкидывала на ленту вместо Принтологии (баг bfcache + рендер модала). Нашёл через отладку в браузере, починил — теперь открывает генератор промтов.
✅Обход блокировки WB нашего сервера
WB режет наш NL-сервер антиботом → решено Apify-актёрами (скрейпят на своей стороне); свой РФ-прокси оставлен запасным (только для WB/Ozon). Пароль входа сменён.
2 июля · Павел
12 пунктов
YouTube Shorts · «Окно печати» · приоритет аниме · категория «Книги» · +21 канал · московское время + утренние прогоны · исследование в роадмапе
✅YouTube Shorts
парсер на официальном YouTube Data API (фильтр по кириллице = рунет), отдельная вкладка, авто-обновление ежедневно 7:30; ключ добавлен на сервер.
✅Вкладка «🖨 Окно печати» (Printability Window)
единая мерч-подборка из Telegram + TikTok + YouTube Shorts, AI-оценка печатабельности, PrintScore, кнопка Printology на карточках (в т.ч. ad-hoc для источников не из БД), авто-сборка 9:00.
✅Аниме — мягкий приоритет
нашли причину недосбора (аниме отсекалось по TOP_N ещё до AI-категоризации); пометили аниме-каналы, добавили бонус к сортировке + гарантию представительства. Честный trend_score не тронут, задокументировано в CLAUDE.md.
✅Планировщик переведён на московское время
был UTC — вечерний отчёт подписчикам теперь уходит в настоящие 19:00 МСК (раньше де-факто 22:00).
✅Два утренних обновления данных
4:00 и 8:00 МСК, без рассылки — чтобы ловить всплески, пришедшие ночью из-за океана (ночь в США → утро у нас), а не только в вечернем прогоне.
✅Исследование «Модель зарождения трендов мерча»
оформлено: отдельная вкладка «🔬 Модель трендов» (формула восходящего тренда + источники) + конспект в репозитории.
✅Обнаружено
второй экземпляр бота с тем же токеном поллит извне — не ломает рассылку, но мешает приёму команд; проверить с Русланом.
✅Новая категория «Книги» (как аниме)
15 книжных Telegram-каналов (Литрес, Эксмо, МИФ, Inspiria, ФантЛаб, Corpus, Год Литературы и др.) + «книги» стала 9-й категорией ИИ + мягкий приоритет с гарантией + книжные запросы (BookTok) в Shorts. На прогоне уже дала 20 трендов.
✅+6 тематических каналов
тематику проверяли вживую через t.me/s/, не угадывали: аниме — AlexandriA, kaiju-школа японского; игры — GL1n (Genshin); шоу-биз — ThreeN1ne; трендвотчеры — Москвичка, NN (медиа про интернет, 2.24M).
✅Ссылка на первоисточник
на карточках «Окна печати»: Telegram → пост, TikTok → хэштег, YouTube → видео.
✅Фиксы «Окна печати»
корректное пустое состояние («ничего по фильтру» вместо «запустите скрипт»); генерируемые данные-JSON (tiktok/youtube/printability) исключены из деплоя, чтобы rsync их не затирал.
✅Запущен прогон без рассылки
книги, приоритет аниме и новые каналы уже с реальными данными на дашборде (не ждали утра).
1 июля · Павел и Руслан · Интервью с Алиной
разбор + фикс
Интервью с подборщиком трендов · рейтинг по разделам на дашборде · бэклог фич из разговора
✅Провели интервью с Алиной
оператором подбора трендов (селлер на Wildberries с командой дизайнеров). Полный продуктовый разбор — в docs/interview_admin_summary.md.
✅Рейтинг по разделам на дашборде
добавлена сортировка «🎯 По скору» (по умолчанию), номер #NN считается внутри выбранного раздела, а не сквозной. Топ аниме теперь виден и не «тонет» под трендвотчерами с миллионами просмотров.
✅Валидация
избранное ⭐ и «популярные видео TikTok» — ровно то, чего ей не хватало; формула скора признана «классной».
Идеи из интервью в работу (трендовые звуки, три рынка TikTok, нишевый индекс, новые источники) перенесены наверх — в список «Что осталось».
29 июня · Павел и Руслан
8 пунктов
Слияние веток · единый пароль · таб Telegram/TikTok · переезд ИИ на OpenRouter · Printology v2 (редактор промта + генерация принта) · распределение моделей · цены в рублях
✅Слияние веток и восстановление сайта
ветка Руслана (TikTok) и Павла (дизайн) сведены без потерь — большой Roadmap и новая карточка тренда вернулись на сайт, свежие данные TikTok сохранены.
✅Единый пароль входа
устранена петля редиректа (dashboard ↔ gate ↔ tiktok ↔ roadmap) — везде один пароль; страница prd.html тоже закрыта паролем.
✅Таб-переключатель Telegram / TikTok
в шапке слева у логотипа, с подчёркиванием активной вкладки.
✅Переезд ИИ с DeepSeek на OpenRouter
и анализ трендов, и Printology работают через OpenRouter; ключ в .env на сервере, анатомия промтов вынесена в отдельный редактируемый файл.
✅Printology v2 — редактор промта (Фаза 1)
поля анатомии редактируются, кубик 🎲 у каждого поля переписывает часть с учётом тренда, «Переделать промт» собирает финальный, доп-составляющие, карточка «+» с 18 направлениями.
✅Printology v2 — генерация принта (Фаза 2)
сам принт (без мокапа) рисуется в попапе на отдельном экране с кнопкой «Назад», лупа показывает полное разрешение файла, скачивание готового принта.
✅Модели под задачи
6 промтов → Claude Sonnet 4.5 (креатив), кубик и «Переделать» → Gemini Flash Lite (скорость), анализ трендов → Gemini Flash, картинка → Flash Image (черновик) или Nano Banana Pro (качество, выбор в момент генерации).
✅Цены генераций в рублях
прямо у кнопок + авто-синхронизация раз в день (прайс OpenRouter + курс ЦБ РФ).
💰 Сколько стоит генерация (в рублях, обновляется автоматически раз в день)
| Операция |
Модель |
₽ за раз |
| Открытие тренда (6 промтов) | Claude Sonnet 4.5 | 2.18 ₽ |
| + ещё направление | Claude Sonnet 4.5 | 0.52 ₽ |
| 🎲 Кубик (правка поля) | Gemini Flash Lite | 0.003 ₽ |
| Переделать промт | Gemini Flash Lite | 0.006 ₽ |
| Картинка — черновик | Gemini Flash Image | 2.98 ₽ |
| Картинка — Nano Banana Pro | Gemini 3 Pro Image | 10.62 ₽ |
| Средний путь (вход + 6 кубиков + 1 направление + 2 переделки + 2 черновика) | — | 8.68 ₽ |
| Тот же путь, но 2 картинки Pro | — | 23.97 ₽ |
Курс на 30.06.2026 — 77.75 ₽/$ (ЦБ РФ). Текст почти бесплатен, основная стоимость — картинки.
24 июня · Павел
7 пунктов
Планирование: фазы 5–9 и масштабирование · воркшоп · восстановление доступа · уборка лоадера · дизайн-консистентность
✅Дедлайн сервера в календарь
подписка Timeweb Cloud оплачена до 5 сентября — добавлена блок-плашка «миграция на nuxt.cloud» в календарь Roadmap.
✅Разобрали и приоритизировали все идеи в дорожную карту
все идеи разложены по приоритетам 0–4 с оценкой масштаба задач (Выборка трендов + воркшоп, Printology v2, источники и переключатель платформ, динамика и математика тренда, полировка).
✅Масштабирование пополнено
обучение нейросети на реальных принтах, Pinterest и YouTube как источники, и блок «географическое масштабирование» (СНГ / Meta / TikTok-контуры, Fine-Tune под культурные ключи, гейт «сначала результат в РФ»).
✅Воркшоп (понедельник 29 июня)
подготовлено 20 вопросов к бизнесу — только механика сервиса, без UI/UX (docs/workshop.md).
✅Проверили формулу всплеска
сейчас всплеск считается только по росту просмотров (≥20% между двумя срезами за 12 ч); репосты, реакции и комментарии не учитываются — расширение перенесено наверх, в «Динамику и математику тренда».
✅Убрали лоадер первичной загрузки
(полноэкранную мышь «Загружаем тренды…») — дашборд теперь открывается сразу карточками, чище и консистентнее.
✅Дизайн-консистентность
создан скилл-аудитор, проект прогнан по дизайн-системе; сырые цвета сведены к токенам, система дополнена (жёлтый = Stars, палитра 6 углов, вторичная шкала шрифтов). Восстановлен SSH-доступ к серверу, всё задеплоено.
21 июня · Руслан
4 пункта
TikTok-модуль: парсинг Creative Center, обложки, граф динамики, страница трендов
✅Парсинг TikTok Creative Center — Playwright с cookies обходит 15 категорий, собирает хэштеги с просмотрами от 500 тысяч; из ~200 хэштегов отбираются только кириллические — около 24–33 рунет-трендов за прогон
✅Обложки и график динамики — для каждого тренда перехватывается API-ответ TikTok: берёт graph за 7 дней (0–100) и обложки реальных видео; сохраняются локально в docs/tiktok_covers/
✅Логика тренда — направление («📈 Растёт» / «📉 Снижается») считается из последней точки графика относительно среднего; убраны 9 карточек без данных
✅Страница tiktok.html — карточки с обложками, баллами, графиком и категорией; мульти-фильтр по категориям; доступна на 24trendhunter.ru/tiktok.html
19 июня · Павел
6 пунктов
Printology (частично), мышь в лоадере, анимация выхода, смена пароля, Stars-реакции, дизайн-система кнопок
✅Printology — частичная реализация: бэкенд POST /api/printology, модал с 6 промптами (6 углов: буквальный / метафорический / ироничный / минималистичный / культурный ремикс / типографический), структура промпта из 7 полей, скелетон-анимация ожидания, фикс обрезки ответа DeepSeek (max_tokens 2500→5000). Остаётся: подключить Freepik для генерации изображений по промптам.
✅Мышь ReactionHunt в лоадере пайплайна: мышь выныривает из порталов на сетке 5×5 пока идёт сборка, убегает при наведении курсора; цвет портала адаптируется к тёмной/светлой теме
✅Анимация завершения сборки: «✓ Загрузка завершена» → мышь убегает → интерфейс уезжает вниз → морда кота летит на зрителя и растворяется → дашборд появляется; каунтдаун цифр замедлен для читаемости
✅Смена пароля с авто-киком сессий: сессия хранится как btoa(пароль) — при смене пароля все чужие вкладки выкидывает автоматически без ручной чистки cookie
✅Платные реакции Telegram (⭐ Stars): бот распознаёт Stars в реакциях, дашборд показывает ⭐ N на карточке, добавлен фильтр «⭐ Платные» и сортировка по звёздам; добавлен канал @digital_ninjaa
✅Дизайн-система кнопок: единые базовые классы .btn четырёх типов (primary / ghost / chip / muted) — кнопка Printology, фильтры, «Запустить» и download-кнопка приведены к одной системе токенов
18 июня · Павел
7 пунктов
Кошачий лоадер, новые логотипы, оптимизация спрайтов, всплески и сквозные фильтры
✅Новый лоадер сборки: затемнение и блюр всей страницы с интерактивной головой кота (следит за курсором, 17 поз), прогресс-бар + процент, крестик отмены
✅Статусы сборки очищены от эмодзи; этап AI назван понятнее — «DeepSeek анализирует базу данных»
✅Новые логотипы: квадратная марка в хедере дашборда и Roadmap, полный лок-ап (кот + TREND HUNTER) на странице входа
✅Спрайты кота ужаты 29 МБ → 1.7 МБ (уменьшение ×2 + палитра) — починен баг «спрайты не подтянулись» при первом запуске сборки
✅Сквозная сортировка и фильтрация ленты: категория, сортировка, тумблер «с комментами», поиск — всё работает вместе
✅Таб «🔥 Всплески» рядом с «Все» (жёлтый) + бейдж «ВСПЛЕСК» на карточках; бэкенд помечает ускорившиеся тренды, плитка и таб считаются из одних данных
✅Кнопка контакта с админом канала: добавлена и затем убрана по решению — прямой ссылки «написать админу» Telegram не даёт
17 июня · Павел
крупный день
Качество выдачи, динамика трендов, чистка каналов и интерфейса
✅Откат вредных правок стороннего агента: убран искусственный буст аниме в скоринге, починены обрезанные заголовки и дублирующаяся шкала баллов
✅DeepSeek-анализ переписан: «почему в тренде» объясняет суть, а не пересказывает цифры; аудитория — конкретный сегмент
✅Критический баг: единый запрос к DeepSeek на 100 трендов уходил в таймаут → разбили на батчи по 20, анализ стал надёжным
✅Источники-ссылки: убрана склейка чужих постов — ведут на релевантный пост
✅Карточка: добавлены комментарии 💬 (собираются из Telegram); убран «прогноз» — не нёс пользы
✅Шапка переделана: логотип ×2, кнопка «Запустить» одной высоты с Roadmap и жёлтая, убраны часы/таймер/LIVE
✅Фавикон + брендовый лоадер (логотип с крутящимся кольцом) вместо безликого спиннера
✅Убраны фейковые элементы: правая панель с «Пульсом», «Всплески», выдуманная статистика
✅Возврат с Roadmap больше не моргает лоадером (кеш в сессии)
✅Аниме-каналы: удалены сломанные, добавлены 8 проверенных вживую (@jutsu_anime, @mangabuff, @animedia, @anistar, @deep_ruanime, @animego, @animeart, @ranobelib)
✅Чистка: убраны @meduzalive и @varlamov из политики; фильтр «Другое» → «Всё подряд»
✅Мониторинг динамики (Фаза 1): таблица срезов, запись каждые 2 часа без DeepSeek — фундамент под «всплески»
✅Директивы: защита готовых компонентов, процесс деплоя, самопроверка перед показом
16 июня · Павел
22 пункта
Точечные запросы по ходу дня, не входившие ни в одну фазу выше
✅Страница-шлюз с паролем (gate.html) — авто-валидация без кнопки «ОК», красный/зелёный статус
✅Логотипы — Rex Print + Trend Hunter на гейте, новый LogoLine в хедере дашборда и Roadmap
✅Переименован адрес: dashboard_mockup.html → dashboard.html (убрали слово «mockup»)
✅Убран эмодзи 🗺 из текста «Roadmap»
✅Cache-Control: no-store на HTML — защита от обхода пароля через кэш браузера
✅Кнопка «Запустить сейчас» — добавили, убрали, вернули на верное место (панель «Следующий запуск») с лоадером и реальным прогрессом по стадиям
✅Живые часы и дата в хедере (были статичной заглушкой)
✅Карточка тренда — полный паритет с ботом: 3 под-шкалы, аудитория, прогноз, разбивка по реакциям, источники
✅Цветные шкалы анализа — зелёная/жёлтая/фиолетовая вместо сплошного фиолетового
✅Карточка разбита на 2 колонки (Анализ тренда / Подробности) — решает «резиновость» по высоте
✅Источники — кнопки в ряд вместо списка ссылок, посещённые помечаются цветом (:visited)
✅Фильтры — реальные категории вместо Горячие/Новые/Аниме; «Аниме» закреплена сразу после «Всплески», «Другое» — в конец
✅Дропдаун-заглушка источника трендов: Telegram активен, TikTok — неактивный пункт под будущий режим
✅«Пульс тренда»: «51 / 100» → «51 баллов» — без сбивающей дробной нотации
✅Починен баг: дашборд запрашивал limit=50, пайплайн сохраняет до 60 — счётчики не совпадали
✅Подключена забытая регулярная чистка старых трендов (cleanup_old_trends) — функция существовала, но не была в расписании
✅Аудит аниме-каналов — обнаружено, что AI-поиск новых источников ненадёжен без проверки по факту
✅Зафиксирован процесс деплоя: `bot` и `api` пересобирать вместе, не по отдельности
✅Лимит трендов за прогон поднят с 60 до 100 — все 100 получают полноценный AI-анализ без заглушек
✅Починено логирование в контейнере `api` — раньше показывал только WARNING+, прогресс пайплайна был не виден в логах
✅Анимация появления: цифры считаются от 0, шкалы растут слева-направо, карточки появляются каскадом
✅Метрика «Трендов» заменена на «Просканировано» — живое число кандидатов до отсечки