mirror of
https://github.com/th-ch/youtube-music.git
synced 2026-01-16 12:42:06 +00:00
fix: remove unnecessary JSON.stringify & JSON.parse
This commit is contained in:
@ -29,7 +29,8 @@ import { isEnabled } from '../../config/plugins';
|
|||||||
import { cleanupName, getImage, SongInfo } from '../../providers/song-info';
|
import { cleanupName, getImage, SongInfo } from '../../providers/song-info';
|
||||||
import { injectCSS } from '../utils';
|
import { injectCSS } from '../utils';
|
||||||
import { cache } from '../../providers/decorators';
|
import { cache } from '../../providers/decorators';
|
||||||
import { GetPlayerResponse } from '../../types/get-player-response';
|
|
||||||
|
import type { GetPlayerResponse } from '../../types/get-player-response';
|
||||||
|
|
||||||
type CustomSongInfo = SongInfo & { trackId?: string };
|
type CustomSongInfo = SongInfo & { trackId?: string };
|
||||||
|
|
||||||
@ -78,8 +79,8 @@ export default async (win_: BrowserWindow) => {
|
|||||||
generate_session_locally: true,
|
generate_session_locally: true,
|
||||||
});
|
});
|
||||||
ipcMain.on('download-song', (_, url: string) => downloadSong(url));
|
ipcMain.on('download-song', (_, url: string) => downloadSong(url));
|
||||||
ipcMain.on('video-src-changed', (_, data: string) => {
|
ipcMain.on('video-src-changed', (_, data: GetPlayerResponse) => {
|
||||||
playingUrl = (JSON.parse(data) as GetPlayerResponse).microformat.microformatDataRenderer.urlCanonical;
|
playingUrl = data.microformat.microformatDataRenderer.urlCanonical;
|
||||||
});
|
});
|
||||||
ipcMain.on('download-playlist-request', async (_event, url: string) =>
|
ipcMain.on('download-playlist-request', async (_event, url: string) =>
|
||||||
downloadPlaylist(url),
|
downloadPlaylist(url),
|
||||||
|
|||||||
@ -24,8 +24,8 @@ export default (win: BrowserWindow, options: LyricGeniusType) => {
|
|||||||
|
|
||||||
injectCSS(win.webContents, join(__dirname, 'style.css'));
|
injectCSS(win.webContents, join(__dirname, 'style.css'));
|
||||||
|
|
||||||
ipcMain.handle('search-genius-lyrics', async (_, extractedSongInfo: string) => {
|
ipcMain.handle('search-genius-lyrics', async (_, extractedSongInfo: SongInfo) => {
|
||||||
const metadata = JSON.parse(extractedSongInfo) as SongInfo;
|
const metadata = extractedSongInfo;
|
||||||
return await fetchFromGenius(metadata);
|
return await fetchFromGenius(metadata);
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|||||||
@ -1,8 +1,10 @@
|
|||||||
import { ipcRenderer } from 'electron';
|
import { ipcRenderer } from 'electron';
|
||||||
import is from 'electron-is';
|
import is from 'electron-is';
|
||||||
|
|
||||||
|
import type { SongInfo } from '../../providers/song-info';
|
||||||
|
|
||||||
export default () => {
|
export default () => {
|
||||||
ipcRenderer.on('update-song-info', (_, extractedSongInfo: string) => setTimeout(async () => {
|
ipcRenderer.on('update-song-info', (_, extractedSongInfo: SongInfo) => setTimeout(async () => {
|
||||||
const tabList = document.querySelectorAll('tp-yt-paper-tab');
|
const tabList = document.querySelectorAll('tp-yt-paper-tab');
|
||||||
const tabs = {
|
const tabs = {
|
||||||
upNext: tabList[0],
|
upNext: tabList[0],
|
||||||
|
|||||||
@ -6,8 +6,8 @@ import { sortSegments } from './segments';
|
|||||||
import { SkipSegment } from './types';
|
import { SkipSegment } from './types';
|
||||||
|
|
||||||
import defaultConfig from '../../config/defaults';
|
import defaultConfig from '../../config/defaults';
|
||||||
import { GetPlayerResponse } from '../../types/get-player-response';
|
|
||||||
|
|
||||||
|
import type { GetPlayerResponse } from '../../types/get-player-response';
|
||||||
import type { ConfigType } from '../../config/dynamic';
|
import type { ConfigType } from '../../config/dynamic';
|
||||||
|
|
||||||
let videoID: string;
|
let videoID: string;
|
||||||
@ -18,8 +18,8 @@ export default (win: BrowserWindow, options: ConfigType<'sponsorblock'>) => {
|
|||||||
...options,
|
...options,
|
||||||
};
|
};
|
||||||
|
|
||||||
ipcMain.on('video-src-changed', async (_, data: string) => {
|
ipcMain.on('video-src-changed', async (_, data: GetPlayerResponse) => {
|
||||||
videoID = (JSON.parse(data) as GetPlayerResponse)?.videoDetails?.videoId;
|
videoID = data?.videoDetails?.videoId;
|
||||||
const segments = await fetchSegments(apiURL, categories);
|
const segments = await fetchSegments(apiURL, categories);
|
||||||
win.webContents.send('sponsorblock-skip', segments);
|
win.webContents.send('sponsorblock-skip', segments);
|
||||||
});
|
});
|
||||||
|
|||||||
@ -12,8 +12,8 @@ export const getSongInfo = () => songInfo;
|
|||||||
const $ = <E extends Element = Element>(s: string): E | null => document.querySelector<E>(s);
|
const $ = <E extends Element = Element>(s: string): E | null => document.querySelector<E>(s);
|
||||||
const $$ = <E extends Element = Element>(s: string): NodeListOf<E> => document.querySelectorAll<E>(s);
|
const $$ = <E extends Element = Element>(s: string): NodeListOf<E> => document.querySelectorAll<E>(s);
|
||||||
|
|
||||||
ipcRenderer.on('update-song-info', async (_, extractedSongInfo: string) => {
|
ipcRenderer.on('update-song-info', async (_, extractedSongInfo: SongInfo) => {
|
||||||
songInfo = JSON.parse(extractedSongInfo) as SongInfo;
|
songInfo = extractedSongInfo;
|
||||||
if (songInfo.imageSrc) songInfo.image = await getImage(songInfo.imageSrc);
|
if (songInfo.imageSrc) songInfo.image = await getImage(songInfo.imageSrc);
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -138,7 +138,7 @@ export default () => {
|
|||||||
|
|
||||||
data.videoDetails.elapsedSeconds = 0;
|
data.videoDetails.elapsedSeconds = 0;
|
||||||
data.videoDetails.isPaused = false;
|
data.videoDetails.isPaused = false;
|
||||||
ipcRenderer.send('video-src-changed', JSON.stringify(data));
|
ipcRenderer.send('video-src-changed', data);
|
||||||
}
|
}
|
||||||
}, { once: true, passive: true });
|
}, { once: true, passive: true });
|
||||||
};
|
};
|
||||||
|
|||||||
@ -3,7 +3,8 @@ import { BrowserWindow, ipcMain, nativeImage, net } from 'electron';
|
|||||||
import { cache } from './decorators';
|
import { cache } from './decorators';
|
||||||
|
|
||||||
import config from '../config';
|
import config from '../config';
|
||||||
import { GetPlayerResponse } from '../types/get-player-response';
|
|
||||||
|
import type { GetPlayerResponse } from '../types/get-player-response';
|
||||||
|
|
||||||
export interface SongInfo {
|
export interface SongInfo {
|
||||||
title: string;
|
title: string;
|
||||||
@ -53,8 +54,7 @@ export const getImage = cache(
|
|||||||
},
|
},
|
||||||
);
|
);
|
||||||
|
|
||||||
const handleData = async (responseText: string, win: Electron.BrowserWindow) => {
|
const handleData = async (data: GetPlayerResponse, win: Electron.BrowserWindow) => {
|
||||||
const data = JSON.parse(responseText) as GetPlayerResponse;
|
|
||||||
if (!data) {
|
if (!data) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -83,7 +83,7 @@ const handleData = async (responseText: string, win: Electron.BrowserWindow) =>
|
|||||||
songInfo.imageSrc = thumbnails.at(-1)?.url.split('?')[0];
|
songInfo.imageSrc = thumbnails.at(-1)?.url.split('?')[0];
|
||||||
if (songInfo.imageSrc) songInfo.image = await getImage(songInfo.imageSrc);
|
if (songInfo.imageSrc) songInfo.image = await getImage(songInfo.imageSrc);
|
||||||
|
|
||||||
win.webContents.send('update-song-info', JSON.stringify(songInfo));
|
win.webContents.send('update-song-info', songInfo);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -100,9 +100,9 @@ let handlingData = false;
|
|||||||
|
|
||||||
const registerProvider = (win: BrowserWindow) => {
|
const registerProvider = (win: BrowserWindow) => {
|
||||||
// This will be called when the song-info-front finds a new request with song data
|
// This will be called when the song-info-front finds a new request with song data
|
||||||
ipcMain.on('video-src-changed', async (_, responseText: string) => {
|
ipcMain.on('video-src-changed', async (_, data: GetPlayerResponse) => {
|
||||||
handlingData = true;
|
handlingData = true;
|
||||||
await handleData(responseText, win);
|
await handleData(data, win);
|
||||||
handlingData = false;
|
handlingData = false;
|
||||||
for (const c of callbacks) {
|
for (const c of callbacks) {
|
||||||
c(songInfo, 'video-src-changed');
|
c(songInfo, 'video-src-changed');
|
||||||
|
|||||||
Reference in New Issue
Block a user