An open API service indexing awesome lists of open source software.

https://github.com/puyokura/revolt.chat_cli_cliant

revolt.chat_cli_cliant
https://github.com/puyokura/revolt.chat_cli_cliant

cli nodejs revolt revolt-chat terminal typescript

Last synced: 6 months ago
JSON representation

revolt.chat_cli_cliant

Awesome Lists containing this project

README

          

# Revolt.chat CLIクライアント

## 概要

このアプリケーションは、ターミナルから[Revolt.chat](https://revolt.chat)に接続し、リアルタイムでメッセージの送受信ができる、インタラクティブなコマンドラインインターフェース(CLI)クライアントです。

## 主な機能

- **インタラクティブなログイン**: メールアドレスとパスワードで安全にログインします。セッショントークンはローカルに保存され、次回以降の起動を高速化します。
- **サーバーとチャンネルの選択**: 参加しているサーバーとチャンネルを一覧表示し、最後に選択したものを記憶します。
- **リアルタイムなメッセージング**: メッセージを瞬時に送受信できます。
- **複数行入力**: 空の行でEnterキーを押すだけで、複数行のメッセージを簡単に送信できます。
- **多彩なスラッシュコマンド**:
- `/help`: 利用可能なすべてのコマンド一覧を表示します。
- `/users`: 現在のチャンネルにいるユーザーを一覧表示します。
- `/whoami`: あなたのユーザー情報を表示します。
- `/nick `: サーバーでのニックネームを設定します。
- `/profile `: ユーザーのプロフィールを表示します。
- `/status [msg]`: ステータス(online, idle, busy, invisible)とメッセージを設定します。
- `/upload`: ローカルマシンからファイルをアップロードします。
- `/reply `: 特定のメッセージに返信します。
- `/edit `: 自分のメッセージを編集します。
- `/delete `: 自分のメッセージを削除します。
- `/logout`: 現在のセッションからログアウトし、設定ファイルを削除します。
- `/leave`: 現在のチャンネルから退出します。
- `/exit`: アプリケーションを終了します。
- `/config`: CLIの設定を表示・変更します。
- `/userconfig`: ユーザー設定を表示・変更します。
- `/serverconfig`: サーバー設定を表示・変更します。
- `/kick `: サーバーからユーザーをキックします。
- `/ban [reason]`: サーバーからユーザーをBANします。
- `/timeout [reason]`: ユーザーを一定時間タイムアウトさせます。

## プロジェクトの構造

このプロジェクトはTypeScriptで書かれており、以下のファイルで構成されています。

- `src/index.ts`: アプリケーションのメインエントリーポイント。ログイン、WebSocket接続、チャンネル選択、メッセージループの開始など、全体の流れを制御します。
- `src/lib/api.ts`: Revolt APIとの通信を担当します。ログイン、メッセージの送受信、ファイルアップロードなど、すべてのAPIリクエストがこのファイルに集約されています。
- `src/lib/commands.ts`: `/`で始まるスラッシュコマンドの処理ロジックを実装しています。各コマンドに対応する関数が含まれています。
- `src/lib/config.ts`: ユーザーの認証トークンや最後に選択したチャンネルなど、設定情報の読み書きを行います。設定はホームディレクトリの`.revolt-cli-config.json`に保存されます。
- `src/lib/types.ts`: APIレスポンスなどで使用されるデータ構造(User, Channel, Messageなど)の型定義をまとめています。
- `src/lib/ui.ts`: ターミナル上での表示やユーザーとの対話(inquirerによるプロンプトなど)を担当します。メッセージのフォーマットやチャンネル選択のUIなどが含まれています。

## 開発者向けガイド

### 前提条件

- [Node.js](https://nodejs.org/) (v16以上を推奨)

### インストール

1. リポジトリをクローンします:
```sh
git clone https://github.com/puyokura/revolt.chat_cli_cliant.git
cd revolt.chat_cli_cliant
```

2. 依存関係をインストールします:
```sh
npm install
```

### クライアントの実行

開発モードでクライアントを実行するには、以下のコマンドを使用します:

```sh
npm start
```

## 配布用のビルド

このプロジェクトは`pkg`を利用して、単一の実行可能ファイルを生成します。これにより、Node.jsがインストールされていない環境でもアプリケーションを実行できます。

### Windows向けのビルド

Windows (64-bit) 用の`.exe`ファイルを生成するには、以下のコマンドを実行します:

```sh
npm run package
```

コマンドが完了すると、プロジェクトのルートディレクトリに実行可能ファイル(例: `revolt.exe`)が生成されます。

## ライセンス

このプロジェクトはISCライセンスの下で公開されています。

## あとがき
バグなどをIssueで報告してくれると助かります。