# dailyreporthelper

> Automatically submit daily homework to Wechat Chatroom, built based on Wechaty.

Latest version **1.0.3** (published 2022-08-16) · MIT license · 0 weekly downloads

## Install

```sh
npm install dailyreporthelper
pnpm add dailyreporthelper
yarn add dailyreporthelper
bun add dailyreporthelper
```

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.0.3 |
| Published | 2022-08-16 |
| First published | 2022-08-15 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 5 |
| Unpacked size | 13.9 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 1 |
| Author | RisingInIris2017 |
| Maintainers | risinginiris2017 |
| Keywords | Wechat, Bot, Wechaty, Helper |

## Links

- npm: https://www.npmjs.com/package/dailyreporthelper
- Repository: https://github.com/RisingInIris2017/DailyReportHelper-Wechaty
- Homepage: https://github.com/RisingInIris2017/DailyReportHelper-Wechaty#readme
- Issues: https://github.com/RisingInIris2017/DailyReportHelper-Wechaty/issues
- npm.io page: https://npm.io/package/dailyreporthelper

## Dependencies (5)

- [dayjs](https://npm.io/package/dayjs.md) ^1.11.5
- [ts-node](https://npm.io/package/ts-node.md) ^10.9.1
- [wechaty](https://npm.io/package/wechaty.md) ^1.20.2
- [qrcode-terminal](https://npm.io/package/qrcode-terminal.md) ^0.12.0
- [wechaty-puppet-wechat](https://npm.io/package/wechaty-puppet-wechat.md) ^1.18.4

## Alternatives

- [lodash.assign](https://npm.io/package/lodash.assign.md) — 2.3M weekly downloads
- [lodash.chunk](https://npm.io/package/lodash.chunk.md) — 1.8M weekly downloads
- [react-native-ios-utilities](https://npm.io/package/react-native-ios-utilities.md) — 138.5K weekly downloads
- [@technically/lodash](https://npm.io/package/@technically/lodash.md) — 50.9K weekly downloads
- [@fluid-topics/ft-icon](https://npm.io/package/@fluid-topics/ft-icon.md) — 20.6K weekly downloads

## Recent versions

- 1.0.3 (latest) — 2022-08-16
- 1.0.2 — 2022-08-16
- 1.0.1 — 2022-08-16
- 1.0.0 — 2022-08-15

## README

# DailyReportHelper-Wechaty

[![Powered by Wechaty](https://img.shields.io/badge/Powered%20By-Wechaty-brightgreen.svg)](https://wechaty.js.org)

将原本基于 ItChat 框架的 [DailyReportHelper](https://github.com/RisingInIris2017/DailyReportHelper) 项目，利用 TypeScript-Wechaty 框架重构。

用于“自动”向特定的微信群发送文件，更小、更美的微信机器人。

- [DailyReportHelper-Wechaty](#dailyreporthelper-wechaty)
  - [安装和配置](#安装和配置)
  - [配置文件说明](#配置文件说明)
    - [消息控制群](#消息控制群)
    - [目标微信群](#目标微信群)
    - [存放每日汇报的文件夹的绝对路径](#存放每日汇报的文件夹的绝对路径)
    - [`TODAY_COMMAND` 和 `YESTERDAY_COMMAND`](#today_command-和-yesterday_command)
      - [日期的格式](#日期的格式)
    - [示例配置文件](#示例配置文件)
  - [小助手的功能](#小助手的功能)
    - [主动提交](#主动提交)
    - [自动响应提交](#自动响应提交)
    - [补交昨天的作业](#补交昨天的作业)

## 安装和配置

1. [安装 Node.js](https://www.runoob.com/nodejs/nodejs-install-setup.html)。
2. 新建一个文件夹作为小助手的安装目录。
3. 在文件夹内空白处，按住 Shift 点击右键，选择“在此处打开 Powershell 窗口”。
4. 在窗口内执行命令
   
   ```cmd
   npm install dailyreporthelper
   ```

   安装小助手本体。

   安装完成后你可以在 `这个文件夹\node_modules\dailyreporthelper`
   
   找到小助手的本体文件 `DailyReportHelper-Wechaty.ts`。
5. 等待安装完成后，在窗口内再执行命令
   
   ```cmd
   npm install -g ts-node
   ```

    安装小助手运行工具。
6. 完成安装后，有两种方式启动小助手：
   - 随便启动一个命令提示符（CMD）窗口，输入
      ```cmd
      ts-node "小助手本体 DailyReportHelper-Wechaty.ts 文件的绝对路径"
      ```
   - 在 `安装文件夹\node_modules\dailyreporthelper` 文件夹空白处打开 Powershell 窗口，输入
      ```cmd
      ts-node ".\DailyReportHelper-Wechaty.ts"
      ```
   
   无论选择哪一种启动方式，请注意命令提示符每行命令前面所写的文件路径，这个路径就是小助手的 **“工作路径”**，
   
   它会在这个路径下放置默认的配置文件，你需要按照 [配置文件说明](#配置文件说明) 修改完成才能使用小助手。
   
7. 重新启动就会跳出扫码提示。此时可以直接扫屏幕上显示的二维码，
   
   如果扫不了就点击二维码下方的链接，这两个二维码是相同的，都是网页端微信的登录二维码。
8.  扫码确认后，看到命令提示符显示“`你的ID` logged in”，小助手就开始工作了。

如果之前有成功登录过，小助手会默认登录之前登录过的账号，这时候会直接 logged in，而不必再扫码。

## 配置文件说明

小助手每次启动时，会在 **工作路径** 下寻找配置文件，如果没有就会生成默认配置文件，如下所示：

```json
{
"INFO_GROUP_NAME": "在这里填写消息控制群的名字",
"TARGET_CHATROOM_NAME": "在这里填写目标微信群的名字",
"DAILYREPORT_FOLDER": "填写存放每日汇报的文件夹的绝对路径",
"TODAY_COMMAND": [],
"YESTERDAY_COMMAND": []
}
```

在修改前三行时，只要把引号内的中文，按照其说明替换成指定的内容即可。

### 消息控制群

微信是不能正常给自己发消息的。有些机器人可以使用“文件传输助手”来控制，如果 Wechaty 支持，今后也会实现用文件传输助手控制机器人的方案。

目前版本，如果你的微信账号可以给自己发私聊消息，那么你可以用微信给自己发控制命令，但是看不到命令的执行结果提示；

如果你想要看到命令的执行结果提示，或者你的账号根本不能给自己发私聊消息，那么你需要一个消息控制群。

找一个你可以随便发消息的微信群作为“消息控制群”，比如 [新建一个只有你自己的微信群](https://www.foxitsoftware.cn/company/ask/1176.html)。

当你需要向机器人发送命令的时候，就往这个群里发送；机器人也会在这个群里反馈命令的执行结果。

### 目标微信群

你要把文件发进去的那个群。

### 存放每日汇报的文件夹的绝对路径

如字面所示。但注意路径中所有的反斜杠都要替换成两条反斜杠 `\\`。

### `TODAY_COMMAND` 和 `YESTERDAY_COMMAND`

这两个配置项默认情况下都是一对方括号。你可以在里面写上命令。

每条命令都需要用英文双引号包裹：`"一条命令"`，可以有多条命令，

每两条命令之间，需要用一个英文逗号隔开。如果你喜欢，可以在逗号后面换行。

#### 日期的格式

日期的格式是 4 位年份 2 位月份 2 位日期的连续数字形式，

不足一位的月份和日期要加 0，例如“19190504”或“19491001”。

### 示例配置文件

```json
{
"INFO_GROUP_NAME": "只有我的群",
"TARGET_CHATROOM_NAME": "相亲相爱教研室",
"DAILYREPORT_FOLDER": "E:\\我的作业",
"TODAY_COMMAND": ["交作业", "交日报", "交汇报", "交每日作业", "交每日日报", "交每日汇报",
"发作业", "发日报", "发汇报", "发每日作业", "发每日日报", "发每日汇报"],
"YESTERDAY_COMMAND": ["补交作业", "补交日报", "补交汇报", "补交每日作业", "补交每日日报", "补交每日汇报",
"补发作业", "补发日报", "补发汇报", "补发每日作业", "补发每日日报", "补发每日汇报"]
}
```

## 小助手的功能

### 主动提交

当你在与自己的私聊或者消息控制群中，发送 `TODAY_COMMAND` 中的命令时，

小助手会首先检查你今天已经交过作业没有，如果已经交了，小助手就会在消息控制群中告诉你你作业已经交了。

如果还没交过，小助手会从存放每日汇报的文件夹找名叫 `今天的日期-每日汇报.pdf` 的文件，发到目标微信群中。

如果没有找到，就会在消息控制群中提醒你作业没写。

### 自动响应提交

如果目标微信群中有人发送了带附件的消息，那么很有可能是有人在交作业了。

小助手会首先检查你今天已经交过作业没有，如果已经交了，小助手就会在消息控制群中告诉你你作业已经交了。

如果还没交过，小助手会从存放每日汇报的文件夹找名叫 `今天的日期-每日汇报.pdf` 的文件，发到目标微信群中。

如果没有找到，就会在消息控制群中提醒你作业没写。

### 补交昨天的作业

当你在与自己的私聊或者消息控制群中，发送 `YESTERDAY_COMMAND` 中的命令时，

小助手会从存放每日汇报的文件夹找名叫 `昨天的日期-每日汇报.pdf` 的文件，发到目标微信群中。

如果没有找到，就会在消息控制群中提醒你昨天的作业没写。

---
_Source: https://npm.io/package/dailyreporthelper · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
