Skip to content
deeCaTofficialPublic

About

Steam idler & hour booster with achievement manager for Windows. Idle up to 60 games at once and unlock achievements. No login or password — works through your running Steam client.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Repository files navigation

BoostiFy

Удобное управление Steam-активностью и достижениями.
Современный интерфейс, параллельные сессии и изолированный runtime.

Latest Release Downloads CI Python Version PyQt6 .NET Framework 4.8 Windows License


Warning

Используйте BoostiFy только со своим Steam-аккаунтом. Автоматизация активности и изменение достижений могут иметь последствия для аккаунта или нарушать правила платформы. Вы используете эти возможности на свой риск.

🎁 Что нового в v1.1.3

Главное — программа научилась сама забирать бесплатные раздачи Steam.

  • 🎁 Автоматический забор бесплатных раздач. Steam иногда отдаёт платные игры, дополнения и саундтреки со 100% скидкой — забрал один раз, и они остаются в аккаунте навсегда. Переключатель «Авто забор раздач» в разделе «Буст» включает поиск таких позиций, пока идёт сессия, и при нажатии «Добавить все игры». Программа сама находит их в магазине, просит Steam выдать лицензию и потом перепроверяет, что она действительно появилась. Пароли и cookie не нужны: запросы идут к уже авторизованному Steam-клиенту.
    • Дополнение или саундтрек без базовой игры бесполезны, поэтому программа сперва проверяет её. Нет на аккаунте — пробует получить и её; если игра платная, вся связка сворачивается.
    • Заодно ищет бесплатные дополнения к играм, которые уже есть в библиотеке. Библиотека обходится по кругу небольшими порциями: полный обход тысяч игр занял бы часы, поэтому каждая сессия продвигает его дальше с того места, где остановилась прошлая.
    • Забранной раздача считается только после того, как Steam подтвердил выдачу. Если Steam был закрыт, раздача повторится при следующей проверке; ту, что Steam не выдаёт три раза подряд, программа оставляет в покое.
    • Магазин опрашивается не чаще раза в полчаса — в том числе в циклическом бусте, где круг может длиться минуту.
  • 🔎 Поиск сам добавляет игру на аккаунт, если её отдают даром. Раньше на игру, которой нет в библиотеке, поиск отвечал коротким отказом. Теперь программа сначала смотрит, нельзя ли получить её бесплатно, и если можно — получает и добавляет в список. Это работает и для free-to-play игр, у которых в магазине стоит «Добавить в библиотеку». Платную по-прежнему честно отклоняет, а дополнение без базовой игры не берёт. Пока Steam выдаёт лицензию, список заблокирован — запущенный в эти секунды буст не помешает игре попасть в таблицу.
  • 🗂️ Поиск по названию находит и новые игры. Каталог Steam скачивался один раз и дальше лежал на диске без обновления, поэтому всё, что вышло после первого запуска, по названию не находилось вообще никогда. Теперь, если в каталоге игры нет, программа спрашивает магазин напрямую — и подставляет оттуда же настоящее название. А «Добавить все игры» скачивает каталог заново, если ему больше недели, — иначе новинки из библиотеки не добавлялись.
  • 🧹 Автоочистка наконец работает по ходу сессии. Настройка обещала чистить таблицу, но список не менялся до самого конца буста. Теперь успешно обработанная игра исчезает из таблицы сразу, как отработала.
  • 🛑 Остановка больше не стирает результаты. Нажатие «Остановить» ставило статус «Остановка...» всем играм подряд, затирая и уже полученное «Готово». Из-за этого после отмены посреди цикла автоочистка не находила что убирать, а статистика сеанса показывала ноль успешных — даже если половина списка успела отработать. Итоги теперь сохраняются.
  • 🚦 Плавный разгон вместо залпа. Слоты стартовали все разом: «КД начала» — случайная задержка, но отсчитывали её от одного момента, поэтому при 60 слотах Steam получал 60 подключений в окне шириной в пару секунд, и steamwebhelper мог перестать отвечать. Теперь слоты расходятся по одному в секунду: на максимуме разгон занимает около минуты, дальше расписание прежнее. Эту минуту учитывают и «Потребуется», и «Осталось».
  • 🔁 Циклический буст больше не зацикливается на сбоях. Если за круг ни одна игра не отработала (чаще всего — закрыт Steam), цикл останавливается и объясняет почему, а не перезапускается вечно. И подтверждение разблокировки достижений спрашивается один раз при запуске, а не на каждом круге — цикл больше не встаёт, пока вас нет у компьютера.
  • 🖱️ Своё меню по правой кнопке в поле ввода. Стандартное меню Qt было английским, со светлой системной рамкой и чужими иконками — на тёмной плашке оно смотрелось куском чужой программы. Теперь меню в цветах BoostiFy, на русском и с той же скруглённой формой, что у кнопок и панелей.
  • ✂️ В меню остались только нужные пункты. «Отменить», «Повторить», «Выделить всё» и «Вырезать» убраны: поле рассчитано на одну короткую строку — AppID или название игры, — и эти пункты занимали большую часть меню впустую. Осталось три: копировать, вставить, удалить.
  • 🔔 Закрыть окно обновления — не значит пропустить версию. Раньше крестик и Esc срабатывали как «Пропустить», и о вышедшей версии программа больше не напоминала. Теперь её скрывает только сама кнопка «Пропустить».
  • 🔒 Из сборки убраны пути с компьютера разработчика. Модули работы со Steam хранили внутри себя полный путь к отладочным файлам на машине, где их собирали, — с именем пользователя Windows. Теперь отладочная информация в релиз не попадает вовсе.
  • ⚡ Окно открывается быстрее. Каталог Steam (~165 тысяч игр) читался при запуске прямо в потоке интерфейса, и окно ждало его — на тестовом ПК около секунды. Теперь каталог загружается в фоне, уже после появления окна.
  • 📦 Программа занимает меньше места.
    • BoostiFy.exe стал меньше: 25,0 МБ вместо 40,4 МБ. Из сборки убраны части Qt, которые программа никогда не загружает (программный OpenGL, модули PDF, SVG и сети, переводы Qt, лишние форматы картинок).
    • Кэш каталога Steam хранится без отступов: 8,8 МБ вместо 17,6 МБ. Старый файл пересохраняется сам при первом запуске.
    • Логи держат одну резервную копию вместо трёх: не больше 10 МБ на лог вместо 20. Лишние старые копии удаляются сами.

Настройки и сохранённые данные остаются прежними — обновляться можно поверх 1.1.2 без каких-либо действий. Забор раздач по умолчанию выключен: пока вы сами не включите его в настройках, программа работает ровно как раньше.

✨ Почему BoostiFy

BoostiFy объединяет простой PyQt6-интерфейс и отдельный C# runtime для работы со Steam. Интерфейс остаётся отзывчивым, тяжёлые операции выполняются в фоне, а каждая игра обрабатывается собственным изолированным worker-процессом.

Возможность Что получает пользователь
Параллельные сессии Одновременная обработка нескольких игр с настраиваемым количеством слотов.
Умная очередь Скользящий запуск, задержки между задачами и ETA на основе реального расписания слотов.
Проверка владения AppID проверяется через запущенный Steam Client перед добавлением игры.
Достижения Опциональная разблокировка с отдельным предупреждением перед запуском.
Надёжное завершение Windows Job Object останавливает дочерние workers даже при аварийном закрытии GUI.
Безопасное хранение JSON записывается атомарно, ввод нормализуется, пользовательские данные находятся вне каталога программы.

🚀 Ключевые возможности

  • 🎮 Добавление игр по AppID или точному названию, с массовым импортом всей библиотеки аккаунта.
  • ⚡ До 60 параллельных слотов с отдельными задержками запуска, завершения и между задачами.
  • 🏆 Опциональная работа с достижениями с явным подтверждением перед изменением данных Steam.
  • 📈 Живой прогресс и статистика: расчёт оставшегося времени, распределение статусов и история сессий.
  • 🎁 Автоматический забор бесплатных раздач Steam вместе с дополнениями к играм из библиотеки.
  • 🔁 Циклический режим и автоматическая очистка таблицы.
  • 🔎 Фильтрация, сортировка и быстрое управление таблицей игр.
  • 🛡️ Нормализация конфигурации, AppID и повреждённых данных, а также ротируемые логи для диагностики.

🛠️ Установка и запуск

Для работы не нужно устанавливать Python, .NET SDK или собирать проект вручную.

Что потребуется:

  • Windows 10 (версия 1903 и новее) или Windows 11 — на них уже есть .NET Framework 4.8, ничего доустанавливать не нужно;
  • установленный Steam с выполненным входом в аккаунт.

Порядок запуска:

  1. Перейдите на страницу последнего релиза.
  2. Скачайте BoostiFy.exe из раздела Assets.
  3. Убедитесь, что Steam запущен и выполнен вход в аккаунт.
  4. Запустите BoostiFy.exe.

Note

Программа не подписана цифровым сертификатом, поэтому SmartScreen может предупредить о неизвестном издателе. Сверить скачанный файл можно по контрольной сумме SHA-256, опубликованной в описании релиза.

Скачать BoostiFy.exe

Все настройки, выбранные игры и статистика сохраняются между обновлениями в %LOCALAPPDATA%\BoostiFy.

⭐ Поставьте звезду

Если BoostiFy оказался полезен — нажмите Star в правом верхнем углу страницы. Это одно нажатие, но оно заметно помогает: проект становится виднее тем, кто ищет похожее решение, а мне как автору — понятнее, что работу стоит продолжать.

Поставить звезду

🤝 Участие в разработке

Сообщения об ошибках, идеи и pull request приветствуются. Перед отправкой изменений, пожалуйста, запустите unit-тесты, Ruff, smoke-тест, функциональный GUI-прогон и нагрузочные проверки — все они выполняются и в CI.

Если ошибка связана со Steam runtime, приложите версии Windows и Steam, AppID, последние строки лога и укажите, воспроизводится ли проблема в --self-test.

🔧 Технический обзор

BoostiFy построен на Python 3.14 и PyQt6, а вся работа со Steam вынесена в отдельный C# runtime на .NET Framework 4.8. GUI и runtime общаются через изолированные worker-процессы: падение одной игры не влияет на интерфейс, а Windows Job Object гарантирует остановку всех дочерних процессов вместе с GUI.

# Запуск из исходников
python -m venv .venv
.venv\Scripts\pip install -r requirements-dev.txt
python BoostiFy/runtime/build.py        # собрать изолированный C# runtime
.venv\Scripts\python main.py

# Тесты и проверки качества
.venv\Scripts\pytest
.venv\Scripts\ruff check .
.venv\Scripts\python scripts/smoke_test.py --require-runtime
.venv\Scripts\python scripts/functional_qa.py
.venv\Scripts\python scripts/stress_test.py

# Сборка исполняемого файла
.venv\Scripts\python scripts/package.py

📄 Лицензия

BoostiFy распространяется под лицензией MIT. Вы можете использовать, изменять и распространять проект при условии сохранения уведомления об авторских правах и текста лицензии. Подробности приведены в файле LICENSE.


Разработано с ❤️ под маркой CLC corporation
@deeCaT

About

Steam idler & hour booster with achievement manager for Windows. Idle up to 60 games at once and unlock achievements. No login or password — works through your running Steam client.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages