Skip to content

Commit

Permalink
stagecrowd hotfix
Browse files Browse the repository at this point in the history
  • Loading branch information
Last-Order committed Jan 9, 2024
1 parent 8f6e5cc commit c867323
Show file tree
Hide file tree
Showing 5 changed files with 35 additions and 3 deletions.
4 changes: 2 additions & 2 deletions npm-shrinkwrap.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "minyami",
"version": "5.0.2",
"version": "5.1.0",
"description": "",
"main": "dist/exports.js",
"types": "dist/exports.d.ts",
Expand Down
21 changes: 21 additions & 0 deletions src/core/archive.ts
Original file line number Diff line number Diff line change
Expand Up @@ -159,6 +159,22 @@ class ArchiveDownloader extends Downloader {
parser.default.parse({
downloader: this,
});
} else if (this.m3u8Path.includes("bcovlive")) {
// stagecrowd
logger.info("Site comfirmed: Stagecrowd.");
try {
const siteParser = await import("./parsers/bcovlive");
const parser = await import("./parsers/common");
await siteParser.default.parse({
downloader: this,
});
await parser.default.parse({
downloader: this,
});
} catch (e) {
logger.error("Aborted due to critical error.", e);
this.emit("critical-error", e);
}
} else {
logger.warning(`Site is not supported by Minyami Core. Try common parser.`);
try {
Expand Down Expand Up @@ -438,6 +454,11 @@ class ArchiveDownloader extends Downloader {
task.parentGroup.retryActions = true;
task.parentGroup.subTasks.unshift(task);
}
} else if (this._internal_dropChunksInArchiveMode && task.retryCount >= this.retries) {
// 对于部分网站 放弃无法下载的分块
this.taskStatusRecord[task.id] = TaskStatus.DROPPED;
this.finishedChunkCount++;
logger.warning(`Processing ${task.filename} failed, max retries exceed, drop.`);
} else {
this.downloadTasks.unshift(task);
}
Expand Down
2 changes: 2 additions & 0 deletions src/core/downloader.ts
Original file line number Diff line number Diff line change
Expand Up @@ -139,6 +139,8 @@ class Downloader extends EventEmitter {

taskStatusRecord: TaskStatus[] = [];

_internal_dropChunksInArchiveMode = false;

protected async onKeyUpdated({ keyUrls, explicitKeys, saveEncryptionKey }: OnKeyUpdatedParams) {}

protected onTaskOutputFileNaming(chunk: M3U8Chunk, id: number) {
Expand Down
9 changes: 9 additions & 0 deletions src/core/parsers/bcovlive.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
import { ParserOptions, ParserResult } from "./types";

export default class Parser {
static prefix = "";
static parse({ downloader }: ParserOptions): ParserResult {
downloader._internal_dropChunksInArchiveMode = true;
return {};
}
}

0 comments on commit c867323

Please sign in to comment.