Skip to content
This repository has been archived by the owner on Mar 31, 2024. It is now read-only.

kawax/arty

Repository files navigation

Artisan only application

Build Status Maintainability Test Coverage

終了(2024-03)

discord-managerv5で稼働し続けるbot機能を終了したのと、Laravel11で「consoleのみ」のアプリも構成しやすくなったのでここは終了。 https://invokable.net/article/laravel11-console-only

概要

  • 主にDiscord botを想定したartisanコマンドのみのアプリを作るためのテンプレート
  • artisanコマンドでできることは大体何でも可能なので他の用途にも使えるけどそれならLaravelかLaravel Zeroを直接使えばいい。
  • Laravel Zero https://laravel-zero.com/
  • GitHub Actions、GitLab CIなどを使ってサーバーレスでの稼働が目標

Create project

composer create-project --prefer-dist revolution/arty:dev-master discord-bot && cd $_

php artyでコマンドリスト表示。

GitHubのTemplateから作成した場合

手動での.envコピーなどが必要。

cp .env.example .env
composer install

Laravel Zeroから追加した機能

通知先を増やせばDiscord以外にも簡単に対応できる。

Discord test

.envを設定後php arty discord:testで指定のチャンネルに投稿されれば成功。

このようにコマンド1回実行するだけであればGitLab CIで定期的に実行が可能。(最短間隔はおそらく1時間)
Laravelのスケジュール機能は使わない。
次回のコマンド実行時になんらかのデータを引き継ぎたい場合はキャッシュかStorageを使う。

Discord serve

php arty discord:serveではbotを起動し続ける。
メッセージを受け取って返すようなbotを作るにはサーバー上で動かし続ける必要がある。

GitLab CIでは無理そうだけどtimeoutが1時間なので1時間毎に再実行し続ければ可能かもしれない。
この場合はDB使ったりもっと複雑なbotを作るだろうからGitLab CIには向いてない。無料プランでは月間の制限時間もある。

コマンドや通知の作成

Laravelと同じ。

php arty make:command TestCommand
php arty make:notification TestNotification

Discordコマンド作成

作成場所はapp/Discord固定。

php arty make:discord:command NewChannelCommand
php arty make:discord:direct NewDmCommand

artyファイル名の変更

php arty app:rename artisan
php artisan

Dockerで使う

docker-compose run arty {command}
docker-compose run --rm arty discord:test
docker-compose run --entrypoint '' --rm arty composer install
docker-compose run --entrypoint '' --rm arty vendor/bin/phpunit

最初にcomposer create-projectで作ってるならphpもcomposerも動くはずだけど。 CIで必要になるかもしれない。

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published