mirror of
https://github.com/th-ch/youtube-music.git
synced 2026-01-11 18:41:47 +00:00
feat(api-server): add optional params for search (#3440)
This commit is contained in:
@ -754,8 +754,8 @@ export const register = (
|
||||
return ctx.body(null);
|
||||
});
|
||||
app.openapi(routes.search, async (ctx) => {
|
||||
const { query } = ctx.req.valid('json');
|
||||
const response = await controller.search(query);
|
||||
const { query, params, continuation } = ctx.req.valid('json');
|
||||
const response = await controller.search(query, params, continuation);
|
||||
|
||||
ctx.status(200);
|
||||
return ctx.json(response as object);
|
||||
|
||||
@ -2,4 +2,6 @@ import { z } from '@hono/zod-openapi';
|
||||
|
||||
export const SearchSchema = z.object({
|
||||
query: z.string(),
|
||||
params: z.string().optional(),
|
||||
continuation: z.string().optional(),
|
||||
});
|
||||
|
||||
@ -134,12 +134,12 @@ export default (win: BrowserWindow) => {
|
||||
},
|
||||
clearQueue: () => win.webContents.send('ytmd:clear-queue'),
|
||||
|
||||
search: (query: string) =>
|
||||
search: (query: string, params?: string, continuation?: string) =>
|
||||
new Promise((resolve) => {
|
||||
ipcMain.once('ytmd:search-results', (_, result) => {
|
||||
resolve(result as string);
|
||||
});
|
||||
win.webContents.send('ytmd:search', query);
|
||||
win.webContents.send('ytmd:search', query, params, continuation);
|
||||
}),
|
||||
};
|
||||
};
|
||||
|
||||
@ -277,20 +277,25 @@ async function onApiLoaded() {
|
||||
});
|
||||
});
|
||||
|
||||
window.ipcRenderer.on('ytmd:search', async (_, query: string) => {
|
||||
const app = document.querySelector<YouTubeMusicAppElement>('ytmusic-app');
|
||||
const searchBox =
|
||||
document.querySelector<SearchBoxElement>('ytmusic-search-box');
|
||||
window.ipcRenderer.on(
|
||||
'ytmd:search',
|
||||
async (_, query: string, params?: string, continuation?: string) => {
|
||||
const app = document.querySelector<YouTubeMusicAppElement>('ytmusic-app');
|
||||
const searchBox =
|
||||
document.querySelector<SearchBoxElement>('ytmusic-search-box');
|
||||
|
||||
if (!app || !searchBox) return;
|
||||
if (!app || !searchBox) return;
|
||||
|
||||
const result = await app.networkManager.fetch('/search', {
|
||||
query,
|
||||
suggestStats: searchBox.getSearchboxStats(),
|
||||
});
|
||||
const result = await app.networkManager.fetch('/search', {
|
||||
query,
|
||||
params,
|
||||
continuation,
|
||||
suggestStats: searchBox.getSearchboxStats(),
|
||||
});
|
||||
|
||||
window.ipcRenderer.send('ytmd:search-results', result);
|
||||
});
|
||||
window.ipcRenderer.send('ytmd:search-results', result);
|
||||
},
|
||||
);
|
||||
|
||||
const video = document.querySelector('video')!;
|
||||
const audioContext = new AudioContext();
|
||||
|
||||
Reference in New Issue
Block a user