开源了一个 Windows 脚本管理器「不忙脚本盒子」:自动配环境,让多语言脚本图形化运行 – 不忙-熊猫

开源了一个 Windows 脚本管理器「不忙脚本盒子」:自动配环境,让多语言脚本图形化运行 – 不忙-熊猫


オープンソース · 無料 · 機能制限なし · ログイン不要 | Windows 10/11のみ

一般ユーザーがスクリプトを簡単に使用できるようにする

この文章が私が「Not Busy Script Box」を作成する出発点になりました。この記事は開発者向けで、その概要、メカニズムの設計方法、侵入をゼロにしながら既存のスクリプトを統合する方法について説明します。


目次


1. 背景: スクリプト配布のラストマイル

スクリプトを書くことと、スクリプトを使用することは別のことです。前者は開発の問題であり、後者は配布の問題です。現実的なブレークポイントは次のとおりです。

  • 実行環境 (Python/ノード、依存関係、ffmpeg およびその他の外部バイナリ) はユーザーが準備する必要があります。
  • 対話はコマンドラインのみです。
  • 配布はファイル システムまたは GitHub に依存しており、統合された検索、インストール、更新リンクはありません。

その結果、スクリプトを書ける人にはツールは必要なく、本当に必要な人はブロックされてしまいます。スクリプトを作成できるからといって、ユーザーがスクリプトを使用できるわけではありません。

2. ポジショニング: スクリプト駆動の効率化ツールボックス

Busy Script Box は、ユーザー側から「環境 + コマンドライン + パラメーター入力」を取り除き、スクリプトをクリック可能なツールに変えます。そのコアは完全にスクリプト駆動であり、Python、Node.js、PowerShell、BAT/CMD、AutoHotkey、HTML、さらにはコンパイルされた EXE もサポートしています。

「統合プラグイン API」ルートと比較したスクリプト駆動ルートの違いは、拡張機能が既存のエコシステムを再利用し、プラットフォーム API に合わせて既存のスクリプトを書き直す必要がないことです。現在、スクリプト ライブラリが組み込まれています 約100のスクリプト拡大し続けています。
开源了一个 Windows 脚本管理器「不忙脚本盒子」:自动配环境,让多语言脚本图形化运行 – 不忙-熊猫

3. メカニズム 1: 宣言的アクセス

アクセス後はスクリプト本体は変更されず、宣言ファイルが追加されるだけです。 bm-scripts-box-rc.toml動作環境と入力パラメータについて説明します。手順 (フィールドは公式文書に従う必要があります。完全な仕様を参照してください):

# bm-scripts-box-rc.toml
[bmscriptsbox]

[bmscriptsbox.info]  ## 脚本基本信息
id = "3aeabd2d-9ee9-4eaf-9cb3-24aa7f5668b9"
name = "脚本名称"
desc = "脚本描述"
version = "1.1.0"
icon = "./imgs/img.png"

[bmscriptsbox.runtime]  ## 环境声明
language = "python"
language_version = ">=3.8"
entry = "main.py"
terminal = "always"
binaries = [{name = "pdfcpu"}]

[bmscriptsbox.triggers.context_menu]  ## 声明支持右键触发
enabled = true
targets = ["files"]
filters = [".pdf"]

[bmscriptsbox.triggers.shortcut]   ## 声明支持快捷键触发
enabled = true
input_type = "files"
filters = [".pdf"]

[[bmscriptsbox.inputs]]
name = "target_paths"
label = "PDF 文件"
type = "list"
exts = [".pdf"]
pick = "files"
description = "输入数据描述"

宣言されていないパラメータや調整されていないコード ロジックは影響を受けず、元のスクリプトへの侵入はありません。コミュニティ スクリプトのソース コードは GitHub でホストされています。ローカルにインストールした場合でも、ソース コード形式のままであるため、レビュー、変更し、AI アシスタントに引き渡して継続的な反復を行うことができます。

独自のスクリプトをボックスに接続する方法 (3 つのステップ)

  1. ステートメントを書く: スクリプトディレクトリに新規作成します。 bm-scripts-box-rc.toml(ファイル名は固定)、スクリプト名、言語とエントリ、トリガー方法(右クリック/ショートカットキー/スーパーコピー/タイミング)とパラメータを宣言し、元のスクリプトコードを一行も変更しないでください。
  2. ローカルセルフテスト: ディレクトリを zip 形式に作成し (ファイルをルート ディレクトリに直接置きます)、「スクリプト管理 → インストール スクリプト」ボックスでそれを選択します。このボックスは、対応する言語のポータブル ランタイムを自動的にダウンロードし、仮想環境を構築し、依存関係をインストールします。
  3. 投稿コミュニティ: GitHub ウェアハウスのアドレスを送信して、スクリプト コミュニティに公開します。 Webhook を設定した後、コードを 1 回プッシュすると、コミュニティ バージョンが自動的に更新されます。

ワンセンテンス メカニズム: ボックスはコマンド ラインの最初のパラメーターとして「パラメーター JSON ファイル パス」をスクリプトに渡し、スクリプトはそれを読み取り、動作して終了します。 SDK やインポートはなく、基本クラスから継承する必要もありません。

完全なアクセス仕様については、開発ドキュメントを参照してください。

4. メカニズム 2: ランタイムと依存関係の自動デプロイメント

このボックスは、インストール スクリプトの段階で自動的に完成します。

  • ランタイムの識別とインストール (Python/ノードなど)。
  • pip/npm 依存関係のインストール;
  • 外部バイナリのダウンロード (ffmpeg、pandoc など)。
  • スクリプト間のバージョンの競合を回避するための依存関係の分離。

開発者にとっての価値: スクリプトに「環境インストール手順」の長いリストを添付する必要はなくなりました。ユーザーにとっての価値: ツールをインストールするために、最初に環境構成エンジニアである必要はありません。

5. メカニズム 3: パラメータ宣言によりインターフェイス生成が開始される

どのパラメータがスクリプトによって宣言されているかに応じて、ボックスは対応するグラフィカル ウィンドウ (ディレクトリ選択、数値入力、ドロップダウン、ブール スイッチなど) をレンダリングします。元々ブラックボックスのコマンドラインしかなかったスクリプトは、起動後に入力可能なウィンドウになり、ユーザーはコマンドラインに触れません。

忙しくないスクリプト ボックスのグラフィカル インターフェイス

6. ユーザー側の機能

  • スクリプト コミュニティ: カテゴリの参照、キーワード検索、インストール ボリュームの参照、ワンクリック インストール。
  • ワンクリックスタート: カードをクリックして実行します。
  • トリガー方法: マウスの中ボタン/Ctrl キーのダブルクリック、システム右クリック (ファイル パスに自動的に移動)、カスタム グローバル ホットキー、スーパー コピー (Ctrl+C を 2 回押して選択したテキストを移動)、スケジュールされたタスク (1 回/毎日/毎週/毎月)。
  • 自動更新: コミュニティが新しいバージョンをプッシュし、ワンクリックでアップグレードできるため、再インストールする必要はありません。
  • 視覚的な管理: モバイル アプリの管理など、インストール、起動、管理、アンインストール。

ビジー状態のスクリプト ボックスのショートカット キー
ビジー状態のスクリプト ボックスの右クリック メニュー
忙しくないスクリプトボックスのスーパーコピー
スクリプトボックスのスケジュールされたタスクが忙しくありません

7. 生態学的開放、許可、境界

  • 生態学的開放性: 箱自体スクリプト コードはホストされず、取得サービスとインストール サービスのみが提供されます。;すべてのスクリプト ライブラリのソース コードは GitHub 上のオープン ソースであり、ローカルにインストールされたスクリプトもソース コード形式で実行できます。ブラックボックスはまったくありません。
  • 言語やフレームワークに制限はありません:アクセス言語やアクセスフレームワークに制限はありません。 Python / Node.js / AutoHotkey / PowerShell などの巨大なエコシステムに支えられ、既存の優れたオープンソース プロジェクトを低コストでボックスに接続し、ローカルで使用できます。開発者は、ウェアハウスのアドレスを送信することでスクリプトを公開できます。
  • 安全性: データはデフォルトでローカルで処理され、アップロードされません。インストール スクリプト段階を除き、オフライン操作をサポートします。オープンソースで監査可能。
  • ライセンス: MIT + コモンズ条項 – 個人および組織による内部使用は無料。商用利用(販売、梱包料、外部充電サービスなど)には作者からの書面による許可が必要です。ソースコードを金銭で販売したり、再配布したりすることは禁止されています。
  • 境界: Windows 10/11 のみをサポートします。このボックスは実行および配布ベースであり、スクリプト自体の品質に代わるものではありません。コミュニティ スクリプトの品質は各作成者によって異なります。インストール前にソースコードを確認することをお勧めします。

8. よくある質問

Q: ユーザーは自分で Python/Node をインストールする必要がありますか?
いいえ、ランタイムと依存関係はインストール段階で自動的に準備されます。

Q: スクリプトを書き直す必要がありますか?
いいえ、TOML ステートメントを追加するだけで、侵入はありません。

Q: スクリプトはブラック ボックスで実行されますか?
いいえ、コミュニティ スクリプトとローカル インストールはソース コード形式であり、自分で確認できます。

Q: uTools/Quicker との関係は何ですか?
異なる答え。これらは、「多数の既製の機能への 1 つの入り口」として知られています。このプロジェクトは「オープン スクリプト エコシステム + 自動環境」で知られており、既存の Python/Node スクリプトをデスクトップ ツールに直接変換できる開発者に適しています。


結論

ボックスが解決したいのは、スクリプトを「実行できる」から「ユーザーが使用できる」までの最後のマイルです。ステートメントを追加することで接続できるスクリプトが手元にある場合は、コミュニティに送信してください。このプロジェクトではスターやフィードバックも歓迎します。



Source link

Leave a Reply

Your email address will not be published. Required fields are marked *