policr

Telegram bot telegram-bot
HEAD Latest release released
Hentioe/policr
304 52 29
绅士喵

注意,本项目当前处于暂停运营、离线维修的阶段。这个时间可能很长,请使用 policr-mini 项目替代。

PolicrBot

Build Status GitHub issues License: MIT

大概是 Telegram 平台最强大的审核机器人

介绍

本项目的设计原则是定制、专注和私有部署。核心审核功能完备且复杂,能应对各种意外情况,还有人性化的验证容错设计。

专注体现在不做不相干的功能,定制体现在提供友好的设置菜单和众多的可选项,并支持多种验证方式(之所以称之为最强大,这也是核心原因。如果不是,请打醒)。

注意:无论是官网还是本页面都可能是过时的,想知道最新功能请关注更新频道。

功能概括

构成审核的四大子功能

  1. 新入群用户验证(支持六种方式)
  2. 封杀清真名称和发表清真消息的用户
  3. 自动限制普通成员新拉入的机器人
  4. 黑名单系统:举报、投票、预先封禁和申诉

内容审查功能(严格模式)

  1. 限制消息的长度和行数
  2. 限制上传文件格式
  3. 编写规则(基于自主规则引擎)屏蔽内容

定制内容屏蔽(不合规、垃圾或广告内容)

  1. 订阅全局规则,可选自动上报至黑名单投票
  2. 编写私有规则,视情况而自行定义屏蔽内容

附带的周边小功能

  1. 调查通过验证用户的来源
  2. 给通过验证用户发送欢迎消息
  3. 删除服务消息

强大的定制能力

  1. 定制审核子功能启用状态
  2. 定制周边功能启用状态
  3. 定制各种痕迹消息的删除以及延迟时间
  4. 定制验证方式
  5. 自定义验证问题
  6. 定制验证提示模板
  7. 定制验证倒计时时长
  8. 定制删除服务消息的类型

自由、安全而开放

  1. 可启用容许错误的验证机制
  2. 基于被信任管理员的机器人调整权
  3. 所有用户皆可举报违规消息
  4. 自动化且无法程序模拟的申诉流程
  5. 自助申请投票权(暂未开放)

额外特殊说明:

  1. 本项目(永远)不会支持图片验证码,因为我们提供了更加高级而友好的验证方式(这里有详细原因
  2. 黑名单系统不仅是自由开关的,其透明开放的设计也是保证公信力的前提。毕竟已经有一些被质疑黑箱操作的机制简单的黑名单机器人作为前车之鉴:)

开发技术

得益于原生语言 Crystal 的优势,机器人实例能以极低的成本高效率执行。编译完成后的二进制只有区区 4.9MB 大小,内存占用不超过 10MB,在保持低资源占用的同时能处理超高并发量的消息。

不同于很多将处理逻辑都集中于一个文件中的简单机器人,此项目源码有清晰的文件结构和良好的消息处理单元抽象。具备很高的扩展性和可维护性,能在不侵入已有功能代码的情况下进行扩展和定制。

使用&部署

相关说明已经全部迁移到官网首页,请访问这里

加入我们

policr:
  github: Hentioe/policr
  
License MIT
Crystal 0.31.1

Authors

Dependencies 17

  • clicr
    {'github' => 'j8r/clicr'}
  • digests
    {'github' => 'Hentioe/digests.cr'}
  • dispatch master
    {'branch' => 'master', 'github' => 'bmulvihill/dispatch'}
  • dotenv 0.3.1
    {'github' => 'gdotdesign/cr-dotenv', 'version' => '0.3.1'}
  • gomoku
    {'github' => 'policr-community/gomoku.cr'}
  • i18n~TechMagister
    {'github' => 'TechMagister/i18n.cr'}
  • jennifer 0.8.3
    {'github' => 'imdrasil/jennifer.cr', 'version' => '0.8.3'}
  • jennifer_sqlite3_adapter bfe4deda12c288642ac3d6415d65bcc2b79a3fe9
    {'commit' => 'bfe4deda12c288642ac3d6415d65bcc2b79a3fe9', 'github' => 'imdrasil/jennifer_sqlite3_adapter'}
  • kemal
    {'github' => 'kemalcr/kemal'}
  • kemal-session
    {'github' => 'kemalcr/kemal-session'}
  • ksuid
    {'github' => 'Sija/ksuid.cr'}
  • markd
    {'github' => 'icyleaf/markd'}
  • rule_engine
    {'github' => 'policr-community/rule_engine'}
  • sam
    {'github' => 'imdrasil/sam.cr'}
  • schedule
    {'github' => 'hugoabonizio/schedule.cr'}
  • telegram_bot~policr-community bugfix
    {'branch' => 'bugfix', 'github' => 'policr-community/telegram_bot'}
  • telegram_markd compatible/telegram
    {'branch' => 'compatible/telegram', 'github' => 'policr-community/telegram_markd'}

Development Dependencies 1

  • ameba
    {'github' => 'veelenga/ameba'}

Dependents 0

Last synced .
search fire star recently