添加 Levenshtein 算法(QMCv2) #33

Merged
lsr merged 4 commits from feat/levenshtein-key-finder into main 2023-06-16 19:45:48 +00:00
3 changed files with 143 additions and 94 deletions
Showing only changes of commit b85c464e24 - Show all commits

View File

@ -1,103 +1,51 @@
import { Box, Code, Heading, ListItem, OrderedList, Text, UnorderedList } from '@chakra-ui/react';
import { FilePathBlock } from '~/components/FilePathBlock';
const EXAMPLE_MEDIA_ID = '0011wjLv1bIkvv';
const EXAMPLE_NAME_IOS = '333407709-0011wjLv1bIkvv-1.mgalaxy';
const EXAMPLE_NAME_DB = 'Q0M00011wjLv1bIkvv.mflac';
import {
Accordion,
AccordionButton,
AccordionIcon,
AccordionItem,
AccordionPanel,
Box,
Heading,
Text,
} from '@chakra-ui/react';
import { InstructionsIOSCondition } from './InstructionsIOSCondition';
export function InstructionsIOS() {
return (
<>
<Text>使 iOS </Text>
<Heading as="h3" size="md" mt="3">
</Heading>
<Text></Text>
<OrderedList>
<ListItem>
<Text>使 iOS </Text>
</ListItem>
<ListItem>
<Text></Text>
<FilePathBlock>/AppDomain-com.tencent.QQMusic/Documents/mmkv/</FilePathBlock>
</ListItem>
<ListItem>
<Text>
<Code>filenameEkeyMap</Code>
</Text>
</ListItem>
<ListItem>
<Text>
<Code>filenameEkeyMap</Code>
</Text>
</ListItem>
<ListItem>
<Text></Text>
</ListItem>
</OrderedList>
<Heading as="h3" size="md" mt="3">
线
</Heading>
<Box>
<Text></Text>
<Code>/AppDomain-com.tencent.QQMusic/Library/Application Support/com.tencent.QQMusic/iData/iMusic</Code>
<Text>
<Code>*.mgalaxy</Code>
</Text>
<Text>
<Code>[]-[id]-[].mgalaxy</Code>
</Text>
<Text>
&#x3000;<Code>{EXAMPLE_NAME_IOS}</Code>
</Text>
<Text>iOS 使 PC Mac iOS </Text>
<Text> PC Mac </Text>
</Box>
<Heading as="h3" size="md" mt="3">
线
</Heading>
<Text>使</Text>
<Text> </Text>
<OrderedList>
<ListItem>
<Text>
id <Code>{EXAMPLE_MEDIA_ID}</Code>
</Text>
</ListItem>
<ListItem>
<Text>
<Code>{EXAMPLE_NAME_DB}</Code>
</Text>
</ListItem>
<ListItem>
<Text>
<Code>{EXAMPLE_NAME_IOS}</Code>
<Code>{EXAMPLE_NAME_DB}</Code>
</Text>
</ListItem>
<ListItem>
<Text>
线<Code>{EXAMPLE_NAME_DB}</Code>
</Text>
</ListItem>
</OrderedList>
<Heading as="h3" size="md" mt="3">
</Heading>
<Text></Text>
<UnorderedList>
<ListItem>
<Text></Text>
<FilePathBlock>
/var/mobile/Containers/Data/Application/&lt;&gt;/Documents/mmkv/filenameEkeyMap
</FilePathBlock>
</ListItem>
<ListItem>
<Text>线</Text>
<FilePathBlock>
/var/mobile/Containers/Data/Application/&lt;&gt;/Library/Application
Support/com.tencent.QQMusic/iData/iMusic
</FilePathBlock>
</ListItem>
</UnorderedList>
<Accordion allowToggle mt="2">
<AccordionItem>
<Heading as="h3" size="md">
<AccordionButton>
<Box as="span" flex="1" textAlign="left">
iOS
</Box>
<AccordionIcon />
</AccordionButton>
</Heading>
<AccordionPanel pb={4}>
<InstructionsIOSCondition jailbreak={true} />
</AccordionPanel>
</AccordionItem>
<AccordionItem>
<Heading as="h3" size="md">
<AccordionButton>
<Box as="span" flex="1" textAlign="left">
iOS
</Box>
<AccordionIcon />
</AccordionButton>
</Heading>
<AccordionPanel pb={4}>
<InstructionsIOSCondition jailbreak={false} />
</AccordionPanel>
</AccordionItem>
</Accordion>
</>
);
}

View File

@ -0,0 +1,101 @@
import { Box, Code, Heading, Image, ListItem, OrderedList, Text } from '@chakra-ui/react';
import iosAllowBackup from './iosAllowBackup.webp';
import { FilePathBlock } from '~/components/FilePathBlock';
const EXAMPLE_MEDIA_ID = '0011wjLv1bIkvv';
const EXAMPLE_NAME_IOS = '333407709-0011wjLv1bIkvv-1.mgalaxy';
const EXAMPLE_NAME_DB = 'Q0M00011wjLv1bIkvv.mflac';
export function InstructionsIOSCondition({ jailbreak }: { jailbreak: boolean }) {
const useJailbreak = jailbreak;
const useBackup = !jailbreak;
const pathPrefix = jailbreak ? '/var/mobile/Containers/Data/Application/<随机>/' : '/AppDomain-';
return (
<>
<Heading as="h3" size="md">
</Heading>
<OrderedList>
{useBackup && (
<ListItem>
<Text> iOS </Text>
<Image src={iosAllowBackup}></Image>
</ListItem>
)}
{useBackup && (
<ListItem>
<Text>使 iOS </Text>
</ListItem>
)}
<ListItem>
{useBackup && <Text></Text>}
{useJailbreak && <Text>访</Text>}
<FilePathBlock>{pathPrefix}com.tencent.QQMusic/Documents/mmkv/</FilePathBlock>
</ListItem>
<ListItem>
<Text>
<Code>filenameEkeyMap</Code>
</Text>
</ListItem>
<ListItem>
<Text>
<Code>filenameEkeyMap</Code>
</Text>
</ListItem>
<ListItem>
<Text></Text>
</ListItem>
</OrderedList>
<Heading as="h3" size="md" mt="3">
线
</Heading>
<Box>
<Text>访</Text>
<FilePathBlock>
{pathPrefix}com.tencent.QQMusic/Library/Application Support/com.tencent.QQMusic/iData/iMusic
</FilePathBlock>
<Text>
<Code>[].m[]</Code>
</Text>
<Text>
<Code>[song_id]-[mid]-[].m[]</Code>
</Text>
<Text>
&#x3000;<Code>{EXAMPLE_NAME_IOS}</Code>
</Text>
</Box>
<Heading as="h3" size="md" mt="3">
线
</Heading>
<Text>使</Text>
<Text> </Text>
<OrderedList>
<ListItem>
<Text>
<Code>[mid]</Code> <Code>{EXAMPLE_MEDIA_ID}</Code>
</Text>
</ListItem>
<ListItem>
<Text>
<Code>{EXAMPLE_NAME_DB}</Code>
</Text>
</ListItem>
<ListItem>
<Text>
<Code display="inline">{EXAMPLE_NAME_IOS}</Code>
<Code display="inline">{EXAMPLE_NAME_DB}</Code>
</Text>
</ListItem>
<ListItem>
<Text>
<Code>{EXAMPLE_NAME_DB}</Code>
</Text>
</ListItem>
</OrderedList>
</>
);
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 KiB