feat: initial implementation of qtfm android

This commit is contained in:
鲁树人
2023-11-29 23:45:56 +00:00
parent 85ab69d41d
commit 18d02a906b
12 changed files with 871 additions and 416 deletions

View File

@@ -6,7 +6,7 @@ import type { DecryptionResult } from '~/decrypt-worker/constants';
import type { DecryptCommandOptions } from '~/decrypt-worker/types';
import { decryptionQueue } from '~/decrypt-worker/client';
import { DecryptErrorType } from '~/decrypt-worker/util/DecryptError';
import { selectQMCv2KeyByFileName, selectKWMv2Key } from '../settings/settingsSelector';
import { selectQMCv2KeyByFileName, selectKWMv2Key, selectQtfmAndroidDevice } from '../settings/settingsSelector';
export enum ProcessState {
QUEUED = 'QUEUED',
@@ -73,8 +73,10 @@ export const processFile = createAsyncThunk<
.then((r) => r.arrayBuffer());
const options: DecryptCommandOptions = {
fileName: file.fileName,
qmc2Key: selectQMCv2KeyByFileName(state, file.fileName),
kwm2key: selectKWMv2Key(state, new DataView(fileHeader)),
qingTingAndroidDevice: selectQtfmAndroidDevice(state),
};
return decryptionQueue.add({ id: fileId, blobURI: file.raw, options }, onPreProcess);
});