No description, website, or topics provided.
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
app
bootstrap
config
tests
.editorconfig
.env.example
.gitignore
.gitlab-ci.yml
.styleci.yml
.update.yml
LICENSE
Makefile
README.md
arty
box.json
composer.json
composer.lock
docker-compose.yml
phpunit.xml

README.md

Artisan only application

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

Create project

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

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

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で必要になるかもしれない。