1337m / lemming
Discord 机器人,用于定制需求。
Requires
- doctrine/orm: ^2.5
- league/event: ^2.1
- team-reflex/discord-php: ^4.0
- vlucas/phpdotenv: ^2.4
Requires (Dev)
- phpunit/phpunit: ^5.5
This package is not auto-updated.
Last update: 2024-09-28 19:09:26 UTC
README
Discord 机器人,用于定制需求。
功能
- 它活着!
即将推出
- 动图提供者 - 这已经制定计划,正在实施。
- 爸爸笑话过滤器 - 这已经制定计划,正在实施。
我们正在考虑的
- 提醒
- 自我升级
- 笑话提供者
- 维基百科提供者
- 深入配置
安装
此应用程序是用 PHP 开发的。这不是我们生活中最自豪的时刻,但为什么不呢?
跟随趋势,我们使用 composer
来管理我们的依赖项、脚本和配置。
为了安装应用程序并能够使用它,你需要一些东西
- 阅读这个详细的 创建 Discord 机器人并获得令牌 教程
- PHP 版本
5.6
或更高 composer
git
- 后端服务(MySQL、Postgres、MongoDB 等)
如果您满足上述要求,您就快完成了!
首先,您可能想克隆此存储库。
git clone --depth=1 git@github.com:1337m/lemming.git
注意,我们添加了一个额外的参数 --depth=1
,这是完全可选的。它只是告诉 github
:是的,我想要!但我并不真的关心这个软件的历史... 只给我我想要的。
成功克隆存储库后,您可以进入目录。通常,会是这样的
cd lemming
在目录内部,您可能会发现很多无用之物。您可能不需要知道这里发生了什么... 然而,如果您真的想了解,您太棒了,并确保访问此 README
文件中的贡献部分。
您需要向机器人提供一些信息,这样它就知道如何像人一样行为了。至少假装一下。
应用程序期望您将信息存储在 .env
文件中。这是在不同环境中拥有所需设置的简单解决方案。
我们的 .env
文件看起来像这样
DISCORD_API_TOKEN="TOP_SECRET_API_TOKEN"
LANG="en_US.utf-8"
最重要的是
DISCORD_API_TOKEN
- 请参考您在 Discord 上创建的应用程序。
一旦您配置了环境变量以满足您的需求,请使用 composer 安装依赖项。
composer install
现在我们完成了。这不是很简单吗?
为什么不继续运行应用程序呢?
composer run
TL;DR
懒惰?你... 我喜欢你。这里
git clone --depth=1 git@github.com:1337m/lemming.git
cd lemming
touch .env
echo 'DISCORD_API_TOKEN="TOP_SECRET_API_TOKEN"' >> .env # Make sure to use a real token...
echo 'LANG="en_US.utf-8"' >> .env
composer install
composer run
命令
这个列表将随着时间的推移而增长...
!hello - This greet the bot.
!help - This will generate the list of commands.
!gif [set of key words] - This will look for any GIF maches and post int on to the channel.
测试
我们热爱 TDD。测试就是爱。我们使用这个伟大的 PHP 工具 phpunit
来配置我们的测试。
这些大多已准备好,您可以运行以下命令查看
composer test
贡献
你太棒了。我们喜欢棒极了。开源的想法是通过使用不同/新的视角来让事物变得更好。如果您
- 发现了一个你知道如何修复的 bug
- 发现了一个拼写错误
- 迫切希望添加新的翻译或新功能
- 想要修复以前报告的问题
请随时这样做!但为了使每个人的生活更容易,我们希望您遵循一些路径。
-
创建/评论一个问题 - 很好,了解情况。也许这可以帮助阻止我们中的一人同时处理相同的问题?
-
分支 - 创建存储库的副本。您可能并不一定有对这个分支的写权限...
-
在开始编码之前运行测试! - 确保不是你破坏了代码。运行测试,如果一切正常,继续。
-
编写自己的测试 - 跟随TDD模式是个好主意。编写一个测试,确保它失败,然后修复代码以使测试成功。无论如何,编写一些测试吧 :D
-
做最好的自己。成为伟大的人。做你自己。成为一名开发者。 - 用代码走向巅峰。
-
创建一个
拉取请求
- 我们将确保审查你的代码。给你反馈,提问或讨论解决方案。不要生气!感到荣幸。我们都在这里学习。我们可能从你那里学到一些东西,这是我们希望得到的,你也可能从我们这里学到一些东西,这会让我们非常高兴。自由地不同意某些事情,但尽量理性地表达不同意见。 -
来一块饼干! - 每项工作都值得奖励。虽然我们很乐意给你饼干,但你可能需要自己解决这个问题。互联网很棒,但也有一些限制。
插件
Lemming支持使用composer的插件,简单方便!
安装插件
嗯,这很简单!为了文档说明,我将参考我们的一款官方插件Lemming Giphy。
默认情况下,安装只需一个命令!看看这个
composer require 1337m/lemming-giphy
插件应该安装在其最新版本。现在,是时候引用它了!你应该有一个config/commands.php
文件。打开它,在数组中间添加一个新键(要记录的命令)和一个包含所需操作的选项数组。最后,它应该看起来像这样
<?php return [ 'gif' => [ 'action' => Lemming\Giphy\Command::class, 'aliases' => ['giphy', 'moving-picture'], 'description' => 'Search the big database, of GIFs, and return the matching result.', 'usage' => '/gif [phrase]', ], ];
有时,插件开发者可能会提供有关如何做到这一点的说明。这些开发者很棒。上面的插件有一个很好的README
文件,解释了你可能需要采取的步骤,以便使插件正常工作。务必查看!
开发插件
如果你至少了解PHP的基础知识,你就知道如何为Lemming编写插件...
- 从初始化composer包开始!务必添加描述和一些关键词。
- 使用
PSR-4
,以便更容易集成。 - 编写测试!我们都喜欢测试。你也应该。
- 在GitHub和Packagist上发布你的插件。让它对所有人可用!
我们创建了一个抽象类,你可能需要使用。
这里,有一个很好的应用程序起点
<?php namespace MyAwesomePlugin; use Lemming\Command\Base; class MyAwesomeCommand extends Base { public function fire() { return 'AWESOME!'; } }
现在,如果你在你的机器人中引用这个
<?php return [ 'awesome' => [ 'action' => MyAwesomePlugin\MyAwesomeCommand::class, ], ];
你将能够在聊天中写入/awesome
并期待机器人回复!
一些技术细节
Base
类提供了$message
和$params
变量。
$message
是Discord-PHP
对Message
类的实现。$params
是一个数组,包含与命令一起传递的任何额外参数。
上面的类可能看起来像这样
<?php namespace MyAwesomePlugin; use Lemming\Command\Base; class RandomCommand extends Base { public function fire() { if (empty($this->params)) { return 'Nothing to pick from...'; } shuffle($this->params); return $this->message->channel->sendMessage('Personally, I would go with: ' . $this->params[0]); } }
引用新的命令
<?php return [ 'random' => [ 'action' => MyAwesomePlugin\RandomCommand::class, ], ];
并使用discord客户端进行测试
[user] /random Pizza Burger ChowMain Pierogi
[bot] Personally, I would go with: Pierogi
许可证
Lemming是一个开源软件,许可协议为MIT许可证。