# Telegram群组/频道管理机器人

{% hint style="danger" %}

### 群管理机器人介绍

* 群管理机器人 [@TGHelp](https://t.me/tghelp) 免费无限开放！
* [telegram-group-channel-management-bot](https://docs.nextcli.com/cloud/telegram-bot/telegram-group-channel-management-bot "mention")功能参考、借鉴了业内所有机器人的功能列表，与 [telegram-customer-service-bot](https://docs.nextcli.com/cloud/telegram-bot/telegram-customer-service-bot "mention") [cryptocurrency-notification-bot](https://docs.nextcli.com/cloud/telegram-bot/cryptocurrency-notification-bot "mention") 不同，群管理机器人 主要功能是辅助群管理员对群组进行管理、违规信息的识别/删除、封禁恶意群发用户、自定义新成员进群通知、群聊关键词自动回复等功能全部免费开放！
  {% endhint %}

{% hint style="success" %}

#### 使用方法 <a href="#add-to-group" id="add-to-group"></a>

将群管理机器人 [@TGHelp](https://t.me/tghelp) 添加到需要被管理的群中，设置为管理员并给予全部管理员权限（至少需要**删除消息**/**封禁用户**/**取消置顶**等权限）
{% endhint %}

### 特色功能

{% hint style="info" %}

### 独家特色功能 <a href="#features" id="features"></a>

* **强制关注频道才能在群中发言**：同时支持多个群组设置该权限！需要同时给机器人设置为群组管理员和频道管理员！
* **取消置顶群组中来自关联频道的消息**：机器人将自动取消置顶频道同步到群中的消息！（当频道与群组绑定时，频道中发送的消息，Telegram会自动同步到关联群组，并给消息置顶，此为默认操作无法修改）
* **查杀内容跳过公开管理员/匿名管理员/群组关联的频道**，但不会放过成员使用其自己的频道发送违规消息
* **关键词回复**：<mark style="color:orange;">支持设置有效期，接广告，更灵活</mark>！
* **日报/周报**：功能开发中..
* 完善的官方违规词库，可结合自身内容选择开启对应的违规关键词库

**其他功能**：

* **入群验证**：验证码/加减法/简单接受
* **入群欢迎消息**：新人入群欢迎消息，支持emoji和按钮样式！
* **关键词回复**：便于展示群规、推广产品等
* **内容防护能力**：
  * 批量入群的行为/刷屏/长昵称/长内容/垃圾用户/编辑内容/转发/转发+回复/内容包含@Username/内容包含链接/禁止昵称包含违禁词..
* **广告查杀**：本群自己自定义的广告查杀关键词库；您也可以在设置主页开启官方查杀库！
* **防护能力**：针对批量入群、刷屏、长昵称、长内容
* **成员管理**：在网站中管理用户，甚至可以导出全部成员信息！
* **白名单**：白名单用户触发防护能力及关键词，不做处理
* 招人,保底月十万，可以查看机器人的操作日志

💡问题反馈/提新需求 [<mark style="color:purple;">@NextCLiCLoud</mark>](https://t.me/NextCLiCLoud)&#x20;
{% endhint %}

### 获取频道链接ID <a href="#get-channel-link" id="get-channel-link"></a>

点击频道名称，在频道ID上右键点击拷贝链接，将链接 t.me/后的ID 如：`nextcli` 填写到Cloud后台频道白名单；

<div align="left"><figure><img src="https://759424590-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FjiR3t04ay90Ea9V3I6ju%2Fuploads%2FxbkYzaW8SuNN43xZZQdI%2Fimage.png?alt=media&#x26;token=b00b3dfa-90f2-40ef-8eab-6446e2f4830c" alt="" width="375"><figcaption><p>频道截图示例</p></figcaption></figure></div>

### 命令列表

[#command-list](https://docs.nextcli.com/cloud/tghelp#command-list "mention")

### cron计划任务表达式 <a href="#cron" id="cron"></a>

#### 表达式示例

| 表达式示例                  | 表达式说明                             |
| ---------------------- | --------------------------------- |
| `0 */30 * * * *`       | 每 `30分钟` 执行一次                     |
| `0 0 * * * *`          | 每 `小时整点` 执行一次                     |
| `0 0 4 * * *`          | 每天 `4` 点执行一次                      |
| `0 0 */12 * * *`       | 每 `12小时` 执行一次(每天 00:00 和 12:00)   |
| `0 */30 9-18 * * *`    | 每天 `9` 点到 `18` 点，每隔 `30` 分钟执行一次   |
| `0 0 9 * * MON-FRI`    | 每 `周一` 到 `周五` 在 `9` 点执行一次         |
| `0 0 9,18 * * MON-FRI` | 每 `周一` 到 `周五`， `9` 点和 `18` 点各执行一次 |

#### 基本介绍

`cron表达式` 表示一组时间，使用 `6` 个空格分隔的字段。

```
Seconds Minutes Hours Day Month Week
```

> 即 `秒 分 时  日 月 周`

每个字段的含义如下：

```
Field name    | Allowed values  | Allowed special characters
----------    | --------------  | --------------------------
Seconds       | 0-59            | * / , - #
Minutes       | 0-59            | * / , -
Hours         | 0-23            | * / , -
Day           | 1-31            | * / , - ?
Month         | 1-12 or JAN-DEC | * / , -
Week          | 0-6 or SUN-SAT  | * / , - ?
```

:::warning 月份和星期字段值英文不区分大小写。 例如传递 `SUN`、 `Sun` 和 `sun` 同样被接受。 :::

#### 特殊字符

**星号（ `*`）**

星号表示 `cron` 表达式将匹配所有的值。例如，在第五个字段( `Month`)中使用星号表示每个月。

**斜线（ `/`）**

斜杠用于描述范围的增量。例如：第二个字段使用 `3-59/15` 表示每小时的第 `3` 分钟开始到第 `59` 分钟，每隔 `15` 分钟执行。

**逗号（ `,`）**

逗号用于分隔列表的项目。例如，第五个字段使用 `MON,WED,FRI` 将指每周一，周三和周五执行。

**连字符（ `-`）**

连字符用于定义范围。例如，第三个字段使用 `9-17` 表示每天上午 `9` 点至下午 `5` 点（含）。

**忽略号（ `#`）**

忽略号表示 `cron` 表达式将忽略这个字段的使用，目前仅秒字段支持该符号，用于将 `6` 段 `cron pattern` 无缝转换为 `5` 段 `linux crontab pattern`。

**问号（ `?`）**

可以使用 `问号` 而不是 `*` 来让 `Day` 或 `Week` 字段为空。

**预定义格式**

您可以使用几个预定义的时间来代替 `cron` 表达式。

```
Entry                  | Description                                | Equivalent To
-----                  | -----------                                | -------------
@yearly (or @annually) | Run once a year, midnight, Jan. 1st        | 0 0 0 1 1 *
@monthly               | Run once a month, midnight, first of month | 0 0 0 1 * *
@weekly                | Run once a week, midnight between Sat/Sun  | 0 0 0 * * 0
@daily (or @midnight)  | Run once a day, midnight                   | 0 0 0 * * *
@hourly                | Run once an hour, beginning of hour        | 0 0 * * * *
```

**间隔**

您还可以定义任务以固定的时间间隔执行，从添加时开始运行。这可以通过格式化 `cron` 规范来支持，如下所示：

```
@every <duration>
```

其中 `duration` 是 `time.ParseDuration` 接受的字符串 （ <http://golang.org/pkg/time/#ParseDuration>）。

例如， `@every 1h30m10s` 将表示添加任务之后每隔 `1小时30分10秒` 执行。 :::warning 间隔不会考虑任务的执行开销时间。例如，如果一项工作需要 `3` 分钟才能执行完成，并且计划每隔 `5` 分钟运行一次，那么每次任务之间只有 `2` 分钟的空闲时间。 :::

#### 注意事项🔥

所有开发语言级别 `6` 段式的 `cron pattern` 设计从实践上来说，由于底层定时器的不准确性，因此都是有一定的设计缺陷。由于 `cron pattern` 精确到秒级，当延 **迟达到了秒级**，那么任务可能会存在丢失情况。而当 `golang` 引擎调度比较慢的时候，那么延迟很容易达到秒级引发程序逻辑问题。

考虑大部分的场景其实并不需要如此精准的定时任务粒度控制，因此从框架 `v2.7` 版本开始，我们对秒字段提供了忽略符号 `#`，用于将 `6` 段式的 `cron pattern` 转换为 `5` 段式的 `linux crontab pattern`，更加稳健。如果是秒级粒度的定时任务场景，请考虑使用 `gtimer` 定时器，但同时也需要注意，任何的定时器都是不准确的，不能完全依赖底层的系统时间。

如有使用问题或功能建议，请联系 [<mark style="color:purple;">**@NextCLiCloudBOT**</mark>](https://t.me/NextCLiCloudBOT)&#x20;

End.
