Skip to content

Commit

Permalink
transition start.gg get tournament/event/phase/group to event
Browse files Browse the repository at this point in the history
also persist selectedSet
  • Loading branch information
jmlee337 committed Aug 14, 2024
1 parent 58f53c0 commit 46f18b2
Show file tree
Hide file tree
Showing 5 changed files with 358 additions and 435 deletions.
79 changes: 69 additions & 10 deletions src/main/ipc.ts
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,8 @@ import {
startPhase,
startPhaseGroup,
getCurrentTournament,
getSelectedSet,
setSelectedSetId,
} from './startgg';
import { enforceReplays, getReplaysInDir, writeReplays } from './replay';
import {
Expand Down Expand Up @@ -226,26 +228,66 @@ export default function setupIPCs(mainWindow: BrowserWindow): void {
ipcMain.removeHandler('getCurrentTournament');
ipcMain.handle('getCurrentTournament', getCurrentTournament);

ipcMain.removeHandler('getSelectedSet');
ipcMain.handle('getSelectedSet', getSelectedSet);

ipcMain.removeHandler('setSelectedSetId');
ipcMain.handle(
'setSelectedSetId',
async (event: IpcMainInvokeEvent, selectedSetId: number) => {
setSelectedSetId(selectedSetId);
},
);

ipcMain.removeHandler('getTournament');
ipcMain.handle(
'getTournament',
async (event: IpcMainInvokeEvent, slug: string) => {
async (event: IpcMainInvokeEvent, slug: string, recursive: boolean) => {
if (!sggApiKey) {
throw new Error('Please set start.gg API key');
}

return getTournament(sggApiKey, slug);
await getTournament(sggApiKey, slug, recursive);
mainWindow.webContents.send(
'startggTournament',
getSelectedSet(),
getCurrentTournament(),
);
},
);

ipcMain.removeHandler('getEvent');
ipcMain.handle('getEvent', async (event: IpcMainInvokeEvent, id: number) =>
getEvent(id),
ipcMain.handle(
'getEvent',
async (e: IpcMainInvokeEvent, id: number, recursive: boolean) => {
if (!sggApiKey) {
throw new Error('Please set start.gg API key');
}

await getEvent(sggApiKey, id, recursive);
mainWindow.webContents.send(
'startggTournament',
getSelectedSet(),
getCurrentTournament(),
);
},
);

ipcMain.removeHandler('getPhase');
ipcMain.handle('getPhase', async (event: IpcMainInvokeEvent, id: number) =>
getPhase(id),
ipcMain.handle(
'getPhase',
async (event: IpcMainInvokeEvent, id: number, recursive: boolean) => {
if (!sggApiKey) {
throw new Error('Please set start.gg API key');
}

await getPhase(sggApiKey, id, recursive);
mainWindow.webContents.send(
'startggTournament',
getSelectedSet(),
getCurrentTournament(),
);
},
);

ipcMain.removeHandler('getPhaseGroup');
Expand All @@ -260,7 +302,12 @@ export default function setupIPCs(mainWindow: BrowserWindow): void {
throw new Error('Please set start.gg API key');
}

return getPhaseGroup(sggApiKey, id, updatedSets);
await getPhaseGroup(sggApiKey, id, updatedSets);
mainWindow.webContents.send(
'startggTournament',
getSelectedSet(),
getCurrentTournament(),
);
},
);

Expand Down Expand Up @@ -309,7 +356,11 @@ export default function setupIPCs(mainWindow: BrowserWindow): void {
}

await startEvent(sggApiKey, id);
mainWindow.webContents.send('startggTournament', getCurrentTournament());
mainWindow.webContents.send(
'startggTournament',
getSelectedSet(),
getCurrentTournament(),
);
},
);

Expand All @@ -322,7 +373,11 @@ export default function setupIPCs(mainWindow: BrowserWindow): void {
}

await startPhase(sggApiKey, id, eventId);
mainWindow.webContents.send('startggTournament', getCurrentTournament());
mainWindow.webContents.send(
'startggTournament',
getSelectedSet(),
getCurrentTournament(),
);
},
);

Expand All @@ -340,7 +395,11 @@ export default function setupIPCs(mainWindow: BrowserWindow): void {
}

await startPhaseGroup(sggApiKey, id, phaseId, eventId);
mainWindow.webContents.send('startggTournament', getCurrentTournament());
mainWindow.webContents.send(
'startggTournament',
getSelectedSet(),
getCurrentTournament(),
);
},
);

Expand Down
23 changes: 12 additions & 11 deletions src/main/preload.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,9 @@ import {
Context,
CopySettings,
EnforceResult,
Event,
InvalidReplay,
Mode,
Output,
Phase,
PhaseGroup,
Replay,
ReportSettings,
Set,
Expand Down Expand Up @@ -55,14 +52,15 @@ const electronHandler = {
chooseCopyDir: (): Promise<string> => ipcRenderer.invoke('chooseCopyDir'),
getCurrentTournament: (): Promise<Tournament | undefined> =>
ipcRenderer.invoke('getCurrentTournament'),
getTournament: (slug: string): Promise<Tournament> =>
ipcRenderer.invoke('getTournament', slug),
getEvent: (id: number): Promise<Event> => ipcRenderer.invoke('getEvent', id),
getPhase: (id: number): Promise<Phase> => ipcRenderer.invoke('getPhase', id),
getPhaseGroup: (
id: number,
updatedSets?: Map<number, Set>,
): Promise<PhaseGroup> =>
getSelectedSet: (): Promise<Set | undefined> =>
ipcRenderer.invoke('getSelectedSet'),
getTournament: (slug: string, recursive: boolean): Promise<void> =>
ipcRenderer.invoke('getTournament', slug, recursive),
getEvent: (id: number, recursive: boolean): Promise<void> =>
ipcRenderer.invoke('getEvent', id, recursive),
getPhase: (id: number, recursive: boolean): Promise<void> =>
ipcRenderer.invoke('getPhase', id, recursive),
getPhaseGroup: (id: number, updatedSets?: Map<number, Set>): Promise<void> =>
ipcRenderer.invoke('getPhaseGroup', id, updatedSets),
startSet: (id: number): Promise<Set> => ipcRenderer.invoke('startSet', id),
reportSet: (set: StartggSet): Promise<Set[]> =>
Expand Down Expand Up @@ -146,11 +144,14 @@ const electronHandler = {
onTournament: (
callback: (
event: IpcRendererEvent,
selectedSet: Set | undefined,
tournament: Tournament | undefined,
) => void,
selectedSetId: number,
) => {
ipcRenderer.removeAllListeners('startggTournament');
ipcRenderer.on('startggTournament', callback);
ipcRenderer.invoke('setSelectedSetId', selectedSetId);
},
onUsb: (callback: (event: IpcRendererEvent, newDir: string) => void) => {
ipcRenderer.removeAllListeners('usbstorage');
Expand Down
Loading

0 comments on commit 46f18b2

Please sign in to comment.