Веб-приложение и CLI-утилита для получения статистики по играм Steam с дополнительной информацией о времени прохождения с сайта HowLongToBeat.
- Получение списка игр пользователя Steam с информацией о времени игры
- Получение информации о времени прохождения игр с сайта HowLongToBeat
- Сортировка игр по времени игры
- Вывод топ-10 игр по времени игры
- Сохранение результатов в JSON, текстовом формате или Excel
- Кэширование данных о времени прохождения для ускорения работы
- Расчет оставшегося времени для прохождения основной сюжетной линии
- Поддержка TypeScript
- Клонируйте репозиторий:
git clone [url репозитория]
cd steam-games-stats- Установите зависимости:
npm install- Создайте файл
.envв корневой директории проекта и добавьте в него ваш Steam API ключ:
STEAM_API_KEY=ваш_api_ключ
Получить Steam API ключ можно на странице: https://steamcommunity.com/dev/apikey
Получение статистики по играм Steam пользователя:
npm start -- --steam-id <STEAM_ID> [опции]Опции:
--format <format>- формат вывода (json, text или excel, по умолчанию text)--add-how-long- добавить информацию о времени прохождения с HowLongToBeat--update-cache- обновить кэш данных о времени прохождения (игнорировать существующие кэшированные данные)
Пример:
npm start -- --steam-id 76561234567890123 --add-how-long --format excelПолучение информации о времени прохождения конкретной игры:
npm start -- --how-long "название игры" [опции]Опции:
--update-cache- обновить кэш данных о времени прохождения (игнорировать существующие кэшированные данные)
Пример:
npm start -- --how-long "The Witcher 3: Wild Hunt" --update-cacheПроект написан на TypeScript и предоставляет несколько способов запуска:
# Стандартный запуск
npm start -- [опции]
# Запуск в режиме разработки с автоматической перезагрузкой при изменениях
npm run dev -- [опции]
# Компиляция TypeScript в JavaScript
npm run build
# Проверка типов без компиляции
npm run lint1. Название игры (время игры в часах)
Main Story: X.XX hours
Main + Extras: Y.YY hours
Completionist: Z.ZZ hours
Remaining Time: R.RR hours
[
{
"name": "Название игры",
"playtime_forever": время_в_минутах,
"howLongToBeat": {
"title": "Название игры на HowLongToBeat",
"mainStory": время_в_часах,
"mainPlusExtras": время_в_часах,
"completionist": время_в_часах,
"remainingTime": оставшееся_время_в_часах
}
}
]При использовании опции --format excel создается Excel файл со следующими листами:
- Steam Games - основной лист с данными о играх, включая:
- Название игры
- Время игры (часы)
- Main Story (часы)
- Осталось до прохождения (часы) - расчетное время, оставшееся для завершения основной сюжетной линии
- Main + Extras (часы)
- Completionist (часы)
- Информация - дополнительный лист с метаданными
- Node.js
- TypeScript - статически типизированный JavaScript
- axios - HTTP клиент для работы с API
- commander - парсинг аргументов командной строки
- dotenv - работа с переменными окружения
- puppeteer - веб-скрапинг для HowLongToBeat
- exceljs - работа с Excel файлами
- ts-node - запуск TypeScript кода без предварительной компиляции
- nodemon - автоматическая перезагрузка при изменениях в коде