Skip to content

Instantly share code, notes, and snippets.

@hal-shu-sato
Last active December 12, 2021 13:39
Show Gist options
  • Save hal-shu-sato/2bc4a34917a9c24255def871022dc01f to your computer and use it in GitHub Desktop.
Save hal-shu-sato/2bc4a34917a9c24255def871022dc01f to your computer and use it in GitHub Desktop.
AviUtl Plugin Manager

AviUtl Plugin Manager

AviUtlのダウンロードやプラグイン・スクリプトの導入を補助するソフトウェア案

機能

  • AviUtlのダウンロード・更新
  • プラグイン・スクリプトのダウンロード・導入・更新・削除

使用言語等

  • electron
    • Node.js
    • HTML
    • CSS

プログラムの中身のメモ

起動時

  1. {ソフトウェア名}のアップデートを確認
  2. AviUtl・拡張編集Pluginのアップデートを確認
  3. プラグイン・スクリプト一覧を取得
  4. [内部処理] インストールフォルダーを取得
  5. 【↑設定にない場合】「AviUtl」と「拡張編集Plugin」(任意)をインストールするか、尋ねる
  6. メイン画面を表示

メイン画面

  • プラグイン・スクリプトをリスト形式で表示
    • 内容
      • 名称
      • 開発者
      • 説明
      • タイプ
      • バージョン
      • サイト
  • チェックボックスで選択可
    • 選択してできること
      • 最新バージョンを取得
      • 最新バージョンをダウンロード
  • 並び替え・絞り込み可

タブ

AviUtl プラグイン スクリプト
プラグイン(スクリプト) 概要 開発者 タイプ バージョン
プラグインサンプル1 ~なプラグイン ato lash 入力 1.0.0
プラグインサンプル2 ?なプラグイン bto lash 出力 v1.6.2
プラグインサンプル3 !なプラグイン cto lash フィルタ r530

プラグイン名: プラグインサンプル1

概要: ~なプラグイン

詳細: ~を@@する

開発者: ato lash

タイプ: 入力

バージョン: 1.0.0

配布サイト: https://~~~~~~.jp/

技術的想定

レポジトリ

https://github.com/hal-shu-sato/apm

検討事項

  • CLIベースのプログラムにして、GUIから操作するようにするかどうか
  • apm.jsonをディレクトリ内に作って、ディレクトリごとに管理するかどうか
{
"core": {
"aviutl": "",
"exedit": ""
},
"plugins": {},
"scripts": {}
}
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="http://halshusato.starfree.jp/ato_lash/aviutl/">
<xsd:simpleType name="pluginType">
<xsd:list>
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="input" />
<xsd:enumeration value="output" />
<xsd:enumeration value="filter" />
<xsd:enumeration value="color" />
<xsd:enumeration value="language" />
</xsd:restriction>
</xsd:simpleType>
</xsd:list>
</xsd:simpleType>
<xsd:simpleType name="scriptType">
<xsd:list>
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="animation" />
<xsd:enumeration value="object" />
<xsd:enumeration value="scene" />
<xsd:enumeration value="camera" />
<xsd:enumeration value="track" />
</xsd:restriction>
</xsd:simpleType>
</xsd:list>
</xsd:simpleType>
<xsd:complexType name="releases">
<xsd:sequence>
<xsd:element name="fileURL" maxOccurs="unbounded">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base="xsd:anyURI">
<xsd:attribute name="version" type="xsd:string" use="required" />
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
<xsd:attribute name="prefix" type="xsd:anyURI" use="optional" />
</xsd:complexType>
<xsd:complexType name="files">
<xsd:sequence>
<xsd:element name="file" maxOccurs="unbounded">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base="xsd:string">
<xsd:attribute name="optional" type="xsd:boolean" default="false" use="optional" />
<xsd:attribute name="directory" type="xsd:boolean" default="false" use="optional" />
<xsd:attribute name="archivePath" type="xsd:string" use="optional" />
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:schema>
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:au="http://halshusato.starfree.jp/ato_lash/aviutl/">
<xsd:import namespace="http://halshusato.starfree.jp/ato_lash/aviutl/" schemaLocation="au.xsd" />
<xsd:element name="core">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="aviutl" type="version" />
<xsd:element name="exedit" type="version" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:complexType name="version">
<xsd:sequence>
<xsd:element name="files" type="au:files" />
<xsd:element name="latestVersion" type="xsd:string" />
<xsd:element name="releases" type="au:releases" />
</xsd:sequence>
</xsd:complexType>
</xsd:schema>
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:au="http://halshusato.starfree.jp/ato_lash/aviutl/">
<xsd:import namespace="http://halshusato.starfree.jp/ato_lash/aviutl/" schemaLocation="au.xsd" />
<xsd:element name="plugin">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="name" type="xsd:string" />
<xsd:element name="developer" type="xsd:string" />
<xsd:element name="type" type="au:pluginType" />
<xsd:element name="pageURL" type="xsd:anyURI" />
<xsd:element name="latestVersion" type="xsd:string" />
<xsd:element name="releases" type="au:releases" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:au="http://halshusato.starfree.jp/ato_lash/aviutl/">
<xsd:import namespace="http://halshusato.starfree.jp/ato_lash/aviutl/" schemaLocation="au.xsd" />
<xsd:element name="plugins">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="plugin" maxOccurs="unbounded" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="plugin">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="id" type="xsd:string" />
<xsd:element name="name" type="xsd:string" />
<xsd:element name="overview" type="xsd:string" />
<xsd:element name="description" type="xsd:string" />
<xsd:element name="developer" type="xsd:string" />
<xsd:element name="type" type="au:pluginType" />
<xsd:element name="pageURL" type="xsd:anyURI" />
<xsd:element name="downloadURL" type="xsd:anyURI" />
<xsd:element name="downloadMirrorURL" type="xsd:anyURI" minOccurs="0" />
<xsd:element name="latestVersion" type="xsd:string" />
<xsd:element name="detailURL" type="xsd:anyURI" />
<xsd:element name="installer" type="xsd:string" minOccurs="0" />
<xsd:element name="installArg" type="xsd:string" minOccurs="0" />
<xsd:element name="files" type="au:files" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:au="http://halshusato.starfree.jp/ato_lash/aviutl/">
<xsd:import namespace="http://halshusato.starfree.jp/ato_lash/aviutl/" schemaLocation="au.xsd" />
<xsd:element name="script">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="name" type="xsd:string" />
<xsd:element name="developer" type="xsd:string" />
<xsd:element name="type" type="au:scriptType" />
<xsd:element name="pageURL" type="xsd:anyURI" />
<xsd:element name="latestVersion" type="xsd:string" />
<xsd:element name="releases" type="au:releases" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:au="http://halshusato.starfree.jp/ato_lash/aviutl/">
<xsd:import namespace="http://halshusato.starfree.jp/ato_lash/aviutl/" schemaLocation="au.xsd" />
<xsd:element name="scripts">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="script" maxOccurs="unbounded" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="script">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="id" type="xsd:string" />
<xsd:element name="name" type="xsd:string" />
<xsd:element name="overview" type="xsd:string" />
<xsd:element name="description" type="xsd:string" />
<xsd:element name="developer" type="xsd:string" />
<xsd:element name="type" type="au:scriptType" />
<xsd:element name="pageURL" type="xsd:anyURI" />
<xsd:element name="downloadURL" type="xsd:anyURI" />
<xsd:element name="latestVersion" type="xsd:string" />
<xsd:element name="versionURL" type="xsd:anyURI" />
<xsd:element name="files" type="au:files" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment