slakbal/slackwipe

清除 Slack 消息

v6.0.3 2020-02-02 15:40 UTC

This package is auto-updated.

Last update: 2024-09-01 13:38:01 UTC


README

Slackwipe 是一个 Laravel 扩展包,用于清除账户中的旧 Slack 消息,以保持频道新鲜。

贡献和错误

请为任何更改、更新或错误创建一个 pull 请求。谢谢!

要求

  • Laravel ~5.6 或更高版本
  • 由于 Laravel 提供的限流功能以及 Slack API 所需的功能,目前仅支持 Redis 队列。更多详情请参阅这里。使用同步驱动程序将无法工作。

安装

您可以通过 composer 安装此包

composer require slakbal/slackwipe

Laravel 将自动发现并注册 SlackwipeServiceProvider,因此不需要进行任何其他设置。

安装后,您必须发布 slackwipe.php 配置文件

php artisan vendor:publish --provider="Slakbal\Slackwipe\SlackwipeServiceProvider"

它只会发布配置文件,或者您可以另外使用

php artisan vendor:publish

并选择 Slackwipe 依赖项。

配置

API 令牌

config\services.php 配置文件中设置 Slack 的旧版 API 令牌。您可以从 这里 获取令牌。您还可以将其提取到 .env 变量中,以将其从源存储库中移除。

'slack' => [
    'token' => 'xoxp-337094627015-336894794790-399611226556404-18456546534534534535321565625234234234234344'
 ]

要清除的频道

在配置文件中,可以配置频道和保留期(以天为单位)。如果保留期设置为 0,则执行命令后将从频道中清除所有消息。如果保留期设置为例如 10 天,则将清除 (NOW TIMESTAMP - 10 days) 之前所有较旧的消息。

'private-channels' => [
    ['name' => 'dev-chat', 'days_to_keep' => 100],
    ['name' => 'private-channel', 'days_to_keep' => 0],
],

'public-channels' => [
    ['name' => 'general', 'days_to_keep' => 365],
    ['name' => 'random', 'days_to_keep' => 365],
]        

队列

默认情况下,所有作业都将排队到 default Redis 队列。然而,建议保持独立,并为清除作业创建一个专门的队列(通道),使用单个队列工作者来处理特定的队列。在配置文件中,您可以设置作业应派送到哪个队列的名称,或将 QUEUE_TUBE_SLACK 变量添加到环境 (.env) 文件中。

'slack_wipe_queue' => env('QUEUE_TUBE_SLACK', 'default')      

执行

您可以通过执行以下命令手动运行此命令

php artisan slack:wipe

确保您有一个正在运行的队列,否则您在 Slack 中看不到任何效果。

您可以在 App\Console\Kernel 类的 schedule 方法中定义计划任务以排队清除作业,例如。

$schedule->command('slack:wipe')->everyFifteenMinutes()->between('3:00', '5:00')->withoutOverlapping();

欢迎您的贡献(Pull Requests)或错误修复!

享受吧!

Slakbal