slakbal / slackwipe
清除 Slack 消息
v6.0.3
2020-02-02 15:40 UTC
Requires
- craftyx/slack-api: ^2
- illuminate/contracts: ^5.8|^6.0|^7.0
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