# カスタムアクション

# カスタムアクションとは?

カスタムアクションとは、現在選択されているKitsuの情報をカスタムエンドポイントに送信するシンプルなHTTPリクエストです。 基本的に、ユーザーがKitsuのUIにいる場合、選択された要素のIDを含むリクエストを別のサーバーに送信することができます。

# 目的

目標は、Kitsu/Zouのコアコードを変更することなく、Kitsu以外のアクションを作成することです(プラグインシステムが利用可能になるまで)。基本的には、ご自身で管理するページやサービスへのウェブリクエスト、通常はPOST(GETも可能)です。リクエストをキャッチし、それを使ってアクションを実行します。

例としては、

  • デバッグページ(フィールド名など、指定のオブジェクトのアクセス可能な情報をすべて表示する)
  • CGRUまたはFlamencoでレンダリングを起動する
  • APM用の統計ページを生成する
  • 特別なプレイリストを作成する
  • カスタムプロトコル(サービスが待機)を起動して、ビデオプレーヤー、DCCなどを開始する
  • Kabaretなどのアセットマネージャーと統合して、適切な場所でアセットを開いたり、アクションを起動する

カスタムアクションは、リクエストをキャッチできるものであれば何でも可能です(例えば、Flask や Tornado.web などの Python ウェブサーバーを使用)。 カスタムアクションは、あなたが管理するシステムに Kitsu を拡張するために設計されています。

現在の選択、閲覧中のページ、アクションを起動したユーザーなど、リクエストをキャッチしたものには、便利な情報が提供されます。提供された情報に基づいて応答を適応させることができます。

ユーザーにフィードバックを提供する必要がない場合は、カスタムアクションをバックグラウンドで実行することもできます(新しいページを開く代わりにAJAXリクエストを使用)。

# カスタムアクションの設定方法

# 作成

カスタムアクションの設定は、スタジオマネージャーのみが行うことができます。 カスタムアクションページは、管理セクションの右パネルで利用できます。

カスタムアクションページにアクセスできる場合、右上にある追加ボタンから新しいアクションを作成できます。 アクションの作成には、以下の4つの情報が必要です。

Add Custom Action

  • 名前:アクションの名前。
  • URL:ターゲットURL(Kitsuのインストールと同じドメインを使用することを強くお勧めします)。
  • エンティティタイプ:カスタムアクションが利用可能なエンティティの種類。
  • AJAXを使用:リクエストをAJAXリクエストとして送信する必要があるか、フォームとして送信する必要があるかを指定します。

アクションが作成されると、アクションのトップバーからアクセスできるようになります。ユーザーがアセットまたはショットリストでタスクを選択し、「カスタムアクションの実行」セクションに移動すると、現在の選択に対してカスタムアクションを実行できるようになります。

# カスタムアクション経由で送信されるデータ

データはJSON形式で送信されます。データには、以下のフィールドを持つオブジェクトが含まれます。

  • personid:アクションを要求するユーザーのID。
  • personemail: アクションを要求するユーザーのメールアドレス。
  • projectid: 選択されたエンティティのプロジェクトID。
  • currentpath: Kitsuウェブアプリケーションの現在のURLパス。
  • currentserver: カスタムアクションを送信するKitsuのホスト。
  • selection: 選択されたタスクIDのリスト。
  • entitytype: タスクが選択されたエンティティの種類。

例:

{
「personid「: 」b01bae1e-f829-458a-a1eb-131bb66628cc「,
「personemail」: 「admin@example.com」,
「projectid「: 」fa4d7f04-b8e0-4518-8dbc-2f24997ca76e」,
「currentpath「: 」/productions/fa4d7f04-b8e0-4518-8dbc-2f24997ca76e/assets「,
「currentserver」: 「localhost」,
「selection「: 」95c171e1-dfff-498f-93e3-548a739e3202」,
「entitytype「: 」asset」
}