#signal #command-line #messages #counter #command-line-tool #utility #desktop-applications

app signalmessagecounter

Rust 编写的用于统计 Signal 消息的命令行工具

1 个不稳定版本

0.1.0 2024年7月1日

#713命令行工具

BSD-2-Clause

9KB
80

Signal 消息计数器

Signal 消息计数器是一个用于分析和可视化存储在 SQLite 数据库中的 Signal 桌面应用程序消息的工具。

入门

1. 获取 SQLite 数据库

根据您的操作系统,定位 Signal SQLite 数据库

  • Linux: ~/.config/Signal/sql/db.sqlite
  • Mac: ~/Library/Application Support/Signal/sql/db.sqlite
  • Windows: C:\Users\<YourName>\AppData\Roaming\Signal\sql\db.sqlite(确切路径可能不同)

2. 解密并将 SQLite 数据库转换为 CSV 格式

Signal SQLite 数据库使用 SQLCipher 进行加密。您需要按照以下步骤解密它并将其转换为 CSV 格式

先决条件

请确保已安装以下软件

  • sqlcipher:最新版本(例如,3.31.0 或更高版本),用于解密加密的 SQLite 数据库。

解密脚本

下载解密脚本 sqlite-to-csv.sh 并按照以下步骤操作

  1. 将脚本保存在您选择的目录中。
  2. 使其可执行:chmod +x sqlite-to-csv.sh
  3. 执行脚本:bash sqlite-to-csv.sh

此脚本使用从 config.json 获得的加密密钥解密 Signal SQLite 数据库,提取 JSON 格式的消息数据,并将其写入 backup-desktop.csv

要在 Windows 上使用此脚本,请使用 WSL 或将文件传输到 Linux 机器。

分析消息

一旦您有了 backup-desktop.csv,您可以使用此工具解析和分析 CSV 文件以提取有关消息计数、时间戳和消息类型(传入/传出)的见解。为此,您需要获取您的对话 ID,这可以通过获取所选聊天中最新的消息来完成,在 CSV 文件中进行 CTRL-F 搜索,并在同一行中找到对话 ID。它看起来像 d37673ee-9d18-4294-be46-30e755a1406

用法:signalmessagecounter<文件路径> <会话ID>

许可证

该项目采用BSD 2-Clause许可证,详细信息请参阅许可证文件

依赖项

约2.6-3.5MB
约59K SLoC