Prelim Crunchy Update
This commit is contained in:
parent
d66d86fb7c
commit
95b8c14b89
4 changed files with 37 additions and 6 deletions
4
@types/crunchyTypes.d.ts
vendored
4
@types/crunchyTypes.d.ts
vendored
|
|
@ -55,7 +55,9 @@ export type CrunchyEpMeta = {
|
|||
data: {
|
||||
mediaId: string,
|
||||
lang?: LanguageItem,
|
||||
playback?: string
|
||||
playback?: string,
|
||||
streams?: string,
|
||||
videoStreams?: string
|
||||
}[],
|
||||
seasonTitle: string,
|
||||
episodeNumber: string,
|
||||
|
|
|
|||
35
crunchy.ts
35
crunchy.ts
|
|
@ -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({
|
||||
|
|
|
|||
|
|
@ -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',
|
||||
|
|
|
|||
|
|
@ -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",
|
||||
|
|
|
|||
Loading…
Reference in a new issue