cs2tracker 2.1.15__tar.gz → 2.1.16__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of cs2tracker might be problematic. Click here for more details.
- {cs2tracker-2.1.15 → cs2tracker-2.1.16}/.gitignore +1 -0
- {cs2tracker-2.1.15 → cs2tracker-2.1.16}/PKG-INFO +13 -13
- {cs2tracker-2.1.15 → cs2tracker-2.1.16}/README.md +12 -12
- {cs2tracker-2.1.15 → cs2tracker-2.1.16}/cs2tracker/_version.py +2 -2
- {cs2tracker-2.1.15 → cs2tracker-2.1.16}/cs2tracker/constants.py +20 -3
- {cs2tracker-2.1.15 → cs2tracker-2.1.16}/cs2tracker/scraper/background_task.py +79 -5
- {cs2tracker-2.1.15 → cs2tracker-2.1.16}/cs2tracker/scraper/parser.py +7 -1
- {cs2tracker-2.1.15 → cs2tracker-2.1.16}/cs2tracker.egg-info/PKG-INFO +13 -13
- {cs2tracker-2.1.15 → cs2tracker-2.1.16}/.flake8 +0 -0
- {cs2tracker-2.1.15 → cs2tracker-2.1.16}/.isort.cfg +0 -0
- {cs2tracker-2.1.15 → cs2tracker-2.1.16}/.pre-commit-config.yaml +0 -0
- {cs2tracker-2.1.15 → cs2tracker-2.1.16}/.pylintrc +0 -0
- {cs2tracker-2.1.15 → cs2tracker-2.1.16}/LICENSE +0 -0
- {cs2tracker-2.1.15 → cs2tracker-2.1.16}/MANIFEST.in +0 -0
- {cs2tracker-2.1.15 → cs2tracker-2.1.16}/assets/demo.gif +0 -0
- {cs2tracker-2.1.15 → cs2tracker-2.1.16}/assets/icon.png +0 -0
- {cs2tracker-2.1.15 → cs2tracker-2.1.16}/cs2tracker/__init__.py +0 -0
- {cs2tracker-2.1.15 → cs2tracker-2.1.16}/cs2tracker/__main__.py +0 -0
- {cs2tracker-2.1.15 → cs2tracker-2.1.16}/cs2tracker/app/__init__.py +0 -0
- {cs2tracker-2.1.15 → cs2tracker-2.1.16}/cs2tracker/app/app.py +0 -0
- {cs2tracker-2.1.15 → cs2tracker-2.1.16}/cs2tracker/app/editor_frame.py +0 -0
- {cs2tracker-2.1.15 → cs2tracker-2.1.16}/cs2tracker/app/history_frame.py +0 -0
- {cs2tracker-2.1.15 → cs2tracker-2.1.16}/cs2tracker/app/scraper_frame.py +0 -0
- {cs2tracker-2.1.15 → cs2tracker-2.1.16}/cs2tracker/config.py +0 -0
- {cs2tracker-2.1.15 → cs2tracker-2.1.16}/cs2tracker/data/config.ini +0 -0
- {cs2tracker-2.1.15 → cs2tracker-2.1.16}/cs2tracker/data/convert_inventory.js +0 -0
- {cs2tracker-2.1.15 → cs2tracker-2.1.16}/cs2tracker/data/get_inventory.js +0 -0
- {cs2tracker-2.1.15 → cs2tracker-2.1.16}/cs2tracker/data/output.csv +0 -0
- {cs2tracker-2.1.15 → cs2tracker-2.1.16}/cs2tracker/logs.py +0 -0
- {cs2tracker-2.1.15 → cs2tracker-2.1.16}/cs2tracker/main.py +0 -0
- {cs2tracker-2.1.15 → cs2tracker-2.1.16}/cs2tracker/scraper/__init__.py +0 -0
- {cs2tracker-2.1.15 → cs2tracker-2.1.16}/cs2tracker/scraper/discord_notifier.py +0 -0
- {cs2tracker-2.1.15 → cs2tracker-2.1.16}/cs2tracker/scraper/scraper.py +0 -0
- {cs2tracker-2.1.15 → cs2tracker-2.1.16}/cs2tracker/util/__init__.py +0 -0
- {cs2tracker-2.1.15 → cs2tracker-2.1.16}/cs2tracker/util/currency_conversion.py +0 -0
- {cs2tracker-2.1.15 → cs2tracker-2.1.16}/cs2tracker/util/padded_console.py +0 -0
- {cs2tracker-2.1.15 → cs2tracker-2.1.16}/cs2tracker/util/tkinter.py +0 -0
- {cs2tracker-2.1.15 → cs2tracker-2.1.16}/cs2tracker.egg-info/SOURCES.txt +0 -0
- {cs2tracker-2.1.15 → cs2tracker-2.1.16}/cs2tracker.egg-info/dependency_links.txt +0 -0
- {cs2tracker-2.1.15 → cs2tracker-2.1.16}/cs2tracker.egg-info/entry_points.txt +0 -0
- {cs2tracker-2.1.15 → cs2tracker-2.1.16}/cs2tracker.egg-info/requires.txt +0 -0
- {cs2tracker-2.1.15 → cs2tracker-2.1.16}/cs2tracker.egg-info/top_level.txt +0 -0
- {cs2tracker-2.1.15 → cs2tracker-2.1.16}/pyproject.toml +0 -0
- {cs2tracker-2.1.15 → cs2tracker-2.1.16}/requirements.txt +0 -0
- {cs2tracker-2.1.15 → cs2tracker-2.1.16}/setup.cfg +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: cs2tracker
|
|
3
|
-
Version: 2.1.
|
|
3
|
+
Version: 2.1.16
|
|
4
4
|
Summary: Tracking the steam market prices of CS2 items
|
|
5
5
|
Home-page: https://github.com/ashiven/cs2tracker
|
|
6
6
|
Author: Jannik Novak
|
|
@@ -49,8 +49,8 @@ Dynamic: license-file
|
|
|
49
49
|
|
|
50
50
|
- [Features](#features)
|
|
51
51
|
- [Getting Started](#getting-started)
|
|
52
|
-
- [Prerequisites](#prerequisites)
|
|
53
52
|
- [Installation](#installation)
|
|
53
|
+
- [Additional Setup](#additional-setup)
|
|
54
54
|
- [Usage](#usage)
|
|
55
55
|
- [Configuration](#configuration)
|
|
56
56
|
- [Advanced Features](#advanced-features)
|
|
@@ -60,7 +60,7 @@ Dynamic: license-file
|
|
|
60
60
|
## Features
|
|
61
61
|
|
|
62
62
|
- ⚡ Rapidly import your Storage Units
|
|
63
|
-
- 🔍 Track prices on Steam, Buff163,
|
|
63
|
+
- 🔍 Track prices on Steam, Buff163, CSFloat
|
|
64
64
|
- 📈 View investment price history
|
|
65
65
|
- 🧾 Export/Import history data
|
|
66
66
|
- 📤 Discord notifications on updates
|
|
@@ -69,19 +69,15 @@ Dynamic: license-file
|
|
|
69
69
|
|
|
70
70
|
## Getting Started
|
|
71
71
|
|
|
72
|
-
### Prerequisites
|
|
73
|
-
|
|
74
|
-
- Download and install the latest versions of [Python](https://www.python.org/downloads/) and [Pip](https://pypi.org/project/pip/). (Required on Linux)
|
|
75
|
-
- Register for the [Crawlbase Smart Proxy API](https://crawlbase.com/) and retrieve your API key. (Optional)
|
|
76
|
-
- Create a [Discord Webhook](https://support.discord.com/hc/en-us/articles/228383668-Intro-to-Webhooks) to be notified about recent price updates. (Optional)
|
|
77
|
-
|
|
78
72
|
### Installation
|
|
79
73
|
|
|
80
|
-
####
|
|
74
|
+
#### Method 1: Executable
|
|
81
75
|
|
|
82
|
-
|
|
76
|
+
Simply download the program and run it:
|
|
77
|
+
- [Windows](https://github.com/ashiven/cs2tracker/releases/latest/download/cs2tracker-windows.zip)
|
|
78
|
+
- [Linux](https://github.com/ashiven/cs2tracker/releases/latest/download/cs2tracker-linux.zip)
|
|
83
79
|
|
|
84
|
-
####
|
|
80
|
+
#### Method 2: Install via Pip
|
|
85
81
|
|
|
86
82
|
1. Install the program:
|
|
87
83
|
|
|
@@ -94,10 +90,14 @@ Dynamic: license-file
|
|
|
94
90
|
```bash
|
|
95
91
|
cs2tracker
|
|
96
92
|
```
|
|
93
|
+
### Additional Setup
|
|
94
|
+
|
|
95
|
+
- Register for the [Crawlbase Smart Proxy API](https://crawlbase.com/) and retrieve your API key. (Optional)
|
|
96
|
+
- Create a [Discord Webhook](https://support.discord.com/hc/en-us/articles/228383668-Intro-to-Webhooks) to be notified about recent price updates. (Optional)
|
|
97
97
|
|
|
98
98
|
## Usage
|
|
99
99
|
|
|
100
|
-
- Click **Run!** to gather the current market prices of your items and calculate the total amount in USD and
|
|
100
|
+
- Click **Run!** to gather the current market prices of your items and calculate the total amount in USD and your selected currency.
|
|
101
101
|
- The generated Excel sheet can be saved by right-clicking and then selecting **Save Sheet**.
|
|
102
102
|
- Use **Edit Config** to specify the numbers of items owned in the configuration.
|
|
103
103
|
- Click **Show History** to see a price chart consisting of past calculations.
|
|
@@ -21,8 +21,8 @@
|
|
|
21
21
|
|
|
22
22
|
- [Features](#features)
|
|
23
23
|
- [Getting Started](#getting-started)
|
|
24
|
-
- [Prerequisites](#prerequisites)
|
|
25
24
|
- [Installation](#installation)
|
|
25
|
+
- [Additional Setup](#additional-setup)
|
|
26
26
|
- [Usage](#usage)
|
|
27
27
|
- [Configuration](#configuration)
|
|
28
28
|
- [Advanced Features](#advanced-features)
|
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
## Features
|
|
33
33
|
|
|
34
34
|
- ⚡ Rapidly import your Storage Units
|
|
35
|
-
- 🔍 Track prices on Steam, Buff163,
|
|
35
|
+
- 🔍 Track prices on Steam, Buff163, CSFloat
|
|
36
36
|
- 📈 View investment price history
|
|
37
37
|
- 🧾 Export/Import history data
|
|
38
38
|
- 📤 Discord notifications on updates
|
|
@@ -41,19 +41,15 @@
|
|
|
41
41
|
|
|
42
42
|
## Getting Started
|
|
43
43
|
|
|
44
|
-
### Prerequisites
|
|
45
|
-
|
|
46
|
-
- Download and install the latest versions of [Python](https://www.python.org/downloads/) and [Pip](https://pypi.org/project/pip/). (Required on Linux)
|
|
47
|
-
- Register for the [Crawlbase Smart Proxy API](https://crawlbase.com/) and retrieve your API key. (Optional)
|
|
48
|
-
- Create a [Discord Webhook](https://support.discord.com/hc/en-us/articles/228383668-Intro-to-Webhooks) to be notified about recent price updates. (Optional)
|
|
49
|
-
|
|
50
44
|
### Installation
|
|
51
45
|
|
|
52
|
-
####
|
|
46
|
+
#### Method 1: Executable
|
|
53
47
|
|
|
54
|
-
|
|
48
|
+
Simply download the program and run it:
|
|
49
|
+
- [Windows](https://github.com/ashiven/cs2tracker/releases/latest/download/cs2tracker-windows.zip)
|
|
50
|
+
- [Linux](https://github.com/ashiven/cs2tracker/releases/latest/download/cs2tracker-linux.zip)
|
|
55
51
|
|
|
56
|
-
####
|
|
52
|
+
#### Method 2: Install via Pip
|
|
57
53
|
|
|
58
54
|
1. Install the program:
|
|
59
55
|
|
|
@@ -66,10 +62,14 @@
|
|
|
66
62
|
```bash
|
|
67
63
|
cs2tracker
|
|
68
64
|
```
|
|
65
|
+
### Additional Setup
|
|
66
|
+
|
|
67
|
+
- Register for the [Crawlbase Smart Proxy API](https://crawlbase.com/) and retrieve your API key. (Optional)
|
|
68
|
+
- Create a [Discord Webhook](https://support.discord.com/hc/en-us/articles/228383668-Intro-to-Webhooks) to be notified about recent price updates. (Optional)
|
|
69
69
|
|
|
70
70
|
## Usage
|
|
71
71
|
|
|
72
|
-
- Click **Run!** to gather the current market prices of your items and calculate the total amount in USD and
|
|
72
|
+
- Click **Run!** to gather the current market prices of your items and calculate the total amount in USD and your selected currency.
|
|
73
73
|
- The generated Excel sheet can be saved by right-clicking and then selecting **Save Sheet**.
|
|
74
74
|
- Use **Edit Config** to specify the numbers of items owned in the configuration.
|
|
75
75
|
- Click **Show History** to see a price chart consisting of past calculations.
|
|
@@ -18,19 +18,36 @@ except ImportError:
|
|
|
18
18
|
class OSType(enum.Enum):
|
|
19
19
|
WINDOWS = "Windows"
|
|
20
20
|
LINUX = "Linux"
|
|
21
|
+
MACOS = "MacOS"
|
|
21
22
|
|
|
22
23
|
|
|
23
|
-
|
|
24
|
-
|
|
24
|
+
if sys.platform.startswith("win"):
|
|
25
|
+
OS = OSType.WINDOWS
|
|
26
|
+
elif sys.platform.startswith("linux"):
|
|
27
|
+
OS = OSType.LINUX
|
|
28
|
+
elif sys.platform.startswith("darwin"):
|
|
29
|
+
OS = OSType.MACOS
|
|
30
|
+
else:
|
|
31
|
+
raise NotImplementedError(f"Unsupported OS: {sys.platform}")
|
|
25
32
|
|
|
26
33
|
|
|
34
|
+
PYTHON_EXECUTABLE = sys.executable
|
|
27
35
|
RUNNING_IN_EXE = getattr(sys, "frozen", False) and hasattr(sys, "_MEIPASS")
|
|
28
36
|
|
|
29
37
|
if RUNNING_IN_EXE:
|
|
30
38
|
MEIPASS_DIR = sys._MEIPASS # type: ignore pylint: disable=protected-access
|
|
31
39
|
MODULE_DIR = MEIPASS_DIR
|
|
32
40
|
PROJECT_DIR = MEIPASS_DIR
|
|
33
|
-
|
|
41
|
+
|
|
42
|
+
if OS == OSType.WINDOWS:
|
|
43
|
+
APP_DATA_DIR = os.path.join(os.path.expanduser("~"), "AppData", "Local")
|
|
44
|
+
elif OS == OSType.LINUX:
|
|
45
|
+
APP_DATA_DIR = os.environ.get(
|
|
46
|
+
"XDG_DATA_HOME", os.path.join(os.path.expanduser("~"), ".local", "share")
|
|
47
|
+
)
|
|
48
|
+
else:
|
|
49
|
+
raise NotImplementedError(f"Unsupported OS: {OS}")
|
|
50
|
+
|
|
34
51
|
DATA_DIR = os.path.join(APP_DATA_DIR, "cs2tracker", "data")
|
|
35
52
|
os.makedirs(DATA_DIR, exist_ok=True)
|
|
36
53
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import os
|
|
2
|
-
from subprocess import DEVNULL, call
|
|
2
|
+
from subprocess import DEVNULL, STDOUT, CalledProcessError, call, check_output, run
|
|
3
3
|
|
|
4
4
|
from cs2tracker.constants import (
|
|
5
5
|
BATCH_FILE,
|
|
@@ -18,6 +18,18 @@ WIN_BACKGROUND_TASK_CMD = (
|
|
|
18
18
|
f"powershell -WindowStyle Hidden -Command \"Start-Process '{BATCH_FILE}' -WindowStyle Hidden\""
|
|
19
19
|
)
|
|
20
20
|
|
|
21
|
+
LINUX_BACKGROUND_TASK_SCHEDULE = "0 12 * * *"
|
|
22
|
+
LINUX_BACKGROUND_TASK_CMD = (
|
|
23
|
+
f"bash -c 'cd {PROJECT_DIR} && {PYTHON_EXECUTABLE} -m cs2tracker --only-scrape'"
|
|
24
|
+
)
|
|
25
|
+
LINUX_BACKGROUND_TASK_CMD_EXE = f"bash -c 'cd {PROJECT_DIR} && {PYTHON_EXECUTABLE} --only-scrape'"
|
|
26
|
+
|
|
27
|
+
if RUNNING_IN_EXE:
|
|
28
|
+
LINUX_CRON_JOB = f"{LINUX_BACKGROUND_TASK_SCHEDULE} {LINUX_BACKGROUND_TASK_CMD_EXE}"
|
|
29
|
+
else:
|
|
30
|
+
LINUX_CRON_JOB = f"{LINUX_BACKGROUND_TASK_SCHEDULE} {LINUX_BACKGROUND_TASK_CMD}"
|
|
31
|
+
|
|
32
|
+
|
|
21
33
|
console = get_console()
|
|
22
34
|
|
|
23
35
|
|
|
@@ -34,8 +46,17 @@ class BackgroundTask:
|
|
|
34
46
|
return_code = call(cmd, stdout=DEVNULL, stderr=DEVNULL)
|
|
35
47
|
found = return_code == 0
|
|
36
48
|
return found
|
|
49
|
+
elif OS == OSType.LINUX:
|
|
50
|
+
try:
|
|
51
|
+
existing_jobs = (
|
|
52
|
+
check_output(["crontab", "-l"], stderr=STDOUT).decode("utf-8").strip()
|
|
53
|
+
)
|
|
54
|
+
except CalledProcessError:
|
|
55
|
+
existing_jobs = ""
|
|
56
|
+
|
|
57
|
+
found = LINUX_CRON_JOB in existing_jobs.splitlines()
|
|
58
|
+
return found
|
|
37
59
|
else:
|
|
38
|
-
# TODO: implement finder for cron jobs
|
|
39
60
|
return False
|
|
40
61
|
|
|
41
62
|
@classmethod
|
|
@@ -83,17 +104,69 @@ class BackgroundTask:
|
|
|
83
104
|
]
|
|
84
105
|
return_code = call(cmd, stdout=DEVNULL, stderr=DEVNULL)
|
|
85
106
|
if return_code == 0:
|
|
86
|
-
console.
|
|
107
|
+
console.info("Background task enabled.")
|
|
87
108
|
else:
|
|
88
109
|
console.error("Failed to enable background task.")
|
|
89
110
|
else:
|
|
90
111
|
cmd = ["schtasks", "/delete", "/tn", WIN_BACKGROUND_TASK_NAME, "/f"]
|
|
91
112
|
return_code = call(cmd, stdout=DEVNULL, stderr=DEVNULL)
|
|
92
113
|
if return_code == 0:
|
|
93
|
-
console.
|
|
114
|
+
console.info("Background task disabled.")
|
|
94
115
|
else:
|
|
95
116
|
console.error("Failed to disable background task.")
|
|
96
117
|
|
|
118
|
+
@classmethod
|
|
119
|
+
def _toggle_linux(cls, enabled: bool):
|
|
120
|
+
"""
|
|
121
|
+
Create or delete a daily background task that runs the scraper on Linux.
|
|
122
|
+
|
|
123
|
+
:param enabled: If True, the task will be created; if False, the task will be
|
|
124
|
+
deleted.
|
|
125
|
+
"""
|
|
126
|
+
try:
|
|
127
|
+
existing_jobs = check_output(["crontab", "-l"], stderr=STDOUT).decode("utf-8").strip()
|
|
128
|
+
except CalledProcessError:
|
|
129
|
+
existing_jobs = ""
|
|
130
|
+
|
|
131
|
+
cron_lines = existing_jobs.splitlines()
|
|
132
|
+
|
|
133
|
+
if enabled and LINUX_CRON_JOB not in cron_lines:
|
|
134
|
+
updated_jobs = (
|
|
135
|
+
existing_jobs + "\n" + LINUX_CRON_JOB + "\n"
|
|
136
|
+
if existing_jobs
|
|
137
|
+
else LINUX_CRON_JOB + "\n"
|
|
138
|
+
)
|
|
139
|
+
try:
|
|
140
|
+
run(
|
|
141
|
+
["crontab", "-"],
|
|
142
|
+
input=updated_jobs.encode("utf-8"),
|
|
143
|
+
stdout=DEVNULL,
|
|
144
|
+
stderr=DEVNULL,
|
|
145
|
+
check=True,
|
|
146
|
+
)
|
|
147
|
+
console.info("Background task enabled.")
|
|
148
|
+
except CalledProcessError:
|
|
149
|
+
console.error("Failed to enable background task.")
|
|
150
|
+
|
|
151
|
+
elif not enabled and LINUX_CRON_JOB in cron_lines:
|
|
152
|
+
updated_jobs = "\n".join(
|
|
153
|
+
line for line in cron_lines if line.strip() != LINUX_CRON_JOB
|
|
154
|
+
).strip()
|
|
155
|
+
try:
|
|
156
|
+
if updated_jobs:
|
|
157
|
+
run(
|
|
158
|
+
["crontab", "-"],
|
|
159
|
+
input=(updated_jobs + "\n").encode("utf-8"),
|
|
160
|
+
stdout=DEVNULL,
|
|
161
|
+
stderr=DEVNULL,
|
|
162
|
+
check=True,
|
|
163
|
+
)
|
|
164
|
+
else:
|
|
165
|
+
run(["crontab", "-r"], stdout=DEVNULL, stderr=DEVNULL, check=True)
|
|
166
|
+
console.info("Background task disabled.")
|
|
167
|
+
except CalledProcessError:
|
|
168
|
+
console.error("Failed to disable background task.")
|
|
169
|
+
|
|
97
170
|
@classmethod
|
|
98
171
|
def toggle(cls, enabled: bool):
|
|
99
172
|
"""
|
|
@@ -104,6 +177,7 @@ class BackgroundTask:
|
|
|
104
177
|
"""
|
|
105
178
|
if OS == OSType.WINDOWS:
|
|
106
179
|
cls._toggle_windows(enabled)
|
|
180
|
+
elif OS == OSType.LINUX:
|
|
181
|
+
cls._toggle_linux(enabled)
|
|
107
182
|
else:
|
|
108
|
-
# TODO: implement toggle for cron jobs
|
|
109
183
|
pass
|
|
@@ -127,7 +127,7 @@ class CSGOTraderParser(BaseParser):
|
|
|
127
127
|
CSGOTRADER_PRICE_LIST = "https://prices.csgotrader.app/latest/{}.json"
|
|
128
128
|
PRICE_INFO = "Owned: {:<10} {:<10}: ${:<10} Total: ${:<10}"
|
|
129
129
|
NEEDS_TIMEOUT = False
|
|
130
|
-
SOURCES = [PriceSource.STEAM, PriceSource.BUFF163, PriceSource.
|
|
130
|
+
SOURCES = [PriceSource.STEAM, PriceSource.BUFF163, PriceSource.CSFLOAT]
|
|
131
131
|
|
|
132
132
|
@classmethod
|
|
133
133
|
def get_item_page_url(cls, item_href, source=PriceSource.STEAM):
|
|
@@ -176,6 +176,12 @@ class CSGOTraderParser(BaseParser):
|
|
|
176
176
|
raise ValueError(
|
|
177
177
|
f"CSGOTrader: Could not find recent youpin898 price: {url_decoded_name}"
|
|
178
178
|
)
|
|
179
|
+
elif source == PriceSource.CSFLOAT:
|
|
180
|
+
price = price_info.get("price")
|
|
181
|
+
if not price:
|
|
182
|
+
raise ValueError(
|
|
183
|
+
f"CSGOTrader: Could not find recent csfloat price: {url_decoded_name}"
|
|
184
|
+
)
|
|
179
185
|
else:
|
|
180
186
|
price = price_info.get("starting_at")
|
|
181
187
|
if not price:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: cs2tracker
|
|
3
|
-
Version: 2.1.
|
|
3
|
+
Version: 2.1.16
|
|
4
4
|
Summary: Tracking the steam market prices of CS2 items
|
|
5
5
|
Home-page: https://github.com/ashiven/cs2tracker
|
|
6
6
|
Author: Jannik Novak
|
|
@@ -49,8 +49,8 @@ Dynamic: license-file
|
|
|
49
49
|
|
|
50
50
|
- [Features](#features)
|
|
51
51
|
- [Getting Started](#getting-started)
|
|
52
|
-
- [Prerequisites](#prerequisites)
|
|
53
52
|
- [Installation](#installation)
|
|
53
|
+
- [Additional Setup](#additional-setup)
|
|
54
54
|
- [Usage](#usage)
|
|
55
55
|
- [Configuration](#configuration)
|
|
56
56
|
- [Advanced Features](#advanced-features)
|
|
@@ -60,7 +60,7 @@ Dynamic: license-file
|
|
|
60
60
|
## Features
|
|
61
61
|
|
|
62
62
|
- ⚡ Rapidly import your Storage Units
|
|
63
|
-
- 🔍 Track prices on Steam, Buff163,
|
|
63
|
+
- 🔍 Track prices on Steam, Buff163, CSFloat
|
|
64
64
|
- 📈 View investment price history
|
|
65
65
|
- 🧾 Export/Import history data
|
|
66
66
|
- 📤 Discord notifications on updates
|
|
@@ -69,19 +69,15 @@ Dynamic: license-file
|
|
|
69
69
|
|
|
70
70
|
## Getting Started
|
|
71
71
|
|
|
72
|
-
### Prerequisites
|
|
73
|
-
|
|
74
|
-
- Download and install the latest versions of [Python](https://www.python.org/downloads/) and [Pip](https://pypi.org/project/pip/). (Required on Linux)
|
|
75
|
-
- Register for the [Crawlbase Smart Proxy API](https://crawlbase.com/) and retrieve your API key. (Optional)
|
|
76
|
-
- Create a [Discord Webhook](https://support.discord.com/hc/en-us/articles/228383668-Intro-to-Webhooks) to be notified about recent price updates. (Optional)
|
|
77
|
-
|
|
78
72
|
### Installation
|
|
79
73
|
|
|
80
|
-
####
|
|
74
|
+
#### Method 1: Executable
|
|
81
75
|
|
|
82
|
-
|
|
76
|
+
Simply download the program and run it:
|
|
77
|
+
- [Windows](https://github.com/ashiven/cs2tracker/releases/latest/download/cs2tracker-windows.zip)
|
|
78
|
+
- [Linux](https://github.com/ashiven/cs2tracker/releases/latest/download/cs2tracker-linux.zip)
|
|
83
79
|
|
|
84
|
-
####
|
|
80
|
+
#### Method 2: Install via Pip
|
|
85
81
|
|
|
86
82
|
1. Install the program:
|
|
87
83
|
|
|
@@ -94,10 +90,14 @@ Dynamic: license-file
|
|
|
94
90
|
```bash
|
|
95
91
|
cs2tracker
|
|
96
92
|
```
|
|
93
|
+
### Additional Setup
|
|
94
|
+
|
|
95
|
+
- Register for the [Crawlbase Smart Proxy API](https://crawlbase.com/) and retrieve your API key. (Optional)
|
|
96
|
+
- Create a [Discord Webhook](https://support.discord.com/hc/en-us/articles/228383668-Intro-to-Webhooks) to be notified about recent price updates. (Optional)
|
|
97
97
|
|
|
98
98
|
## Usage
|
|
99
99
|
|
|
100
|
-
- Click **Run!** to gather the current market prices of your items and calculate the total amount in USD and
|
|
100
|
+
- Click **Run!** to gather the current market prices of your items and calculate the total amount in USD and your selected currency.
|
|
101
101
|
- The generated Excel sheet can be saved by right-clicking and then selecting **Save Sheet**.
|
|
102
102
|
- Use **Edit Config** to specify the numbers of items owned in the configuration.
|
|
103
103
|
- Click **Show History** to see a price chart consisting of past calculations.
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|