mirror of
https://github.com/FranP-code/ChatGPT.git
synced 2025-10-13 00:13:25 +00:00
chore: menu sync
This commit is contained in:
16
src/hooks/useEvent.ts
vendored
16
src/hooks/useEvent.ts
vendored
@@ -1,11 +1,12 @@
|
||||
import { invoke, http, fs, dialog } from '@tauri-apps/api';
|
||||
import { invoke, path, http, fs, dialog } from '@tauri-apps/api';
|
||||
|
||||
import useInit from '@/hooks/useInit';
|
||||
import useChatModel from '@/hooks/useChatModel';
|
||||
import { GITHUB_PROMPTS_CSV_URL, chatPromptsPath, genCmd } from '@/utils';
|
||||
import useChatModel, { useCacheModel } from '@/hooks/useChatModel';
|
||||
import { GITHUB_PROMPTS_CSV_URL, chatRoot, genCmd } from '@/utils';
|
||||
|
||||
export default function useEvent() {
|
||||
const { modelSet } = useChatModel('sync_prompts');
|
||||
const { modelCacheSet } = useCacheModel();
|
||||
// Using `emit` and `listen` will be triggered multiple times in development mode.
|
||||
// So here we use `eval` to call `__sync_prompt`
|
||||
useInit(() => {
|
||||
@@ -16,9 +17,14 @@ export default function useEvent() {
|
||||
});
|
||||
const data = (res.data || '') as string;
|
||||
if (res.ok) {
|
||||
await fs.writeTextFile(await chatPromptsPath(), data);
|
||||
const file = await path.join(await chatRoot(), 'cache_model', 'chatgpt_prompts.json');
|
||||
const list: Record<string, string>[] = await invoke('parse_prompt', { data });
|
||||
modelSet(list.map(i => ({ cmd: genCmd(i.act), enable: true, tags: ['chatgpt-prompts'], ...i })));
|
||||
const fmtList = list.map(i => ({ ...i, cmd: i.cmd ? i.cmd : genCmd(i.act), enable: true, tags: ['chatgpt-prompts'] }));
|
||||
await modelCacheSet(fmtList, file);
|
||||
modelSet({
|
||||
id: 'chatgpt_prompts',
|
||||
last_updated: Date.now(),
|
||||
});
|
||||
dialog.message('ChatGPT Prompts data has been synchronized!');
|
||||
} else {
|
||||
dialog.message('ChatGPT Prompts data sync failed, please try again!');
|
||||
|
||||
Reference in New Issue
Block a user