dsh-vidi 0.8.3 → 0.8.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/client.js CHANGED
@@ -35955,7 +35955,10 @@ function LiveView(props) {
35955
35955
  const statusDetail = job?.status === "running" && !job.message && !job.vod ? CLOCK(Math.max(0, (tick - job.startedAt) / 1e3)) : "";
35956
35956
  const missing = deps.filter((d) => !d.ok && (d.name === "ffmpeg" || d.name === "yt-dlp" || (engine || "local") === "local" && d.name.startsWith("whisper")));
35957
35957
  const needsModel = !hasTranslator && shownLines.some((l) => l !== "src");
35958
- const hasMain = !!job && !(job.status === "error" && !job.files.length);
35958
+ const hasMain = !!job && !(job.status === "error" && !job.files.some((f) => /\.(mp4|m4a|srt|vtt)$/.test(f)));
35959
+ (0, react.useEffect)(() => {
35960
+ if (job && !hasMain) setSrcTabRaw(job.source === "device" ? "camera" : job.source === "push" ? "push" : job.source === "file" ? "file" : "link");
35961
+ }, [job?.id, hasMain]);
35959
35962
  const cams = (devices ?? []).filter((d) => d.kind !== "mic"), mics = (devices ?? []).filter((d) => d.kind === "mic");
35960
35963
  const camV = camVideo === "none" || cams.some((d) => d.id === camVideo) ? camVideo : cams.find((d) => d.preferred)?.id ?? cams.find((d) => d.kind === "camera")?.id ?? "none";
35961
35964
  const camA = mics.some((d) => d.id === camAudio) ? camAudio : mics.find((d) => d.preferred)?.id ?? mics[0]?.id ?? "";
@@ -36433,7 +36436,7 @@ function LiveView(props) {
36433
36436
  !accessIssue && (error || job?.status === "error") && /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
36434
36437
  className: "dshl-note warn",
36435
36438
  children: [
36436
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { children: error || (job?.message === "device-blocked" ? t("dev.blocked") : job?.message) }),
36439
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { children: error || (job?.message === "device-blocked" ? t("dev.blocked") : job?.message === "restored" ? t("st.failedEarlier") : job?.message) }),
36437
36440
  job?.message === "device-blocked" && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
36438
36441
  className: "dshl-link",
36439
36442
  onClick: () => openPrivacy(blockedKind()),
@@ -37356,6 +37359,7 @@ const en = {
37356
37359
  "dev.blocked": "No picture or sound from the device: DeepSeek Harness needs the system’s permission. Open System Settings, switch DeepSeek Harness on, then retry.",
37357
37360
  "dev.denied": "DeepSeek Harness needs permission to use the {d}. Open System Settings, switch it on in the list, then retry.",
37358
37361
  "dev.and": " and ",
37362
+ "st.failedEarlier": "This one did not finish last time.",
37359
37363
  "dev.k.camera": "camera",
37360
37364
  "dev.k.microphone": "microphone",
37361
37365
  "dev.k.screen": "screen",
@@ -37794,6 +37798,7 @@ const zh = {
37794
37798
  "dev.blocked": "设备没有传来画面和声音:DeepSeek Harness 需要系统授权。点「打开系统设置」,在列表里打开 DeepSeek Harness,再点重试。",
37795
37799
  "dev.denied": "DeepSeek Harness 需要{d}权限。点「打开系统设置」,在列表里打开它,再点重试。",
37796
37800
  "dev.and": "和",
37801
+ "st.failedEarlier": "上次这个没有成功。",
37797
37802
  "dev.k.camera": "摄像头",
37798
37803
  "dev.k.microphone": "麦克风",
37799
37804
  "dev.k.screen": "屏幕录制",
package/lib/index.mjs CHANGED
@@ -2119,7 +2119,8 @@ var LiveJob = class LiveJob extends EventEmitter {
2119
2119
  heights: this.heights,
2120
2120
  startedAt: this.startedAt,
2121
2121
  subs: this.subs,
2122
- status: this.status
2122
+ status: this.status,
2123
+ ...this.status === "error" ? { message: this.message } : {}
2123
2124
  }, null, 2));
2124
2125
  } catch {}
2125
2126
  }
@@ -2133,7 +2134,7 @@ var LiveJob = class LiveJob extends EventEmitter {
2133
2134
  job.duration = j.duration;
2134
2135
  job.captureDone = true;
2135
2136
  job.status = j.status === "error" ? "error" : "stopped";
2136
- job.message = "restored";
2137
+ job.message = j.status === "error" && j.message ? j.message : "restored";
2137
2138
  const seen = /* @__PURE__ */ new Map();
2138
2139
  if (existsSync(join(dir, "cues.jsonl"))) for (const line of readFileSync(join(dir, "cues.jsonl"), "utf8").split("\n")) {
2139
2140
  if (!line.trim()) continue;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dsh-vidi",
3
- "version": "0.8.3",
3
+ "version": "0.8.4",
4
4
  "description": "A video tool for DeepSeek Harness: watch live streams, videos and podcasts with real-time subtitles in any language, then clip and download",
5
5
  "type": "module",
6
6
  "license": "PolyForm-Noncommercial-1.0.0",