open-index/open-npm huggingface dataset:
npm package: @sekrecior/steam-free-games
Description: Scrape temporarily free games from Steam
Latest version: 1.0.9

# Steam Free Games Scraper

A TypeScript library to scrape temporarily free games from Steam (games that are normally paid but currently free to keep).

## Installation

```bash
npm install @sekrecior/steam-free-games
```

## Usage

### Basic Usage

```typescript
import { SteamScraper } from '@sekrecior/steam-free-games';

const scraper = new SteamScraper(); // Default: USD
const result = await scraper.scrape();

console.log(`Found ${result.count} free games`);

result.games.forEach(game => {
  console.log(`${game.title} - ${game.originalPrice} → FREE`);
});
```

### Multi-Currency Support

```typescript
const scraperPLN = new SteamScraper('PLN'); // Polish Złoty
const scraperEUR = new SteamScraper('EUR'); // Euro
const scraperUSD = new SteamScraper('USD'); // US Dollar
const scraperGBP = new SteamScraper('GBP'); // British Pound
const scraperBRL = new SteamScraper('BRL'); // Brazilian Real
```

**Note:** Prices vary by region due to Steam's regional pricing.

## Game Data Structure

```typescript
interface GameData {
  appId: string;
  title: string;
  url: string;
  originalPrice: string;           // e.g., "$19.99", "8,99zł"
  currency: string;                 // e.g., "USD", "PLN", "EUR"
  currentPrice: string;             // Always "0.00"
  discountPercent: string;          // "-100%"
  description: string;
  headerImage: string;
  releaseTimestamp: string;         // Unix timestamp or "Unknown"
  promotionEndTimestamp: string;    // Unix timestamp or "Unknown"
  developer: string;
  tags: string[];                   // Max 10 tags
}
```

### Working with Timestamps

```typescript
// Convert to Date
const endDate = new Date(parseInt(game.promotionEndTimestamp) * 1000);
console.log(endDate.toLocaleString());

// Check if active
const isActive = endDate.getTime() > Date.now();
```

## Features

- ✅ Finds temporarily free games (not free-to-play)
- ✅ Multi-currency support (PLN, EUR, USD, GBP, BRL)
- ✅ Extracts promotion end dates
- ✅ Full TypeScript support

## Requirements

- Node.js >= 18.0.0

## License

MIT