mirror of
https://git.um-react.app/um/um-react.git
synced 2025-11-27 19:13:01 +00:00
82 lines
3.2 KiB
TypeScript
82 lines
3.2 KiB
TypeScript
import { RiFileCopyLine } from 'react-icons/ri';
|
||
import { ExtLink } from '~/components/ExtLink';
|
||
import { FilePathBlock } from '~/components/FilePathBlock';
|
||
import { VQuote } from '~/components/HelpText/VQuote';
|
||
import { MacCommandKey } from '~/components/Key/MacCommandKey';
|
||
import { ShiftKey } from '~/components/Key/ShiftKey';
|
||
import { copyToClipboard } from '~/util/clipboard';
|
||
|
||
import BlockUpdateScript from './assets/QQ 音乐 Mac 屏蔽升级.tar.gz?base64';
|
||
import { DownloadBase64 } from '~/components/DownloadBase64';
|
||
import { useContext } from 'react';
|
||
import { InSecretImportModalContext } from '~/context/InSecretImportModal';
|
||
|
||
const MAC_CLIENT_URL =
|
||
'https://web.archive.org/web/20230903/https://dldir1.qq.com/music/clntupate/mac/QQMusicMac_Mgr.dmg';
|
||
const MAC_CLIENT_TG_URL = 'https://t.me/um_lsr_ch/21';
|
||
const DB_PATH =
|
||
'~/Library/Containers/com.tencent.QQMusicMac/Data/Library/Application Support/QQMusicMac/mmkv/MMKVStreamEncryptId';
|
||
|
||
export function InstructionsMacV8() {
|
||
const inSecretImportModal = useContext(InSecretImportModalContext);
|
||
|
||
return (
|
||
<>
|
||
<p className="mt-4">获取 QQ 音乐 Mac 客户端 8.8.0:</p>
|
||
<ul className="list-disc pl-6">
|
||
<li>
|
||
<ExtLink className="link-info" href={MAC_CLIENT_URL}>
|
||
通过 <code>Archive.org</code> 缓存下载(慢)
|
||
</ExtLink>
|
||
</li>
|
||
<li>
|
||
<ExtLink className="link-info" href={MAC_CLIENT_TG_URL}>
|
||
通过 Telegram 下载(需要账号)
|
||
</ExtLink>
|
||
</li>
|
||
</ul>
|
||
|
||
<p className="mt-4">
|
||
部分用户可能会被强制要求更新。你可以下载
|
||
<DownloadBase64 filename="QQ 音乐 Mac v8.8.0 屏蔽升级.tar.gz" data={BlockUpdateScript}></DownloadBase64>
|
||
并执行 <code>QQ 音乐 Mac 屏蔽升级.command</code>。
|
||
<span>其原理是修改 QQ 音乐的版本号,让其认为自己是最新版本,从而达到屏蔽更新的效果。</span>
|
||
</p>
|
||
|
||
<p className="mt-4">密钥文件通常存储在下述路径:</p>
|
||
<FilePathBlock>{DB_PATH}</FilePathBlock>
|
||
|
||
<h4 className="font-bold text-lg mt-4">导入密钥</h4>
|
||
<ol className="list-decimal pl-6">
|
||
<li>
|
||
<button className="btn btn-sm btn-outline btn-accent mr-2" onClick={() => copyToClipboard(DB_PATH)}>
|
||
<RiFileCopyLine className="text-xl" />
|
||
<span>复制</span>
|
||
</button>
|
||
<code>MMKVStreamEncryptId</code> 文件路径
|
||
</li>
|
||
<li>
|
||
{inSecretImportModal ? (
|
||
<p>
|
||
点击上方的<VQuote>文件选择区域</VQuote>,打开<VQuote>文件选择框</VQuote>
|
||
</p>
|
||
) : (
|
||
<p>前往设定页面,提交该密钥文件。</p>
|
||
)}
|
||
<p>
|
||
※ 你可以在文件选择对话框按下
|
||
<VQuote>
|
||
<ShiftKey className="mx-1" />
|
||
{'+'}
|
||
<MacCommandKey className="mx-1" />
|
||
{'+'}
|
||
<kbd className="kbd mx-1">G</kbd>
|
||
</VQuote>
|
||
组合键打开<VQuote>路径输入框</VQuote>,粘贴文件路径并回车提交。
|
||
</p>
|
||
</li>
|
||
</ol>
|
||
</>
|
||
);
|
||
}
|