Prelim Crunchy Update

This commit is contained in:
AnimeDL 2023-01-21 10:49:05 -08:00
parent d66d86fb7c
commit 95b8c14b89
4 changed files with 37 additions and 6 deletions

View file

@ -55,7 +55,9 @@ export type CrunchyEpMeta = {
data: {
mediaId: string,
lang?: LanguageItem,
playback?: string
playback?: string,
streams?: string,
videoStreams?: string
}[],
seasonTitle: string,
episodeNumber: string,

View file

@ -758,6 +758,9 @@ export default class Crunchy implements ServiceClass {
if(item.playback){
epMeta.data[0].playback = item.playback;
}
if(item.__links__.streams?.href){
epMeta.data[0].streams = item.__links__.streams.href;
}
// find episode numbers
if((but && item.playback && !doEpsFilter.isSelected([selEpId, item.id])) || (all && item.playback) || (!but && doEpsFilter.isSelected([selEpId, item.id]) && !item.isSelected && item.playback)){
selectedMedia.push(epMeta);
@ -868,8 +871,8 @@ export default class Crunchy implements ServiceClass {
epMeta.episodeTitle = item.title;
break;
}
if(item.playback){
epMeta.data[0].playback = item.playback;
if(item.__links__.streams.href){
epMeta.data[0].streams = item.__links__.streams.href;
selectedMedia.push(epMeta);
item.isSelected = true;
}
@ -885,6 +888,11 @@ export default class Crunchy implements ServiceClass {
fileName: string,
error: boolean
} | undefined> {
if(!this.cmsToken.cms){
console.log('[ERROR] Authentication required!');
return;
}
let mediaName = '...';
let fileName;
const variables: Variable[] = [];
@ -903,6 +911,24 @@ export default class Crunchy implements ServiceClass {
let dlVideoOnce = false; // Variable to save if best selected video quality was downloaded
for (const mMeta of medias.data) {
if(mMeta.streams) {
mMeta.videoStreams = [
domain.api_beta,
mMeta.streams,
'?',
new URLSearchParams({
streams: 'all',
textType: 'all',
'Policy': this.cmsToken.cms.policy,
'Signature': this.cmsToken.cms.signature,
'Key-Pair-Id': this.cmsToken.cms.key_pair_id,
}),
].join('');
// console.log(mMeta.vstreams);
mMeta.playback = mMeta.videoStreams;
}
console.log(`[INFO] Requesting: [${mMeta.mediaId}] ${mediaName}`);
const playbackReq = await this.req.getData(mMeta.playback as string);
@ -1450,8 +1476,11 @@ export default class Crunchy implements ServiceClass {
if(item.playback){
epMeta.data[0].playback = item.playback;
}
if(item.__links__.streams?.href){
epMeta.data[0].streams = item.__links__.streams.href;
}
// find episode numbers
if(item.playback && ((but && !doEpsFilter.isSelected([epNum, item.id])) || (all || (doEpsFilter.isSelected([epNum, item.id])) && !but))) {
if((item.playback || item.__links__.streams?.href) && ((but && !doEpsFilter.isSelected([epNum, item.id])) || (all || (doEpsFilter.isSelected([epNum, item.id])) && !but))) {
if (Object.prototype.hasOwnProperty.call(ret, key)) {
const epMe = ret[key];
epMe.data.push({

View file

@ -212,7 +212,7 @@ const args: TAppArg<boolean|number|string|unknown[]>[] = [
describe: 'Select specific stream',
choices: [1, 2, 3, 4, 5, 6, 7],
default: {
default: 1
default: 2
},
docDescribe: true,
service: 'crunchy',

View file

@ -1,7 +1,7 @@
{
"name": "multi-downloader-nx",
"short_name": "aniDL",
"version": "3.1.0",
"version": "3.2.0",
"description": "Download videos from Funimation or Crunchyroll via cli",
"keywords": [
"download",