ЖФ Dev.tweets
656 subscribers
87 photos
1 file
117 links
Download Telegram
dave
⚙️ [tech] текущая ситуация с Transfermarkt Как многие заметили, сайт Transfermarkt был недоступен более 2х суток и вернулся в субботу вечером. На деле, сейчас портал полностью функционирует только в Германии и Швейцарии (да и то, с регулярным "проваливанием"…
⚙️ [tech] Transfermarkt полноценно доступен

Буквально через 2-3 дня после нашего поста ситуация стала налаживаться и мы получили доступ ко всем привычным данным. А благодаря менеджеру Henta, который показал нам новые пути получения данных, загрузка профилей и слухов стала быстрее и стабильнее. На данный момент все процессы идут штатно, обновление по вашим скаут-заданиям тоже работает.

С тех пор проверка Академии и ДО была ускорена — очередь сейчас практически отсутствует. Можно констатировать, что переход к новому модератору успешно завершён 👌

Профит от новой модерации — не только качественный перевод ФИО, но и ТМ-привязки, которые теперь добавляются вашим командам вместе с проверкой. Чтобы в будущем вы создавали игроков не руками, а с помощью автодобавления Академии.

Одна из следующих целей новой сотрудницы — проверка ручной АИ статистики. Мы знаем, что текущие сроки недопустимы, и будем постепенно сокращать их до разумных.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14😁9❤5
💻 [UX] бассейн больше не лотерея: очередь на ночь видна заранее

Претензии на форуме звучали громко: «лотерея», «отправляет игроков как попало». Разобрались — менеджеры правы. Таблица бассейна сортировалась по одним правилам, а ночной отбор шёл по другим, поэтому верхние строки не всегда совпадали с теми, кто реально попадал на сеанс. Резерв ночь не различала вовсе, хотя в таблице он стоял внизу. Но главное: интерфейс был непонятен.

Что теперь:
✔️ «очередь» — место каждого игрока, первые 4 едут ближайшей ночью;
✔️ «ночью» — что станет с НУ (3% → 1%) или честное «нечего снижать»;
✔️ «последний сеанс» — что было в прошлый раз;
✔️ сводка сверху: время сеанса, сколько игроков поедет и у скольких НУ реально снизится. Если сегодня ещё будет матч, там же сказано, что после него очередь пересчитается.

Поправили и сам отбор: при равном приоритете основа идёт раньше резерва (нужен резервист — поднимите ему приоритет), а при полном равенстве едет сильнейший.

Изменений в логику бассейна практически не вносили — сделали его понятнее, проще, прозрачнее👌
Please open Telegram to view this post
VIEW IN TELEGRAM
👍24🔥5
⚙️ [tech] сезоны реального футбола теперь закрываются вовремя, а не когда источник соберётся

Пока сезон в АИ считается действующим, статистика футболиста неполная — по итогам чемпионата не выдаётся талант. Логика верная, но момент завершения нам сообщал источник — а ТМ переводит сезон в архив только тогда, когда заведёт следующий. Это месяц-два после финала. Вдобавок в коде стоял грубый отсекатель по годам, из-за которого сезоны 2026/2026 не закрывались вовсе — часть жалоб в ЦОЗ была именно об этом.

Теперь завершение определяется по признакам самого турнира: замкнулся ли круг (у всех команд равное число игр), набрал ли сезон обычный для этой лиги объём матчей, что говорит источник, давно ли вообще была игра. Чем надёжнее признак, тем короче ожидание: топ-5 чемпионатов закрываются на следующий день после последнего тура, остальные — через неделю тишины.

А вот Зимбабве, где туры приезжают с задержкой, пока не закрывается: недобранный сезон видно по неровному числу игр у команд. Здесь осторожность важнее скорости — таланты и повышения скилла обратно не отзываются 😉
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12❤44
🐞 [fix] состав перестал «сбрасываться» между матчами

В ЦОЗ и на форуме приходили сообщения: выставил состав на тур, а на следующий матч билдер показывает что-то своё. Пропадал вратарь, не было купленных и арендованных игроков, автозамены обнулялись. И так каждый матч.

Причина оказалась неочевидной. Если состав на матч не сохранён, билдер подставляет последний известный — так и задумано. Но «последним» считался самый поздний по дате, а не по времени сохранения. Достаточно было один раз расписать состав на дальний тур — и дальше он подставлялся во все ближайшие матчи, хотя команда с тех пор успела смениться. Ушедшие из клуба игроки превращались в пустые слоты.

Не только исправили баг, но и доработали билдер:
✔️ подставляется состав с ближайшего предыдущего матча, а не с самого дальнего запланированного;
✔️ список матчей в билдере листается — соперников и составы можно смотреть на месяц вперёд, не открывая календарь;
✔️ билдер подписывает, что показывает: с какого матча взят состав и чего в нём не хватает — «нет вратаря», «2 игрока уже не в клубе».

Задето было больше трёхсот клубов, и почти все — те, кто планирует составы заранее. За подробное описание благодарим менеджера domian19: без его переписки с ЦОЗ причину искали бы гораздо дольше 🤝
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9
🟢 [feature] 16 150 новых ТМ-привязок клубов — в Академию попадут игроки всех юношеских составов

Каждый клуб на ЖФ связан со своим прототипом из реального футбола. По этим привязкам Академия находит настоящих юных футболистов, а проверка заявок подтверждает, что игрок действительно в вашей системе. Мест под привязки было ровно пять — основа плюс четыре, и этого перестало хватать: у 909 клубов все пять были заняты. У полноценной академии команд больше — дубль, U19, U18, U17, U16, отдельный еврокубковый ростер.

На практике это означало ручную работу. Если юношеская команда клуба не привязана, автоматика Академии её игроков не видит: менеджер шёл на ТМ, искал состав сам, подавал заявки по одной и думал, что автодобавление не работает.

Теперь ограничения нет — все ТМ-привязки могут быть добавлены. Более того, автоматика прошла по всем клубам с привязкой к ТМ и добавила 16 150 привязок — молодёжки, дубли, юношеские команды и академии там, где раньше просто не было места.

Что это меняет:
➕ автодобавление в Академии справляется лучше человека: оно видит все юношеские составы прототипа и приносит игроков само;
➕ проверка заявок стала точнее — отказ «команда не привязана» больше не случится, а принадлежность подтверждается прямо по данным ТМ;
➕ Добавочное окно раньше видело только часть привязок клуба, теперь игрок уходит в правильную команду;
➕ поиск клуба по TM-ID идёт по всем привязкам, а не по первым;
➕ дубль берёт привязки основы, заводить их отдельно не нужно.

Попутно в базу добавились названия и флаги реальных команд, а 424 спорные привязки — мёртвые или не подтверждённые ТМ — ушли на ручной разбор: такое автоматика не удаляет, только показывает администратору.

Под "капотом" привязки переехали из фиксированных полей в отдельную структуру, где источников может быть сколько угодно: TM, SW, SoccerDonna и то, что мы можем подключить в будущем.

Смысл всей работы простой: чем полнее связь с реальным футболом, тем меньше рутины у менеджера и тем больше новых игроков доступно вашей академии 🔥
Please open Telegram to view this post
VIEW IN TELEGRAM
👍29🔥11🥰3❤2👌1
🐞 [fix] рейтинг менеджеров больше не "проваливается" на смене сезона

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

Дело было не в обнулении. С началом нового сезона очки прошлых сезонов дешевеют — так и задумано, и работает это у всех одинаково. А вот бонусы за призовые места в чемпионатах приходили вразнобой: чемпионаты финишируют в разное время, потом бонус две недели ждал очереди, и выдача растягивалась на пять еженедельных обновлений. Кто-то получал компенсацию сразу, кто-то через месяц — и всё это время рейтинг показывал неправду.

Что изменилось:
✔️ бонус за чемпионат всегда идёт в зачёт следующего сезона, когда бы чемпионат ни завершился;
✔️ двухнедельная пауза убрана — итоги давно подводит автоматика, пересчётов не бывает;
✔️ все бонусы за сезон включаются разом, в первое обновление нового сезона — ровно тогда же, когда дешевеют старые очки.

Заодно разобрались, почему 22 августа обновление вовсе не состоялось. Ошибок нигде не было: расчёт не сломался, он просто не начался — защита от повторного запуска ставилась ровно на сутки, и расписание тоже суточное, так что субботний запуск иногда упирался в ещё не снятую защиту. Так молча потерялись две субботы, 17 января и 22 августа. Теперь день обновления решает не расписание, а журнал расчётов: пропущенная суббота досчитывается на следующий день, а по журналу сразу видно, дошёл ли расчёт до конца.

Рейтинг менеджеров стал работать точнее, быстрее и без пропусков. Ваше место будет означать то, что оно означает — и в январе, и в июле 🥇
Please open Telegram to view this post
VIEW IN TELEGRAM
🤝15🏆6👍3
🟢 [feature] талант и скилл - одним отчётом скаута

⌨️Раньше на связку "сначала талант, потом скилл" уходило два скаута: первый приносил талант и повышение, посчитанное по старому таланту, а за настоящей прибавкой приходилось отправлять второго. Теперь скаут сразу называет обе цифры: сколько даст сейчас и сколько после повышения таланта. Подняли талант => большая прибавка доступна по тому же отчёту. Какую брать - решаете вы, в силе обе. Благодарим менеджера Rocket.10 за поднятую тему!

2️⃣Игрок, которому недавно поднимали скилл, полгода остаётся на контроле: его видно в составе по синей плашке "+N", и всё это время ему доступно доповышение на +1, +2 или +3 по новым отчётам. Экспресс-повышения (Академия и футболисты до 22 лет) этого не получали - теперь получают, и по-прежнему без ТЦ и ожидания. Плашки выдали и задним числом, за последние полгода. Второй мир - без изменений, там своя механика повышений.

3️⃣Случалось совсем редко, но игнорировать не станем: самый первый отчёт по игроку мог занизить прибавку на 1-2 пункта. Причина - индексация класса, которая даёт + к скиллу, если талант актуальный. Со второго отчёта цифры вставали на место. Поправили - теперь верно считает и первый, т.к. сначала вычисляет талант, а потом скилл (было наоборот). За наводку благодарим менеджера Steve13Nash: разобрал расхождение по цифрам и дошёл с ним до ЦОЗ.

Скаутинг - это про изучение футболиста и поиск бриллиантов, а не про нажимание кнопок по кругу. Чем меньше времени уходит на второе, тем больше остаётся на главное 🔍
Please open Telegram to view this post
VIEW IN TELEGRAM
👍25❤6🤝3👌1
🐛 [fix] пять багов матча и шапки — закрыли все

⌨️Выбор «кого поддержим» в мобильной версии не запоминался: перезагрузил страницу — и блок снова спрашивает. Теперь ответ держится до конца матча, хоть за команду, хоть за «победит дружба».
2️⃣Серые плашки над полем со счётом чужих матчей не убирались по клику — висели до таймера. Убираются.
3️⃣Старая болячка мобильной версии: по ходу матча у игроков в составах пропадали скиллы, и страницу приходилось перезагружать. Больше не пропадают.
4️⃣В списке матчей дня пропала звёздочка у времени — метка того, что этот матч вы можете перенести без согласия соперника. Вернули во всех версиях сайта, и колонку времени она больше не сдвигает.
5️⃣В мобильной версии по мячику в шапке перестали открываться «Матчи дня». Вернули: заодно список больше не подлезает под чёрную панель и прокручивается, когда матчей много.

За наводки благодарим Roenich и Electronik. Такой список — с примерами и скринами — экономит нам полдня поисков, так что сообщайте и о небольших неудобствах 👌
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15❤‍🔥5❤3👎1
🗓 [calendar] национальные кубки идут по кубковому календарю сезона

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

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

Что теперь в 1 мире, 2 мире, ЖФЛ и Ретро-00х:
✔️ каждая стадия кубка встаёт на ближайший свободный кубковый день сезона — одинаково и для автоматики, и для президента;
✔️ в ручном режиме даты стадии больше не выбираются, календарь показывает их готовыми;
✔️ перенос кубкового матча — только по времени, день остаётся за календарём;
✔️ если дней в календаре всё же не хватило, недостающие подбираются после последнего кубкового дня, а не с начала сезона.

ЛФЛ и Ретро пока живут по прежним правилам: там календарь строится иначе.

Теперь о предпосылках. Кубковые дни в календаре разнесены по сезону не случайно — это дозированная нагрузка на составы. Но встречался и другой сценарий: ранние стадии кубка прогонялись в темпе «матч раз в два-три дня». Клубы низших лиг набирали лишнюю усталость, а топ-клубы федерации закрывали кубок досрочно и подходили к этапу лиги еврокубков со свободным календарём и свежим составом — пока соседи, честно игравшие по расписанию, выходили на те же матчи с нормальной сезонной нагрузкой. Календарь один на всех — в этом и есть fair play ⭐️
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12👎5🤬3🐳2❤1😡1
⚙️ [tech] все матчи Transfermarkt и SoccerDonna доступны в АИ

Разработчик АИ и служба поддержки сегодня открывают шампанское (и глубоко выдыхают), потому что сотни (а может и тысячи) заявок по теме "вот матч на TM, а где он в АИ?" наконец позади 🥂

Вся наша архитектура реальных данных была построена на Soccerway, который сначала ушёл, потом переродился в мегакосячный ScoreBar, а затем всё же закончил свои мучения в интернете.

"Живи Футболом" за этот год прошёл следующий путь:
🔴 критическая зависимость от Soccerway
🟡 фундамент на Scorebar, активная подстраховка от ТМ
🟢 (сейчас) собственная архитектура, принимающая данные из любого источника, с возможностью подключения новых

Проект полностью справился с уходом базы Soccerway. Позади титанический объём невидимой глазу работы, а для вас — постоянный микроконтроллинг "а все ли данные добавлены в АИ?". Теперь: все с Transfermarkt, все с SoccerDonna и в дальнейшем они будут обновляться сами без "пинков" ЦОЗа и лишних кликов, потому что мы больше не зависим от API ScoreBar, а управляем данными сами. Сезон 26/27 пройдёт гораздо комфортнее, чем сезон 25/26.

Спасибо, что доверяли! Спасибо, что ждали. Дальше вместо "латания дыр" систему АИ ждёт развитие и расширение 🔜
Please open Telegram to view this post
VIEW IN TELEGRAM
❤20👏15👍3🤝2✍1🔥1
dave
⚙️ [tech] все матчи Transfermarkt и SoccerDonna доступны в АИ Разработчик АИ и служба поддержки сегодня открывают шампанское (и глубоко выдыхают), потому что сотни (а может и тысячи) заявок по теме "вот матч на TM, а где он в АИ?" наконец позади 🥂 Вся наша…
🟢 [feature] турнирные таблицы реальных чемпионатов, не покидая ЖФ

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

Главное отличие от привычных таблиц - мы собираем их сами из матчей, которые знает проект, а не переписываем откуда-то. Очки считаем просто: 3 за победу, 1 за ничью, порядок - очки, разница мячей, забитые. Снятые очки и особые правила федераций не учитываем. И ровно по этим же таблицам считается реальный скилл клубов и проверяются условия талантов - то есть вы видите те самые данные, по которым игра принимает решения о ваших игроках.

Отсюда и польза для всех: если таблица расходится с официальной, значит в базе не хватает матча или затесался дубль. Сообщите в ЦОЗ со ссылкой на страницу - это чинится быстро, и вместе с таблицей поправится скилл.

Таблицы обновляются каждую ночь и помогают следить не только за АИ, но и реальным футболом 🏆
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16❤5🔥3😱1
💻 [UX] бассейн видит игроков, уехавших в сборные

Раньше в дни сборных список бассейна редел: уехавшие из него пропадали, и отметить, кого отправлять на сеанс, получалось только вечером, после их возвращения.

Теперь сборники остаются в списке с пометкой «сборная» — отмечайте их и расставляйте приоритеты в любое время. Окно сборных закрывается вечером, а сеанс идёт ночью => в очередь они попадают наравне со всеми. Заодно поправили: вызов в сборную больше не сбрасывает игроков, выставленных в бассейн вручную.

За нежелание терпеть неудобство благодарим менеджера Roenich 🤝
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥10👍3😁2👾1
🏦 [transfers] купил арендованного игрока - ничего не должен арендатору

Год назад по просьбе менеджеров мы разрешили продавать и покупать игроков прямо во время аренды: торги проходят на ТО, а игрок доигрывает срок у арендатора и только потом едет к новому владельцу.

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

Что теперь:
✔️ при продаже арендованного игрока расчёты по арендному бонусу считаются закрытыми: продавец получил его за свой срок владения и ничего не возвращает;
✔️ покупатель не платит арендатору ни при каких условиях;
✔️ досрочный возврат остался как был - по запросу арендатора и с согласия владельца, просто бесплатный;
✔️ об этом теперь прямо написано в карточке игрока на ТО, в форме выставления и на странице игрока, а арендатор получает письмо о смене владельца.

Действующие аренды, где владелец уже сменился, привели к тому же правилу.

Вы купили игрока, а не чужие обязательства - так и должно быть. За активную позицию благодарим менеджера twistal3 ⚽️
Please open Telegram to view this post
VIEW IN TELEGRAM
👍25❤3🤔1
🔛 [UI] банк больше не мешает смотреть на финансы клуба

В разделе «баланс» каждая операция с банком - взяли кредит, положили депозит, вернули обратно - ложилась в таблицу нерегулярных доходов и расходов как обычная статья. Кредит на 100 млн, отданный через три дня, рисовал клубу 200 млн «оборота», а призовые, трансферы и налоги на его фоне становились почти не видны. Реальную картину сезона по такой таблице было не прочитать.

Что теперь:
✔️ тело кредитов и депозитов вынесено в отдельный блок «банк: движение средств» под таблицей и в итоги не входит;
✔️ в самой таблице от банка осталась только суть - статья «банк (проценты)»: переплата по кредитам, прибыль по депозитам, комиссия коллектора;
✔️ полоски статей снова показывают реальные пропорции;
✔️ история пересчитана с 1 января 2026, чтобы эффект обновления был виден сразу.

Баланс должен отвечать на вопрос «куда ушли деньги», а не «сколько раз они съездили в банк и обратно». За предложение и наглядный скрин благодарим менеджера kote398 👏
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13🔥10👌1
💰 [economy] базовая цель титульного спонсора теперь считается по силе состава, а не по сумме номиналов

На форуме менеджеры давно и по делу критиковали расчёт базовой цели. Тезисы простые: «ты за счёт опытных стариков сможешь и места высокие занимать, и денег зарабатывать» или «возрастным составом проще побеждать, а система требует от молодого состава больше». Оба верные.

Почему изначально считали по номиналам: сумма номиналов - это капитализация клуба. Она честно связана с расходами (зарплата - фиксированный процент от номинала), учитывает всю обойму, а не только 11 лучших, и мешала «погребам» - клубам, которые скупают сотни молодых игроков и ждут иксов на перепродаже.

Но со временем минусы перевесили:
1. номинал - это цена игрока на годы вперёд. Молодой футболист при равной силе стоит дороже ветерана, потому что впереди долгая карьера. Спонсор же ставит задачу на один сезон, а в этом сезоне они равны => молодые составы получали завышенные цели, возрастные - заниженные;
2. каждый запасной входил в цель по полной стоимости, хотя играет 20-30% времени => система подталкивала к короткой обойме из 11 звёзд, а мы хотим видеть реалистичные команды на 18+ игроков;
3. с «погребами» теперь работают базовые контракты и зарплаты игрокам без аренд, вешать эту задачу ещё и на спонсора незачем;
4. благодаря скаут-скиллу силу игрока мы сегодня считаем гораздо точнее, чем когда спонсоры появились.

На истории прошлых сезонов проверили: сила предсказывает итоговое место не хуже номиналов, а спорных целей заметно меньше.

Что теперь:
➡️базовая цель - место клуба в лиге по силе состава: 11 лучших игроков по скаут-скиллу (вратарь и десять полевых) с учётом опыта и базовой формы;
➡️считаются только игроки во владении клуба, арендованные не учитываются, возраст и талант на цель не влияют;
➡️у дублей учитывается и история силы за прошлые недели, чтобы состав не прятали в основе перед неделей спонсоров;
➡️сила каждого клуба видна прямо в таблице целей и в финансовой ведомости лиги (с нового сезона);
➡️сумма контракта не меняется, она по-прежнему зависит от КД клуба.

Первой на новый расчёт перейдёт ЛФЛ (неделя спонсоров 1 октября), остальные миры - в январе. Цели прошлых сезонов остаются как есть.

Спонсор должен оценивать, на что состав способен здесь и сейчас, а не сколько он будет стоить через пять лет. Так честнее и к молодым составам, и к ветеранам 💛
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥18👍11❤31
🐛 [fix] уведомления в Telegram снова приходят вовремя

По вечерам бот мог задуматься на несколько минут, и «матч начнётся через 10 минут» порой прилетало уже после стартового свистка. Нашли причину и пофиксили отправку: очередь больше не встаёт, даже если сеть по пути к Telegram сбоит.

За трое суток после правки ни одного зависания и ни одного потерянного уведомления, типичная доставка - 5 секунд. Заодно ушли и редкие дубли.

Уведомление имеет смысл только вовремя - за 10 минут до матча, а не после него. За настойчивую заботу о телеграме благодарим президентов RUKENT и Roenich 🤗
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5👍4❤‍🔥3🤝1
🐛 [fix] коллекторы банка действуют строго по правилам

Тема узкая: до коллекторов доходят единицы, просроченный на дату закрытия кредит - это уже форс-мажор. Но правила должны выполняться дословно даже там, куда почти никто не заглядывает.

Разбирали такой случай и нашли расхождение. По правилам коллекторы сначала продают заложенных игроков и лишь затем, если денег не хватило, берутся за остальную команду. На практике коллектор считал недостачу по текущему бюджету и мог в один день выставить и залог, и «добавку» из состава.

Что улучшили:
✔️ коллектор работает партиями: выставляет игроков на сумму недостачи, дожидается итогов торгов и только потом решает, нужна ли следующая партия;
✔️ остальная команда - только после того, как залог продан или продать его не удалось;
✔️ недостача считается по всей сумме долга с процентами, чтобы кредит не «висел» непогашенным при почти достаточном бюджете;
✔️ уточнили п.6 правил кредитования и письмо от коллекторов.

Поблажек должникам тут нет, коллектор своё возьмёт. Просто теперь он делает это ровно так, как написано в правилах 📝
Please open Telegram to view this post
VIEW IN TELEGRAM
🤨7👍3❤2
dave
🟢 [feature] 16 150 новых ТМ-привязок клубов — в Академию попадут игроки всех юношеских составов Каждый клуб на ЖФ связан со своим прототипом из реального футбола. По этим привязкам Академия находит настоящих юных футболистов, а проверка заявок подтверждает…
⚙️ [tech] в Академии рассосалась очередь: заявки ждали проверки девять дней, теперь укладываются в сутки

Причина была не там, где её искали. Проверяющая не тормозила: до неё заявка ещё должна доехать, а перед человеком её смотрит автоматика — ищет клонов по реальным прототипам, датам рождения и совпадениям ФИО. Вот она и упиралась: на каждую заявку уходило по пять секунд, потому что сверять приходилось со всей базой игроков проекта, а это почти два миллиона профилей.

Пока заявок было по полторы сотни в день, этого никто не замечал. Но за последние месяцы мы подняли кол-во привязок клубов к реальным командам с 12 до 28 тысяч => автозаполнение Академии стало находить куда больше настоящих юниоров и в отдельные дни подавало по 2400 заявок. Вход захлебнулся, очередь доросла до 7825.

Что изменилось:
➡️ клон-проверка ищет по базе адресно, а не перебором => 2000 заявок за две минуты вместо 60 за пять
➡️ накопленная очередь разобрана: 7825 => 0
➡️ автозаполнение Академии обходит все клубы за двое суток

Растущая база — это хорошо, но она вскрывает узкие места, о которых раньше можно было не думать. Теперь заявка попадает на модерацию быстрее и уже сегодня проверка будет продолжена ✅
Please open Telegram to view this post
VIEW IN TELEGRAM
❤18🔥5👍3
🐛 [fix] матчи, которые "не сыграны" уже два месяца, открылись для ввода в АИ

Часть матчей попала в базу от источников, которые давно перестали их обновлять. Матч сыгран, данные у вас на руках, а в АИ он висит «не сыгран» — и ввод по нему закрыт.

Теперь такие матчи закрываются сами: через три дня после игры статус становится «сыгран», а поматчевый ввод открывается. Разово это разблокировало 4 429 матчей в 127 турнирах — низшие дивизионы, женские и юношеские лиги. Счёт у них остался неизвестным: вместо ноликов в АИ стоит «?:?». Достанем его позже из новых источников, а вбить минуты, голы и передачи можно уже сейчас.

АИ и держится на том, что менеджеры знают о своих игроках больше любого парсера 🍋
Please open Telegram to view this post
VIEW IN TELEGRAM
17👍4❤1
🐛 [fix] переезд в другую страну больше не роняет скилл

Календари в мире разные: Бразилия играет сезон в пределах года, Европа — с осени до весны. Из-за этого футболист, уехавший из бразильского клуба в январе, продолжал числиться в его заявке весь оставшийся сезон, и в АИ ему записывались нули за матчи, которые он физически не мог сыграть. Дальше эти чужие матчи попадали в один расчёт с играми нового клуба и разбавляли оценку => сильная лига весила меньше, чем заслуживала.

Поправили: сезон клуба, который игрок покинул и не провёл в нём ни минуты, больше не считается пропущенными матчами. У бразильца Rayan из «Борнмута» реалскилл сразу прибавил почти 12 пунктов, и он такой не один — пересчёт задел всех, кто переезжал между разными календарями.

Отдельно приятно закрыть «висяк»: раньше на такие обращения мы честно отвечали, что до конца сезона ничего не поделать. Теперь поделать можно. За подробное описание благодарим менеджера Partes ⚽️
Please open Telegram to view this post
VIEW IN TELEGRAM
👍21👏3❤2
dave
🟢 [feature] автосостав больше не ставит защитника в нападение ради лимита легионеров Разобрали свежий случай из чемпионата Франции. У команды травмирован АМ-паспортист => автосостав добирает на его место лучшего атакующего, но тот легионер, и состав перестаёт…
🟢 [feature] автосостав научился видеть игроков «между позициями»

Летом автосостав дважды становился умнее: сначала он начал ставить игроков по прокачке, а не по номинальному амплуа, потом — грамотно выбирать, кого снять под лимит легионеров. Оба раза уходили грубые промахи. Теперь очередь дошла до тонких.

Менеджер Nottingemmm показал случай: в кубковом матче на опорной зоне вышел игрок со скиллом 96, а на скамейке остался другой — со скиллом 133 и тем же основным амплуа. Автосостав смотрит, под какую позицию игрок прокачан, и относит его строго к одной. У оставшегося в запасе прокачка под левого защитника оказалась сильнее прокачки под опорника меньше чем на процент — и в подбор на опорную зону он не попадал вовсе. Формально не профильный.

Теперь у этой границы есть допуск: если позиция прокачана почти так же хорошо, как лучшая, игрок профильный и на неё тоже. Дальше решает скилл.

Автосостав мы доводим итерациями, и каждая снимает ошибку тоньше предыдущей: сначала кого вообще ставить, потом кого снимать под лимит, теперь — доли процента в прокачке. Чем реже вы вспоминаете, что он вообще есть, тем лучше он работает 🤓
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9❤6