saya is still in heavy development. まだ一般の利用向けに最適化されていません。
EPGStation を使用している環境で Web ベースの視聴環境を拡張することを目的とした API バックエンドサーバです。フロントエンドのコードは ci7lus/elaina に公開されています。
そのため, saya 単体では予約・録画機能を有しません。
次の機能を現在実装しています。
その他実装予定の機能などは Roadmap をご覧ください。
saya は以下のプロジェクトとの併用を想定しています。
+--------------------------+ +----------------+ +----------------+ +-------------+
Client A -> | Live Comment Stream | | | | EPGStation | | Mirakurun |
| WebSockets | | | <-> | | <-> | mirakc |
Client B -> | /comments/***/live | | elaina | | 0.0.0.0:8888 | +-------------+
+--------------------------+ <-> | | +----------------+ +-------------+
+--------------------------+ | | +----------------+ | niconico |
| Timeshift Comment Stream | | 0.0.0.0:1234 | | saya | | 5ch |
Client C -> | WebSockets | | | <-> | | <-> | Annict |
| /comments/***/timeshift | | | | 0.0.0.0:1017 | | etc... |
+--------------------------+ +----------------+ +----------------+ +-------------+
以下の README には Docker に関する用語が多く含まれます。必要に応じて Docker 概要 (公式ドキュメント) を参照してください。
いくつかのイメージタグを用意しています。現在 linux/amd64 プラットホームのみサポートしています。
ghcr.io/slashnephy/saya:latest
ghcr.io/slashnephy/saya:dev
ghcr.io/slashnephy/saya:<version>
環境構築が容易なので docker-compose で導入することをおすすめします。docker-compose についての説明は Docker Compose 概要 (公式ドキュメント) などを参照してください。一言でいうと docker-compose は「複数のアプリケーションを一度に起動するためのツール」で, それを指示するための構成ファイルである docker-compose.yml
を作成する必要があります。
docker-compose.yml
version: '3.8'
services:
saya:
container_name: saya
image: ghcr.io/slashnephy/saya:latest
restart: always
ports:
- 1017:1017/tcp # いれいな
# 環境変数で各種設定を行います
# () 内の値はデフォルト値を示します
environment:
# HTTP サーバのホスト, ポート番号 ("0.0.0.0", 1017)
# Docker 環境では変更する必要はありません。
SAYA_HOST: 0.0.0.0
SAYA_PORT: 1017
# HTTP サーバのベース URI ("/")
# リバースプロキシ時に直下以外に置きたい場合に変更します
SAYA_BASE_URI: /
# ログレベル ("INFO")
# 利用可能な値: ALL, TRACE, DEBUG, INFO, WARN, ERROR, OFF
SAYA_LOG: DEBUG
# Twitter の資格情報 (null, null, null, null)
TWITTER_CK: xxx
TWITTER_CS: xxx
TWITTER_AT: xxx
TWITTER_ATS: xxx
# Twitter からツイートを取得する際にストリーミング API を使用するか (false)
# 接続に失敗した場合には通常の検索 API にフォールバックします。
# 試験的な機能のため, 一部の環境で動作しない可能性があります。
TWITTER_PREFER_STREAMING_API: 'true'
# 5ch API への接続情報 (null, null, null, null, null)
GOCHAN_HM_KEY: xxx
GOCHAN_APP_KEY: xxx
GOCHAN_AUTH_UA: xxx
GOCHAN_AUTH_X_2CH_UA: xxx
GOCHAN_UA: xxx
volumes:
# definitions.yml を書き換えて使用したい場合
# - ./definitions.yml:/app/docs/definitions.yml:ro
このように docker-compose.yml
を作成し, 同じディレクトリで docker-compose を実行します。Linux 環境では root 権限で実行する必要があります。
# 更新
docker-compose pull
# バックグラウンドで起動
docker-compose up -d
# ログ表示
docker-compose logs -f
# 破棄
docker-compose down
up -d
すると http://localhost:1017/
に saya が起動しているはずです。
リリースから Jar を取ってきて実行するか, ./gradlew run
で実行できます。
Java の実行環境は JRE 8 以降が必要です。
設定値の変更は現在, 環境変数経由でしか行なえません。ご了承ください。
SAYA_LOG=DEBUG java -jar /path/to/saya.jar
saya が提供する API は endpoints.md に一覧があります。
IDE は IntelliJ IDEA をおすすめします。
saya の開発には以下のブランチモデルを採用しています。
master
ブランチdev
から merge されます。dev
ブランチfeature-***
ブランチdev
に squash merge されます。不安定なプロジェクトにつき, 互換性のない変更や方針変更が発生する可能性があります。ご了承ください。
# ビルド
./gradlew build
# 実行
./gradlew run
saya は次のプロジェクトを利用 / 参考にして実装しています。
DTV 実況コミュニティの皆さまに感謝します。
saya is provided under the MIT license.