Files
wechat-cli/wechat_cli/main.py

74 lines
2.3 KiB
Python

"""wechat-cli 入口"""
import sys
import click
from .core.context import AppContext
_VERSION = "0.2.4"
@click.group()
@click.version_option(version=_VERSION, prog_name="wechat-cli")
@click.option("--config", "config_path", default=None, envvar="WECHAT_CLI_CONFIG",
help="config.json 路径(默认自动查找)")
@click.pass_context
def cli(ctx, config_path):
"""WeChat CLI — 查询微信消息、联系人等数据
\b
使用示例:
wechat-cli init # 首次使用:提取密钥
wechat-cli sessions # 最近会话列表
wechat-cli sessions --limit 10 # 最近 10 个会话
wechat-cli history "张三" --limit 20 # 查看张三的最近 20 条消息
wechat-cli history "AI交流群" --start-time "2026-04-01" # 指定时间范围
wechat-cli search "Claude" --chat "AI交流群" # 在指定群里搜索关键词
wechat-cli search "你好" --limit 50 # 全局搜索
wechat-cli contacts --query "" # 搜索联系人
wechat-cli new-messages # 获取增量新消息
"""
# init/version 命令不需要 AppContext
if ctx.invoked_subcommand in ("init", "version"):
return
try:
ctx.obj = AppContext(config_path)
except FileNotFoundError as e:
click.echo(str(e), err=True)
sys.exit(1)
except Exception as e:
click.echo(f"初始化失败: {e}", err=True)
sys.exit(1)
# 注册子命令
from .commands.init import init
from .commands.sessions import sessions
from .commands.history import history
from .commands.search import search
from .commands.contacts import contacts
from .commands.new_messages import new_messages
from .commands.members import members
from .commands.export import export
from .commands.stats import stats
from .commands.unread import unread
from .commands.favorites import favorites
cli.add_command(init)
cli.add_command(sessions)
cli.add_command(history)
cli.add_command(search)
cli.add_command(contacts)
cli.add_command(new_messages)
cli.add_command(members)
cli.add_command(export)
cli.add_command(stats)
cli.add_command(unread)
cli.add_command(favorites)
if __name__ == "__main__":
cli()