Skip to content

Веб-приложение и CLI-утилита для получения статистики по играм Steam с дополнительной информацией о времени прохождения с сайта HowLongToBeat.

Notifications You must be signed in to change notification settings

DarkGenius/steam-games-stats

Repository files navigation

Steam Games Stats

Веб-приложение и CLI-утилита для получения статистики по играм Steam с дополнительной информацией о времени прохождения с сайта HowLongToBeat.

Возможности

  • Получение списка игр пользователя Steam с информацией о времени игры
  • Получение информации о времени прохождения игр с сайта HowLongToBeat
  • Сортировка игр по времени игры
  • Вывод топ-10 игр по времени игры
  • Сохранение результатов в JSON, текстовом формате или Excel
  • Кэширование данных о времени прохождения для ускорения работы
  • Расчет оставшегося времени для прохождения основной сюжетной линии
  • Поддержка TypeScript

Установка

  1. Клонируйте репозиторий:
git clone [url репозитория]
cd steam-games-stats
  1. Установите зависимости:
npm install
  1. Создайте файл .env в корневой директории проекта и добавьте в него ваш Steam API ключ:
STEAM_API_KEY=ваш_api_ключ

Получить Steam API ключ можно на странице: https://steamcommunity.com/dev/apikey

Использование

Режим Steam

Получение статистики по играм 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

Режим HowLongToBeat

Получение информации о времени прохождения конкретной игры:

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 lint

Формат вывода

Текстовый формат (--format text)

1. Название игры (время игры в часах)
   Main Story: X.XX hours
   Main + Extras: Y.YY hours
   Completionist: Z.ZZ hours
   Remaining Time: R.RR hours

JSON формат (--format json)

[
  {
    "name": "Название игры",
    "playtime_forever": время_в_минутах,
    "howLongToBeat": {
      "title": "Название игры на HowLongToBeat",
      "mainStory": время_в_часах,
      "mainPlusExtras": время_в_часах,
      "completionist": время_в_часах,
      "remainingTime": оставшееся_время_в_часах
    }
  }
]

Excel формат (--format excel)

При использовании опции --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 - автоматическая перезагрузка при изменениях в коде

About

Веб-приложение и CLI-утилита для получения статистики по играм Steam с дополнительной информацией о времени прохождения с сайта HowLongToBeat.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published