1337m/lemming

Discord 机器人,用于定制需求。

安装: 44

依赖项: 1

建议者: 0

安全: 0

星星: 1

关注者: 1

分支: 0

开放问题: 2

类型:项目

0.0.1 2016-10-02 15:09 UTC

This package is not auto-updated.

Last update: 2024-09-28 19:09:26 UTC


README

Discord 机器人,用于定制需求。

功能

  • 它活着!

即将推出

  • 动图提供者 - 这已经制定计划,正在实施。
  • 爸爸笑话过滤器 - 这已经制定计划,正在实施。

我们正在考虑的

  • 提醒
  • 自我升级
  • 笑话提供者
  • 维基百科提供者
  • 深入配置

安装

此应用程序是用 PHP 开发的。这不是我们生活中最自豪的时刻,但为什么不呢?

跟随趋势,我们使用 composer 来管理我们的依赖项、脚本和配置。

为了安装应用程序并能够使用它,你需要一些东西

如果您满足上述要求,您就快完成了!

首先,您可能想克隆此存储库。

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
  • 发现了一个拼写错误
  • 迫切希望添加新的翻译或新功能
  • 想要修复以前报告的问题

请随时这样做!但为了使每个人的生活更容易,我们希望您遵循一些路径。

  1. 创建/评论一个问题 - 很好,了解情况。也许这可以帮助阻止我们中的一人同时处理相同的问题?

  2. 分支 - 创建存储库的副本。您可能并不一定有对这个分支的写权限...

  3. 在开始编码之前运行测试! - 确保不是你破坏了代码。运行测试,如果一切正常,继续。

  4. 编写自己的测试 - 跟随TDD模式是个好主意。编写一个测试,确保它失败,然后修复代码以使测试成功。无论如何,编写一些测试吧 :D

  5. 做最好的自己。成为伟大的人。做你自己。成为一名开发者。 - 用代码走向巅峰。

  6. 创建一个 拉取请求 - 我们将确保审查你的代码。给你反馈,提问或讨论解决方案。不要生气!感到荣幸。我们都在这里学习。我们可能从你那里学到一些东西,这是我们希望得到的,你也可能从我们这里学到一些东西,这会让我们非常高兴。自由地不同意某些事情,但尽量理性地表达不同意见。

  7. 来一块饼干! - 每项工作都值得奖励。虽然我们很乐意给你饼干,但你可能需要自己解决这个问题。互联网很棒,但也有一些限制。

插件

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变量。

  • $messageDiscord-PHPMessage类的实现。
  • $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许可证