diff --git a/README.md b/README.md index 0719e49..abf2f23 100644 --- a/README.md +++ b/README.md @@ -54,7 +54,7 @@ services: - miraview-html:/var/www/miraview working_dir: /var/www/miraview environment: - MIRAVIEW_VERSION: v0.1.0 # ここのバージョンは適宜変更 + MIRAVIEW_VERSION: v0.1.1 # ここのバージョンは適宜変更 entrypoint: ash command: -c "curl -L https://github.com/maeda577/miraview/releases/download/$$MIRAVIEW_VERSION/build.tar.gz | tar -zxvf -" # 追加2 ここまで @@ -97,6 +97,11 @@ server: その後 http://[mirakcが動いているIPアドレス]:[ポート]/miraview/index.html へアクセスするとmiraviewが開くはずです。 +## URLプロトコルハンドラの設定 + +* [macOS用URLプロトコルハンドラの設定](./docs/mac-url.md) +* windows向けは今後作成 + ## 使用するAPI 以下のAPIを使用しています。試していませんが、Mirakurun互換のものしか使用していないのでMirakurunでも動作すると思います。 diff --git a/docs/mac-url.md b/docs/mac-url.md new file mode 100644 index 0000000..28c6a3f --- /dev/null +++ b/docs/mac-url.md @@ -0,0 +1,65 @@ +# mac用URLプロトコルハンドラの設定 + +番組ダイアログの選局ボタンを押した際にVLCを起動するための設定です。EPGStationのドキュメントも参考にしてください。[EPGStation/mac-url-scheme.md at master · l3tnun/EPGStation · GitHub](https://github.com/l3tnun/EPGStation/blob/master/doc/mac-url-scheme.md) + +## VLCのインストール + +* ブラウザではmpeg2を再生できません。再生のためにVLCをインストールしてください。 + * [オープンソースのベストなプレイヤー VLCメディアプレイヤーのオフィシャルダウンロードです。 - VideoLAN](https://www.videolan.org/vlc/) +* homebrewを導入済みの場合は以下コマンドでもインストール可能です + * `brew install --cask vlc` + * [vlc — Homebrew Formulae](https://formulae.brew.sh/cask/vlc) + +## URLプロトコルハンドラ用アプリの作成 + +1. スクリプトエディタを起動し、以下を入力してください + ``` applescript + # URLプロトコルハンドラ用の関数を作成 + on open location url_text + # プロトコルの変換前 miraview側と合わせる + set protocol_before to "vlc://" + # プロトコルの変換後 mirakcをhttpsで動かしている場合はhttpsに変更 + set protocol_after to "http://" + # 渡されたURLのプロトコルを書き換える + set AppleScript's text item delimiters to protocol_before + set txt_items to text items of url_text + set AppleScript's text item delimiters to "" + set scheme_txt to txt_items as Unicode text + # VLCを起動する + tell application "VLC" + OpenURL protocol_after & scheme_txt + activate + end tell + end open location + ``` +1. ファイル > 書き出す で以下の通り書き出してください + * ファイルフォーマット: アプリケーション + * 書き出し名: `miraview.app` など + * 場所: アプリケーション +1. `/Applications/miraview.app/Contents/Info.plist` に以下の通り追記してください + * 辿り着けない場合、finderでアプリケーション一覧を開き、書き出したmiraview.appを右クリックし「パッケージの内容を表示」とすると下位のディレクトリに行けます + ``` xml + + + + + + + CFBundleURLTypes + + + CFBundleURLName + + miraview.vlcscheme + CFBundleURLSchemes + + + vlc + + + + + + + ``` +1. ブラウザを再起動し、番組ダイアログの選局ボタンが反応することを確認してください diff --git a/package.json b/package.json index 8626e0a..f57facc 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "miraview", - "version": "0.1.0", + "version": "0.1.1", "private": true, "homepage": ".", "dependencies": { diff --git a/src/ConfigView.tsx b/src/ConfigView.tsx index 7193d08..815a884 100644 --- a/src/ConfigView.tsx +++ b/src/ConfigView.tsx @@ -84,7 +84,13 @@ function ConfigView(props: { onSave?: (savedConfig: MiraviewConfig) => void; }): const inputUrlRef = React.useRef(null); // configの保存関数 - function saveConfigToLocalStorage() { + function saveConfigToLocalStorage(): void { + // 検証に失敗したら中断する + if (inputProtocolRef?.current?.validity?.valid !== true || inputUrlRef?.current?.validity?.valid !== true) { + setSnackbarMessage({ message: '入力値の検証に失敗しました。エラーを確認してください', severity: 'error' }); + return; + } + try{ // プロトコルはバリデーションを信じてそのまま入れる localStorage.setItem(StorageKeys.config.streamProtocol, inputProtocolRef.current?.value!);