# steam-categories

> Library to work with Steam categories

Latest version **1.1.4** (published 2023-05-01) · MIT license · 0 weekly downloads

## Install

```sh
npm install steam-categories
pnpm add steam-categories
yarn add steam-categories
bun add steam-categories
```

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.1.4 |
| Published | 2023-05-01 |
| First published | 2019-11-11 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 4 |
| Unpacked size | 8.3 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 11 |
| Author | Jozen Martinez |
| Maintainers | zennn |
| Keywords | steam, steam-categories |

## Links

- npm: https://www.npmjs.com/package/steam-categories
- Repository: https://github.com/doZennn/steam-categories
- Homepage: https://github.com/doZennn/steam-categories#readme
- Issues: https://github.com/doZennn/steam-categories/issues
- npm.io page: https://npm.io/package/steam-categories

## Dependencies (4)

- [levelup](https://npm.io/package/levelup.md) ^4.4.0
- [leveldown](https://npm.io/package/leveldown.md) ^5.6.0
- [iconv-lite](https://npm.io/package/iconv-lite.md) ^0.6.3
- [encoding-down](https://npm.io/package/encoding-down.md) ^6.3.0

## Recent versions

- 1.1.4 (latest) — 2023-05-01
- 1.1.3 — 2020-06-05
- 1.1.2 — 2020-06-01
- 1.1.1 — 2019-11-26
- 1.1.0 — 2019-11-20
- 1.0.2 — 2019-11-14
- 1.0.1 — 2019-11-12
- 1.0.0 — 2019-11-11

## README

# steam-categories
Super basic Node.js library to help with modifying the new Steam categories

```
npm i steam-categories
```

Notes:
 - Launching Steam while the database is still in use will cause Steam to delete it. So use `close()` when you're done.
 - `read()` will throw an exception if you try to access the database whilst Steam is open.  
 Make sure to catch it or use `isClosed()` / `isOpen()`

Usage:
```js
const SteamCat = require('steam-categories');
const path = require('path');

// %LOCALAPPDATA%/Steam/htmlcache/Local Storage/leveldb
const levelDBPath = path.join(process.env['localappdata'], 'Steam', 'htmlcache', 'Local Storage', 'leveldb');

// Supply leveldb path and Steam3 ID of user whose collections to edit
const cats = new SteamCat(levelDBPath, '88089999');

// Read user collections
cats.read().then((collections) => {
  // Get collection "test"
  const testCollection = cats.get('test');
  console.info(testCollection);
  /*
  {
    key: 'user-collections.test',
    timestamp: 1573477978,
    value: {
      id: 'test',
      name: 'Test Collection',
      added: []
    }
  }
  */

  // Add DOOM to "test" collection
  testCollection.value.added.push(379720);

  // Change the name
  testCollection.value.name = '👀';

  // Create a new collection with Counter-Strike, DOOM, and Half-Life 2
  cats.add('someUniqueKey', {
    name: 'Super Cool Collection',
    added: [10, 220, 379720]
  });

  // Save collections
  cats.save().then(() => {
    console.info('yay!');
    // Close the database when you're done
    cats.close().then(() => {
      console.info('Database closed, safe to open Steam again.');
    });
  });
}).catch((err) => {
  // Error reading database (most likely locked)
  console.error(err.message);
});
```

---
_Source: https://npm.io/package/steam-categories · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
