https://github.com/somespecialone/sert
Steam Exchange Rate Tracker and Converter ๐ฑ
https://github.com/somespecialone/sert
currency-converter deta exchange nitro nodejs steam steammarket svelte sveltekit
Last synced: 11 months ago
JSON representation
Steam Exchange Rate Tracker and Converter ๐ฑ
- Host: GitHub
- URL: https://github.com/somespecialone/sert
- Owner: somespecialone
- License: mit
- Created: 2022-12-08T17:47:01.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2025-01-27T09:04:48.000Z (about 1 year ago)
- Last Synced: 2025-04-12T19:12:41.284Z (11 months ago)
- Topics: currency-converter, deta, exchange, nitro, nodejs, steam, steammarket, svelte, sveltekit
- Language: TypeScript
- Homepage: https://converter.somespecial.one/
- Size: 529 KB
- Stars: 10
- Watchers: 1
- Forks: 0
- Open Issues: 10
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Steam Exchange Rate Tracker
*Stay updated on Steam market prices and convert currencies with easy!*
[](https://stand-with-ukraine.pp.ua)
[](https://github.com/somespecialone/sert/blob/master/LICENSE)
[](https://store.steampowered.com/)
[](https://github.com/prettier/prettier)
[](https://github.com/somespecialone/sert/actions/workflows/api.yml)
[](https://github.com/somespecialone/sert/actions/workflows/test.yml)
[](https://github.com/somespecialone/sert/actions/workflows/converter.yml)
[](https://codecov.io/gh/somespecialone/sert)
[](https://www.codefactor.io/repository/github/somespecialone/sert)
---
> [!NOTE]
>
> **Web converter [converter.somespecial.one](https://converter.somespecial.one) ๐งฎ**
>
> **API [sert.somespecial.one](https://sert.somespecial.one)**
>
> **Python API consumer [aiosteampy.converter](https://github.com/somespecialone/aiosteampy/blob/master/aiosteampy/ext/converter.py)**
## How it works
Every hour on **9 and 39 minute** app checks if rates data in db is expired (updated yesterday or even older)
and if true, _update currency rates_:
1. Get data of specified item on steammarket for each needed currency.
2. Calculate exchange rates by comparing item price in previously fetched currencies.
3. Save data to db ๐.
> [!WARNING]
> It is possible to get max 4 currencies for each schedule wake up due to `Steam` rate limit.
## API
All currency rates eval to 1 USD ๐ต.
> [!IMPORTANT]
> All routes have `Expires` โ header
> So please consider using a caching mechanism to avoid unnecessary requests to the service as its resources are limited.
### Rates
> GET `/rates`
```json5
{
"EUR": [
0.91, // rate
1683121141 // updated ts in seconds
],
"UAH": [
36.71,
1683121141
]
}
```
### History
> GET `/history`
```json5
{
"EUR": [
[
0.91,
1683121141
],
[
0.91,
1682986141
],
// ...
],
"UAH": [
[
36.71,
1683121141
],
[
36.94,
1682986141
],
// ...
]
}
```
| Param | Descr | Default |
|----------|-------------------------------------|---------|
| `length` | Max length of history entries array | 30 |
| `all` | Show full list of entries | `false` |
Examples:
* https://sert.somespecial.one/history?length=20
* https://sert.ssomespecial.one/history?all
[//]: # (## Tests ๐งช)
[//]: # ()
[//]: # (Copy repo, install deps, place filled `.env` in `api` dir and there run npm script:)
[//]: # ()
[//]: # (```shell)
[//]: # (npm run api:test)
[//]: # (```)