mirror of
https://github.com/onyx-and-iris/meld-cli.git
synced 2025-07-12 10:21:45 +00:00
82 lines
2.0 KiB
JavaScript
82 lines
2.0 KiB
JavaScript
import meowHelp from "cli-meow-help";
|
|
|
|
const commands = {
|
|
start: {
|
|
desc: "Start streaming",
|
|
},
|
|
stop: {
|
|
desc: "Stop streaming",
|
|
},
|
|
status: {
|
|
desc: "Show the current streaming status",
|
|
},
|
|
};
|
|
|
|
const flags = {
|
|
help: {
|
|
type: "boolean",
|
|
shortFlag: "h",
|
|
desc: "Display help information",
|
|
},
|
|
};
|
|
|
|
const recordHelp = meowHelp({
|
|
name: "meld-cli record",
|
|
flags,
|
|
commands,
|
|
description: "Manage recording in Meld",
|
|
defaults: false,
|
|
});
|
|
|
|
function recordStart(channel) {
|
|
if (!channel.objects || !channel.objects.meld) {
|
|
return Promise.reject(new Error("Meld object not found in channel."));
|
|
}
|
|
|
|
const meld = channel.objects.meld;
|
|
if (meld.isRecording) {
|
|
return Promise.reject(new Error("Recording is already active."));
|
|
}
|
|
|
|
return new Promise((resolve, reject) => {
|
|
meld.toggleRecord()
|
|
.then(() => {
|
|
resolve("Recording started successfully.");
|
|
})
|
|
.catch((err) => {
|
|
reject(err);
|
|
});
|
|
});
|
|
}
|
|
|
|
function recordStop(channel) {
|
|
if (!channel.objects || !channel.objects.meld) {
|
|
return Promise.reject(new Error("Meld object not found in channel."));
|
|
}
|
|
|
|
const meld = channel.objects.meld;
|
|
if (!meld.isRecording) {
|
|
return Promise.reject(new Error("Recording is not currently active."));
|
|
}
|
|
|
|
return new Promise((resolve, reject) => {
|
|
meld.toggleRecord()
|
|
.then(() => {
|
|
resolve("Recording stopped successfully.");
|
|
})
|
|
.catch((err) => {
|
|
reject(err);
|
|
});
|
|
});
|
|
}
|
|
|
|
function recordStatus(channel) {
|
|
if (!channel.objects || !channel.objects.meld) {
|
|
return Promise.reject(new Error("Meld object not found in channel."));
|
|
}
|
|
|
|
const meld = channel.objects.meld;
|
|
return Promise.resolve(meld.isRecording);
|
|
}
|
|
|
|
export { recordHelp, recordStart, recordStop, recordStatus }; |