# karin-plugin-timechange

一个用于Karin机器人的智能头像切换插件，可以根据时间自动在白天和晚上切换不同的头像。

## 功能特性

- 🌅 **智能时间识别**：自动识别当前是白天还是晚上
- 🔄 **自动切换头像**：定时任务每小时检查并自动切换头像
- 🎭 **手动控制**：支持手动切换到指定时段的头像
- ⚙️ **灵活配置**：可自定义白天/晚上的时间段
- 📁 **头像管理**：支持通过图片或文件路径设置头像
- 🌐 **网页配置**：提供可视化的网页配置界面
- 🛡️ **权限控制**：所有操作仅限机器人主人使用

## 安装方法

在Karin根目录执行：

```bash
# 使用pnpm（推荐）
pnpm add karin-plugin-timechange -w

# 或使用npm
npm install karin-plugin-timechange --workspace
```

安装完成后重启Karin机器人即可。

## 快速开始

### 方式一：直接上传图片（推荐）
```
#上传头像 白天    # 然后发送白天要用的图片
#上传头像 晚上    # 然后发送晚上要用的图片
#开启自动切换    # 启用定时自动切换功能
```

### 方式二：网页配置
1. 访问Karin网页控制台
2. 找到"头像自动切换插件"配置页面
3. 设置头像文件路径或上传图片
4. 开启自动切换并保存

### 方式三：文件路径设置
```
#设置白天头像    # 然后发送图片文件路径
#设置晚上头像    # 然后发送图片文件路径
#开启自动切换    # 启用定时自动切换功能
```

## 主要命令

### 基础控制
- `#头像帮助` - 显示帮助信息
- `#头像状态` - 查看当前配置状态
- `#切换白天头像` - 手动切换到白天头像
- `#切换晚上头像` - 手动切换到晚上头像
- `#自动切换头像` - 根据当前时间自动切换
- `#开启自动切换` - 开启定时自动切换
- `#关闭自动切换` - 关闭定时自动切换
- `#设置时间段 6 18` - 设置时间段

### 头像管理
- `#上传头像 白天/晚上` - 上传头像（推荐）
- `#头像预览 白天/晚上` - 预览头像
- `#头像信息` - 查看头像文件信息
- `#删除头像 白天/晚上` - 删除头像文件

## 配置说明

- **默认时间段**：白天 6:00-18:00，晚上 18:00-6:00
- **支持格式**：jpg、png、gif、bmp、webp
- **文件大小**：建议不超过5MB
- **配置文件**：`@karinjs/karin-plugin-timechange/config/avatar-config.json`

## 工作原理

1. **时间判断**：根据当前小时数和配置的时间段判断是白天还是晚上
2. **定时检查**：每小时执行一次检查，如果当前时段与上次切换的时段不同则进行切换
3. **头像切换**：读取对应时段的头像文件，转换为base64格式后调用Bot API进行切换
4. **状态记录**：记录每次切换的时间和类型，避免重复切换

## 注意事项

- 所有命令仅限机器人主人使用
- 头像文件支持常见图片格式
- 建议头像文件大小不超过5MB
- 首次使用需要先设置头像文件路径
- 自动切换功能需要手动开启

## 技术特点

- 基于 Karin 插件开发规范
- 使用 TypeScript 开发
- 支持热重载和开发模式
- 完整的网页配置界面
- 模块化设计，易于维护

## 开源协议

MIT License

## 作者

[Eos-Hira](https://github.com/Eos-Hira)

## 仓库地址

[https://github.com/Eos-Hira/karin-plugin-timechange](https://github.com/Eos-Hira/karin-plugin-timechange)

## 问题反馈

如果遇到问题，请在 [Issues](https://github.com/Eos-Hira/karin-plugin-timechange/issues) 中反馈。
