index.js
1.56 KB
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
/**
* wechat/index.js — 统一入口,自动检测环境(Mac adb vs Android su)
*/
const os = require('os');
function isAndroid() {
// 检测是否在 Android/Termux 环境
if (process.platform === 'android') return true;
if (process.env.TERMUX_VERSION) return true;
if (process.env.PREFIX && process.env.PREFIX.includes('termux')) return true;
// Debian chroot 在 Android 上通常也能检测到特定路径
try {
const fs = require('fs');
if (fs.existsSync('/system/build.prop')) return true;
if (fs.existsSync('/data/adb')) return true;
} catch {}
return false;
}
const onAndroid = isAndroid();
let sender, tracker;
if (onAndroid) {
sender = require('./android-wechat-sender');
tracker = require('./android-wechat-tracker');
} else {
sender = require('./wechat-sender');
tracker = require('./wechat-tracker');
}
module.exports = {
// 环境信息
platform: onAndroid ? 'android' : 'mac',
isAndroid: onAndroid,
// 发送
sendTextMessage: sender.sendTextMessage,
sendTextMessageBroadcast: sender.sendTextMessageBroadcast,
queryStatus: sender.queryStatus,
sendBatch: sender.sendBatch,
// 跟踪(兼容命名:Android 端 WechatTracker 也指向 AndroidWechatTracker)
WechatTracker: tracker.WechatTracker || tracker.AndroidWechatTracker,
AndroidWechatTracker: tracker.AndroidWechatTracker || tracker.WechatTracker,
// 读取(已有,仅 Mac 端可用,手机端通过 decrypted DB 访问)
reader: onAndroid ? null : require('./wechat-reader'),
importer: onAndroid ? null : require('./wechat-importer'),
};