index.js 1.56 KB
/**
 * 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'),
};