mirror of
				https://git.unlock-music.dev/um/web.git
				synced 2025-11-04 14:23:29 +08:00 
			
		
		
		
	feat(storage): Pass over config to worker thread on decryption call
(cherry picked from commit 36d616398eac4e8d51863863fa5205fe1c91267f)
This commit is contained in:
		
							parent
							
								
									d8b362efbe
								
							
						
					
					
						commit
						eaf457e6a0
					
				@ -39,6 +39,7 @@
 | 
			
		||||
import { spawn, Worker, Pool } from 'threads';
 | 
			
		||||
import { CommonDecrypt } from '@/decrypt/common.ts';
 | 
			
		||||
import { DecryptQueue } from '@/utils/utils';
 | 
			
		||||
import { storage } from '@/utils/storage';
 | 
			
		||||
 | 
			
		||||
export default {
 | 
			
		||||
  name: 'FileSelector',
 | 
			
		||||
@ -76,7 +77,7 @@ export default {
 | 
			
		||||
      this.queue.queue(async (dec = CommonDecrypt) => {
 | 
			
		||||
        console.log('start handling', file.name);
 | 
			
		||||
        try {
 | 
			
		||||
          this.$emit('success', await dec(file));
 | 
			
		||||
          this.$emit('success', await dec(file, await storage.getAll()));
 | 
			
		||||
        } catch (e) {
 | 
			
		||||
          console.error(e);
 | 
			
		||||
          this.$emit('error', e, file.name);
 | 
			
		||||
 | 
			
		||||
@ -10,8 +10,15 @@ import { Decrypt as TmDecrypt } from '@/decrypt/tm';
 | 
			
		||||
import { Decrypt as JooxDecrypt } from '@/decrypt/joox';
 | 
			
		||||
import { DecryptResult, FileInfo } from '@/decrypt/entity';
 | 
			
		||||
import { SplitFilename } from '@/decrypt/utils';
 | 
			
		||||
import { storage } from '@/utils/storage';
 | 
			
		||||
import InMemoryStorage from '@/utils/storage/InMemoryStorage';
 | 
			
		||||
 | 
			
		||||
export async function CommonDecrypt(file: FileInfo, config: Record<string, any>): Promise<DecryptResult> {
 | 
			
		||||
  // Worker thread will fallback to in-memory storage.
 | 
			
		||||
  if (storage instanceof InMemoryStorage) {
 | 
			
		||||
    await storage.setAll(config);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
export async function CommonDecrypt(file: FileInfo): Promise<DecryptResult> {
 | 
			
		||||
  const raw = SplitFilename(file.name);
 | 
			
		||||
  let rt_data: DecryptResult;
 | 
			
		||||
  switch (raw.ext) {
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user