-
Notifications
You must be signed in to change notification settings - Fork 0
/
架构.txt
30 lines (23 loc) · 1.88 KB
/
架构.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
base/Const.py 存储项目相关内容(版本号等)
base/Logger.py 使用logging处理日志,保存于output/logs
base/FileManager.py 处理生成的文件应存放在哪里
base/AppConfig.py 加载 config.toml,设置与整个应用相关的配置
base/AssetsManager 处理 assets/{binary,copyright,image} 中的资源获取、运行,必要时下载资源
base/I18n 多语言支持,从assets/i18n获取
base/ConfigManager 用于在运行时记录当前配置
base/ProcessManager 用于隔离单次运行
chat/chatter/{Chatter,Group,Friend} 用于区分聊天对象是私聊还是群聊
chat/message/{Message,Text} 抽象出消息类型
features/FeatureManager 记录所有feature,并暴露所需的传入参数以供ConfigManager查询
features/Dumper/DB/QQ/Android/MIUIbackup.py 用于为特定平台获取相关内容,可以是静态读文件,也可以是用adb+Frida等自动提取;设置is_decrypted等参数于ProcessManager以在后面按需选择适当步骤
features/Dumper/key/QQ/Android
features/Dumper/assets/QQ/Android
打算实现的平台: https://koishi.chat/zh-CN/manual/usage/adapter.html#%E6%8E%A5%E5%85%A5%E7%9C%9F%E5%AE%9E%E8%81%8A%E5%A4%A9%E5%B9%B3%E5%8F%B0
以上部分输出到output/stage中
features/Converter:解密数据库;将silk转为MP3音频,可选ffmpeg/pyav等;将图片等资源重命名、复制到相关位置;解析为Chatter与Message对象,随后转换为plaintext SQLite/Shmily/none/HTML/PDF/WechatMsg/Excel,或者是词云等没啥用的东西
以上部分输出到output/result/{format or analyzer}中
这些feature是可以连续组合的,也就是说可以有多个Exporter,并且需要一些处理使得只在最后一个exporter时统一导出,前面都只执行add_exporter
tests/{xxx,example/}
顶层:GUI / CLI / Code / WebUI(Flask+API docs) 四个入口
前端:Vue
可能用Go+WASM也重写一份 并且取个名字