Skip to content
/ Avalon Public
forked from Ray-Eldath/Avalon

🤖 A scalable multi-function group robot for QQ and Discord. 多功能、可扩展的群机器人,支持QQ和Discord。

License

Notifications You must be signed in to change notification settings

paralax/Avalon

 
 

Repository files navigation

Avalon v1.2.3 GNU Affero General Public License, version 3 GitHub stars GitHub followers

Build Status Build status Codeship Status for Ray-Eldath/Avalon CircleCI Known Vulnerabilities

中文(简体)

Avalon is a scalable multi-function group robot for QQ and Discord.

The support for QQ is based on CoolQ-HTTP-API, and the support for Discord is based on JDA. The connection with Microsoft XiaoIce is based on Mojo-Weixin (may not works except in China).

Functions

Note: Because Avalon is designed for QQ (an IM most of which users are Chinese) initially, and therefore some commands and functions are only available in nations and areas using Chinese.

Introduction

  • Natural language question answering: Avalon has been docked to Wolfram Alpha in order to provide natural language question answering service. You could use it by command avalon tell me.
  • Message record and quote: If configured correctly, Avalon will record every message in group(s) into a database. You can also quote message into database annually by command avalon quote.
  • Build status notification: When the build status for specified project(s) update, Avalon will send notification. (AppVeyor and TravisCI supported.)
  • Execute code online: Avalon allows you to execute a piece of code by command avalon execute. 35+ programming languages supported, include Java, Rust, Ruby, JavaScript, Kotlin, C++, and so on. (served by glot.io)
  • Notification sent when RSS update: After enable RSS function and specified the URL(s), Avalon will send notification when these RSS update.
  • Scalable: Avalon allows you to add new function or feature by MessageHook or Plugin.
  • (Unavailable except in Chinese nations or areas) Smart reply: Avalon has been docked to Microsoft XiaoIce to privide smart reply service (just like chat bot), you could use it by command avalon answer me.
  • Unavailable except in Chinese nations or areas) Hitokoto: Avalon has been docked to 一言 to provide "hitokoto". You could config Avalon to send one when started or use command avalon hitokoto to get one.
  • ...

List of commands

All commands listed below can be triggered by some particular command as long as has required permission.

❕: Admin command. Only users specficed as admin in group.json and owner could execute these commands.

❗: Owner command. Only user specficed as owner in group.json could execute these commands.

⚪: Unmanagerable command. These command can not be managed by avalon manager, but can be disabled in config.json.

🔴: Basic command. These command can neither be managerd by avalon manager nor disabled in config.json.

Name Trigger command Description
Blacklist avalon blacklist (list OR add OR remove) ⚪ ❕ List all accounts in blacklist. Add account to blacklist or remove from it.
Echo avalon (echo OR repeat) Avalon will repeat the given sentence.
Execute avalon execute <LANGUAGE>{ENTER}<CODE> Execute given code and echo the return or the error message.
ExecuteInfo avalon execute info For info about code executor.
Flush avalon flush ⚪ ❕ Flush caches and delete temp files.
Help avalon help 🔴 For help content.
Manager avalon manager (start OR stop) <TRIGGER COMMAND> ⚪ ❕ To start or stop particular command responder.
Quote avalon quote <SPEAKER> <CONTENT> ❕ To quote message into Avalon's database.
Reboot avalon reboot ⚪ ❗ Reboot Avalon.
ShowAdmin avalon whoisadmin Show list of all admins.
Shutdown avalon (shutdown OR exit) ⚪ ❗ Shutdown Avalon.
Version avalon (version OR about) 🔴 Show version and related info.

Some commands only available in particular version of Avalon. For more details, see RELEASE Notes for every RELEASE.

List of extension

All following extension are push-type, they will sent message automatically when state change detected and therefore can not be triggered by command statements.

Name Description
BuildStatus Notification will be sent when configed CI build state of given project update. TravisCI and AppVeyor now supported.
RSSFeeder Message will sent when configed RSS update.

If you want Avalon to have some new functions, welcome new issue.

Commands and extensions not work except in Chinese nations or areas may not listed. For info about these commands and extensions, see Chinese (Simplified) version of README file.

Example

Contribute Open Source Helpers

Notice

  1. Please make sure your editor support EditorConfig!
  2. All class under package group must implements GroupMessageResponder.
  3. Class or method that tagged as @deprecated will removed officially in the next release.
  4. From v0.0.1, the version number will follow Semantic Versioning 2.0.0.

Todo

See Projects / Avalon.

Configuration

See Avalon.wiki. (Only Chinese (Simplified) version provided yet ;-) )

About

🤖 A scalable multi-function group robot for QQ and Discord. 多功能、可扩展的群机器人,支持QQ和Discord。

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Kotlin 67.7%
  • Java 31.8%
  • Batchfile 0.5%