SteamRecon
交互式 Steam 资料情报与公开数据收集工具。
Русская версия
·
安装说明
·
截图展示
·
API keys
·
来源
## 概述
**SteamRecon** 是一款本地 Python CLI 应用程序,用于收集、规范化和审查与 Steam 资料相关的公开信息。
该程序接受多种 Steam 标识符格式,将其解析为 SteamID64,运行已启用的来源连接器并生成结构化的 HTML 报告。报告整合了资料数据、公开好友、游戏、徽章、成就、媒体、公开库存、别名、头像历史、竞技游戏资料、来源诊断信息以及本地存储快照之间的变化。
SteamRecon 使用三种类型的来源:
1. **官方 Steam 页面和 API**
2. **公开的第三方 API 和页面**
3. **仅用于人工验证的链接指引**
该程序不会尝试绕过私人资料、身份验证页面、CAPTCHA、速率限制或服务限制。
## SteamRecon 可以收集的内容
| 领域 | 可用数据 |
|---|---|
| 身份 | SteamID64, SteamID2, SteamID3, AccountID, 十六进制 Steam ID, 自定义 URL 和资料 URL |
| 资料 | 显示名称、真实姓名、国家/地区、资料摘要、等级、创建日期、在线状态和隐私状态 |
| 信誉 | VAC 封禁、游戏封禁、社区封禁、交易限制和外部信誉线索 |
| 好友 | 公开好友列表、头像、在线状态、当前游戏和共同好友对比 |
| 游戏 | 拥有的游戏、最近玩过的游戏、游戏时长、游戏图片、当前玩家数和游戏元数据 |
| 社区 | 群组、评论、评测、徽章、成就、展示柜和资料计数器 |
| 媒体 | 截图、艺术品、视频、创意工坊文件、指南和收藏 |
| 库存 | Steam 社区、CS2、TF2 和 Dota 2 的公开库存 |
| 历史 | 公开别名、已下载的头像、图像哈希值和本地资料快照 |
| 竞技资料 | FACEIT, OpenDota, logs.tf, demos.tf, ETF2L 和 backpack.tf |
| 诊断 | 来源状态、响应时间、HTTP 状态、重定向目标、解析的项目数和连接器错误 |
## 主要功能
- **交互式数字 CLI**
- 无需命令行参数
- 无需方向键导航
- 选择数字并按 Enter 键
- **多种 Steam 标识符格式**
- SteamID64
- SteamID2
- SteamID3
- AccountID
- Steam 十六进制 ID
- Steam 资料 URL
- Steam 自定义 URL
- 纯自定义名称
- **公开资料收集**
- Steam 资料信息
- 好友和群组
- 评论和资料活动
- 游戏和近期活动
- 徽章和成就
- 评测和社区媒体
- 公开库存
- **来源诊断**
- 真实的结果状态
- 每个请求的 HTTP 诊断
- 被阻止/私有/未找到检测
- 对于仅提供链接的服务不会伪造成功结果
- **本地调查历史**
- 历史报告
- 资料快照
- 头像存档
- 变化检测
- **独立 HTML 报告**
- 内嵌 CSS 和 JavaScript
- 内嵌项目 Logo
- 内嵌当前资料头像
- 搜索和筛选
- 可展开的集合
- 图片灯箱
- 深色和浅色主题
- 适合打印的布局
- **俄语和英语界面**
## 截图展示
### 主菜单
SteamRecon 直接在交互式菜单中启动。每个操作都有数字快捷方式,因此无需记忆参数或子命令即可使用该工具。
在主菜单中,您可以:
- 分析 Steam 资料;
- 运行来源诊断;
- 对比两个 Steam 资料;
- 通过 AppID 检查游戏;
- 重新打开之前的报告;
- 查看存储的资料快照;
- 配置 API keys 和收集限制;
- 启用或禁用各个来源。
CLI 标头仅包含 SteamRecon 的 ASCII 艺术字。特意省略了版本文本、营销口号和装饰性面板。
### 资料分析
在收集过程中,SteamRecon 会单独显示每个来源并报告其真实状态。
来源可能会返回有效数据、无公开记录、私有响应、缺失资料、缺失 API key、阻止页面或意外错误。一个连接器的失败不会停止其余的分析。
收集器还会记录:
- 请求持续时间;
- 重定向后的最终 URL;
- HTTP 响应代码;
- 内容类型;
- 已解析的记录数;
- 可选的请求失败情况;
- 分页停止原因;
- 配置的收集限制。
### HTML 报告 — 资料概览
报告以可视化的资料标头开始,而不是原始表格。
如果可用,SteamRecon 会显示:
- 当前的 Steam 头像;
- 资料背景;
- 头像边框;
- 显示名称;
- SteamID64;
- 自定义资料 URL;
- 账号等级;
- 在线状态;
- 国家/地区;
- 主要公开计数器;
- 直接进入资料和复制的按钮。
标头会根据资料实际暴露的信息进行调整。缺失的字段会被省略,而不是用编造的值填充。
### HTML 报告 — 活动和好友分析
活动部分总结了账号的公开足迹。
它可以包括:
- 资料奖项;
- 徽章数量;
- 公开库存数量;
- 声明和收集到的截图数量;
- 评测;
- 声明和解析到的好友数量;
- 好友状态;
- 好友当前正在玩的游戏;
- 检测到的资料展示柜;
- 收集到的媒体总数。
庞大的好友列表以可视化的卡片形式呈现,包含头像、资料链接、状态指示器和当前游戏信息。当 Steam 暴露公开好友数量时,SteamRecon 会根据该数量验证解析到的好友列表。
### HTML 报告 — 媒体和社区内容
公开媒体和社区数据将作为可视化的集合呈现,而不是 JSON 转储。
根据资料的可见性设置,报告可以显示:
- 徽章 artwork;
- 成就图标;
- 游戏封面图;
- 截图;
- artwork;
- 创意工坊内容;
- 评测图片;
- 群组头像;
- 评论作者头像;
- 历史资料头像。
图片集合支持筛选、逐步扩展和全屏预览。超大页面默认会被折叠,因此包含数百名好友、数千款游戏或大型媒体库的资料依然保持流畅可用。
## 工作原理
```
Steam identifier
│
▼
Local format detection
│
▼
SteamID64 normalization
│
├── Official Steam sources
├── Public APIs and pages
├── Local analysis
└── Manual external pivots
│
▼
Normalized profile model
│
├── HTML report
├── History record
├── Profile snapshot
└── Avatar archive
```
该程序不仅仅是简单组合页面文本。每个自动连接器都会返回规范化的字段、项目、结果状态和诊断数据。然后由报告渲染器决定如何显示这些记录。
## 支持的输入格式
SteamRecon 会自动接受并规范化以下值:
```
76561197960287930
STEAM_0:0:11101
[U:1:22202]
22202
steam:1100001000056ba
https://steamcommunity.com/profiles/76561197960287930
https://steamcommunity.com/id/customname
customname
```
| 输入 | 示例 |
|---|---|
| SteamID64 | `76561197960287930` |
| SteamID2 | `STEAM_0:0:11101` |
| SteamID3 | `[U:1:22202]` |
| AccountID | `22202` |
| 十六进制 Steam ID | `steam:1100001000056ba` |
| 资料 URL | `https://steamcommunity.com/profiles/...` |
| 自定义 URL | `https://steamcommunity.com/id/...` |
| 自定义名称 | `customname` |
## 来源模型
SteamRecon 目前包含 **37 个来源定义**:
| 来源类型 | 数量 | 行为 |
|---|---:|---|
| 自动来源 | 18 | 请求、解析、验证数据并将其添加到报告中 |
| 仅链接来源 | 19 | 创建直接的查询链接或准备好的数值以供人工审查 |
### 自动来源
| 来源 | 模式 | 数据 |
|---|---|---|
| Steam 社区 | 官方页面/XML | 核心资料、可见字段、群组和游戏 |
| Steam 别名历史 | 官方 endpoint | Steam 暴露的用户昵称 |
| Steam 资料活动 | 本地解析器 | 计数器、链接、展示柜和公开活动 |
| Steam 公开页面 | 官方 HTML | 好友、徽章、媒体、评测、创意工坊、指南和收藏 |
| Steam Web API | 官方 API | 摘要、封禁、等级、游戏、好友、徽章和成就 |
| Steam 公开库存 | 官方 endpoint | 公开的 Steam、CS2、TF2 和 Dota 2 库存摘要 |
| socid-extractor | 本地库 | 在下载的资料 HTML 中找到的标识符和链接 |
| OpenDota | 公开 API | Dota 2 资料、段位、胜负和近期比赛 |
| FACEIT Data API | 官方 API | FACEIT 身份、ELO、技能等级和游戏统计 |
| logs.tf | 公开 HTML | 玩家上传的竞技 TF2 日志 |
| demos.tf | 公开 API | 与账号关联的公开 TF2 demos |
| ETF2L | 公开 API | 竞技 TF2 资料和结果 |
| backpack.tf | 公开 API | 公开交易和信誉字段 |
| Steam 商店 | 官方 endpoint | 游戏元数据和图片 |
| Steam 评测 | 官方 endpoint | 公开评测总数和评分摘要 |
| Steam 当前玩家 | 官方 endpoint | 某 AppID 的当前玩家数 |
| Steam Charts | 公开 HTML | 历史玩家数信息 |
| SteamSpy | 公开 API | 拥有者估计值、标签、游戏时长和游戏统计 |
### 仅链接来源
显示所有手动查询来源
- SteamHistory
- SteamID.uk
- rep.tf
- SteamRep
- Faceit Finder
- CSStats.gg
- VacList
- Community Ban List
- STEAMID I/O
- SteamID64.net
- SteamID.xyz
- FindSteamID
- Steam Ladder
- completionist.me
- AStats
- Steam Hunters
- Dotabuff
- SteamID.Pro
- SteamAnalyst
## 来源结果状态
每个自动连接器都使用特定的结果状态。
| 状态 | 含义 |
|---|---|
| `ok` | 接收并解析了有效的公开数据 |
| `degraded` | 收集到了有用的数据,但一个或多个可选请求失败 |
| `empty` | 来源正确响应,但未返回匹配的记录 |
| `private` | 请求的信息被隐私设置隐藏 |
| `not_found` | 未找到匹配的账号或游戏资料 |
| `needs_key` | 连接器需要尚未配置的 API key |
| `blocked` | 自动化访问被拒绝、受限或遭到拦截 |
| `link_only` | 已准备好手动查询链接;未获取任何数据 |
| `skipped` | 来源已被禁用或其依赖项不可用 |
| `error` | 发生意外的网络、解析或数据格式错误 |
这种区分非常重要。`403` 错误、CAPTCHA 页面、空白资料或准备好的 URL 绝不能被报告为成功的收集结果。
## API keys
SteamRecon 在进行核心的 Steam 社区收集时无需 API keys。API keys 可以解锁额外的官方或结构化数据。
### API 支持矩阵
| API | 是否必需? | 启用的功能 | 配置位置 |
|---|---:|---|---|
| Steam Web API | 可选 | 官方摘要、封禁、等级、游戏、近期游戏、好友、徽章和成就 | 设置 → Steam Web API key |
| FACEIT Data API | 可选 | FACEIT 玩家查询、游戏身份、ELO、等级和统计 | 设置 → FACEIT Data API key |
| backpack.tf API | 可选 | 公开的 TF2 交易和信誉增强信息 | 设置 → backpack.tf API key |
| OpenDota | 当前连接器中不需要 key | 公开的 Dota 2 资料和近期比赛数据 | 启用的来源 |
| Steam Store / Reviews / current players | 无需用户 key | 公开的游戏信息 | 启用的来源 |
| SteamSpy | 无需 key | 公开的游戏估算值和标签 | 启用的来源 |
### Steam Web API key
在 Steam 上创建 key:
```
https://steamcommunity.com/dev/apikey
```
该 key 会启用官方 Steam Web API 连接器。
由于资料隐私设置,Steam 可能仍会保留信息。例如,当用户将好友列表设为私有时,官方好友列表 endpoint 可能会返回 `401 Unauthorized`。
### FACEIT Data API key
创建 FACEIT 开发者应用和 API key:
```
https://developers.faceit.com/
```
连接器使用必需的 bearer authorization header 发送该 key。
### backpack.tf API key
请求或管理 backpack.tf API key:
```
https://backpack.tf/developer/apikey/view
```
请遵守 backpack.tf API 的限制和条款。SteamRecon 不会绕过 API 限制或速率限制进行抓取。
### keys 的存储位置
通过 SteamRecon 设置菜单输入的 keys 将在本地保存:
**Windows**
```
%USERPROFILE%\.steamrecon\settings.json
```
**Linux 和 macOS**
```
~/.steamrecon/settings.json
```
默认的 `.gitignore` 会排除本地运行时数据,但用户配置存储在代码库之外,作为一项额外保护措施。
## 安装说明
### 前置条件
- Python **3.10 或更高版本**
- 用于实时收集的网络连接
- 支持 UTF-8 的终端
- Git,或下载的 ZIP 压缩包
Python 依赖项:
| 包 | 用途 |
|---|---|
| `requests` | HTTP 请求和 API 调用 |
| `beautifulsoup4` | 公开 HTML 解析 |
| `Pillow` | 头像处理和图像哈希 |
| `rich` | 终端渲染 |
| `socid-extractor` | 本地标识符和链接提取 |
### 选项 1 — 使用 Git 克隆
```
git clone https://github.com/zakhar-git/SteamRecon.git
cd SteamRecon
```
### 选项 2 — 下载 ZIP
1. 打开代码库。
2. 按下 **Code**。
3. 选择 **Download ZIP**。
4. 解压缩包。
5. 在解压后的 `SteamRecon` 目录中打开终端。
### Windows
```
python -m venv .venv
.venv\Scripts\activate
python -m pip install --upgrade pip
pip install -r requirements.txt
python main.py
```
### Linux 和 macOS
```
python3 -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip
pip install -r requirements.txt
python main.py
```
## 用法
在项目目录下运行 SteamRecon:
```
python main.py
```
无需任何 CLI 参数。
### 主菜单
```
1. Analyze Steam profile
2. Source diagnostics
3. Compare two profiles
4. Analyze game by AppID
5. History
6. Profile snapshots
7. Settings
8. Sources
9. About
0. Exit
```
### 资料分析
1. 选择 **Analyze Steam profile**。
2. 输入受支持的 Steam 标识符。
3. 等待已启用的来源完成。
4. 打开生成的 HTML 报告。
5. 在使用收集的数据之前,请先查看来源状态。
### 来源诊断
诊断功能会测试已启用的来源连接器,并创建一个单独的 HTML 报告,其中包含:
- 来源模式;
- 结果状态;
- HTTP 代码;
- 响应时间;
- 最终 URL;
- 内容类型;
- 解析的项目数;
- 分页详情;
- 失败原因;
- 是否缺少 API key;
- 仅链接来源的手动可达性检查。
在安装 SteamRecon、更改 API keys 或发现第三方服务发生更改后,请使用诊断功能。
### 资料对比
对比工作流会解析两个资料,并可显示:
- 规范化的标识符;
- 基础资料差异;
- 公开的共同好友;
- 来源可用性;
- 直接的资料链接。
### 游戏分析
输入 Steam AppID 以收集:
- Steam 商店元数据;
- artwork 和游戏描述;
- 评测摘要;
- 当前玩家数;
- Steam Charts 数据;
- SteamSpy 估算值和标签。
## HTML 报告
报告将写入:
```
output/
```
资料报告的文件名类似于:
```
profile_76561198000000000_20260714_021500.html
```
该报告是独立的。其布局、脚本、当前头像和自定义项目 Logo 均被嵌入到 HTML 文件中。
### 报告部分
根据可用的公开数据,报告可能包含:
- 资料概览;
- Steam 标识符;
- 账号状态和封禁;
- 资料摘要;
- 公开活动计数器;
- 好友和当前游戏;
- 群组;
- 游戏和游戏时长;
- 带 artwork 的徽章;
- 带图标的成就;
- 截图和 artwork;
- 视频;
- 创意工坊文件;
- 指南和收藏;
- 评测;
- 评论;
- 公开库存;
- 别名;
- 头像历史和哈希值;
- Dota 2、FACEIT 和 TF2 资料;
- 外部手动查询来源;
- 本地快照变化;
- 来源诊断和错误;
- 版权归属和负责任使用声明。
### 可视化行为
大型集合默认处于折叠状态。用户可以:
- 在整个报告中进行搜索;
- 筛选各个部分;
- 展开更多卡片;
- 折叠冗长的集合;
- 打开公开资料和来源页面;
- 复制标识符;
- 在深色和浅色主题之间切换;
- 在全屏查看器中打开图片;
- 浏览图片预览;
- 打印或将报告保存为 PDF。
原始的来源 JSON 不会被用作主要报告界面。
## 自定义报告 Logo
SteamRecon 可以将您自己的项目 Logo 嵌入到生成的每份 HTML 报告中。
创建或使用此目录:
```
output/logo/
```
使用以下首选文件名之一将一张图片放入其中:
```
output/logo/logo.png
output/logo/logo.jpg
output/logo/logo.jpeg
output/logo/logo.webp
```
支持的格式:
- PNG
- JPG
- JPEG
- WEBP
所选图片将被转换为 data URI 并嵌入到报告中。即使 HTML 文件被移动到另一个文件夹或计算机,它仍将继续显示该 Logo。
如果未找到 Logo,SteamRecon 将显示项目名称而不显示占位符头像。
## 本地文件
SteamRecon 将运行时数据存储在代码库之外。
### Windows
```
%USERPROFILE%\.steamrecon\
├── settings.json
├── history.json
├── cache\
└── profiles\
└──
\
├── avatars\
└── snapshots\
```
### Linux 和 macOS
```
~/.steamrecon/
├── settings.json
├── history.json
├── cache/
└── profiles/
└── /
├── avatars/
└── snapshots/
```
### 设置
`settings.json` 包含:
- 界面语言;
- 主题色;
- 请求超时;
- API keys;
- 启用的来源;
- 收集限制;
- 历史记录设置;
- 快照设置;
- 头像下载偏好。
### 历史记录
`history.json` 存储对近期资料、诊断和游戏报告的引用。
### 快照
每个已启用的资料快照都会在本地保存,并与之前的快照进行对比。
SteamRecon 可以识别以下方面的变化:
- 显示名称;
- 真实姓名;
- 资料 URL;
- 自定义 URL;
- 头像;
- 国家/地区;
- 隐私状态;
- Steam 等级;
- 封禁字段;
- 公开游戏和数量。
### 头像存档
下载的头像存储在以下位置:
```
~/.steamrecon/profiles//avatars/
```
SteamRecon 可以计算:
- SHA-256;
- MD5;
- dHash;
- pHash;
- 宽度;
- 高度;
- 图像格式;
- 首次发现时间。
## 环境变量
| 变量 | 用途 |
|---|---|
| `STEAMRECON_HOME` | 更改设置、历史记录、缓存和快照目录 |
| `STEAMRECON_OUTPUT` | 更改报告输出目录 |
| `STEAMRECON_NO_CLEAR` | 阻止终端清屏 |
### Windows 示例
```
$env:STEAMRECON_HOME = "D:\SteamReconData"
$env:STEAMRECON_OUTPUT = "D:\SteamReconReports"
python main.py
```
### Linux 和 macOS 示例
```
export STEAMRECON_HOME="$HOME/.local/share/steamrecon"
export STEAMRECON_OUTPUT="$HOME/Documents/SteamReconReports"
python main.py
```
## 收集限制
庞大的 Steam 账号可能包含数以千计的游戏、好友、徽章和媒体项目。SteamRecon 在“设置”菜单中提供了限制功能,以防止意外导致收集过程耗时过长。
| 设置 | 用途 |
|---|---|
| 游戏信息丰富限制 | 使用游戏数据来源进行信息丰富的最大游戏数量 |
| 成就游戏限制 | 查询成就的最大游戏数量 |
| 库存限制 | 每个库存处理的最大库存项目数 |
| 公开页面限制 | 收集的公开好友、徽章或媒体记录的最大数量 |
| 请求超时 | HTTP 请求的最大等待时间 |
在处理非常大的公开资料时,请逐步增加限制。
## 隐私行为
SteamRecon 尊重每个来源的可见性规则。
- 不绕过私密资料字段。
- 不通过未经授权的访问重建隐藏的好友列表。
- 不访问私密库存。
- 不绕过登录页面和 CAPTCHA。
- 不规避 API 限制。
- 不将仅提供链接的服务呈现为自动收集的结果。
- API keys 保留在本地,并从报告中排除。
查询生成和报告渲染均在本地进行。公开值仅发送给收集所需的已启用外部来源。
## 项目结构
```
SteamRecon/
├── docs/
│ ├── REFERENCES.md
│ ├── SOURCES.md
│ └── SOURCE_AUDIT.md
├── output/
│ ├── .gitkeep
│ └── logo/
│ ├── .gitkeep
│ └── README.txt
├── photo/
│ ├── menu.png
│ ├── search.png
│ ├── html_report.png
│ ├── html_report2.png
│ └── html_report3.png
├── steamrecon/
│ ├── data/
│ │ ├── report_template.html
│ │ └── sources.json
│ ├── sources/
│ │ ├── base.py
│ │ ├── game_data.py
│ │ ├── game_profiles.py
│ │ ├── socid.py
│ │ ├── steam_activity.py
│ │ ├── steam_aliases.py
│ │ ├── steam_api.py
│ │ ├── steam_community.py
│ │ ├── steam_inventory.py
│ │ └── steam_public_pages.py
│ ├── analyzer.py
│ ├── app.py
│ ├── avatar.py
│ ├── browser.py
│ ├── catalog.py
│ ├── config.py
│ ├── history.py
│ ├── http.py
│ ├── i18n.py
│ ├── menu.py
│ ├── models.py
│ ├── paths.py
│ ├── report.py
│ ├── snapshot.py
│ ├── steamid.py
│ └── ui.py
├── tests/
├── .gitignore
├── CHANGELOG.md
├── CONTRIBUTING.md
├── LICENSE
├── README.md
├── README_RU.md
├── main.py
├── requirements-dev.txt
├── requirements.txt
└── pytest.ini
```
## 测试
安装开发依赖项:
```
pip install -r requirements-dev.txt
```
运行所有测试:
```
python -m pytest
```
测试套件涵盖:
- Steam ID 转换;
- 数字菜单解析;
- Steam 社区资料解析;
- 别名;
- 公开活动;
- 公开库存;
- OpenDota 规范化;
- 游戏数据来源;
- 来源目录验证;
- 来源状态分类;
- 公开好友;
- 公开页面分页;
- 资料快照;
- 共同好友对比;
- 报告渲染;
- 诊断报告;
- 大型资料测试夹具;
- 自定义报告 Logo;
- 可视化报告功能。
## 故障排除
### Steam Web API 显示 `needs_key`
在以下位置添加 Steam Web API key:
```
Settings → Steam Web API key
```
### 好友列表缺失
可能的原因:
- 资料好友列表是私密的;
- Steam 返回了临时错误;
- 公开好友页面发生了变化;
- 公开页面来源被禁用;
- 收集在配置的限制处停止。
运行 **Source diagnostics** 并检查 `steam_public_pages` 和 `steam_api` 的结果。
### FACEIT 显示 `needs_key`
在设置中添加 FACEIT Data API key。即使没有 key,Faceit Finder 仍可作为手动查询来源使用。
### 来源显示 `blocked`
服务可能返回了:
- HTTP 403;
- HTTP 429;
- CAPTCHA;
- Cloudflare 拦截;
- 区域限制;
- 身份验证页面。
SteamRecon 将此报告为 `blocked` 并继续执行其他来源。
### 报告未显示自定义 Logo
检查文件是否位于:
```
output/logo/
```
使用以下名称之一:
```
logo.png
logo.jpg
logo.jpeg
logo.webp
```
添加文件后生成新报告。
### 浏览器标签页过多
外部链接仅在用户选择后打开。请选择较少的来源或直接从 HTML 报告中打开链接。
## 局限性
- Steam 和第三方页面结构可能在不另行通知的情况下发生变化。
- 不同资料的公开可见性有所不同。
- 即使某服务的公开页面可以在浏览器中打开,该服务也可能会阻止自动请求。
- API 速率限制和 key 权限由服务提供商控制。
- SteamRecon 无法保证第三方记录是最新的或正确的。
- 非常庞大的资料需要增加收集限制并耗费更多处理时间。
- 历史数据从公开来源获取可用时,或 SteamRecon 创建其第一个本地快照时开始。
- 缺失结果并不能证明不存在相关的账号或记录。
## 负责任的使用
仅在涉及公开信息的合法调查中使用 SteamRecon。
请勿使用该工具:
- 骚扰用户;
- 绕过隐私设置;
- 未经授权访问账号;
- 规避服务限制;
- 发布未经证实的指控;
- 在没有正当理由的情况下暴露个人信息。
请手动审查每个结果,并在最终调查记录中保留来源背景。
## 贡献
欢迎在以下方面做出贡献:
- 修复失效的来源;
- 新的公开且有文档记录的 API;
- 改进的解析器;
- 额外的测试;
- 报告设计改进;
- 俄语和英语翻译;
- 文档更正。
在提交 Pull Request 之前:
1. 确认来源是可公开访问的。
2. 不要绕过身份验证、CAPTCHA 或速率限制。
3. 添加真实的连接器状态。
4. 包含诊断数据。
5. 为解析器添加测试。
6. 运行 `python -m pytest`。
7. 更新 `docs/SOURCES.md` 和 `docs/SOURCE_AUDIT.md`。
有关代码库指南,请参阅 [CONTRIBUTING.md](CONTRIBUTING.md)。
## 版权归属
SteamRecon 使用来自 Steam 和独立第三方服务的公开信息。
Steam、Steam Logo 及相关标志归 Valve Corporation 所有。FACEIT、OpenDota、backpack.tf 及其他服务名称归其各自所有者拥有。
SteamRecon 不隶属于 Valve Corporation 或第三方来源的运营方。
每份生成的报告都包含来源归属,并提醒结果需要人工验证。
## 许可证
SteamRecon 采用 [MIT 许可证](LICENSE) 发布。